d64917ad17
* There now is full support for building Haskell packages as shared libraries for GHC versions 7.4.2 or later. The Cabal builder recognizes the following attributes: - enableSharedLibraries configures Cabal to build of shared libraries in addition to static ones. This option requires that all dependencies of the package have been compiled for use in shared libraries, too. - enableSharedExecutables configures Cabal to prefer shared libraries when linking executables. The default values for these attributes are arguments to the haskellPackages expression. * Haskell builds now run in a LANG="en_US.UTF-8" environment to avoid plenty of build and test suite errors. Without this setting, GHC seems unable to deal with the UTF-8 character encoding that's generally considered standard in the Haskell world. * The Cabal builder supports a new attribute 'testTarget' to specify the exact set of tests to be run during the check phase. * The ghc-wrapper attribute ghcVersion has been removed. Instead, we use the ghc.version attribute, which exists in unwrapped GHC derivations, too.
50 lines
1.7 KiB
Nix
50 lines
1.7 KiB
Nix
{ stdenv, coreutils, glibc, fetchgit, m4, libtool, ghc, uulib
|
|
, uuagc, mtl, network, binary, llvm, fgl, syb
|
|
}:
|
|
|
|
# this check won't be needed anymore after ghc-wrapper is fixed
|
|
# to show ghc-builtin packages in "ghc-pkg list" output.
|
|
let binaryIsBuiltIn = builtins.compareVersions "7.2.1" ghc.version != 1;
|
|
|
|
in stdenv.mkDerivation {
|
|
name = "uhc-svn-git20120502";
|
|
|
|
src = fetchgit {
|
|
url = "https://github.com/UU-ComputerScience/uhc.git";
|
|
rev = "ab26d787657bb729d8a4f92ef5d067d9990f6ce3";
|
|
sha256 = "66c5b6d95dc80a652f6e17476a1b18fbef4b4ff6199a92d033f0055526ec97ff";
|
|
};
|
|
|
|
postUnpack = "sourceRoot=\${sourceRoot}/EHC";
|
|
|
|
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
|
|
sed -i "s|/bin/date|${coreutils}/bin/date|g" mk/config.mk.in
|
|
'' + stdenv.lib.optionalString binaryIsBuiltIn ''
|
|
sed -i "s|ghcLibBinary=no|ghcLibBinaryExists=yes|" configure
|
|
'';
|
|
|
|
meta = {
|
|
homepage = "http://www.cs.uu.nl/wiki/UHC";
|
|
description = "Utrecht Haskell Compiler";
|
|
platforms = stdenv.lib.platforms.linux;
|
|
maintainers = [
|
|
stdenv.lib.maintainers.andres
|
|
];
|
|
};
|
|
}
|