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@bscpm03.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";
|
|
|
|
}
|