#!/usr/bin/make -f

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

# FC_OPTIONAL=
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)
DESTDIR:=$(CURDIR)/debian/tmp
CMAKE_DIR:=$(DESTDIR)/$(LIBDIR)/cmake

BUILDDIR=debian/build
BUILDDIR_DEFAULT=$(BUILDDIR)-$(FC_DEFAULT)

# Bizarre, but needed for now
BUILDFLAGS:= \
	-DENABLE_ACC=Off \
	-DENABLE_RPATHS=Off \
	-DENABLE_RELATIVE_RPATHS=Off \
	-DCMAKE_SKIP_INSTALL_RPATH=On

# magic debhelper rule
%:
	dh $@ --buildsystem=ecbuild --builddirectory=$(BUILDDIR_DEFAULT)


override_dh_auto_clean:
	dh_auto_clean
	rm -rf $(BUILDDIR)-*

define dh_configure_fortran_TEMPLATE =
  FCFLAGS_$(1) = $(if $(filter $(1), gfortran),  $(FCFLAGS), $(FCFLAGS_FOR_BUILD) )
  # Disable  OpenMP this build
  #OMP_FORTRAN_FLAGS_$(1) = $(if $(filter $(1), flang),  -fopenmp, )
  dh_configure_fortran_$(1):
	dh_auto_configure --builddirectory=${BUILDDIR}-$(1)  -- \
			${BUILDFLAGS} \
			-DCMAKE_Fortran_COMPILER=$(1) \
			-DCMAKE_Fortran_FLAGS="$(shell dh_fortran get_fc_flags --fc  $(1))" 
endef
$(eval $(call foreach_fc_execute_before,configure))
#-DOpenMP_Fortran_FLAGS="$$(OMP_FORTRAN_FLAGS_$(1))"


define dh_build_fortran_TEMPLATE =
  dh_build_fortran_$(1):
	dh_auto_build --builddirectory=$(BUILDDIR)-$(1)
endef
$(eval $(call foreach_fc_execute_before,build))


define dh_install_fortran_TEMPLATE =
  FMODDIR_$(1)=$(call get_fmoddir,$(1))
  dh_install_fortran_$(1):
	dh_fortran_mod -p libfield-api-ecmwf-dev $(BUILDDIR)-$(1)/include/field_api_dp/*.mod field_api_dp
	dh_fortran_mod -p libfield-api-ecmwf-dev $(BUILDDIR)-$(1)/include/field_api_sp/*.mod field_api_sp
	dh_fortran_mod -p libfield-api-ecmwf-dev $(BUILDDIR)-$(1)/include/field_api_buffer/*.mod field_api_buffer
	dh_fortran_mod -p libfield-api-ecmwf-dev $(BUILDDIR)-$(1)/include/field_api_core/*.mod field_api_core
	dh_fortran_mod -p libfield-api-ecmwf-dev $(BUILDDIR)-$(1)/include/field_api_debug/*.mod field_api_debug
	dh_fortran_mod -p libfield-api-ecmwf-dev $(BUILDDIR)-$(1)/include/field_api_factory/*.mod field_api_factory
	dh_fortran_mod -p libfield-api-ecmwf-dev $(BUILDDIR)-$(1)/include/field_api_util/*.mod field_api_util
	dh_fortran_lib --flavor $(1) $(BUILDDIR)-$(1)/lib/libfield_api_dp.so.0d
	dh_fortran_lib --flavor $(1) $(BUILDDIR)-$(1)/lib/libfield_api_sp.so.0d
endef
$(eval $(call foreach_fc_execute_after,install))

override_dh_auto_install:
	dh_auto_install --builddirectory=$(BUILDDIR_DEFAULT)
	#dh_link -p libfield-api-ecmwf-dev $(LIBDIR)/fortran/$(FC_DEFAULT)/libfield_api_sp.so.0d
	#dh_link --flavor gfortran -p libfield-api-ecmwf-dev $(LIBDIR)/fortran/$(FC_DEFAULT)/libfield_api_dp.so.00d

override_dh_auto_test:
	@echo Skip tests this build
