Separating build tree from the source tree
Simon Marlow
marlowsd at gmail.com
Tue Dec 18 15:16:14 CET 2012
On 18/12/12 10:09, Jan Stolarek wrote:
> It turns out that running 'perl boot' in symlinked directory (ghc-build) is not enough. I had to
> run 'perl boot' in the original ghc-working dir and now configure succeedes in ghc-build.
You shouldn't do that, because now you have build files in your source
directory.
The problem you ran into is that the configure script tries to use git
to detect the date of the latest patch, to use as the version number of
GHC (e.g. 7.7.20121218). If you're in a build tree made by lndir, then
you don't have a .git directory, so the configure script gives up and
uses 7.7 as the version. This will work, but it's not good because if
you later install some packages for this GHC build using cabal, they
will conflict with packages from other GHC builds in your ~/.cabal
directory. (you can use cabal-dev to avoid this, which is what I do
sometimes).
I've added a note to the wiki about this:
http://hackage.haskell.org/trac/ghc/wiki/Building/Using#Sourcetreesandbuildtrees
The workaround is to link your .git directory from your build tree, like so:
$ cd ghc-build
$ ln -s $source/.git .
where $source is your source tree.
I don't know why configure failed on your Debian box, though.
Cheers,
Simon
More information about the Glasgow-haskell-users
mailing list