Dynamic macros are assigned while processing any and all targets. They can be used within the target rule as is, or in the dependency list by prepending an additional $ character to the reference. A reference beginning with $$ is called a delayed reference to a macro. For instance, the entry:
x.o y.o z.o: $$@.BAK cp $@.BAK $@
could be used to derive x.o from x.o.BAK, and so forth for y.o and z.o.