math/suitesparse: simplify
- Allow using Clang again (base libomp.so or OpenMP disabled) - Respect C++ library if using GCC (must be libc++ on Clang architectures) - Respect CFLAGS/CXXFLAGS in subdirectories using CMake - Respect BLAS/LAPACK choice (actually use OpenBLAS) - Enable Intel threading building blocks support - Switch to vendor build/install targets - Adjust plist for new items (GraphBLAS, Mongoose, DOCS) - Skip running demos during build PR: 240899 Tested by: pkubaj Approved by: fortran (thierry) MFH: 2019Q4
This commit is contained in:
parent
3aaae59d2c
commit
a7a310c79a
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=513331
2 changed files with 75 additions and 75 deletions
|
@ -3,7 +3,7 @@
|
|||
|
||||
PORTNAME= suitesparse
|
||||
DISTVERSION= 5.4.0
|
||||
PORTREVISION= 2
|
||||
PORTREVISION= 3
|
||||
CATEGORIES= math
|
||||
MASTER_SITES= http://faculty.cse.tamu.edu/davis/SuiteSparse/ \
|
||||
https://mirror.sobukus.de/files/src/suitesparse/
|
||||
|
@ -15,83 +15,57 @@ COMMENT= SuiteSparse is a set of packages for sparse matrices calculation
|
|||
LICENSE= GPLv2 LGPL21
|
||||
LICENSE_COMB= dual
|
||||
|
||||
LIB_DEPENDS= libmetis.so:math/metis \
|
||||
liblapack.so:math/lapack
|
||||
LIB_DEPENDS= libmetis.so:math/metis
|
||||
|
||||
USES= cmake:insource compiler:openmp fortran gmake
|
||||
USES= cmake:insource compiler:${OPENMP}c++11-lib fortran gmake localbase:ldflags
|
||||
USE_LDCONFIG= yes
|
||||
|
||||
WRKSRC= ${WRKDIR}/SuiteSparse
|
||||
WRKSRC_SHARED= ${WRKSRC}_shared
|
||||
ALL_TARGET= library # skip demos
|
||||
INSTALL_TARGET= install # skip USES=cmake
|
||||
MAKE_ENV= BLAS="${BLASLIB}" LAPACK="${LAPACKLIB}" \
|
||||
MY_METIS_LIB="-lmetis" \
|
||||
JOBS="${MAKE_JOBS_NUMBER}" \
|
||||
CMAKE_OPTIONS='${CMAKE_ARGS}' \
|
||||
INSTALL="${STAGEDIR}${PREFIX}" \
|
||||
INSTALL_DOC="${STAGEDIR}${DOCSDIR}" \
|
||||
INSTALL_INCLUDE="${STAGEDIR}${PREFIX}/include/${PORTNAME}"
|
||||
CMAKE_ARGS= -DCMAKE_INSTALL_INCLUDEDIR:PATH="include/${PORTNAME}"
|
||||
LDFLAGS+= -L${WRKSRC}/lib # prevent linking with shared libs from the preinstalled older versions
|
||||
|
||||
CONFLICTS_INSTALL= mongoose plinkseq # bin/mongoose
|
||||
|
||||
OPTIONS_DEFINE= DOCS OPENMP TBB
|
||||
OPTIONS_RADIO= BLAS
|
||||
OPTIONS_RADIO_BLAS= OPENBLAS NETLIB ATLAS
|
||||
OPTIONS_DEFAULT= OPENBLAS
|
||||
OPTIONS_RADIO_BLAS= ATLAS GOTOBLAS NETLIB OPENBLAS
|
||||
OPTIONS_DEFAULT= OPENBLAS OPENMP TBB
|
||||
|
||||
OPENBLAS_USES= blaslapack:openblas
|
||||
NETLIB_USES= blaslapack:netlib
|
||||
ATLAS_USES= blaslapack:atlas
|
||||
ATLAS_USES= blaslapack:atlas
|
||||
GOTOBLAS_DESC= Goto blas implementation
|
||||
GOTOBLAS_USES= blaslapack:gotoblas
|
||||
NETLIB_USES= blaslapack:netlib
|
||||
OPENBLAS_USES= blaslapack:openblas
|
||||
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
.if ${ARCH} == "sparc64"
|
||||
PICFLAG?= -fPIC
|
||||
.else
|
||||
PICFLAG?= -fpic
|
||||
OPENMP_USES= compiler:openmp
|
||||
OPENMP_MAKE_ENV_OFF= CFOPENMP=
|
||||
.if !exists(/usr/include/omp.h)
|
||||
# XXX ports/199603 + ports/210337
|
||||
OPENMP_VARS= OPENMP=gcc-
|
||||
.endif
|
||||
|
||||
METIS= ${LOCALBASE}/lib/libmetis.a
|
||||
METIS_PATH= ${LOCALBASE}/include/metis
|
||||
CHOLMOD_CONFIG=
|
||||
CFLAGS+= -I${LOCALBASE}/include
|
||||
CXXFLAGS+= -I${LOCALBASE}/include
|
||||
LDFLAGS+= -L${WRKSRC}/lib # prevent linking with shared libs from the preinstalled older versions
|
||||
MAKE_ARGS+= JOBS="${MAKE_JOBS_NUMBER}"
|
||||
MAKE_ARGS+= MY_METIS_LIB="-L${LOCALBASE}/lib -lmetis $(LDFLAGS)"
|
||||
TBB_DESC= Intel threading building blocks
|
||||
TBB_LIB_DEPENDS= libtbb.so:devel/tbb
|
||||
TBB_MAKE_ENV= TBB="-ltbb" SPQR_CONFIG="-DHAVE_TBB"
|
||||
|
||||
pre-configure:
|
||||
${RM} -r ${WRKSRC}/metis-5.1.0
|
||||
${FIND} -X ${WRKSRC} -type f -name 'Makefile' -or -name '*.mk' | ${XARGS} \
|
||||
${REINPLACE_CMD} \
|
||||
-e '\|^AR =|s|ar|${AR}|' \
|
||||
-e '\|^ *BLAS =|s|=.*|= ${LDFLAGS} ${BLASLIB}|' \
|
||||
-e '\|^CC =|d' \
|
||||
-e '\|^CFLAGS =|{s|-O[1-9]\{0,1\}||g;s|=|= ${CFLAGS} $${PICFLAG} |;}' \
|
||||
-e '\|^CHOLMOD_CONFIG =|s|=.*|= ${CHOLMOD_CONFIG}|' \
|
||||
-e '\|^CPLUSPLUS =|s|=.*|= ${CXX}|' \
|
||||
-e '\|^F77 =|d' \
|
||||
-e '\|^F77FLAGS =|s|=.*|= ${FFLAGS} $${PICFLAG}|' \
|
||||
-e '\|^LAPACK =|s|=.*|= ${LDFLAGS} ${LAPACKLIB}|' \
|
||||
-e '\|^METIS =|s|=.*|= ${METIS}|' \
|
||||
-e '\|^METIS_PATH =|s|=.*|= ${METIS_PATH}|' \
|
||||
-e 's|-I\$$(METIS_PATH)/Lib|-I${METIS_PATH}|' \
|
||||
-e '\|^RANLIB =|s|ranlib|${RANLIB}|' \
|
||||
-e '\|^SPQR_CONFIG =|s|=.*|= ${CHOLMOD_CONFIG}|' \
|
||||
-e 's|# MAKE = gmake|MAKE = gmake|g' \
|
||||
-e 's|/usr/local|${LOCALBASE}|g'
|
||||
${CP} -r ${WRKSRC} ${WRKSRC_SHARED}
|
||||
${FIND} -X ${WRKSRC_SHARED} -type f -name 'Makefile' -or -name '*.mk' | ${XARGS} \
|
||||
${REINPLACE_CMD} -e 's|$$(CFLAGS)|$$(CFLAGS) $$(PICFLAG)|g'
|
||||
post-extract:
|
||||
${RM} -r ${WRKSRC}/metis-*
|
||||
|
||||
do-configure:
|
||||
@${DO_NADA}
|
||||
do-configure: # skip USES=cmake
|
||||
|
||||
do-build:
|
||||
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} PICFLAG= \
|
||||
LD_LIBRARY_PATH=${WRKDIR}/SuiteSparse/lib ${MAKE_CMD} ${MAKE_ARGS}
|
||||
cd ${WRKSRC_SHARED} && ${SETENV} ${MAKE_ENV} PICFLAG=${PICFLAG} \
|
||||
LD_LIBRARY_PATH=${WRKDIR}/SuiteSparse/lib ${MAKE_CMD} ${MAKE_ARGS}
|
||||
post-patch-OPENMP-off:
|
||||
@${REINPLACE_CMD} -e '/find_package.*OpenMP/d' \
|
||||
${WRKSRC}/GraphBLAS/CMakeLists.txt
|
||||
|
||||
do-install:
|
||||
@${MKDIR} ${STAGEDIR}${PREFIX}/include/suitesparse
|
||||
cd ${STAGEDIR}${PREFIX}/include && ${LN} -s suitesparse ufsparse
|
||||
.for d in AMD BTF CAMD CCOLAMD CHOLMOD COLAMD CSparse CXSparse KLU SPQR UMFPACK # CSparse: shared lib bot built
|
||||
${INSTALL_DATA} ${WRKSRC}/${d}/Include/*.h ${STAGEDIR}${PREFIX}/include/suitesparse
|
||||
.endfor
|
||||
${INSTALL_DATA} ${WRKSRC}/SuiteSparse_config/SuiteSparse_config.h ${STAGEDIR}${PREFIX}/include/suitesparse
|
||||
${INSTALL_DATA} ${WRKSRC}/UMFPACK/Source/umf_config.h ${STAGEDIR}${PREFIX}/include/suitesparse
|
||||
${INSTALL_DATA} ${WRKSRC}/SPQR/Include/*.hpp ${STAGEDIR}${PREFIX}/include/suitesparse
|
||||
${INSTALL_DATA} ${WRKSRC_SHARED}/lib/*.so* ${STAGEDIR}${PREFIX}/lib/
|
||||
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/*.so*
|
||||
post-install:
|
||||
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/* ${STAGEDIR}${PREFIX}/lib/*.so
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
bin/mongoose
|
||||
include/suitesparse/GraphBLAS.h
|
||||
include/suitesparse/Mongoose.hpp
|
||||
include/suitesparse/RBio.h
|
||||
include/suitesparse/SuiteSparseQR.hpp
|
||||
include/suitesparse/SuiteSparseQR_C.h
|
||||
include/suitesparse/SuiteSparseQR_definitions.h
|
||||
include/suitesparse/SuiteSparse_config.h
|
||||
include/suitesparse/amd.h
|
||||
include/suitesparse/amd_internal.h
|
||||
include/suitesparse/btf.h
|
||||
include/suitesparse/btf_internal.h
|
||||
include/suitesparse/camd.h
|
||||
include/suitesparse/camd_internal.h
|
||||
include/suitesparse/ccolamd.h
|
||||
include/suitesparse/cholmod.h
|
||||
include/suitesparse/cholmod_blas.h
|
||||
|
@ -20,7 +21,6 @@ include/suitesparse/cholmod_core.h
|
|||
include/suitesparse/cholmod_function.h
|
||||
include/suitesparse/cholmod_gpu.h
|
||||
include/suitesparse/cholmod_gpu_kernels.h
|
||||
include/suitesparse/cholmod_internal.h
|
||||
include/suitesparse/cholmod_io64.h
|
||||
include/suitesparse/cholmod_matrixops.h
|
||||
include/suitesparse/cholmod_modify.h
|
||||
|
@ -30,11 +30,8 @@ include/suitesparse/cholmod_template.h
|
|||
include/suitesparse/colamd.h
|
||||
include/suitesparse/cs.h
|
||||
include/suitesparse/klu.h
|
||||
include/suitesparse/klu_internal.h
|
||||
include/suitesparse/klu_version.h
|
||||
include/suitesparse/ldl.h
|
||||
include/suitesparse/spqr.hpp
|
||||
include/suitesparse/spqrgpu.hpp
|
||||
include/suitesparse/umf_config.h
|
||||
include/suitesparse/umfpack.h
|
||||
include/suitesparse/umfpack_col_to_triplet.h
|
||||
include/suitesparse/umfpack_defaults.h
|
||||
|
@ -68,7 +65,6 @@ include/suitesparse/umfpack_timer.h
|
|||
include/suitesparse/umfpack_transpose.h
|
||||
include/suitesparse/umfpack_triplet_to_col.h
|
||||
include/suitesparse/umfpack_wsolve.h
|
||||
include/ufsparse
|
||||
lib/libamd.so
|
||||
lib/libamd.so.2
|
||||
lib/libamd.so.2.4.6
|
||||
|
@ -90,12 +86,20 @@ lib/libcolamd.so.2.9.6
|
|||
lib/libcxsparse.so
|
||||
lib/libcxsparse.so.3
|
||||
lib/libcxsparse.so.3.2.0
|
||||
lib/libgraphblas.a
|
||||
lib/libgraphblas.so
|
||||
lib/libgraphblas.so.2
|
||||
lib/libgraphblas.so.2.2.2
|
||||
lib/libklu.so
|
||||
lib/libklu.so.1
|
||||
lib/libklu.so.1.3.8
|
||||
lib/libldl.so
|
||||
lib/libldl.so.2
|
||||
lib/libldl.so.2.2.6
|
||||
lib/libmongoose.a
|
||||
lib/libmongoose.so
|
||||
lib/libmongoose.so.2
|
||||
lib/libmongoose.so.2.0.3
|
||||
lib/librbio.so
|
||||
lib/librbio.so.2
|
||||
lib/librbio.so.2.2.6
|
||||
|
@ -108,3 +112,25 @@ lib/libsuitesparseconfig.so.5.4.0
|
|||
lib/libumfpack.so
|
||||
lib/libumfpack.so.5
|
||||
lib/libumfpack.so.5.7.8
|
||||
%%PORTDOCS%%%%DOCSDIR%%/AMD_README.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/AMD_UserGuide.pdf
|
||||
%%PORTDOCS%%%%DOCSDIR%%/BTF_README.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/CAMD_README.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/CAMD_UserGuide.pdf
|
||||
%%PORTDOCS%%%%DOCSDIR%%/CCOLAMD_README.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/CHOLMOD_README.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/CHOLMOD_UserGuide.pdf
|
||||
%%PORTDOCS%%%%DOCSDIR%%/COLAMD_README.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/CXSPARSE_README.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/KLU_README.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/KLU_UserGuide.pdf
|
||||
%%PORTDOCS%%%%DOCSDIR%%/LDL_README.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/RBIO_README.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/SPQR_README.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/SUITESPARSECONFIG_README.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/SuiteSparse_README.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/UMFPACK_QuickStart.pdf
|
||||
%%PORTDOCS%%%%DOCSDIR%%/UMFPACK_README.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/UMFPACK_UserGuide.pdf
|
||||
%%PORTDOCS%%%%DOCSDIR%%/ldl_userguide.pdf
|
||||
%%PORTDOCS%%%%DOCSDIR%%/spqr_user_guide.pdf
|
||||
|
|
Loading…
Reference in a new issue