lol
1{ stdenv, fetchurl, gfortran }:
2let
3 version = "3.5.0";
4in
5stdenv.mkDerivation rec {
6 name = "blas-${version}";
7 src = fetchurl {
8 url = "http://www.netlib.org/blas/${name}.tgz";
9 sha256 = "096a3apnh899abjymjjg8m34hncagkzp9qxw08cms98g71fpfzgg";
10 };
11
12 buildInputs = [gfortran];
13
14 configurePhase = ''
15 echo >make.inc "SHELL = ${stdenv.shell}"
16 echo >>make.inc "PLAT = _LINUX"
17 echo >>make.inc "FORTRAN = gfortran"
18 echo >>make.inc "OPTS = -O2 -fPIC"
19 echo >>make.inc "DRVOPTS = $$(OPTS)"
20 echo >>make.inc "NOOPT = -O0 -fPIC"
21 echo >>make.inc "LOADER = gfortran"
22 echo >>make.inc "LOADOPTS ="
23 echo >>make.inc "ARCH = gfortran"
24 echo >>make.inc "ARCHFLAGS = -shared -o"
25 echo >>make.inc "RANLIB = echo"
26 echo >>make.inc "BLASLIB = libblas.so.${version}"
27 '';
28
29 buildPhase = ''
30 make
31 echo >>make.inc "ARCHFLAGS = "
32 echo >>make.inc "BLASLIB = libblas.a"
33 echo >>make.inc "ARCH = ar rcs"
34 echo >>make.inc "RANLIB = ranlib"
35 make
36 '';
37
38 installPhase =
39 # FreeBSD's stdenv doesn't use Coreutils.
40 let dashD = if stdenv.isFreeBSD then "" else "-D"; in
41 (stdenv.lib.optionalString stdenv.isFreeBSD "mkdir -p $out/lib ;")
42 + ''
43 install ${dashD} -m755 libblas.a "$out/lib/libblas.a"
44 install ${dashD} -m755 libblas.so.${version} "$out/lib/libblas.so.${version}"
45 ln -s libblas.so.${version} "$out/lib/libblas.so.3"
46 ln -s libblas.so.${version} "$out/lib/libblas.so"
47 '';
48
49 preFixup = stdenv.lib.optionalString stdenv.isDarwin ''
50 for fn in $(find $out/lib -name "*.so*"); do
51 if [ -L "$fn" ]; then continue; fi
52 install_name_tool -id "$fn" "$fn"
53 done
54 '';
55
56 meta = {
57 description = "Basic Linear Algebra Subprograms";
58 license = stdenv.lib.licenses.publicDomain;
59 homepage = http://www.netlib.org/blas/;
60 platforms = stdenv.lib.platforms.unix;
61 };
62}