GNU Make仅执行10条规则

时间:2018-06-20 15:31:24

标签: makefile gnu-make

我有一个makefile,它将一些文件转换成PDF。现在,makefile如下所示:

PDFS = file_A.pdf file_B.pdf <snip> file_K.pdf

all : convert

file_%.pdf:
    $(CONVERTER_COMMAND) $< -o $@

file_A.pdf : file1.ext
file_B.pdf : file2.ext
<snip>
file_K.pdf : file11.ext

convert : $(PDFS)
.PHONY : convert

以上是一般结构(很遗憾,我无法显示实际文件)。

运行make convert就像前10个文件的超级按钮一样,也就是说,它会生成file_A.pdf直到file_J.pdf。但是,永远不会生成最后一个file_K.pdf。如果我将规则移到列表的顶部,则会生成它,但是列表中现在的最后一个规则将不再生成。

如果我做make file_K.pdf,则只需声明文件为up to date,即使该文件尚不存在。

有什么想法吗?还是关于解决类似问题的其他替代思路?

1 个答案:

答案 0 :(得分:2)

最后一个先决条件语句之后(在上面列表中的file_K.pdf : file11.ext之后),行上是否有离群TAB字符?

您应该尝试运行make -d,看看它对未构建的目标有什么要求。