diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/mpich')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/mpich/default.nix | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/mpich/default.nix b/nixpkgs/pkgs/development/libraries/mpich/default.nix new file mode 100644 index 000000000000..1c6b8df15114 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/mpich/default.nix @@ -0,0 +1,55 @@ +{ stdenv, fetchurl, perl, gfortran +, openssh, hwloc +} : + +stdenv.mkDerivation rec { + name = "mpich-${version}"; + version = "3.3.1"; + + src = fetchurl { + url = "https://www.mpich.org/static/downloads/${version}/mpich-${version}.tar.gz"; + sha256 = "1raism1r4jsx4cybc9ddyr1xkccbxm0l8j3ryrw8kslfkkr1wmgy"; + }; + + configureFlags = [ + "--enable-shared" + "--enable-sharedlib" + ]; + + enableParallelBuilding = true; + + buildInputs = [ perl gfortran openssh hwloc ]; + + doCheck = true; + + preFixup = '' + # Ensure the default compilers are the ones mpich was built with + sed -i 's:CC="gcc":CC=${stdenv.cc}/bin/gcc:' $out/bin/mpicc + sed -i 's:CXX="g++":CXX=${stdenv.cc}/bin/g++:' $out/bin/mpicxx + sed -i 's:FC="gfortran":FC=${gfortran}/bin/gfortran:' $out/bin/mpifort + '' + + stdenv.lib.optionalString (!stdenv.isDarwin) '' + # /tmp/nix-build... ends up in the RPATH, fix it manually + for entry in $out/bin/mpichversion $out/bin/mpivars; do + echo "fix rpath: $entry" + patchelf --set-rpath "$out/lib" $entry + done + ''; + + meta = with stdenv.lib; { + description = "Implementation of the Message Passing Interface (MPI) standard"; + + longDescription = '' + MPICH2 is a free high-performance and portable implementation of + the Message Passing Interface (MPI) standard, both version 1 and + version 2. + ''; + homepage = http://www.mcs.anl.gov/mpi/mpich2/; + license = { + url = http://git.mpich.org/mpich.git/blob/a385d6d0d55e83c3709ae851967ce613e892cd21:/COPYRIGHT; + fullName = "MPICH license (permissive)"; + }; + maintainers = [ maintainers.markuskowa ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} |