@@ -25,35 +25,33 @@ let
2525 '';
2626 defaultSetup = runCommand "default-Setup" { nativeBuildInputs = [ghc]; } ''
2727 cat ${defaultSetupSrc} > Setup.hs
28− ghc Setup.hs --make -o $out
28+ mkdir -p $out/bin
29+ ghc Setup.hs --make -o $out/bin/Setup
2930 '';
3031
31− setup = stdenv.mkDerivation {
32− name = "${name}-setup";
33− nativeBuildInputs = [ghc];
34− inherit src;
35− phases = ["unpackPhase" "buildPhase" "installPhase"];
36− buildPhase = ''
37− setup=${defaultSetup}
38− for f in Setup.hs Setup.lhs; do
39− if [ -f $f ]; then
40− if ! (diff $f ${defaultSetupSrc} > /dev/null); then
32+ setup = if package.buildType == "Simple"
33+ then defaultSetup
34+ else stdenv.mkDerivation {
35+ name = "${name}-setup";
36+ nativeBuildInputs = [ghc];
37+ inherit src;
38+ phases = ["unpackPhase" "buildPhase" "installPhase"];
39+ buildPhase = ''
40+ for f in Setup.hs Setup.lhs; do
41+ if [ -f $f ]; then
4142 echo Compiling package $f
4243 ghc $f --make -o ./Setup
4344 setup=$(pwd)/Setup
44− else
45− echo Using default Setup
4645 fi
47− break
48− fi
49− done
50− '';
46+ done
47+ [ -f ./Setup ] || (echo Failed to build Setup && exit 1)
48+ '';
5149
52− installPhase = ''
53− mkdir -p $out/bin
54− install $setup $out/bin/Setup
55− '';
56− };
50+ installPhase = ''
51+ mkdir -p $out/bin
52+ install ./Setup $out/bin/Setup
53+ '';
54+ };
5755
5856 comp-builder = haskellLib.weakCallPackage pkgs ./comp-builder.nix { inherit ghc haskellLib; };
5957