#!/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

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)
kdedocs = $(tmp)/usr/share/doc/kde/HTML

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

ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH)
ifeq ($(ARCH),alpha)
  COMPILER_FLAGS=CFLAGS="-O0 -mieee" CXXFLAGS="-O0 -mieee"
else
  COMPILER_FLAGS=CXX=g++ CC=gcc
endif
# Note: objprelink is no longer recommended for use.
# ifeq ($(ARCH),i386)
#   OBJPRELINK=--enable-objprelink
# 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) $(OBJPRELINK)
	$(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 overrides.
	$(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 pixmaps.
	$(INSTALL_DIR) $(pixmaps)
	$(INSTALL_FILE) debian/*.xpm $(pixmaps)

	# Install miscellaneous files.
	$(INSTALL_DIR) $(scriptshare)
	$(INSTALL_FILE) scripts/kde-devel-gdb $(scriptshare)

	# Install emacs helper file.
	$(INSTALL_DIR) $(emacsdir)
	$(INSTALL_FILE) scripts/kde-devel-emacs.el $(emacsdir)

	# Install palettes.
	$(INSTALL_DIR) $(tmp)/usr/share/kdepalettes
	$(INSTALL_FILE) kdepalettes/KDE_Gimp kdepalettes/kde_xpaintrc \
		kdepalettes/README $(tmp)/usr/share/kdepalettes
	
	# Main install.
	$(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

	# Install perlpod manpages.
	for i in includemocs; do \
	  pod2man "--center=K Desktop Environment" scripts/$$i \
	    > $(tmp)/usr/share/man/man1/$$i.1; done

	# Generate HTML docs.
	for i in `find $(tmp) -name "index.docbook"`; do \
	  pushd . > /dev/null; cd `dirname $$i`; meinproc `basename $$i`; \
	  popd > /dev/null; done

	# Make common links for docs.
	for p in `dh_listpackages` markup; do \
	  for i in `find $(kdedocs) -type d -name $$p`; do \
	    ln -f -n -s ../common $$i/common; done; done

	perl -w admin/debianrules cleanup

	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
	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 --exclude=.bz2
	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_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

