#!/usr/bin/make -f

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

include /usr/share/dpkg/architecture.mk

# magic debhelper rule
%:
	dh $@ --with fortran

# To aid reproducible builds
LC_ALL=C
export LC_ALL

PYTHON_PLATFORM:=$(shell python3 -c 'import sysconfig; print(sysconfig.get_platform())')
FC:=$(shell dh_fortran get_fc_default)
LIBDIR:=/usr/lib/$(DEB_HOST_MULTIARCH)
INSTALLDIR:=$(CURDIR)/debian/tmp

PY3:=$(shell py3versions -s)

override_dh_auto_build:
	cp -a bin/build_fonts/unix bin/build_fonts/unix.bak
	cp debian/platform_specific.mk.debian.$(FC) platform_specific.mk.debian
	cp debian/ef_utility/platform_specific.mk.debian.$(FC) external_functions/ef_utility/platform_specific.mk.debian
	sed -e 's%@ARCH@%${DEB_HOST_MULTIARCH}%' \
		-e 's%@PYTHON@%${PY3}%' \
                -e 's%@LIBDIR@%${LIBDIR}%' \
		-e 's%@CURDIR@%${CURDIR}%' \
                -e 's%@INSTALLDIR@%${INSTALLDIR}%' \
                < debian/site_specific.mk.in > site_specific.mk
	cp site_specific.mk external_functions/ef_utility

override_dh_auto_install:
	# Build and install 
	# Horrible hack breaks The Debian Way. I'm doing the build in the 'install' phase, as i'm installing into debian/tmp
	# Doing it any earlier, and dh_prep will remove debian/tmp. 
	# This means I'm also doing 'test' after the Install, not between during make & install. gack.
	for p in $(PY3) ; do \
		mkdir -p $(INSTALLDIR)/lib/$$p ; \
		m=`echo $$p | tr -d 'python'  ` ; \
		n=`echo $$p | tr -d 'python' | tr -d '.' ` ; \
                ln -s  $(CURDIR)/build/lib.$(PYTHON_PLATFORM)-cpython-$$n/pyferret/libpyferret.cpython-$$n-$(DEB_HOST_MULTIARCH).so \
                   $(INSTALLDIR)/lib/$$p/libpyferret.so ; \
		$(MAKE) HOSTTYPE=debian PYTHON_EXE=$$p INSTALLDIR=debian/tmp-$$p clean all install ; \
		cp $(CURDIR)/install/local/lib/$$p/dist-packages/pyferret-7.65-py$$m-$(PYTHON_PLATFORM).egg/pyferret/libpyferret.cpython-$$n-$(DEB_HOST_MULTIARCH).so \
			$(INSTALLDIR)/lib/$$p ; \
		done
	find debian \( -name '*.pyo' -o -name '*.pyc' \) -delete
	find debian -type d -name __pycache__ -delete
	@echo "Now doing bench tests"
	# ln -s debian/pyferret3  $(INSTALLDIR)/lib/$(shell py3versions -d)/pyferret
	# First build necessary files
	for p in  $(shell py3versions -d) ; do \
		sed -e 's%@ARCH@%${DEB_HOST_MULTIARCH}%' \
                -e 's%@LIBDIR@%${LIBDIR}%' \
		-e 's%@CURDIR@%${CURDIR}%' \
                -e "s%@PYTHON@%$$p%" \
		-e 's%@INSTALLDIR@%${INSTALLDIR}%' \
                < debian/site_specific.mk.in > site_specific.mk ; \
		PATH=$(INSTALLDIR)/lib/$$p:$(PATH) PYTHONPATH=$(INSTALLDIR)/lib/$$p/site-packages \
		$(MAKE) HOSTTYPE=debian PYTHON_EXE=$$p INSTALLDIR=debian/tmp-$$p clean all install ; \
		done

execute_after_dh_install:
	dh_numpy3
	# This will return 1 because of recursion, so true
	(find debian -name '*.egg' -exec rm -rf {} \; || true)

override_dh_auto_test:
	@echo "Dummy test, to avoid calling make. Do test later"

override_dh_auto_clean:
	# use system xpm.h, not supplied ones
	rm -f fer/gui/xpm*.h
	rm -rf ./build ./install 
	if  [ -d "bin/build_fonts/unix.bak" ] ; then rm -rf bin/build_fonts/unix; mv bin/build_fonts/unix.bak  bin/build_fonts/unix ; fi
	find . -type l  -delete 
	( find . -name '*.egg*' -exec rm -rf {} \; || true )
	find . \( -name '*.a' -o -name '*.o' -o -name '*.so' \) -delete
	[ ! -f platform_specific_flags.mk.debian ]  || $(MAKE)  clean HOSTTYPE=debian 
	rm -f external_functions/ef_utility/platform_specific.mk.debian \
		 external_functions/ef_utility/site_specific.mk \
	  	 site_specific.mk platform_specific.mk.debian
	rm -f  fer/special/xmake_date_data.F fer/special/xplatform_type_data.F fer/special/xrevision_type_data.F


