summary refs log tree commit diff
path: root/pkgs/development/compilers/uhc/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/uhc/default.nix')
-rw-r--r--pkgs/development/compilers/uhc/default.nix44
1 files changed, 44 insertions, 0 deletions
diff --git a/pkgs/development/compilers/uhc/default.nix b/pkgs/development/compilers/uhc/default.nix
new file mode 100644
index 000000000000..0baba9c603ed
--- /dev/null
+++ b/pkgs/development/compilers/uhc/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, coreutils, glibc, fetchsvn, m4, libtool, ghc, uulib
+, uuagc, mtl, network, binary, llvm, fgl, syb
+}:
+
+let
+  revision = "2375";
+in
+stdenv.mkDerivation {
+  name = "uhc-svn-${revision}";
+
+  src = fetchsvn {
+     url = "https://subversion.cs.uu.nl/repos/project.UHC.pub/trunk/EHC";
+     rev = revision;
+     sha256 = "bde79664b7d04337ce668eab63291702687e6d572a302111425e5ff870c57619";
+  };
+
+  propagatedBuildInputs = [mtl network binary fgl syb];
+  buildInputs = [coreutils m4 ghc libtool uulib uuagc];
+
+  # Can we rename this flag to "--with-cpp-uhc-options"?
+  configureFlags = "--with-cpp-ehc-options=-I${glibc}/include";
+
+  # UHC 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 = ''
+    p=`pwd`/uhc-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
+  '';
+
+  meta = {
+    homepage = "http://www.cs.uu.nl/wiki/UHC";
+    description = "Utrecht Haskell Compiler";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [
+      stdenv.lib.maintainers.andres
+      stdenv.lib.maintainers.simons
+    ];
+  };
+}