New build path variable
[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
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 include /usr/share/quilt/quilt.make
53
54 config.status: configure
55         dh_testdir
56
57 ifeq (config.sub.dist,$(wildcard config.sub.dist))
58         rm config.sub
59 else
60         mv config.sub config.sub.dist
61 endif
62 ifeq (config.guess.dist,$(wildcard config.guess.dist))
63         rm config.guess
64 else
65         mv config.guess config.guess.dist
66 endif
67         ln -s /usr/share/misc/config.sub config.sub
68         ln -s /usr/share/misc/config.guess config.guess
69         
70
71         ./configure $(confflags) \
72                 --prefix=/usr \
73                 --exec-prefix=/usr \
74                 --mandir=$(mandir) \
75                 --sysconfdir=/etc \
76                 --libdir=$(libdir) \
77                 --datadir=/usr/share \
78                 --localstatedir=/var \
79                 --with-raddbdir=$(raddbdir) \
80                 --with-logdir=/var/log/$(package) \
81                 --enable-ltdl-install=no --enable-strict-dependencies \
82                 --with-large-files --with-udpfromto --with-edir \
83                 --enable-developer \
84                 --config-cache \
85                 --without-rlm_eap_tnc \
86                 --with-rlm_sql_postgresql_lib_dir=`pg_config --libdir` \
87                 --with-rlm_sql_postgresql_include_dir=`pg_config --includedir` \
88                 --without-rlm_eap_ikev2 \
89                 --without-rlm_sql_oracle \
90                 --without-rlm_sql_unixodbc \
91                 --with-system-libtool
92
93 #Architecture 
94 build: patch build-arch build-indep
95
96 build-arch: build-arch-stamp
97 build-arch-stamp: config.status
98         $(MAKE) 
99         touch $@
100
101 build-indep: build-indep-stamp
102 build-indep-stamp: config.status
103         touch $@
104
105 clean: unpatch
106         dh_testdir
107         dh_testroot
108         rm -f build-arch-stamp build-indep-stamp 
109         rm -f config.cache config.log
110         rm -f src/freeradius-devel
111         
112         [ ! -d src/modules/lib ] || rm -fr src/modules/lib || true
113         [ ! -d src/binary ] || rm -fr src/binary || true
114
115         # Add here commands to clean up after the build process.
116 ifeq (Make.inc,$(wildcard Make.inc))
117         $(MAKE) distclean
118 endif
119 ifeq (config.sub.dist,$(wildcard config.sub.dist))
120         rm -f config.sub
121         mv config.sub.dist config.sub
122 endif
123 ifeq (config.guess.dist,$(wildcard config.guess.dist))
124         rm -f config.guess
125         mv config.guess.dist config.guess
126 endif
127         dh_clean 
128
129 install: install-indep install-arch
130 install-indep: build-indep-stamp
131         dh_testdir
132         dh_testroot
133         dh_installdirs -i
134
135         $(MAKE) -C dialup_admin DIALUP_PREFIX=/usr/share/freeradius-dialupadmin \
136                                 DIALUP_DOCDIR=/usr/share/doc/freeradius-dialupadmin \
137                                 DIALUP_CONFDIR=/etc/freeradius-dialupadmin \
138                                 R=$(freeradius_dir) install
139
140         mv $(freeradius_dir)/usr/share/freeradius-dialupadmin/bin/dialup_admin.cron \
141                $(freeradius_dir)/usr/share/freeradius-dialupadmin/bin/freeradius-dialupadmin.cron
142         mv $(freeradius_dir)/usr/share/doc/freeradius-dialupadmin/Changelog \
143                $(freeradius_dir)/usr/share/doc/freeradius-dialupadmin/changelog
144
145         install -m0644 debian/apache2.conf $(freeradius_dir)/etc/freeradius-dialupadmin/
146
147         dh_install -i --sourcedir=$(freeradius_dir)
148         dh_installdocs -p freeradius-dialupadmin dialup_admin/README
149
150 install-arch: build-arch-stamp
151         dh_testdir
152         dh_testroot
153         dh_installdirs -s
154         test -d $(freeradius_dir)/usr/lib/freeradius || mkdir -p $(freeradius_dir)/usr/lib/freeradius
155         ln -s rlm_sql.so $(freeradius_dir)/usr/lib/freeradius/librlm_sql.so
156         $(MAKE) install R=$(freeradius_dir)
157         
158         # rename radius binary to play nicely with others
159         mv $(freeradius_dir)/usr/sbin/radiusd $(freeradius_dir)/usr/sbin/$(package)
160         mv $(freeradius_dir)/$(mandir)/man8/radiusd.8 $(freeradius_dir)/$(mandir)/man8/$(package).8
161         
162         dh_install --sourcedir=$(freeradius_dir) -p libfreeradius2
163         dh_install --sourcedir=$(freeradius_dir) -p libfreeradius-dev
164
165         for mod in ${modulelist}; do \
166           pkg=$${mod##sql_} ; \
167           dh_install --sourcedir=$(freeradius_dir) -p freeradius-$$pkg ; \
168           rm -f $(freeradius_dir)/usr/lib/freeradius/rlm_$$mod*.so ; \
169         done
170
171         dh_install --sourcedir=$(freeradius_dir) -p freeradius-utils
172         dh_install --sourcedir=$(freeradius_dir) -p freeradius
173         
174         dh_strip -a --dbg-package=freeradius-dbg
175
176         dh_makeshlibs -a -n
177         dh_shlibdeps
178
179 binary-common:
180         dh_testdir
181         dh_testroot
182         dh_installchangelogs doc/ChangeLog
183         dh_installdocs
184         dh_installexamples
185         chmod -x debian/freeradius/usr/share/doc/freeradius/examples/example.pl
186         dh_installlogrotate     
187         dh_installpam --name=radiusd 
188         dh_installinit --noscripts
189         dh_installman
190         dh_lintian
191         dh_link
192         dh_compress -Xexamples
193         dh_fixperms
194         dh_installdeb
195         dh_gencontrol
196         dh_md5sums
197         dh_builddeb
198
199 # Build architecture independant packages using the common target.
200 binary-indep: build-indep install-indep
201         $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
202
203 # Build architecture dependant packages using the common target.
204 binary-arch: build-arch install-arch
205         $(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
206
207 binary: binary-arch binary-indep
208 .PHONY: build clean binary-indep binary-arch binary install install-indep install-arch