aboutsummaryrefslogtreecommitdiff
path: root/math/slicot/Makefile
blob: 11736372b66701ad261de4281403ec40b2b9593c (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
PORTNAME=	SLICOT
PORTVERSION=	5.9
PORTREVISION=	1
DISTVERSIONPREFIX=	v
CATEGORIES=	math

MAINTAINER=	thierry@FreeBSD.org
COMMENT=	Fortran subroutines library for systems and control
WWW=		https://slicot.org/

LICENSE=	BSD3CLAUSE

USE_GITHUB=	yes
GH_PROJECT=	SLICOT-Reference

USES=		blaslapack:openblas fortran

BINARY_ALIAS=	gfortran=${FC}
FFLAGS+=	-I${LOCALBASE}/include
LDFLAGS+=	-L${LOCALBASE}/lib
MAKEFILE=	makefile_Unix
MAKE_ENV=	FORTRAN=${FC} OPTS="${FFLAGS} -fPIC" LOADER=${FC}	\
		LOADOPTS="${WRKSRC}/slicot.a ${WRKSRC}/lpkaux.a ${LDFLAGS} ${BLASLIB} ${LAPACKLIB}"
MAKE_JOBS_UNSAFE=yes
USE_LDCONFIG=	yes

OPTIONS_DEFINE=	DOCS EXAMPLES
PORTDOCS=	*

post-build:
	(cd ${WRKSRC} &&	\
	${CP} slicot.a libslicot.a &&	\
	${FC} ${LDFLAGS} -shared -Wl,-soname=libslicot.so.0	\
		-o libslicot.so.0.0 src/*.o ${BLASLIB} ${LAPACKLIB} &&	\
	${LN} -sf libslicot.so.0.0 libslicot.so.0 &&	\
	${LN} -sf libslicot.so.0.0 libslicot.so)

do-install:
	${MKDIR} ${STAGEDIR}${PREFIX}/lib
	${INSTALL_DATA} ${WRKSRC}/libslicot.a ${STAGEDIR}${PREFIX}/lib
	${INSTALL_LIB} ${WRKSRC}/libslicot.so.0.0 ${STAGEDIR}${PREFIX}/lib
	${RLN} ${STAGEDIR}${PREFIX}/lib/libslicot.so.0.0	\
		${STAGEDIR}${PREFIX}/lib/libslicot.so
	${RLN} ${STAGEDIR}${PREFIX}/lib/libslicot.so.0.0	\
		${STAGEDIR}${PREFIX}/lib/libslicot.so.0

do-install-DOCS-on:
	${MKDIR} ${STAGEDIR}${DOCSDIR}
.for f in README.md libindex.html
	${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${DOCSDIR}
.endfor
	cd ${WRKSRC} && ${COPYTREE_SHARE} doc ${STAGEDIR}${DOCSDIR}

do-install-EXAMPLES-on:
	${FIND} ${WRKSRC}/examples -name "T*" -a ! -name "*\.*" |	\
		${XARGS} ${STRIP_CMD}
	${RM} ${WRKSRC}/examples/*.o ${WRKSRC}/../examples/makefile.bak	\
		${WRKSRC}/examples/makefile.orig
	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
	cd ${WRKSRC}/examples &&	\
		${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}

.include <bsd.port.mk>