Merge pull request #98500 from doronbehar/pkg/octave/sundials

sundials: assert that lapack and blas are compatible
This commit is contained in:
Doron Behar 2020-12-06 13:48:57 +02:00 committed by GitHub
commit 336fd62920
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -7,9 +7,8 @@
, gfortran , gfortran
, suitesparse , suitesparse
, lapackSupport ? true , lapackSupport ? true
, kluSupport ? true }: , kluSupport ? true
}:
assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "sundials"; pname = "sundials";
@ -17,11 +16,14 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
python python
] ++ stdenv.lib.optionals (lapackSupport) [
gfortran
blas
lapack
] ]
++ stdenv.lib.optionals (lapackSupport)
# Check that the same index size is used for both libraries
(assert (blas.isILP64 == lapack.isILP64); [
gfortran
blas
lapack
])
# KLU support is based on Suitesparse. # KLU support is based on Suitesparse.
# It is tested upstream according to the section 1.1.4 of # It is tested upstream according to the section 1.1.4 of
# [INSTALL_GUIDE.pdf](https://raw.githubusercontent.com/LLNL/sundials/master/INSTALL_GUIDE.pdf) # [INSTALL_GUIDE.pdf](https://raw.githubusercontent.com/LLNL/sundials/master/INSTALL_GUIDE.pdf)
@ -47,17 +49,22 @@ stdenv.mkDerivation rec {
cmakeFlags = [ cmakeFlags = [
"-DEXAMPLES_INSTALL_PATH=${placeholder "out"}/share/examples" "-DEXAMPLES_INSTALL_PATH=${placeholder "out"}/share/examples"
] ++ stdenv.lib.optionals (lapackSupport) [ ] ++ stdenv.lib.optionals (lapackSupport) [
"-DSUNDIALS_INDEX_TYPE=int32_t"
"-DLAPACK_ENABLE=ON" "-DLAPACK_ENABLE=ON"
"-DLAPACK_LIBRARIES=${lapack}/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}" "-DLAPACK_LIBRARIES=${lapack}/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}"
] ++ stdenv.lib.optionals (kluSupport) [ ] ++ stdenv.lib.optionals (kluSupport) [
"-DKLU_ENABLE=ON" "-DKLU_ENABLE=ON"
"-DKLU_INCLUDE_DIR=${suitesparse.dev}/include" "-DKLU_INCLUDE_DIR=${suitesparse.dev}/include"
"-DKLU_LIBRARY_DIR=${suitesparse}/lib" "-DKLU_LIBRARY_DIR=${suitesparse}/lib"
]; ] ++ stdenv.lib.optionals (lapackSupport && !lapack.isILP64) [
# Use the correct index type according to lapack which is supposed to be
# the same index type compatible with blas, thanks to the assertion of
# buildInputs
"-DSUNDIALS_INDEX_TYPE=int32_t"
]
;
doCheck = true; doCheck = true;
checkPhase = "make test"; checkTarget = "test";
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Suite of nonlinear differential/algebraic equation solvers"; description = "Suite of nonlinear differential/algebraic equation solvers";