debian: Multi-Arch support.
[mLib] / debian / rules
... / ...
CommitLineData
1#! /usr/bin/make -f
2
3###--------------------------------------------------------------------------
4### Preliminary definitions.
5
6## The multiarch triple.
7DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
8a := $(DEB_HOST_MULTIARCH)
9
10## My version number, shorn of the Debian package version if any.
11DEB_UPSTREAM_VERSION ?= \
12 $(shell dpkg-parsechangelog | \
13 sed -n "/^Version: \([^-]*\)\(-.*\)\?/s//\1/p")
14v := $(DEB_UPSTREAM_VERSION)
15
16## Default Debhelper options.
17DH_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.
26FLAVOURS = noadns adns
27
28## The build actions which we have to override.
29DH_BUILD_OVERRIDES = configure clean build install test
30
31## How to perform build action for a particular library flavour.
32define flavour-build-action
33dh_auto_$1 -Bdebian/build-$2 \
34 $(DH_OPTIONS) $(DH_OPTIONS_$2) \
35 $(DH_$1_OPTIONS) $(DH_$1_OPTIONS_$2)
36
37endef
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.
47DH_configure_OPTIONS = -- --libexecdir='$${libdir}'
48DH_configure_OPTIONS_noadns = --without-adns
49DH_configure_OPTIONS_adns = --with-adns
50
51## Cleaning options.
52dh-clean-hook::
53 rm -rf debian/tmp-adns
54
55## Installation options.
56DH_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.
63GEN_INSTALL_PKGS = mlib2-adns
64GEN_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 $@
68dh-install-hook:: $(GEN_INSTALL_FILES); @:
69dh-clean-hook::
70 rm -f $(GEN_INSTALL_FILES)
71
72## Override the shared-library dependency information to allow any flavour.
73override_dh_makeshlibs:
74 dh_makeshlibs -V"mlib2 (>= $v) | mlib2-adns (>= $v)"
75
76###----- That's all, folks --------------------------------------------------