diff options
author | Andres Löh <mail@andres-loeh.de> | 2011-12-04 16:07:39 +0000 |
---|---|---|
committer | Andres Löh <mail@andres-loeh.de> | 2011-12-04 16:07:39 +0000 |
commit | f237a3a4183459cd64b9d28e5806a2efb64e040d (patch) | |
tree | c0cf5450f248ec2b97d44dee161abc264a3d2024 /pkgs/development/compilers/ghc | |
parent | dccc3f83b3390db80bab0853b295cbf81eb2b376 (diff) | |
download | nixlib-f237a3a4183459cd64b9d28e5806a2efb64e040d.tar nixlib-f237a3a4183459cd64b9d28e5806a2efb64e040d.tar.gz nixlib-f237a3a4183459cd64b9d28e5806a2efb64e040d.tar.bz2 nixlib-f237a3a4183459cd64b9d28e5806a2efb64e040d.tar.lz nixlib-f237a3a4183459cd64b9d28e5806a2efb64e040d.tar.xz nixlib-f237a3a4183459cd64b9d28e5806a2efb64e040d.tar.zst nixlib-f237a3a4183459cd64b9d28e5806a2efb64e040d.zip |
Extended ghcWithPackages to link binaries.
svn path=/nixpkgs/trunk/; revision=30726
Diffstat (limited to 'pkgs/development/compilers/ghc')
-rw-r--r-- | pkgs/development/compilers/ghc/with-packages.nix | 83 |
1 files changed, 48 insertions, 35 deletions
diff --git a/pkgs/development/compilers/ghc/with-packages.nix b/pkgs/development/compilers/ghc/with-packages.nix index 2535e28ebc1f..b405a89b6421 100644 --- a/pkgs/development/compilers/ghc/with-packages.nix +++ b/pkgs/development/compilers/ghc/with-packages.nix @@ -1,7 +1,7 @@ -{stdenv, ghcPlain, packages ? [], makeWrapper}: +{stdenv, ghc, packages ? [], makeWrapper}: stdenv.mkDerivation rec { - name = "ghc-${ghcPlain.version}-linkdir"; + name = "ghc-${ghc.version}-linkdir"; allPackages = stdenv.lib.closePropagation packages; buildInputs = allPackages ++ [makeWrapper]; @@ -10,58 +10,71 @@ stdenv.mkDerivation rec { unpackPhase = "true"; installPhase = '' - originalTopDir="${ghcPlain}/lib/ghc-${ghcPlain.version}" + originalTopDir="${ghc}/lib/ghc-${ghc.version}" originalPkgDir="$originalTopDir/package.conf.d" linkedTopDir="$out/lib" linkedPkgDir="$linkedTopDir/package.conf.d" ensureDir $out/bin - cd $out/bin + ensureDir $linkedTopDir + ensureDir $linkedPkgDir - echo "Generating wrappers ..." + echo "Linking GHC core libraries:" - for prg in ghc ghci ghc-${ghcPlain.version} ghci-${ghcPlain.version}; do - makeWrapper ${ghcPlain}/bin/$prg $out/bin/$prg --add-flags "-B$linkedTopDir" - done + if test -f $originalTopDir/settings; then + echo -n "Linking $originalTopDir/settings " + ln -s $originalTopDir/settings $linkedTopDir + echo . + fi - for prg in runghc runhaskell; do - makeWrapper ${ghcPlain}/bin/$prg $out/bin/$prg --add-flags "-f $out/bin/ghc" + echo -n "Linking $originalPkgDir " + for f in $originalPkgDir/*.conf; do + ln -s $f $linkedPkgDir + echo -n . done + echo - for prg in ghc-pkg ghc-pkg-${ghcPlain.version}; do - makeWrapper ${ghcPlain}/bin/$prg $out/bin/$prg --add-flags "--global-conf $linkedPkgDir" - done + echo "Linking selected packages and dependencies:" - for prg in hp2ps hpc hasktags hsc2hs haddock haddock-${ghcPlain.version}; do - test -x ${ghcPlain}/bin/$prg && ln -s ${ghcPlain}/bin/$prg $out/bin/$prg + for currentPath in ${stdenv.lib.concatStringsSep " " allPackages}; do + currentPkgDir="$currentPath/lib/ghc-pkgs/ghc-${ghc.version}" + echo -n "Linking $currentPath " + for f in $currentPath/bin/*; do + ln -s $f $out/bin + echo -n . + done + for f in $currentPkgDir/*.conf; do + ln -s $f $linkedPkgDir + echo -n . + done + echo done - ensureDir $linkedTopDir - cd $linkedTopDir - - if test -f $originalTopDir/settings; then - echo "Linking $originalTopDir/settings ..." - ln -s $originalTopDir/settings . - fi + echo "Generating package cache ..." + ${ghc}/bin/ghc-pkg --global-conf $linkedPkgDir recache - ensureDir $linkedPkgDir - cd $linkedPkgDir + echo -n "Generating wrappers " - echo "Linking $originalPkgDir ..." - ln -s $originalPkgDir/*.conf . + for prg in ghc ghci ghc-${ghc.version} ghci-${ghc.version}; do + makeWrapper ${ghc}/bin/$prg $out/bin/$prg --add-flags "-B$linkedTopDir" + echo -n . + done - for currentPath in ${stdenv.lib.concatStringsSep " " allPackages}; do - currentPkgDir="$currentPath/lib/ghc-pkgs/ghc-${ghcPlain.version}" - if test -d $currentPkgDir; then - echo "Linking $currentPkgDir ..." - ln -s $currentPkgDir/*.conf . - fi + for prg in runghc runhaskell; do + makeWrapper ${ghc}/bin/$prg $out/bin/$prg --add-flags "-f $out/bin/ghc" + echo -n . done - echo "Generating package cache ..." - ${ghcPlain}/bin/ghc-pkg --global-conf $linkedPkgDir recache + for prg in ghc-pkg ghc-pkg-${ghc.version}; do + makeWrapper ${ghc}/bin/$prg $out/bin/$prg --add-flags "--global-conf $linkedPkgDir" + echo -n . + done + for prg in hp2ps hpc hasktags hsc2hs haddock haddock-${ghc.version}; do + test -x ${ghc}/bin/$prg && ln -s ${ghc}/bin/$prg $out/bin/$prg && echo -n . + done + echo ''; - # inherit ghc.meta; + meta = ghc.meta; } |