mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
219 lines
8.3 KiB
Tcl
219 lines
8.3 KiB
Tcl
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
|
|
|
|
PortSystem 1.0
|
|
PortGroup cmake 1.1
|
|
PortGroup github 1.0
|
|
PortGroup mpi 1.0
|
|
|
|
github.setup LLNL sundials 6.7.0 v
|
|
name sundials6
|
|
revision 0
|
|
|
|
categories math devel
|
|
license BSD
|
|
maintainers {mascguy @mascguy} openmaintainer
|
|
|
|
description SUite of Nonlinear and DIfferential/ALgebraic equation Solvers
|
|
long_description SUNDIALS consists of the following five solvers: CVODE\
|
|
solves initial value problems for ordinary differential\
|
|
equation (ODE) systems. CVODES solves ODE systems and\
|
|
includes sensitivity analysis capabilities (forward and\
|
|
adjoint). IDA solves initial value problems for\
|
|
differential-algebraic equation (DAE) systems. IDAS solves\
|
|
DAE systems and includes sensitivity analysis capabilities\
|
|
(forward and adjoint). KINSOL solves nonlinear algebraic\
|
|
systems.
|
|
homepage https://computing.llnl.gov/projects/sundials
|
|
|
|
set ver_major [lindex [split ${version} .] 0]
|
|
github.tarball_from releases
|
|
dist_subdir sundials
|
|
|
|
checksums rmd160 f8d316fe0317987155e8afb796b4d6c668360f86 \
|
|
sha256 5f113a1564a9d2d98ff95249f4871a4c815a05dbb9b8866a82b13ab158c37adb \
|
|
size 91638812
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Path-Related Variables - START
|
|
#------------------------------------------------------------------------------
|
|
|
|
# The "install name," meaning, the subdirectory name for this port.
|
|
# Should correspond to the major version.
|
|
set port_install_name \
|
|
${subport}
|
|
|
|
# Define all of our base paths up-front
|
|
set port_install_prefix \
|
|
${prefix}/libexec/${port_install_name}
|
|
set port_install_cmake \
|
|
${port_install_prefix}/cmake
|
|
set port_install_include \
|
|
${port_install_prefix}/include
|
|
set port_install_lib \
|
|
${port_install_prefix}/lib
|
|
set port_install_doc \
|
|
${prefix}/share/doc/${port_install_name}
|
|
set port_install_examples \
|
|
${prefix}/share/examples/${port_install_name}
|
|
|
|
# Populate CMake options currently available
|
|
cmake.install_prefix \
|
|
${port_install_prefix}
|
|
cmake_share_module_dir \
|
|
${port_install_cmake}
|
|
cmake.install_rpath \
|
|
${port_install_lib}
|
|
|
|
configure.args-append \
|
|
-DCMAKE_INSTALL_LIBEXECDIR=${port_install_prefix} \
|
|
-DCMAKE_INSTALL_BINDIR=${port_install_prefix}/bin \
|
|
-DCMAKE_INSTALL_SBINDIR=${port_install_prefix}/sbin \
|
|
-DCMAKE_INSTALL_SHAREDIR=${port_install_prefix}/share \
|
|
-DCMAKE_INSTALL_INCLUDEDIR=${port_install_include} \
|
|
-DCMAKE_INSTALL_LIBDIR=${port_install_lib} \
|
|
-DCMAKE_INSTALL_NAME_DIR=${port_install_lib}
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Path-Related Variables - END
|
|
#------------------------------------------------------------------------------
|
|
|
|
compiler.cxx_standard \
|
|
2011
|
|
|
|
mpi.setup \
|
|
default \
|
|
require_fortran
|
|
|
|
depends_extract-append \
|
|
path:bin/gnutar:gnutar
|
|
|
|
# Ignore warnings regarding macOS-specific attribs in archive; examples:
|
|
# - gnutar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance'
|
|
# - gnutar: Ignoring unknown extended header keyword 'SCHILY.fflags'
|
|
extract.post_args "| gnutar -x --warning=no-unknown-keyword"
|
|
|
|
depends_lib-append \
|
|
port:SuiteSparse_KLU
|
|
|
|
configure.args-append \
|
|
-DMPI_ENABLE=OFF \
|
|
-DENABLE_LAPACK=ON \
|
|
-DENABLE_KLU=ON \
|
|
-DEXAMPLES_ENABLE_C=OFF \
|
|
-DEXAMPLES_ENABLE_CXX=OFF \
|
|
-DEXAMPLES_ENABLE_F77=OFF \
|
|
-DEXAMPLES_ENABLE_F90=OFF \
|
|
-DKLU_INCLUDE_DIR=${prefix}/include \
|
|
-DKLU_LIBRARY_DIR=${prefix}/lib
|
|
|
|
# from CMakeLists.txt:
|
|
# LAPACK is not compatible with INT64_T precision
|
|
configure.args-append \
|
|
-DSUNDIALS_INDEX_SIZE=32
|
|
|
|
post-extract {
|
|
# fix file perms; tarball contents deny group and world read
|
|
system "find ${worksrcpath} -type d -print0 | xargs -0 chmod a+rx"
|
|
system "find ${worksrcpath} -type f -print0 | xargs -0 chmod a+r"
|
|
}
|
|
|
|
pre-configure {
|
|
if {[mpi_variant_isset]} {
|
|
configure.args-replace \
|
|
-DENABLE_MPI=OFF \
|
|
-DENABLE_MPI=ON
|
|
configure.args-append \
|
|
-DMPI_MPICC=${prefix}/bin/${mpi.cc} \
|
|
-DMPI_MPICXX=${prefix}/bin/${mpi.cxx} \
|
|
-DMPI_MPIF77=${prefix}/bin/${mpi.f77} \
|
|
-DMPI_MPIF90=${prefix}/bin/${mpi.f90} \
|
|
-DMPI_RUN_COMMAND=${prefix}/bin/${mpi.exec}
|
|
}
|
|
}
|
|
|
|
# without this, previously installed sundials headers are found first
|
|
# this can cause problem when upgrading
|
|
# see https://cmake.org/cmake/help/latest/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.html
|
|
configure.args-append \
|
|
-DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON
|
|
|
|
# cmake files (e.g. config/SundialsFortran.cmake) create CMakeLists.txt files
|
|
# to test for functionality (e.g. a Fortran compiler).
|
|
# CMAKE_OSX_SYSROOT is not passed to the functionality test.
|
|
# Because CMAKE_OSX_DEPLOYMENT_TARGET is set as an environment variable,
|
|
# -isysroot is added to the compiler flags.
|
|
# Only Apple Clang compilers support tbd files.
|
|
# See https://trac.macports.org/ticket/53151
|
|
# See https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_SYSROOT.html
|
|
configure.env-append \
|
|
SDKROOT=/
|
|
|
|
variant examples description {Install Examples} {
|
|
set example_langs {C CXX F90 F77}
|
|
foreach lang ${example_langs} {
|
|
configure.args-replace \
|
|
-DEXAMPLES_ENABLE_${lang}=OFF \
|
|
-DEXAMPLES_ENABLE_${lang}=ON
|
|
}
|
|
configure.args-append \
|
|
-DEXAMPLES_INSTALL_PATH=${port_install_examples}
|
|
use_parallel_build no
|
|
}
|
|
|
|
variant accelerate conflicts atlas openblas description {Use Apple Accelerate Libraries} {
|
|
configure.args-append \
|
|
-DBLA_VENDOR=Apple
|
|
}
|
|
|
|
variant atlas conflicts accelerate openblas description {Use MacPorts ATLAS Libraries} {
|
|
depends_lib-append \
|
|
port:atlas
|
|
configure.args-append \
|
|
-DBLA_VENDOR=ATLAS
|
|
|
|
# FindBLAS.cmake and FindLAPACK.cmake do not seem to find MacPorts Atlas properly
|
|
configure.args-append \
|
|
-DBLAS_LIBRARIES=satlas \
|
|
-DLAPACK_LIBRARIES=satlas
|
|
}
|
|
|
|
variant openblas conflicts atlas accelerate description {Use MacPorts OpenBLAS Libraries} {
|
|
depends_lib-append \
|
|
path:lib/libopenblas.dylib:OpenBLAS
|
|
require_active_variants \
|
|
path:lib/libopenblas.dylib:OpenBLAS lapack
|
|
configure.args-append \
|
|
-DBLA_VENDOR=OpenBLAS
|
|
}
|
|
|
|
if {![variant_isset accelerate] && ![variant_isset atlas] && ![variant_isset openblas]} {
|
|
default_variants-append +accelerate
|
|
}
|
|
pre-fetch {
|
|
if {![variant_isset accelerate] && ![variant_isset openblas] && ![variant_isset atlas] } {
|
|
ui_error "You must select either the +accelerate, +atlas, or +openblas variant for linear algebra."
|
|
return -code error "No linear-algebra variant selected."
|
|
}
|
|
}
|
|
|
|
set port_doc_dir ${destroot}${port_install_doc}
|
|
|
|
variant doc description {install pdf documentation} {
|
|
post-destroot {
|
|
xinstall -d ${port_doc_dir}
|
|
foreach f [glob ${worksrcpath}/doc/*] {
|
|
xinstall -m 0644 ${f} ${port_doc_dir}/
|
|
}
|
|
}
|
|
}
|
|
|
|
# LICENSE file is installed in a bad location
|
|
post-destroot {
|
|
xinstall -d ${port_doc_dir}
|
|
move ${destroot}${port_install_include}/sundials/LICENSE ${port_doc_dir}/
|
|
}
|
|
|
|
livecheck.url https://api.github.com/repos/${github.author}/${github.project}/tags?per_page=200
|
|
livecheck.curloptions
|
|
livecheck.regex "\"name\": \"v(${ver_major}\.\[0-9\.\]+)\","
|