CS3502/assignment2/default.nix

26 lines
650 B
Nix

let
basicC = subdir: name: { stdenv }:
stdenv.mkDerivation {
inherit name;
src = ./.;
buildPhase = ''
runHook preBuild
gcc ${subdir}/${name}.c -o ${name}.bin
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install ${name}.bin $out/bin/${name}
runHook postInstall
'';
};
in {
a2-p1-producer = basicC "part1" "producer";
a2-p1-consumer = basicC "part1" "consumer";
a2-p2-bidirectional = basicC "part2" "bidirectional";
a2-p3-producer = basicC "part3" "producer";
a2-p3-consumer = basicC "part3" "consumer";
}