#!/usr/bin/make -f
# debian/rules for enblend-enfuse
#
# Written by Sebastian Harl <sh@tokkee.org>.

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

# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
#used by  debian/patches/20_reproducible_sig.diff
export DEB_TOP_DIR:=$(CURDIR)

CONFARGS=--host=$(DEB_HOST_GNU_TYPE) \
		--build=$(DEB_BUILD_GNU_TYPE) \
		$(shell env DEB_CFLAGS_MAINT_APPEND=-Wall \
		DEB_CXXFLAGS_MAINT_APPEND=-pipe \
		DEB_LDFLAGS_MAINT_APPEND=-Wl,--as-needed \
		dpkg-buildflags --export=configure) \
		--prefix=/usr --mandir=\$${prefix}/share/man \
		--enable-gpu-support=yes \
		--with-boost-filesystem=yes \
		--with-openexr=yes

#		--disable-openmp \
#		--enable-image-cache=yes \


get-orig-source:
	dh_testdir
	dh_testroot
	chmod 755 debian/bin/uscan_repack.sh
	uscan --verbose --force-download --rename

# Hack: Since out of tree building of documentation is broken, make a out-tree
# build for mp versions and in-tree build for the regular binaries. Out of tree
# configure fails if in-tree configure run is detected, therefore force correct
# ordering by making config.status depend on build-tree-mp/config.status.
config.status: configure build-tree-mp/config.status
	dh_testdir
	./configure $(CONFARGS) \
		--disable-openmp \
		--enable-image-cache=yes

build-tree-mp/config.status: configure
	dh_testdir
	rm -vf config.guess config.sub
	ln -s /usr/share/misc/config.sub /usr/share/misc/config.guess .
	if ! test -e build-tree-mp ; then mkdir build-tree-mp ; fi
	cd build-tree-mp && ../configure $(CONFARGS) \
		--enable-openmp \
		--disable-image-cache

build-indep:
	# nothing to do

build-arch: build-arch-stamp

build: build-arch-stamp

build-arch-stamp: config.status build-tree-mp/config.status
	dh_testdir
	
	cd build-tree-mp && $(MAKE)
	$(MAKE)
	
	$(MAKE) pdf
	
	sed -e "s/manual page for enblend.*/combine images using a multiresolution spline/" \
		src/enblend.1 > src/enblend.1.tmp
	mv src/enblend.1.tmp src/enblend.1
	sed -e "s/manual page for enfuse.*/poor man's HDR/" \
		src/enfuse.1 > src/enfuse.1.tmp
	mv src/enfuse.1.tmp src/enfuse.1
	
	touch build-arch-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-arch-stamp
	
	[ ! -f Makefile ] || $(MAKE) distclean
	rm -f doc/*.info doc/enblend.tpt doc/enfuse.tpt
	rm -rf build-tree-mp
	rm -vf config.guess config.sub
	
	dh_clean

install: build-arch-stamp
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs
	
	$(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
	rm -f $(CURDIR)/debian/tmp/usr/share/info/dir
	install -m755  build-tree-mp/src/enblend \
		$(CURDIR)/debian/tmp/usr/bin/enblend-mp
	install -m755  build-tree-mp/src/enfuse \
		$(CURDIR)/debian/tmp/usr/bin/enfuse-mp

binary-indep:
	# nothing to do here

binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs -a ChangeLog
	dh_installdocs -A -a NEWS AUTHORS
	dh_installexamples -a
	dh_install -a --sourcedir=debian/tmp --fail-missing
	dh_installman -a
	dh_installinfo -penblend doc/enblend.info
	dh_installinfo -penfuse doc/enfuse*.info
	dh_link -a
	dh_strip -a
	dh_compress -a -X.pdf
	dh_fixperms -a
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

binary: binary-indep binary-arch
.PHONY: get-orig-source build clean binary-indep binary-arch binary install build-arch build-indep

