#!/usr/bin/make -f
export PYBUILD_NAME=pysam

DEBPKGNAME := $(shell dpkg-parsechangelog | awk '/^Source:/ {print $$2}')
TESTPKG    := $(DEBPKGNAME)-tests

HTSLIBDIR  := /usr/lib/$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
export HTSLIB_LIBRARY_DIR=$(HTSLIBDIR)
export HTSLIB_INCLUDE_DIR=/usr/include

export PYBUILD_TEST_NOSE=1
export PYBUILD_TEST_ARGS={dir}/tests

# DEB_BUILD_OPTIONS := nocheck

%:
	LC_ALL=C.UTF-8 dh $@ --with python2,python3 --buildsystem=pybuild

override_dh_install: clean-tests
	dh_install -Xtest.gtf.gz

override_dh_auto_clean: clean-tests
	dh_auto_clean

override_dh_auto_test:
	cd tests && make -C pysam_data
	# dh_auto_test	# unfortunately this does not work out of the box
			# see https://lists.debian.org/debian-python/2015/07/msg00064.html
			# thus trying manually with unusual tricks
	# For some strange reasons the extension of so files in Python 3.4
	# build tree are named .cpython-34m.so and thus will not be found
	# by the test scripts.  For the moment set some symlinks here to
	# enable running the test suite
	for so in `find .pybuild -name "*.cpython-34m.so"` ; do sso=`echo $${so} | sed 's/.cpython-34m//'`; ln -s `basename $${so}` $${sso} ; done
	PYBUILD_SYSTEM=custom \
	PYBUILD_TEST_ARGS="cd tests && if [ {version} = 2.7 ] ; then nosetests -s ; else nosetests3 -s -v ; fi" dh_auto_test || \
		echo "Ignoring test failures"
	# The so-symlinks above need to be removed - otherwise dh_python3 will fail
	find .pybuild -type l -name "*.so" -delete

get-orig-source:
	uscan --verbose --force-download --repack --compression xz

clean-tests:
	$(MAKE) -C tests/pysam_data clean
	find . -name "*.pyc" -delete
	find . -name "*.pyxbldc" -delete
	find . -name "tmp_*" -delete
	find . -name "*.bai*" -delete
	find . -name "*.cram*" -delete
	find . -name "*.bam" -delete
	rm -rf	tests/pysam_test_work \
		tests/example_htslib.gtf.gz.tbi \
		tests/log.txt \
		tests/test.bam \
		tests/_compile_test.c \
		tests/pysam_ex2.sam \
		tests/__pycache__ \
		pysam/calignmentfile.c \
		pysam/cbcf.c

.PHONY: clean-tests
