summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2016-02-04 21:29:25 +0100
committerFrederik Rietdijk <fridh@fridh.nl>2016-02-08 20:33:31 +0100
commit3e476a73ef455484e7b60a36364bd29fd60bfd4a (patch)
tree28f41106fd6e14fd9e1c7364674e83e6f9a1ddb9
parent63cf61e8d37afd46992792a927f263a1ee92c673 (diff)
downloadnixlib-3e476a73ef455484e7b60a36364bd29fd60bfd4a.tar
nixlib-3e476a73ef455484e7b60a36364bd29fd60bfd4a.tar.gz
nixlib-3e476a73ef455484e7b60a36364bd29fd60bfd4a.tar.bz2
nixlib-3e476a73ef455484e7b60a36364bd29fd60bfd4a.tar.lz
nixlib-3e476a73ef455484e7b60a36364bd29fd60bfd4a.tar.xz
nixlib-3e476a73ef455484e7b60a36364bd29fd60bfd4a.tar.zst
nixlib-3e476a73ef455484e7b60a36364bd29fd60bfd4a.zip
openblas_2_14: init at 0.2.14
-rw-r--r--pkgs/development/libraries/science/math/openblas/0.2.14.nix65
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 67 insertions, 0 deletions
diff --git a/pkgs/development/libraries/science/math/openblas/0.2.14.nix b/pkgs/development/libraries/science/math/openblas/0.2.14.nix
new file mode 100644
index 000000000000..2fac8a4db08b
--- /dev/null
+++ b/pkgs/development/libraries/science/math/openblas/0.2.14.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchurl, gfortran, perl, which, config, coreutils
+# Most packages depending on openblas expect integer width to match pointer width,
+# but some expect to use 32-bit integers always (for compatibility with reference BLAS).
+, blas64 ? null
+}:
+
+with stdenv.lib;
+
+let blas64_ = blas64; in
+
+let local = config.openblas.preferLocalBuild or false;
+    binary =
+      { i686-linux = "32";
+        x86_64-linux = "64";
+        x86_64-darwin = "64";
+      }."${stdenv.system}" or (throw "unsupported system: ${stdenv.system}");
+    genericFlags =
+      [ "DYNAMIC_ARCH=1"
+        "NUM_THREADS=64"
+      ];
+    localFlags = config.openblas.flags or
+      optionals (hasAttr "target" config.openblas) [ "TARGET=${config.openblas.target}" ];
+    blas64 = if blas64_ != null then blas64_ else hasPrefix "x86_64" stdenv.system;
+
+    version = "0.2.14";
+in
+stdenv.mkDerivation {
+  name = "openblas-${version}";
+  src = fetchurl {
+    url = "https://github.com/xianyi/OpenBLAS/archive/v${version}.tar.gz";
+    sha256 = "2411c4f56f477b42dff54db2b7ffc0b7cf53bb9778d54982595c64cc69c40fc1";
+    name = "openblas-${version}.tar.gz";
+  };
+
+  inherit blas64;
+
+  nativeBuildInputs = optionals stdenv.isDarwin [coreutils] ++ [gfortran perl which];
+
+  makeFlags =
+    (if local then localFlags else genericFlags)
+    ++
+    optionals stdenv.isDarwin ["MACOSX_DEPLOYMENT_TARGET=10.9"]
+    ++
+    [
+      "FC=gfortran"
+      # Note that clang is available through the stdenv on OSX and
+      # thus is not an explicit dependency.
+      "CC=${if stdenv.isDarwin then "clang" else "gcc"}"
+      ''PREFIX="''$(out)"''
+      "BINARY=${binary}"
+      "USE_OPENMP=${if stdenv.isDarwin then "0" else "1"}"
+      "INTERFACE64=${if blas64 then "1" else "0"}"
+    ];
+
+  doCheck = true;
+  checkTarget = "tests";
+
+  meta = with stdenv.lib; {
+    description = "Basic Linear Algebra Subprograms";
+    license = licenses.bsd3;
+    homepage = "https://github.com/xianyi/OpenBLAS";
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ ttuegel ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e103d1e5b536..2eec8c8d3dba 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -15029,10 +15029,12 @@ let
   liblbfgs = callPackage ../development/libraries/science/math/liblbfgs { };
 
   openblas = callPackage ../development/libraries/science/math/openblas { };
+  openblas_2_14 = callPackage ../development/libraries/science/math/openblas/0.2.14.nix { };
 
   # A version of OpenBLAS using 32-bit integers on all platforms for compatibility with
   # standard BLAS and LAPACK.
   openblasCompat = openblas.override { blas64 = false; };
+  openblasCompat_2_14 = openblas_2_14.override { blas64 = false; };
 
   openlibm = callPackage ../development/libraries/science/math/openlibm {};