call function
1 call递归扩展变量
本质上仍然是变量扩展,等价于$(),只不过扩展的时候带了参数,$(call xxx)返回的是xxx扩展之后的值。参数依次赋值给$(1),$(2)......,但是参数要在赋值之前完成扩展。
2 call define定义的多行变量
本质上仍然是变量扩展,参数依次赋值给$(1),$(2)......,但是在赋值之前也要扩展。完成扩展之后替换出现call的地方,这样就完成了对call函数的扩展。
注意,call是不会对define定义的多行变量本身(除了$(1),$(2))进行扩展的,也就是说,它只是进行参数的替换。
3 call builtin函数
直接执行builtin,不过参数要先扩展然后再传给builtin。