#!/usr/bin/make -f
# -*- makefile -*-

MAKEOPTS=LIBEXT=so

export PYBUILD_NAME=biosig
export PYBUILD_SYSTEM=pybuild

export DEB_CFLAGS_MAINT_APPEND  = -I$(CURDIR)

export DEB_BUILD_MAINT_OPTIONS=hardening=+all

%:
	dh  $@ --with python3

override_dh_auto_configure:
	dh_auto_configure
	: # Use our copies
	ln -s debian/upstream-extern extern

override_dh_auto_build:
	: # Build everything upstream builds by default
	make $(MAKEOPTS)
	: # Assure additional interesting to us pieces are built
	make $(MAKEOPTS) libbiosig.so mex4o biosig4python
	#make libbiosig.a save2gdf save2aecg save2scp pdp2gdf \
	#	 biosig_client biosig_server
	# Later: libbiosig.so -- fails, no SONAME etc,
	#         mex4o -- there are some copying etc
	# Later: Python -- depends on obsolete Numeric
	#        biosig4python
	#  to build for multiple Python's would need to loop
	#  between versions with smth like make python -B PYTHONVER=2.6

override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	echo "I: skip testing for now -- relies on download of test data"
endif

# Manual crafting of installing Octave and Python bindings
# TODO: proper
PYTHON3=$(shell py3versions -d)
PY3DIR=$(shell if /bin/ls -d /usr/lib/${PYTHON3}/*-packages >/dev/null 2>/dev/null ; then /bin/ls -d /usr/lib/${PYTHON3}/*-packages ; else /bin/ls -d /usr/lib/python3/*-packages ; fi)
PY3VER=$(shell py3versions -d -v)

OCTDIR=$(shell octave-config -p LOCALOCTFILEDIR)/biosig

override_dh_auto_install:
	dh_auto_install

	: I: install Python binding for current Python verion TODO: all
	mkdir -p debian/python3-biosig$(PY3DIR)
	cp -a python/build/lib.*-$(PY3VER)/biosig.*.so debian/python3-biosig$(PY3DIR)/biosig.so
	find debian -name "biosig*.so"

	: I: install Octave bindings
	mkdir -p debian/octave-biosig$(OCTDIR)
	: # install with executable flag so dh_{strip,...} tools could catch it to operate
	install mex/mexS*.mex debian/octave-biosig$(OCTDIR)

override_dh_install:
	dh_install
	d-shlibmove --commit \
		    --multiarch \
		    --devunversioned \
		    --exclude-la \
		    --override s/libcholmod3-dev/libsuitesparse-dev/ \
		    --override s/libtinyxml2.6.2-dev/libtinyxml-dev/ \
		    --movedev debian/tmp/usr/include usr \
		    --movedev "debian/tmp/usr/lib/*/pkgconfig/*.pc" usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig \
		    debian/tmp/usr/lib/*/*.so

override_dh_makeshlibs:
	dh_makeshlibs
	: # Provide octave:Depends
	dh_octave_substvar
	dh_numpy3

override_dh_fixperms:
	dh_fixperms
	chmod a-x debian/octave-biosig$(OCTDIR)/*.mex
	find debian -name "*.pc" -exec chmod -x \{\} \;

override_dh_auto_clean:
	dh_auto_clean
	if [ -f Makefile ] ; then make $(MAKEOPTS) clean ; fi 	# distclean invoked by auto isn't enough
	-rm extern
