aboutsummaryrefslogtreecommitdiff
path: root/math/sundials
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2017-12-30 08:15:36 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2017-12-30 08:15:36 +0000
commitaa62378ce065850800eb81aa2f0a597d9f4c6662 (patch)
tree18883a13ab35d57c5348d06395b14a7d4e7571b3 /math/sundials
parent5860b1bf3dd57443acc9713be54b87ce9e200ecb (diff)
downloadports-aa62378ce065850800eb81aa2f0a597d9f4c6662.tar.gz
ports-aa62378ce065850800eb81aa2f0a597d9f4c6662.zip
Notes
Diffstat (limited to 'math/sundials')
-rw-r--r--math/sundials/Makefile32
-rw-r--r--math/sundials/files/patch-config_SundialsSuperLUMT.cmake11
-rw-r--r--math/sundials/pkg-plist9
3 files changed, 32 insertions, 20 deletions
diff --git a/math/sundials/Makefile b/math/sundials/Makefile
index 48c5d5368d2f..3b0e977f55ab 100644
--- a/math/sundials/Makefile
+++ b/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 @@ EXAMPLES_CMAKE_ON= -DEXAMPLES_INSTALL_PATH=${EXAMPLESDIR}
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,33 +50,24 @@ LAPACK_CMAKE_ON= -DSUNDIALS_INDEX_TYPE:STRING=int32_t \
-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 <bsd.port.options.mk>
-
-.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
diff --git a/math/sundials/files/patch-config_SundialsSuperLUMT.cmake b/math/sundials/files/patch-config_SundialsSuperLUMT.cmake
new file mode 100644
index 000000000000..2b0a1670ab19
--- /dev/null
+++ b/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.
diff --git a/math/sundials/pkg-plist b/math/sundials/pkg-plist
index 79301da778d0..e280d843babd 100644
--- a/math/sundials/pkg-plist
+++ b/math/sundials/pkg-plist
@@ -33,6 +33,7 @@ include/kinsol/kinsol_bbdpre.h
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_iterative.h
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_spbcgs.h
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_idas.so.%%SHLY3%%
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_sunlinsolspgmr.so.%%SHLX3%%
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%%