debian: updated to 0.4
[freeradius.git] / debian / rules
1 #! /usr/bin/make -f
2 #
3 #       debian/rules file for freeradius
4 #
5
6 SHELL=/bin/bash
7 DH_COMPAT=3
8 export DH_COMPAT
9
10 package = freeradius
11 debiandir = $(shell pwd)/debian
12 radiusd_freeradius_dir     = $(debiandir)/radiusd-freeradius
13
14 prefix  = /
15 exec_prefix     = /usr
16 mandir  = $(exec_prefix)/share/man
17 libdir  = $(exec_prefix)/lib/freeradius
18 logdir  = /var/log/radiusd-freeradius
19 pkgdocdir       = $(exec_prefix)/share/doc/radiusd-freeradius
20 raddbdir        = $(prefix)/etc/raddb
21
22 build:
23 # Builds the binary package.
24         dh_testdir
25         # dh_testroot
26         ./configure --prefix=$(prefix) --exec-prefix=$(exec_prefix) --libdir=$(libdir) --mandir=$(mandir) --with-logdir=$(logdir) --with-thread-pool --enable-ltdl-install=no --enable-strict-dependencies
27         make
28         touch build
29
30 # Architecture independant files.
31 binary-indep: build
32
33 # Make a binary package (.deb file)
34 binary-arch: build
35         dh_clean
36         dh_installdirs
37         make install prefix=$(prefix) exec_prefix=$(exec_prefix) mandir=$(mandir) libdir=$(libdir) R=$(radiusd_freeradius_dir)
38         # clean up install cruft.  $$&@!%
39         rmdir $(radiusd_freeradius_dir)/$(execprefix)/include
40         rm $(radiusd_freeradius_dir)/$(execprefix)/usr/sbin/rc.radiusd
41         # split out inconvenient/controversal modules to other places
42         for modname in krb5 ldap mysql postgresql; do \
43                 mkdir -p $(debiandir)/radiusd-freeradius-$${modname}/$(libdir); \
44                 mv $(radiusd_freeradius_dir)/$(libdir)/rlm*_$${modname}.* $(debiandir)/radiusd-freeradius-$${modname}/$(libdir)/; \
45         done
46         # man pages & docs
47         dh_undocumented 
48         install -g root -m 644 CREDITS $(radiusd_freeradius_dir)/$(pkgdocdir)/credits
49         find doc -type f -maxdepth 1 ! -path doc/ChangeLog -exec dh_installdocs {} \;
50         find src/modules/rlm_sql/drivers -type f -name \*.sql -exec dh_installdocs {} \;
51         # dh_installchangelogs doc/ChangeLog
52         dh_compress
53         # supporting programs
54         dh_installlogrotate
55         install -g root -m 755 $(debiandir)/initscript $(radiusd_freeradius_dir)/$(prefix)/etc/init.d/freeradius
56         TEMPFILE=`mktemp /tmp/radconf-XXXXXX`; \
57         cp $(radiusd_freeradius_dir)/$(raddbdir)/radiusd.conf $$TEMPFILE; \
58         cat $$TEMPFILE \
59                 | sed -e 's/        /   /g' \
60                 | sed -e '/^    example {/,/^   }/s/^/#/' \
61                 | sed -e 's/^           #       shadow          =/              shadow          =/' \
62                 | sed -e 's#^\(run_dir = .{localstatedir}/run\)#\1/radiusd#' \
63                 | sed -e 's/^group = nobody/group = freerad/' \
64                 | sed -e 's/^user = nobody/user = freerad/' \
65                         > $(radiusd_freeradius_dir)/$(raddbdir)/radiusd.conf; \
66         rm $$TEMPFILE
67         # 
68         dh_strip
69         dh_installchangelogs
70         dh_makeshlibs
71         dh_shlibdeps
72         dh_installdeb
73         dh_compress
74         dh_fixperms
75         dh_md5sums
76         dh_gencontrol
77         dh_builddeb
78
79 clean:  
80         rm -f build debian/{files,substvars} debian/*.debhelper
81         [ -f Make.inc ] && make distclean || true
82         dh_clean
83         rm -rf $(radiusd_freeradius_dir) radiusd-freeradius-{ldap,postgresql,mysql,krb5}{,.substvars}
84
85 binary: binary-indep binary-arch
86
87 # for the maintainer only
88 sanitycheck:
89         @echo -n "sanity: checking for overzealous undocumented file... "
90         @find man/ -type f |grep \. |sed -e 's%man/man./%%' | { \
91                 while read manpage; do \
92                         grep $$manpage debian/radiusd-freeradius.undocumented | read filename && echo -n $$filename; \
93                 done; \
94         } || true
95         @test -n $$filename
96         @echo good.
97
98 .PHONY: binary binary-arch binary-indep clean sanitycheck