我在Makefile中有一些动态命名的变量。这一切都运作良好。 现在我需要在for循环中引用其中的一些变量,但我似乎无法找到正确的语法:
@for module in $(MODULES); do \
(echo $(SRC_$$module)); \
done
每个$(MODULE)是一个需要附加到$的名称(SRC_ ..例如$(SRC_foo)$(SRC_bar)...但我似乎无法用这种语法做到这一点。
答案 0 :(得分:3)
您有扩展时间问题。一旦shell开始运行,就无法动态扩展make-level变量。这是你在这里要做的。
您可以在make时或shell时扩展变量,但不能同时扩展两者。
要在制作时扩展所有内容,您可以使用类似的内容。
@$(foreach module,$(MODULES),$(foreach cfile,$(SRC_$(module)),echo '[$(cfile)]';))
在shell时间扩展是可能的,但有点麻烦/棘手。