Later GNU Make for some reason runs double-colon rule pieces
sequentially.
$$(call vtag,CC/$1)$$(CC/$1) -c -o $$@ $$(CFLAGS) $$(CFLAGS/$1) $$<
%-$1.o: %.S
$$(call vtag,AS/$1)$$(AS/$1) -c -o $$@ $$(ASFLAGS) $$(ASFLAGS/$1) $$<
$$(call vtag,CC/$1)$$(CC/$1) -c -o $$@ $$(CFLAGS) $$(CFLAGS/$1) $$<
%-$1.o: %.S
$$(call vtag,AS/$1)$$(AS/$1) -c -o $$@ $$(ASFLAGS) $$(ASFLAGS/$1) $$<
xchg-$1: xchg-$1.o main-$1.o
$$(call vtag,LD/$1)$$(LD/$1) -o $$@ $$^
endef
xchg-$1: xchg-$1.o main-$1.o
$$(call vtag,LD/$1)$$(LD/$1) -o $$@ $$^
endef