make/tests/scripts/targets
Dmitry Goncharov 80727d709c [SV 63856] Fix pruning of double-colon rules
Given this setup:

  $ cat Makefile
  A::; @echo A-1 && sleep 1 && echo A-1 done
  A::; @echo A-2 && sleep 1 && echo A-2 done
  A::; @echo A-3 && sleep 1 && echo A-3 done
  B::; @echo B-1 && sleep 1 && echo B-1 done
  B::; @echo B-2 && sleep 1 && echo B-2 done
  B::; @echo B-3 && sleep 1 && echo B-3 done

  $ make -j8 A .WAIT B

All recipes for A should be started sequentially and complete before
any recipe for B is started, then all recipes for B should be started
sequentially.  This wasn't happening because the double-colon target
was getting pruned too early.

* src/remake.c (update_file): Don't prune a target if it's a double
colon rule which is complete, but there are other recipes to run for
this target: we want those other recipes to be run first.
* tests/scripts/targets/WAIT: Test .WAIT with double colon rules.
2023-04-02 11:12:19 -04:00
..
clean Portability changes for the test suite. 2016-12-26 09:01:59 -05:00
DEFAULT Refresh the test suite framework implementation. 2019-09-16 08:25:33 -04:00
DELETE_ON_ERROR Adjust output strings to be aligned 2023-04-02 10:02:18 -04:00
FORCE Portability changes for the test suite. 2016-12-26 09:01:59 -05:00
INTERMEDIATE * tests/scripts/targets/INTERMEDIATE: Rewrite for new test method 2021-12-29 15:27:04 -05:00
NOTINTERMEDIATE [SV 63417] Ensure global .NOTINTERMEDIATE disables all intermediates 2022-11-28 10:50:55 -05:00
ONESHELL [SV 62654] Support GNU Make on z/OS 2023-01-08 10:45:38 -05:00
PHONY Portability changes for the test suite. 2016-12-26 09:01:59 -05:00
POSIX [SV 63667] In .POSIX, use shell flags -c when ignoring errors 2023-01-28 13:04:47 -05:00
SECONDARY Use Jenkins hash. 2017-11-11 10:08:30 -05:00
SILENT [SV 54740] Ensure .SILENT settings do not leak into sub-makes 2019-05-19 15:27:26 -04:00
WAIT [SV 63856] Fix pruning of double-colon rules 2023-04-02 11:12:19 -04:00