Parallel builds

Ian Lynagh igloo at earth.li
Sat Sep 8 19:35:30 EDT 2007


On Sat, Sep 08, 2007 at 07:04:59PM +0200, Sven Panne wrote:
> Is there a special reason why we don't pass MFLAGS (or better: MAKEFLAGS) down 
> to sub-makes in ghc/Makefile?
> 
>    ...
>    $(MAKE) -C libraries boot
>    $(MAKE) -C libraries all
>    ...
> 
> This way, "-j" is not passed down to the library build, resulting in a 
> strictly sequential build. Is ghc/libraries not ready for -j2 and friends or 
> is this an unintentional omission? The build of the compiler itself *is* 
> nicely parallelized (confirmed by my system monitor), because the sub-make 
> gets the -j option.
> 
> There were some discussions about parallel builds some time ago, but I can't 
> remember what the conclusion was. Even if a large-scale parallelism on 
> package level might be tricky, having parallel builds within a package would 
> give a large boost in the overall compilation speed.

As Stefan says, the way we recursively call make isn't the problem.
libraries/Makefile contains:

    # make doesn't give us an easy way to get the libraries built in
    # dependency order the first time, but not rebuild base (for example)
    # when we want to rebuild another library later.
    # So for now we just don't do anything in parallel in here.
    .NOTPARALLEL:

I thought that building the modules of any given library was still done
in parallel, but I don't think I've checked this myself.


Thanks
Ian



More information about the Cvs-ghc mailing list