Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Sep 2019 08:17:44 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r513331 - head/math/suitesparse
Message-ID:  <201909300817.x8U8HiOk038620@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Mon Sep 30 08:17:43 2019
New Revision: 513331
URL: https://svnweb.freebsd.org/changeset/ports/513331

Log:
  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

Modified:
  head/math/suitesparse/Makefile   (contents, props changed)
  head/math/suitesparse/pkg-plist   (contents, props changed)

Modified: head/math/suitesparse/Makefile
==============================================================================
--- head/math/suitesparse/Makefile	Mon Sep 30 08:08:25 2019	(r513330)
+++ head/math/suitesparse/Makefile	Mon Sep 30 08:17:43 2019	(r513331)
@@ -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 m
 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>

Modified: head/math/suitesparse/pkg-plist
==============================================================================
--- head/math/suitesparse/pkg-plist	Mon Sep 30 08:08:25 2019	(r513330)
+++ head/math/suitesparse/pkg-plist	Mon Sep 30 08:17:43 2019	(r513331)
@@ -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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201909300817.x8U8HiOk038620>