#! /usr/bin/make -f
#
#	debian/rules file for freeradius
#

SHELL=/bin/bash
DH_COMPAT=3

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

prefix	= /
exec_prefix	= /usr
mandir	= $(exec_prefix)/share/man
libdir	= $(exec_prefix)/lib/freeradius
logdir	= /var/log/radiusd-freeradius
pkgdocdir	= $(exec_prefix)/share/doc/radiusd-freeradius
raddbdir	= $(prefix)/etc/raddb

build:
# Builds the binary package.
	dh_testdir
	# dh_testroot
	./configure --prefix=$(prefix) --exec-prefix=$(exec_prefix) --libdir=$(libdir) --mandir=$(mandir) --with-logdir=$(logdir) --with-thread-pool --enable-ltdl-install=no --enable-strict-dependencies
	make
	touch build

# Architecture independant files.
binary-indep: build

# Make a binary package (.deb file)
binary-arch: build
	dh_clean
	dh_installdirs
	make install prefix=$(prefix) exec_prefix=$(exec_prefix) mandir=$(mandir) libdir=$(libdir) R=$(tmp)
	# clean up install cruft.  $$&@!%
	rmdir $(tmp)/$(execprefix)/include
	rm $(tmp)/$(execprefix)/usr/sbin/rc.radiusd
	# split out inconvenient/controversal modules to other places
	for modname in krb5 ldap mysql postgresql; do \
		mkdir -p $(debiandir)/radiusd-freeradius-$${modname}/$(libdir); \
		mv $(tmp)/$(libdir)/rlm*_$${modname}.* $(debiandir)/radiusd-freeradius-$${modname}/$(libdir)/; \
	done
	# man pages & docs
	dh_undocumented 
	install -g root -m 644 CREDITS $(tmp)/$(pkgdocdir)/credits
	find doc -type f -maxdepth 1 ! -path doc/ChangeLog -exec dh_installdocs {} \;
	find src/modules/rlm_sql/drivers -type f -name \*.sql -exec dh_installdocs {} \;
	# dh_installchangelogs doc/ChangeLog
	dh_compress
	# supporting programs
	install -g root -m 755 scripts/radiusd.cron.daily $(tmp)/$(prefix)/etc/cron.daily/freeradius
	install -g root -m 755 scripts/radiusd.cron.monthly $(tmp)/$(prefix)/etc/cron.monthly/freeradius
	install -g root -m 755 $(debiandir)/initscript $(tmp)/$(prefix)/etc/init.d/freeradius
	TEMPFILE=`mktemp /tmp/radconf-XXXXXX`; \
	cp $(tmp)/$(raddbdir)/radiusd.conf $$TEMPFILE; \
	cat $$TEMPFILE \
		| sed -e 's/        /	/g' \
		| sed -e '/^	example {/,/^	}/s/^/#/' \
		| sed -e 's/^		#	shadow		=/		shadow		=/' \
		| sed -e 's#^\(run_dir = .{localstatedir}/run\)#\1/radiusd#' \
		| sed -e 's/^group = nobody/group = freerad/' \
		| sed -e 's/^user = nobody/user = freerad/' \
			> $(tmp)/$(raddbdir)/radiusd.conf; \
	rm $$TEMPFILE
	# 
	dh_strip
	dh_installchangelogs
	dh_makeshlibs
	dh_shlibdeps
	dh_installdeb
	dh_compress
	dh_fixperms
	dh_md5sums
	dh_gencontrol
	dh_builddeb

clean:	
	rm -f build debian/{files,substvars} debian/*.debhelper
	[ -f Make.inc ] && make distclean || true
	dh_clean
	rm -rf $(tmp) radiusd-freeradius-{ldap,postgresql,mysql,krb5}{,.substvars}

binary: binary-indep binary-arch

# 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/radiusd-freeradius.undocumented | read filename && echo -n $$filename; \
		done; \
	} || true
	@test -n $$filename
	@echo good.

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