From b3224edee31e465ee683e11a561b24f6a3ac3cc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andres=20L=C3=B6h?= Date: Thu, 29 Apr 2010 17:35:09 +0000 Subject: [PATCH] Updated the expression for EHC/UHC. This is not yet properly tested, but it should be an improvement over what was there before ... svn path=/nixpkgs/trunk/; revision=21435 --- pkgs/development/compilers/ehc/default.nix | 70 +++++++--------------- pkgs/top-level/haskell-packages.nix | 4 +- 2 files changed, 25 insertions(+), 49 deletions(-) diff --git a/pkgs/development/compilers/ehc/default.nix b/pkgs/development/compilers/ehc/default.nix index 3590f2ea075..cc2a6f9685c 100644 --- a/pkgs/development/compilers/ehc/default.nix +++ b/pkgs/development/compilers/ehc/default.nix @@ -1,60 +1,36 @@ -{stdenv, coreutils, fetchsvn, m4, libtool, ghc, uulib, uuagc, llvm}: +{stdenv, coreutils, glibc, fetchsvn, m4, libtool, ghc, uulib, uuagc, mtl, network, binary, llvm, fgl}: stdenv.mkDerivation (rec { - name = "ehc-svn-1042"; + revision = "1996"; + name = "ehc-svn-${revision}"; homepage = "http://www.cs.uu.nl/wiki/Ehc/WebHome/"; src = fetchsvn { - url = https://svn.cs.uu.nl:12443/repos/EHC/trunk/EHC; - rev = "1042"; - sha256 = "7a9e5d1d57825caa4664686d9a5c0d9b5ebb870095817d77bb7b97869718ed5b"; + url = https://subversion.cs.uu.nl/repos/project.UHC.pub/trunk/EHC; + rev = revision; + sha256 = "92c658cd15dd513ccaeb81341f2680056276a46d053330f66c0214d10a6729e2"; }; - buildInputs = [coreutils m4 ghc libtool uulib uuagc llvm]; + propagatedBuildInputs = [mtl network binary fgl]; + buildInputs = [coreutils m4 ghc libtool uulib uuagc]; + # --force is required because the dependencies are not properly + # detected by Nix, being located in several package config files + configureFlags = [ + "--with-cabal-config-options=--ghc-pkg-options=--force" + "--with-cpp-ehc-options=-I${glibc}/include" + ]; + + # EHC builds packages during compilation; these are by default + # installed in the user-specific package config file. We do not + # want that, and hack the build process to use a temporary package + # configuration file instead. preConfigure = '' - find src -name files\*.mk -exec sed -i -- "s/--user//g" '{}' \; + p=`pwd`/ehc-local-packages + echo '[]' > $p + sed -i "s|--user|--package-db=$p|g" mk/shared.mk.in + sed -i "s|-fglasgow-exts|-fglasgow-exts -package-conf=$p|g" mk/shared.mk.in 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 100/ehclib"; - - installPhase = '' - cd bin - - # install executables - echo "installing executables..." - mkdir -p $out/bin-ehc - for i in *; do - if [[ -d $i ]]; then - 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 i in *; do - if [[ -d $i ]]; then - echo '#!'"$SHELL" > $out/bin/ehc-$i - echo "exec \"$out/bin-ehc/ehc-$i\" --use-inplace=0 -P $out/lib-ehc/$i/ehcbase" '"$@"' >> $out/bin/ehc-$i - chmod 751 $out/bin/ehc-$i - fi; - done ''; meta = { diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index d34c0835ea8..c13b50eff5a 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -843,8 +843,8 @@ rec { # Compilers. ehc = import ../development/compilers/ehc { - inherit ghc uulib uuagc; - inherit (pkgs) fetchsvn stdenv coreutils m4 libtool llvm; + inherit ghc uulib uuagc mtl network binary fgl; + inherit (pkgs) fetchsvn stdenv coreutils glibc m4 libtool llvm; }; helium = import ../development/compilers/helium {