~vcs-imports/make/master

Viewing all changes in revision 2693.

  • Committer: Paul Smith
  • Author(s): Dmitry Goncharov
  • Date: 2021-03-15 06:10:49 UTC
  • Revision ID: git-v1:510e5ce801d957338be764a794f1463b662a7edc
[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.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: