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