File: rules

package info (click to toggle)
freeradius 1.0.2-4sarge3
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 9,792 kB
  • ctags: 6,980
  • sloc: ansic: 52,618; sh: 9,731; php: 5,764; perl: 2,309; makefile: 1,056; sql: 730; python: 159; tcl: 33; sed: 23
file content (214 lines) | stat: -rwxr-xr-x 7,879 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
#! /usr/bin/make -f
#
#	debian/rules file for freeradius
#

SHELL		=/bin/bash

package		= freeradius
debiandir	= $(shell pwd)/debian
freeradius_dir	= $(debiandir)/$(package)

mandir		= /usr/share/man
libdir		= /usr/lib/$(package)
logdir		= /var/log/$(package)
pkgdocdir	= /usr/share/doc/$(package)
raddbdir	= /etc/$(package)

export DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

export CFLAGS = -Wall -g

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
else
	CFLAGS += -O2
endif

# Autoconf 2.13 arch support
ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
	confflags += $(DEB_HOST_GNU_TYPE)
else
	confflags += --host $(DEB_BUILD_GNU_TYPE) --build $(DEB_HOST_GNU_TYPE)
endif

build-simple stamp-build:
	dh_testdir
	# dh_testroot
	./configure \
		$(confflags) \
		--prefix=/usr \
		--exec-prefix=/usr \
		--mandir=$(mandir) \
		--sysconfdir=/etc \
		--libdir=$(libdir) \
		--datadir=/usr/share \
		--localstatedir=/var \
		--with-raddbdir=$(raddbdir) \
		--with-logdir=/var/log/$(package) \
		--with-thread-pool --with-system-libtool \
		--enable-ltdl-install=no --enable-strict-dependencies \
		--without-rlm_eap_peap \
		--without-rlm_eap_tls \
		--without-rlm_eap_ttls \
		--without-rlm_sql_postgresql \
		--without-snmp \
		--with-udpfromto --with-edir \
		--enable-developer
	
	# Modify Make.inc for Debian...
	TEMPFILE=`mktemp /tmp/radmake-XXXXXX`; \
	cp Make.inc $$TEMPFILE; \
	cat $$TEMPFILE \
		| sed -e 's!${localstatedir}/run/radiusd!${localstatedir}/run/freeradius!' \
			> Make.inc; \
	rm $$TEMPFILE

	make
	touch stamp-build

build: autotools build-simple

binary-indep: stamp-build

binary-arch: stamp-build
	dh_testroot
	dh_clean
	dh_installdirs
	make install R=$(freeradius_dir)

	# rename radius binary to play nicely with others
	mv $(freeradius_dir)/usr/sbin/radiusd $(freeradius_dir)/usr/sbin/$(package)

	# clean up install cruft.  $$&@!%
	rm $(freeradius_dir)/usr/sbin/rc.radiusd
	test ! -d $(freeradius_dir)/etc/raddb || rmdir $(freeradius_dir)/etc/raddb
	test ! -d $(freeradius_dir)/var/log/radius/radacct || rmdir $(freeradius_dir)/var/log/radius/radacct
	test ! -d $(freeradius_dir)/var/log/radius || rmdir $(freeradius_dir)/var/log/radius
#	Yuck! the makefile in doc/ does this.
	rm -rf $(freeradius_dir)/usr/share/doc/freeradius-1.0.2

	# split out inconvenient/controversal modules to other places
	for modname in krb5 ldap mysql iodbc; do \
		mkdir -p $(debiandir)/$(package)-$${modname}/$(libdir); \
		mv $(freeradius_dir)/$(libdir)/rlm*_$${modname}* $(debiandir)/$(package)-$${modname}/$(libdir)/; \
	done

	# man pages & docs
	install -g root -m 644 CREDITS $(freeradius_dir)/$(pkgdocdir)/credits
	dh_installdocs -XChangeLog -X00-OLD -XCVS -XMakefile doc/*
	dh_installexamples -XCVS `find src/modules/rlm_sql/drivers -type f -name \*.sql`
	dh_installchangelogs doc/ChangeLog
	#Rename manpage to go with binary
	mv $(freeradius_dir)/$(mandir)/man8/radiusd.8 $(freeradius_dir)/$(mandir)/man8/$(package).8

	# SNMP mibs
	install -g root -m 644 mibs/*.txt $(freeradius_dir)/usr/share/snmp/mibs

	# supporting programs
	TEMPFILE=`mktemp /tmp/radconf-XXXXXX`; \
	cp $(freeradius_dir)/$(raddbdir)/radiusd.conf $$TEMPFILE; \
	cat $$TEMPFILE \
		| sed -e 's/        /	/g' \
			-e '/^	example {/,/^	}/s/^/#/' \
			-e 's/#	shadow = /shadow = /' \
			-e 's/^#\?group = nobody/group = freerad/' \
			-e 's/^#\?user = nobody/user = freerad/' \
			-e 's!/run/radiusd!/run/freeradius!' \
			-e 's!radiusd.pid!freeradius.pid!' \
			> $(freeradius_dir)/$(raddbdir)/radiusd.conf; \
	rm $$TEMPFILE

	# Dialup-Admin
	dh_installdocs -p freeradius-dialupadmin dialup_admin/README dialup_admin/doc/*
	dh_installchangelogs -p freeradius-dialupadmin dialup_admin/Changelog
	dh_installexamples -p freeradius-dialupadmin dialup_admin/bin/dialup_admin.cron
	dh_install -p freeradius-dialupadmin -XCVS dialup_admin/conf/* etc/freeradius-dialupadmin/
	dh_install -p freeradius-dialupadmin -XCVS -XChangelog -XREADME -Xconf/ -Xdoc/ -Xdialup_admin.cron dialup_admin/* usr/share/freeradius-dialupadmin/
	dh_link -p freeradius-dialupadmin etc/freeradius-dialupadmin/ usr/share/freeradius-dialupadmin/conf
	dh_perl -p freeradius-dialupadmin dialup_admin/bin/*
# Fix the crontab example to point to the right directory
	cat $(freeradius_dir)-dialupadmin/usr/share/doc/freeradius-dialupadmin/examples/dialup_admin.cron \
		| sed -e 's#/usr/local/dialup_admin#/usr/share/freeradius-dialupadmin#' \
		> $(freeradius_dir)-dialupadmin/usr/share/doc/freeradius-dialupadmin/examples/freeradius-dialupadmin.cron
	rm $(freeradius_dir)-dialupadmin/usr/share/doc/freeradius-dialupadmin/examples/dialup_admin.cron
	TEMPFILE=`mktemp /tmp/dialupconf-XXXXXX`; \
	cp $(freeradius_dir)-dialupadmin/etc/freeradius-dialupadmin/admin.conf $$TEMPFILE; \
	cat $$TEMPFILE \
		| sed -e 's#/usr/local/dialup_admin#/usr/share/freeradius-dialupadmin#' \
			-e 's#/usr/local/radiusd#/usr#' \
			-e 's#general_raddb_dir: %{general_radiusd_base_dir}/etc/raddb#general_raddb_dir: /etc/freeradius#' \
			-e 's#general_clients_conf: /usr/local/etc/raddb/clients.conf#general_clients_conf: /etc/freeradius/clients.conf#' \
			-e 's#%{general_base_dir}/conf#/etc/freeradius-dialupadmin#' \
			-e 's#/usr/local/bin#/usr/bin#' \
		> $(freeradius_dir)-dialupadmin/etc/freeradius-dialupadmin/admin.conf; \
	rm $$TEMPFILE;
	TEMPFILE=`mktemp /tmp/dialuphelp-XXXXXX`; \
	cp $(freeradius_dir)-dialupadmin/usr/share/freeradius-dialupadmin/htdocs/help/help.php3 $$TEMPFILE; \
	cat $$TEMPFILE \
		| sed -e 's#readfile#readgzfile#' \
			-e 's#../../README#/usr/share/doc/freeradius-dialupadmin/README.gz#' \
			-e 's#../../doc/HOWTO#/usr/share/doc/freeradius-dialupadmin/HOWTO.gz#' \
			-e 's#../../doc/FAQ#/usr/share/doc/freeradius-dialupadmin/FAQ#' \
		> $(freeradius_dir)-dialupadmin/usr/share/freeradius-dialupadmin/htdocs/help/help.php3; \
	rm $$TEMPFILE;
	for binfile in $(freeradius_dir)-dialupadmin/usr/share/freeradius-dialupadmin/bin/*; do \
		TEMPFILE=`mktemp /tmp/dialupbin-XXXXXX`; \
		cp $$binfile $$TEMPFILE; \
		cat $$TEMPFILE \
			| sed -e 's#/usr/local/bin/#/usr/bin/#' \
				-e 's#/usr/local/dialup_admin/conf/#/etc/freeradius-dialupadmin/#' \
			> $$binfile; \
		rm $$TEMPFILE; \
	done

ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
	dh_strip
endif
	dh_installlogrotate
	dh_installinit -n
	dh_installpam --name=radiusd
	# We don't need ldconfig. None of our libraries go in it's paths
	dh_makeshlibs -n
	dh_shlibdeps
	dh_installdeb
	dh_compress
	dh_fixperms
	dh_md5sums
	dh_gencontrol
	dh_builddeb

clean:	
	dh_testdir
	rm -f stamp-build debian/{files,substvars} debian/*.debhelper libltdl/stamp-h1
	[ -f Make.inc ] && make distclean || true
	dh_clean
	rm -rf $(freeradius_dir) $(debiandir)/$(package)-{krb5,ldap,mysql,iodbc}{,.substvars}
	[ -f config.sub.dist ] && rm config.sub && mv config.sub.dist config.sub || true
	[ -f config.guess.dist ] && rm config.guess && mv config.guess.dist config.guess || true


binary: binary-indep binary-arch

# The autotools target adds forced build-time dependencies on
# autotools-dev (for /usr/share/misc/config.*)
# It's also a .PHONY make target.
autotools:
	if [ -e config.sub.dist ]; then rm config.sub; else mv config.sub config.sub.dist; fi
	if [ -e config.guess.dist ]; then rm config.guess; else mv config.guess config.guess.dist; fi
	ln -s /usr/share/misc/config.sub config.sub
	ln -s /usr/share/misc/config.guess config.guess

# for the maintainer only
sanitycheck:
	@echo -n "sanity: checking for overzealous undocumented file... "
	@find man/ -type f |grep \. |sed -e 's%man/man./%%' | { \
		while read manpage; do \
			grep $$manpage debian/$(package).undocumented | read filename && echo -n $$filename; \
		done; \
	} || true
	@test -n $$filename
	@echo good.

.PHONY: binary binary-arch binary-indep clean sanitycheck autotools