nixpkgs/pkgs/development/compilers/ghc/7.0.2.nix
Peter Simons b579f4fd5c ghc-7.0.2: fix build on Darwin
There were two problems preventing GHC 7.0.2 from being built on MacOS. For
one, the 'configure' script automatically added the flag

  -isysroot /Developer/SDKs/MacOSX10.5.sdk

to the command-line that's being passed to GCC. This setting doesn't work with
our GCC, and resulted in build errors because standard headers like <stdargs.h>
could no longer be found.

Secondly, the build depends on install_name_tool, which has been added as a
buildInput.

These changes trigger a re-build on all platforms, not just on Darwin. I
realize that this could have been avoided by adding some cruft. However, I
didn't want to add cruft, so there you are.

svn path=/nixpkgs/trunk/; revision=26513
2011-03-25 12:55:37 +00:00

48 lines
1.4 KiB
Nix

{stdenv, fetchurl, ghc, perl, gmp, ncurses, darwinInstallNameToolUtility}:
stdenv.mkDerivation rec {
version = "7.0.2";
name = "ghc-${version}";
# TODO: Does this have to be here, or can it go to meta?
homepage = "http://haskell.org/ghc";
src = fetchurl {
url = "http://haskell.org/ghc/dist/${version}/${name}-src.tar.bz2";
sha256 = "f0551f1af2f008a8a14a888b70c0557e00dd04f9ae309ac91897306cd04a6668";
};
buildInputs = [ghc perl gmp ncurses] ++
(if stdenv.isDarwin then [darwinInstallNameToolUtility] else []);
buildMK = ''
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
'';
preConfigure = ''
echo "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'';
configureFlags=[
"--with-gcc=${stdenv.gcc}/bin/gcc"
];
# required, because otherwise all symbols from HSffi.o are stripped, and
# that in turn causes GHCi to abort
stripDebugFlags=["-S" "--keep-file-symbols"];
meta = {
inherit homepage;
description = "The Glasgow Haskell Compiler";
maintainers = [
stdenv.lib.maintainers.marcweber
stdenv.lib.maintainers.andres
];
platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
};
}