mirror of
https://github.com/mirror/make.git
synced 2025-01-09 11:50:46 +08:00
21d3865973
The traditional definition of "ought to exist" in the user's manual can lead to make choosing a poor series of chained implicit rules. Modify that rule so that we first attempt to resolve implicit rules by considering targets which are only (a) targets or (b) explicit prerequisites of the current target. For backward-compatibility, if we don't find a solution using that algorithm use the previous definition where "ought to exist" means "mentioned as a prerequisite of any target". * src/implicit.c (pattern_search): An extra argument controls whether to perform the backward-compatible rule search or not. If a prereq is a target, or if it's a prerequisite of THIS target, then choose it. If we get to the end and haven't found a match, but we have found a potential compatibility rule, then retry with compat rules enabled. If we're searching with compat rules enabled and we find a file mentioned as a prerequisite of ANY target, then use it. * tests/features/implicit_search: Provide a large suite of tests for different steps of implicit rule search. |
||
---|---|---|
.. | ||
features | ||
functions | ||
misc | ||
options | ||
targets | ||
variables | ||
vms | ||
test_template |