Index: head/math/sundials/Makefile =================================================================== --- head/math/sundials/Makefile +++ head/math/sundials/Makefile @@ -2,6 +2,7 @@ PORTNAME= sundials DISTVERSION= 3.1.0 +PORTREVISION= 1 CATEGORIES= math MASTER_SITES= https://computation.llnl.gov/projects/sundials/download/ @@ -39,9 +40,9 @@ HYPRE_CMAKE_BOOL= HYPRE_ENABLE HYPRE_CMAKE_ON= -DHYPRE_INCLUDE_DIR=${LOCALBASE}/include \ - -DHYPRE_LIBRARY_DIR=${LOCALBASE}/lib \ - -DMPI_ENABLE:BOOL=ON + -DHYPRE_LIBRARY_DIR=${LOCALBASE}/lib HYPRE_LIB_DEPENDS= libHYPRE.so:science/hypre +HYPRE_IMPLIES= MPI LAPACK_USES= blaslapack:openblas fortran LAPACK_CMAKE_BOOL= LAPACK_ENABLE @@ -49,32 +50,23 @@ -DFREEBSD_GCC_DIR:STRING=${LOCALBASE}/lib/gcc${GCC_DEFAULT:S/.//} # assumes that fortran:gcc is used MPI_CMAKE_ON= -DMPI_ENABLE:BOOL=ON +MPI_LIB_DEPENDS= libmpich.so:net/mpich2 PETSC_CMAKE_BOOL= PETSC_ENABLE PETSC_CMAKE_ON= -DPETSC_INCLUDE_DIR=${LOCALBASE}/include \ - -DPETSC_LIBRARY_DIR=${LOCALBASE}/lib \ - -DMPI_ENABLE:BOOL=ON + -DPETSC_LIBRARY_DIR=${LOCALBASE}/lib PETSC_LIB_DEPENDS= libpetsc.so:science/PETSc +PETSC_IMPLIES= MPI -SUPERLU_CMAKE_BOOL= SUPERLUMT_ENABLE -SUPERLU_CMAKE_ON= -DSUPERLUMT_INCLUDE_DIR=${LOCALBASE}/include/superlu_mt \ +SUPERLUMT_CMAKE_BOOL= SUPERLUMT_ENABLE +SUPERLUMT_CMAKE_ON= -DSUPERLUMT_INCLUDE_DIR=${LOCALBASE}/include/superlu_mt \ -DSUPERLUMT_LIBRARY_DIR=${LOCALBASE}/lib \ - -DSUPERLUMT_THREAD_TYPE=Pthread -SUPERLUMT_DEPENDS= libsuperlu_mt_PTHREAD.so:math/superlu_mt + -DSUPERLUMT_THREAD_TYPE=Pthread \ + -DFREEBSD_GCC_DIR:STRING=${LOCALBASE}/lib/gcc${GCC_DEFAULT:S/.//} # assumes that fortran:gcc is used +SUPERLUMT_LIB_DEPENDS= libsuperlu_mt_PTHREAD.so:math/superlu_mt +SUPERLUMT_PREVENTS= LAPACK # LAPACK requires SUNDIALS_INDEX_TYPE=int32, and SUPERLUMT requires SUNDIALS_INDEX_TYPE=int64 PORTEXAMPLES= * - -.include - -.if ${PORT_OPTIONS:MMPI} || ${PORT_OPTIONS:MHYPRE} || ${PORT_OPTIONS:MPETSC} -LIB_DEPENDS+= libmpich.so:net/mpich2 - -PLIST_FILES= include/nvector/nvector_parallel.h \ - include/sundials/sundials_mpi_types.h \ - lib/libsundials_nvecparallel.so \ - lib/libsundials_nvecparallel.so.${DISTVERSION:R:R} \ - lib/libsundials_nvecparallel.so.${DISTVERSION} -.endif post-install: @${RM} ${STAGEDIR}${PREFIX}/LICENSE Index: head/math/sundials/files/patch-config_SundialsSuperLUMT.cmake =================================================================== --- head/math/sundials/files/patch-config_SundialsSuperLUMT.cmake +++ head/math/sundials/files/patch-config_SundialsSuperLUMT.cmake @@ -0,0 +1,11 @@ +--- config/SundialsSuperLUMT.cmake.orig 2017-12-28 04:44:39 UTC ++++ config/SundialsSuperLUMT.cmake +@@ -61,7 +61,7 @@ if(SUPERLUMT_LIBRARY AND SUPERLUMT_LIBRA + "}\n") + + # Attempt to link the "ltest" executable +- try_compile(LTEST_OK ${SUPERLUMT_TEST_DIR} ${SUPERLUMT_TEST_DIR} ltest OUTPUT_VARIABLE MY_OUTPUT) ++ try_compile(LTEST_OK ${SUPERLUMT_TEST_DIR} ${SUPERLUMT_TEST_DIR} LINK_DIRECTORIES ${FREEBSD_GCC_DIR} ltest OUTPUT_VARIABLE MY_OUTPUT) + + # To ensure we do not use stuff from the previous attempts, + # we must remove the CMakeFiles directory. Index: head/math/sundials/pkg-plist =================================================================== --- head/math/sundials/pkg-plist +++ head/math/sundials/pkg-plist @@ -33,6 +33,7 @@ include/kinsol/kinsol_direct.h include/kinsol/kinsol_impl.h include/kinsol/kinsol_spils.h +%%MPI%%include/nvector/nvector_parallel.h %%HYPRE%%include/nvector/nvector_parhyp.h %%PETSC%%include/nvector/nvector_petsc.h include/nvector/nvector_pthreads.h @@ -48,6 +49,7 @@ include/sundials/sundials_linearsolver.h include/sundials/sundials_math.h include/sundials/sundials_matrix.h +%%MPI%%include/sundials/sundials_mpi_types.h include/sundials/sundials_nvector.h include/sundials/sundials_pcg.h include/sundials/sundials_sparse.h @@ -66,6 +68,7 @@ include/sunlinsol/sunlinsol_spfgmr.h include/sunlinsol/sunlinsol_spgmr.h include/sunlinsol/sunlinsol_sptfqmr.h +%%SUPERLUMT%%include/sunlinsol/sunlinsol_superlumt.h include/sunmatrix/sunmatrix_band.h include/sunmatrix/sunmatrix_dense.h include/sunmatrix/sunmatrix_sparse.h @@ -87,6 +90,9 @@ lib/libsundials_kinsol.so lib/libsundials_kinsol.so.%%SHL1%% lib/libsundials_kinsol.so.%%SHL3%% +%%MPI%%lib/libsundials_nvecparallel.so +%%MPI%%lib/libsundials_nvecparallel.so.%%SHL1%% +%%MPI%%lib/libsundials_nvecparallel.so.%%SHL3%% %%HYPRE%%lib/libsundials_nvecparhyp.so %%HYPRE%%lib/libsundials_nvecparhyp.so.%%SHL1%% %%HYPRE%%lib/libsundials_nvecparhyp.so.%%SHL3%% @@ -126,6 +132,9 @@ lib/libsundials_sunlinsolsptfqmr.so lib/libsundials_sunlinsolsptfqmr.so.%%SHLX1%% lib/libsundials_sunlinsolsptfqmr.so.%%SHLX3%% +%%SUPERLUMT%%lib/libsundials_sunlinsolsuperlumt.so +%%SUPERLUMT%%lib/libsundials_sunlinsolsuperlumt.so.%%SHLX1%% +%%SUPERLUMT%%lib/libsundials_sunlinsolsuperlumt.so.%%SHLX3%% lib/libsundials_sunmatrixband.so lib/libsundials_sunmatrixband.so.%%SHLX1%% lib/libsundials_sunmatrixband.so.%%SHLX3%%