aboutsummaryrefslogtreecommitdiff
path: root/math/slatec/Makefile
blob: 08c234cd15e35b41413686469c9f6e32c7a3b40f (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
76
77
78
79
80
# Created by: Anton Shterenlikht
# $FreeBSD$

PORTNAME=	slatec
PORTVERSION=	4.1
PORTREVISION=	1
CATEGORIES=	math
MASTER_SITES=	NL:slatec,blas
MASTER_SITE_SUBDIR=	slatec/:slatec blas/:blas
NO_STAGE=	yes
# 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=	mexas@bris.ac.uk
COMMENT=	SLATEC Common Mathematical Library

USE_LDCONFIG=	yes
USE_FORTRAN=	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}"

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+=	NO_PROFILE=
.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:
.if ${PORT_OPTIONS:MDOCS}
	@${MKDIR} ${DOCSDIR}
	@cd ${_DISTDIR}; ${INSTALL_DATA} ${PORTDOCS} ${DOCSDIR}
.endif

.include <bsd.port.mk>