51 lines
904 B
Nix
51 lines
904 B
Nix
|
{
|
||
|
stdenv
|
||
|
, mpi
|
||
|
, gfortran
|
||
|
, tampi
|
||
|
, nanos6
|
||
|
, mcxx
|
||
|
}:
|
||
|
|
||
|
with stdenv.lib;
|
||
|
|
||
|
stdenv.mkDerivation rec {
|
||
|
name = "ifsker";
|
||
|
|
||
|
src = builtins.fetchGit {
|
||
|
url = "ssh://git@bscpm02.bsc.es/ksala/ifsker.git";
|
||
|
ref = "master";
|
||
|
};
|
||
|
|
||
|
buildInputs = [ tampi mpi nanos6 mcxx gfortran ];
|
||
|
|
||
|
preferLocalBuild = true;
|
||
|
|
||
|
# Mercurium seems to fail when building with fortran in parallel
|
||
|
enableParallelBuilding = false;
|
||
|
|
||
|
# FIXME: Patch mcxx to use other directory than $HOME for the lock
|
||
|
# files.
|
||
|
preConfigure = ''
|
||
|
export TAMPI_HOME=${tampi}
|
||
|
|
||
|
# $HOME is required for the lock files by mcxx to compile fortran.
|
||
|
# So we use the $TMPDIR to store them.
|
||
|
export HOME=$TMPDIR
|
||
|
'';
|
||
|
|
||
|
makeFlags = [
|
||
|
"-f" "Makefile.gcc"
|
||
|
];
|
||
|
|
||
|
|
||
|
installPhase = ''
|
||
|
mkdir -p $out/bin
|
||
|
cp *.bin $out/bin/
|
||
|
'';
|
||
|
|
||
|
# TODO: Split the app into variants
|
||
|
programPath = "/bin/03.ifsker.mpi.ompss2.tasks.bin";
|
||
|
|
||
|
}
|