* 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
|
|
];
|
|
};
|
|
}
|