.PHONY规则来实现Makefile 参数往下层makefile传递
时间: 2024-09-09 07:12:09 浏览: 46
Makefile的特殊目标-layui当点击文本框时弹出选择框显示选择内容的例子
.PHONY规则是Makefile中的一种特殊目标,它告诉Make系统,这些目标不是实际存在的文件,而是代表了一系列的命令或动作。当Makefile中的.PHONY规则遇到像`help`、`clean`这类目标时,它们并不检查是否存在对应的源文件,而是直接执行预设的命令序列。
在需要将参数从上层Makefile传递到下层Makefile的情况下,可以这样做:
1. 在上层Makefile中,定义`.PHONY`规则并接收参数:
```make
help: ; @echo "This is a helper target that calls the next Makefile with $@"
make next := $(MAKE) -f ./subdir/Makefile $@
```
当你运行`make help`时,它会执行`./subdir/Makefile help`,把`help`作为参数传给子Makefile。
2. 子Makefile接收到参数后处理:
```make
# subdir/Makefile
.PHONY: $(next_TARGET)
$(next_TARGET): ; @echo "Executing command from parent: '$(next)'"
```
这样,如果`subdir/Makefile`有自己的`.PHONY`规则,比如`clean`,子Makefile会用上层Makefile提供的`next`变量执行相应的任务。
阅读全文