#!/usr/bin/make -f
# -*- makefile -*-
srcpkg = $(shell LC_ALL=C dpkg-parsechangelog | grep '^Source:' | cut -d ' ' -f 2,2)
debver = $(shell LC_ALL=C dpkg-parsechangelog | grep '^Version:' | cut -d ' ' -f 2,2 )
upstreamver = $(shell echo $(debver) | cut -d '-' -f 1,1 )

gitver = $(shell [ -x /usr/bin/git ] && git describe --tags --match 'release/*' $$(git merge-base -a HEAD master) | sed -e 's,release/,,g' -e 's/_/./g' -e 's/-/+git/')

# one ring to rule them all ...
%:
	dh $@ --buildsystem=cmake

CMAKE_FLAGS=-DCMAKE_INSTALL_PREFIX:PATH=/usr \
            -DCMAKE_SKIP_RPATH:BOOL=ON \
            -DBUILD_VX:BOOL=ON \
            -DBUILD_VXVIEW:BOOL=ON \
            -DBUILD_APPS:BOOL=ON \
            -DCMAKE_C_FLAGS:STRING="$$CFLAGS" \
            -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--no-undefined" \
            -DCMAKE_EXE_LINKER_FLAGS="-Wl,--no-undefined"

override_dh_auto_configure:
	dh_auto_configure -- $(CMAKE_FLAGS)

override_dh_auto_install:
	dh_auto_install
	# grab all handwritten manpages, be careful to exclude matches in quilt
	# data
	mkdir -p $(CURDIR)/debian/tmp/man
	for i in $$(find . -name '*.man' | grep -v '^\./\.pc'); do \
		cp -v $$i debian/tmp/man/$$(basename $${i%.man}.1); \
	done
	# generate missing manpages with doxygen
	# first update doxygen config
	cp $(CURDIR)/userdoc/Doxyfile debian/tmp/man/Doxyfile.old
	doxygen -u debian/tmp/man/Doxyfile.old
	sed -e 's#/home/dallas1/lohmann/VIA/pgms \\#$(CURDIR)/pgms#g' \
		-e 's#/home/dallas1/lohmann/VIA/base##g' \
		-e 's/GENERATE_HTML          = YES/GENERATE_HTML = NO/g' \
		-e 's/GENERATE_LATEX         = YES/GENERATE_LATEX = NO/g' \
		< debian/tmp/man/Doxyfile.old > debian/tmp/man/Doxyfile
	# run doxygen
	cd debian/tmp/man && doxygen
	# turn man3 into man1
	for m in debian/tmp/man/man/man3/*; do \
		app=$$(basename $$m) ; \
		app=$${app%.c.3} ; \
		if [ -x $(CURDIR)/debian/tmp/usr/bin/$${app} ]; then \
			echo "Converting manpage of $${app}" ; \
			sed -e "s/.TH \"$${app}.c\" 3 /.TH \"$${app}\" 1 /g" \
			    -e "s/$${app}.c/$${app}/g" \
				< $$m > debian/tmp/man/man/$${app}.1 ; \
		fi ; \
	done
	# only add generated manpages if no handwritten is available
	for m in $(CURDIR)/debian/tmp/man/man/*.1; do \
		if [ ! -f $(CURDIR)/debian/tmp/man/$$(basename $$m) ]; then \
			cp -v $$m $(CURDIR)/debian/tmp/man/$$(basename $$m); \
		fi; \
	done
	# generate API docs with doxygen
	# first update doxygen config
	mkdir -p $(CURDIR)/debian/tmp/api
	cp $(CURDIR)/doc/Doxyfile debian/tmp/api/Doxyfile.old
	sed -e 's#/home/dallas1/lohmann/VIA/vialib /home/dallas1/lohmann/VIA/include#../../../vialib ../../../vxlib ../../../viaio ../../../include#g' \
		-e 's/GENERATE_MAN          = YES/GENERATE_MAN = NO/g' \
		-e 's/GENERATE_LATEX         = YES/GENERATE_LATEX = NO/g' \
		< debian/tmp/api/Doxyfile.old > debian/tmp/api/Doxyfile
	# run doxygen
	doxygen -u debian/tmp/api/Doxyfile
	cd debian/tmp/api && doxygen

override_dh_install:
	dh_install --sourcedir=$(CURDIR)/debian/tmp

get-orig-source:
	# orig tarball, turn directory into something nicer
	git archive --format=tar --prefix=$(srcpkg)-$(gitver)/ $$(git merge-base -a HEAD master) | \
	            gzip -n9 > $(srcpkg)_$(gitver).orig.tar.gz
