#!/usr/bin/make -f # -*- makefile -*- -include /usr/share/mpi-default-dev/debian_defaults include /usr/share/dpkg/architecture.mk ifeq ($(DEB_BUILD_ARCH), i386) export FFTW3_ALIGN=-D__FFTW3_UNALIGNED else export FFTW3_ALIGN= endif export LIB_SCALAPACK=-lscalapack-$(ARCH_DEFAULT_MPI_IMPL) export LIB_BLACS=$(LIB_SCALAPACK) export LIB_MPI=$(shell pkg-config mpi-fort --libs) export LIB_ELPA=-lelpa export INC_ELPA=-I/usr/include/elpa/modules/ -I/usr/include/elpa/elpa/ export DEF_ELPA=-D__ELPA=202111 export OMPI_MCA_orte_rsh_agent=/bin/false export CP2K_DATA_DIR=$(CURDIR)/data # Upstream makefile contains lots of @ which make it impossible to debug export MAKEFLAGS += --trace ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) export MAKEFLAGS += -j$(NUMJOBS) endif # As the cross-referencing takes a lot time and memory, only include that on # amd64. Drop -W from $SPHINXOPTS elsewhere to surpress missing reference # warnings. ifeq ($(DEB_BUILD_ARCH), amd64) SPHINX_BUILD = ./generate_input_reference.py ./cp2k_input.xml && make html SPHINXOPTS="-W -n --keep-going --jobs $(NUMJOBS)" else SPHINX_BUILD = make html SPHINXOPTS="-n --keep-going --jobs $(NUMJOBS)" endif PLATFORM=Linux ARCH=`uname -m` FORT_C_NAME=gfortran VERSION=psmp PYTHON=python3 #cmake -DCP2K_ENABLE_REGTESTS=YES -DCP2K_USE_LIBINT2=YES -DCP2K_USE_LIBXC=YES -DCP2K_USE_SPGLIB=YES -DCP2K_USE_ELPA=YES -DCP2K_ENABLE_ELPA_OPENMP_SUPPORT=NO -DCP2K_ELPA_LINK_LIBRARIES=-lelpa -DCP2K_ELPA_INCLUDE_DIRS=/usr/include/elpa -DCP2K_SCALAPACK_LINK_LIBRARIES=-lscalapack-openmpi .. %: dh $@ override_dh_auto_clean: cd arch && ln -fs $(PLATFORM)-generic-$(FORT_C_NAME).$(VERSION) \ $(PLATFORM)-$(ARCH)-$(FORT_C_NAME).$(VERSION) +$(MAKE) ARCH=$(PLATFORM)-$(ARCH)-$(FORT_C_NAME) \ VERSION=$(VERSION) distclean cd docs && rm -rf CP2K_INPUT _build && rm -f cp2k_input.xml CP2K_INPUT.md rm -f arch/$(PLATFORM)-$(ARCH)-$(FORT_C_NAME).* rm -rf LAST* TEST* dh_auto_clean override_dh_auto_build: cd arch && ln -fs $(PLATFORM)-generic-$(FORT_C_NAME).$(VERSION) \ $(PLATFORM)-$(ARCH)-$(FORT_C_NAME).$(VERSION) +$(MAKE) ARCH=$(PLATFORM)-$(ARCH)-$(FORT_C_NAME) \ VERSION=$(VERSION) PYTHON=$(PYTHON) all # The doc build needs the built executable for the input reference, so # cannot be done in a build-indep section cd docs && \ $(CURDIR)/exe/*/cp2k.$(VERSION) --xml && \ $(SPHINX_BUILD) ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) override_dh_auto_test: ./tests/do_regtest.py --maxtasks $(NUMJOBS) --mpiranks 1 --workbasedir . \ --restrictdir ATOM/regtest-2 \ --restrictdir DFTB/regtest-nonscc \ --restrictdir FARMING/regtest-1 \ --restrictdir FE/regtest-2 \ --restrictdir Fist/regtest-11 \ --restrictdir LIBTEST \ --restrictdir MC/regtest \ --restrictdir NEB/regtest-1 \ --restrictdir optimize_input/regtest-1 \ --restrictdir QMMM/QS/regtest-2-erf \ --restrictdir QMMM/QS/regtest-4 \ --restrictdir QMMM/QS/regtest-gapw \ --restrictdir QMMM/QS/regtest-lrigpw \ --restrictdir QMMM/SE/regtest_2 \ --restrictdir QMMM/DFTB/regtest \ --restrictdir QS/regtest-all-electron \ --restrictdir QS/regtest-almo-eda \ --restrictdir QS/regtest-cdft-3-1 \ --restrictdir QS/regtest-dm-ls-scf-4 \ --restrictdir QS/regtest-double-hybrid-2 \ --restrictdir QS/regtest-elpa \ --restrictdir QS/regtest-fftw \ --restrictdir QS/regtest-gapw-2 \ --restrictdir QS/regtest-gpw-2-1 \ --restrictdir QS/regtest-hfx-periodic \ --restrictdir QS/regtest-hfx-stress \ --restrictdir QS/regtest-hirshfeld \ --restrictdir QS/regtest-hybrid-1 \ --restrictdir QS/regtest-libxc \ --restrictdir QS/regtest-linearscaling \ --restrictdir QS/regtest-lvlshift \ --restrictdir QS/regtest-md-lgvregion \ --restrictdir QS/regtest-mp2-1 \ --restrictdir QS/regtest-mp2-grad \ --restrictdir QS/regtest-optbas \ --restrictdir QS/regtest-ot-refine-3 \ --restrictdir QS/regtest-pao-3 \ --restrictdir QS/regtest-polar \ --restrictdir QS/regtest-properties/resp \ --restrictdir QS/regtest-ps-implicit-2-3 \ --restrictdir QS/regtest-ri-mp2 \ --restrictdir QS/regtest-ri-rpa \ --restrictdir QS/regtest-sccs-2 \ --restrictdir QS/regtest-tddfpt \ --restrictdir QS/regtest-tddfpt-force-2 \ --restrictdir QS/regtest-tddfpt-lri \ --restrictdir SCPTB/regtest-1 \ --restrictdir SE/regtest-3-1 \ --restrictdir SWARM/regtest-glbopt-1 \ exe/$(PLATFORM)-$(ARCH)-$(FORT_C_NAME) $(VERSION) endif