note recent changes
[freeradius.git] / debian / rules
1 #!/usr/bin/make -f
2 # -*- makefile -*-
3 # Sample debian/rules that uses debhelper.
4 #
5 # This file was originally written by Joey Hess and Craig Small.
6 # As a special exception, when this file is copied by dh-make into a
7 # dh-make output file, you may use that output file without restriction.
8 # This special exception was added by Craig Small in version 0.37 of dh-make.
9 #
10 # Modified to make a template file for a multi-binary package with separated
11 # build-arch and build-indep targets  by Bill Allombert 2001
12
13 # Uncomment this to turn on verbose mode.
14 export DH_VERBOSE=1
15 DPKG_EXPORT_BUILDFLAGS = 1
16 include /usr/share/dpkg/default.mk
17
18
19 .NOTPARALLEL:
20
21 SHELL           = /bin/bash
22
23 package         = freeradius
24 freeradius_dir  = $(CURDIR)/debian/tmp
25
26 mandir          = /usr/share/man
27 libdir          = /usr/lib/$(package)
28 logdir          = /var/log/$(package)
29 pkgdocdir       = /usr/share/doc/$(package)
30 raddbdir        = /etc/$(package)
31
32 modulelist=krb5 ldap sql_mysql sql_iodbc sql_postgresql dhcp redis rest yubikey
33 pkgs=$(shell dh_listpackages)
34
35 # This has to be exported to make some magic below work.
36 export DH_OPTIONS
37
38 # These are used for cross-compiling and for saving the configure script
39 # from having to guess our platform (since we know it already)
40 export DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
41 export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
42
43 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
44         CFLAGS += -O0
45 else
46         CFLAGS += -O2
47 endif
48
49 ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
50         confflags += --build $(DEB_HOST_GNU_TYPE)
51 else
52         confflags += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
53 endif
54
55 # Add dependency on distribution specific version of openssl that fixes Heartbleed (CVE-2014-0160).
56 ifeq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes),yes)
57        SUBSTVARS = -Vdist:Depends="libssl1.0.0 (>= 1.0.1f-1ubuntu2)"
58 else
59        SUBSTVARS = -Vdist:Depends="libssl1.0.0 (>= 1.0.1e-2+deb7u5)"
60 endif
61
62 include /usr/share/quilt/quilt.make
63
64 config.status: configure
65         dh_testdir
66
67 ifeq (config.sub.dist,$(wildcard config.sub.dist))
68         rm config.sub
69 else
70         mv config.sub config.sub.dist
71 endif
72 ifeq (config.guess.dist,$(wildcard config.guess.dist))
73         rm config.guess
74 else
75         mv config.guess config.guess.dist
76 endif
77         ln -s /usr/share/misc/config.sub config.sub
78         ln -s /usr/share/misc/config.guess config.guess
79
80
81         ./configure $(confflags) \
82                 --config-cache \
83                 --disable-developer \
84                 --disable-openssl-version-check \
85                 --prefix=/usr \
86                 --exec-prefix=/usr \
87                 --mandir=$(mandir) \
88                 --sysconfdir=/etc \
89                 --libdir=$(libdir) \
90                 --datadir=/usr/share \
91                 --localstatedir=/var \
92                 --with-raddbdir=$(raddbdir) \
93                 --with-logdir=/var/log/$(package) \
94                 --with-large-files \
95                 --with-udpfromto \
96                 --without-rlm_eap_tnc \
97                 --with-rlm_sql_postgresql_lib_dir=`pg_config --libdir` \
98                 --with-rlm_sql_postgresql_include_dir=`pg_config --includedir` \
99                 --with-iodbc-include-dir='/usr/include/iodbc' \
100                 --without-rlm_eap_ikev2 \
101                 --without-rlm_sql_oracle \
102                 --without-rlm_sql_unixodbc
103
104         rm config.guess
105         mv config.guess.dist config.guess
106         rm config.sub
107         mv config.sub.dist config.sub
108
109 #Architecture
110 build: build-arch build-indep
111
112 build-arch: patch build-arch-stamp
113 build-arch-stamp: config.status
114         $(MAKE)
115         touch $@
116
117 build-indep: patch build-indep-stamp
118 build-indep-stamp: config.status
119         touch $@
120
121 clean: unpatch
122         dh_testdir
123         dh_testroot
124         rm -f build-arch-stamp build-indep-stamp
125         rm -f config.cache config.log
126         rm -f src/freeradius-devel
127
128         [ ! -d src/modules/lib ] || rm -fr src/modules/lib || true
129         [ ! -d src/binary ] || rm -fr src/binary || true
130
131         # Add here commands to clean up after the build process.
132 ifeq (Make.inc,$(wildcard Make.inc))
133         $(MAKE) distclean
134 endif
135 ifeq (config.sub.dist,$(wildcard config.sub.dist))
136         rm -f config.sub
137         mv config.sub.dist config.sub
138 endif
139 ifeq (config.guess.dist,$(wildcard config.guess.dist))
140         rm -f config.guess
141         mv config.guess.dist config.guess
142 endif
143         dh_clean
144
145 install: install-arch
146
147 install-arch: build-arch-stamp
148         dh_testdir
149         dh_testroot
150         dh_installdirs
151         test -d $(freeradius_dir)/usr/lib/freeradius || mkdir -p $(freeradius_dir)/usr/lib/freeradius
152         ln -fs rlm_sql.so $(freeradius_dir)/usr/lib/freeradius/librlm_sql.so
153         $(MAKE) install R=$(freeradius_dir) PACKAGE='debian'
154
155         # rename radius binary to play nicely with others
156         mv $(freeradius_dir)/usr/sbin/radiusd $(freeradius_dir)/usr/sbin/$(package)
157         mv $(freeradius_dir)/$(mandir)/man8/radiusd.8 $(freeradius_dir)/$(mandir)/man8/$(package).8
158
159         # don't package symlinks in sites-enabled and mods-enabled - they're
160         # created on install by freeradius-config.postinst
161         rm $(freeradius_dir)/etc/freeradius/sites-enabled/*
162         rm $(freeradius_dir)/etc/freeradius/mods-enabled/*
163
164         dh_install -i --sourcedir=$(freeradius_dir)
165         dh_install --sourcedir=$(freeradius_dir) -p libfreeradius3
166         dh_install --sourcedir=$(freeradius_dir) -p libfreeradius-dev
167         dh_install --sourcedir=$(freeradius_dir) -p freeradius-config
168
169         for mod in ${modulelist}; do \
170           pkg=$${mod##sql_} ; \
171           dh_install --sourcedir=$(freeradius_dir) -p freeradius-$$pkg ; \
172           rm -f $(freeradius_dir)/usr/lib/freeradius/rlm_$$mod*.so ; \
173         done
174
175         dh_install --sourcedir=$(freeradius_dir) -p freeradius-memcached
176         rm -f $(freeradius_dir)/usr/lib/freeradius/rlm_cache_memcached.so
177
178         dh_install --sourcedir=$(freeradius_dir) -p freeradius-utils
179         dh_install --sourcedir=$(freeradius_dir) -p freeradius
180
181         dh_strip -a --dbg-package=freeradius-dbg
182
183         dh_makeshlibs -a -n
184         dh_shlibdeps -l$(freeradius_dir)/usr/lib/freeradius
185
186 binary-common:
187         dh_testdir
188         dh_testroot
189         dh_installchangelogs doc/ChangeLog
190         dh_installdocs -Xdebian/tmp/usr/share/doc/freeradius/ChangeLog
191         dh_installexamples
192         dh_installlogrotate
193         dh_installpam --name=radiusd
194         dh_installinit --noscripts
195         dh_installman
196         dh_lintian
197         dh_link
198         dh_compress -Xexamples
199         dh_fixperms
200         dh_installdeb
201         dh_gencontrol -- $(SUBSTVARS)
202         dh_md5sums
203         dh_builddeb
204
205 # Build architecture independant packages using the common target.
206 binary-indep: build-indep install-indep
207         $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
208
209 # Build architecture dependant packages using the common target.
210 binary-arch: build-arch install-arch
211         $(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
212
213 binary: binary-arch binary-indep
214 .PHONY: build clean binary-indep binary-arch binary install install-indep install-arch