#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# GNU copyright 1999 to 2000 by Brian May.

upstream_version=006b

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

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)}'`

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 comes from openssl
#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)}'`

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)}'`

libasn1_version=`ls $(BUILD_TREE)/lib/asn1/.libs/libasn1.so.* | \
 awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
libasn1_major=`ls $(BUILD_TREE)/lib/asn1/.libs/libasn1.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)}'`

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

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

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

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

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

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)}'`

# 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

	# patches
	patch -p0 $(BUILD_TREE)/include/config.h.in < `pwd`/debian/config_h_in.patch

	cd $(BUILD_TREE) && ./configure 			\
		--prefix=/usr					\
		--mandir=\$${prefix}/share/man			\
		--libexecdir=\$${prefix}/sbin			\
		--enable-shared 				\
		--with-krb4=/usr 				\
		--with-kaserver 				\
		--with-kaserver-db				\
		--with-openssl=/usr				\
		--with-openssl-include=/usr/include/openssl     \
		--without-openldap 				\
		--with-berkeley-db=-ldb				\
		--with-readline-include=/usr/include/readline	\
		--with-ss-include=/usr/include/ss 		

	# use our sane libtool
	cp debian/scripts/libtool $(BUILD_TREE)/

	# a hack needed to use openssl crypto
	echo "#define des_new_random_key des_random_key" >> $(BUILD_TREE)/lib/krb5/krb5_locl.h
	echo "#define HAVE_OPENSSL" >> $(BUILD_TREE)/appl/telnet/libtelnet/encrypt.h
	echo "#define des_new_random_key des_random_key" >> $(BUILD_TREE)/appl/telnet/libtelnet/encrypt.h
	cp -f debian/crypto-headers.h $(BUILD_TREE)/include/

	# Add here commands to compile the package.
	$(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.

	# another stupid hack...
#	mkdir -p /usr/lib/.libs
#	ln -sf /usr/lib/libkrb.so /usr/lib/.libs/libkrb.so
#	ln -sf /usr/lib/libdes.so /usr/lib/.libs/libdes.so

	$(MAKE) -C $(BUILD_TREE) install prefix=`pwd`/debian/tmp/usr

#	rm -rf /usr/lib/.libs

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

	# remove conflicting files
	rm -rf debian/tmp/usr/include/glob.h
	rm -rf debian/tmp/usr/include/fnmatch.h
	rm -rf debian/tmp/usr/include/ifaddrs.h
	rm  debian/tmp/usr/share/man/man1/login.1

	# install missing files
#	mkdir -p debian/tmp/usr/lib/heimdal-servers-cclub
#	mkdir -p debian/tmp/usr/lib/heimdal-kdc-cclub

	# pam foo
#	mkdir -p debian/tmp/lib/security
#	mv debian/tmp/usr/lib/pam_krb4.so debian/tmp/lib/security/

	# heimdal-servers
#	mv build-tree/heimdal-cclub_002/appl/kf/kfd debian/tmp/usr/sbin/
#	mv build-tree/heimdal-cclub_002/appl/ftp/ftpd/ftpd debian/tmp/usr/sbin
#	mv build-tree/heimdal-cclub_002/appl/push/push debian/tmp/usr/sbin/
#	mv build-tree/heimdal-cclub_002/appl/rsh/rshd debian/tmp/usr/sbin/
#	mv build-tree/heimdal-cclub_002/appl/telnet/telnetd/telnetd debian/tmp/usr/sbin/
#	mv build-tree/heimdal-cclub_002/appl/popper/popper debian/tmp/usr/sbin/

#	mv debian/tmp/usr/sbin/kfd debian/tmp/usr/lib/heimdal-servers-cclub
	mv debian/tmp/usr/sbin/ftpd debian/tmp/usr/sbin/kftpd
#	mv debian/tmp/usr/sbin/push debian/tmp/usr/lib/heimdal-servers-cclub
	mv debian/tmp/usr/sbin/rshd debian/tmp/usr/sbin/krshd
	mv debian/tmp/usr/sbin/telnetd debian/tmp/usr/sbin/ktelnetd
#	mv debian/tmp/usr/sbin/popper debian/tmp/usr/lib/heimdal-servers-cclub
#	mv debian/tmp/usr/bin/login debian/tmp/usr/lib/heimdal-servers-cclub

	# heimdal-servers-x
#	mv build-tree/heimdal-cclub_002/appl/kx/kxd debian/tmp/usr/sbin/
#	mv debian/tmp/usr/sbin/kxd debian/tmp/usr/lib/heimdal-servers-cclub

	# heimdal-kdc
#	mv build-tree/heimdal-cclub_002/kdc/kdc debian/tmp/usr/sbin/
#	mv build-tree/heimdal-cclub_002/kadmin/kadmind debian/tmp/usr/sbin/
#	mv build-tree/heimdal-cclub_002/kpasswd/kpasswdd debian/tmp/usr/sbin/
#	mv debian/tmp/usr/sbin/kdc debian/tmp/usr/lib/heimdal-servers-cclub
#	mv debian/tmp/usr/sbin/kadmind debian/tmp/usr/lib/heimdal-servers-cclub
#	mv debian/tmp/usr/sbin/kpasswdd debian/tmp/usr/lib/heimdal-servers-cclub
#	install -m755 extras/setconfig debian/tmp/usr/lib/heimdal-kdc-cclub

	# heimdal-clients
#	mv build-tree/heimdal-cclub_002/appl/telnet/telnet/telnet.1 debian/tmp/usr/share/man/man1/
#	mv build-tree/heimdal-cclub_002/appl/ftp/ftp/ftp.1 debian/tmp/usr/share/man/man1/

	mv debian/tmp/usr/bin/telnet debian/tmp/usr/bin/ktelnet
	mv debian/tmp/usr/bin/ftp debian/tmp/usr/bin/kftp
	mv debian/tmp/usr/share/man/man1/telnet.1 debian/tmp/usr/share/man/man1/ktelnet.1
	mv debian/tmp/usr/share/man/man1/ftp.1 debian/tmp/usr/share/man/man1/kftp.1

	mv debian/tmp/usr/bin/rsh debian/tmp/usr/bin/krsh
	mv debian/tmp/usr/bin/rcp debian/tmp/usr/bin/krcp
	#mv debian/tmp/usr/share/man/man1/rsh.1 debian/tmp/usr/share/man/man1/krsh.1
	#mv debian/tmp/usr/share/man/man1/rcp.1 debian/tmp/usr/share/man/man1/krcp.1
	#mv debian/tmp/usr/share/man/man1/pagsh.1 debian/tmp/usr/share/man/man1/kpagsh.1

	mv debian/tmp/usr/bin/su debian/tmp/usr/bin/ksu
	# move files to appropriate packages

	# copy the config over
	mkdir -p debian/tmp/etc/init.d
	cp debian/heimdal-kdc-cclub.init debian/tmp/etc/init.d/heimdal-kdc
	rm -rf debian/tmp/usr/lib/libdes.*
	rm -rf debian/tmp/usr/include/des.h

	dh_movefiles -plibroken$(libroken_major)-heimdal-cclub       	\
		usr/lib/libroken.so.$(libroken_major)        		\
		usr/lib/libroken.so.$(libroken_version)			\
		usr/lib/libroken.so					\
		usr/lib/libroken.la					\
		usr/lib/libroken.a

	dh_movefiles -plibcomerr$(libcom_err_major)-heimdal-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$(libdesr_major)-heimdal-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 -plibsl$(libsl_major)-heimdal-cclub       		\
		usr/lib/libsl.so.$(libsl_major)        			\
		usr/lib/libsl.so.$(libsl_version)			\
		usr/lib/libsl.so					\
		usr/lib/libsl.la					\
		usr/lib/libsl.a

	dh_movefiles -plibss$(libss_major)-heimdal-cclub       		\
		usr/lib/libss.so.$(libss_major)        			\
		usr/lib/libss.so.$(libss_version)			\
		usr/lib/libss.so					\
		usr/lib/libss.la					\
		usr/lib/libss.a

	dh_movefiles -plibasn1-$(libasn1_major)-heimdal-cclub       	\
		usr/lib/libasn1.so.$(libasn1_major)        		\
		usr/lib/libasn1.so.$(libasn1_version)			\
		usr/lib/libasn1.so					\
		usr/lib/libasn1.la					\
		usr/lib/libasn1.a

	dh_movefiles -plibkafs$(libkafs_major)-heimdal-cclub       	\
		usr/lib/libkafs.so.$(libkafs_major)        		\
		usr/lib/libkafs.so.$(libkafs_version)			\
		usr/lib/libkafs.so					\
		usr/lib/libkafs.la					\
		usr/lib/libkafs.a

	dh_movefiles -plibkrb5-$(libkrb5_major)-heimdal-cclub       	\
		usr/lib/libkrb5.so.$(libkrb5_major)        		\
		usr/lib/libkrb5.so.$(libkrb5_version)			\
		usr/lib/libkrb5.so					\
		usr/lib/libkrb5.la					\
		usr/lib/libkrb5.a

	dh_movefiles -plibhdb$(libhdb_major)-heimdal-cclub       	\
		usr/lib/libhdb.so.$(libhdb_major)        		\
		usr/lib/libhdb.so.$(libhdb_version)			\
		usr/lib/libhdb.so					\
		usr/lib/libhdb.la					\
		usr/lib/libhdb.a

	dh_movefiles -plibkadm5srv$(libkadm5srv_major)-heimdal-cclub    \
		usr/lib/libkadm5srv.so.$(libkadm5srv_major)        	\
		usr/lib/libkadm5srv.so.$(libkadm5srv_version)		\
		usr/lib/libkadm5srv.so					\
		usr/lib/libkadm5srv.la					\
		usr/lib/libkadm5srv.a

	dh_movefiles -plibkadm5clnt$(libkadm5clnt_major)-heimdal-cclub  \
		usr/lib/libkadm5clnt.so.$(libkadm5clnt_major)        	\
		usr/lib/libkadm5clnt.so.$(libkadm5clnt_version)		\
		usr/lib/libkadm5clnt.so					\
		usr/lib/libkadm5clnt.la					\
		usr/lib/libkadm5clnt.a

	dh_movefiles -plibgssapi$(libgssapi_major)-heimdal-cclub       	\
		usr/lib/libgssapi.so.$(libgssapi_major)        		\
		usr/lib/libgssapi.so.$(libgssapi_version)		\
		usr/lib/libgssapi.so					\
		usr/lib/libgssapi.la					\
		usr/lib/libgssapi.a

	dh_movefiles -plibotp$(libotp_major)-heimdal-cclub       	\
		usr/lib/libotp.so.$(libotp_major)        		\
		usr/lib/libotp.so.$(libotp_version)			\
		usr/lib/libotp.so					\
		usr/lib/libotp.la					\
		usr/lib/libotp.a

	dh_movefiles


	# remove empty directories.
#	rmdir debian/tmp/usr/lib/heimdal-servers-cclub
#	rmdir debian/tmp/usr/lib/heimdal-kdc-cclub
	rmdir debian/tmp/usr/lib
	rmdir debian/tmp/usr/share/man/man{1,3,8}
	rmdir debian/tmp/usr/include{/ss,/kadm5,}
	rmdir debian/tmp/usr/{bin,sbin}

	# logrotate
	mkdir -p debian/heimdal-kdc-cclub/var/lib/heimdal-kdc-cclub
	mkdir -p debian/heimdal-kdc-cclub/etc/logrotate.d
	install -m644 debian/extras/logrotate debian/heimdal-kdc-cclub/etc/logrotate.d/heimdal-kdc

	# 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 -pheimdal-docs-cclub $(BUILD_TREE)/{NEWS,TODO,doc/standardisation}
	dh_installmenu -i
	dh_installinit -i
	dh_installcron -i
	dh_installinfo -pheimdal-docs-cclub $(BUILD_TREE)/doc/heimdal.info
	dh_installchangelogs -i $(BUILD_TREE)/ChangeLog
	dh_link -i
	dh_strip -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

libl=`ls -d debian/lib*-heimdal-cclub | perl -e 'while (<>) { chomp; push(@out,$$_); } print join(":",@out),"\n";'`
libs=`ls -d debian/lib*-heimdal-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_installexamples -pheimdal-lib-cclub $(BUILD_TREE)/krb5.conf
	dh_installexamples -pheimdal-kdc-cclub debian/extras/kdc.conf
	dh_installmenu -a
	dh_installinit -a
	dh_installcron -a
	dh_installchangelogs -a $(BUILD_TREE)/ChangeLog
	dh_link -a
	dh_strip -a
	dh_compress -a
	dh_fixperms -a
	chmod 700 debian/heimdal-kdc-cclub/var/lib/heimdal-kdc-cclub
	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
