#!/usr/bin/make -f
# Made with the aid of debmake, by Christoph Lameter,
# based on the sample debian/rules file for GNU hello by Ian Jackson.

export DH_COMPAT=3

INSTALL_DIR = install -p -d -o root -g root -m 755
INSTALL_FILE = install -p -o root -g root -m 644
INSTALL_SCRIPT = install -p -o root -g root -m 755
INSTALL_BIN = install -p -o root -g root -m 755

tmp = debian/tmp
overrides = $(tmp)/usr/share/lintian/overrides
pixmaps = $(tmp)/usr/share/pixmaps
bindir = $(tmp)/usr/bin
scriptsharebase = /usr/share/kdesdk-scripts
scriptshare = $(tmp)$(scriptsharebase)
emacsdirbase = /usr/share/emacs/site-lisp/kdesdk-scripts
emacsdir = $(tmp)$(emacsdirbase)

ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH)
ifeq ($(ARCH),alpha)
  COMPILER_FLAGS=CXX=g++-3.0 CC=gcc-3.0 CFLAGS=-mieee CXXFLAGS=-mieee
else
  COMPILER_FLAGS=CXX=g++ CC=gcc
endif

build: build-stamp

-include debian/debiandirs

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

build-stamp:
	dh_testdir
	if test ! -f configure; then \
	  $(MAKE) -f admin/Makefile.common ;\
	fi
	$(COMPILER_FLAGS) \
	./configure $(configkde)
	$(MAKE)
	$(MAKE) check
	touch build-stamp

clean: debian-clean
	dh_clean

debian-clean:
	dh_testdir
	dh_testroot
	-rm -f build-stamp install-stamp
	-rm -f debian/debiandirs
	-rm -rf kapptemplate/admin
	if test -d CVS; then \
	  $(MAKE) -f admin/Makefile.common cvs-clean ;\
	fi
	-$(MAKE) distclean

install: install-stamp

install-stamp: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	$(INSTALL_DIR) $(overrides)
	$(INSTALL_FILE) debian/*.override $(overrides)
	-for i in `ls $(overrides)/`; do \
	  mv $(overrides)/$$i \
	    $(overrides)/`echo $$i | sed -e 's#.override##'`; \
	done

	$(INSTALL_DIR) $(pixmaps)
	$(INSTALL_FILE) debian/*.xpm $(pixmaps)

	$(INSTALL_DIR) $(scriptshare)
	$(INSTALL_FILE) scripts/kde-devel-gdb $(scriptshare)

	$(INSTALL_DIR) $(emacsdir)
	$(INSTALL_FILE) scripts/kde-devel-emacs.el $(emacsdir)

	$(INSTALL_DIR) $(tmp)/usr/share/kdepalettes
	$(INSTALL_FILE) kdepalettes/KDE_Gimp kdepalettes/kde_xpaintrc \
		kdepalettes/README $(tmp)/usr/share/kdepalettes
	
	$(MAKE) install DESTDIR=`pwd`/$(tmp)

	# Install testkspy
	$(INSTALL_BIN) kspy/.libs/testkspy $(tmp)/usr/bin

	# Install kapptemplate.
	cd kapptemplate && ./install-me < ../debian/kapptemplate.install
	# Set the correct hard-coded install directory in /usr/bin/kapptemplate.
	sed -e 's#../debian/tmp##' < $(tmp)/usr/bin/kapptemplate \
		> $(tmp)/usr/bin/kapptemplate.real
	mv $(tmp)/usr/bin/kapptemplate.real $(tmp)/usr/bin/kapptemplate
	chmod a+x $(tmp)/usr/bin/kapptemplate

	# Install /usr/bin/extractrc if it's not already there.
	if [ ! -f $(tmp)/usr/bin/extractrc ]; then \
		$(INSTALL_SCRIPT) scripts/extractrc $(tmp)/usr/bin ; \
	fi

	# Don't install /usr/bin/makeobj because we don't have a preset
	# OBJ_REPLACEMENT.
	-rm $(tmp)/usr/bin/makeobj

	# Patch /usr/bin/qtdoc.
	head -n1 $(bindir)/qtdoc > $(bindir)/qtdoc.tmp
	cat debian/qtdoc.fix >> $(bindir)/qtdoc.tmp
	tail -n$$((`wc -l < $(bindir)/qtdoc`-1)) $(bindir)/qtdoc \
		>> $(bindir)/qtdoc.tmp
	-mv $(bindir)/qtdoc.tmp $(bindir)/qtdoc
	chmod a+x $(bindir)/qtdoc

	# Patch /usr/bin/kdedoc.
	sed -e 's#$$KDEDIR/share/kdedoc#/usr/share/doc/kdelibs3-doc/html#' \
		< $(bindir)/kdedoc > $(bindir)/kdedoc.tmp
	-mv $(bindir)/kdedoc.tmp $(bindir)/kdedoc
	chmod a+x $(bindir)/kdedoc

	# Patch gdb macro file.
	sed -e 's#/path/to/kde/sources/kdesdk/scripts#$(scriptsharebase)#' \
		< $(scriptshare)/kde-devel-gdb > $(scriptshare)/kde-devel-gdb.tmp
	-mv $(scriptshare)/kde-devel-gdb.tmp $(scriptshare)/kde-devel-gdb

	# Patch emacs helper file.
	sed -e 's#~/kde2/kdesdk/scripts#$(emacsdirbase)#' \
		< $(emacsdir)/kde-devel-emacs.el > $(emacsdir)/kde-devel-emacs.el.tmp
	-mv $(emacsdir)/kde-devel-emacs.el.tmp $(emacsdir)/kde-devel-emacs.el

	perl -w admin/debianrules cleanup

	for i in `find debian/ -type l -name "common"`; do \
		rm $$i; \
	done

	touch install-stamp

binary-indep: build install
	dh_testdir
	dh_testroot
	dh_movefiles -i
	dh_installdocs -i
	dh_installmenu -i
	dh_installmime -i
	dh_installman -i
	# Install perlpod manpages.
	for i in includemocs; do \
		pod2man "--center=K Desktop Environment" scripts/$$i \
			> debian/kdesdk-scripts/usr/share/man/man1/$$i.1; \
	done
	# Move the .py.* manpages to the correct place.
	-mv debian/kdesdk-scripts/usr/share/man/py/man1/* \
		debian/kdesdk-scripts/usr/share/man/man1
	-rm -rf debian/kdesdk-scripts/usr/share/man/py
	dh_undocumented -i
	dh_installchangelogs -pkapptemplate kapptemplate/ChangeLog
	dh_installchangelogs -pkdesdk-doc
	dh_installchangelogs -pkdepalettes
	dh_installchangelogs -pkdesdk-scripts
	dh_link -i
	dh_strip -i
	dh_compress -i --exclude=.docbook
	dh_fixperms -i
	#dh_makeshlibs -V -i
	dh_installdeb -i
	dh_perl -i
	dh_shlibdeps -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

binary-arch: build install
	dh_testdir
	dh_testroot
	dh_movefiles -a
	dh_installdocs -a
	dh_installmenu -a
	dh_installmime -a
	dh_installman -a
	dh_undocumented -a
	dh_installchangelogs -pkbabel kbabel/ChangeLog
	dh_installchangelogs -pkbabel-dev kbabel/ChangeLog
	dh_installchangelogs -pkdesdk
	dh_installchangelogs -pkexample
	dh_installchangelogs -pkmtrace
	dh_installchangelogs -pkspy
	dh_installchangelogs -pkstartperf
	dh_installchangelogs -ppoxml
	dh_link -a
	dh_strip -a
	dh_compress -a --exclude=.docbook --exclude=.bz2
	dh_fixperms -a
	dh_makeshlibs -V -a
	dh_installdeb -a
	dh_perl -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

# Below here is fairly generic really

# Must do binary-arch first so kdesdk-scripts can mop up all unclaimed
# executables.
binary:	binary-arch binary-indep
.PHONY: binary binary-arch binary-indep clean debian-clean build install

