Subject: Re: make: making .WAIT recursive
To: None <tech-toolchain@NetBSD.org>
From: Aaron J. Grier <agrier@poofygoof.com>
List: tech-toolchain
Date: 02/16/2006 14:31:09
On Thu, Feb 16, 2006 at 04:07:56PM -0600, James Chacon wrote:
> On Thu, Feb 16, 2006 at 09:22:29PM +0000, David Laight wrote:
> > On Wed, Feb 15, 2006 at 11:43:55PM -0800, Aaron J. Grier wrote:
> > > if the two things don't depend on each other, then why can't they
> > > happen concurrently?
> > 
> > Maybe they both try to build the same intermediate target.  This
> > (sort of) happens in sys/i386/stand/bootxx where the different
> > options want to use the same libraries...
> 
> Combine this with dependcies possibly spread across makefile's

that's the problem that needs to be fixed.

if two targets depend on the same intermediary, make will do the right
thing in the parallel case, provided that it knows about the
intermediary.

> and it comes down to either a .WAIT type syntax that's fully recursive
> or no -j type behavior with any sanity.
> 
> Basically we need this if -j is to really function.

.WAIT is a poor substitute for properly expressing dependencies to make.

I believe we agree that missing dependencies is the reason parallel
makes are breaking; what we disagree is the mechanism to fix them.

this evening I'll start poke at bsd.subdir.mk and see what I can come up
with.

-- 
  Aaron J. Grier | "Not your ordinary poofy goof." | agrier@poofygoof.com
              "silly brewer, saaz are for pils!"  --  virt