2006-01-27 11:16:15 +01:00
|
|
|
source $stdenv/setup
|
|
|
|
|
2006-06-24 13:16:29 +02:00
|
|
|
export HOME=$(pwd)/fake-home
|
|
|
|
|
2006-01-27 11:16:15 +01:00
|
|
|
makeWrapper() {
|
|
|
|
wrapperBase="$1"
|
|
|
|
wrapperName="$2"
|
|
|
|
wrapper="$out/$wrapperName"
|
|
|
|
shift; shift #the other arguments are passed to the source app
|
|
|
|
echo '#!'"$SHELL" > "$wrapper"
|
|
|
|
echo "exec \"$wrapperBase/$wrapperName\" $@" '"$@"' > "$wrapper"
|
|
|
|
chmod +x "$wrapper"
|
|
|
|
}
|
|
|
|
|
|
|
|
mkdir -p $out/nix-support $out/bin
|
|
|
|
packages_db=$out/nix-support/package.conf
|
|
|
|
|
|
|
|
#create packages database (start with compiler base packages)
|
|
|
|
cp $ghc/lib/ghc-*/package.conf $packages_db
|
|
|
|
chmod +w $packages_db
|
|
|
|
for lib in $libraries; do
|
|
|
|
sh $lib/nix-support/register.sh $packages_db || exit 1
|
|
|
|
done
|
|
|
|
rm -f $packages_db.old
|
|
|
|
|
|
|
|
#create the wrappers
|
|
|
|
#NB: The double dash for ghc-pkg is not a typo!
|
|
|
|
makeWrapper $ghc "bin/ghc" "-package-conf" $packages_db
|
|
|
|
makeWrapper $ghc "bin/ghci" "-package-conf" $packages_db
|
|
|
|
makeWrapper $ghc "bin/runghc" "-package-conf" $packages_db
|
|
|
|
makeWrapper $ghc "bin/runhaskell" "-package-conf" $packages_db
|
|
|
|
makeWrapper $ghc "bin/ghc-pkg" "--global-conf" $packages_db
|
|
|
|
|
|
|
|
# todo: link all other binaries of ghc
|