d5e7cd89bf
normal target (the latter dependency being the reason why it's made), the .MADE parent should not be put on the `toBeMade' list again (in Make_Update()) since it was already put on it in Make_ExpandUse(). Doing so would cause the rules for the .MADE target to be executed (at least) twice, and also mess up the unmade children count of _its_ parent, resulting in spurious graph cylce detection. To achieve this, make sure the unmade children count of the .MADE target is set to zero before enqueueing it on the `toBeMade' list in Make_ExpandUse(). Then, in Make_Update(), check if the parent has the .MADE attribute before diddling with the queue. For the same reason the status of a node must not be set to UPTODATE unconditionally in compat mode, since that will prevent the node from being built even if it is the source of a normal target. Instead, check both its state and the type of the parent to decide whether to continue on behalf of the current parent. |
||
---|---|---|
bin | ||
crypto | ||
dist | ||
distrib | ||
etc | ||
games | ||
gnu | ||
include | ||
lib | ||
libexec | ||
regress | ||
sbin | ||
share | ||
sys | ||
tools | ||
usr.bin | ||
usr.sbin | ||
build.sh | ||
BUILDING | ||
BUILDING.mdoc | ||
Makefile | ||
Makefile.inc | ||
UPDATING |