summaryrefslogtreecommitdiffhomepage
path: root/pkg/deb/debian/rules.in
blob: aa7921d16e204b971065314dabe0c8aee45c6fb6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#!/usr/bin/make -f

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-pie
export DEB_CFLAGS_MAINT_APPEND=-Wp,-D_FORTIFY_SOURCE=2 -fPIC
export DEB_LDFLAGS_MAINT_APPEND=-Wl,--as-needed -pie
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk

DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
CODENAME := $(shell lsb_release -cs)

BUILDDIR_unit = $(CURDIR)/debian/build-unit
BUILDDIR_unit_debug = $(CURDIR)/debian/build-unit-debug
INSTALLDIR = $(CURDIR)/debian/unit
INSTALLDIR_dev = $(CURDIR)/debian/unit-dev
BASEDIR = $(CURDIR)

DOTESTS = 0

config.env.%:
	dh_testdir
	mkdir -p $(BUILDDIR_$*)
	cp -Pa $(CURDIR)/auto $(BUILDDIR_$*)/
	cp -Pa $(CURDIR)/configure $(BUILDDIR_$*)/
	cp -Pa $(CURDIR)/src $(BUILDDIR_$*)/
	cp -Pa $(CURDIR)/test $(BUILDDIR_$*)/
	cp -Pa $(CURDIR)/version $(BUILDDIR_$*)/
	cp -Pa $(CURDIR)/CHANGES $(BUILDDIR_$*)/
	cp -Pa $(CURDIR)/LICENSE $(BUILDDIR_$*)/
	cp -Pa $(CURDIR)/NOTICE $(BUILDDIR_$*)/
	cp -Pa $(CURDIR)/README $(BUILDDIR_$*)/
	cp -Pa $(CURDIR)/go $(BUILDDIR_$*)/
	touch $@

configure.unit: config.env.unit
	cd $(BUILDDIR_unit) && \
	CFLAGS= ./configure \
		%%CONFIGURE_ARGS%% \
		--modules=/usr/lib/unit/modules \
		--libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
		--cc-opt="$(CFLAGS)" \
		--ld-opt="$(LDFLAGS)"
	touch $@

configure.unit_debug: config.env.unit_debug
	cd $(BUILDDIR_unit_debug) && \
	CFLAGS= ./configure \
		%%CONFIGURE_ARGS%% \
		--modules=/usr/lib/unit/debug-modules \
		--libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
		--cc-opt="$(CFLAGS)" \
		--ld-opt="$(LDFLAGS)" \
		--debug
	touch $@

build-arch.%: configure.%
	dh_testdir
	$(MAKE) -C $(BUILDDIR_$*)
	$(MAKE) -C $(BUILDDIR_$*) build/libunit.a
ifeq ($(DOTESTS), 1)
	$(MAKE) -C $(BUILDDIR_$*) tests
endif
	touch $@

do.tests: build
	dh_testdir
ifeq ($(DOTESTS), 1)
	cd $(BUILDDIR_unit) && ./build/tests
	cd $(BUILDDIR_unit_debug) && ./build/tests
endif
	touch $@

build-indep:
	dh_testdir
	touch $@

build-arch: build-arch.unit build-arch.unit_debug
	dh_testdir
	touch $@

build: build-arch build-indep
	dh_testdir
	touch $@

clean:
	dh_testdir
	dh_testroot
	dh_clean
	find $(CURDIR) -maxdepth 1 -size 0 -delete
	rm -rf $(BUILDDIR_unit) $(BUILDDIR_unit_debug)

install: build do.tests
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs
ifeq ($(CODENAME), xenial)
	dh_installinit
else
	dh_installsystemd
endif
	dh_installlogrotate
	cd $(BUILDDIR_unit) && DESTDIR=$(INSTALLDIR) make install
	cd $(BUILDDIR_unit) && DESTDIR=$(INSTALLDIR_dev) make libunit-install
	install -m 755 $(BUILDDIR_unit_debug)/build/unitd $(INSTALLDIR)/usr/sbin/unitd-debug
	install -m 644 $(BUILDDIR_unit_debug)/build/libunit.a $(INSTALLDIR_dev)/usr/lib/$(DEB_HOST_MULTIARCH)/libunit-debug.a
	mkdir -p $(INSTALLDIR)/usr/share/doc/unit/examples
	install -m 644 debian/unit.example.config $(INSTALLDIR)/usr/share/doc/unit/examples/example.config
	install -m 644 CHANGES $(INSTALLDIR)/usr/share/doc/unit/changelog
	install -m 644 README $(INSTALLDIR)/usr/share/doc/unit/
	install -m 644 NOTICE $(INSTALLDIR)/usr/share/doc/unit/

binary-indep: build install
	dh_testdir
	dh_testroot
	dh_installdocs
	dh_installchangelogs 
	dh_link
	dh_strip --dbg-package=unit-dbg
	dh_shlibdeps
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_perl
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary-arch: install

binary: binary-indep binary-arch

.PHONY: clean binary-indep binary-arch binary install build