diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/science/math/scalapack/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/science/math/scalapack/default.nix | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/nixpkgs/pkgs/development/libraries/science/math/scalapack/default.nix b/nixpkgs/pkgs/development/libraries/science/math/scalapack/default.nix index 3b1fb98a42ea..9a7374f4f49c 100644 --- a/nixpkgs/pkgs/development/libraries/science/math/scalapack/default.nix +++ b/nixpkgs/pkgs/development/libraries/science/math/scalapack/default.nix @@ -1,22 +1,36 @@ { lib, stdenv, fetchFromGitHub, cmake, openssh -, gfortran, mpi, blas, lapack +, mpi, blas, lapack } : -assert (!blas.isILP64) && (!lapack.isILP64); +assert blas.isILP64 == lapack.isILP64; stdenv.mkDerivation rec { pname = "scalapack"; - version = "2.1.0"; + version = "2.2.0"; src = fetchFromGitHub { owner = "Reference-ScaLAPACK"; repo = pname; rev = "v${version}"; - sha256 = "1c10d18gj3kvpmyv5q246x35hjxaqn4ygy1cygaydhyxnm4klzdj"; + sha256 = "0hiap5i9ik6xpvl721n2slanlqygagc1pg2bcjb27ans6balhsfh"; }; - nativeBuildInputs = [ cmake openssh gfortran ]; - buildInputs = [ mpi blas lapack ]; + passthru = { inherit (blas) isILP64; }; + + # Required to activate ILP64. + # See https://github.com/Reference-ScaLAPACK/scalapack/pull/19 + postPatch = lib.optionalString passthru.isILP64 '' + sed -i 's/INTSZ = 4/INTSZ = 8/g' TESTING/EIG/* TESTING/LIN/* + sed -i 's/INTGSZ = 4/INTGSZ = 8/g' TESTING/EIG/* TESTING/LIN/* + + # These tests are not adapted to ILP64 + sed -i '/xssep/d;/xsgsep/d;/xssyevr/d' TESTING/CMakeLists.txt + ''; + + nativeBuildInputs = [ cmake ]; + checkInputs = [ openssh ]; + buildInputs = [ blas lapack ]; + propagatedBuildInputs = [ mpi ]; doCheck = true; @@ -25,6 +39,11 @@ stdenv.mkDerivation rec { -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF -DLAPACK_LIBRARIES="-llapack" -DBLAS_LIBRARIES="-lblas" + -DCMAKE_Fortran_COMPILER=${mpi}/bin/mpif90 + ${lib.optionalString passthru.isILP64 '' + -DCMAKE_Fortran_FLAGS="-fdefault-integer-8" + -DCMAKE_C_FLAGS="-DInt=long" + ''} ) ''; @@ -52,5 +71,4 @@ stdenv.mkDerivation rec { platforms = [ "x86_64-linux" ]; maintainers = with maintainers; [ costrouc markuskowa ]; }; - } |