make/tests/scripts
Dmitry Goncharov 21d3865973 [SV 48643] Enhance "ought to exist" definition
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.
2021-11-27 22:00:05 -05:00
..
features [SV 48643] Enhance "ought to exist" definition 2021-11-27 22:00:05 -05:00
functions Fix build and test issues on Windows 2021-03-28 16:25:52 -04:00
misc [SV 35711] Check for special targets earlier 2020-11-29 17:55:02 -05:00
options tests: Enhance output to contain filename/line number info 2021-11-27 14:03:44 -05:00
targets [SV 60297] Add .NOTINTERMEDIATE special target 2021-07-25 17:15:38 -04:00
variables Add support for the POSIX :::= assignment operator. 2021-09-20 00:29:31 -04:00
vms Refresh the test suite framework implementation. 2019-09-16 08:25:33 -04:00
test_template Update the test template. A few fixes in run_make_test(). 2004-09-22 04:36:17 +00:00