Add function to build a ghc standalone archive (OSX/iOS only)

+28 -1
+12 -1
pkgs/development/compilers/ghc/head.nix
··· 85 } // stdenv.lib.optionalAttrs (cross != null) { 86 name = "${cross.config}-ghc-${version}"; 87 88 preConfigure = commonPreConfigure + '' 89 - sed 's|#BuildFlavour = quick-cross|BuildFlavour = perf-cross|' mk/build.mk.sample > mk/build.mk 90 ''; 91 92 configureFlags = [ ··· 102 buildInputs = commonBuildInputs ++ [ stdenv.ccCross stdenv.binutilsCross ]; 103 104 dontSetConfigureCross = true; 105 106 passthru = { 107 inherit bootPkgs cross;
··· 85 } // stdenv.lib.optionalAttrs (cross != null) { 86 name = "${cross.config}-ghc-${version}"; 87 88 + patches = [ ./ios-linker.patch ]; 89 + 90 preConfigure = commonPreConfigure + '' 91 + sed 's|#BuildFlavour = quick-cross|BuildFlavour = quick-cross|' mk/build.mk.sample > mk/build.mk 92 + echo "GhcRtsCcOpts = -glldb -Og" >> mk/build.mk 93 + ''; 94 + 95 + postUnpack = '' 96 + mkdir -p $out/nix-support 97 + mv $sourceRoot $out/nix-support/source 98 + sourceRoot=$out/nix-support/source 99 ''; 100 101 configureFlags = [ ··· 111 buildInputs = commonBuildInputs ++ [ stdenv.ccCross stdenv.binutilsCross ]; 112 113 dontSetConfigureCross = true; 114 + 115 + dontStrip = true; 116 117 passthru = { 118 inherit bootPkgs cross;
+14
pkgs/os-specific/darwin/ghc-standalone-archive/default.nix
···
··· 1 + { runCommand, cctools }: 2 + { haskellPackages, src, deps ? p : [], name }: let 3 + inherit (haskellPackages) ghc ghcWithPackages; 4 + with-env = ghcWithPackages deps; 5 + crossPrefix = if (ghc.cross or null) != null then "${ghc.cross.config}-" else ""; 6 + ghcName = "${crossPrefix}ghc"; 7 + in runCommand name { buildInputs = [ with-env cctools ]; } '' 8 + mkdir -p $out/lib 9 + mkdir -p $out/include 10 + ${ghcName} ${src} -staticlib -outputdir . -o $out/lib/${name}.a -stubdir $out/include 11 + for file in ${ghc}/lib/${ghcName}-${ghc.version}/include/*; do 12 + ln -sv $file $out/include 13 + done 14 + ''
+2
pkgs/top-level/all-packages.nix
··· 18042 simplenote = callPackage ../applications/misc/simplenote { }; 18043 18044 hy = callPackage ../development/interpreters/hy {}; 18045 }
··· 18042 simplenote = callPackage ../applications/misc/simplenote { }; 18043 18044 hy = callPackage ../development/interpreters/hy {}; 18045 + 18046 + ghc-standalone-archive = callPackage ../os-specific/darwin/ghc-standalone-archive { inherit (darwin) cctools; }; 18047 }