#!/usr/bin/make -f

# This is a debian/rules file which builds meta packages
# for a Custom Debian Distribution.
#
# Copyright (C) Andreas Tille <tille@debian.org>
# License: GPL

CDDNAME   := $(shell /usr/share/cdd-dev/cdd-get-names cddname)
PREFIX    := $(shell /usr/share/cdd-dev/cdd-get-names metapackageprefix)
CDDMKFILE := /usr/share/cdd-dev/Makefile
CDD_INSTALL_HELPER := /usr/share/cdd-dev/cdd-install-helper

TARGET_DIST := $(shell head -1 debian/changelog |awk '{print $$3}'|tr -d ';')
CDD := $(shell /usr/share/cdd-dev/cdd-get-names cddname)
GENCONTROL := /usr/share/cdd-dev/cdd-gen-control

VERSION := $(shell grep '^$(CDDNAME) *(.\+)' debian/changelog | head -n 1 | sed 's/^$(CDDNAME) \+(\(.\+\)) .*/\1/' )
DISTDIR := $(CDDNAME)-$(VERSION)

all:
	echo $(PREFIX), $(CDDNAME)

INSTALLREADME := $(shell if test -e README ; then echo "-A README"; fi)

debian/control: 
	$(MAKE) -f $(CDDMKFILE) debian/control

$(CDD)-tasks.desc:
	$(MAKE) -f $(CDDMKFILE) $(CDD)-tasks.desc

build: 
	## Don't build debian/control and tasks.desc at package build time
	# $(MAKE) -f $(CDDMKFILE) all
	dh_testdir

clean:
	dh_testdir
	dh_testroot
	$(MAKE) -f $(CDDMKFILE) clean

	# Clear apt-get cache
	rm -rf tmp
	# Remove backup files from source tarball
	rm -f tasks/*~
	# Remove auto generated post{inst,rm} scripts
	rm -f debian/$(PREFIX)-*.postinst debian/$(PREFIX)-*.postrm
	# remove tasksel directory
	## [ -d tasksel ] && rm -f tasksel/$(PREFIX)-* && rmdir tasksel
	# remove auto generated files for config package
	rm -f debian/$(PREFIX)-config.templates debian/$(PREFIX)-config.config \
	      debian/$(PREFIX)-config.install   debian/$(PREFIX)-config.links  \
	      debian/90$(PREFIX)-config
	# remove auto generated debconf template translations
	rm -rf debian/po
	# DO NOT Remove auto generated tasksel descriptions - it sticks to the source
	# rm -f $(CDDNAME)-tasks.desc

	dh_clean build-stamp

get-orig-source: $(CDD)-tasks.desc debian/control
	if [ ! -f debian/changelog ] ; then \
	    echo "File debian/changelog is missing. Something is wrong!" ; \
	    exit -1 ; \
	fi
	if [ "$(VERSION)" = "" ] ; then \
	    echo "Unable to obtain version number from debian/changelog. Something is wrong!" ; \
	    exit -1 ; \
	fi ;
	rm -rf $(DISTDIR)
	mkdir $(DISTDIR)
	chmod 777 $(DISTDIR)
	# copy with exception of VCS stuff
	tar -cf - --exclude $(DISTDIR) \
	          --exclude CVS --exclude .svn --exclude svn-commit.tmp . | \
	    (cd $(DISTDIR); tar xfBp -)
	rm -f `find $(DISTDIR) -name "*~"`
	GZIP=-9 tar -czf ../$(CDDNAME)_$(VERSION).tar.gz $(DISTDIR)
	rm -rf $(DISTDIR)
	# remove auto generated files from SVN dir where it should not be stored
	rm -f debian/control $(CDD)-tasks.desc

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs
	dh_install $(CDDNAME)-tasks.desc usr/share/tasksel

# Build architecture-dependent files here.
# Since Debian Edu builds architecture dependant meta packages
# to have correct Dependencies for every architecture we need
# to build also binary-arch target
binary-arch: build install
	dh_testdir -a
	dh_testroot -a
	dh_installdocs -a $(INSTALLREADME)
	dh_installexamples -a
	dh_installmenu -a
	dh_installcron -a
	dh_installman -a
	dh_installinfo -a
	dh_lintian -a
	if grep -q "^Architecture: \+any" debian/control ; then \
	    echo "$(CDD_INSTALL_HELPER) for architecture any" ; \
	    $(CDD_INSTALL_HELPER) ; \
	fi
	dh_install -a
	dh_installdebconf -a
	dh_installchangelogs -a
	dh_link -a
	dh_strip -a
	dh_compress -a
	dh_fixperms -a
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

# Build architecture-independent files here.
binary-indep: build install
	dh_testdir -i
	dh_testroot -i
	dh_installdocs -i $(INSTALLREADME)
	dh_installexamples -i
	dh_installmenu -i
	dh_installcron -i
	dh_installman -i
	dh_installinfo -i
	dh_lintian -i
	if grep -q "^Architecture: \+all" debian/control ; then \
	    echo "$(CDD_INSTALL_HELPER) for architecture all" ; \
	    $(CDD_INSTALL_HELPER) ; \
	fi
	dh_install -i
	dh_installdebconf -i
	dh_installchangelogs -i
	dh_link -i
	dh_strip -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_shlibdeps -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure debian/control dist
