#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# GNU copyright 2001 by Mikael Andersson
# Stolen from heimdal (0.4c)

upstream_version=005

# Stolen from open-ldap 1.2.11
# the dbs rules
TAR_DIR := krb4-cclub-${upstream_version}
#include debian/scripts/dbs-build.mk
include /usr/share/dbs/dbs-build.mk

libacl_version=`ls $(BUILD_TREE)/lib/acl/.libs/libacl.so.* | \
 awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
libacl_major=`ls $(BUILD_TREE)/lib/acl/.libs/libacl.so.* | \
 awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`

#libcom_err comes from heimdal

libcom_err_version=`ls $(BUILD_TREE)/lib/com_err/.libs/libcom_err.so.* | \
 awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
libcom_err_major=`ls $(BUILD_TREE)/lib/com_err/.libs/libcom_err.so.* | \
 awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`

#libdes_version=`ls $(BUILD_TREE)/lib/des/.libs/libdes.so.* | \
# awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
#libdes_major=`ls $(BUILD_TREE)/lib/des/.libs/libdes.so.* | \
# awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`

libkadm_version=`ls $(BUILD_TREE)/lib/kadm/.libs/libkadm.so.* | \
 awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
libkadm_major=`ls $(BUILD_TREE)/lib/kadm/.libs/libkadm.so.* | \
 awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`

#libkafs_version=`ls $(BUILD_TREE)/lib/kafs/.libs/libkafs.so.* | \
# awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
#libkafs_major=`ls $(BUILD_TREE)/lib/kafs/.libs/libkafs.so.* | \
# awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`

libkdb_version=`ls $(BUILD_TREE)/lib/kdb/.libs/libkdb.so.* | \
 awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
libkdb_major=`ls $(BUILD_TREE)/lib/kdb/.libs/libkdb.so.* | \
 awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`

libkrb_version=`ls $(BUILD_TREE)/lib/krb/.libs/libkrb.so.* | \
 awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
libkrb_major=`ls $(BUILD_TREE)/lib/krb/.libs/libkrb.so.* | \
 awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`

#libotp, libroken, libsl, and libss come from heimdal

#libotp_version=`ls $(BUILD_TREE)/lib/otp/.libs/libotp.so.* | \
# awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
#libotp_major=`ls $(BUILD_TREE)/lib/otp/.libs/libotp.so.* | \
# awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`

#libroken_version=`ls $(BUILD_TREE)/lib/roken/.libs/libroken.so.* | \
# awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
#libroken_major=`ls $(BUILD_TREE)/lib/roken/.libs/libroken.so.* | \
# awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`

#libsl_version=`ls $(BUILD_TREE)/lib/sl/.libs/libsl.so.* | \
# awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
#libsl_major=`ls $(BUILD_TREE)/lib/sl/.libs/libsl.so.* | \
# awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`

#libss_version=`ls $(BUILD_TREE)/lib/sl/.libs/libss.so.* | \
# awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
#libss_major=`ls $(BUILD_TREE)/lib/sl/.libs/libss.so.* | \
# awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`


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

# This is the debhelper compatability version to use.
export DH_COMPAT=3

build: $(STAMP_DIR)/build-stamp 
$(STAMP_DIR)/build-stamp: $(patched)
	dh_testdir

#	chmod u+x missing
#	touch $(BUILD_TREE)/include/stamp-h.in
#	touch $(BUILD_TREE)/configure
#	touch $(BUILD_TREE)/aclocal.m4
#	cd $(BUILD_TREE) && CFLAGS=-DKRB4 ./configure --prefix=/usr --enable-shared
#	cd $(BUILD_TREE) && /usr/bin/libtoolize --force
#	cd $(BUILD_TREE) && /usr/bin/aclocal -I cf
	cd $(BUILD_TREE) && ./configure --prefix=/usr --enable-shared 	\
		 --with-readline 					\
		 --with-readline-include=/usr/include/readline 		\
		 --with-readline-lib=/usr/lib 				\
		 --mandir=\$${prefix}/share/man   			\
		 --libexecdir=\$${prefix}/sbin				\
		 --sysconfdir=/etc 					\
		 --libdir=\$${prefix}/lib				\
		 --sharedstatedir=/var					\
		 --localstatedir=/var					\
		 --infodir=\$${prefix}/share/info			\
		 --enable-static					\
		 --enable-shared=yes					\
		 --program-transform-name='s/^k*/k/'			\
		 --disable-cat-manpages					\
		 --with-db-dir=/var/lib/kerberos			\
		 --with-afsws=/usr					\
		 --with-mailspool=/var/spool/mail 			\
		 --with-openssl=/usr					\
		 --with-berkeley-db=-ldb				\
		 --disable-otp	


	# Add here commands to compile the package.

	# Patch libtool so it sucks less
#	patch -p0 $(BUILD_TREE)/libtool < debian/libtool.patch

	$(MAKE) -C $(BUILD_TREE)

	touch $(STAMP_DIR)/build-stamp

clean:
	dh_testdir
	dh_testroot

	# Add here commands to clean up after the build process.
	rm -rf $(SOURCE_DIR) $(STAMP_DIR)
	#-$(MAKE) distclean

	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs


	# Add here commands to install the package into debian/tmp.
	$(MAKE) -j3 -C $(BUILD_TREE) install prefix=`pwd`/debian/tmp/usr


	# remove files that are installed later
	rm -rf debian/tmp/usr/info
	rm -rf debian/tmp/usr/share/man/cat{1,3,5,8}

	# remove conflicting files
#	rm debian/tmp/usr/include/glob.h
	rm debian/tmp/usr/share/man/man1/klogin.1

	# move files to appropriate packages

	dh_movefiles -plibacl$(libacl_major)-krb4-cclub 	\
		usr/lib/libacl.so.$(libacl_major)        	\
		usr/lib/libacl.so.$(libacl_version)		\
		usr/lib/libacl.so				\
		usr/lib/libacl.la				\
		usr/lib/libacl.a

	dh_movefiles -plibcomerr$(libcom_err_major)-krb4-cclub  \
		usr/lib/libcom_err.so.$(libcom_err_major)       \
		usr/lib/libcom_err.so.$(libcom_err_version)	\
		usr/lib/libcom_err.so				\
		usr/lib/libcom_err.la				\
		usr/lib/libcom_err.a

#	dh_movefiles -plibdes$(libdes_major)-krb4-cclub       	\
#		usr/lib/libdes.so.$(libdes_major)        	\
#		usr/lib/libdes.so.$(libdes_version)		\
#		usr/lib/libdes.so				\
#		usr/lib/libdes.la				\
#		usr/lib/libdes.a

	dh_movefiles -plibkadm$(libkadm_major)-krb4-cclub       \
		usr/lib/libkadm.so.$(libkadm_major)        	\
		usr/lib/libkadm.so.$(libkadm_version)		\
		usr/lib/libkadm.so				\
		usr/lib/libkadm.la				\
		usr/lib/libkadm.a


#	dh_movefiles -plibkafs$(libkafs_major)-krb4-cclub       \
#		usr/lib/libkafs.so.$(libkafs_major)        \
#		usr/lib/libkafs.so.$(libkafs_version)

	dh_movefiles -plibkdb-$(libkdb_major)-krb4-cclub       	\
		usr/lib/libkdb.so.$(libkdb_major)        	\
		usr/lib/libkdb.so.$(libkdb_version)		\
		usr/lib/libkdb.so				\
		usr/lib/libkdb.la				\
		usr/lib/libkdb.a

	dh_movefiles -plibkrb-$(libkrb_major)-krb4-cclub       	\
		usr/lib/libkrb.so.$(libkrb_major)        	\
		usr/lib/libkrb.so.$(libkrb_version)		\
		usr/lib/libkrb.so				\
		usr/lib/libkrb.la 				\
		usr/lib/libkrb.a

#	dh_movefiles -plibotp$(libotp_major)-krb4-cclub       \
#		usr/lib/libotp.so.$(libotp_major)        \
#		usr/lib/libotp.so.$(libotp_version)

#	dh_movefiles -plibroken$(libroken_major)-krb4-cclub       \
#		usr/lib/libroken.so.$(libroken_major)        \
#		usr/lib/libroken.so.$(libroken_version)

#	dh_movefiles -plibsl$(libsl_major)-krb4-cclub       \
#		usr/lib/libsl.so.$(libsl_major)        \
#		usr/lib/libsl.so.$(libsl_version)

#	dh_movefiles -plibss$(libss_major)-krb4-cclub       \
#		usr/lib/libss.so.$(libss_major)        \
#		usr/lib/libss.so.$(libss_version)



	dh_movefiles 

	# remove empty directories.
	rm debian/tmp/usr/lib/*
	rm -rf debian/tmp/usr/include
	rm -rf debian/tmp/usr/man
	rmdir debian/tmp/usr/lib
	rmdir debian/tmp/usr/{bin,sbin}


	# logrotate
	mkdir -p debian/krb4-kdc-cclub/var/lib/krb4-kdc
	mkdir -p debian/krb4-kdc-cclub/etc/logrotate.d
	install -m644 debian/extras/logrotate debian/krb4-kdc-cclub/etc/logrotate.d/krb4-kdc
	# Create config files
	mkdir -p debian/krb4-kdc-cclub/etc/kerberos
	touch debian/krb4-kdc-cclub/etc/kerberos/admin_acl.add
	touch debian/krb4-kdc-cclub/etc/kerberos/admin_acl.get
	touch debian/krb4-kdc-cclub/etc/kerberos/admin_acl.mod
	touch debian/krb4-kdc-cclub/etc/kerberos/admin_acl.del



	# install done
	touch $(STAMP_DIR)/install-stamp

# Build architecture-independent files here.
binary-indep: build install
	dh_testdir -i
	dh_testroot -i
	dh_installdebconf -i
	dh_installdocs -i
	dh_installdocs -pkrb4-docs-cclub $(BUILD_TREE)/{NEWS,TODO}
	dh_installmenu -i
	dh_installinit -i
	dh_installcron -i
	dh_installinfo -pkrb4-docs-cclub $(BUILD_TREE)/doc/kth-krb.info
	dh_link -i
	dh_strip -i -Xdes
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

libl=`ls -d debian/lib*-krb4-cclub | perl -e 'while (<>) { chomp; push(@out,$$_); } print join(":",@out),"\n";'`
libs=`ls -d debian/lib*-krb4-cclub | perl -e 'while (<>) { chomp; push(@out,$$_); } print "-L",join(" -L",@out),"\n";'`

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir -a
	dh_testroot -a
	dh_installdebconf -a
	dh_installdocs -a
	dh_installmenu -a
	dh_installinit -a
	mv debian/krb4-kdc-cclub/etc/init.d/krb4-kdc-cclub debian/krb4-kdc-cclub/etc/init.d/krb4-kdc
	dh_installcron -a
	dh_installman -pkrb4-clients-cclub \
		$(BUILD_TREE)/kadmin/kadmin.8 \
		$(BUILD_TREE)/kadmin/kpasswd.1 \
		$(BUILD_TREE)/kadmin/ksrvutil.8

	dh_undocumented -pkrb4-kip-cclub kip.1 
	dh_undocumented -pkrb4-clients-cclub \
		kcompile_et.1 \
		kmk_cmds.1  \
		ksimple_client.1 \
		ksample_client.1 \
		ksample_server.8 \
		kstring2key.1 \
		kzrefresh.1	

	dh_link -a
	dh_strip -a -Xdes
	dh_compress -a
	dh_fixperms -a
	dh_makeshlibs -a -V
	dh_installdeb -a
	dh_shlibdeps -a -l${libl} -- ${libs}
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

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