summary refs log tree commit diff
path: root/pkgs/development/libraries/science/math/liblapack
diff options
context:
space:
mode:
authorAllen Nelson <anelson@narrativescience.com>2015-05-28 21:46:09 -0500
committerAllen Nelson <anelson@narrativescience.com>2015-05-28 21:49:06 -0500
commite001340cf659eb7f3c97d172710c21b3df35003c (patch)
tree6fb75eec4c1c4629145fb18f93e36e3c57b6ef04 /pkgs/development/libraries/science/math/liblapack
parent2c125cf37ad8ed4d971325bf127745a2768a9872 (diff)
downloadnixpkgs-e001340cf659eb7f3c97d172710c21b3df35003c.tar
nixpkgs-e001340cf659eb7f3c97d172710c21b3df35003c.tar.gz
nixpkgs-e001340cf659eb7f3c97d172710c21b3df35003c.tar.bz2
nixpkgs-e001340cf659eb7f3c97d172710c21b3df35003c.tar.lz
nixpkgs-e001340cf659eb7f3c97d172710c21b3df35003c.tar.xz
nixpkgs-e001340cf659eb7f3c97d172710c21b3df35003c.tar.zst
nixpkgs-e001340cf659eb7f3c97d172710c21b3df35003c.zip
returned to two-file structure for liblapack
Diffstat (limited to 'pkgs/development/libraries/science/math/liblapack')
-rw-r--r--pkgs/development/libraries/science/math/liblapack/3.5.0.nix66
-rw-r--r--pkgs/development/libraries/science/math/liblapack/default.nix18
2 files changed, 69 insertions, 15 deletions
diff --git a/pkgs/development/libraries/science/math/liblapack/3.5.0.nix b/pkgs/development/libraries/science/math/liblapack/3.5.0.nix
new file mode 100644
index 00000000000..510b18a5548
--- /dev/null
+++ b/pkgs/development/libraries/science/math/liblapack/3.5.0.nix
@@ -0,0 +1,66 @@
+{
+  stdenv,
+  fetchurl,
+  gfortran,
+  cmake,
+  python,
+  atlas ? null,
+  shared ? false
+}:
+let
+  atlasMaybeShared = if atlas != null then atlas.override { inherit shared; }
+                     else null;
+  usedLibExtension = if shared then ".so" else ".a";
+  inherit (stdenv.lib) optional optionals concatStringsSep;
+  inherit (builtins) hasAttr attrNames;
+  version = "3.5.0";
+in
+
+stdenv.mkDerivation rec {
+  name = "liblapack-${version}";
+  src = fetchurl {
+    url = "http://www.netlib.org/lapack/lapack-${version}.tgz";
+    sha256 = "0lk3f97i9imqascnlf6wr5mjpyxqcdj73pgj97dj2mgvyg9z1n4s";
+  };
+
+  propagatedBuildInputs = [ atlasMaybeShared ];
+  buildInputs = [ gfortran cmake ];
+  nativeBuildInputs = [ python ];
+
+  cmakeFlags = [
+    "-DUSE_OPTIMIZED_BLAS=ON"
+    "-DCMAKE_Fortran_FLAGS=-fPIC"
+  ]
+  ++ (optionals (atlas != null) [
+    "-DBLAS_ATLAS_f77blas_LIBRARY=${atlasMaybeShared}/lib/libf77blas${usedLibExtension}"
+    "-DBLAS_ATLAS_atlas_LIBRARY=${atlasMaybeShared}/lib/libatlas${usedLibExtension}"
+  ])
+  ++ (optional shared "-DBUILD_SHARED_LIBS=ON")
+  # If we're on darwin, CMake will automatically detect impure paths. This switch
+  # prevents that.
+  ++ (optional stdenv.isDarwin "-DCMAKE_OSX_SYSROOT:PATH=''")
+  ;
+
+  doCheck = ! shared;
+
+  checkPhase = "
+    sed -i 's,^#!.*,#!${python}/bin/python,' lapack_testing.py
+    ctest
+  ";
+
+  enableParallelBuilding = true;
+
+  passthru = {
+    blas = atlas;
+  };
+
+  meta = {
+    inherit version;
+    description = "Linear Algebra PACKage";
+    homepage = "http://www.netlib.org/lapack/";
+    license = "revised-BSD";
+
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/development/libraries/science/math/liblapack/default.nix b/pkgs/development/libraries/science/math/liblapack/default.nix
index 18aceeba177..0487af4e9f4 100644
--- a/pkgs/development/libraries/science/math/liblapack/default.nix
+++ b/pkgs/development/libraries/science/math/liblapack/default.nix
@@ -5,8 +5,7 @@
   cmake,
   python,
   atlas ? null,
-  shared ? false,
-  version ? "3.4.1"
+  shared ? false
 }:
 let
   atlasMaybeShared = if atlas != null then atlas.override { inherit shared; }
@@ -14,25 +13,14 @@ let
   usedLibExtension = if shared then ".so" else ".a";
   inherit (stdenv.lib) optional optionals concatStringsSep;
   inherit (builtins) hasAttr attrNames;
-  # Hashes of the versions of liblapack we know about.
-  versions2sha = {
-    "3.4.1" = "93b910f94f6091a2e71b59809c4db4a14655db527cfc5821ade2e8c8ab75380f";
-    "3.5.0" = "0lk3f97i9imqascnlf6wr5mjpyxqcdj73pgj97dj2mgvyg9z1n4s";
-  };
+  version = "3.4.1";
 in
 
-if !(builtins.hasAttr version versions2sha)
-then throw ''
-  Unknown liblapack version ${version}.
-  Available versions: ${concatStringsSep ", " (attrNames versions2sha)}
-''
-else
-
 stdenv.mkDerivation rec {
   name = "liblapack-${version}";
   src = fetchurl {
     url = "http://www.netlib.org/lapack/lapack-${version}.tgz";
-    sha256 = versions2sha."${version}";
+    sha256 = "93b910f94f6091a2e71b59809c4db4a14655db527cfc5821ade2e8c8ab75380f";
   };
 
   propagatedBuildInputs = [ atlasMaybeShared ];