diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/science/math/petsc')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/science/math/petsc/default.nix | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/science/math/petsc/default.nix b/nixpkgs/pkgs/development/libraries/science/math/petsc/default.nix new file mode 100644 index 000000000000..82a0d063570d --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/science/math/petsc/default.nix @@ -0,0 +1,52 @@ +{ stdenv , darwin , fetchurl , blas , gfortran , lapack , python }: + +stdenv.mkDerivation rec { + pname = "petsc"; + version = "3.13.4"; + + src = fetchurl { + url = "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-${version}.tar.gz"; + sha256 = "1n2paqw5c0ja392s1qhp7q2ypwav8s5drxxz2w5m2cn31vbspy1c"; + }; + + nativeBuildInputs = [ blas gfortran gfortran.cc.lib lapack python ]; + + # Upstream does some hot she-py-bang stuff, this change streamlines that + # process. The original script in upstream is both a shell script and a + # python script, where the shellscript just finds a suitable python + # interpreter to execute the python script. See + # https://github.com/NixOS/nixpkgs/pull/89299#discussion_r450203444 + # for more details. + prePatch = '' + substituteInPlace configure \ + --replace /bin/sh /usr/bin/python + '' + stdenv.lib.optionalString stdenv.isDarwin '' + substituteInPlace config/install.py \ + --replace /usr/bin/install_name_tool ${darwin.cctools}/bin/install_name_tool + ''; + + preConfigure = '' + export FC="${gfortran}/bin/gfortran" F77="${gfortran}/bin/gfortran" + patchShebangs . + configureFlagsArray=( + $configureFlagsArray + "--CC=$CC" + "--with-cxx=$CXX" + "--with-fc=$FC" + "--with-mpi=0" + "--with-blas-lib=[${blas}/lib/libblas.so,${gfortran.cc.lib}/lib/libgfortran.a]" + "--with-lapack-lib=[${lapack}/lib/liblapack.so,${gfortran.cc.lib}/lib/libgfortran.a]" + ) + ''; + + meta = with stdenv.lib; { + description = '' + Library of linear algebra algorithms for solving partial differential + equations + ''; + homepage = "https://www.mcs.anl.gov/petsc/index.html"; + license = licenses.bsd2; + maintainers = with maintainers; [ wucke13 ]; + platforms = platforms.all; + }; +} |