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

Need help to understand foreach function in make files

你好,我想了解一下foreach函数的原理。很明显我是 make 系统的新手,所以我需要更多地澄清真正发生的事情。所以在下面的例子中:

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

将扩展到

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

那么 dir 是什么,它有什么用?这不是多余的吗?我的建议是 dir 接受每次迭代的 dirs 的每个连续(space 单独)值。然后通配符函数完成它的工作。

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

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

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