#!/usr/bin/make -f
# Made with the aid of dh_make, by Craig Small
# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
# This version is for a hypothetical package that builds an
# architecture-dependant package, as well as an architecture-independant
# package.

DH_COMPAT = 3
export DH_COMPAT

OS_CFLAGS	:= -g -D_GNU_SOURCE -D_REENTRANT -fPIC

ifeq (,$(findstring noopt, ${DEB_BUILD_OPTIONS}))
OS_CFLAGS += -O2
endif

LC_COLLATE=C
export LC_COLLATE

BUILD_TREE=Linux-PAM

pdoc=libpam-doc
d = $(shell pwd)/debian
dl = $(d)/local
i = install -p -m 0644
ie = install -p -m 0755

#version=${shell expr `pwd` : '.*-\([0-9.]*\)'}
#version_major=${shell expr `pwd` : '.*-\([0-9]*\).[0-9.]*'}

build:   build-stamp
build-stamp: configure-stamp
	dh_testdir

	# Compile everything else
	$(MAKE) -C $(BUILD_TREE) OS_CFLAGS="$(OS_CFLAGS)"

	touch build-stamp

configure: configure-stamp

configure-stamp:
	touch $(BUILD_TREE)/configure
	cd $(BUILD_TREE) && \
	./configure --sysconfdir=/etc --prefix=/usr --enable-static-libpam \
	--mandir=/usr/share/man --infodir=/usr/share/info --libdir=/lib \
	--sbindir=/sbin --enable-docdir=/usr/share/doc/libpam-doc \
	--with-mailspool=/var/mail
	touch configure-stamp


clean:
	dh_testdir
	dh_testroot
	touch $(BUILD_TREE)/configure
	-$(MAKE) -C $(BUILD_TREE) distclean
	rm -f build-stamp configure-stamp
	rm -f Linux-PAM/bin/[a-z]*
	dh_clean

# Build architecture-independent files here.
binary-indep: build $(dh_mak_deps)
	dh_testdir -i
	dh_testroot -i
	dh_clean -i -k
	dh_installdirs -i

	$(MAKE) -C $(BUILD_TREE) DIRS=doc

	cd $(BUILD_TREE)/doc && ( \
		$(i) *.sgml $(d)/$(pdoc)/usr/share/doc/$(pdoc)/sgml ; \
		$(i) ps/*.ps $(d)/$(pdoc)/usr/share/doc/$(pdoc)/ps ; \
		$(i) html/*.html $(d)/$(pdoc)/usr/share/doc/$(pdoc)/html ; \
		$(i) txts/*.txt $(d)/$(pdoc)/usr/share/doc/$(pdoc)/txt ; \
		$(i) modules/*.sgml $(d)/$(pdoc)/usr/share/doc/$(pdoc)/sgml/modules )

	mkdir -p debian/tmp/etc/pam.d
	mkdir -p debian/tmp/usr/share/pam
	$(i) $(dl)/pam.conf $(d)/tmp/etc
	-mkdir -p $(d)/tmp/usr/sbin $(d)/tmp/usr/share/man/man8
	$(ie) $(dl)/pam_getenv $(d)/tmp/usr/sbin
	pod2man --section 8 --release="Debian GNU/Linux" $(dl)/pam_getenv >$(d)/tmp/usr/share/man/man8/pam_getenv.8
	$(i) $(dl)/other $(d)/tmp/etc/pam.d
	$(i) $(dl)/common-* $(d)/tmp/usr/share/pam/
	$(i) $(dl)/pam-*-guide $(d)/$(pdoc)/usr/share/doc-base/

	dh_movefiles -i

	dh_installman -plibpam-runtime $(BUILD_TREE)/doc/man/*.[578]
	rm  debian/libpam-runtime/usr/share/man/man8/{pam.8,pam.d.8,pam.conf.8}
	dh_installdocs -i
	dh_installchangelogs -i $(BUILD_TREE)/CHANGELOG
	dh_compress -i -X.html
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

binary-arch: build module_check $(dh_mak_deps)
	dh_testdir -a
	dh_testroot -a
	dh_clean -a -k
	dh_installdirs -a

	$(MAKE) install -C $(BUILD_TREE) FAKEROOT=$(d)/tmp \
		DIRS="libpam libpam_misc modules libpamc"
	mkdir -p debian/tmp/etc/pam.d
	$(i) $(dl)/pam.conf $(d)/tmp/etc
	$(i) $(dl)/other $(d)/tmp/etc/pam.d
	$(ie) -D  $(BUILD_TREE)/modules/pam_tally/pam_tally $(d)/tmp/usr/sbin/pam_tally
	$(i) $(dl)/unix_chkpwd.8 $(d)/libpam-modules/usr/share/man/man8
	mkdir -p debian/tmp/usr/lib
	mv debian/tmp/lib/*.a debian/tmp/usr/lib
	dh_movefiles  -plibpam0g-dev -plibpam-cracklib -plibpam0g
	dh_movefiles -plibpam-modules `cd $(d)/tmp && ls lib/security/*.so`
	dh_link -A
	dh_installman -plibpam0g-dev $(BUILD_TREE)/doc/man/*.3
	for manpage in pam_end pam_close_session pam_get_item; do \
	rm debian/libpam0g-dev/usr/share/man/man3/$$manpage.3; done


	dh_installdocs -a $(BUILD_TREE)/README
	$(i) $(dl)/Debian-PAM-MiniPolicy $(d)/libpam0g/usr/share/doc/libpam0g
	dh_installexamples -a
	dh_installcron -a

	dh_installchangelogs -a $(BUILD_TREE)/CHANGELOG
	dh_strip -a
	dh_compress -a
	dh_fixperms -Xunix_chkpwd -a
	dh_makeshlibs -plibpam0g -V "libpam0g (>= 0.76)"
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

module_check:
	for module in `ls build-tree/Linux-PAM-*/modules/pam_*/pam_*.so`; \
	do \
		test=`ldd $$module | grep libpam.so.0`; \
		if [ "x$$test" = "x" ]; then \
			echo $$module is not linked to libpam; \
			exit 1; \
		fi; \
	done

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