#!/usr/bin/make -f

export DH_VERBOSE=1

include /usr/share/dpkg/pkg-info.mk
include /usr/share/debhelper/dh-fortran/fortran-support.mk

DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
LIBDIR:=/usr/lib/$(DEB_HOST_MULTIARCH)
INCDIR:=/usr/include/$(DEB_HOST_MULTIARCH)
FMODDIR:=$(strip $(call get_fmoddir,$(FC_DEFAULT)))
INSTDIR:=$(CURDIR)/debian/tmp
CMAKE_DIR:=$(INSTDIR)/$(LIBDIR)/cmake

export FIAT_TEST_IGNORE_MPI_OUTPUT=1

DEB_CFLAGS_MAINT_APPEND= -I$(CURDIR)/src -I$(CURDIR)/obj-$(DEB_HOST_MULTIARCH)/src
DEB_CXXFLAGS_MAINT_APPEND= -I$(CURDIR)/src -I$(CURDIR)/obj-$(DEB_HOST_MULTIARCH)/src
DEB_FFLAGS_MAINT_APPEND= -I$(FMODDIR)
include /usr/share/dpkg/buildflags.mk


# OMP Doesn't appear to work on these archs
ARCH_NO_OMP:= riscv64 sparc64
ENABLE_OMP:=  $(if $(filter $(DEB_TARGET_ARCH), $(ARCH_NO_OMP)),Off,On)

BUILD_FLAGS = \
	-DENABLE_DOCS=On \
	-DENABLE_OMP=$(ENABLE_OMP) \
	-DENABLE_FORTRAN=On \
	-DENABLE_FCKIT=On \
	-DENABLE_MPI=On 

# Test suite requires 4 processors. Fake it
export OMPI_MCA_rmaps_base_oversubscribe=1

%:
	dh $@ --buildsystem=ecbuild --builddir=debian/build --with fortran_mod

override_dh_auto_configure:
	dh_auto_configure -- ${BUILD_FLAGS} 

override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	LD_LIBRARY_PATH=$(CURDIR)/debian/build/lib dh_auto_test || true
endif

override_dh_auto_install:
	dh_auto_install
	chrpath -d $(INSTDIR)/usr/bin/fiat-printbinding
	chrpath -d $(INSTDIR)/$(LIBDIR)/*.so*
	# Fix broken paths
	sed -i -e 's%$${_IMPORT_PREFIX}/include/fiat%/usr/include/${DEB_HOST_MULTIARCH}/fiat%g' \
		-e 's%$${_IMPORT_PREFIX}/include/mpi_serial%/usr/include/${DEB_HOST_MULTIARCH}/mpi_serial%g' \
		-e 's%$${_IMPORT_PREFIX}/module/fiat%${FMODDIR}/fiat%g' \
		-e 's%$${_IMPORT_PREFIX}/module/parkind_dp%${FMODDIR}/parkind_dp%g' \
		-e 's%$${_IMPORT_PREFIX}/module/parkind_sp%${FMODDIR}/parkind_sp%g' \
		$(CMAKE_DIR)/fiat/fiat-targets.cmake	



