Building system again
Ian Lynagh
igloo at earth.li
Wed Jun 20 19:53:41 EDT 2007
Hi Roman,
On Wed, Jun 20, 2007 at 04:38:36PM +1000, Roman Leshchinskiy wrote:
>
> today, I tried to build the ghc-ndp branch from a fresh tree after two
> weeks off. Ultimately, it sort of worked, but not without some pain.
> I'll describe what I did and the problems I've encountered in the hope
> that it will be helpful.
Very, thanks!
> == running darcs get --partial
> http://darcs.haskell.org/ghc-ndp/packages/base
> Invalid repository: http://darcs.haskell.org/ghc-ndp/packages/base
>
> This is because darcs-all determines the base url of the repository by
> removing a trailing "ghc". However, our url ends with "ghc-ndp" so this
> doesn't work. The workaround is to change _darcs/prefs/defaultrepo to
> http://darcs.haskell.org/ghc. I assume this is going to be problematic
> for all branches.
Good point - now fixed.
> cd libraries
> darcs get http://darcs.haskell.org/packages/ndp
> cd ..
> <set up mk/build.mk>
> autoreconf
Are there docs somewhere that still tell you to run autoreconf?
> sh boot
>
> This step is new and, of course, I skipped it on first try. The README
> mentions it but why is it necessary at all? Couldn't this be done as
> part of configure?
It runs autoreconf, for the root and also all of the libraries.
So configure can't run it, as it is what creates configure :-)
> configure
>
> Works, but the first line of output is strange:
>
> checking for GHC version date... darcs: getFdStatus: invalid argument
> (Bad file descriptor)
Does
darcs changes --quiet --no-summary --xml | head -500 | grep 'date=' | sed "s/^.*date='\([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\).*$/\1/g" | sort -n | tail -1
give the same error? Hmm, I think that's really supposed to be "tail -n 1" - I wonder if that's what's causing the problem.
> Also, IMO Haddock errors should never be treated as fatal by
> the build system.
When we're making releases or building distro packages we want the build
to fail if making the docs fails. We also want a big flag at the very
least during the nightly builds.
> A related question: is there a way for a package to say that it doesn't
> want to be processed with Haddock? From the Cabal documentation, I'd
> guess the answer is no.
You could write a haddock hook that does nothing, or you can wrap
individual modules with #ifndef __HADDOCK__/#endif.
> 2. Parallel make (i.e., make -j) doesn't work at all for me.
We've now fixed this too, although it turned out to be non-trivial to
fix in as nice a way as I'd hoped, so libraries are just built
sequentially for now.
Thanks
Ian
More information about the Cvs-ghc
mailing list