#!/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.

CFLAGS	:= -g -D_GNU_SOURCE -D_REENTRANT -fPIC

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

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

ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
  conf_args = --build $(DEB_BUILD_GNU_TYPE)
else
  conf_args = --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
endif

LC_COLLATE=C
export LC_COLLATE

QUILT_PATCH_DIR = debian/patches-applied
include /usr/share/quilt/quilt.make

BUILD_TREE=$(CURDIR)

d = $(CURDIR)/debian
dl = $(d)/local
i = install -p -m 0644
ie = install -p -m 0755

build: configure build-stamp
build-stamp:
	dh_testdir

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

	pod2man --section 8 --release="Debian GNU/Linux" $(dl)/pam_getenv >$(dl)/pam_getenv.8

	touch build-stamp

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


clean: clean-patched unpatch

clean-patched:
	dh_testdir
	dh_testroot
	[ ! -f $(BUILD_TREE)/Makefile ] || $(MAKE) -C $(BUILD_TREE) distclean
	rm -f $(dl)/pam_getenv.8
	rm -f build-stamp configure-stamp
	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	$(MAKE) -C $(BUILD_TREE) DESTDIR=$(CURDIR)/debian/tmp install

	# .la files are teh devil
	rm -f $(CURDIR)/debian/tmp/lib/*.la
	# for modules, we only want the .so
	rm -f $(CURDIR)/debian/tmp/lib/security/*.la \
	      $(CURDIR)/debian/tmp/lib/security/*.a

# Build architecture-independent files here.
binary-indep: install
	dh_testdir -i
	dh_testroot -i

	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
	$(i) $(dl)/other $(d)/tmp/etc/pam.d
	$(i) $(dl)/common-* $(d)/tmp/usr/share/pam/

	dh_install -i

	dh_installman -i
	dh_installdocs -i
	dh_installchangelogs -i $(BUILD_TREE)/ChangeLog
	dh_compress -i -X.html
	dh_link -i
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

binary-arch: install
	dh_testdir -a
	dh_testroot -a

	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 -a
	rm -rf $(d)/libpam-modules/usr/share/man/man7
	rm -f $(d)/libpam-modules/usr/share/man/man8/pam.8
	rm -f $(d)/libpam-modules/usr/share/man/man5/pam.conf.5
	rm -f $(d)/libpam-modules/usr/share/man/man5/pam.d.5

	dh_installdebconf -a
	dh_installdocs -a $(BUILD_TREE)/README
	dh_installexamples -a
	find $(d)/libpam0g-dev/usr/share/doc/libpam0g-dev/examples -type f -name 'Makefile*' -print0 | xargs -0 rm -f

	dh_installcron -a

	dh_installchangelogs -a $(BUILD_TREE)/ChangeLog
	for pkg in libpam0g libpam-modules; do \
		install -m 0644 -D $(d)/$$pkg.lintian $(d)/$$pkg/usr/share/lintian/overrides/$$pkg || exit; \
	done

	dh_strip -a
	dh_compress -a
	dh_fixperms -a
	chgrp shadow $(d)/libpam-modules/sbin/unix_chkpwd
	chmod 02755 $(d)/libpam-modules/sbin/unix_chkpwd
	dh_makeshlibs -plibpam0g -V "libpam0g (>= 0.99.10.0)"
	dh_installdeb -a
	dh_shlibdeps -a -L libpam0g -l$(CURDIR)/debian/libpam0g/lib
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary patch unpatch install configure
