Index: head/science/erkale/Makefile =================================================================== --- head/science/erkale/Makefile +++ head/science/erkale/Makefile @@ -1,10 +1,9 @@ # $FreeBSD$ PORTNAME= erkale -DISTVERSION= g20181009 -PORTREVISION= 2 +DISTVERSION= g20181121 +PORTREVISION= 3 CATEGORIES= science -DIST_SUBDIR= ${PORTNAME}${PKGNAMESUFFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= Quantum chemistry program to solve the electronic structure of atoms @@ -21,20 +20,55 @@ libsz.so:science/szip \ libxc.so:science/libxc -USES= cmake:outsource,noninja fortran localbase:ldflags pkgconfig +FLAVORS= serial parallel +FLAVOR?= ${FLAVORS:[1]} +serial_PKGNAMESUFFIX= -serial + +USES= cmake:outsource,noninja fortran pkgconfig USE_GITHUB= yes GH_ACCOUNT= susilehtola -GH_TAGNAME= f1e1ebc +GH_TAGNAME= 0927d8c USE_LDCONFIG= yes -TEST_TARGET= test # some tests fail: https://github.com/susilehtola/erkale/issues/29 +TEST_TARGET= test -CMAKE_ARGS= -DLAPACK_LIBRARIES=-lopenblas -DBLAS_LIBRARIES=-lopenblasp CMAKE_ON= BUILD_SHARED_LIBS -OPTIONS_DEFINE= OPENMP +PLIST_SUB= SUFFIX="${SUFFIX}" -OPENMP_CMAKE_BOOL= USE_OPENMP -OPENMP_BROKEN= cmake can't fine OpenMP, see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=223678 +.if ${FLAVOR} == serial +CMAKE_OFF= USE_OPENMP +.else # parallel +CMAKE_ON+= USE_OPENMP +LIB_DEPENDS+= libomp.so:devel/openmp +SUFFIX= _omp +.endif + +OPTIONS_SINGLE= LINALG +OPTIONS_SINGLE_LINALG= NETLIB OPENBLAS +OPTIONS_DEFAULT= NETLIB +LINALG_DESC= Linear algebra library + +NETLIB_USES= blaslapack:netlib +NETLIB_CMAKE_ON= -DLAPACK_LIBRARIES:STRING=-llapack -DBLAS_LIBRARIES:STRING=-lblas +NETLIB_LDFLAGS= ${LOCALBASE}/lib/libcblas.so ${LOCALBASE}/lib/liblapack.so ${LOCALBASE}/lib/libblas.so +NETLIB_LIB_DEPENDS= libcblas.so:math/cblas + +OPENBLAS_USES= blaslapack:openblas +OPENBLAS_CMAKE_ON= -DLAPACK_LIBRARIES:STRING=-lopenblas -DBLAS_LIBRARIES:STRING=-lopenblasp +xOPENBLAS_BROKEN= hits the number of threads limit: https://github.com/xianyi/OpenBLAS/issues/1882 + +# use clang from ports because cmake can't find OpenMP with base clang, see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=223678 +# have the same compiler for both serial and parallel flavors so that performance numbers can be compared +BUILD_DEPENDS+= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} +CPP= clang-cpp${LLVM_DEFAULT} +CC= clang${LLVM_DEFAULT} +CXX= clang++${LLVM_DEFAULT} + +.if ${FLAVOR} == parallel +post-install: + @${MV} ${STAGEDIR}${PREFIX}/include/erkale ${STAGEDIR}${PREFIX}/include/erkale${SUFFIX} + @${MV} ${STAGEDIR}${PREFIX}/bin/erkale_bastool ${STAGEDIR}${PREFIX}/bin/erkale_bastool${SUFFIX} +.endif .include Index: head/science/erkale/distinfo =================================================================== --- head/science/erkale/distinfo +++ head/science/erkale/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1540094810 -SHA256 (erkale/susilehtola-erkale-g20181009-f1e1ebc_GH0.tar.gz) = 4d4eafae933c61e98326a94fa99de060ab2b7929390adb16e5d7fef874a44857 -SIZE (erkale/susilehtola-erkale-g20181009-f1e1ebc_GH0.tar.gz) = 33623728 +TIMESTAMP = 1542835027 +SHA256 (susilehtola-erkale-g20181121-0927d8c_GH0.tar.gz) = d5b76b05e8b3cbb2abe688e5f493abc61102cc41daa5d6ac65563384b6c4c6c0 +SIZE (susilehtola-erkale-g20181121-0927d8c_GH0.tar.gz) = 109987868 Index: head/science/erkale/pkg-plist =================================================================== --- head/science/erkale/pkg-plist +++ head/science/erkale/pkg-plist @@ -1,91 +1,92 @@ -bin/erkale -bin/erkale_adf_emd -bin/erkale_bastool -bin/erkale_casida -bin/erkale_copt -bin/erkale_copt_plateau -bin/erkale_cube -bin/erkale_emd -bin/erkale_fchkpt -bin/erkale_geom -bin/erkale_loc -bin/erkale_pop -bin/erkale_slaterfit -bin/erkale_xrs -include/erkale/bader.h -include/erkale/badergrid.h -include/erkale/basis.h -include/erkale/basislibrary.h -include/erkale/boys.h -include/erkale/broyden.h -include/erkale/casida/casida.h -include/erkale/casida/casida_grid.h -include/erkale/chebyshev.h -include/erkale/checkpoint.h -include/erkale/completeness/completeness_profile.h -include/erkale/completeness/optimize_completeness.h -include/erkale/density_fitting.h -include/erkale/dftfuncs.h -include/erkale/dftgrid.h -include/erkale/diis.h -include/erkale/elements.h -include/erkale/emd/emd.h -include/erkale/emd/emd_gto.h -include/erkale/emd/emd_similarity.h -include/erkale/emd/emd_sto.h -include/erkale/emd/emdcube.h -include/erkale/emd/gto_fourier.h -include/erkale/emd/spherical_expansion.h -include/erkale/eri_digest.h -include/erkale/erichol.h -include/erkale/erifit.h -include/erkale/eriscreen.h -include/erkale/eritable.h -include/erkale/eriworker.h -include/erkale/external/fchkpt_tools.h -include/erkale/external/storage.h -include/erkale/find_molecules.h -include/erkale/gaunt.h -include/erkale/gdm.h -include/erkale/global.h -include/erkale/guess.h -include/erkale/hirshfeld.h -include/erkale/hirshfeldi.h -include/erkale/integrals.h -include/erkale/lbfgs.h -include/erkale/lebedev.h -include/erkale/linalg.h -include/erkale/lmgrid.h -include/erkale/lobatto.h -include/erkale/localization.h -include/erkale/mathf.h -include/erkale/obara-saika.h -include/erkale/properties.h -include/erkale/pzstability.h -include/erkale/scf.h -include/erkale/settings.h -include/erkale/slaterfit/form_exponents.h -include/erkale/slaterfit/solve_coefficients.h -include/erkale/solidharmonics.h -include/erkale/spherical_harmonics.h -include/erkale/stockholder.h -include/erkale/stringutil.h -include/erkale/tempered.h -include/erkale/timer.h -include/erkale/trrh.h -include/erkale/unitary.h -include/erkale/xrs/bfprod.h -include/erkale/xrs/fourierprod.h -include/erkale/xrs/lmtrans.h -include/erkale/xrs/momentum_series.h -include/erkale/xrs/xrsscf.h -include/erkale/xyzutils.h -include/erkale/zmatrix.h -lib/liberkale.so -lib/liberkale.so.0.1.0 -lib/liberkale_cmp.so -lib/liberkale_cmp.so.0.1.0 -lib/liberkale_emd.so -lib/liberkale_emd.so.0.1.0 -lib/liberkale_xrs.so -lib/liberkale_xrs.so.0.1.0 +bin/erkale%%SUFFIX%% +bin/erkale_adf_emd%%SUFFIX%% +bin/erkale_bastool%%SUFFIX%% +bin/erkale_casida%%SUFFIX%% +bin/erkale_copt%%SUFFIX%% +bin/erkale_copt_plateau%%SUFFIX%% +bin/erkale_cube%%SUFFIX%% +bin/erkale_emd%%SUFFIX%% +bin/erkale_fchkpt%%SUFFIX%% +bin/erkale_geom%%SUFFIX%% +bin/erkale_loc%%SUFFIX%% +bin/erkale_pop%%SUFFIX%% +bin/erkale_slaterfit%%SUFFIX%% +bin/erkale_xrs%%SUFFIX%% +include/erkale%%SUFFIX%%/bader.h +include/erkale%%SUFFIX%%/badergrid.h +include/erkale%%SUFFIX%%/basis.h +include/erkale%%SUFFIX%%/basislibrary.h +include/erkale%%SUFFIX%%/boys.h +include/erkale%%SUFFIX%%/broyden.h +include/erkale%%SUFFIX%%/casida/casida.h +include/erkale%%SUFFIX%%/casida/casida_grid.h +include/erkale%%SUFFIX%%/chebyshev.h +include/erkale%%SUFFIX%%/checkpoint.h +include/erkale%%SUFFIX%%/completeness/completeness_profile.h +include/erkale%%SUFFIX%%/completeness/optimize_completeness.h +include/erkale%%SUFFIX%%/density_fitting.h +include/erkale%%SUFFIX%%/dftfuncs.h +include/erkale%%SUFFIX%%/dftgrid.h +include/erkale%%SUFFIX%%/diis.h +include/erkale%%SUFFIX%%/elements.h +include/erkale%%SUFFIX%%/emd/emd.h +include/erkale%%SUFFIX%%/emd/emd_gto.h +include/erkale%%SUFFIX%%/emd/emd_similarity.h +include/erkale%%SUFFIX%%/emd/emd_sto.h +include/erkale%%SUFFIX%%/emd/emdcube.h +include/erkale%%SUFFIX%%/emd/gto_fourier.h +include/erkale%%SUFFIX%%/emd/spherical_expansion.h +include/erkale%%SUFFIX%%/eri_digest.h +include/erkale%%SUFFIX%%/erichol.h +include/erkale%%SUFFIX%%/erifit.h +include/erkale%%SUFFIX%%/eriscreen.h +include/erkale%%SUFFIX%%/eritable.h +include/erkale%%SUFFIX%%/eriworker.h +include/erkale%%SUFFIX%%/external/fchkpt_tools.h +include/erkale%%SUFFIX%%/external/storage.h +include/erkale%%SUFFIX%%/find_molecules.h +include/erkale%%SUFFIX%%/gaunt.h +include/erkale%%SUFFIX%%/gdm.h +include/erkale%%SUFFIX%%/global.h +include/erkale%%SUFFIX%%/guess.h +include/erkale%%SUFFIX%%/hirshfeld.h +include/erkale%%SUFFIX%%/hirshfeldi.h +include/erkale%%SUFFIX%%/integrals.h +include/erkale%%SUFFIX%%/lbfgs.h +include/erkale%%SUFFIX%%/lebedev.h +include/erkale%%SUFFIX%%/linalg.h +include/erkale%%SUFFIX%%/lmgrid.h +include/erkale%%SUFFIX%%/lobatto.h +include/erkale%%SUFFIX%%/localization.h +include/erkale%%SUFFIX%%/mathf.h +include/erkale%%SUFFIX%%/obara-saika.h +include/erkale%%SUFFIX%%/properties.h +include/erkale%%SUFFIX%%/pzstability.h +include/erkale%%SUFFIX%%/sap.h +include/erkale%%SUFFIX%%/scf.h +include/erkale%%SUFFIX%%/settings.h +include/erkale%%SUFFIX%%/slaterfit/form_exponents.h +include/erkale%%SUFFIX%%/slaterfit/solve_coefficients.h +include/erkale%%SUFFIX%%/solidharmonics.h +include/erkale%%SUFFIX%%/spherical_harmonics.h +include/erkale%%SUFFIX%%/stockholder.h +include/erkale%%SUFFIX%%/stringutil.h +include/erkale%%SUFFIX%%/tempered.h +include/erkale%%SUFFIX%%/timer.h +include/erkale%%SUFFIX%%/trrh.h +include/erkale%%SUFFIX%%/unitary.h +include/erkale%%SUFFIX%%/xrs/bfprod.h +include/erkale%%SUFFIX%%/xrs/fourierprod.h +include/erkale%%SUFFIX%%/xrs/lmtrans.h +include/erkale%%SUFFIX%%/xrs/momentum_series.h +include/erkale%%SUFFIX%%/xrs/xrsscf.h +include/erkale%%SUFFIX%%/xyzutils.h +include/erkale%%SUFFIX%%/zmatrix.h +lib/liberkale%%SUFFIX%%.so +lib/liberkale%%SUFFIX%%.so.0.1.0 +lib/liberkale_cmp%%SUFFIX%%.so +lib/liberkale_cmp%%SUFFIX%%.so.0.1.0 +lib/liberkale_emd%%SUFFIX%%.so +lib/liberkale_emd%%SUFFIX%%.so.0.1.0 +lib/liberkale_xrs%%SUFFIX%%.so +lib/liberkale_xrs%%SUFFIX%%.so.0.1.0