aboutsummaryrefslogtreecommitdiff
path: root/math/slatec/Makefile
blob: e2754edfb5e75db092cb9716dba44950d48ac111 (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
72
73
74
75
PORTNAME=	slatec
PORTVERSION=	4.1
PORTREVISION=	12
CATEGORIES=	math
MASTER_SITES=	NL/slatec/:slatec NL/blas/:blas
# Get d1mach.f, i1mach.f, r1mach.f from BLAS, rather than from Slatec:
# See Netlib FAQ #2.17: http://netlib.org/misc/faq.html#2.17
DISTFILES=	guide:slatec slatec_chk.tgz:slatec slatec_src.tgz:slatec \
		toc:slatec d1mach.f:blas i1mach.f:blas r1mach.f:blas
DIST_SUBDIR=	slatec
EXTRACT_ONLY=	slatec_src.tgz slatec_chk.tgz

MAINTAINER=	ports@FreeBSD.org
COMMENT=	SLATEC Common Mathematical Library
WWW=		https://www.netlib.org/slatec/

USES=		fortran uidfix
USE_LDCONFIG=	yes
WRKSRC=		${WRKDIR}/src
SHLIB_MAJOR=	1

PLIST_FILES=	lib/libslatec.a lib/libslatec.so lib/libslatec.so.${SHLIB_MAJOR}
PORTDOCS=	guide toc

LDFLAGS+=	${FFLAGS}
LDADD ?=	-lgfortran -lm
SRCCONF=	/dev/null
MAKE_ENV+=	LDADD="${LDADD}" SHLIB_MAJOR="${SHLIB_MAJOR}" \
		SRCCONF="${SRCCONF}"
FFLAGS+=	-std=legacy

OPTIONS_DEFINE=	DOCS PROFILE

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MPROFILE}
.if defined(NOPROFILE) || defined(NO_PROFILE) || defined(WITHOUT_PROFILE)
IGNORE=	you have selected PROFILE option, but have also defined\
WITHOUT_PROFILE, NOPROFILE, or NO_PROFILE
.elif !exists(/usr/lib/libc_p.a)
IGNORE=	you have chosen WITH_PROFILE, but have not installed the\
base system profiling libraries
.endif
PLIST_FILES+=	lib/libslatec_p.a
.else
MAKE_ENV+=	WITHOUT_PROFILE=yes
.endif

post-extract:
	@${CP} ${_DISTDIR}/[dir]1mach.f ${WRKSRC}
	@cd ${WRKDIR}; ${MV} dfmat.f dgvec.f duivp.f duvec.f fmat.f gvec.f \
	uivp.f uvec.f ${WRKSRC}
	@${CP} ${FILESDIR}/makefile.lib ${WRKSRC}/Makefile
	@${CP} ${FILESDIR}/makefile.test ${WRKDIR}/Makefile

TEST_VERBOSITY?=	1

check regression-test test: test-dynamic test-static

.for l in dynamic static
test-${l}: build
	@${ECHO_CMD} "****** Testing SLATEC ${l} library,"
	@${ECHO_CMD} "****** using a verbosity of ${TEST_VERBOSITY}."
	@${ECHO_CMD} "****** (The verbosity level can be selected by defining"
	@${ECHO_CMD} "****** TEST_VERBOSITY=0|1|2|3.)"
	@cd ${WRKDIR}; ${SETENV} ${MAKE_ENV} TEST_VERBOSITY="${TEST_VERBOSITY}" \
	${MAKE} ${_MAKE_JOBS} ${MAKE_ARGS} test-${l}

.endfor

post-install:
	@${MKDIR} ${STAGEDIR}${DOCSDIR}
	@cd ${_DISTDIR}; ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}

.include <bsd.port.mk>