{ stdenv , cc , mpi ? null , tampi ? null , mcxx ? null , cflags ? null , gitBranch , gitURL ? "ssh://git@bscpm02.bsc.es/garlic/apps/nbody.git" , blocksize ? 2048 }: assert !(tampi != null && mcxx == null); with stdenv.lib; stdenv.mkDerivation rec { name = "nbody"; #src = /home/Computational/rarias/bscpkgs/manual/nbody; src = builtins.fetchGit { url = "${gitURL}"; ref = "${gitBranch}"; }; programPath = "/bin/nbody"; buildInputs = [ cc ] ++ optional (mpi != null) mpi ++ optional (tampi != null) tampi ++ optional (mcxx != null) mcxx; preBuild = (if cflags != null then '' makeFlagsArray+=(CFLAGS="${cflags}") '' else ""); # HACK: This should be fixed in the Makefile. postPatch = '' sed -i 's/libtampi.a/libtampi-c.a/g' Makefile ''; makeFlags = [ "CC=${cc.cc.CC}" "BS=${toString blocksize}" ] ++ optional (tampi != null) "TAMPI_HOME=${tampi}"; dontPatchShebangs = true; installPhase = '' echo ${tampi} mkdir -p $out/bin cp nbody* $out/bin/${name} ''; }