Hi Peter,

On Fri, Jul 13, 2007 at 04:56:44PM -0400, Peter Tanski wrote:
> 
> For the libraries it is serial but necessarily so in most cases (most  
> others depend on base).  My last question to Ian was whether I could  
> make the internals for each library--boot, configure, makefile,  
> build--independent but I don't think that is possible, either, since  
> the Setup step may require that a previous library is available.  So  
> now that I think about it maybe I can't make the internals  
> independent.

The problem I couldn't see how to nicely solve is this:

When you run make, libraries should be built in a valid order, possibly
in parallel. You can do just this part with
    configure.library.unix: build.library.base
etc.

Now suppose you make changes to the unix library and want to rebuild it.
You run "make build.library.unix", but this time we don't want make to
build base again (although actually this isn't nearly so expensive now
that we are using makefiles, rather than ghc --make, to build base).

We could do this if we could write

    $(foreach SUBDIR,$(SUBDIRS),build.library.$(SUBDIR)): \
    build.library.% build-stamp.library.%: ...
        <commands>
        touch build-stamp.library.$*

    configure.library.unix: build-stamp.library.base

but make complains
    *** multiple target patterns.  Stop.

It might work if we get rid of the first line (the foreach), but I'm not
sure if other things would break if we did that.


Thanks
Ian

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to