Files
2026-10-04 04:07:15 +00:00

115 lines
4.5 KiB
Makefile

PORTNAME= fleur
DISTVERSION= 8.1
CATEGORIES= science # chemistry
#MASTER_SITES= https://iffgit.fz-juelich.de/fleur/fleur/-/archive/MaX-R${DISTVERSION}/
MASTER_SITES= LOCAL/yuri # same as unversioned tarball linked from https://www.flapw.de/master/downloads/#download-via-configure-script: it only downloads from a browser, and fails with fetch/wget
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= yuri@FreeBSD.org
COMMENT= FLAPW code for atomic computations in quantum chemistry and physics
WWW= https://www.flapw.de/master/ \
https://iffgit.fz-juelich.de/fleur/fleur
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
BROKEN_aarch64= fatal error: cannot find an intrinsic module named 'ieee_arithmetic' at (1)
BROKEN_i386= compilation fails: Type mismatch in argument 'increment' at (1); passed INTEGER(8) to INTEGER(4)
LIB_DEPENDS= libfftw3.so:math/fftw3 \
libhdf5.so:science/hdf5 \
liblapack.so:math/lapack \
libopenblas.so:math/openblas
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest-html>0:devel/py-pytest-html@${PY_FLAVOR}
USES= cmake:noninja fortran gnome localbase:ldflags python:test
USE_GNOME= libxml2
#USE_GITLAB= yes
#GL_SITE= https://iffgit.fz-juelich.de
#GL_TAGNAME= 6960e037c34e5b704cd79718ec34c7147ccbf06a16fef397c7e3316f47e99a39
USE_GITHUB= nodefault
GH_TUPLE= wannier-developers:wannier90:v3.1.0:wannier90/external/wannier90/src
WRKSRC= ${WRKDIR}/fleur-release
OPTIONS_DEFINE= HDF5 KPLIB MPI SCALAPACK ELPA LIBXC #WANNIER WANNIER exernal wannier90 is not compatible and is replaced with submodule
OPTIONS_DEFAULT= MPI SCALAPACK ELPA #WANNIER # HDF5 KPLIB LIBXC
HDF5_CMAKE_BOOL= CLI_FLEUR_USE_HDF5
HDF5_CMAKE_ON= -DHDF5_INCLUDE_DIRS=${LOCALBASE}/include
HDF5_LIB_DEPENDS= libhdf5.so:science/hdf5
HDF5_BROKEN= missing hdf5.mod in hdf5 # hdf5 doesn't include Fortran binding
KPLIB_DESC= Use kpLib library
#KPLIB_CMAKE_BOOL= CLI_FLEUR_USE_KPLIB
KPLIB_DEPENDS= libkplib.so:science/kplib
KPLIB_BROKEN= fails to find the pre-installed libkplib.so library, see https://iffgit.fz-juelich.de/fleur/fleur/-/issues/691
MPI_CMAKE_BOOL= CLI_FLEUR_USE_MPI
MPI_LDFLAGS= -lmpich -lmpifort
MPI_LIB_DEPENDS= libmpich.so:net/mpich
SCALAPACK_DESC= Use the ScaLAPACK Scalable LAPACK library
SCALAPACK_CMAKE_BOOL= FLEUR_USE_SCALAPACK # no such variable, see https://iffgit.fz-juelich.de/fleur/fleur/-/issues/692, it works only through FLEUR_LIBRARIES set below
SCALAPACK_LDFLAGS= -lscalapack
SCALAPACK_LIB_DEPENDS= libscalapack.so:math/scalapack
SCALAPACK_IMPLIES= MPI
ELPA_DESC= Use libelpa, Eigenvalue SoLver for Petaflop Applications
ELPA_CMAKE_BOOL= FLEUR_USE_ELPA # no such variable, see https://iffgit.fz-juelich.de/fleur/fleur/-/issues/689, it works only through FLEUR_LIBRARIES set below
ELPA_LDFLAGS= -lelpa
ELPA_LIB_DEPENDS= libelpa.so:math/elpa
LIBXC_DESC= Use libxc library
LIBXC_CMAKE_BOOL= CLI_FLEUR_USE_LIBXC
LIBXC_LIB_DEPENDS= libxc.so:science/libxc
LIBXC_BROKEN= silently links with libxc when CLI_FLEUR_USE_LIBXC=OFF, see https://iffgit.fz-juelich.de/fleur/fleur/-/issues/690
#WANNIER_DESC= Use Wannier library
#WANNIER_CMAKE_BOOL= CLI_FLEUR_USE_WANNIER
#WANNIER_LIB_DEPENDS= libwannier90.so:science/wannier90
.include <bsd.port.options.mk>
FFLAGS= -I${LOCALBASE}/include
FLEUR_LIBRARIES= -L${LOCALBASE}/lib;-ldl;-lfftw3;-lxml2;-llapack;-lopenblas
.if ${PORT_OPTIONS:MMPI}
SUFFIX= _MPI
FLEUR_LIBRARIES:= ${FLEUR_LIBRARIES};-lmpich;-lmpifort
.endif
.if ${PORT_OPTIONS:MSCALAPACK}
FFLAGS+= -fallow-argument-mismatch
FLEUR_LIBRARIES:= ${FLEUR_LIBRARIES};-lscalapack
.endif
.if ${PORT_OPTIONS:MELPA}
FFLAGS+= -I${LOCALBASE}/include/elpa-2021.11.001/modules
FLEUR_LIBRARIES:= ${FLEUR_LIBRARIES};-lelpa
.endif
#.if ${PORT_OPTIONS:MWANNIER}
#FLEUR_LIBRARIES:= ${FLEUR_LIBRARIES};-lwannier90
#.endif
CMAKE_ARGS= -DFLEUR_LIBRARIES:STRING="${FLEUR_LIBRARIES}"
LDFLAGS+= -llapack -lopenblas -lxml2 # to fix missing symbols, see https://iffgit.fz-juelich.de/fleur/fleur/-/issues/670
EXECUTABLES= bin/fleur${SUFFIX} \
bin/inpgen
PLIST_FILES= ${EXECUTABLES}
CONFLICTS_BUILD= libxc # see https://iffgit.fz-juelich.de/fleur/fleur/-/issues/690
post-install: # strip
@cd ${STAGEDIR}${PREFIX} && ${STRIP_CMD} ${EXECUTABLES}
do-test:
# now: some tests fail or freeze, possibly because of missing hdf5 and kplib dependencies
# was: 9 testcases are known to fail, see https://iffgit.fz-juelich.de/fleur/fleur/-/issues/671
@cd ${WRKSRC}/testing && pytest tests --build_dir=${TEST_WRKSRC}
# tests as of 8.1: 54 passed, 1 skipped, 24 deselected, 2 warnings in 249.24s (0:04:09)
.include <bsd.port.mk>