btrbk: add mainProgram
[NixPkgs.git] / pkgs / by-name / bl / blas-reference / package.nix
blobfcb78767678eab7b9bc001bb8e3522e164a2b570
1 { lib, stdenv, fetchurl, cmake, gfortran
2 # Whether to build with ILP64 interface
3 , blas64 ? false
4 }:
6 stdenv.mkDerivation rec {
7   pname = "blas";
8   version = "3.12.0";
10   src = fetchurl {
11     url = "http://www.netlib.org/blas/${pname}-${version}.tgz";
12     sha256 = "sha256-zMQbXQiOUNsAMDF66bDJrzdXEME5KsrR/iCWAtpaWq0=";
13   };
15   passthru = { inherit blas64; };
17   nativeBuildInputs = [ cmake gfortran ];
19   cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ]
20     ++ lib.optional blas64 "-DBUILD_INDEX64=ON";
22   postInstall = let
23     canonicalExtension = if stdenv.hostPlatform.isLinux
24                        then "${stdenv.hostPlatform.extensions.sharedLibrary}.${lib.versions.major version}"
25                        else stdenv.hostPlatform.extensions.sharedLibrary;
26   in lib.optionalString blas64 ''
27     ln -s $out/lib/libblas64${canonicalExtension} $out/lib/libblas${canonicalExtension}
28   '';
30   preFixup = lib.optionalString stdenv.hostPlatform.isDarwin ''
31     for fn in $(find $out/lib -name "*.so*"); do
32       if [ -L "$fn" ]; then continue; fi
33       install_name_tool -id "$fn" "$fn"
34     done
35   '';
37   meta = with lib; {
38     description = "Basic Linear Algebra Subprograms";
39     license = licenses.publicDomain;
40     maintainers = [ maintainers.markuskowa ];
41     homepage = "http://www.netlib.org/blas/";
42     platforms = platforms.unix;
43   };