$(call)可以帮助你在调用子 Makefile 时传递完整的参数列表
时间: 2024-09-10 14:04:27 浏览: 72
makefile常用函数语法总结.pdf
在Makefile语言中,`$(call)`宏是一种函数调用机制,它允许你从一个Makefile调用另一个Makefile(通常作为子Makefile),并能将当前Makefile中的所有变量和命令作为参数传递过去。当使用`$(call)`时,一般形式如下:
```makefile
target: $(call sub-make-target, arg1, arg2, ...)
# 其他规则和指令...
sub-make-target:
# 在这里,$arg1, $arg2... 将被替换为传递进来的参数值
# 这里可以访问到上级Makefile的环境变量
```
例如,如果你想在主Makefile中调用子Makefile里的clean任务,并传入特定的目录参数,你可以这样做:
```makefile
.PHONY: clean
clean: $(call sub-make-dir-clean, dir1)
sub-make-dir-clean:
@echo "Cleaning directory $(firstword $@)"
# 在此处的子Makefile中,dir1会被替换为传递过来的"dir1"
```
阅读全文