需要帮助来理解make文件中的foreach函数

时间:2015-07-16 11:11:50

标签: makefile gnu-make

您好我正在尝试了解foreach函数的原理。很明显,我是make系统的新手,所以我需要对实际发生的事情做一些澄清。所以在下面的例子中:

dirs := a b c d
files := $(foreach dir,$(dirs),$(wildcard $(dir)/*)

将扩展为

files := $(wildcard a/* b/* c/* d/*)

那么 dir 是什么,它的用途是什么?这不是多余的吗?我的建议是,dir接受每次迭代的dirs的每个连续(空格分离)值的值。然后通配符功能就可以了。

1 个答案:

答案 0 :(得分:0)

Foreach具有以下语法: foreach(var, list, text)

基本上,var获取list中每个元素的值,然后执行text。您可以使用var(或示例中的dir)在text中指定要在dir上执行的命令(或一系列命令)。

对于其他读者,OP的示例来自GNU Make file manual