Lines 2-11
Link Here
|
2 |
# $FreeBSD$ |
2 |
# $FreeBSD$ |
3 |
|
3 |
|
4 |
PORTNAME= suitesparse |
4 |
PORTNAME= suitesparse |
5 |
PORTVERSION= 4.0.2 |
5 |
DISTVERSION= 5.2.0 |
6 |
PORTREVISION= 8 |
|
|
7 |
CATEGORIES= math |
6 |
CATEGORIES= math |
8 |
MASTER_SITES= http://www.cise.ufl.edu/research/sparse/SuiteSparse/ |
7 |
MASTER_SITES= http://faculty.cse.tamu.edu/davis/SuiteSparse/ |
9 |
DISTNAME= SuiteSparse-${PORTVERSION} |
8 |
DISTNAME= SuiteSparse-${PORTVERSION} |
10 |
|
9 |
|
11 |
MAINTAINER= fortran@FreeBSD.org |
10 |
MAINTAINER= fortran@FreeBSD.org |
Lines 12-21
Link Here
|
12 |
COMMENT= SuiteSparse is a set of packages for sparse matrices calculation |
11 |
COMMENT= SuiteSparse is a set of packages for sparse matrices calculation |
13 |
|
12 |
|
14 |
LICENSE= GPLv2 LGPL21 |
13 |
LICENSE= GPLv2 LGPL21 |
15 |
LICENSE_COMB= multi |
14 |
LICENSE_COMB= dual |
16 |
|
15 |
|
17 |
USES= fortran gmake |
16 |
LIB_DEPENDS= libmetis.so:math/metis \ |
|
|
17 |
liblapack.so:math/lapack |
18 |
|
18 |
|
|
|
19 |
USES= compiler:openmp fortran gmake |
20 |
USE_LDCONFIG= yes |
21 |
|
22 |
PLIST_SUB= SHL3=${DISTVERSION} SHL1=${DISTVERSION:R:R} |
23 |
|
24 |
WRKSRC= ${WRKDIR}/SuiteSparse |
25 |
WRKSRC_SHARED= ${WRKSRC}_shared |
26 |
|
19 |
OPTIONS_RADIO= BLAS |
27 |
OPTIONS_RADIO= BLAS |
20 |
OPTIONS_RADIO_BLAS= OPENBLAS NETLIB ATLAS |
28 |
OPTIONS_RADIO_BLAS= OPENBLAS NETLIB ATLAS |
21 |
OPTIONS_DEFAULT= OPENBLAS |
29 |
OPTIONS_DEFAULT= OPENBLAS |
Lines 24-39
Link Here
|
24 |
NETLIB_USES= blaslapack:netlib |
32 |
NETLIB_USES= blaslapack:netlib |
25 |
ATLAS_USES= blaslapack:atlas |
33 |
ATLAS_USES= blaslapack:atlas |
26 |
|
34 |
|
27 |
.if defined (WITH_METIS) |
|
|
28 |
LIB_DEPENDS= libmetis.so:math/metis4 |
29 |
|
30 |
RESTRICTED= GPL and METIS licenses are contradictory |
31 |
.endif |
32 |
|
33 |
CONFLICTS= umfpack-* |
34 |
|
35 |
LDFLAGS+= -L${LOCALBASE}/lib |
36 |
|
37 |
.include <bsd.port.options.mk> |
35 |
.include <bsd.port.options.mk> |
38 |
|
36 |
|
39 |
.if ${ARCH} == "sparc64" |
37 |
.if ${ARCH} == "sparc64" |
Lines 42-63
Link Here
|
42 |
PICFLAG?= -fpic |
40 |
PICFLAG?= -fpic |
43 |
.endif |
41 |
.endif |
44 |
|
42 |
|
45 |
USE_LDCONFIG= yes |
43 |
METIS= ${LOCALBASE}/lib/libmetis.a |
46 |
WRKSRC=${WRKDIR}/SuiteSparse |
44 |
METIS_PATH= ${LOCALBASE}/include/metis |
47 |
WRKSRC_SHARED=${WRKSRC}_shared |
|
|
48 |
SVERSION=1 |
49 |
|
50 |
.if defined (WITH_METIS) |
51 |
METIS=${LOCALBASE}/lib/libmetis.a |
52 |
METIS_PATH=${LOCALBASE}/include/metis |
53 |
CHOLMOD_CONFIG= |
45 |
CHOLMOD_CONFIG= |
54 |
.else |
46 |
CFLAGS+= -I${LOCALBASE}/include |
55 |
CHOLMOD_CONFIG= -DNPARTITION |
47 |
CXXFLAGS+= -I${LOCALBASE}/include |
56 |
.endif |
48 |
MAKE_ARGS+= MY_METIS_LIB="-L${LOCALBASE}/lib -lmetis $(LDFLAGS)" |
57 |
|
49 |
|
58 |
post-patch: |
50 |
post-patch: |
|
|
51 |
@${RM} -r ${WRKSRC}/metis-5.1.0 |
59 |
@${FIND} -X ${WRKSRC} -type f -name 'Makefile' -or -name '*.mk' | ${XARGS} \ |
52 |
@${FIND} -X ${WRKSRC} -type f -name 'Makefile' -or -name '*.mk' | ${XARGS} \ |
60 |
${REINPLACE_CMD} -e '\|^AR =|s|ar|${AR}|' \ |
53 |
${REINPLACE_CMD} -i '' \ |
|
|
54 |
-e '\|^AR =|s|ar|${AR}|' \ |
61 |
-e '\|^BLAS =|s|=.*|= ${LDFLAGS} ${BLASLIB}|' \ |
55 |
-e '\|^BLAS =|s|=.*|= ${LDFLAGS} ${BLASLIB}|' \ |
62 |
-e '\|^CC =|d' \ |
56 |
-e '\|^CC =|d' \ |
63 |
-e '\|^CFLAGS =|{s|-O[1-9]\{0,1\}||g;s|=|= ${CFLAGS} $${PICFLAG} |;}' \ |
57 |
-e '\|^CFLAGS =|{s|-O[1-9]\{0,1\}||g;s|=|= ${CFLAGS} $${PICFLAG} |;}' \ |
Lines 78-107
Link Here
|
78 |
${REINPLACE_CMD} -e 's|$$(CFLAGS)|$$(CFLAGS) $$(PICFLAG)|g' |
72 |
${REINPLACE_CMD} -e 's|$$(CFLAGS)|$$(CFLAGS) $$(PICFLAG)|g' |
79 |
|
73 |
|
80 |
do-build: |
74 |
do-build: |
81 |
@cd ${WRKSRC} ; ${SETENV} ${MAKE_ENV} PICFLAG= \ |
75 |
@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} PICFLAG= \ |
82 |
${MAKE_CMD} ${_MAKE_JOBS} ${MAKE_ARGS} |
76 |
LD_LIBRARY_PATH=${WRKDIR}/SuiteSparse/lib ${MAKE_CMD} ${_MAKE_JOBS} ${MAKE_ARGS} |
83 |
@cd ${WRKSRC_SHARED} ; ${SETENV} ${MAKE_ENV} PICFLAG=${PICFLAG} \ |
77 |
@cd ${WRKSRC_SHARED} && ${SETENV} ${MAKE_ENV} PICFLAG=${PICFLAG} \ |
84 |
${MAKE_CMD} ${_MAKE_JOBS} ${MAKE_ARGS} |
78 |
LD_LIBRARY_PATH=${WRKDIR}/SuiteSparse/lib ${MAKE_CMD} ${_MAKE_JOBS} ${MAKE_ARGS} |
85 |
|
79 |
|
86 |
post-build: |
|
|
87 |
@for i in `find ${WRKSRC_SHARED} -type f -name '*.a'` ; do \ |
88 |
j=$${i##*/} ; ${LD} -Bshareable -o $${i%.a}.so.${SVERSION} -x \ |
89 |
-soname $${j%.a}.so.${SVERSION} --whole-archive $${i} ; \ |
90 |
done |
91 |
|
92 |
do-install: |
80 |
do-install: |
93 |
@${MKDIR} ${STAGEDIR}${PREFIX}/include/suitesparse |
81 |
@${MKDIR} ${STAGEDIR}${PREFIX}/include/suitesparse |
94 |
@${LN} -sf ${PREFIX}/include/suitesparse ${STAGEDIR}${PREFIX}/include/ufsparse |
82 |
@cd ${STAGEDIR}${PREFIX}/include && ${LN} -s suitesparse ufsparse |
95 |
.for d in AMD BTF CAMD CCOLAMD CHOLMOD COLAMD CXSparse KLU SPQR UMFPACK |
83 |
.for d in AMD BTF CAMD CCOLAMD CHOLMOD COLAMD CXSparse KLU SPQR UMFPACK |
96 |
@${INSTALL_DATA} ${WRKSRC}/${d}/Include/*.h ${STAGEDIR}${PREFIX}/include/suitesparse |
84 |
${INSTALL_DATA} ${WRKSRC}/${d}/Include/*.h ${STAGEDIR}${PREFIX}/include/suitesparse |
97 |
.endfor |
85 |
.endfor |
98 |
@${INSTALL_DATA} ${WRKSRC}/SuiteSparse_config/SuiteSparse_config.h ${STAGEDIR}${PREFIX}/include/suitesparse |
86 |
${INSTALL_DATA} ${WRKSRC}/SuiteSparse_config/SuiteSparse_config.h ${STAGEDIR}${PREFIX}/include/suitesparse |
99 |
@${INSTALL_DATA} ${WRKSRC}/UMFPACK/Source/umf_config.h ${STAGEDIR}${PREFIX}/include/suitesparse |
87 |
${INSTALL_DATA} ${WRKSRC}/UMFPACK/Source/umf_config.h ${STAGEDIR}${PREFIX}/include/suitesparse |
100 |
@${INSTALL_DATA} ${WRKSRC}/SPQR/Include/*.hpp ${STAGEDIR}${PREFIX}/include/suitesparse |
88 |
${INSTALL_DATA} ${WRKSRC}/SPQR/Include/*.hpp ${STAGEDIR}${PREFIX}/include/suitesparse |
101 |
@for i in `find ${WRKSRC_SHARED} -type f -name '*.a'` ; do \ |
89 |
${INSTALL_DATA} ${WRKSRC_SHARED}/lib/*.so* ${STAGEDIR}${PREFIX}/lib/ |
102 |
${INSTALL_DATA} ${WRKSRC}/$${i##${WRKSRC_SHARED}/} \ |
90 |
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/*.so* |
103 |
$${i%.a}.so.${SVERSION} ${STAGEDIR}${PREFIX}/lib ; \ |
|
|
104 |
j=$${i##*/} ; ${LN} -sf $${j%.a}.so.${SVERSION} ${STAGEDIR}${PREFIX}/lib/$${j%.a}.so ; \ |
105 |
done |
106 |
|
91 |
|
107 |
.include <bsd.port.mk> |
92 |
.include <bsd.port.mk> |