summary refs log tree commit diff
path: root/pkgs/development/libraries
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
parent8cb96ff7b221c309f8f69db839fb851b06af1207 (diff)
downloadnixpkgs-5e2de19cc1ad78d942c82c2a8ee389482015a4f0.tar
nixpkgs-5e2de19cc1ad78d942c82c2a8ee389482015a4f0.tar.gz
nixpkgs-5e2de19cc1ad78d942c82c2a8ee389482015a4f0.tar.bz2
nixpkgs-5e2de19cc1ad78d942c82c2a8ee389482015a4f0.tar.lz
nixpkgs-5e2de19cc1ad78d942c82c2a8ee389482015a4f0.tar.xz
nixpkgs-5e2de19cc1ad78d942c82c2a8ee389482015a4f0.tar.zst
nixpkgs-5e2de19cc1ad78d942c82c2a8ee389482015a4f0.zip
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')
-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 e1ff853a291..00000000000
--- 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 a731360be56..acede395c84 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";