Lots of new unit-tests increase code coverage. Lots of refactoring, cleanup and simlpification to reduce code size. Fixes for Bug 223564 and 245807 Updates to dirdeps.mk and meta2deps.py
46 lines
1.4 KiB
Makefile
46 lines
1.4 KiB
Makefile
# $NetBSD: deptgt-end.mk,v 1.6 2020/10/23 19:28:17 rillig Exp $
|
|
#
|
|
# Tests for the special target .END in dependency declarations,
|
|
# which is run after making the desired targets.
|
|
|
|
VAR= Should not be expanded.
|
|
|
|
.BEGIN:
|
|
: $@ '$${VAR}'
|
|
...
|
|
: $@ '$${VAR}' deferred
|
|
# Oops: The deferred command must not be expanded twice.
|
|
# The Var_Subst in Compat_RunCommand looks suspicious.
|
|
# The Var_Subst in JobSaveCommand looks suspicious.
|
|
|
|
.END:
|
|
: $@ '$${VAR}'
|
|
...
|
|
: $@ '$${VAR}' deferred
|
|
|
|
# The .END node can define dependencies, just like a regular target.
|
|
.END: end-action
|
|
end-action: .NOTMAIN
|
|
: $@ '$${VAR}'
|
|
...
|
|
: $@ '$${VAR}' deferred
|
|
|
|
all:
|
|
: $@ '$${VAR}'
|
|
...
|
|
: $@ '$${VAR}' deferred
|
|
# Oops: The deferred command must not be expanded twice.
|
|
# The Var_Subst in Compat_RunCommand looks suspicious.
|
|
# The Var_Subst in JobSaveCommand looks suspicious.
|
|
|
|
# The deferred commands are run in the order '.END .BEGIN all'.
|
|
# This may be unexpected at first since the natural order would be
|
|
# '.BEGIN all .END', but it is implemented correctly.
|
|
#
|
|
# At the point where the commands of a node with deferred commands are run,
|
|
# the deferred commands are appended to the commands of the .END node.
|
|
# This happens in Compat_RunCommand, and to prevent an endless loop, the
|
|
# deferred commands of the .END node itself are not appended to itself.
|
|
# Instead, the deferred commands of the .END node are run as if they were
|
|
# immediate commands.
|