#!/usr/bin/make -f

BUILDDIR = $(CURDIR)/debian/build

# To enable all, uncomment following line
# DEB_BUILD_MAINT_OPTIONS:= hardening=+all,-pie
CXXFLAGS:= -fPIC $(shell dpkg-buildflags --get CXXFLAGS)
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

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

#QI=/usr/include/$(DEB_HOST_MULTIARCH)/qt5
#QTINCS=-I$(QI) -I$(QI)/QtCore -I$(QI)/QtWidgets -I$(QI)/QtGui -I$(QI)/QtX11Extras -I$(QI)/QtXml -I$(QI)/QtXmlPatterns

%:
	dh $@  --with python2 --with-buildsystem=cmake --builddirectory=$(BUILDDIR)

export extra_flags += \
	-DBUILD_SITE=debian \
	-DHAVE_LIBGD=1 \
	-DHAVE_BOOST=1 \
	-DHAVE_DLFCN_H=1 \
	-DHAVE_INTTYPES_H=1 \
	-DHAVE_LIBEXPAT=1 \
	-DHAVE_LIBGRIB_API=1 \
	-DHAVE_LIBPROJ=1 \
	-DHAVE_LIBPTHREAD=1 \
	-DHAVE_LIBZ=1 \
	-DHAVE_MEMORY_H=1 \
	-DHAVE_STDINT_H=1 \
	-DHAVE_STDLIB_H=1 \
	-DHAVE_STRINGS_H=1 \
	-DHAVE_STRING_H=1 \
	-DHAVE_SYS_STAT_H=1 \
	-DHAVE_STS_TYPES_H=1 \
	-DHAVE_UNISTD_H=1 \
	-DMAGICS_ALLHEADERS=1 \
	-DMAGICS_GRIB=1 \
	-DMAGICS_JSON=1 \
	-DMAGICS_METVIEW=1 \
	-DMAGICS_GIF=1 \
	-DMAGICS_QT=1 \
	-DMAGICS_GIF_ANIMATED=1 \
	-DMAGICS_TIFF=1 \
	-DMAGICS_TTF=1 \
	-DMAGICS_TTF_PATH="share/magics/ttf/" \
	-DMAGICS_SITE="debian" \
	-DMAGICS_PYTHON=1 \
	-DMAGICS_THREADS=1 \
	-DDISABLE_OS_CHECK=ON \
	-DCMAKE_INSTALL_PREFIX=/usr \
	-DCMAKE_VERBOSE_MAKEFILE=ON \
	-DBUILD_DOCUMENTATION=ON \
	-DENABLE_FORTRAN=ON \
	-DENABLE_LARGE_FILE_SUPPORT=ON \
	-DENABLE_PYTHON=ON \
	-DBUILD_EXAMPLES=ON \
    -DBUILD_SHARED_LIBS=ON \
	-DENABLE_TESTS=OFF \
	-DENABLE_RPATHS=OFF \
	-DENABLE_CAIRO=ON \
	-DENABLE_BUFR=ON \
	-DENABLE_GRIB=ON \
	-DENABLE_METVIEW=ON \
	-DENABLE_NETCDF=ON \
	-DENABLE_STATIC_LIBRARY=ON \
	-DCMAKE_CXX_FLAGS='$(CXXFLAGS) -I/usr/include/terralib -I/usr/include/terralib/kernel $(QTINCS)' \
	-DMAGICS_EXTRA_LIBRARIES='-lterralib -lgd'

export LD_LIBRARY_PATH:=$(CURDIR)/debian/tmp/usr/lib:$(LD_LIBRARY_PATH)

override_dh_auto_clean:
	find . -type l -exec rm {} \;
	find . \( -name '*.pyc' -o -name '*.o' -o -name '*.a' \)  -exec rm {} \;
	find . -name '.libs' -exec rm -rf {} \;  || echo ".libs deleted already."
	find test \( -name '*.ps' -o -name '*.pdf' -o -name '*.svg' -o -name '*.png' \
	       -o -name '*.kmz' \)  -exec rm  {} \;
	rm -f config.log src/params/*.h src/decoders/*Attributes.h
	rm -rf share/magics/ttf src/terralib debian/build
	$(MAKE) -k distclean || echo "Already distcleaned"

override_dh_auto_configure:
	# link for font for tesing.
	mkdir -p share/fonts/truetype/ttf-dejavu/
	ln -sf /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf share/fonts/truetype/ttf-dejavu/
	# Link terralib
	[ -e src/terralib ] || ln -sf  /usr/include/terralib src/terralib
	dh_auto_configure -- $(extra_flags)
	# Some files are not autogenerated properly, do it here:
	./tools/xml2cc_new.pl ./src/params/GribDecoder.xml > ./src/decoders/GribDecoderAttributes.h
	./tools/xml2cc_new.pl ./src/params/GribLoop.xml > ./src/decoders/GribLoopAttributes.h
	./tools/xml2cc_new.pl ./src/params/QtDriver.xml > ./src/params/QtDriverAttributes.h
	./tools/xml2cc_new.pl ./src/params/GDDriver.xml > ./src/params/GDDriverAttributes.h
	./tools/xml2mv.pl ./src/params/DateGribLoopStep.xml > ./src/params/DateGribLoopStepWrapper.h
	./tools/xml2mv.pl ./src/params/GribLoopStep.xml > ./src/params/GribLoopStepWrapper.h
	./tools/xml2mv.pl ./src/params/GribAddressMode.xml > ./src/params/GribAddressModeWrapper.h
	./tools/xml2mv.pl ./src/params/GribAddressRecordMode.xml > ./src/params/GribAddressRecordModeWrapper.h
	./tools/xml2mv.pl ./src/params/GribAddressByteMode.xml > ./src/params/GribAddressByteModeWrapper.h
	cp ./src/params/*.h $(BUILDDIR)/src/params
	cp ./src/decoders/*Attributes.h $(BUILDDIR)/src/decoders
	cp ./src/decoders/*Attributes.h $(BUILDDIR)/src/params
	(cd python/Magics && ln -s $(BUILDDIR)/python/Magics/Magics.i )

override_dh_auto_test check:
	echo "Tests disabled; see README-testfailures.txt for details"
	# (ulimit -s 8192; export PYTHONPATH=$(shell pwd)/swig ; export MAGPLUS_HOME=$(shell pwd) ; $(MAKE) check )

override_dh_auto_install:
	# call configure to rebuild swig/Makefile with correct python version.
# 			LDFLAGS="-fPIC $(LDFLAGS) -L$(shell pwd)/src/.libs -Wl,--as-needed" ; 
	$(MAKE) -C debian/build/python/Magics clean install PYTHON_INCLUDE_DIR=/usr/include/python2.7 \
			DESTDIR=$(CURDIR)/debian/python-magics++ \ MAGPLUS_HOME=$(CURDIR) 
	dh_auto_install
	mkdir -p debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)
	cp -a debian/tmp/usr/lib/*.a debian/tmp/usr/lib/pkgconfig debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)
	cp debian/tmp/usr/lib/libMagPlus.so debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libMagPlus.so.3.0.0
	# cp tools/mapgen_clip debian/tmp/usr/bin
	find debian -name '*.la' -delete
	find debian -name '_Magics.so.0' -delete  # Bogus symlinks
	# dh_python2
	dh_python2 /usr/lib/python2.7/site-packages/Magics
	dh_numpy -p python-magics++
	# remove fonts that are present in dejavu-ttf
	rm -rf debian/libmagics++-data/usr/share/magics/ttf
	find debian -name '*.so*' -exec chrpath -d {} \;
	find debian -name magmlx -exec chrpath -d {} \;
	# Deal with links for Multi-Arch:
	dh_link -p libmagics++-dev /usr/lib/$(DEB_HOST_MULTIARCH)/libMagPlus.so.3.0.0    /usr/lib/$(DEB_HOST_MULTIARCH)/libMagPlus.so
	dh_link -p libmagplus3     /usr/lib/$(DEB_HOST_MULTIARCH)/libMagPlus.so.3.0.0    /usr/lib/$(DEB_HOST_MULTIARCH)/libMagPlus.so.3
	mkdir -p debian/libmagics++-dev/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig
	find debian -name '*.la' -delete 
