freebsd-ports/math/suitesparse/Makefile
Ganael LAPLANCHE 34fdd4dc58 Introduce devel/onetbb and mark devel/tbb as legacy
Intel oneAPI tbb 2021.1 (onetbb) has been released[1][2] and has deprecated
several interfaces over tbb 2020, breaking most dependent ports.

Old tbb 2020 will be kept for a certain time to allow transition but will be
removed in a near future as it CONFLICTS with devel/onetbb. New ports should
now use devel/onetbb instead of devel/tbb.

We tried to move a maximum number of dependent ports to devel/onetbb (or
disable dependency when not possible), but some of them still remain stuck
to devel/tbb. Remaining ones have not been identified as major dependencies
themselves and will be fixed as soon as updates are available from upstream.

PR:		252648, 252688 [3], 252683 [4], 252651 [5], 252690 [3], 252693 [3],
	252695 [3], 252696 [3], 252786 [3], 252649, 252868 [6], 252870 [5],
	252684 [7], 252785 [7]
Approved by:	yuri [3], jwb [4], thierry [5], FreeBSD@Shaneware.biz [6],
	maintainer timeout [7]

[1] https://software.intel.com/content/www/us/en/develop/articles/intel-oneapi-threading-building-blocks-release-notes.html
[2] https://software.intel.com/content/www/us/en/develop/articles/tbb-revamp.html
2021-02-19 15:14:46 +00:00

101 lines
2.8 KiB
Makefile

# Created by: Maho Nakata <maho@FreeBSD.org>
# $FreeBSD$
PORTNAME= suitesparse
PORTVERSION= 5.8.1
DISTVERSIONPREFIX= v
PORTREVISION= 1
CATEGORIES= math
MAINTAINER= fortran@FreeBSD.org
COMMENT= Set of packages for sparse matrix calculation
LICENSE= GPLv2 LGPL21
LICENSE_COMB= dual
LIB_DEPENDS= libgmp.so:math/gmp \
libmpfr.so:math/mpfr \
libmetis.so:math/metis
USE_GITHUB= yes
GH_ACCOUNT= DrTimothyAldenDavis
GH_PROJECT= SuiteSparse
USES= cmake:insource fortran gmake localbase:ldflags
USE_LDCONFIG= yes
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}" \
-DBUILD_GRB_STATIC_LIBRARY:BOOL=ON
LDFLAGS+= -L${WRKSRC}/lib # prevent linking with shared libs from the preinstalled older versions
CONFLICTS_INSTALL= mongoose plinkseq # bin/mongoose
OPTIONS_DEFINE= DEMOS DOCS OPENMP # TBB
OPTIONS_EXCLUDE_aarch64= OPENMP
OPTIONS_RADIO= BLAS
OPTIONS_RADIO_BLAS= ATLAS GOTOBLAS NETLIB OPENBLAS
OPTIONS_DEFAULT= OPENBLAS OPENMP TBB
ATLAS_USES= blaslapack:atlas
GOTOBLAS_DESC= Goto blas implementation
GOTOBLAS_USES= blaslapack:gotoblas
NETLIB_USES= blaslapack:netlib
OPENBLAS_USES= blaslapack:openblas
OPENMP_MAKE_ENV_OFF= CFOPENMP=
.if !exists(/usr/include/omp.h)
# XXX ports/199603: LLVM openmp in base doesn't support armv6, armv7 yet
OPENMP_VARS= OPENMP=gcc-
.endif
DEMOS_DESC= Install the demonstrations
DEMOS_ALL_TARGET= go
DEMOS_ALL_TARGET_OFF= library
TBB_DESC= Intel threading building blocks
TBB_LIB_DEPENDS= libtbb.so:devel/tbb
TBB_MAKE_ENV= TBB="-ltbb" SPQR_CONFIG="-DHAVE_TBB"
TBB_BROKEN= oneTBB doesn't provide tbb/task_scheduler_init.h any more, see PR 252651
MODULES= AMD CAMD CCOLAMD CHOLMOD COLAMD CSparse CXSparse_newfiles \
CXSparse GPUQREngine KLU LDL RBio SPQR UMFPACK
.include <bsd.port.options.mk>
.if ${ARCH} == i386
# See PR 230888 : Missing 64 bit atomic functions for i386
USE_GCC= yes
LDFLAGS+= -latomic
.elif defined(PPC_ABI) && ${PPC_ABI} == ELFv1
USE_GCC= yes
.else
USES+= compiler:c++11-lib
.endif
post-extract:
${RM} -r ${WRKSRC}/metis-*
post-patch-OPENMP-off:
@${REINPLACE_CMD} -e '/find_package.*OpenMP/d' \
${WRKSRC}/GraphBLAS/CMakeLists.txt
pre-configure:
.for m in ${MODULES}
${REINPLACE_CMD} -e 's|-I../../include|-I${STAGEDIR}${PREFIX}/include/suitesparse|;\
s|-lsuitesparseconfig|-lsuitesparseconfig -L${LOCALBASE}/lib|' \
${WRKSRC}/${m}/Demo/Makefile
.endfor
do-configure: # skip USES=cmake
post-install:
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/* ${STAGEDIR}${PREFIX}/lib/*.so
.include <bsd.port.mk>