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