| #!/usr/bin/make -f |
| # debian/rules file - for dnsmasq. |
| # Copyright 2001-2011 by Simon Kelley |
| # Based on the sample in the debian hello package which carries the following: |
| # Copyright 1994,1995 by Ian Jackson. |
| # I hereby give you perpetual unlimited permission to copy, |
| # modify and relicense this file, provided that you do not remove |
| # my name from the file itself. (I assert my moral right of |
| # paternity under the Copyright, Designs and Patents Act 1988.) |
| # This file may have to be extensively modified |
| |
| package=dnsmasq-base |
| |
| dpkg_buildflags := DEB_BUILD_MAINT_OPTIONS="hardening=+all,+pie,+bindnow" dpkg-buildflags |
| |
| CFLAGS = $(shell $(dpkg_buildflags) --get CFLAGS) |
| CFLAGS += $(shell $(dpkg_buildflags) --get CPPFLAGS) |
| CFLAGS += -Wall -W |
| |
| LDFLAGS = $(shell $(dpkg_buildflags) --get LDFLAGS) |
| |
| DEB_COPTS = $(COPTS) |
| |
| TARGET = install-i18n |
| |
| DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) |
| DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) |
| DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) |
| BUILD_DATE := $(shell dpkg-parsechangelog --show-field Date) |
| |
| ifeq ($(origin CC),default) |
| CC = $(DEB_HOST_GNU_TYPE)-gcc |
| endif |
| |
| # Support non-cross-builds on systems without gnu-triplet-binaries for pkg-config. |
| ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) |
| PKG_CONFIG=pkg-config |
| else |
| PKG_CONFIG=$(DEB_HOST_GNU_TYPE)-pkg-config |
| endif |
| |
| # Force package version based on git tags. |
| ifneq (,$(filter gitversion,$(DEB_BUILD_OPTIONS))) |
| PACKAGE_VERSION = $(shell bld/get-version `pwd` | sed 's/test/~&/; s/[a-z]/~&/; s/-/./g; s/$$/-1/; s/^/-v/';) |
| endif |
| |
| ifeq (,$(filter nodbus,$(DEB_BUILD_OPTIONS))) |
| DEB_COPTS += -DHAVE_DBUS |
| endif |
| |
| ifeq (,$(filter noidn, $(DEB_BUILD_OPTIONS))) |
| DEB_COPTS += -DHAVE_IDN |
| endif |
| |
| ifeq (,$(filter noconntrack,$(DEB_BUILD_OPTIONS))) |
| ifeq ($(DEB_HOST_ARCH_OS),linux) |
| DEB_COPTS += -DHAVE_CONNTRACK |
| endif |
| endif |
| |
| ifneq (,$(filter noipset,$(DEB_BUILD_OPTIONS))) |
| DEB_COPTS += -DNO_IPSET |
| endif |
| |
| ifneq (,$(filter nodhcp6,$(DEB_BUILD_OPTIONS))) |
| DEB_COPTS += -DNO_DHCP6 |
| endif |
| |
| ifneq (,$(filter noipv6,$(DEB_BUILD_OPTIONS))) |
| DEB_COPTS += -DNO_IPV6 |
| endif |
| |
| ifneq (,$(filter notftp,$(DEB_BUILD_OPTIONS))) |
| DEB_COPTS += -DNO_TFTP |
| endif |
| |
| ifneq (,$(filter nodhcp,$(DEB_BUILD_OPTIONS))) |
| DEB_COPTS += -DNO_DHCP |
| endif |
| |
| ifneq (,$(filter noscript,$(DEB_BUILD_OPTIONS))) |
| DEB_COPTS += -DNO_SCRIPT |
| endif |
| |
| ifneq (,$(filter nortc,$(DEB_BUILD_OPTIONS))) |
| DEB_COPTS += -DHAVE_BROKEN_RTC |
| endif |
| |
| ifneq (,$(filter noi18n,$(DEB_BUILD_OPTIONS))) |
| TARGET = install |
| endif |
| |
| ifneq (,$(filter uselua,$(DEB_BUILD_OPTIONS))) |
| DEB_COPTS += -DHAVE_LUASCRIPT |
| endif |
| |
| ifeq (,$(filter nodnssec,$(DEB_BUILD_OPTIONS))) |
| DEB_COPTS += -DHAVE_DNSSEC |
| endif |
| |
| ifneq ($(DEB_HOST_ARCH_OS),linux) |
| # For strlcpy in FreeBSD |
| LDFLAGS += -lbsd |
| endif |
| |
| clean: |
| $(checkdir) |
| rm -rf debian/daemon debian/base debian/utils debian/*~ debian/files debian/substvars debian/utils-substvars |
| make clean |
| make -C contrib/lease-tools clean |
| |
| binary-indep: checkroot |
| $(checkdir) |
| rm -rf debian/daemon |
| install -m 755 \ |
| -d debian/daemon/DEBIAN \ |
| -d debian/daemon/usr/share/doc \ |
| -d debian/daemon/etc/init.d \ |
| -d debian/daemon/etc/dnsmasq.d \ |
| -d debian/daemon/etc/resolvconf/update.d \ |
| -d debian/daemon/usr/lib/resolvconf/dpkg-event.d \ |
| -d debian/daemon/usr/share/dnsmasq \ |
| -d debian/daemon/etc/default \ |
| -d debian/daemon/lib/systemd/system \ |
| -d debian/daemon/etc/insserv.conf.d |
| install -m 644 debian/conffiles debian/daemon/DEBIAN |
| install -m 755 debian/postinst debian/postrm debian/prerm debian/daemon/DEBIAN |
| install -m 755 debian/init debian/daemon/etc/init.d/dnsmasq |
| install -m 755 debian/resolvconf debian/daemon/etc/resolvconf/update.d/dnsmasq |
| install -m 755 debian/resolvconf-package debian/daemon/usr/lib/resolvconf/dpkg-event.d/dnsmasq |
| install -m 644 debian/installed-marker debian/daemon/usr/share/dnsmasq |
| install -m 644 debian/default debian/daemon/etc/default/dnsmasq |
| install -m 644 dnsmasq.conf.example debian/daemon/etc/dnsmasq.conf |
| install -m 644 debian/readme.dnsmasq.d debian/daemon/etc/dnsmasq.d/README |
| install -m 644 debian/systemd.service debian/daemon/lib/systemd/system/dnsmasq.service |
| install -m 644 debian/insserv debian/daemon/etc/insserv.conf.d/dnsmasq |
| ln -s $(package) debian/daemon/usr/share/doc/dnsmasq |
| cd debian/daemon && find . -type f ! -regex '.*DEBIAN/.*' -printf '%P\0' | LC_ALL=C sort -z | xargs -r0 md5sum > DEBIAN/md5sums |
| dpkg-gencontrol $(PACKAGE_VERSION) -T -pdnsmasq -Pdebian/daemon |
| find debian/daemon -depth -newermt '$(BUILD_DATE)' -print0 | xargs -0r touch --no-dereference --date='$(BUILD_DATE)' |
| chown -R root.root debian/daemon |
| chmod -R g-ws debian/daemon |
| dpkg --build debian/daemon .. |
| |
| binary-arch: checkroot |
| $(checkdir) |
| rm -rf debian/base |
| install -m 755 \ |
| -d debian/base/DEBIAN \ |
| -d debian/base/etc/dbus-1/system.d \ |
| -d debian/base/usr/share/doc/$(package) \ |
| -d debian/base/usr/share/doc/$(package)/examples \ |
| -d debian/base/usr/share/$(package) \ |
| -d debian/base/var/lib/misc |
| make $(TARGET) PREFIX=/usr DESTDIR=`pwd`/debian/base CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" COPTS="$(DEB_COPTS)" CC=$(CC) PKG_CONFIG=$(PKG_CONFIG) |
| ifeq (,$(findstring nodocs,$(DEB_BUILD_OPTIONS))) |
| # Need to remove paypal links in Debian Package for policy reasons. |
| sed -e /\<H2\>Donations/Q -e /icon.png/d doc.html -e /favicon.ico/d >debian/base/usr/share/doc/$(package)/doc.html |
| echo "</BODY>" >>debian/base/usr/share/doc/$(package)/doc.html |
| install -m 644 setup.html debian/base/usr/share/doc/$(package)/. |
| install -m 644 dnsmasq.conf.example debian/base/usr/share/doc/$(package)/examples/. |
| install -m 644 trust-anchors.conf debian/base/usr/share/$(package)/. |
| install -m 644 FAQ debian/base/usr/share/doc/$(package)/. |
| gzip -9n debian/base/usr/share/doc/$(package)/FAQ |
| install -m 644 CHANGELOG debian/base/usr/share/doc/$(package)/changelog |
| gzip -9n debian/base/usr/share/doc/$(package)/changelog |
| install -m 644 CHANGELOG.archive debian/base/usr/share/doc/$(package)/changelog.archive |
| gzip -9n debian/base/usr/share/doc/$(package)/changelog.archive |
| install -m 644 dbus/DBus-interface debian/base/usr/share/doc/$(package)/. |
| gzip -9n debian/base/usr/share/doc/$(package)/DBus-interface |
| endif |
| install -m 644 debian/dnsmasq-base.conffiles debian/base/DEBIAN/conffiles |
| install -m 755 debian/dnsmasq-base.postinst debian/base/DEBIAN/postinst |
| install -m 755 debian/dnsmasq-base.postrm debian/base/DEBIAN/postrm |
| install -m 644 debian/changelog debian/base/usr/share/doc/$(package)/changelog.Debian |
| gzip -9n debian/base/usr/share/doc/$(package)/changelog.Debian |
| install -m 644 debian/readme debian/base/usr/share/doc/$(package)/README.Debian |
| install -m 644 debian/copyright debian/base/usr/share/doc/$(package)/copyright |
| install -m 644 debian/dbus.conf debian/base/etc/dbus-1/system.d/dnsmasq.conf |
| gzip -9n debian/base/usr/share/man/man8/dnsmasq.8 |
| for f in debian/base/usr/share/man/*; do \ |
| if [ -f $$f/man8/dnsmasq.8 ]; then \ |
| gzip -9n $$f/man8/dnsmasq.8 ; \ |
| fi \ |
| done |
| ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) |
| $(DEB_HOST_GNU_TYPE)-strip -R .note -R .comment debian/base/usr/sbin/dnsmasq |
| endif |
| cd debian/base && find . -type f ! -regex '.*DEBIAN/.*' -printf '%P\0' | LC_ALL=C sort -z | xargs -r0 md5sum > DEBIAN/md5sums |
| dpkg-shlibdeps --warnings=1 debian/base/usr/sbin/dnsmasq |
| dpkg-gencontrol $(PACKAGE_VERSION) -pdnsmasq-base -Pdebian/base |
| find debian/base -depth -newermt '$(BUILD_DATE)' -print0 | xargs -0r touch --no-dereference --date='$(BUILD_DATE)' |
| chown -R root.root debian/base |
| chmod -R g-ws debian/base |
| dpkg --build debian/base .. |
| |
| ifeq ($(DEB_HOST_ARCH_OS),linux) |
| rm -rf debian/utils |
| install -m 755 -d debian/utils/DEBIAN \ |
| -d debian/utils/usr/share/man/man1 \ |
| -d debian/utils/usr/bin \ |
| -d debian/utils/usr/share/doc/dnsmasq-utils |
| make -C contrib/lease-tools PREFIX=/usr DESTDIR=`pwd`/debian/utils CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" COPTS="$(DEB_COPTS)" CC=$(CC) PKG_CONFIG=$(PKG_CONFIG) |
| install -m 755 contrib/lease-tools/dhcp_release debian/utils/usr/bin/dhcp_release |
| install -m 644 contrib/lease-tools/dhcp_release.1 debian/utils/usr/share/man/man1/dhcp_release.1 |
| gzip -9n debian/utils/usr/share/man/man1/dhcp_release.1 |
| install -m 755 contrib/lease-tools/dhcp_release6 debian/utils/usr/bin/dhcp_release6 |
| install -m 644 contrib/lease-tools/dhcp_release6.1 debian/utils/usr/share/man/man1/dhcp_release6.1 |
| gzip -9n debian/utils/usr/share/man/man1/dhcp_release6.1 |
| install -m 755 contrib/lease-tools/dhcp_lease_time debian/utils/usr/bin/dhcp_lease_time |
| install -m 644 contrib/lease-tools/dhcp_lease_time.1 debian/utils/usr/share/man/man1/dhcp_lease_time.1 |
| install -m 644 debian/copyright debian/utils/usr/share/doc/dnsmasq-utils/copyright |
| install -m 644 debian/changelog debian/utils/usr/share/doc/dnsmasq-utils/changelog.Debian |
| gzip -9n debian/utils/usr/share/doc/dnsmasq-utils/changelog.Debian |
| gzip -9n debian/utils/usr/share/man/man1/dhcp_lease_time.1 |
| ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) |
| $(DEB_HOST_GNU_TYPE)-strip -R .note -R .comment debian/utils/usr/bin/dhcp_release |
| $(DEB_HOST_GNU_TYPE)-strip -R .note -R .comment debian/utils/usr/bin/dhcp_release6 |
| $(DEB_HOST_GNU_TYPE)-strip -R .note -R .comment debian/utils/usr/bin/dhcp_lease_time |
| endif |
| cd debian/utils && find . -type f ! -regex '.*DEBIAN/.*' -printf '%P\0' | LC_ALL=C sort -z | xargs -r0 md5sum > DEBIAN/md5sums |
| dpkg-shlibdeps -Tdebian/utils-substvars debian/utils/usr/bin/dhcp_release debian/utils/usr/bin/dhcp_lease_time |
| dpkg-gencontrol $(PACKAGE_VERSION) -Tdebian/utils-substvars -pdnsmasq-utils -Pdebian/utils |
| find debian/utils -depth -newermt '$(BUILD_DATE)' -print0 | xargs -0r touch --no-dereference --date='$(BUILD_DATE)' |
| chown -R root.root debian/utils |
| chmod -R g-ws debian/utils |
| dpkg --build debian/utils .. |
| endif |
| |
| define checkdir |
| test -f Makefile -a -f debian/rules |
| endef |
| |
| # Below here is fairly generic really |
| |
| binary: binary-arch binary-indep |
| |
| build: |
| build-arch: |
| build-indep: |
| |
| checkroot: |
| test root = "`whoami`" |
| |
| .PHONY: binary binary-arch binary-indep clean checkroot |
| |
| |