mirror of
https://github.com/yann64/haikuports.git
synced 2026-05-06 23:18:58 +02:00
231 lines
13 KiB
Bash
231 lines
13 KiB
Bash
SUMMARY="Suite of nonlinear solvers"
|
|
DESCRIPTION="SUNDIALS is a family of software packages implemented with the \
|
|
goal of providing robust time integrators and nonlinear solvers that can \
|
|
easily be incorporated into existing simulation codes. The primary design \
|
|
goals are to require minimal information from the user, allow users to easily \
|
|
supply their own data structures underneath the packages, and allow for easy \
|
|
incorporation of user-supplied linear solvers and preconditioners. The \
|
|
various packages share many subordinate modules and are organized as a \
|
|
family with a directory structure that exploits sharing common functionality."
|
|
HOMEPAGE="https://computation.llnl.gov/projects/sundials"
|
|
COPYRIGHT="2002-2019, Lawrence Livermore National Security and Southern Methodist University"
|
|
LICENSE="BSD (3-clause)"
|
|
REVISION="1"
|
|
SOURCE_URI="https://github.com/LLNL/sundials/archive/refs/tags/v$portVersion.tar.gz"
|
|
CHECKSUM_SHA256="30f3deb6a59d840eb9b91fa77e9a4a7c6026ba1bb63fd65e9d57c786d1c8725c"
|
|
SOURCE_FILENAME="sundials-v$portVersion.tar.gz"
|
|
|
|
ARCHITECTURES="all !x86_gcc2 ?x86"
|
|
SECONDARY_ARCHITECTURES="x86"
|
|
|
|
libsundials_arkodeVersion="5.5.1"
|
|
libsundials_arkodeVersionCompat="$libsundials_arkodeVersion compat >= ${libsundials_arkodeVersion%%.*}"
|
|
libsundials_cvodesVersion="$portVersion"
|
|
libsundials_cvodesVersionCompat="$libsundials_cvodesVersion compat >= ${libsundials_cvodesVersion%%.*}"
|
|
libsundials_cvodeVersion="$portVersion"
|
|
libsundials_cvodeVersionCompat="$libsundials_cvodeVersion compat >= ${libsundials_cvodeVersion%%.*}"
|
|
libsundials_genericVersion="$portVersion"
|
|
libsundials_genericVersionCompat="$libsundials_genericVersion compat >= ${libsundials_genericVersion%%.*}"
|
|
libsundials_idasVersion="5.5.1"
|
|
libsundials_idasVersionCompat="$libsundials_idasVersion compat >= ${libsundials_idasVersion%%.*}"
|
|
libsundials_idaVersion="$portVersion"
|
|
libsundials_idaVersionCompat="$libsundials_idaVersion compat >= ${libsundials_idaVersion%%.*}"
|
|
libsundials_kinsolVersion="$portVersion"
|
|
libsundials_kinsolVersionCompat="$libsundials_kinsolVersion compat >= ${libsundials_kinsolVersion%%.*}"
|
|
libsundials_nvecmanyvectorVersion="$portVersion"
|
|
libsundials_nvecmanyvectorVersionCompat="$libsundials_nvecmanyvectorVersion compat >= ${libsundials_nvecmanyvectorVersion%%.*}"
|
|
libsundials_nvecpthreadsVersion="6.5.1"
|
|
libsundials_nvecpthreadsVersionCompat="$libsundials_nvecpthreadsVersion compat >= ${libsundials_nvecpthreadsVersion%%.*}"
|
|
libsundials_nvecserialVersion="$portVersion"
|
|
libsundials_nvecserialVersionCompat="$libsundials_nvecserialVersion compat >= ${libsundials_nvecserialVersion%%.*}"
|
|
libsundials_sunlinsolbandVersion="4.5.1"
|
|
libsundials_sunlinsolbandVersionCompat="$libsundials_sunlinsolbandVersion compat >= ${libsundials_sunlinsolbandVersion%%.*}"
|
|
libsundials_sunlinsoldenseVersion="4.5.1"
|
|
libsundials_sunlinsoldenseVersionCompat="$libsundials_sunlinsoldenseVersion compat >= ${libsundials_sunlinsoldenseVersion%%.*}"
|
|
libsundials_sunlinsollapackbandVersion="4.5.1"
|
|
libsundials_sunlinsollapackbandVersionCompat="$libsundials_sunlinsollapackbandVersion compat >= ${libsundials_sunlinsollapackbandVersion%%.*}"
|
|
libsundials_sunlinsollapackdenseVersion="4.5.1"
|
|
libsundials_sunlinsollapackdenseVersionCompat="$libsundials_sunlinsollapackdenseVersion compat >= ${libsundials_sunlinsollapackdenseVersion%%.*}"
|
|
libsundials_sunlinsolpcgVersion="4.5.1"
|
|
libsundials_sunlinsolpcgVersionCompat="$libsundials_sunlinsolpcgVersion compat >= ${libsundials_sunlinsolpcgVersion%%.*}"
|
|
libsundials_sunlinsolspbcgsVersion="4.5.1"
|
|
libsundials_sunlinsolspbcgsVersionCompat="$libsundials_sunlinsolspbcgsVersion compat >= ${libsundials_sunlinsolspbcgsVersion%%.*}"
|
|
libsundials_sunlinsolspfgmrVersion="4.5.1"
|
|
libsundials_sunlinsolspfgmrVersionCompat="$libsundials_sunlinsolspfgmrVersion compat >= ${libsundials_sunlinsolspfgmrVersion%%.*}"
|
|
libsundials_sunlinsolspgmrVersion="4.5.1"
|
|
libsundials_sunlinsolspgmrVersionCompat="$libsundials_sunlinsolspgmrVersion compat >= ${libsundials_sunlinsolspgmrVersion%%.*}"
|
|
libsundials_sunlinsolsptfqmrVersion="4.5.1"
|
|
libsundials_sunlinsolsptfqmrVersionCompat="$libsundials_sunlinsolsptfqmrVersion compat >= ${libsundials_sunlinsolsptfqmrVersion%%.*}"
|
|
libsundials_sunmatrixbandVersion="4.5.1"
|
|
libsundials_sunmatrixbandVersionCompat="$libsundials_sunmatrixbandVersion compat >= ${libsundials_sunmatrixbandVersion%%.*}"
|
|
libsundials_sunmatrixdenseVersion="4.5.1"
|
|
libsundials_sunmatrixdenseVersionCompat="$libsundials_sunmatrixdenseVersion compat >= ${libsundials_sunmatrixdenseVersion%%.*}"
|
|
libsundials_sunmatrixsparseVersion="4.5.1"
|
|
libsundials_sunmatrixsparseVersionCompat="$libsundials_sunmatrixsparseVersion compat >= ${libsundials_sunmatrixsparseVersion%%.*}"
|
|
libsundials_sunnonlinsolfixedpointVersion="3.5.1"
|
|
libsundials_sunnonlinsolfixedpointVersionCompat="$libsundials_sunnonlinsolfixedpointVersion compat >= ${libsundials_sunnonlinsolfixedpointVersion%%.*}"
|
|
libsundials_sunnonlinsolnewtonVersion="3.5.1"
|
|
libsundials_sunnonlinsolnewtonVersionCompat="$libsundials_sunnonlinsolnewtonVersion compat >= ${libsundials_sunnonlinsolnewtonVersion%%.*}"
|
|
|
|
PROVIDES="
|
|
sundials$secondaryArchSuffix = $portVersion
|
|
lib:libsundials_arkode$secondaryArchSuffix = $libsundials_arkodeVersionCompat
|
|
lib:libsundials_cvode$secondaryArchSuffix = $libsundials_cvodeVersionCompat
|
|
lib:libsundials_cvodes$secondaryArchSuffix = $libsundials_cvodesVersionCompat
|
|
lib:libsundials_generic$secondaryArchSuffix = $libsundials_genericVersionCompat
|
|
lib:libsundials_ida$secondaryArchSuffix = $libsundials_idaVersionCompat
|
|
lib:libsundials_idas$secondaryArchSuffix = $libsundials_idasVersionCompat
|
|
lib:libsundials_kinsol$secondaryArchSuffix = $libsundials_kinsolVersionCompat
|
|
lib:libsundials_nvecmanyvector$secondaryArchSuffix = $libsundials_nvecmanyvectorVersionCompat
|
|
lib:libsundials_nvecpthreads$secondaryArchSuffix = $libsundials_nvecpthreadsVersionCompat
|
|
lib:libsundials_nvecserial$secondaryArchSuffix = $libsundials_nvecserialVersionCompat
|
|
lib:libsundials_sunlinsolband$secondaryArchSuffix = $libsundials_sunlinsolbandVersionCompat
|
|
lib:libsundials_sunlinsoldense$secondaryArchSuffix = $libsundials_sunlinsoldenseVersionCompat
|
|
lib:libsundials_sunlinsollapackband$secondaryArchSuffix = $libsundials_sunlinsollapackbandVersionCompat
|
|
lib:libsundials_sunlinsollapackdense$secondaryArchSuffix = $libsundials_sunlinsollapackdenseVersionCompat
|
|
lib:libsundials_sunlinsolpcg$secondaryArchSuffix = $libsundials_sunlinsolpcgVersionCompat
|
|
lib:libsundials_sunlinsolspbcgs$secondaryArchSuffix = $libsundials_sunlinsolspbcgsVersionCompat
|
|
lib:libsundials_sunlinsolspfgmr$secondaryArchSuffix = $libsundials_sunlinsolspfgmrVersionCompat
|
|
lib:libsundials_sunlinsolspgmr$secondaryArchSuffix = $libsundials_sunlinsolspgmrVersionCompat
|
|
lib:libsundials_sunlinsolsptfqmr$secondaryArchSuffix = $libsundials_sunlinsolsptfqmrVersionCompat
|
|
lib:libsundials_sunmatrixband$secondaryArchSuffix = $libsundials_sunmatrixbandVersionCompat
|
|
lib:libsundials_sunmatrixdense$secondaryArchSuffix = $libsundials_sunmatrixdenseVersionCompat
|
|
lib:libsundials_sunmatrixsparse$secondaryArchSuffix = $libsundials_sunmatrixsparseVersionCompat
|
|
lib:libsundials_sunnonlinsolfixedpoint$secondaryArchSuffix = $libsundials_sunnonlinsolfixedpointVersionCompat
|
|
lib:libsundials_sunnonlinsolnewton$secondaryArchSuffix = $libsundials_sunnonlinsolnewtonVersionCompat
|
|
"
|
|
REQUIRES="
|
|
haiku$secondaryArchSuffix
|
|
lib:libgfortran$secondaryArchSuffix
|
|
lib:liblapack$secondaryArchSuffix
|
|
lib:libopenblas$secondaryArchSuffix
|
|
"
|
|
|
|
PROVIDES_devel="
|
|
sundials${secondaryArchSuffix}_devel = $portVersion
|
|
devel:libsundials_arkode$secondaryArchSuffix = $libsundials_arkodeVersionCompat
|
|
devel:libsundials_cvode$secondaryArchSuffix = $libsundials_cvodeVersionCompat
|
|
devel:libsundials_cvodes$secondaryArchSuffix = $libsundials_cvodesVersionCompat
|
|
devel:libsundials_generic$secondaryArchSuffix = $libsundials_genericVersionCompat
|
|
devel:libsundials_ida$secondaryArchSuffix = $libsundials_idaVersionCompat
|
|
devel:libsundials_idas$secondaryArchSuffix = $libsundials_idasVersionCompat
|
|
devel:libsundials_kinsol$secondaryArchSuffix = $libsundials_kinsolVersionCompat
|
|
devel:libsundials_nvecmanyvector$secondaryArchSuffix = $libsundials_nvecmanyvectorVersionCompat
|
|
devel:libsundials_nvecpthreads$secondaryArchSuffix = $libsundials_nvecpthreadsVersionCompat
|
|
devel:libsundials_nvecserial$secondaryArchSuffix = $libsundials_nvecserialVersionCompat
|
|
devel:libsundials_sunlinsolband$secondaryArchSuffix = $libsundials_sunlinsolbandVersionCompat
|
|
devel:libsundials_sunlinsoldense$secondaryArchSuffix = $libsundials_sunlinsoldenseVersionCompat
|
|
devel:libsundials_sunlinsollapackband$secondaryArchSuffix = $libsundials_sunlinsollapackbandVersionCompat
|
|
devel:libsundials_sunlinsollapackdense$secondaryArchSuffix = $libsundials_sunlinsollapackdenseVersionCompat
|
|
devel:libsundials_sunlinsolpcg$secondaryArchSuffix = $libsundials_sunlinsolpcgVersionCompat
|
|
devel:libsundials_sunlinsolspbcgs$secondaryArchSuffix = $libsundials_sunlinsolspbcgsVersionCompat
|
|
devel:libsundials_sunlinsolspfgmr$secondaryArchSuffix = $libsundials_sunlinsolspfgmrVersionCompat
|
|
devel:libsundials_sunlinsolspgmr$secondaryArchSuffix = $libsundials_sunlinsolspgmrVersionCompat
|
|
devel:libsundials_sunlinsolsptfqmr$secondaryArchSuffix = $libsundials_sunlinsolsptfqmrVersionCompat
|
|
devel:libsundials_sunmatrixband$secondaryArchSuffix = $libsundials_sunmatrixbandVersionCompat
|
|
devel:libsundials_sunmatrixdense$secondaryArchSuffix = $libsundials_sunmatrixdenseVersionCompat
|
|
devel:libsundials_sunmatrixsparse$secondaryArchSuffix = $libsundials_sunmatrixsparseVersionCompat
|
|
devel:libsundials_sunnonlinsolfixedpoint$secondaryArchSuffix = $libsundials_sunnonlinsolfixedpointVersionCompat
|
|
devel:libsundials_sunnonlinsolnewton$secondaryArchSuffix = $libsundials_sunnonlinsolnewtonVersionCompat
|
|
"
|
|
REQUIRES_devel="
|
|
sundials$secondaryArchSuffix == $portVersion base
|
|
"
|
|
|
|
BUILD_REQUIRES="
|
|
haiku${secondaryArchSuffix}_devel
|
|
devel:libgfortran$secondaryArchSuffix
|
|
devel:liblapack$secondaryArchSuffix
|
|
devel:libopenblas$secondaryArchSuffix
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
cmd:cmake
|
|
cmd:gfortran$secondaryArchSuffix
|
|
cmd:g++$secondaryArchSuffix
|
|
cmd:make
|
|
cmd:pkg_config$secondaryArchSuffix
|
|
"
|
|
|
|
defineDebugInfoPackage sundials$secondaryArchSuffix \
|
|
"$libDir"/libsundials_arkode.so.$libsundials_arkodeVersion \
|
|
"$libDir"/libsundials_cvode.so.$libsundials_cvodeVersion \
|
|
"$libDir"/libsundials_cvodes.so.$libsundials_cvodesVersion \
|
|
"$libDir"/libsundials_generic.so.$libsundials_genericVersion \
|
|
"$libDir"/libsundials_ida.so.$libsundials_idaVersion \
|
|
"$libDir"/libsundials_idas.so.$libsundials_idasVersion \
|
|
"$libDir"/libsundials_kinsol.so.$libsundials_kinsolVersion \
|
|
"$libDir"/libsundials_nvecmanyvector.so.$libsundials_nvecmanyvectorVersion \
|
|
"$libDir"/libsundials_nvecpthreads.so.$libsundials_nvecpthreadsVersion \
|
|
"$libDir"/libsundials_nvecserial.so.$libsundials_nvecserialVersion \
|
|
"$libDir"/libsundials_sunlinsolband.so.$libsundials_sunlinsolbandVersion \
|
|
"$libDir"/libsundials_sunlinsoldense.so.$libsundials_sunlinsoldenseVersion \
|
|
"$libDir"/libsundials_sunlinsollapackband.so.$libsundials_sunlinsollapackbandVersion \
|
|
"$libDir"/libsundials_sunlinsollapackdense.so.$libsundials_sunlinsollapackdenseVersion \
|
|
"$libDir"/libsundials_sunlinsolpcg.so.$libsundials_sunlinsolpcgVersion \
|
|
"$libDir"/libsundials_sunlinsolspbcgs.so.$libsundials_sunlinsolspbcgsVersion \
|
|
"$libDir"/libsundials_sunlinsolspfgmr.so.$libsundials_sunlinsolspfgmrVersion \
|
|
"$libDir"/libsundials_sunlinsolspgmr.so.$libsundials_sunlinsolspgmrVersion \
|
|
"$libDir"/libsundials_sunlinsolsptfqmr.so.$libsundials_sunlinsolsptfqmrVersion \
|
|
"$libDir"/libsundials_sunmatrixband.so.$libsundials_sunmatrixbandVersion \
|
|
"$libDir"/libsundials_sunmatrixdense.so.$libsundials_sunmatrixdenseVersion \
|
|
"$libDir"/libsundials_sunmatrixsparse.so.$libsundials_sunmatrixsparseVersion \
|
|
"$libDir"/libsundials_sunnonlinsolfixedpoint.so.$libsundials_sunnonlinsolfixedpointVersion \
|
|
"$libDir"/libsundials_sunnonlinsolnewton.so.$libsundials_sunnonlinsolnewtonVersion
|
|
|
|
BUILD()
|
|
{
|
|
cmake -Bbuild -S. -DCMAKE_BUILD_TYPE=Release \
|
|
-DEXAMPLES_ENABLED=OFF \
|
|
-DF77_INTERFACE_ENABLE=ON \
|
|
-DPTHREAD_ENABLE=ON \
|
|
-DLAPACK_ENABLE=ON \
|
|
$cmakeDirArgs
|
|
make -C build $jobArgs
|
|
}
|
|
|
|
INSTALL()
|
|
{
|
|
make -C build install
|
|
|
|
# remove static libraries
|
|
rm -f $libDir/*.a
|
|
|
|
mkdir -p $developDocDir
|
|
mv $prefix/examples/* $developDocDir
|
|
rmdir $prefix/examples/
|
|
|
|
prepareInstalledDevelLibs libsundials_arkode \
|
|
libsundials_cvode \
|
|
libsundials_cvodes \
|
|
libsundials_ida \
|
|
libsundials_generic \
|
|
libsundials_idas \
|
|
libsundials_kinsol \
|
|
libsundials_nvecmanyvector \
|
|
libsundials_nvecpthreads \
|
|
libsundials_nvecserial \
|
|
libsundials_sunlinsolband \
|
|
libsundials_sunlinsoldense \
|
|
libsundials_sunlinsollapackband \
|
|
libsundials_sunlinsollapackdense \
|
|
libsundials_sunlinsolpcg \
|
|
libsundials_sunlinsolspbcgs \
|
|
libsundials_sunlinsolspfgmr \
|
|
libsundials_sunlinsolspgmr \
|
|
libsundials_sunlinsolsptfqmr \
|
|
libsundials_sunmatrixband \
|
|
libsundials_sunmatrixdense \
|
|
libsundials_sunmatrixsparse \
|
|
libsundials_sunnonlinsolfixedpoint \
|
|
libsundials_sunnonlinsolnewton
|
|
|
|
packageEntries devel \
|
|
$developDir \
|
|
$libDir/cmake
|
|
}
|
|
|
|
TEST()
|
|
{
|
|
make -C build test
|
|
}
|