Substitution Within Predefined Macros

You can also substitute text in any predefined macro (except $$@) using the same syntax as for other macros.

The command in the following description block makes a substitution within the predefined macro $@, which represents the full name of the current target. Note that although $@ is a single-character macro, when it is used in a substitution, it must be enclosed in parentheses.

target.abc : depend.xyz

echo $(@:targ=blank)

NMAKE substitutes blank for targ in the target, resulting in the string blanket.abc. If dependent depend.xyz has a later time stamp than target target.abc, then NMAKE executes the command

echo blanket.abc