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

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

include /usr/share/dpkg/pkg-info.mk

UVER = $(DEB_VERSION_UPSTREAM)
H2MVER = $(shell help2man --version | head -1 | sed -e 's/.* //g')

DEB_CMAKE_EXTRA_FLAGS = \
	-DBUILD_SHARED_LIBS:BOOL=ON \
	-DBUILD_TESTING:BOOL=ON

# get octave paths (have to build-depend on liboctave-dev)
# which is dependent upon by dh-octave
OCTDIR=$(shell octave-config --print LOCALOCTFILEDIR)

# Use hardening options
# Taken from https://wiki.debian.org/Hardening#Notes_for_packages_using_CMake
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk
CFLAGS += $(CPPFLAGS)
CXXFLAGS += $(CPPFLAGS)

# Define this variable to use in % and override_dh_shlibdeps targets
dh_options = --buildsystem=cmake --no-parallel

%:
	dh $@ $(dh_options)

override_dh_auto_configure:
	dh_auto_configure -- \
		$(DEB_CMAKE_EXTRA_FLAGS)

execute_after_dh_auto_build:
	: # Build quick and dirty manpage whenever recent help2man is available
	if dpkg --compare-versions $(H2MVER) ge 1.37.1; then \
	  LD_LIBRARY_PATH=$$(/bin/ls -d $$PWD/obj-*)/libgdf \
		help2man --no-info -S libGDF -s 1 --version-string=$(UVER) \
		-n "Merge multiple GDF files" \
		*/tools/gdf_merger/gdf_merger >| gdf_merger.1; \
	else \
		touch gdf_merger.1; \
	fi

	: # Build Octave bindings
	cd matlab; \
	 for f in *.cpp; do \
		mkoctfile --mex $$f -I../libgdf/include -L$$(/bin/ls -d $$PWD/../obj-*)/libgdf -lGDF; \
	 done

execute_after_dh_auto_install:
	: # Install Octave bindings
	chmod -x matlab/*.mex
	dh_install -poctave-gdf matlab/*.mex $(OCTDIR)/gdf
	dh_octave_substvar -poctave-gdf

override_dh_shlibdeps:
	dh_shlibdeps $(dh_options:%=-O%)	\
	    -l/usr/lib/${DEB_HOST_MULTIARCH}/octave/$(shell octave-config -p VERSION)
