#!/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) DESTDIR=$(CURDIR)/debian/tmp CMAKEDIR:=$(DESTDIR)/$(LIBDIR)/cmake/eccodes BUILDDIR:=$(CURDIR)/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 DO_TEST:=true # 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 \ %: FC=$(FC_DEFAULT) dh $@ --buildsystem=ecbuild --builddirectory=${BUILDDIR_DEFAULT} \ --no-parallel --with fortran_mod override_dh_auto_configure: dh_auto_configure -- \ ${BUILD_FLAGS} ( cd ${BUILDDIR_DEFAULT}/data ; tar axpf $(CURDIR)/../eccodes_$(DEB_VERSION_UPSTREAM).orig-data.tar.xz ) 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 # 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_clean: dh_auto_clean # Things that upstream leaves behind rm -f configure.ac configure configure.in rm -f tests/bitmap.rules tests/out.grib1 tests/out.grib2 tests/out.gribidx \ tests/rules tests/simple_ieee_test.grib1.txt tests/statistics.filter \ tests/statistics.out tests/x.grib \ data/change_scanning_rotated_ll.filter examples/F90/index.idx override_dh_fixperms: dh_fixperms test -e /usr/bin/dh_buildinfo && dh_buildinfo -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 override_dh_auto_test: $(DO_TEST) && ( LD_LIBRARY_PATH=${BUILDDIR_DEFAULT}/lib dh_auto_test ) || true # for f in $(FC_OPTIONAL) ; do \ # ( $(DO_TEST) && ( LD_LIBRARY_PATH=${BUILDDIR}-$$f/lib dh_auto_test ) || true ) ; done