diff --git a/science/cp2k/Makefile b/science/cp2k/Makefile index 2ab7472836f2..e3ae9b25e992 100644 --- a/science/cp2k/Makefile +++ b/science/cp2k/Makefile @@ -1,114 +1,117 @@ PORTNAME= cp2k DISTVERSIONPREFIX= v -DISTVERSION= 9.1.0 +DISTVERSION= 2022.1 CATEGORIES= science MAINTAINER= yuri@FreeBSD.org COMMENT= Quantum chemistry and solid state physics software package LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= fypp:devel/py-fypp@${PY_FLAVOR} LIB_DEPENDS= libblas.so:math/blas \ libfftw3.so:math/fftw3 \ liblapack.so:math/lapack RUN_DEPENDS= cp2k-data>0:science/cp2k-data TEST_DEPENDS= bash:shells/bash USES= fortran gmake localbase:ldflags python:build shebangfix tar:bz2 USE_GITHUB= yes -GH_TUPLE= cp2k:dbcsr:f4df17b:cp2k_dbcsr/exts/dbcsr \ +GH_TUPLE= cp2k:dbcsr:c134996:cp2k_dbcsr/exts/dbcsr \ pseewald:fprettify:71781aa:pseewald_fprettify/tools/prettify/fprettify SHEBANG_FILES= tools/regtesting/do_regtest GCC_VERSION= ${GCC_DEFAULT} # ${_USE_GCC} MAKE_ARGS= XARCH=FreeBSD-gfortran VERSION=${VERSION} FC=gfortran${GCC_VERSION} CC=${CC} LD=gfortran${GCC_VERSION} \ DATA_DIR=${DATADIR} BINARY_ALIAS= python=${PYTHON_CMD} python3=${PYTHON_CMD} make=${GMAKE} # make - only for tests OPTIONS_DEFINE= LIBINT OPTIONS_SINGLE= MULTIPROCESSING OPTIONS_SINGLE_MULTIPROCESSING= SERIAL OPENMP MPI OPENMP_MPI # for the complete list see https://github.com/cp2k/cp2k/blob/master/INSTALL.md OPTIONS_DEFAULT= LIBINT OPENMP MULTIPROCESSING_DESC= Multiprocessing LIBINT_DESC= Use libint to evaluate integrals LIBINT_LIB_DEPENDS= libint.so:science/libint SERIAL_DESC= Single core (no multiprocessing) SERIAL_VARS= VERSION=sopt EFFECTIVE_VERSION=ssmp # now is a flavor of ssmp with NUM_THEADS=1 SERIAL_CFLAGS= ${OPENMP_CFLAGS} SERIAL_CXXFLAGS= ${OPENMP_CXXFLAGS} SERIAL_LDFLAGS= ${OPENMP_LDFLAGS} SERIAL_PLIST_FILES= ${EXECUTABLES_CORE:C/(.*)/bin\/\1.${VERSION}/} # symlinks OPENMP_VARS= VERSION=ssmp EFFECTIVE_VERSION=ssmp OPENMP_CFLAGS= -fopenmp OPENMP_CXXFLAGS= -fopenmp OPENMP_LDFLAGS= /usr/lib/libgomp.so MPI_VARS= VERSION=popt EFFECTIVE_VERSION=psmp # now is a flavor of psmp with NUM_THEADS=1 MPI_LIB_DEPENDS= libmpich.so:net/mpich \ libscalapack.so:math/scalapack MPI_LDFLAGS= -lmpifort MPI_PLIST_FILES= ${EXECUTABLES_CORE:C/(.*)/bin\/\1.${VERSION}/} # symlinks MPI_BROKEN= https://github.com/cp2k/cp2k/issues/2128 OPENMP_MPI_DESC= Enable both OpenMP and MPI OPENMP_MPI_VARS= VERSION=psmp EFFECTIVE_VERSION=psmp OPENMP_MPI_CFLAGS= ${OPENMP_CFLAGS} OPENMP_MPI_CXXFLAGS= ${OPENMP_CXXFLAGS} OPENMP_MPI_LDFLAGS= ${OPENMP_LDFLAGS} OPENMP_MPI_LIB_DEPENDS= ${MPI_LIB_DEPENDS} OPENMP_MPI_LDFLAGS= ${MPI_LDFLAGS} OPENMP_MPI_BROKEN= https://github.com/cp2k/cp2k/issues/2128 EXECUTABLES_CORE= cp2k cp2k_shell EXECUTABLES_EXTRA= dumpdcd graph grid_miniapp xyz2dcd EXECUTABLES= ${EXECUTABLES_CORE} ${EXECUTABLES_EXTRA} PLIST_FILES= ${EXECUTABLES:C/(.*)/bin\/\1.${EFFECTIVE_VERSION}/} .include .if ${PORT_OPTIONS:MOPENMP} || ${PORT_OPTIONS:MOPENMP_MPI} pre-configure: @if [ ! -e ${LOCALBASE}/lib/libfftw3_omp.so ] ; then \ ${ECHO_MSG} "The OPENMP and OPENMP_MPI options require math/fftw3" ; \ ${ECHO_MSG} "to be built and installed with the OPENMP option ON" ; \ exit 1; \ fi .endif post-patch: @${REINPLACE_CMD} -i '' 's|LIBS.*=.*|& ${LDFLAGS}|; s|^FCFLAGS.*=.*|& -I${LOCALBASE}/include|; s| -march=native||' ${WRKSRC}/arch/FreeBSD-* -pre-build: +xpre-build: @${ECHO} ${PORTVERSION} > ${WRKSRC}/REVISION do-install: .for e in ${EXECUTABLES} ${INSTALL_PROGRAM} ${WRKSRC}/exe/*/${e}.${EFFECTIVE_VERSION} ${STAGEDIR}${PREFIX}/bin .endfor do-install-SERIAL-on: .for e in ${EXECUTABLES_CORE} cd ${STAGEDIR}${PREFIX}/bin && ${LN} -s ${e}.${EFFECTIVE_VERSION} ${e}.${VERSION} .endfor -do-test: # fails to run: some Linux-only commands are present +do-test: # fails to run: some Linux-only commands are present, also /usr/local/bin/ar: invalid option -- / @cd ${WRKSRC} && \ + ${TOUCH} arch/local.${EFFECTIVE_VERSION} && \ ${SETENV} ${MAKE_ENV} ./tools/regtesting/do_regtest -maxtasks 8 .include . if ${GCC_DEFAULT} >= 10 # only needed when MPI is on, but flags aren't passed into DBCSR sub-project, see https://github.com/cp2k/cp2k/issues/2128 FCFLAGS+= -fallow-argument-mismatch . endif +# build instructions: https://github.com/cp2k/cp2k/blob/master/INSTALL.md + .include diff --git a/science/cp2k/distinfo b/science/cp2k/distinfo index 7a156377fd8e..0f6ba7195369 100644 --- a/science/cp2k/distinfo +++ b/science/cp2k/distinfo @@ -1,7 +1,7 @@ -TIMESTAMP = 1653344192 -SHA256 (cp2k-cp2k-v9.1.0_GH0.tar.gz) = e0cd859e506435a38454eeaaa3bc2c1656ffd5d22698062957c84f8b4f426126 -SIZE (cp2k-cp2k-v9.1.0_GH0.tar.gz) = 76638939 -SHA256 (cp2k-dbcsr-f4df17b_GH0.tar.gz) = 997d143729028cb43c165c7bab85159a2ab485e9b9f2076129156c69eb67d82d -SIZE (cp2k-dbcsr-f4df17b_GH0.tar.gz) = 2663121 +TIMESTAMP = 1657410607 +SHA256 (cp2k-cp2k-v2022.1_GH0.tar.gz) = 10c0e31bc67bd4871c61047c5f990eb6dac44c6237c3a0b75047a99207021986 +SIZE (cp2k-cp2k-v2022.1_GH0.tar.gz) = 76905358 +SHA256 (cp2k-dbcsr-c134996_GH0.tar.gz) = bfaed28798ce3d0312d857d09a79911fd3db0b5c8ae0a02d0f210de129d53686 +SIZE (cp2k-dbcsr-c134996_GH0.tar.gz) = 2681082 SHA256 (pseewald-fprettify-71781aa_GH0.tar.gz) = 4115e800c24cc66da569245bee97ea4db18833c8a63d97769c866d2384cbbfb5 SIZE (pseewald-fprettify-71781aa_GH0.tar.gz) = 155272 diff --git a/science/cp2k/files/patch-Makefile b/science/cp2k/files/patch-Makefile index 056ff23a727e..ca2931463fe2 100644 --- a/science/cp2k/files/patch-Makefile +++ b/science/cp2k/files/patch-Makefile @@ -1,106 +1,106 @@ ---- Makefile.orig 2021-12-31 09:29:59 UTC +--- Makefile.orig 2022-07-08 20:23:24 UTC +++ Makefile @@ -11,7 +11,7 @@ CP2KHOME := $(abspath $(shell pwd)) export CP2KHOME endif -ARCH := local +XARCH := local export VERSION=ssmp MAKEFILE := $(CP2KHOME)/Makefile @@ -26,7 +26,7 @@ PRETTYOBJDIR := $(CP2KHOME)/obj/prettified DOXIFYOBJDIR := $(CP2KHOME)/obj/doxified TOOLSRC := $(CP2KHOME)/tools SRCDIR := $(CP2KHOME)/src -EXEDIR := $(MAINEXEDIR)/$(ARCH) +EXEDIR := $(MAINEXEDIR)/$(XARCH) REVISION := $(shell $(CP2KHOME)/tools/build_utils/get_revision_number $(SRCDIR)) EXTSDIR := exts @@ -48,15 +48,15 @@ EXE_NAMES := $(basename $(notdir $(ALL_EXE_FILES))) # this only happens on stage 3 and 4 ifneq ($(ONEVERSION),) MODDEPS = "lower" -include $(ARCHDIR)/$(ARCH).$(ONEVERSION) -LIBDIR := $(MAINLIBDIR)/$(ARCH)/$(ONEVERSION) +include $(ARCHDIR)/$(XARCH).$(ONEVERSION) +LIBDIR := $(MAINLIBDIR)/$(XARCH)/$(ONEVERSION) PKGCONFIGDIR := $(LIBDIR)/pkgconfig PKGCONFIG := $(PKGCONFIGDIR)/libcp2k.pc LIBEXTSDIR := $(LIBDIR)/$(EXTSDIR) -OBJDIR := $(MAINOBJDIR)/$(ARCH)/$(ONEVERSION) +OBJDIR := $(MAINOBJDIR)/$(XARCH)/$(ONEVERSION) OBJEXTSDIR := $(OBJDIR)/$(EXTSDIR) OBJEXTSINCL := $(foreach dir,$(EXTSPACKAGES),-I'$(OBJEXTSDIR)/$(dir)') -TSTDIR := $(MAINTSTDIR)/$(ARCH)/$(ONEVERSION) +TSTDIR := $(MAINTSTDIR)/$(XARCH)/$(ONEVERSION) - ifeq ($(OFFLOAD_CC),) - EXE_NAMES := $(basename $(notdir $(filter-out %.cu, $(ALL_EXE_FILES)))) - endif -@@ -159,7 +159,7 @@ all: makedep | dirs exts + ifneq ($(LD_SHARED),) + ARCHIVE_EXT := .so + else +@@ -144,7 +144,7 @@ all: makedep | dirs exts # compilation for testing happens here test: dirs makedep all - @$(TOOLSRC)/regtesting/print_environment.sh $(ARCH) $(ONEVERSION) + @$(TOOLSRC)/regtesting/print_environment.sh $(XARCH) $(ONEVERSION) @+$(MAKE) --no-print-directory -C $(TSTDIR) -f $(MAKEFILE) test INCLUDE_DEPS=true testbg: dirs makedep all -@@ -263,11 +263,11 @@ $(EXEDIR)/cp2k_shell.$(ONEVERSION): $(EXEDIR)/cp2k.$(O +@@ -250,11 +250,11 @@ $(EXEDIR)/cp2k_shell.$(ONEVERSION): $(EXEDIR)/cp2k.$(O cd $(EXEDIR); ln -sf cp2k.$(ONEVERSION) cp2k_shell.$(ONEVERSION) test: - @$(TOOLSRC)/regtesting/do_regtest.py $(ARCH) $(ONEVERSION) $(TESTOPTS) + @$(TOOLSRC)/regtesting/do_regtest.py $(XARCH) $(ONEVERSION) $(TESTOPTS) testbg: @echo "testing: $(ONEVERSION) : full log in $(TSTDIR)/regtest.log " - @$(TOOLSRC)/regtesting/do_regtest.py $(ARCH) $(ONEVERSION) $(TESTOPTS) > $(TSTDIR)/regtest.log 2>&1 + @$(TOOLSRC)/regtesting/do_regtest.py $(XARCH) $(ONEVERSION) $(TESTOPTS) > $(TSTDIR)/regtest.log 2>&1 @grep -e "Summary:" -e "Status:" $(TSTDIR)/regtest.log endif -@@ -320,9 +320,9 @@ define get_extensions +@@ -307,9 +307,9 @@ define get_extensions $(shell test -d $(1) && find $(1) -type f -name "*.*" ! -name "*.gcda" | sed 's|.*\.||' | sort -u) endef clean: - @echo rm -rf $(foreach v, $(VERSION), $(MAINOBJDIR)/$(ARCH)/$(v)) - @$(foreach v, $(VERSION), $(foreach ext, $(call get_extensions, $(MAINOBJDIR)/$(ARCH)/$(v)/), $(shell rm -rf $(MAINOBJDIR)/$(ARCH)/$(v)/*.$(ext)))) - rm -rf $(foreach v, $(VERSION), $(MAINLIBDIR)/$(ARCH)/$(v)) + @echo rm -rf $(foreach v, $(VERSION), $(MAINOBJDIR)/$(XARCH)/$(v)) + @$(foreach v, $(VERSION), $(foreach ext, $(call get_extensions, $(MAINOBJDIR)/$(XARCH)/$(v)/), $(shell rm -rf $(MAINOBJDIR)/$(XARCH)/$(v)/*.$(ext)))) + rm -rf $(foreach v, $(VERSION), $(MAINLIBDIR)/$(XARCH)/$(v)) OTHER_HELP += "clean : Remove intermediate object and mod files, but not the libraries and executables, for given ARCH and VERSION" # The Intel compiler creates a corresponding .dbg file for each executable when static linking of the Intel MPI library is requested (flag -static_mpi) -@@ -336,16 +336,16 @@ OTHER_HELP += "execlean : Remove the executables, for +@@ -323,16 +323,16 @@ OTHER_HELP += "execlean : Remove the executables, for # Use this if you want to fully rebuild an executable (for a given compiler and or VERSION) # realclean: extclean clean execlean - rm -rf $(foreach v, $(VERSION), $(MAINOBJDIR)/$(ARCH)/$(v)) - rm -rf $(foreach v, $(VERSION), $(MAINLIBDIR)/$(ARCH)/$(v)) + rm -rf $(foreach v, $(VERSION), $(MAINOBJDIR)/$(XARCH)/$(v)) + rm -rf $(foreach v, $(VERSION), $(MAINLIBDIR)/$(XARCH)/$(v)) OTHER_HELP += "realclean : Remove all files for given ARCH and VERSION" testclean: - rm -rf $(foreach v, $(VERSION), $(MAINTSTDIR)/$(ARCH)/$(v)/TEST-*) + rm -rf $(foreach v, $(VERSION), $(MAINTSTDIR)/$(XARCH)/$(v)/TEST-*) OTHER_HELP += "testclean : Remove all TEST-* files for given ARCH and VERSION" testrealclean: testclean - rm -rf $(foreach v, $(VERSION), $(MAINTSTDIR)/$(ARCH)/$(v)/LAST-*) + rm -rf $(foreach v, $(VERSION), $(MAINTSTDIR)/$(XARCH)/$(v)/LAST-*) OTHER_HELP += "testrealclean : Remove all LAST-* and TEST-* files for given ARCH and VERSION" # -@@ -515,7 +515,7 @@ FORCE: ; +@@ -499,7 +499,7 @@ FORCE: ; cp2k_info.o: $(GIT_REF) # Add some practical metadata about the build. -FCFLAGS += -D__COMPILE_ARCH="\"$(ARCH)\""\ +FCFLAGS += -D__COMPILE_ARCH="\"$(XARCH)\""\ - -D__COMPILE_DATE="\"$(shell date)\""\ - -D__COMPILE_HOST="\"$(shell hostname 2>/dev/null || hostnamectl --transient)\""\ - -D__COMPILE_REVISION="\"$(strip $(REVISION))\""\ + -D__COMPILE_DATE="\"$(shell date)\""\ + -D__COMPILE_HOST="\"$(shell hostname 2>/dev/null || hostnamectl --transient)\""\ + -D__COMPILE_REVISION="\"$(strip $(REVISION))\""\