使用 make 规则调用另一个规则

使用 make 规则调用另一个规则

我正在编写一个使用 makefile 的 LaTeX 项目。我有一个 clean 函数来清理多余的 LaTeX 文件:

.PHONY: clean
clean:
    \rm *.aux *.blg *.out *.bbl *.log

但在某些情况下,我需要删除生成的文件以及 PDF 文件。我尝试过使用以下方法:

.PHONY: clean_all
clean_all:
        $(clean) \rm *.pdf

这不起作用,因为它只会删除 PDF 文件。

我的问题是如何调用规则clean内的规则clean_all

答案1

clean_all根据目标制定 目标clean

.PHONY: clean_all clean

clean:
        rm -f *.aux *.blg *.out *.bbl *.log

clean_all: clean
        rm -f *.pdf

我添加了 ,-f以便rm不存在的文件不会在规则中生成错误(例如,当您运行该命令两次时)。

(顺便说一句,我从来没有听说过这些规则被称为函数,您可能需要重新检查术语并在谷歌搜索有关 makefile 的内容时获得更多成功)。

相关内容