#!/usr/bin/make -f

PATH:=/usr/bin/dh7:/usr/bin:$(PATH)
export PATH
SBOX_REDIRECT_IGNORE=/usr/bin/perl
export SBOX_REDIRECT_IGNORE

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

include /usr/share/quilt/quilt.make
# This has to be exported to make some magic below work.
export DH_OPTIONS

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

PYVERS := $(shell pyversions -vs)

configure-stamp: patch
	dh_testdir
	./autogen.sh
	mkdir -p debian/tmpbuild
	cd debian/tmpbuild; \
	../../configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --disable-rpath --without-python --with-default-dict=/var/cache/cracklib/cracklib_dict
	for i in $(PYVERS); do \
		mkdir -p debian/build$$i; \
		cd debian/build$$i; \
		../../configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --disable-rpath  --with-default-dict=/var/cache/cracklib/cracklib_dict PYTHON_PREFIX=/usr/lib/python$$i PYTHON=/usr/bin/python$$i; \
		cd ../..; \
	done
	touch configure-stamp

build: build-stamp

build-stamp: configure-stamp
	$(MAKE) -C debian/tmpbuild
	for i in $(PYVERS); do \
		${MAKE} -C debian/build$$i/python LDFLAGS=-L`pwd`/debian/tmpbuild/lib/.libs; \
	done
	xmlto -o debian/doc xhtml-nochunks debian/libcrack2.xml
	xmlto -o debian/doc xhtml-nochunks debian/cracklib-runtime.xml
	touch build-stamp

clean: unpatch
	dh_testdir
	dh_testroot
	rm -rf build-stamp configure-stamp debian/tmpbuild
	for i in $(PYVERS); do \
		rm -rf debian/build$$i; \
	done
	rm -f debian/python-cracklib.install
	rm -rf debian/doc
	if [ -f Makefile ]; then $(MAKE) clean; fi
	if [ -f Makefile ]; then $(MAKE) distclean; fi
	dh_clean
	# remove files created or modified by autogen.sh
	rm -f Makefile.in aclocal.m4 configure dicts/Makefile.in doc/Makefile.in \
	 lib/Makefile.in m4/Makefile.in py-compile python/Makefile.in \
	 util/Makefile.in

install: DH_OPTIONS=
install: build
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs
	$(MAKE) -C debian/tmpbuild DESTDIR=`pwd`/debian/tmp install
	for i in $(PYVERS); do \
		$(MAKE) -C debian/build$$i/python install DESTDIR=`pwd`/debian/tmp; \
		rm -rf debian/tmp/usr/lib/python$$i/*.pyc; \
		rm -rf debian/tmp/usr/lib/python$$i/*.pyo; \
	done
	chrpath -d debian/tmp/usr/sbin/cracklib-check \
	 debian/tmp/usr/sbin/cracklib-packer \
	 debian/tmp/usr/sbin/cracklib-unpacker
	touch debian/python-cracklib.install
	for i in $(PYVERS); do \
		echo "debian/tmp/usr/lib/python$$i/site-packages/_cracklibmodule.so usr/lib/python$$i/site-packages" >> debian/python-cracklib.install; \
		echo "debian/tmp/usr/lib/python$$i/site-packages/cracklib.py usr/lib/python$$i/site-packages" >> debian/python-cracklib.install; \
		echo "debian/crack.py usr/lib/python$$i/site-packages" >> debian/python-cracklib.install; \
	done
	dh_install

binary-common:
	dh_testdir
	dh_testroot
	dh_installchangelogs
	dh_installdocs
	dh_installexamples
	dh_installman
	dh_installcron
	dh_installlogcheck
	dh_strip
	dh_link
	dh_compress
	dh_fixperms
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary-indep: build install
	dh_testdir -ppython-crack
	dh_testroot -ppython-crack
	dh_installchangelogs -ppython-crack
	dh_installdocs -ppython-crack
	dh_compress -ppython-crack
	dh_installdeb -ppython-crack
	dh_gencontrol -ppython-crack
	dh_md5sums -ppython-crack
	dh_builddeb -ppython-crack

binary-arch: build install
	$(MAKE) -f debian/rules binary-common DH_OPTIONS=-plibcrack2
	$(MAKE) -f debian/rules binary-common DH_OPTIONS=-plibcrack2-dev
	$(MAKE) -f debian/rules binary-common DH_OPTIONS=-pcracklib-runtime
	$(MAKE) -f debian/rules binary-python-cracklib DH_OPTIONS=-ppython-cracklib

binary-python%:
	dh_testdir
	dh_testroot
	dh_installchangelogs
	dh_installdocs
	dh_strip
	dh_link
	dh_compress
	dh_fixperms
	dh_pycentral
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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