Makefile'for'变量作为动态变量名

时间:2015-11-22 22:26:37

标签: makefile

我在Makefile中有一些动态命名的变量。这一切都运作良好。 现在我需要在for循环中引用其中的一些变量,但我似乎无法找到正确的语法:

@for module in $(MODULES); do \
    (echo $(SRC_$$module)); \
done

每个$(MODULE)是一个需要附加到$的名称(SRC_ ..例如$(SRC_foo)$(SRC_bar)...但我似乎无法用这种语法做到这一点。

1 个答案:

答案 0 :(得分:3)

您有扩展时间问题。一旦shell开始运行,就无法动态扩展make-level变量。这是你在这里要做的。

您可以在make时或shell时扩展变量,但不能同时扩展两者。

要在制作时扩展所有内容,您可以使用类似的内容。

@$(foreach module,$(MODULES),$(foreach cfile,$(SRC_$(module)),echo '[$(cfile)]';))

在shell时间扩展是可能的,但有点麻烦/棘手。