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