diff --git a/bsc/garlic/default.nix b/bsc/garlic/default.nix index c22f3b0..e2c6475 100644 --- a/bsc/garlic/default.nix +++ b/bsc/garlic/default.nix @@ -7,8 +7,18 @@ let callPackage = pkgs.lib.callPackageWith (pkgs // bsc // garlic); callPackages = pkgs.lib.callPackagesWith (pkgs // bsc // garlic); garlic = rec { - mpptest = callPackage ./mpptest/default.nix { }; - ppong = callPackage ./ppong/default.nix { }; + + mpptest = callPackage ./mpptest { }; + + ppong = callPackage ./ppong { }; + + experiments = callPackage ./experiments { + apps = [ + (ppong.override { mpi=bsc.intel-mpi;}) + (ppong.override { mpi=pkgs.mpich;}) + ]; + }; + }; in garlic diff --git a/bsc/garlic/experiments/default.nix b/bsc/garlic/experiments/default.nix new file mode 100644 index 0000000..64754e1 --- /dev/null +++ b/bsc/garlic/experiments/default.nix @@ -0,0 +1,39 @@ +{ + stdenv +, mpi +, fetchurl +, apps +}: + +stdenv.mkDerivation { + name = "garlic-experiments"; + + src = ./.; + + buildInputs = [] ++ apps; + apps = apps; + + buildPhase = '' + for app in $apps; do + test -e $app/bin/run || (echo $app/bin/run not found; exit 1) + done + ''; + + installPhase = '' + mkdir -p $out/apps + for app in $apps; do + ln -s $app $out/apps/$(basename $app) + done + + mkdir -p $out/bin + cat > $out/bin/run <