This page is meant to document the current state of GHC on Apple Mac OS X on Intel x86 hardware.
As of 2006-11-3, MacPorts (formerly Darwinports, MacPorts) supports GHC 6.6 on x86. The build is from source,
using a binary bootstrap compiler and is "unix-style" in that it does not use frameworks.
The maintainer is Gregory Wright.
The most common problems building ghc 6.6 using MacPorts are not having an up-to-date Xcode and
not cleaning up after a failed build. You should verify that you have the latest Xcode from http://developer.apple.com/tools/xcode.
Downloading Xcode requires a free Apple Developer Connection membership. Please note that
Xcode updates are no longer distributed by Software Update -- you must manually download
the latest version.
If you have tried to build ghc under MacPorts and had the build fail, you must do
> sudo port clean ghc
before you start the build again. Restarting a failed build is a common source of spurious build problems.
It only contains the core libraries (both normal and profiled), though it should be fairly easy to use it to compile any of the extra modules you like. As in previous builds, it requires that GMP.Framework mentioned below. It doesn't have Audrey's nice post-install script, so you'll need to run ranlib on all of the .a files installed in lib/ghc-6.5.
Unfortunately, this package only seems to work if you have DarwinPorts set up in /opt/local, with the readline package installed. There's a tarball of the readline libraries (which unpacks into /usr/local/lib) that might alleviate the problem: http://k9.dv8.org/~atomb/readline.tar.bz2
-- Aaron Tomb
At the time of writing (2006-08-20), darcs ghc won't build out of the box using the build 20060608. Here's steps to do it:
darcs get --partial http://darcs.haskell.org/ghccd ghcchmod +x ./darcs-all./darcs-all get --partialautoreconf./configuredarcs unpull --patch "Fix Array imports" # answer yes# edit file mk/config.mk# on line 790, change variable's value to# GhcMinVersion = 4# that causes normal bootstrapmake -j3 # Add GhcBootLibs=YES if you don't want all the libs, -j3 is cool if you got core duo# compiles stage1 and libs# it should stop on stage2, compiler/Digraph.lhsdarcs pull -a # patch "Fix Array imports"make -j3 stage=2 # Add GhcBootLibs=YES if you don't want all the libs# be happy
If you use build after 20060814 or so, you shouldn't need to unpull and pull the patch.
Make certain you have the GMP.framework for Darwin Intel installed. It can be downloaded as part of the Darcs Intel .dmg file at http://glozer.net/darcs/ .
This build has a post-install script that fixes readline, installs GMP.framework, and runs "ranlib" for you, so there's no manual tweaking involved anymore.
Also note that this build does not have Data.ByteString and Data.ByteString.Char8 as part of the "base" package, because they are not compatible with the same-named modules from the latest fps package, which is going to be merged to GHC real soon now.
You need to manually install GMP.framework in /Library/Frameworks, and libreadline.dylib (and the libreadline*.dylib symlinks, I guess) in /usr/local/lib (assuming prefix=/usr/local).
When using runghc to build some cabal packages (e.g. xhtml), the setup program dies silently after building the archive, but before writing the .installed-pkg-config file. If the setup program is compiled with ghc, this does not happen.
When using "./configure --prefix=/usr/local; make install", GHC gets installed in /usr/local/lib/-6.5/.
The Makefile.in for the release above is broken in a few ways, which causes the /-6.5/ weirdness The problems are:
package is not set. Be sure that the package name does not end in a space
the invocation of mkdirhier (INSTALL_DIR) is broken for libraries & share (lines 205 & 206) , the first $$0 is in error
the library files are installed using cp, but should be installed using 'install -p' to preserve the timestamps