#!/usr/bin/make -f
# 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-independent
# package.

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

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

# This has to be exported to make some magic below work.
export DH_OPTIONS

export PACKAGE=cyrus-common
export TMP=`pwd`/debian/tmp
export CFLAGS=-O2 -g

build: build-stamp
build-stamp:
	dh_testdir

	## We dont configure with the following anymore, the options are dep.
	## --with-login=unix_pwcheck 

	## I'm not sure about --with-auth, the options are unix or krb, but
	## krb refers to krbIV. Blah. I think, I let it default, and hope 
	## that since login==sasl the right thing will happen. 
	## --with-auth=unix \

	./configure 	--prefix=/usr/share \
			--exec-prefix=/usr  \
			--libexecdir=/usr/sbin \
			--bindir=/usr/sbin \
			--sbindir=/usr/sbin \
			--includedir=/usr/include/cyrus \
			--datadir=/usr/share/cyrus \
			--sysconfdir=/etc \
			--with-statedir=/var/state \
			--sharedstatedir=/usr/share/cyrus \
			--localstatedir=/var/lib/cyrus \
			--with-cyrus-prefix=/usr \
			--with-sasldir=/usr \
			--without-krb \
			--with-lock=fcntl \
			--enable-netscapehack \
			--with-cyrus-user=cyrus \
			--with-cyrus-group=mail \
			--with-tclsh=/usr/bin/tclsh 
	 
	$(MAKE) depend
	$(MAKE) all 

	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp install-stamp 


	-$(MAKE) clean
	-$(MAKE) distclean

	# Blech, manual clean up
	-rm -f imap/deliver et/Makefile imap/feedcyrus

	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	$(MAKE) install DESTDIR=$(TMP)

	# fix the stupid default installation which installs into bin/
	# and the semi-broken location of the include files
	mv $(TMP)/usr/bin/* $(TMP)/usr/sbin
	# ... except cyradm, which goes in bin/
	mv $(TMP)/usr/sbin/cyradm $(TMP)/usr/bin
	mkdir -p $(TMP)/usr/include
	mv $(TMP)/usr/share/include/cyrus $(TMP)/usr/include
	mv $(TMP)/usr/sbin/quota $(TMP)/usr/sbin/cyrquota
	mv $(TMP)/usr/sbin/deliver $(TMP)/usr/sbin/cyrdeliver
	mv $(TMP)/usr/sbin/imapd $(TMP)/usr/sbin/imapd.real
	install -m 755 -o root -g root debian/imapd-sh $(TMP)/usr/sbin/imapd
	rmdir $(TMP)/usr/share/include

	# Massage the documentation into place
	mkdir -p $(TMP)/usr/share/doc/$(PACKAGE)
	cp -a doc/* $(TMP)/usr/share/doc/$(PACKAGE)/

	# I have no idea what this is. IT doesnt exist.  IT goes away. 
	# cp -a pwcheck/README $(TMP)/usr/share/doc/$(PACKAGE)/README.pwcheck
	cp -a debian/examples $(TMP)/usr/share/doc/${PACKAGE}
	#cp -a debian/imapd.conf.sample $(TMP)/usr/share/doc/$(PACKAGE)
	rm -rf $(TMP)/usr/share/doc/$(PACKAGE)/CVS $(TMP)/usr/share/doc/$(PACKAGE)/html/CVS
	rm $(TMP)/usr/share/doc/$(PACKAGE)/copyrights $(TMP)/usr/share/doc/$(PACKAGE)/HEY-YOU* $(TMP)/usr/share/doc/$(PACKAGE)/changes \
		$(TMP)/usr/share/doc/$(PACKAGE)/Makefile

	# rmnews isn't compiled, so why do they install the manpage?
	rm $(TMP)/usr/share/man/man8/rmnews*

	# Name things nicely
	for i in acl-extension anoncvs bugs install mailing-list overview quota-extension server-design; do \
		mv $(TMP)/usr/share/doc/$(PACKAGE)/$$i $(TMP)/usr/share/doc/$(PACKAGE)/$$i.txt; \
	done		

	# for stuff in /etc
	# We do the pam manually
	cp -a debian/imapd.conf $(TMP)/etc
	cp -a debian/cyrus.pam $(TMP)/etc/pam.d/cyrus

	# We rename quota and deliver, so we need to sort out the manpages	
	mv $(TMP)/usr/share/man/man8/quota.8 $(TMP)/usr/share/man/man8/cyrquota.8
	mv $(TMP)/usr/share/man/man8/deliver.8 $(TMP)/usr/share/man/man8/cyrdeliver.8

	# Install cyradm icons
	mkdir -p $(TMP)/usr/share/icons/mini
	cp -a debian/cyradm-32x32.xpm $(TMP)/usr/share/icons/cyradm.xpm
	cp -a debian/cyradm-16x16.xpm $(TMP)/usr/share/icons/mini/cyradm.xpm

	dh_movefiles

	# Tacky clean-up
	-rmdir -p $(TMP)/usr/share/man/man1 $(TMP)/usr/share/man/man3 $(TMP)/usr/bin \
		$(TMP)/usr/include/cyrus $(TMP)/usr/lib $(TMP)/usr/share/icons/mini
	# Ignore any errors in the above line!

	touch install-stamp

# Build architecture-independent files here.
binary-indep: build install

# Build architecture-dependent files here.
binary-arch: build install
	# Need this version of debhelper for DH_OPTIONS to work.
	dh_testversion 1.1.17
	dh_testdir
	dh_testroot
#	dh_installdebconf
	dh_installdocs 
	dh_installexamples
	dh_installmenu
#	dh_installemacsen
#	dh_installpam
#	dh_installinit --init-script=pwcheck -- defaults 19
	dh_installcron
#	dh_installmanpages
	dh_installinfo
#	dh_undocumented
	dh_installchangelogs doc/changes
	dh_strip
	dh_link
	dh_compress
	dh_fixperms
	# You may want to make some executables suid here.
	dh_suidregister
	dh_installdeb
#	dh_makeshlibs
#	dh_perl
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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