|
Lines 2-96
Link Here
|
| 2 |
# $FreeBSD: head/math/superlu/Makefile 385210 2015-05-02 19:25:50Z danilo $ |
2 |
# $FreeBSD: head/math/superlu/Makefile 385210 2015-05-02 19:25:50Z danilo $ |
| 3 |
|
3 |
|
| 4 |
PORTNAME= superlu |
4 |
PORTNAME= superlu |
| 5 |
PORTVERSION= ${P_VERSION} |
5 |
PORTVERSION= 5.1.1 |
| 6 |
PORTREVISION= 3 |
|
|
| 7 |
CATEGORIES= math |
6 |
CATEGORIES= math |
| 8 |
MASTER_SITES= http://crd.lbl.gov/~xiaoye/SuperLU/ \ |
7 |
MASTER_SITES= http://crd-legacy.lbl.gov/~xiaoye/SuperLU/ \ |
| 9 |
http://crd.lbl.gov/~xiaoye/:doc |
8 |
http://crd-legacy.lbl.gov/~xiaoye/:doc |
| 10 |
DISTNAME= ${PORTNAME}_${P_VERSION} |
9 |
DISTNAME= ${PORTNAME}_${PORTVERSION} |
| 11 |
DIST_SUBDIR= ${PORTNAME} |
10 |
DIST_SUBDIR= ${PORTNAME} |
| 12 |
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} |
|
|
| 13 |
|
11 |
|
| 14 |
MAINTAINER= ports@FreeBSD.org |
12 |
MAINTAINER= ports@FreeBSD.org |
| 15 |
COMMENT= Library of routines for performing sparse factorization |
13 |
COMMENT= Library of routines for performing sparse factorization |
| 16 |
|
14 |
|
| 17 |
LICENSE= BSD3CLAUSE |
15 |
LICENSE= BSD3CLAUSE |
| 18 |
LICENSE_FILE= ${WRKSRC}/README |
16 |
LICENSE_FILE= ${WRKDIR}/LICENSE |
| 19 |
|
17 |
|
| 20 |
USES= fortran |
18 |
WRKSRC= ${WRKDIR}/SuperLU_${PORTVERSION} |
| 21 |
|
19 |
|
|
|
20 |
USES= cmake:outsource fortran |
| 21 |
CMAKE_ARGS= -DUSE_XSDK_DEFAULTS:BOOL=ON \ |
| 22 |
-Denable_examples:BOOL=OFF \ |
| 23 |
-Denable_tests:BOOL=OFF |
| 22 |
USE_LDCONFIG= yes |
24 |
USE_LDCONFIG= yes |
| 23 |
|
25 |
|
| 24 |
P_VERSION= 4.3 |
26 |
PLIST_SUB= P_VERSION="${PORTVERSION}" P_VER="${P_VER}" |
| 25 |
P_VER= ${P_VERSION:R} |
27 |
|
| 26 |
WRKSRC= ${WRKDIR}/SuperLU_${P_VERSION} |
28 |
PORTDOCS= * |
| 27 |
ALL_TARGET= lib |
29 |
|
| 28 |
PLIST_SUB= P_VERSION=${P_VERSION} P_VER=${P_VER} |
30 |
OPTIONS_DEFINE= DOCS |
| 29 |
|
31 |
OPTIONS_SINGLE= BLAS |
| 30 |
ARCH2FIX= SRC/Makefile TESTING/MATGEN/Makefile CBLAS/Makefile make.inc \ |
32 |
OPTIONS_SINGLE_BLAS= ATLAS GOTOBLAS REFERENCE |
| 31 |
MAKE_INC/make.alpha MAKE_INC/make.inc |
33 |
OPTIONS_DEFAULT= REFERENCE |
| 32 |
|
34 |
|
| 33 |
MAKE_JOBS_UNSAFE= yes |
35 |
ATLAS_USES= blaslapack:atlas |
| 34 |
|
36 |
ATLAS_CMAKE_ARGS= -DBLA_VENDOR:STRING="ATLAS" |
| 35 |
.include <bsd.port.pre.mk> |
37 |
DOCS_DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ |
| 36 |
|
38 |
${SLU_DOCS:S/$/:doc/} |
| 37 |
.if ${PORT_OPTIONS:MDOCS} |
39 |
DOCS_EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} |
| 38 |
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} superlu_ug.pdf SLU_general.ps.gz:doc simax95.ps.gz:doc |
40 |
GOTOBLAS_DESC= GotoBLAS blas implementation |
| 39 |
.endif |
41 |
GOTOBLAS_USES= blaslapack:gotoblas |
| 40 |
|
42 |
GOTOBLAS_CMAKE_ARGS= -DBLA_VENDOR:STRING="Goto" |
| 41 |
.if exists(${LOCALBASE}/lib/libgoto2.so) |
43 |
REFERENCE_DESC= Reference blas implementation |
| 42 |
WITH_BLAS?= gotoblas |
44 |
REFERENCE_USES= blaslapack |
| 43 |
.elif exists(${LOCALBASE}/lib/libatlas.so) |
45 |
REFERENCE_CMAKE_ARGS= -DBLA_VENDOR:STRING="Generic" |
| 44 |
WITH_BLAS?= atlas |
46 |
|
| 45 |
.else |
47 |
P_VER= ${PORTVERSION:C/^([[:alnum:]]+).*/\1/} |
| 46 |
WITH_BLAS?= reference |
48 |
SLU_DOCS= SLU_general.ps.gz simax-29176.pdf |
| 47 |
.endif |
49 |
|
| 48 |
|
50 |
post-extract: |
| 49 |
. if ${WITH_BLAS} == reference |
51 |
@${HEAD} -32 ${WRKSRC}/README > ${LICENSE_FILE} |
| 50 |
LIB_DEPENDS+= libblas.so:${PORTSDIR}/math/blas |
52 |
|
| 51 |
BLAS= -lblas |
53 |
post-patch: |
| 52 |
.elif ${WITH_BLAS} == gotoblas |
54 |
@${REINPLACE_CMD} -e \ |
| 53 |
LIB_DEPENDS+= libgoto2.so:${PORTSDIR}/math/gotoblas |
55 |
'/CMAKE_C_FLAGS_RELEASE/s|^|#|' ${WRKSRC}/CMakeLists.txt |
| 54 |
BLAS= -lgoto2p |
56 |
@${REINPLACE_CMD} -e \ |
| 55 |
.elif ${WITH_BLAS} == atlas |
57 |
'/FFLAGS/s|FATAL_ERROR|WARNING|' ${WRKSRC}/XSDKDefaults.cmake |
| 56 |
LIB_DEPENDS+= libatlas.so:${PORTSDIR}/math/atlas |
58 |
@${REINPLACE_CMD} -e \ |
| 57 |
BLAS= -lptf77blas |
59 |
's|\(/include\)$$|/\1/superlu|' ${WRKSRC}/SRC/CMakeLists.txt |
| 58 |
.endif |
60 |
|
| 59 |
|
61 |
post-install: |
| 60 |
pre-build: |
62 |
${LN} -sf libsuperlu_${PORTVERSION}.so \ |
| 61 |
${REINPLACE_CMD} -e 's+%%BLAS%%+-L${LOCALBASE}/lib ${BLAS}+ ; \ |
|
|
| 62 |
s+%%CC%%+${CC}+; s+%%FC%%+${FC}+; \ |
| 63 |
s+%%WRKSRC%%+${WRKSRC}+; \ |
| 64 |
s+%%CFLAGS%%+${CFLAGS}+; \ |
| 65 |
s+%%FFLAGS%%+${FFLAGS}+' \ |
| 66 |
${WRKSRC}/make.inc |
| 67 |
.for fmk in ${ARCH2FIX} |
| 68 |
${REINPLACE_CMD} -e 's|^ARCH *.= ar|ARCMD = ar| ; \ |
| 69 |
s|\$$(ARCH)|$$(ARCMD)|' ${WRKSRC}/${fmk} |
| 70 |
.endfor |
| 71 |
${FIND} ${WRKSRC} -name Makefile | ${XARGS} \ |
| 72 |
${REINPLACE_CMD} -E -e 's|\( cd (.*); \$$\(MAKE\) \)|\$$(MAKE) -C \1|' |
| 73 |
|
| 74 |
do-install: |
| 75 |
${INSTALL_DATA} ${WRKSRC}/lib/libsuperlu_${P_VERSION}.a \ |
| 76 |
${STAGEDIR}${PREFIX}/lib/libsuperlu.a |
| 77 |
${INSTALL_LIB} ${WRKSRC}/libsuperlu_${P_VERSION}.so \ |
| 78 |
${STAGEDIR}${PREFIX}/lib/libsuperlu.so.${P_VER} |
63 |
${STAGEDIR}${PREFIX}/lib/libsuperlu.so.${P_VER} |
| 79 |
${LN} -fs libsuperlu.so.${P_VER} \ |
64 |
${LN} -sf libsuperlu_${PORTVERSION}.so \ |
| 80 |
${STAGEDIR}${PREFIX}/lib/libsuperlu_${P_VERSION}.so |
|
|
| 81 |
${LN} -fs libsuperlu_${P_VERSION}.so \ |
| 82 |
${STAGEDIR}${PREFIX}/lib/libsuperlu.so |
65 |
${STAGEDIR}${PREFIX}/lib/libsuperlu.so |
| 83 |
@${MKDIR} ${STAGEDIR}${PREFIX}/include/superlu |
66 |
|
| 84 |
${INSTALL_DATA} ${WRKSRC}/SRC/*.h ${STAGEDIR}${PREFIX}/include/superlu |
67 |
post-install-DOCS-on: |
| 85 |
.if ${PORT_OPTIONS:MDOCS} |
|
|
| 86 |
@${MKDIR} ${STAGEDIR}${DOCSDIR} |
68 |
@${MKDIR} ${STAGEDIR}${DOCSDIR} |
| 87 |
${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/SLU_general.ps.gz ${STAGEDIR}${DOCSDIR} |
69 |
(cd ${DISTDIR}/${DIST_SUBDIR} && ${INSTALL_DATA} ${SLU_DOCS} \ |
| 88 |
${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/simax95.ps.gz ${STAGEDIR}${DOCSDIR} |
70 |
${STAGEDIR}${DOCSDIR}) |
| 89 |
${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/superlu_ug.pdf ${STAGEDIR}${DOCSDIR} |
71 |
@(cd ${WRKSRC}/DOC && ${COPYTREE_SHARE} "html ug.pdf" \ |
| 90 |
.endif |
72 |
${STAGEDIR}${DOCSDIR}) |
| 91 |
|
|
|
| 92 |
regression-test: build |
| 93 |
(cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} testing ) |
| 94 |
(cd ${WRKSRC}/TESTING && ${CAT} *.out ) |
| 95 |
|
73 |
|
| 96 |
.include <bsd.port.post.mk> |
74 |
.include <bsd.port.mk> |