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