make/tests/scripts/features
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
..
archives tests: Convert %CONFIG_FLAGS to get_config() 2019-10-05 17:47:52 -04:00
comments * Added the test suite to the main distribution. 1999-09-14 02:03:19 +00:00
conditionals * read.c (eval): [SV 47960] Skip record waiting files when ignoring. 2016-05-21 16:22:32 -04:00
default_names Clean up some tests for use on Windows. 2013-10-05 19:30:48 -04:00
dircache [SV 41273] Allow the directory cache to be invalidated 2020-11-29 17:59:16 -05:00
double_colon [SV 60435] Ensure intermediate grouped files are removed 2021-09-07 01:14:20 -04:00
echoing Portability changes for the test suite. 2016-12-26 09:01:59 -05:00
errors * job.c (child_error): Modify error message string. 2019-09-22 17:02:57 -04:00
escape Add test suite support to Windows 2017-06-04 18:37:20 -04:00
exec * tests/scripts/features/exec: Small cleanup 2021-03-15 01:17:06 -04:00
export Support "unexport" in target-specific variables. 2020-11-29 17:57:33 -05:00
grouped_targets [SV 60188] Explicit prereqs cannot be intermediate files 2021-03-15 02:10:49 -04:00
implicit_search [SV 48643] Enhance "ought to exist" definition 2021-11-27 22:00:05 -05:00
include [SV 57778] Don't ignore included makefiles that can't be read 2021-09-06 20:20:28 -04:00
jobserver tests: Simplify customization of %ENV 2020-04-01 02:02:57 -04:00
load tests: Convert %CONFIG_FLAGS to get_config() 2019-10-05 17:47:52 -04:00
loadapi tests: Convert %CONFIG_FLAGS to get_config() 2019-10-05 17:47:52 -04:00
mult_rules Convert all "`'" quotes to "''" per new GNU Coding Standard guidelines. 2012-03-04 00:24:20 +00:00
mult_targets * Added the test suite to the main distribution. 1999-09-14 02:03:19 +00:00
order_only Make second expansion optional (partial implementation). 2005-10-24 13:01:39 +00:00
output-sync Rename jhelp.pl to thelp.pl and make it a generic test helper. 2019-12-16 09:31:31 -05:00
override - Modify access of config and gnulib Savannah modules to use GIT 2009-06-04 06:30:27 +00:00
parallelism tests: Simplify customization of %ENV 2020-04-01 02:02:57 -04:00
patspecific_vars [SV 39709] Fix some typos. 2013-10-09 01:53:55 -04:00
patternrules [SV 60435] Ensure intermediate grouped files are removed 2021-09-07 01:14:20 -04:00
quoting Add test suite support to Windows 2017-06-04 18:37:20 -04:00
recursion [SV 46013] Allow recursive variable overrides from Makefiles 2019-05-19 19:25:50 -04:00
reinvoke [SV 60595] Restart whenever any makefile is rebuilt 2021-09-03 12:08:11 -04:00
rule_glob [Bug #39310] Parse simple pattern prereqs for globbing. 2013-07-22 02:23:02 -04:00
se_explicit [SV 60659] Set $$< properly in second expansion 2021-05-30 15:53:41 -04:00
se_implicit [SV 60659] Set $$< properly in second expansion 2021-05-30 15:53:41 -04:00
se_statpat - Rework secondary expansion so we only defer it if there's a possibility 2009-09-24 02:41:44 +00:00
shell_assignment Add new feature: != shell assignment for portability with BSD make. 2011-04-18 01:25:20 +00:00
statipattrules [SV 60188] Explicit prereqs cannot be intermediate files 2021-03-15 02:10:49 -04:00
suffixrules [SV 40657] Reinstate old behavior for suffix rules with prereqs 2020-01-19 17:04:52 -05:00
targetvars Support "unexport" in target-specific variables. 2020-11-29 17:57:33 -05:00
utf8 Ignore UTF-8 BOMs. See Savannah bug #36529. 2012-09-09 21:11:00 +00:00
varnesting Save strings we're expanding in case an embedded eval causes them 2011-08-29 16:20:19 +00:00
vpath Convert all "`'" quotes to "''" per new GNU Coding Standard guidelines. 2012-03-04 00:24:20 +00:00
vpath2 Refresh the test suite framework implementation. 2019-09-16 08:25:33 -04:00
vpath3 [SV 41758]: Fix archive support for VMS. 2014-10-20 01:31:42 -04:00
vpathgpath * tests/scripts/features/vpathgpath: Avoid duplicate function name. 2020-11-29 17:59:40 -05:00
vpathplus * tests/scripts/features/vpathplus: Fix output for big-endian systems. 2019-09-22 17:35:51 -04:00