aboutsummaryrefslogtreecommitdiff
path: root/pkgs/development/libraries/science/math/liblapack
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2012-02-21 21:43:44 +0000
committerLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2012-02-21 21:43:44 +0000
commit5e2de19cc1ad78d942c82c2a8ee389482015a4f0 (patch)
tree254a119422a837c6ef3c3a9a232883ec9e13c22d /pkgs/development/libraries/science/math/liblapack
parent8cb96ff7b221c309f8f69db839fb851b06af1207 (diff)
Fixing octave, so plot(1) works.
Linking octave with clapack did not work. I updated lapack, and additionally I build it with atlas, instead of blas. That should give better performance. I don't know if atlas builds everywhere though. On the other hand, maybe some programs linking with liblapack will fail. We'll have to check the hydra reports. I plan to remove clapack; liblapack provides a C interface too. svn path=/nixpkgs/trunk/; revision=32464
Diffstat (limited to 'pkgs/development/libraries/science/math/liblapack')
-rw-r--r--pkgs/development/libraries/science/math/liblapack/blas-link.patch24
-rw-r--r--pkgs/development/libraries/science/math/liblapack/default.nix69
2 files changed, 13 insertions, 80 deletions
diff --git a/pkgs/development/libraries/science/math/liblapack/blas-link.patch b/pkgs/development/libraries/science/math/liblapack/blas-link.patch
deleted file mode 100644
index e1ff853a291a..000000000000
--- a/pkgs/development/libraries/science/math/liblapack/blas-link.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -Naur lapack-3.2.old/SRC/Makefile lapack-3.2/SRC/Makefile
---- lapack-3.2.old/SRC/Makefile 2009-02-04 11:33:35.006839507 +0100
-+++ lapack-3.2/SRC/Makefile 2009-02-04 11:33:51.987551506 +0100
-@@ -367,7 +367,7 @@
- $(ALLAUX)
-
- ../$(LAPACKLIB): $(ALLOBJ) $(ALLXOBJ)
-- $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ) $(ALLXOBJ)
-+ $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ) $(ALLXOBJ) ${BLASLIB}
- $(RANLIB) $@
-
- single: $(SLASRC) $(ALLAUX) $(SCLAUX)
-diff -Naur lapack-3.2.old/TESTING/MATGEN/Makefile lapack-3.2/TESTING/MATGEN/Makefile
---- lapack-3.2.old/TESTING/MATGEN/Makefile 2009-02-04 11:35:10.426806473 +0100
-+++ lapack-3.2/TESTING/MATGEN/Makefile 2009-02-04 11:34:42.850565181 +0100
-@@ -60,7 +60,7 @@
-
- ../../$(TMGLIB): $(SMATGEN) $(CMATGEN) $(SCATGEN) $(DMATGEN) \
- $(ZMATGEN) $(DZATGEN)
-- $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ)
-+ $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ) ${BLASLIB}
- $(RANLIB) $@
-
- single: $(SMATGEN) $(SCATGEN)
diff --git a/pkgs/development/libraries/science/math/liblapack/default.nix b/pkgs/development/libraries/science/math/liblapack/default.nix
index a731360be562..acede395c84d 100644
--- a/pkgs/development/libraries/science/math/liblapack/default.nix
+++ b/pkgs/development/libraries/science/math/liblapack/default.nix
@@ -1,66 +1,23 @@
-{ stdenv, fetchurl, gfortran, blas }:
+{ stdenv, fetchurl, gfortran, atlas, cmake }:
stdenv.mkDerivation {
- name = "liblapack-3.2.1";
+ name = "liblapack-3.4.0";
src = fetchurl {
- url = "http://www.netlib.org/lapack/lapack-3.2.1.tgz";
- sha256 = "5825f83971157001fd4235514afe8ff5fc16e1c06b2e872e442c242efd6c166d";
+ url = "http://www.netlib.org/lapack/lapack-3.4.0.tgz";
+ sha256 = "1sf30v1ps5icg67dvw5sbx5yhypx13am470gqg2f7l04f3wrw4x7";
};
- buildInputs = [gfortran blas];
- patches = [ ./blas-link.patch ];
+ propagatedBuildInputs = [ atlas ];
+ buildInputs = [ gfortran cmake ];
- configurePhase = ''
- echo >make.inc "SHELL = ${stdenv.shell}"
- echo >>make.inc "PLAT ="
- echo >>make.inc "FORTRAN = gfortran"
- echo >>make.inc "OPTS = -O2 -fPIC"
- echo >>make.inc "DRVOPTS = \$(OPTS)"
- echo >>make.inc "NOOPT = -O0 -fPIC"
- echo >>make.inc "LOADER = gfortran"
- echo >>make.inc "LOADOPTS ="
- echo >>make.inc "TIMER = INT_ETIME"
- echo >>make.inc "ARCH = gfortran"
- echo >>make.inc "ARCHFLAGS = -shared -o"
- echo >>make.inc "RANLIB = echo"
- echo >>make.inc "BLASLIB = -lblas"
- echo >>make.inc "LAPACKLIB = liblapack.so.3"
- echo >>make.inc "TMGLIB = libtmglib.so.3"
- echo >>make.inc "EIGSRCLIB = libeigsrc.so.3"
- echo >>make.inc "LINSRCLIB = liblinsrc.so.3"
- '';
+ cmakeFlags = [
+ "-DUSE_OPTIMIZED_BLAS=ON"
+ "-DBLAS_ATLAS_f77blas_LIBRARY=${atlas}/lib/libf77blas.a"
+ "-DBLAS_ATLAS_atlas_LIBRARY=${atlas}/lib/libatlas.a"
+ "-DCMAKE_Fortran_FLAGS=-fPIC"
+ ];
- buildPhase = ''
- make clean
- make lib
- echo >make.inc "SHELL = ${stdenv.shell}"
- echo >>make.inc "PLAT ="
- echo >>make.inc "FORTRAN = gfortran"
- echo >>make.inc "OPTS = -O2 -fPIC"
- echo >>make.inc "DRVOPTS = \$(OPTS)"
- echo >>make.inc "NOOPT = -O0 -fPIC"
- echo >>make.inc "LOADER = gfortran"
- echo >>make.inc "LOADOPTS = "
- echo >>make.inc "TIMER = INT_ETIME"
- echo >>make.inc "ARCH = ar rcs"
- echo >>make.inc "RANLIB = ranlib"
- echo >>make.inc "BLASLIB = "
- echo >>make.inc "ARCHFLAGS ="
- echo >>make.inc "LAPACKLIB = liblapack.a"
- echo >>make.inc "TMGLIB = tmglib.a"
- echo >>make.inc "EIGSRCLIB = eigsrc.a"
- echo >>make.inc "LINSRCLIB = linsrc.a"
- make clean
- make lib
- '';
-
- installPhase = ''
- ensureDir "$out/lib"
- install -m755 *.a* "$out/lib"
- install -m755 *.so* "$out/lib"
- ln -sf liblapack.so.3 "$out/lib/liblapack.so"
- ln -sf libtmglib.so.3 "$out/lib/libtmglib.so"
- '';
+ enableParallelBuilding = true;
meta = {
description = "Linear Algebra PACKage";