#!/usr/bin/make -f

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

export CPPFLAGS = $(shell dpkg-buildflags --get CPPFLAGS)
export LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS)
export CXXFLAGS = $(shell dpkg-buildflags --get CXXFLAGS)
export CXX = g++-4.7
CXXFLAGS += --std=c++0x -Wall 

build: build-indep build-arch

build-arch:
	dh_testdir
	./build program
	./build man
	touch build-stamp

build-indep:
	./build manual

clean:
	dh_testdir
	dh_testroot
	./build distclean
	rm -f build-stamp
	dh_clean

install-arch:
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	# Add here commands to install the package into debian/stealth.
	./build install program debian/stealth/usr/bin/stealth
	./build install man     debian/stealth/usr/share/man/man1
	./build install std     debian/stealth/usr/share/doc/stealth
	./build install extra   debian/stealth/usr/share/doc/stealth

install-indep:
	./build install manual  debian/stealth-doc/usr/share/doc/stealth-doc

binary-indep: build-indep install-indep
	dh_testdir -i
	dh_testroot -i
	dh_installdocs -i
	dh_installinfo -i
	dh_installchangelogs -i
	dh_link -i
	dh_compress -i -X.dvi -X.latex -X.txt -X.ps -X.pdf
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

binary-arch: build-arch install-arch
	dh_testdir -a
	dh_testroot -a
	dh_installdocs -a
	dh_installexamples -a
	dh_installmenu -a
	dh_installcron -a
	dh_installman -a
	dh_installinfo -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

# The following is for internal development usage only
# Update that sum when new _upstream_ releases occur, this
# catches silent file content forges at the upstream server side

# archive downloaded from https://www.icce.rug.nl/debian/stealth

MD5TRUSTED := 08d7fabcbd48bb4396d34c198dcf4b56

DEBVERSION:=$(shell head -n 1 debian/changelog | sed -e 's/^[^(]*(\([^)]*\)).*/\1/')
UPVERSION:=$(shell echo $(DEBVERSION) | sed -e 's/^.*://' -e 's/-[0-9.]*$$//' -e 's/.dfsg$$//')
UPNAME := stealth
UPFILE := $(UPNAME)_$(UPVERSION).tar.gz
DEFILE := $(UPNAME)_$(UPVERSION).orig.tar.gz
URL    := https://www.icce.rug.nl/debian/stealth

MD5CURRENT := `md5sum ../tarballs/$(DEFILE) | sed -e 's/ .*//'`

get-orig-source:
	@@[ -d ../tarballs/. ]||mkdir -p ../tarballs

	-@if [ ! -f ../tarballs/$(DEFILE) ] ; then \
	        echo -e "Downloading $(URL)/$(UPFILE)\nSaving into ../tarballs/$(DEFILE) ..." ; \
	wget --no-check-certificate --quiet -N -nv -T10 -t3 -O \
	         ../tarballs/$(DEFILE) $(URL)/$(UPFILE) ; \
	else \
	        echo "Upstream source tarball have been already downloaded" ; \
	fi

	-@if [ "$(MD5CURRENT)" != "$(MD5TRUSTED)" ] ; then \
	        echo "Expecting upstream filename md5sum $(MD5TRUSTED), but $(MD5CURRENT) found" ; \
	        echo "Upstream filename md5sum is NOT trusted! Possible upstream filename forge!" ; \
	        false ; \
	else \
	        echo "Upstream filename md5sum is trusted!" ; \
	fi

# call git-build from the project's base directory as `fakeroot debian/rules git-build'
# it creates  ../${UPNAME}-build and runs dpkg-buildpackage in ../${UPNAME}-build/$(UPNAME)-$(UPVERSION)
# which, if successful, creates the debian files in ${UPNAME}-build
# Probably easier to use is `git-bl'

debian-area = $(shell pwd)
build-base  = ../$(UPNAME)-build
build-area  = $(UPNAME)-$(UPVERSION)
tarball     = ../tarballs/$(DEFILE) 
garbage     = ../$(UPNAME)-build/$(UPNAME)-$(UPVERSION) ../$(UPNAME)-build/run.lintian

git-build:
	@@[ -d $(build-base)/. ] || mkdir -p $(build-base)

	-@if [ ! -f $(tarball) ] ; then \
	    echo "Upstream source tarball $(tarball) not found" ; \
	else \
	    rm -rf $(garbage) ; \
	    cp $(tarball) $(build-base) ; \
	    chdir $(build-base) ; \
	    tar xzf $(DEFILE) ; \
	    chdir $(build-area) ; \
	    cp -r $(debian-area)/debian ./ ; \
	    dpkg-buildpackage $(DPKG_BUILDPACKAGE) ; \
	    if [ "$$?" -eq 0 ] ; then \
	        chdir .. ; \
	        touch run.lintian ; \
	        rm -rf $(build-area) ; \
	    else \
	        chdir .. ; \
	        mv $(build-area) $(build-area)-obsolete-`date +%s` ; \
	    fi \
	fi

print-version:
	@@echo "Debian version:	 $(DEBVERSION)"
	@@echo "Upstream version: $(UPVERSION)"

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