#!/usr/bin/make -f

export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DH_VERBOSE=1

include /usr/share/dpkg/default.mk

ifneq (,$(filter $(DEB_HOST_ARCH),i386 kfreebsd-i386 hurd-i386))
  DEB_CFLAGS_MAINT_APPEND=-msse -mfpmath=sse
endif
DEB_CFLAGS_MAINT_APPEND+=-ffat-lto-objects
DEB_LDFLAGS_MAINT_APPEND+=-Wl,-flto -fvisibility=hidden -ffat-lto-objects

export DEB_CFLAGS_MAINT_APPEND
export DEB_LDFLAGS_MAINT_APPEND

# Prune +,ds etc from version
UPSTREAM_VERSION := $(shell echo $(DEB_VERSION_UPSTREAM) | sed 's/+.*//')

libdir = /usr/lib/$(DEB_HOST_MULTIARCH)
plugindir = $(libdir)/htslib

%:
	dh $@

hello:
	echo "Upstream version: $(UPSTREAM_VERSION)"

override_dh_auto_configure:
ifneq (,$(filter $(DEB_HOST_ARCH),i386 kfreebsd-i386 hurd-i386))
	cp htslib.pc.in debian/
	cp debian/i386-htslib.pc.in ./htslib.pc.in
endif
	# create clean copy of test dir
	cp -a test test_backup
	# to help with cross building, otherwise MMAP might get turned off
	export ac_cv_func_mmap_fixed_mapped=yes \
	&& autoconf \
	&& dh_auto_configure -- \
		--enable-libcurl \
		--enable-gcs \
		--enable-s3 \
		--enable-plugins \
		--with-plugin-dir='$(libdir)/htslib' \
		--with-external-htscodecs \
		--with-plugin-path='/usr/local/lib/htslib:/usr/local/libexec/htslib:$(plugindir)'

override_dh_auto_build-arch:
	dh_auto_build -- \
	  CFLAGS="$$(dpkg-buildflags --get CFLAGS)" \
	  CPPFLAGS="-I. -DSAMTOOLS=1 $$(dpkg-buildflags --get CPPFLAGS)" \
	  PACKAGE_VERSION="$(UPSTREAM_VERSION)" \
	  libdir=$(libdir)
# re-try later	  LDLIBS=-lhts \

override_dh_auto_build-indep:

override_dh_auto_install-arch:
	for binary in sam test-regidx hts_endian test-bcf-sr test_bgzf ; do \
	    rm $(CURDIR)/test/$${binary} ; \
	done
	dh_auto_install -- prefix=/usr \
	  CFLAGS="$$(dpkg-buildflags --get CFLAGS)" \
	  CPPFLAGS="-I. -DSAMTOOLS=1 $$(dpkg-buildflags --get CPPFLAGS)" \
	  PACKAGE_VERSION="$(UPSTREAM_VERSION)" \
	  libdir=$(libdir)
	# restore clean copy of test dir before dh_install is run
	# This should not be done earlier since dh_auto_install contains some unconditional removals
	$(RM) -r test
	mv test_backup test

override_dh_strip:
	# This is apparently important for the interpretation by ldc2 in sambamba
	dh_strip -Xlibhts.a

override_dh_auto_install-indep:

override_dh_auto_test-arch:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	dh_auto_test -- \
	  CFLAGS="$$(dpkg-buildflags --get CFLAGS)" \
	  CPPFLAGS="-I. -DSAMTOOLS=1 $$(dpkg-buildflags --get CPPFLAGS)" \
	  PACKAGE_VERSION="$(UPSTREAM_VERSION)" \
	  libdir=$(libdir) \
	  || \
	  if find . -name "FAIL*" > /dev/null ; then \
	    for file in $$(find . -name "FAIL*"); do echo $${file}; cat $${file}; done && false ; \
	  fi
endif

override_dh_auto_test-indep:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	echo "Suppress test for Architecture independant builds."
endif

execute_after_dh_install-indep:
	sed -i 's#\.\./\.\./htslib/#htslib/#' `grep -Rl '../../htslib/' debian/htslib-test/*`

execute_after_dh_installdocs:
	# Fix Perl interpreter path
	for pl in `grep -Rl '#!/usr/bin/env[[:space:]]\+perl' debian/*/usr/*` ; do \
	    sed -i '1s?^#!/usr/bin/env[[:space:]]\+perl?#!/usr/bin/perl?' $${pl} ; \
	done

override_dh_installchangelogs:
	dh_installchangelogs NEWS

execute_before_dh_missing:
	# FIXME: No idea why these files are remaining in debian/tmp
	rm -rf debian/tmp/usr/bin debian/tmp/usr/share/man

execute_after_dh_fixperms:
	find debian -name simple_test_driver.sh -exec chmod +x \{\} \;

execute_before_dh_auto_clean:
ifneq (,$(filter $(DEB_HOST_ARCH),i386 kfreebsd-i386 hurd-i386))
ifneq (,$(wildcard debian/htslib.pc.in))
	cp debian/htslib.pc.in ./
endif
endif

execute_after_dh_auto_clean:
	rm -rf test_backup/
