Almost working nix-expression for EHC
(it installs EHC but is not able to produce code) svn path=/nixpkgs/trunk/; revision=11158
This commit is contained in:
parent
33cd1691a6
commit
85f6478f93
@ -1,34 +1,60 @@
|
|||||||
{stdenv, coreutils, fetchsvn, m4, ghc, uulib, uuagc}:
|
{stdenv, coreutils, fetchsvn, m4, libtool, ghc, uulib, uuagc, llvm}:
|
||||||
|
|
||||||
stdenv.mkDerivation (rec {
|
stdenv.mkDerivation (rec {
|
||||||
name = "ehc-svn-1033";
|
name = "ehc-svn-1036";
|
||||||
homepage = "http://www.cs.uu.nl/wiki/Ehc/WebHome/";
|
homepage = "http://www.cs.uu.nl/wiki/Ehc/WebHome/";
|
||||||
|
|
||||||
src = fetchsvn {
|
src = fetchsvn {
|
||||||
url = https://svn.cs.uu.nl:12443/repos/EHC/trunk/EHC;
|
url = https://svn.cs.uu.nl:12443/repos/EHC/trunk/EHC;
|
||||||
rev = "1033";
|
rev = "1037";
|
||||||
sha256 = "bee6271b81bb1781b086b3c102c6a8205df6d7fca073f2492817717a2553e7af";
|
sha256 = "b2388cfadeb26ce716ff355fbdd73ba2e30219c5b423fbd609355b420300644c";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [coreutils m4 ghc uulib uuagc];
|
buildInputs = [coreutils m4 ghc libtool uulib uuagc llvm];
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
find src -name files\*.mk -exec sed -i -- "s/--user//g" '{}' \;
|
find src -name files\*.mk -exec sed -i -- "s/--user//g" '{}' \;
|
||||||
sed -i "s|/bin/date|${coreutils}/bin/date|g" mk/dist.mk
|
sed -i "s|/bin/date|${coreutils}/bin/date|g" mk/dist.mk
|
||||||
|
echo "RTS_GCC_CC_OPTS := -std=gnu99" >> mk/shared.mk.in
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildFlags = "100/ehc";
|
buildFlags = "100/ehc 100/ehclib";
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
|
||||||
cd bin
|
cd bin
|
||||||
|
|
||||||
|
# install executables
|
||||||
|
echo "installing executables..."
|
||||||
|
mkdir -p $out/bin-ehc
|
||||||
for i in *; do
|
for i in *; do
|
||||||
if [[ -d $i ]]; then
|
if [[ -d $i ]]; then
|
||||||
cp $i/ehc $out/bin/ehc-$i
|
cp $i/ehc $out/bin-ehc/ehc-$i
|
||||||
|
fi;
|
||||||
|
done
|
||||||
|
|
||||||
|
# install runtime support
|
||||||
|
cp -r ../install/* $out
|
||||||
|
|
||||||
|
# install prelude
|
||||||
|
echo "installing prelude..."
|
||||||
|
mkdir -p $out/lib-ehc
|
||||||
|
for i in *; do
|
||||||
|
if [[ -d ../build/$i/ehclib/ehcbase ]]; then
|
||||||
|
mkdir -p $out/lib-ehc/$i
|
||||||
|
cp -r ../build/$i/ehclib/ehcbase $out/lib-ehc/$i
|
||||||
|
fi;
|
||||||
|
done
|
||||||
|
|
||||||
|
# generate wrappers
|
||||||
|
echo "generating wrappers..."
|
||||||
|
mkdir -p $out/bin
|
||||||
|
for in in *; do
|
||||||
|
if [[ -d $i ]]; then
|
||||||
|
echo '#!'"$SHELL" > $out/bin/ehc-$i
|
||||||
|
echo "exec \"$out/bin-ehc/ehc-$i\" -P $out/lib-ehc/$i/ehcbase" '"$@"' >> $out/bin/ehc-$i
|
||||||
|
chmod 751 $out/bin/ehc-$i
|
||||||
fi;
|
fi;
|
||||||
done
|
done
|
||||||
mkdir -p $out/lib/ehc
|
|
||||||
exit 1
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -1166,7 +1166,7 @@ rec {
|
|||||||
|
|
||||||
# Essential Haskell Compiler -- nix expression is work in progress
|
# Essential Haskell Compiler -- nix expression is work in progress
|
||||||
ehc = import ../development/compilers/ehc {
|
ehc = import ../development/compilers/ehc {
|
||||||
inherit fetchsvn stdenv coreutils m4 libtool ghc uulib uuagc;
|
inherit fetchsvn stdenv coreutils m4 libtool ghc uulib uuagc llvm;
|
||||||
};
|
};
|
||||||
|
|
||||||
fpc = import ../development/compilers/fpc {
|
fpc = import ../development/compilers/fpc {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user