xref: /unit/pkg/deb/debian/rules.in (revision 815:fac02786a174)
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)
13
14BUILDDIR_unit = $(CURDIR)/debian/build-unit
15BUILDDIR_unit_debug = $(CURDIR)/debian/build-unit-debug
16INSTALLDIR = $(CURDIR)/debian/unit
17INSTALLDIR_dev = $(CURDIR)/debian/unit-dev
18BASEDIR = $(CURDIR)
19
20DOTESTS = 0
21
22config.env.%:
23	dh_testdir
24	mkdir -p $(BUILDDIR_$*)
25	cp -Pa $(CURDIR)/auto $(BUILDDIR_$*)/
26	cp -Pa $(CURDIR)/configure $(BUILDDIR_$*)/
27	cp -Pa $(CURDIR)/src $(BUILDDIR_$*)/
28	cp -Pa $(CURDIR)/test $(BUILDDIR_$*)/
29	touch $@
30
31configure.unit: config.env.unit
32	cd $(BUILDDIR_unit) && \
33	CFLAGS= ./configure \
34		%%CONFIGURE_ARGS%% \
35		--modules=/usr/lib/unit/modules \
36		--libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
37		--cc-opt="$(CFLAGS)" \
38		--ld-opt="$(LDFLAGS)"
39	touch $@
40
41configure.unit_debug: config.env.unit_debug
42	cd $(BUILDDIR_unit_debug) && \
43	CFLAGS= ./configure \
44		%%CONFIGURE_ARGS%% \
45		--modules=/usr/lib/unit/debug-modules \
46		--libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
47		--cc-opt="$(CFLAGS)" \
48		--ld-opt="$(LDFLAGS)" \
49		--debug
50	touch $@
51
52build-arch.%: configure.%
53	dh_testdir
54	$(MAKE) -C $(BUILDDIR_$*)
55	$(MAKE) -C $(BUILDDIR_$*) build/libunit.a
56ifeq ($(DOTESTS), 1)
57	$(MAKE) -C $(BUILDDIR_$*) tests
58endif
59	touch $@
60
61do.tests: build
62	dh_testdir
63ifeq ($(DOTESTS), 1)
64	cd $(BUILDDIR_unit) && ./build/tests
65	cd $(BUILDDIR_unit_debug) && ./build/tests
66endif
67	touch $@
68
69build-indep:
70	dh_testdir
71	touch $@
72
73build-arch: build-arch.unit build-arch.unit_debug
74	dh_testdir
75	touch $@
76
77build: build-arch build-indep
78	dh_testdir
79	touch $@
80
81clean:
82	dh_testdir
83	dh_testroot
84	dh_clean
85	find $(CURDIR) -maxdepth 1 -size 0 -delete
86
87install: build do.tests
88	dh_testdir
89	dh_testroot
90	dh_prep
91	dh_installdirs
92	dh_installinit
93	dh_installlogrotate
94	cd $(BUILDDIR_unit) && DESTDIR=$(INSTALLDIR) make install
95	cd $(BUILDDIR_unit) && DESTDIR=$(INSTALLDIR_dev) make libunit-install
96	install -m 755 $(BUILDDIR_unit_debug)/build/unitd $(INSTALLDIR)/usr/sbin/unitd-debug
97	install -m 644 $(BUILDDIR_unit_debug)/build/libunit.a $(INSTALLDIR_dev)/usr/lib/$(DEB_HOST_MULTIARCH)/libunit-debug.a
98	mkdir -p $(INSTALLDIR)/usr/share/doc/unit/examples
99	install -m 644 debian/unit.example.config $(INSTALLDIR)/usr/share/doc/unit/examples/example.config
100	install -m 644 CHANGES $(INSTALLDIR)/usr/share/doc/unit/
101	install -m 644 README $(INSTALLDIR)/usr/share/doc/unit/
102
103binary-indep: build install
104	dh_testdir
105	dh_testroot
106	dh_installdocs
107	dh_installchangelogs
108	dh_link
109	dh_strip --dbg-package=unit-dbg
110	dh_shlibdeps
111	dh_compress
112	dh_fixperms
113	dh_installdeb
114	dh_perl
115	dh_gencontrol
116	dh_md5sums
117	dh_builddeb
118
119binary-arch: install
120
121binary: binary-indep binary-arch
122
123.PHONY: clean binary-indep binary-arch binary install build
124