CS3502/assignment2/default.nix
2025-10-06 23:27:46 -04:00

26 lines
641 B
Nix

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