mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-29 10:23:29 +00:00
atlas: optionally build with full lapack
This commit is contained in:
parent
91657e30ca
commit
3ce76d4dd0
@ -2,6 +2,7 @@
|
||||
, cpuConfig ? if stdenv.isi686 then "-b 32 -A 12 -V 1" else "-b 64 -A 14 -V 384"
|
||||
, cacheEdge ? "262144"
|
||||
, threads ? "0"
|
||||
, liblapack, withLapack
|
||||
}:
|
||||
|
||||
# Atlas detects the CPU and optimizes its build accordingly. This is great when
|
||||
@ -48,7 +49,7 @@ let
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "atlas-${version}";
|
||||
name = "atlas-${version}" + optionalString withLapack "-with-lapack";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/math-atlas/atlas${version}.tar.bz2";
|
||||
@ -81,7 +82,8 @@ stdenv.mkDerivation {
|
||||
"-fPIC"
|
||||
"-t ${threads}"
|
||||
cpuConfig
|
||||
] ++ optional shared "--shared";
|
||||
] ++ optional shared "--shared"
|
||||
++ optional withLapack "--with-netlib-lapack-tarfile=${liblapack.src}";
|
||||
|
||||
postConfigure = ''
|
||||
if [[ -n "${cacheEdge}" ]]; then
|
||||
@ -94,8 +96,10 @@ stdenv.mkDerivation {
|
||||
|
||||
postInstall = ''
|
||||
# Avoid name collision with the real lapack (ATLAS only builds a partial
|
||||
# lapack).
|
||||
mv $out/lib/liblapack.a $out/lib/liblapack_atlas.a
|
||||
# lapack unless withLapack = true).
|
||||
if ${if withLapack then "false" else "true"}; then
|
||||
mv $out/lib/liblapack.a $out/lib/liblapack_atlas.a
|
||||
fi
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
@ -12174,8 +12174,12 @@ let
|
||||
# great feature, but it's of limited use with pre-built binaries
|
||||
# coming from a central build farm.
|
||||
tolerateCpuTimingInaccuracy = true;
|
||||
liblapack = liblapack_3_5_0;
|
||||
withLapack = false;
|
||||
};
|
||||
|
||||
atlasWithLapack = atlas.override { withLapack = true; };
|
||||
|
||||
blas = callPackage ../development/libraries/science/math/blas { };
|
||||
|
||||
content = builderDefsPackage ../applications/science/math/content {
|
||||
|
Loading…
Reference in New Issue
Block a user