#!/usr/bin/make -f # TODO: # - Flang version doesn't build. export DH_VERBOSE=1 AUTOGENERATED:= libfckit-dev.install DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) GFORTRAN_VERSION:=$(shell basename $(shell readlink /usr/bin/gfortran)) FLANG_VERSION:=$(shell basename $(shell readlink /usr/bin/flang)) TMPDIR:=$(CURDIR)/debian/tmp LIBDIR:=/usr/lib/$(DEB_HOST_MULTIARCH) MODULEDIR:=$(LIBDIR)/fortran/$(GFORTRAN_VERSION) # Test suite requires 4 processors. Fake it export OMPI_MCA_rmaps_base_oversubscribe=1 PATCH_ON_32BIT_ARCH:= powerpc armel armhf i386 mipsel DO_PATCH:= $(if $(filter $(DEB_TARGET_ARCH), $(PATCH_ON_32BIT_ARCH)), true, false) BUILD_FLAGS = %: dh $@ --buildsystem=ecbuild override_dh_auto_clean: dh_auto_clean rm -f $(patsubst %, debian/%, ${AUTOGENERATED}) rm -rf debian/build-* override_dh_auto_configure: for f in ${AUTOGENERATED} ; do \ sed -e 's%@GFORTRAN_VERSION@%${GFORTRAN_VERSION}%g' < debian/$$f.in | \ sed -e 's%@FLANG_VERSION@%${FLANG_VERSION}%g' > debian/$$f ; \ done $(DO_PATCH) && (patch -p1 < debian/patches/32-bit-mpi.patch ) || true dh_auto_configure --builddirectory=debian/build-gfortran -- \ ${BUILD_FLAGS} -DCMAKE_Fortran_COMPILER=/usr/bin/gfortran #dh_auto_configure --builddirectory=debian/build-flang -- \ # ${BUILD_FLAGS} -DCMAKE_Fortran_COMPILER=/usr/bin/flang override_dh_auto_test: dh_auto_test --builddirectory=debian/build-gfortran @echo Skip flang tests for now override_dh_auto_build: dh_auto_build --builddirectory=debian/build-gfortran # Fails to build with 201903 flang #dh_auto_build --builddirectory=debian/build-flang override_dh_auto_install: dh_auto_install --builddirectory=debian/build-gfortran # dh_auto_build --builddirectory=debian/build-flang # Fixup cmake files. Hack. can we do better with patches to upstream ? sed -i -e 's%$${FCKIT_INSTALL_PREFIX}/libexec%/usr/bin%g' $(TMPDIR)/$(LIBDIR)/cmake/fckit/fckit-import.cmake sed -i -e 's%${CURDIR}%/build/fckit/%g' $(TMPDIR)/$(LIBDIR)/cmake/fckit/fckit-import.cmake sed -i -e 's%/usr/bin/python %/usr/bin/python3 %g' $(TMPDIR)/$(LIBDIR)/cmake/fckit/fckit-import.cmake sed -i -e 's%fckit-fypp.py%fckit-fypp%' $(TMPDIR)/$(LIBDIR)/cmake/fckit/fckit-import.cmake sed -i -e 's%fckit-eval.sh%fckit-eval%' $(TMPDIR)/$(LIBDIR)/cmake/fckit/fckit-import.cmake sed -i -e 's%fctest-generate-runner.py%fctest-generate-runner%' $(TMPDIR)/$(LIBDIR)/cmake/fckit/fckit-import.cmake sed -i -e 's%/usr/lib/cmake%${LIBDIR}/cmake%g' $(TMPDIR)/$(LIBDIR)/cmake/fckit/fckit-targets.cmake sed -i -e 's%$${_IMPORT_PREFIX}/lib/libfckit%${LIBDIR}/libfckit%g' $(TMPDIR)/$(LIBDIR)/cmake/fckit/fckit-targets.cmake sed -i -e 's%$${_IMPORT_PREFIX}/include%/usr/include/${DEB_HOST_MULTIARCH}%g' $(TMPDIR)/$(LIBDIR)/cmake/fckit/fckit-targets.cmake sed -i -e 's%$${_IMPORT_PREFIX}/module%${MODULEDIR}%g' $(TMPDIR)/$(LIBDIR)/cmake/fckit/fckit-targets.cmake sed -i -e 's%python3\.[0-9]*%python3%g' $(TMPDIR)/$(LIBDIR)/cmake/fckit/fckit-import.cmake # TODO: This will need work when flang is supported sed -i -e 's%libfckit.so.0d%libfckit-gfortran.so.0d%g' $(TMPDIR)/$(LIBDIR)/cmake/fckit/fckit-targets-release.cmake # rename those with script extensions mv $(TMPDIR)/usr/libexec/fckit-eval.sh $(TMPDIR)/usr/libexec/fckit-eval mv $(TMPDIR)/usr/libexec/fckit-fypp.py $(TMPDIR)/usr/libexec/fckit-fypp mv $(TMPDIR)/usr/libexec/fctest-generate-runner.py $(TMPDIR)/usr/libexec/fctest-generate-runner chmod -x $(TMPDIR)/$(LIBDIR)/cmake/fckit/* mv $(TMPDIR)/$(LIBDIR)/libfckit.so.0d $(TMPDIR)/$(LIBDIR)/libfckit-gfortran.so.0d rm $(TMPDIR)/$(LIBDIR)/libfckit.so patchelf --set-soname libfckit-gfortran.so.0d $(TMPDIR)/$(LIBDIR)/libfckit-gfortran.so.0d patchelf --remove-rpath $(TMPDIR)/$(LIBDIR)/libfckit-gfortran.so.0d dh_link -p libfckit-dev $(LIBDIR)/libfckit-gfortran.so.0d $(LIBDIR)/fortran/$(GFORTRAN_VERSION)/libfckit.so dh_link -p libfckit-dev $(LIBDIR)/libfckit-gfortran.so.0d $(LIBDIR)/libfckit-gfortran.so override_dh_dwz: @echo "Override dwz as it breaks on shlibs edited by patchelf"