#!/usr/bin/make -f export DH_VERBOSE=1 include /usr/share/dpkg/pkg-info.mk include /usr/share/debhelper/dh-fortran/fortran-support.mk export FC_DEFAULT:= gfortran export FC_OPTIONAL:= export FC:=gfortran 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 CMAKEDIR:=$(DESTDIR)/$(LIBDIR)/cmake/eccodes BUILDDIR:=debian/build BUILDDIR_DEFAULT:=$(BUILDDIR)-$(FC_DEFAULT) # For hardening CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS) CFLAGS:=$(shell dpkg-buildflags --get CFLAGS) $(CPPFLAGS) # -fPIC CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS) $(CPPFLAGS) LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS) export LDFLAGS CFLAGS CPPFLAGS CXXFLAGS # Pull in ecbuild macros rather than local ones BUILD_FLAGS = \ -DENABLE_INSTALL_ECCODES_DEFINITIONS=ON \ -DENABLE_INSTALL_ECCODES_SAMPLES=ON \ -DENABLE_PNG=ON \ -DENABLE_AEC=ON \ -DENABLE_RPATHS=OFF \ -DENABLE_RELATIVE_RPATHS=OFF \ -DCMAKE_C_CFLAGS="${CFLAGS} ${LDFLAGS}" \ -DENABLE_ALIGN_MEMORY=ON \ -DENABLE_GRIB_TIMER=ON \ -DENABLE_ECCODES_OMP_THREADS=On \ %: dh $@ --buildsystem=ecbuild --builddirectory=${BUILDDIR_DEFAULT} --no-parallel define dh_build_fortran_TEMPLATE = dh_build_fortran_$(1): @echo DEBUGF CALLING dh_build_fortran_$(1) dh_auto_build --builddirectory=${BUILDDIR}-$(1) @echo DEBUGF LEAVING dh_build_fortran_$(1) endef $(eval $(call foreach_fc_execute_before,build)) define dh_configure_fortran_TEMPLATE = FCFLAGS_$(1) = $(if $(filter $(1), gfortran), $(FCFLAGS), \ $(if $(filter $(1), lfortran), "-g", \ $(FCFLAGS_FOR_BUILD))) dh_configure_fortran_$(1): dh_auto_configure --builddirectory=${BUILDDIR}-$(1) -- \ -DCMAKE_Fortran_COMPILER=/usr/bin//gfortran \ -DCMAKE_Fortran_FLAGS="$$(FCFLAGS_$(1))" ( cd ${BUILDDIR}-$(1)/data ; tar axpf $(CURDIR)/../eccodes_$(DEB_VERSION_UPSTREAM).orig-data.tar.xz ) @echo DEBUGF LEAVING dh_configure_fortran_$(1) endef $(eval $(call foreach_fc_execute_before,configure)) define dh_install_fortran_TEMPLATE = dh_install_fortran_$(1): @echo DEBUGF CALLING dh_install_fortran_$(1) dh_fortran_lib --flavor $(1) $(BUILDDIR)-$(1)/lib/libeccodes_f90_static.a dh_fortran_lib --flavor $(1) $(BUILDDIR)-$(1)/lib/libeccodes_f90.so.0 # dh_fortran_mod -p libeccodes-dev $(BUILDDIR)-$(1)/include/*.mod @echo DEBUGF LEAVING dh_install_fortran_$(1) endef $(eval $(call foreach_fc_execute_before,install)) override_dh_install: cd $(BUILDDIR_DEFAULT) && $(MAKE) install DESTDIR=$(DESTDIR) # Move to multiarch dir mkdir -p $(DESTDIR)/$(INCDIR) mv $(DESTDIR)/usr/include/*.h $(DESTDIR)/$(INCDIR) for d in libeccodes_f90.so libeccodes.so ; do \ chrpath -d $(DESTDIR)/$(LIBDIR)/$$d.0 ; done chrpath -d $(DESTDIR)/usr/bin/grib_to_netcdf dh_install # Setup cmake files for magics++, metview, etc. sed -i -e 's%$${_IMPORT_PREFIX}/include%/usr/include/${DEB_HOST_MULTIARCH}%g' $(CMAKEDIR)/eccodes-targets.cmake sed -i -e 's%/usr/lib/libeccodes%${LIBDIR}/libeccodes%' $(CMAKEDIR)/eccodes-targets-release.cmake sed -i -e 's%$${_IMPORT_PREFIX}%/usr%' $(CMAKEDIR)/eccodes-targets-release.cmake sed -i -e 's%${LIBDIR}/libopenjpeg.so;%%' $(CMAKEDIR)/eccodes-targets-release.cmake sed -i -e 's%;${LIBDIR}/libpng.so%%g' $(CMAKEDIR)/eccodes-targets-release.cmake sed -i -e 's%;${LIBDIR}/libopenjpeg.so%%g' $(CMAKEDIR)/eccodes-config.cmake sed -i -e 's%$${PACKAGE_PREFIX_DIR}/lib/cmake/eccodes%${LIBDIR}/cmake/eccodes%g' $(CMAKEDIR)/eccodes-config.cmake sed -i -e 's%;${LIBDIR}/libpng.so%%g' $(CMAKEDIR)/eccodes-config.cmake dh_fortran_mod -cp debian/build-gfortran14/include/*.mod debian/libeccodes-dev/${LIBDIR}/fortran/gfortran-mod-15 # For bit-reproducibility, sanitize the build paths for f in eccodes-config.cmake eccodes-import.cmake ; do \ sed -i -e 's%${CURDIR}%/build/eccodes%g' $(CMAKEDIR)/$$f ; \ sed -i -e 's%$${eccodes_BASE_DIR}/share%/usr/share%g' $(CMAKEDIR)/$$f ; \ done # file exists on full builds only [ - e debian/libeccodes-dev/$(INCDIR)/eccodes_ecbuild_config.h ] && ( \ sed -i -e 's%${CURDIR}%/build/eccodes%g' debian/libeccodes-dev/$(INCDIR)/eccodes_ecbuild_config.h \ ) || true override_dh_auto_test: @echo Tests ignore on this build override_dh_auto_clean: dh_auto_clean rm -rf debian/build-* override_dh_fixperms: dh_fixperms -chmod -x debian/libeccodes-dev/usr/share/doc/libeccodes-dev/examples/F90/include.sh -chmod +x debian/libeccodes-data/usr/share/eccodes/definitions/installDefinitions.sh define dh_test_fortran_TEMPLATE = dh_test_fortran_$(1): ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) (LD_LIBRARY_PATH=$(BUILDDIR)-$(1)/lib dh_auto_test --builddirectory=$(BUILDDIR)-$(1) || true) endif endef $(eval $(call foreach_fc_execute_before,test)) override_dh_dwz: @echo "pass; dwz currently breaks"