blob: abb9bc03fdb1c346ef1a373369dd618f42f3f8e8 [file] [log] [blame]
Simon Kelleyc72daea2012-01-05 21:33:27 +00001#!/usr/bin/make -f
2# debian/rules file - for dnsmasq.
3# Copyright 2001-2011 by Simon Kelley
4# Based on the sample in the debian hello package which carries the following:
5# Copyright 1994,1995 by Ian Jackson.
6# I hereby give you perpetual unlimited permission to copy,
7# modify and relicense this file, provided that you do not remove
8# my name from the file itself. (I assert my moral right of
9# paternity under the Copyright, Designs and Patents Act 1988.)
10# This file may have to be extensively modified
11
12package=dnsmasq-base
13
Simon Kelley97c83bb2012-05-28 18:21:59 +010014CFLAGS = $(shell export DEB_BUILD_OPTIONS=$(DEB_BUILD_OPTIONS); dpkg-buildflags --get CFLAGS)
15CFLAGS += $(shell dpkg-buildflags --get CPPFLAGS)
16CFLAGS += -Wall -W
17
18LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS)
Simon Kelleyc72daea2012-01-05 21:33:27 +000019
Simon Kelley00ec6932014-01-28 11:08:57 +000020COPTS =
Simon Kelley97c83bb2012-05-28 18:21:59 +010021
Simon Kelleyc72daea2012-01-05 21:33:27 +000022TARGET = install-i18n
23
24DEB_BUILD_ARCH_OS := $(shell dpkg-architecture -qDEB_BUILD_ARCH_OS)
25
Simon Kelley02ed24d2013-09-09 18:06:45 +010026# Force package version based on git tags.
27ifneq (,$(filter gitversion,$(DEB_BUILD_OPTIONS)))
Simon Kelley1d1c7952013-10-02 14:52:23 +010028 PACKAGE_VERSION = $(shell bld/get-version `pwd` | sed 's/test/~&/; s/[a-z]/~&/; s/-/./g; s/$$/-1/; s/^/-v/';)
Simon Kelley02ed24d2013-09-09 18:06:45 +010029endif
30
Simon Kelley62779782012-02-10 21:19:25 +000031ifeq (,$(filter nodbus,$(DEB_BUILD_OPTIONS)))
Simon Kelleyc72daea2012-01-05 21:33:27 +000032 COPTS += -DHAVE_DBUS
33endif
34
Simon Kelley62779782012-02-10 21:19:25 +000035ifeq (,$(filter noconntrack,$(DEB_BUILD_OPTIONS)))
Simon Kelleyc72daea2012-01-05 21:33:27 +000036ifeq ($(DEB_BUILD_ARCH_OS),linux)
37 COPTS += -DHAVE_CONNTRACK
38endif
39endif
40
Simon Kelley3ddad242013-03-21 17:56:06 +000041ifneq (,$(filter noipset,$(DEB_BUILD_OPTIONS)))
42 COPTS += -DNO_IPSET
Simon Kelley3b323bd2013-02-22 21:55:29 +000043endif
44
Simon Kelley96c38792012-02-16 20:07:17 +000045ifneq (,$(filter nodhcp6,$(DEB_BUILD_OPTIONS)))
46 COPTS += -DNO_DHCP6
Simon Kelley127ea402012-02-11 22:14:52 +000047endif
48
Simon Kelley62779782012-02-10 21:19:25 +000049ifneq (,$(filter noipv6,$(DEB_BUILD_OPTIONS)))
Simon Kelleyc72daea2012-01-05 21:33:27 +000050 COPTS += -DNO_IPV6
51endif
52
Simon Kelley62779782012-02-10 21:19:25 +000053ifneq (,$(filter notftp,$(DEB_BUILD_OPTIONS)))
Simon Kelleyc72daea2012-01-05 21:33:27 +000054 COPTS += -DNO_TFTP
55endif
56
Simon Kelley62779782012-02-10 21:19:25 +000057ifneq (,$(filter nodhcp,$(DEB_BUILD_OPTIONS)))
Simon Kelleyc72daea2012-01-05 21:33:27 +000058 COPTS += -DNO_DHCP
59endif
60
Simon Kelley62779782012-02-10 21:19:25 +000061ifneq (,$(filter noscript,$(DEB_BUILD_OPTIONS)))
Simon Kelleyc72daea2012-01-05 21:33:27 +000062 COPTS += -DNO_SCRIPT
63endif
64
Simon Kelley62779782012-02-10 21:19:25 +000065ifneq (,$(filter nortc,$(DEB_BUILD_OPTIONS)))
Simon Kelleyc72daea2012-01-05 21:33:27 +000066 COPTS += -DHAVE_BROKEN_RTC
67endif
68
Simon Kelley62779782012-02-10 21:19:25 +000069ifneq (,$(filter noi18n,$(DEB_BUILD_OPTIONS)))
Simon Kelleyc72daea2012-01-05 21:33:27 +000070 TARGET = install
Simon Kelley62779782012-02-10 21:19:25 +000071 ifeq (,$(filter noidn, $(DEB_BUILD_OPTIONS)))
Simon Kelleyc72daea2012-01-05 21:33:27 +000072 COPTS += -DHAVE_IDN
73 endif
74endif
75
Simon Kelley62779782012-02-10 21:19:25 +000076ifneq (,$(filter uselua,$(DEB_BUILD_OPTIONS)))
77 COPTS += -DHAVE_LUASCRIPT
78endif
79
Simon Kelley00ec6932014-01-28 11:08:57 +000080ifneq (,$(filter usednssec,$(DEB_BUILD_OPTIONS)))
81 COPTS += -DHAVE_DNSSEC
82endif
83
Simon Kelleyc72daea2012-01-05 21:33:27 +000084clean:
85 $(checkdir)
86 rm -rf debian/daemon debian/base debian/utils debian/*~ debian/files debian/substvars debian/utils-substvars
87 make clean
88 make -C contrib/wrt clean
89
90binary-indep: checkroot
91 $(checkdir)
92 rm -rf debian/daemon
93 install -m 755 \
94 -d debian/daemon/DEBIAN \
95 -d debian/daemon/usr/share/doc \
96 -d debian/daemon/etc/init.d \
97 -d debian/daemon/etc/dnsmasq.d \
98 -d debian/daemon/etc/resolvconf/update.d \
99 -d debian/daemon/usr/lib/resolvconf/dpkg-event.d \
100 -d debian/daemon/etc/default \
Simon Kelleyc72daea2012-01-05 21:33:27 +0000101 -d debian/daemon/lib/systemd/system \
102 -d debian/daemon/etc/insserv.conf.d
103 install -m 644 debian/conffiles debian/daemon/DEBIAN
104 install -m 755 debian/postinst debian/postrm debian/prerm debian/daemon/DEBIAN
105 install -m 755 debian/init debian/daemon/etc/init.d/dnsmasq
106 install -m 755 debian/resolvconf debian/daemon/etc/resolvconf/update.d/dnsmasq
107 install -m 755 debian/resolvconf-package debian/daemon/usr/lib/resolvconf/dpkg-event.d/dnsmasq
108 install -m 644 debian/default debian/daemon/etc/default/dnsmasq
109 install -m 644 dnsmasq.conf.example debian/daemon/etc/dnsmasq.conf
110 install -m 644 debian/readme.dnsmasq.d debian/daemon/etc/dnsmasq.d/README
Simon Kelleyc72daea2012-01-05 21:33:27 +0000111 install -m 644 debian/systemd.service debian/daemon/lib/systemd/system/dnsmasq.service
112 install -m 644 debian/insserv debian/daemon/etc/insserv.conf.d/dnsmasq
113 ln -s $(package) debian/daemon/usr/share/doc/dnsmasq
114 cd debian/daemon && find . -type f ! -regex '.*DEBIAN/.*' -printf '%P\0' | xargs -r0 md5sum > DEBIAN/md5sums
Simon Kelleyaa985be2013-09-11 10:28:39 +0100115 dpkg-gencontrol $(PACKAGE_VERSION) -T -pdnsmasq -Pdebian/daemon
Simon Kelleyc72daea2012-01-05 21:33:27 +0000116 chown -R root.root debian/daemon
117 chmod -R g-ws debian/daemon
118 dpkg --build debian/daemon ..
119
120binary-arch: checkroot
121 $(checkdir)
122 rm -rf debian/base
123 install -m 755 \
124 -d debian/base/DEBIAN \
Simon Kelley4ba9b382012-07-29 17:07:48 +0100125 -d debian/base/etc/dbus-1/system.d \
Simon Kelleyc72daea2012-01-05 21:33:27 +0000126 -d debian/base/usr/share/doc/$(package) \
127 -d debian/base/usr/share/doc/$(package)/examples \
128 -d debian/base/var/run \
129 -d debian/base/var/lib/misc
Simon Kelley43c271b2012-06-07 10:02:53 +0100130 make $(TARGET) PREFIX=/usr DESTDIR=`pwd`/debian/base CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" COPTS="$(COPTS)" CC=gcc
Simon Kelleyc72daea2012-01-05 21:33:27 +0000131ifeq (,$(findstring nodocs,$(DEB_BUILD_OPTIONS)))
132 install -m 644 doc.html debian/base/usr/share/doc/$(package)/.
133 install -m 644 setup.html debian/base/usr/share/doc/$(package)/.
134 install -m 644 dnsmasq.conf.example debian/base/usr/share/doc/$(package)/examples/.
135 install -m 644 FAQ debian/base/usr/share/doc/$(package)/.
136 gzip -9 debian/base/usr/share/doc/$(package)/FAQ
137 install -m 644 CHANGELOG debian/base/usr/share/doc/$(package)/changelog
138 gzip -9 debian/base/usr/share/doc/$(package)/changelog
139 install -m 644 CHANGELOG.archive debian/base/usr/share/doc/$(package)/changelog.archive
140 gzip -9 debian/base/usr/share/doc/$(package)/changelog.archive
141 install -m 644 dbus/DBus-interface debian/base/usr/share/doc/$(package)/.
142 gzip -9 debian/base/usr/share/doc/$(package)/DBus-interface
143endif
Simon Kelley4ba9b382012-07-29 17:07:48 +0100144 install -m 644 debian/dnsmasq-base.conffiles debian/base/DEBIAN/conffiles
Simon Kelleybc54ae32012-08-28 21:26:56 +0100145 install -m 755 debian/dnsmasq-base.postinst debian/base/DEBIAN/postinst
146 install -m 755 debian/dnsmasq-base.postrm debian/base/DEBIAN/postrm
Simon Kelleyc72daea2012-01-05 21:33:27 +0000147 install -m 644 debian/changelog debian/base/usr/share/doc/$(package)/changelog.Debian
148 gzip -9 debian/base/usr/share/doc/$(package)/changelog.Debian
149 install -m 644 debian/readme debian/base/usr/share/doc/$(package)/README.Debian
150 install -m 644 debian/copyright debian/base/usr/share/doc/$(package)/copyright
Simon Kelley4ba9b382012-07-29 17:07:48 +0100151 install -m 644 debian/dbus.conf debian/base/etc/dbus-1/system.d/dnsmasq.conf
Simon Kelleyc72daea2012-01-05 21:33:27 +0000152 gzip -9 debian/base/usr/share/man/man8/dnsmasq.8
153 for f in debian/base/usr/share/man/*; do \
154 if [ -f $$f/man8/dnsmasq.8 ]; then \
155 gzip -9 $$f/man8/dnsmasq.8 ; \
156 fi \
157 done
158ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
159 strip -R .note -R .comment debian/base/usr/sbin/dnsmasq
160endif
161 cd debian/base && find . -type f ! -regex '.*DEBIAN/.*' -printf '%P\0' | xargs -r0 md5sum > DEBIAN/md5sums
Simon Kelleyaa985be2013-09-11 10:28:39 +0100162 dpkg-shlibdeps --warnings=1 debian/base/usr/sbin/dnsmasq
Simon Kelley02ed24d2013-09-09 18:06:45 +0100163 dpkg-gencontrol $(PACKAGE_VERSION) -pdnsmasq-base -Pdebian/base
Simon Kelleyc72daea2012-01-05 21:33:27 +0000164 chown -R root.root debian/base
165 chmod -R g-ws debian/base
166 dpkg --build debian/base ..
167
168ifeq ($(DEB_BUILD_ARCH_OS),linux)
169 rm -rf debian/utils
170 install -m 755 -d debian/utils/DEBIAN \
171 -d debian/utils/usr/share/man/man1 \
172 -d debian/utils/usr/bin \
173 -d debian/utils/usr/share/doc/dnsmasq-utils
Simon Kelley43c271b2012-06-07 10:02:53 +0100174 make -C contrib/wrt PREFIX=/usr DESTDIR=`pwd`/debian/utils CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" COPTS="$(COPTS)" CC=gcc
Simon Kelleyc72daea2012-01-05 21:33:27 +0000175 install -m 755 contrib/wrt/dhcp_release debian/utils/usr/bin/dhcp_release
176 install -m 644 contrib/wrt/dhcp_release.1 debian/utils/usr/share/man/man1/dhcp_release.1
177 gzip -9 debian/utils/usr/share/man/man1/dhcp_release.1
178 install -m 755 contrib/wrt/dhcp_lease_time debian/utils/usr/bin/dhcp_lease_time
179 install -m 644 contrib/wrt/dhcp_lease_time.1 debian/utils/usr/share/man/man1/dhcp_lease_time.1
180 install -m 644 debian/copyright debian/utils/usr/share/doc/dnsmasq-utils/copyright
181 install -m 644 debian/changelog debian/utils/usr/share/doc/dnsmasq-utils/changelog.Debian
182 gzip -9 debian/utils/usr/share/doc/dnsmasq-utils/changelog.Debian
183 gzip -9 debian/utils/usr/share/man/man1/dhcp_lease_time.1
184ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
185 strip -R .note -R .comment debian/utils/usr/bin/dhcp_release
186 strip -R .note -R .comment debian/utils/usr/bin/dhcp_lease_time
187endif
188 cd debian/utils && find . -type f ! -regex '.*DEBIAN/.*' -printf '%P\0' | xargs -r0 md5sum > DEBIAN/md5sums
189 dpkg-shlibdeps -Tdebian/utils-substvars debian/utils/usr/bin/dhcp_release debian/utils/usr/bin/dhcp_lease_time
Simon Kelley02ed24d2013-09-09 18:06:45 +0100190 dpkg-gencontrol $(PACKAGE_VERSION) -Tdebian/utils-substvars -pdnsmasq-utils -Pdebian/utils
Simon Kelleyc72daea2012-01-05 21:33:27 +0000191 chown -R root.root debian/utils
192 chmod -R g-ws debian/utils
193 dpkg --build debian/utils ..
194endif
195
196define checkdir
197 test -f Makefile -a -f debian/rules
198endef
199
200# Below here is fairly generic really
201
202binary: binary-arch binary-indep
Simon Kelley760169f2012-03-09 14:27:49 +0000203
Simon Kelleyc72daea2012-01-05 21:33:27 +0000204build:
Simon Kelley760169f2012-03-09 14:27:49 +0000205build-arch:
206build-indep:
Simon Kelleyc72daea2012-01-05 21:33:27 +0000207
208checkroot:
209 test root = "`whoami`"
210
211.PHONY: binary binary-arch binary-indep clean checkroot
212
213