#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.
#
# Modified to make a template file for a multi-binary package with separated
# build-arch and build-indep targets  by Bill Allombert 2001

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

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

# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE	?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE	?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

CFLAGS = -Wall -g

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
else
	CFLAGS += -O2
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
	INSTALL_PROGRAM += -s
endif

objdir = $(CURDIR)/obj-$(DEB_BUILD_GNU_TYPE)

-include debian/debiandirs

debian/debiandirs: admin/debianrules
	perl -w admin/debianrules echodirs > debian/debiandirs

configure: configure-stamp
configure-stamp:
	dh_testdir

	# Apply Debian specific patches
	if test -d $(CURDIR)/debian/patches ;\
	then \
		for i in $(CURDIR)/debian/patches/*.diff.uu ;\
		do \
			cd $(CURDIR)/debian/patches ;\
			uudecode "$$i" ;\
			cd $(CURDIR) ;\
		done ;\
		patches=$$(find $(CURDIR)/debian/patches -name *.diff | sort);\
	fi ;\
	if test ! -f patch-stamp; then \
		for patch in $$patches ;\
		do \
			echo APPLYING PATCH\: "$${patch##*/}" ;\
			patch -p1 < "$$patch" ;\
		done ;\
		touch patch-stamp ;\
	fi

	# KDE CVS does not have aclocal.m4 or configure
	if test ! -f configure; then \
		$(MAKE) -f admin/Makefile.common ;\
	fi

	# ensure configure is executable
	chmod +x configure

	# make build directory
	mkdir $(objdir)

	# run configure with build tree $(objdir)
	cd $(objdir) && \
	../configure $(configkde) --enable-final \
	--with-shadow --without-java \
	--with-pam=kde --with-kcp-pam=kcheckpass \
	--with-kdm-pam=kdm --with-kss-pam=kscreensaver \
	--with-extra-includes=/usr/include/sasl

	touch configure-stamp

#Architecture
build: build-arch build-indep

build-arch: build-arch-stamp
build-arch-stamp: configure-stamp
	dh_testdir

	cd $(objdir) && \
	$(MAKE)

	# generate manpages
	#for i in debian/man/*.sgml; do \
		docbook-to-man $$i > `dirname $$i`/`basename $$i .sgml`.1 ;\
	done

	touch build-arch-stamp

build-indep: build-indep-stamp
build-indep-stamp: configure-stamp
	dh_testdir

	cd $(objdir) && \
	$(MAKE)

	cd $(objdir) && \
	$(MAKE) apidox

	touch build-indep-stamp

debian-clean:
	dh_testdir
	dh_testroot

	dh_clean

clean:
	dh_testdir
	dh_testroot
	rm -f build-arch-stamp build-indep-stamp configure-stamp \
		debian/debiandirs debian/system.kdeglobals debian/man/*.1

	# Remove Debian specific patches
	if test -d $(CURDIR)/debian/patches ;\
	then \
		patches=$$(find $(CURDIR)/debian/patches -name *.diff | sort -r);\
	fi ;\
	if test -f patch-stamp; then \
		for patch in $$patches ;\
		do \
			echo REMOVING PATCH\: "$${patch##*/}" ;\
			patch -p1 -R < "$$patch" ;\
		done ;\
		for i in $(CURDIR)/debian/patches/*.diff.uu ;\
		do \
			 rm -f "$${i%%.uu}" ;\
		done ;\
		rm -f patch-stamp ;\
	fi

	# Remove build tree
	rm -rf $(objdir)

	# if Makefile exists run distclean
	if test -f Makefile; then \
		$(MAKE) distclean; \
	fi

	if test -d CVS; then \
		$(MAKE) -f admin/Makefile.common cvs-clean ;\
	fi

	dh_clean

install: install-arch install-indep

install-arch:
	dh_testdir
	dh_testroot
	dh_clean -k -s
	dh_installdirs -s

	cd $(objdir) && \
	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp

	install -D -m 644 $(CURDIR)/debian/kcheckpass.pam $(CURDIR)/debian/tmp/etc/pam.d/kcheckpass
	install -D -m 644 $(CURDIR)/debian/kdm-np.pam $(CURDIR)/debian/tmp/etc/pam.d/kdm-np
	install -D -m 644 $(CURDIR)/debian/kscreensaver.pam $(CURDIR)/debian/tmp/etc/pam.d/kscreensaver

	dh_install -s

install-indep:
	dh_testdir
	dh_testroot
	dh_clean -k -i
	dh_installdirs -i

	cd $(objdir) && \
	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp

	cd $(objdir) && \
	$(MAKE) install-apidox DESTDIR=$(CURDIR)/debian/tmp

	dh_install -i

# Must not depend on anything. This is to be called by
# binary-arch/binary-indep
# in another 'make' thread.
binary-common:
	dh_testdir
	dh_testroot
	dh_installxfonts
	dh_installchangelogs
	dh_installdocs
#	dh_installexamples
	dh_installmenu
	dh_installdebconf
	dh_installlogrotate
#	dh_installemacsen
	dh_installpam
	dh_installmime
	dh_installinit --noscripts
#	dh_installcron
#	dh_installinfo
	dh_installman
	dh_link
	dh_strip
	dh_compress -X.bz2 -X.css -X.dcl -X.docbook -X-license -X.tag
	dh_fixperms -Xusr/bin/fileshareset -Xusr/bin/kdesud
#	dh_perl
#	dh_python
	dh_makeshlibs -V
	dh_installdeb
	dh_shlibdeps -ldebian/kate/usr/lib:debian/kicker/usr/lib:debian/konqueror/usr/lib:debian/ksplash/usr/lib:debian/ksysguard/usr/lib:debian/kwin/usr/lib:debian/libkonq4/usr/lib
	dh_gencontrol
	dh_md5sums
	dh_builddeb

# Build architecture independant packages using the common target.
binary-indep: build-indep install-indep
	$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common

# Build architecture dependant packages using the common target.
binary-arch: build-arch install-arch
	$(MAKE) -f debian/rules DH_OPTIONS=-s binary-common

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