1#!/usr/bin/make -f 2 3# Uncomment this to turn on verbose mode. 4#export DH_VERBOSE=1 5 6export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-pie 7export DEB_CFLAGS_MAINT_APPEND=-Wp,-D_FORTIFY_SOURCE=2 -fPIC 8export DEB_LDFLAGS_MAINT_APPEND=-Wl,--as-needed -pie 9DPKG_EXPORT_BUILDFLAGS = 1 10include /usr/share/dpkg/buildflags.mk 11 12DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) 13CODENAME := $(shell lsb_release -cs) 14 15BUILDDIR_unit = $(CURDIR)/debian/build-unit 16BUILDDIR_unit_debug = $(CURDIR)/debian/build-unit-debug 17INSTALLDIR = $(CURDIR)/debian/unit 18INSTALLDIR_dev = $(CURDIR)/debian/unit-dev 19BASEDIR = $(CURDIR) 20 21DOTESTS = 0 22 23config.env.%: 24 dh_testdir 25 mkdir -p $(BUILDDIR_$*) 26 cp -Pa $(CURDIR)/auto $(BUILDDIR_$*)/ 27 cp -Pa $(CURDIR)/configure $(BUILDDIR_$*)/ 28 cp -Pa $(CURDIR)/src $(BUILDDIR_$*)/ 29 cp -Pa $(CURDIR)/test $(BUILDDIR_$*)/ 30 cp -Pa $(CURDIR)/version $(BUILDDIR_$*)/ 31 cp -Pa $(CURDIR)/CHANGES $(BUILDDIR_$*)/ 32 cp -Pa $(CURDIR)/LICENSE $(BUILDDIR_$*)/ 33 cp -Pa $(CURDIR)/NOTICE $(BUILDDIR_$*)/ 34 cp -Pa $(CURDIR)/README $(BUILDDIR_$*)/ 35 cp -Pa $(CURDIR)/go $(BUILDDIR_$*)/ 36 touch $@ 37 38configure.unit: config.env.unit 39 cd $(BUILDDIR_unit) && \ 40 CFLAGS= ./configure \ 41 %%CONFIGURE_ARGS%% \ 42 --modules=/usr/lib/unit/modules \ 43 --libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \ 44 --cc-opt="$(CFLAGS)" \ 45 --ld-opt="$(LDFLAGS)" 46 touch $@ 47 48configure.unit_debug: config.env.unit_debug 49 cd $(BUILDDIR_unit_debug) && \ 50 CFLAGS= ./configure \ 51 %%CONFIGURE_ARGS%% \ 52 --modules=/usr/lib/unit/debug-modules \ 53 --libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \ 54 --cc-opt="$(CFLAGS)" \ 55 --ld-opt="$(LDFLAGS)" \ 56 --debug 57 touch $@ 58 59build-arch.%: configure.% 60 dh_testdir 61 $(MAKE) -C $(BUILDDIR_$*) 62 $(MAKE) -C $(BUILDDIR_$*) build/libunit.a 63ifeq ($(DOTESTS), 1) 64 $(MAKE) -C $(BUILDDIR_$*) tests 65endif 66 touch $@ 67 68do.tests: build 69 dh_testdir 70ifeq ($(DOTESTS), 1) 71 cd $(BUILDDIR_unit) && ./build/tests 72 cd $(BUILDDIR_unit_debug) && ./build/tests 73endif 74 touch $@ 75 76build-indep: 77 dh_testdir 78 touch $@ 79 80build-arch: build-arch.unit build-arch.unit_debug 81 dh_testdir 82 touch $@ 83 84build: build-arch build-indep 85 dh_testdir 86 touch $@ 87 88clean: 89 dh_testdir 90 dh_testroot 91 dh_clean 92 find $(CURDIR) -maxdepth 1 -size 0 -delete 93 rm -rf $(BUILDDIR_unit) $(BUILDDIR_unit_debug) 94 95install: build do.tests 96 dh_testdir 97 dh_testroot 98 dh_prep 99 dh_installdirs 100ifeq ($(CODENAME), xenial) 101 dh_installinit 102else 103 dh_installsystemd 104endif 105 dh_installlogrotate 106 cd $(BUILDDIR_unit) && DESTDIR=$(INSTALLDIR) make install 107 cd $(BUILDDIR_unit) && DESTDIR=$(INSTALLDIR_dev) make libunit-install 108 install -m 755 $(BUILDDIR_unit_debug)/build/unitd $(INSTALLDIR)/usr/sbin/unitd-debug 109 install -m 644 $(BUILDDIR_unit_debug)/build/libunit.a $(INSTALLDIR_dev)/usr/lib/$(DEB_HOST_MULTIARCH)/libunit-debug.a 110 mkdir -p $(INSTALLDIR)/usr/share/doc/unit/examples 111 install -m 644 debian/unit.example.config $(INSTALLDIR)/usr/share/doc/unit/examples/example.config 112 install -m 644 CHANGES $(INSTALLDIR)/usr/share/doc/unit/changelog 113 install -m 644 README $(INSTALLDIR)/usr/share/doc/unit/ 114 install -m 644 NOTICE $(INSTALLDIR)/usr/share/doc/unit/ 115 116binary-indep: build install 117 dh_testdir 118 dh_testroot 119 dh_installdocs 120 dh_installchangelogs 121 dh_link 122 dh_strip --dbg-package=unit-dbg 123 dh_shlibdeps 124 dh_compress 125 dh_fixperms 126 dh_installdeb 127 dh_perl 128 dh_gencontrol 129 dh_md5sums 130 dh_builddeb 131 132binary-arch: install 133 134binary: binary-indep binary-arch 135 136.PHONY: clean binary-indep binary-arch binary install build 137