#!/usr/bin/make -f # -*- makefile-gmake -*- # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 export DEB_BUILD_MAINT_OPTIONS = hardening=+all # CUDA 12.4 (nvidia-cuda-toolkit) only supports gcc-13 as host compiler. # nvcc uses /usr/bin/cuda-gcc (gcc-13), so CMake adds # -L/usr/lib/gcc/x86_64-linux-gnu/13 to the link line. gcc-13's libstdc++ # lacks __cxa_call_terminate (added in GCC 14), so building the C++/MPI side # with the system g++-16 fails to link. Force the whole build onto gcc-13; # OpenMPI's mpicxx/mpicc honour the CXX/CC environment variables. export CC := gcc-13 export CXX := g++-13 DEBVENDOR := $(shell dpkg-vendor --query Vendor) ifeq ($(DEBVENDOR), Qlustar) # Qlustar specific stuff include /usr/share/ql-deb-utils/Makefile MPICXX := mpicxx.openmpi-gcc else include /usr/share/dpkg/default.mk MPICXX := mpicxx.openmpi endif CFLAGS += $(CPPFLAGS) CXXFLAGS += $(CPPFLAGS) # TODO: Remove -DCMAKE_SKIP_RPATH=TRUE when switching to dh 14. CONFIGURE_COMMON := -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ -DPYTHON_EXE_PATH=/usr/bin/python3 \ -DCMAKE_SKIP_RPATH=TRUE %: dh $@ override_dh_auto_configure: dh_auto_configure -- $(CONFIGURE_COMMON) -DGUI=ON -DCUDA=ON \ -DCMAKE_CUDA_HOST_COMPILER=/usr/bin/cuda-gcc override_dh_auto_install: dh_auto_install --destdir=debian/tmp/cli mkdir -p $(CURDIR)/debian/tmp/gui/usr/bin rm $(CURDIR)/debian/tmp/cli/usr/bin/*.csh # Useless ... set -e; for prog in relion relion_display relion_manualpick; do \ mv $(CURDIR)/debian/tmp/cli/usr/bin/$$prog \ $(CURDIR)/debian/tmp/gui/usr/bin; done # Imports Python module "starfile" which is not in Debian. rm $(CURDIR)/debian/tmp/cli/usr/bin/relion_filament_selection # Bash wrappers for RELION Python modules; not packaged. rm $(CURDIR)/debian/tmp/cli/usr/bin/relion_python_* # Rename scripts to avoid lintian W: script-with-language-extension. mv $(CURDIR)/debian/tmp/cli/usr/bin/relion_it.py \ $(CURDIR)/debian/tmp/gui/usr/bin/relion_it # relion_schemegui is installed without a .py suffix since upstream 5.1.0. mv $(CURDIR)/debian/tmp/cli/usr/bin/relion_schemegui \ $(CURDIR)/debian/tmp/gui/usr/bin/relion_schemegui