Paul, Paul D. Smith <[EMAIL PROTECTED]> writes:
> I disagree, actually. It's a settled feature of make that the DAG is > not a simple tree: that there can be more than one pathway to a given > target in the DAG. > > The placement of the .WAIT prerequisite implies a relationship between > two prerequisites of a given target; I don't think it's odd to assume > that it does not imply anything about any other relationship between those > same files, as targets or prerequisites. > > Look at it this way: envision the DAG. I would say that .WAIT is a > block on one of the edges between two nodes in the DAG. If that same > node can be accessed through other edges, then that's fine: the .WAIT > block doesn't apply to those. > > Make sense? Or still no? Yes it does. It's not clear to me whether it's good or bad, though. I don't see how "result depends on how we got here" type of logic is of any usefulness especially in the context of make (read "build reproducibility"). That's why I also think that inheritance of pattern/target-specific variables, the way it is implemented now, is of limited use. In this particular case, consider the following makefile: all: foo fox foo: bar .WAIT baz fox: baz Isn't it according to your logic that execution of command scripts for both 'bar' and 'baz' can start simultaneously? One is via all->foo->bar chain and the other is via all->fox->baz. thanks, -boris
signature.asc
Description: Digital signature
_______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make