make/tests/scripts/features
Dmitry Goncharov 510e5ce801 [SV 60188] Explicit prereqs cannot be intermediate files
If a prereq of a pattern is an explicit target, it should not be
considered an intermediate file.

(Minor tweaks by Paul Smith <psmith@gnu.org>)

* src/dep.h (struct nameseq): Add is_explicit flag.
* src/implicit.c (struct patdeps): Ditto.
(pattern_search): Set the is_explicit flag appropriately for each
prerequisite, based on whether it contained a pattern or not.
Update the help output to note implicit vs. explicit prereqs.
* tests/scripts/features/double_colon: Add tests.
* tests/scripts/features/grouped_targets: Ditto.
* tests/scripts/features/patternrules: Ditto.
* tests/scripts/features/se_implicit: Ditto.
* tests/scripts/features/statipattrules: Ditto.
2021-03-15 02:10:49 -04:00
..
archives
comments
conditionals
default_names
dircache
double_colon [SV 60188] Explicit prereqs cannot be intermediate files 2021-03-15 02:10:49 -04:00
echoing
errors
escape
exec
export
grouped_targets [SV 60188] Explicit prereqs cannot be intermediate files 2021-03-15 02:10:49 -04:00
include
jobserver
load
loadapi
mult_rules
mult_targets
order_only
output-sync
override
parallelism
patspecific_vars
patternrules [SV 60188] Explicit prereqs cannot be intermediate files 2021-03-15 02:10:49 -04:00
quoting
recursion
reinvoke
rule_glob
se_explicit
se_implicit [SV 60188] Explicit prereqs cannot be intermediate files 2021-03-15 02:10:49 -04:00
se_statpat
shell_assignment
statipattrules [SV 60188] Explicit prereqs cannot be intermediate files 2021-03-15 02:10:49 -04:00
suffixrules
targetvars
utf8
varnesting
vpath
vpath2
vpath3
vpathgpath
vpathplus