#!/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


