aboutsummaryrefslogtreecommitdiff
path: root/math/elpa/Makefile
blob: 0620af6180331a9ffe25f095c32038ad8a08d955 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
PORTNAME=	elpa
DISTVERSION=	2021.11.001
CATEGORIES=	math
MASTER_SITES=	https://elpa.mpcdf.mpg.de/software/tarball-archive/Releases/${DISTVERSION}/

MAINTAINER=	yuri@FreeBSD.org
COMMENT=	Eigenvalue soLver for Petaflop Applications
WWW=		https://elpa.mpcdf.mpg.de/

LICENSE=	GPLv3 LGPL3
LICENSE_COMB=	dual
LICENSE_FILE_GPLv3=	${WRKSRC}/COPYING/gpl.txt
LICENSE_FILE_LGPL3=	${WRKSRC}/COPYING/lgpl.txt

LIB_DEPENDS=	libopenblas.so:math/openblas

USES=		compiler:c11 fortran gmake libtool localbase perl5 shebangfix
USE_LDCONFIG=	yes

SHEBANG_GLOB=	*.pl

GNU_CONFIGURE=	yes
CONFIGURE_ARGS=	--disable-avx --disable-avx2 --disable-avx512 --disable-static \
		--disable-c-tests

CFLAGS+=	-I${WRKSRC} -I${WRKSRC}/private_modules
CFLAGS+=	-DFREEBSD_OSVERSION=${OSVERSION}
FCFLAGS+=	-I${WRKSRC} -I${WRKSRC}/private_modules
LDFLAGS+=	-lutil

# ugly workaround for missing .mod files: some targets are added before 'all' that force rebuild of missing .mod files
ALL_TARGET=	src/general/libelpa_private_la-elpa_utilities.lo \
		src/libelpa_private_la-elpa_generated_fortran_interfaces.lo \
		src/elpa1/libelpa_private_la-elpa1_compute_private.lo \
		src/elpa2/libelpa_private_la-elpa2_compute.lo \
		all
INSTALL_TARGET=	install-strip

BINARY_ALIAS=	make=gmake gcc=gcc${GCC_DEFAULT} g++=g++${GCC_DEFAULT} # build fails with clang: recursively calls cc
FCFLAGS+=	-std=legacy -I${LOCALBASE}/include

MAKE_JOBS_UNSAFE=	yes # part of the workaround for .mod files

OPTIONS_DEFINE=			OPENMP MPI DOCS
OPTIONS_DEFINE_amd64=		SSE
OPTIONS_DEFAULT_amd64=		SSE

SSE_CFLAGS=			-msse3
OPENMP_CONFIGURE_ENABLE=	openmp
MPI_CONFIGURE_WITH=		mpi
MPI_LIB_DEPENDS=		libmpich.so:net/mpich \
				libscalapack.so:math/scalapack

PORTDOCS=	*

post-patch:
	# workaround for: https://github.com/marekandreas/elpa/issues/6
	@${FIND} ${WRKSRC} -name "*.mk" | ${XARGS} ${REINPLACE_CMD} -e 's|-Werror| |'
	# patch in the full path name of config-f90.h
	@${FIND} ${WRKSRC} -name *.F90 -o -name *.c | ${XARGS} ${REINPLACE_CMD} -e 's|#include "config-f90.h"|#include "${WRKSRC}/config-f90.h"|'

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:NSSE}
CONFIGURE_ARGS+=	--disable-sse --disable-sse-assembly
.endif

post-install-DOCS-on:
	@cd ${STAGEDIR}${DOCSDIR} && ${RM} *gpl* COPYING LICENSE

.include <bsd.port.mk>