是否可以在 Makefile 中打印变量并相应地更改它们?

Is it possible to print variables and change them consequently in Makefile?

我有以下 Makefile:

all: print1 print2 

world=world1
print1:
    @echo $(world)

world=world2
print2:
    @echo $(world)

.PHONY: all print1 print2

当 运行 make 我期望得到:

world1
world2

但我得到了:

world2
world2

仅使用变量 world 是否可以获得预期的输出?

Target-specific variable values 就是为此而生的。

print1: world=world1
print1:
    @echo $(world)

print2: world=world2
print2:
    @echo $(world)

如果食谱相同,则可以组合规则:

print1: world=world1
print2: world=world2

print1 print2:
    @echo $(world)