debian: Multi-Arch support.
[mLib] / debian / rules
1 #! /usr/bin/make -f
2
3 ###--------------------------------------------------------------------------
4 ### Preliminary definitions.
5
6 ## The multiarch triple.
7 DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
8 a := $(DEB_HOST_MULTIARCH)
9
10 ## My version number, shorn of the Debian package version if any.
11 DEB_UPSTREAM_VERSION ?= \
12 $(shell dpkg-parsechangelog | \
13 sed -n "/^Version: \([^-]*\)\(-.*\)\?/s//\1/p")
14 v := $(DEB_UPSTREAM_VERSION)
15
16 ## Default Debhelper options.
17 DH_OPTIONS = --parallel
18
19 ## Default Debhelper actions.
20 %:; dh $@ $(DH_OPTIONS)
21
22 ###--------------------------------------------------------------------------
23 ### Multiple flavours.
24
25 ## The various flavours of the library which we must build.
26 FLAVOURS = noadns adns
27
28 ## The build actions which we have to override.
29 DH_BUILD_OVERRIDES = configure clean build install test
30
31 ## How to perform build action for a particular library flavour.
32 define flavour-build-action
33 dh_auto_$1 -Bdebian/build-$2 \
34 $(DH_OPTIONS) $(DH_OPTIONS_$2) \
35 $(DH_$1_OPTIONS) $(DH_$1_OPTIONS_$2)
36
37 endef
38
39 ## Override the build actions, and perform the relevant action for each
40 ## flavour in turn.
41 $(foreach t, $(DH_BUILD_OVERRIDES), dh-$t-hook):: %:; @:
42 $(foreach t, $(DH_BUILD_OVERRIDES), override_dh_auto_$t): \
43 override_dh_auto_%: dh-%-hook
44 $(foreach f, $(FLAVOURS), $(call flavour-build-action,$*,$f))
45
46 ## Configuration options.
47 DH_configure_OPTIONS = -- --libexecdir='$${libdir}'
48 DH_configure_OPTIONS_noadns = --without-adns
49 DH_configure_OPTIONS_adns = --with-adns
50
51 ## Cleaning options.
52 dh-clean-hook::
53 rm -rf debian/tmp-adns
54
55 ## Installation options.
56 DH_install_OPTIONS_adns = --destdir=debian/tmp-adns
57
58 ###--------------------------------------------------------------------------
59 ### Additional tweaks.
60
61 ## Some of the install lists need to be generated. This is a little
62 ## annoying.
63 GEN_INSTALL_PKGS = mlib2-adns
64 GEN_INSTALL_FILES = $(foreach p, $(GEN_INSTALL_PKGS), debian/$p.install)
65 $(GEN_INSTALL_FILES): debian/%.install: \
66 debian/%.install.in debian/changelog debian/rules
67 sed 's,@ARCH@,$a,g' $< >$@.new && mv $@.new $@
68 dh-install-hook:: $(GEN_INSTALL_FILES); @:
69 dh-clean-hook::
70 rm -f $(GEN_INSTALL_FILES)
71
72 ## Override the shared-library dependency information to allow any flavour.
73 override_dh_makeshlibs:
74 dh_makeshlibs -V"mlib2 (>= $v) | mlib2-adns (>= $v)"
75
76 ###----- That's all, folks --------------------------------------------------