Alejandro Colomar (Monday, October 31, 2022 11:06) replied:
I'm curious: what is .WAIT made for? Isn't it just a workaround for
broken dependencies?
No.
I mean, considering the following example:
all: one two .WAIT three
one two three: ; @sleep 1; echo $@
It's the same as if it was written as
all: one two three
three: one two
one two three: ; @sleep 1; echo $@
Isn't it?
Only from the point of view of make all; try make three and you'll see
the difference.
If you make three with the first make file, it'll take one second and
just echo three. Passing -j 37 will make no difference. If you make
three with the second make file, it'll take at least two seconds (three
with -j1) and output one and two (in some order) then three.
If you make all with the either makefile, it'll behave like make three
with the second makefile, but differently from make three with the first
makefile.
If any other targets depend on three, they're likewise changed by the
second makefile, compared to the first,