Makefile中的filter 使用举例 以及返回值
时间: 2024-10-15 19:19:30 浏览: 32
Makefile详解 && Makefile中文文档.zip
在Makefile中,`filter`是一个用于文本替换的规则动作。它主要用于处理文件内容,如去除注释、格式化等。`filter`通常配合`=》`操作符一起使用,格式如下:
```makefile
SRC = source.txt
DST = processed.txt
CMD = sed 's/pattern/replacement/g'
%.filtered: %.txt
$(CMD) $< > $@
# 示例:使用filter将source.txt中的所有"example"替换为"new example"
.PHONY: process-source
process-source: $(SRC).filtered
```
在这个例子中,`.PHONY: process-source`声明了一个非实际目标`process-source`,它的依赖是`$(SRC).filtered`。当运行`make process-source`时,实际上会执行`sed`命令,将`source.txt`中的所有`pattern`替换为`replacement`,并将结果保存到`processed.txt`(即`$(DST)`)。
`filter`规则的动作部分`(CMD) $< > $@`就是执行具体的文本替换操作。`$<`代表依赖的目标(在这里是未过滤的源文件),`$@`则是目标文件名(这里是过滤后的文件名)。`sed`命令的结果直接覆盖了目标文件。
阅读全文