]> git.ipfire.org Git - thirdparty/make.git/commit
[SV 12078, SV 62809] Rebuild grouped targets if any is missing
authorPaul Smith <psmith@gnu.org>
Tue, 20 Sep 2022 06:10:14 +0000 (02:10 -0400)
committerPaul Smith <psmith@gnu.org>
Tue, 20 Sep 2022 07:55:39 +0000 (03:55 -0400)
commitfabb03eac412b5ea19f1a97be31dc8c6fa7fc047
tree484dddbd9de8d613e84151a3aced0264f994932a
parent618c53a225d255345f0804038f85afd021fe68ca
[SV 12078, SV 62809] Rebuild grouped targets if any is missing

If any of a set of grouped targets is missing or out of date, even
if make is not trying to build that target, rebuild them all.
Ensure this is true for explicit grouped targets as well as pattern
rule grouped targets.

Original patch by Jonathan Gravel <jo@stashed.dev>

* src/remake.c (update_file_1): After matching any pattern rules,
go through the also_make targets and set noexist as needed.  Also
compute the oldest this_mtime.
* tests/scripts/features/grouped_targets: Add regression tests.
* tests/scripts/features/patternrules: Ditto.
* tests/features/vpath: Rewrite to use modern run_make_test().
Add a test that we check for VPATH before implicit rule search.
Move the tests in vpath2 and vpath3 into this suite.
* tests/features/vpathplus: Rewrite to use modern run_make_test().
src/implicit.c
src/remake.c
tests/run_make_tests.pl
tests/scripts/features/grouped_targets
tests/scripts/features/patternrules
tests/scripts/features/vpath
tests/scripts/features/vpath2 [deleted file]
tests/scripts/features/vpath3 [deleted file]
tests/scripts/features/vpathplus