#! /usr/bin/make -f # # debian/rules file for freeradius # .NOTPARALLEL: SHELL = /bin/bash package = freeradius freeradius_dir = $(CURDIR)/debian/tmp mandir = /usr/share/man libdir = /usr/lib/$(package) logdir = /var/log/$(package) pkgdocdir = /usr/share/doc/$(package) raddbdir = /etc/$(package) # Use "openssl=no" below to build a binary-distributable version # for the Debian archive. openssl = yes include /usr/share/dpatch/dpatch.make modulelist=krb5 ldap sql_mysql sql_iodbc sql_postgresql 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.52+ arch support ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) confflags += --build $(DEB_HOST_GNU_TYPE) else confflags += --host $(DEB_BUILD_GNU_TYPE) --build $(DEB_HOST_GNU_TYPE) endif ifeq ($(openssl), no) confflags += --without-openssl --without-rlm_eap_peap --without-rlm_eap_tls --without-rlm_eap_ttls --without-rlm_otp endif configure-stamp: patch-stamp dh_testdir # Update the autotools files if necessary # Force Build-Depends on autotools-dev for /usr/share/misc/config.* 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 ./configure \ $(confflags) \ --config-cache \ --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-system-libtool --disable-ltdl-install \ --with-large-files --with-udpfromto --with-edir \ --enable-developer \ --with-rlm-sql-postgresql-lib-dir=`pg_config --libdir` \ --with-rlm-sql-postgresql-include-dir=`pg_config --includedir` touch configure-stamp build: build-arch build-indep build-indep: patch build-indep-stamp build-indep-stamp: configure-stamp touch build-indep-stamp build-arch: build-arch-stamp build-arch-stamp: configure-stamp $(MAKE) touch build-arch-stamp install: install-arch install-indep install-indep: install-indep-stamp install-indep-stamp: build-indep-stamp dh_testdir dh_testroot $(MAKE) -C dialup_admin DIALUP_PREFIX=/usr/share/freeradius-dialupadmin \ DIALUP_DOCDIR=/usr/share/doc/freeradius-dialupadmin \ DIALUP_CONFDIR=/etc/freeradius-dialupadmin \ R=$(freeradius_dir) install mv $(freeradius_dir)/usr/share/freeradius-dialupadmin/bin/dialup_admin.cron \ $(freeradius_dir)/usr/share/freeradius-dialupadmin/bin/freeradius-dialupadmin.cron touch install-indep-stamp install-arch: install-arch-stamp install-arch-stamp: build-arch-stamp dh_testdir dh_testroot $(MAKE) install R=$(freeradius_dir) # Rename radius binary to play nicely with others mv $(freeradius_dir)/usr/sbin/radiusd $(freeradius_dir)/usr/sbin/$(package) mv $(freeradius_dir)/$(mandir)/man8/radiusd.8 $(freeradius_dir)/$(mandir)/man8/$(package).8 # Clean up after install rm -f $(freeradius_dir)/etc/freeradius/example.pl rm -f $(freeradius_dir)/usr/sbin/rc.radiusd rm -f $(freeradius_dir)/usr/share/doc/freeradius/ChangeLog # Install the SNMP MIBs into debian/tmp install -m 755 -d $(freeradius_dir)/usr/share/snmp/mibs install -m 644 mibs/*.txt $(freeradius_dir)/usr/share/snmp/mibs touch install-arch-stamp binary: binary-indep binary-arch binary-indep: install-indep-stamp dh_testroot #dh_clean -i -k dh_installdirs -i dh_install -XCVS -X.svn -i --sourcedir=debian/tmp dh_installdocs -XCVS -X.svn -i dh_installchangelogs -XCVS -X.svn dialup_admin/Changelog -i dh_installexamples -XCVS -X.svn -i dh_installman -XCVS -X.svn -i dh_link -i dh_perl -i dh_installdeb -i dh_compress -i dh_fixperms -i dh_md5sums -i dh_gencontrol -i dh_builddeb -i binary-arch: install-arch-stamp dh_testroot #dh_clean -a -k dh_installdirs -a dh_install -XCVS -X.svn -a --sourcedir=debian/tmp # Not nice, but it works; remove modules we package seperately # from the main package for mod in ${modulelist}; do \ rm -f $(CURDIR)/debian/freeradius/usr/lib/freeradius/rlm_$$mod* ; \ done dh_installdocs -XCVS -X.svn -a dh_installexamples -XCVS -X.svn -a dh_installchangelogs -XCVS -X.svn -a doc/ChangeLog dh_installman -XCVS -X.svn -a dh_strip -a --dbg-package=freeradius-dbg dh_installlogrotate -a dh_installinit -n -a dh_installpam --name=radiusd -a # We don't need ldconfig. None of our libraries go in it's paths dh_makeshlibs -n -a dh_shlibdeps -a ifeq ($(openssl), no) for pkg in $(shell grep ^Package debian/control | awk '{print $$2}') ; do \ if dh_shlibdeps -p $$pkg -- -O | grep -q libssl; then \ echo "$$pkg links to openssl" ; \ exit 1 ; \ fi ; \ done endif dh_installdeb -a dh_compress -a dh_fixperms -a dh_md5sums -a dh_gencontrol -a dh_builddeb -a clean: unpatch dh_testdir dh_clean rm -f build-arch-stamp build-indep-stamp libltdl/stamp-h1 rm -f install-arch-stamp install-indep-stamp configure-stamp [ -f Make.inc ] && make distclean || true # The make clean forgets to remove this build directory [ -d src/modules/lib ] && rm -fr src/modules/lib || true # Put the original autotools files back in place [ -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 .PHONY: build build-indep build-arch install install-indep install-arch binary binary-arch binary-indep clean