summary refs log tree commit diff
path: root/pkgs/development/libraries/science/math/liblapack/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/science/math/liblapack/default.nix')
-rw-r--r--pkgs/development/libraries/science/math/liblapack/default.nix35
1 files changed, 26 insertions, 9 deletions
diff --git a/pkgs/development/libraries/science/math/liblapack/default.nix b/pkgs/development/libraries/science/math/liblapack/default.nix
index 9f4f43311a4..f3832ba0a20 100644
--- a/pkgs/development/libraries/science/math/liblapack/default.nix
+++ b/pkgs/development/libraries/science/math/liblapack/default.nix
@@ -1,9 +1,21 @@
-{ stdenv, fetchurl, gfortran, atlas, cmake, python, shared ? false }:
+{
+  stdenv,
+  fetchurl,
+  gfortran,
+  cmake,
+  python,
+  atlas ? null,
+  shared ? false
+}:
 let
-  atlasMaybeShared = atlas.override { inherit shared; };
+  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.4.1";
 in
+
 stdenv.mkDerivation rec {
   name = "liblapack-${version}";
   src = fetchurl {
@@ -17,11 +29,16 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DUSE_OPTIMIZED_BLAS=ON"
-    "-DBLAS_ATLAS_f77blas_LIBRARY=${atlasMaybeShared}/lib/libf77blas${usedLibExtension}"
-    "-DBLAS_ATLAS_atlas_LIBRARY=${atlasMaybeShared}/lib/libatlas${usedLibExtension}"
     "-DCMAKE_Fortran_FLAGS=-fPIC"
   ]
-  ++ (stdenv.lib.optional shared "-DBUILD_SHARED_LIBS=ON")
+  ++ (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;
@@ -37,13 +54,13 @@ stdenv.mkDerivation rec {
     blas = atlas;
   };
 
-  meta = {
+  meta = with stdenv.lib; {
     inherit version;
     description = "Linear Algebra PACKage";
     homepage = "http://www.netlib.org/lapack/";
-    license = "revised-BSD";
+    license = licenses.bsd3;
 
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.simons ];
+    platforms = platforms.all;
+    maintainers = [ maintainers.simons ];
   };
 }