Change 4044

matt_armstrong (Matt Armstrong)
Matt Armstrong committed this change into //guest/matt_armstrong/jam/fix/2
Request Review
Download .zip
Fix //guest/matt_armstrong/jam/bug/3/...
(as well as 2/... and
1/...).

Introduce a pass *before* make0() that propagates INCLUDES
relationships fully thruout the dependency graph.  bug/3 was
caused by make0 trying to do too much at once.  You can't
properly deal with cycles in the INCLUDES graph and correctly
determine dependencies in one pass.

We now have three passes through the dependency graph in make.c

1) make0bscan() - bind and scan all targets in the tree
2) make0includes() - gather all INCLUDES from sub-INCLUDES in
    a way that is safe from cycles in the INCLUDES graph.
3) make0() - fate determination

TODO: verify correct bindtarget() use in make0bscan() and
make0includes()
  • Files 2
  • Comments 0
2 edited 0 added 0 deleted
make.c#7
Loading...
rules.h#6
Loading...
Tip: Use n and p to cycle through the changes.