📅  最后修改于: 2023-12-03 15:07:54.296000             🧑  作者: Mango
在 Makefile 中,我们可以定义自定义后缀规则,以告诉 make 如何根据源文件生成目标文件。通常,Makefile 默认已经定义了很多后缀规则,如 .c
文件会自动转换为 .o
文件,.f
文件转换为 .o
文件等等。但是,当我们需要自定义后缀规则来编译特定的文件时,就需要用到自定义后缀规则了。
自定义后缀规则的语法格式如下:
.suffix1.suffix2:
recipe
其中,.suffix1.suffix2
表示目标文件的后缀,recipe
则表示生成目标文件的规则。下面是一个具体的例子:
# 将 .md 文件转换为 .html 文件
.md.html:
pandoc -s -o $@ $<
上述规则意味着,当 make 在编译时遇到一个 .md
后缀的文件,就会按照指定的规则执行 pandoc -s -o $@ $<
命令来生成该文件的目标文件 .html
。
$@
表示目标文件名,也就是 .html
。$<
表示依赖文件名,也就是 .md
。参考资料:
# example.md转换为example.html
.md.html:
pandoc -o $@ $<
# example.markdown转换为example.htm
.markdown.htm:
pandoc -o $@ $<