lol
at 17.09-beta 62 lines 1.9 kB view raw
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}