Linux 驱动学习笔记-Makefile foreach 函数(五)
本系列均为陈皓所著的《跟我一起写makefile》的学习笔记,只是为了加深笔者记忆,如果读者想进一步学习可阅读此书
调用
$(foreach var,list,text)
解析
功能:把参数 list 中的单词逐个取出放到参数 var 所指定的变量中,然后再执行 text 所包含的表达式。每一次 text 会返回一个字符串,循环过程中,text 的所返回的每个字符串会以空格分隔,最后当整个循环结束时, text 所返回的每个字符串所组成的整个字符常(以空格分隔) 将会是 foreach 函数的返回值。
所以 var 最好是一个变量名,list 可以是一个表达式,而 text 中一般会使用 var 这个参数来依次枚举 list 中的单词
使用示例
names := a b c d
files := $(foreach n,$(names),$(n).o)
all:
@echo $(files)
输出结果:a.o b.o c.o d.o
注意:foreach 中的 var 参数是一个临时的局部变量,foreach 函数执行完后,参数 var 的变量将不再作用,其作用域只在 foreach 函数当中。