#!/usr/bin/make -f

export DH_VERBOSE=1

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

# Set for build reproducibility
LC_ALL=C
export LC_ALL

export QT_SELECT=5

LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH)
AUTOGENERATED:= libmagplus3v5.links libmagics++-dev.links libmagplus3v5.install
# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1

%:
	dh $@ --parallel --with python2,python3 --with-buildsystem=cmake

# To fix cmake output change these
OLD_GF_PATH=$(shell gfortran -print-search-dirs | grep install | cut -f2 -d' '  )libgfortran.so
NEW_GF_PATH:=$(LIBDIR)/libgfortran.so.3

# -DCMAKE_PREFIX_PATH=${LIBDIR}/cmake/grib_api \

export extra_flags +=  \
	-DBUILD_SITE=debian \
	-DENABLE_LIBGD=1 \
	-DHAVE_BOOST=1 \
	-DHAVE_DLFCN_H=1 \
	-DHAVE_INTTYPES_H=1 \
	-DHAVE_LIBEXPAT=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_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=ON \
	-DENABLE_GEOTIFF=ON \
	-DGEOTIFF_INCLUDE_DIR=/usr/include/geotiff \
	-DENABLE_RPATHS=OFF \
	-DENABLE_CAIRO=ON \
	-DENABLE_BUFR=ON \
	-DENABLE_GRIB=ON \
	-DENABLE_METVIEW=ON \
	-DENABLE_QT5=ON \
	-DENABLE_NETCDF=ON \
	-DCMAKE_CXX_FLAGS='$(CXXFLAGS) -I/usr/include/terralib -I/usr/include/terralib/kernel' \
	-DMAGICS_EXTRA_LIBRARIES='-lterralib -lgd -lemosR64' 

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

override_dh_auto_clean:
	rm -rf debian/build-py*
	rm -f bin/magjsonx  bin/magmlx  bin/metgramx
	find . -type l -delete
	rm -f src/params/*.h src/decoders/*Attributes.h
	rm -rf share/magics/ttf src/terralib debian/build src/boost
	rm -f $(patsubst %, debian/%, ${AUTOGENERATED})

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
	for f in ${AUTOGENERATED} ; do \
                sed -e 's%@ARCH@%${DEB_HOST_MULTIARCH}%g' < debian/$$f.in  > debian/$$f ; \
                done
	dh_auto_configure --builddirectory=debian/build-py3 -- \
		-DPYTHON_EXECUTABLE=/usr/bin/python3 \
	       	$(extra_flags) 
	dh_auto_configure --builddirectory=debian/build-py2 -- \
		-DPYTHON_EXECUTABLE=/usr/bin/python \
	       	$(extra_flags) 
	(cd python/Magics && ln -s $(CURDIR)/debian/build-py3/python/Magics/Magics.i )

override_dh_auto_build:
	dh_auto_build  --builddirectory=debian/build-py2
	dh_auto_build  --builddirectory=debian/build-py3

override_dh_auto_test check:
	# echo "Tests disabled; see README-testfailures.txt for details"
	# (ulimit -s 8192; export PYTHONPATH=$(CURDIR)/debian/build-py2/python/Magics ; \
	#	export MAGPLUS_HOME=$(CURDIR) ; $(MAKE) -C debian/build-py2  check )
	#(ulimit -s 8192; export PYTHONPATH=$(CURDIR)/debian/build-py3/python/Magics ; \
	#	export MAGPLUS_HOME=$(CURDIR) ; $(MAKE) -C debian/build-py3  check )

override_dh_auto_install:
	(cd  debian/build-py2/python && python2 ./setup.py install --prefix=$(CURDIR)/debian/tmp/usr )
	(cd  debian/build-py3/python && python3 ./setup.py install --prefix=$(CURDIR)/debian/tmp/usr )
	dh_auto_install --builddirectory=debian/build-py3
	# Move lib stuff
	mkdir -p debian/tmp/$(LIBDIR)
	cp -a debian/tmp/usr/lib/*.a debian/tmp/usr/lib/pkgconfig debian/tmp/$(LIBDIR)
	cp debian/tmp/usr/lib/libMagPlus.so debian/tmp/$(LIBDIR)/libMagPlus.so.3.0.0
	# Fixup the cmake files.
	mkdir -p debian/tmp/$(LIBDIR)/cmake/magics
	cp -a debian/tmp/usr/share/magics/cmake/* debian/tmp/$(LIBDIR)/cmake/magics
	sed -e 's%$${_IMPORT_PREFIX}/lib%$(LIBDIR)%' \
		< debian/tmp/usr/share/magics/cmake/magics-targets-none.cmake \
	| sed -e 's%$${_IMPORT_PREFIX}/bin%/usr/bin%' \
	| sed -e 's%$(OLD_GF_PATH)%$(NEW_GF_PATH)%'   \
		> debian/tmp/$(LIBDIR)/cmake/magics/magics-targets-none.cmake
	rm -r debian/tmp/usr/share/magics/cmake
	dh_python2 /usr/lib/python2.7/site-packages/Magics
	dh_python3 /usr/lib/python3*/site-packages/Magics
	dh_numpy -p python-magics++
	dh_numpy3 -p python3-magics++
	-find debian/tmp/usr/bin -type f  -exec chrpath -d {} \;
	-find debian/tmp debian/libmagplus3v5   -name '*.so*' -exec chrpath -d {} \;

override_dh_makeshlibs:
	# For new symbols when compiled with GCC 7
	dh_makeshlibs -V'libmagplus3v5 (>= 2.34.1-2~)'

override_dh_fixperms-arch:
	dh_fixperms
	find debian/tmp debian/python*-magics++   -name '*.so*' -exec chrpath -d {} \;
