在失败的构建上制作backdate timstamps

时间:2017-06-09 10:56:20

标签: pdf makefile timestamp pdflatex

BACKGRUND: 我经常使用make制作我的乳胶文件,并遇到以下烦恼: 假设我想使用make as

构建file.pdf
.PHONY: all
all: file.pdf    

file.pdf: file.tex
    pdflatex file.tex

这很好用,我的file.pdf会在需要时得到很好的更新......直到乳胶构建中断。现在,问题是pdflatex - 即使构建失败,也留下了更新的pdf(我希望这样)。但是,由于破坏的构建在下次调用make时保留了更新的pdf,因此不会发生任何事情。

我的解决方法是在.file.pdf成功构建后有一个单独的目标file.pdf

.PHONY: all
all: .file.pdf    

.file.pdf: file.tex
    pdflatex file.tex
    touch .file.pdf

这解决了问题总线是丑陋的,因为它创建了一个我不想要的新文件。

问题: 有没有办法告诉make简单地重置(或以其他方式回溯)file.pdf上的时间戳,以防构建失败?这样,下一轮make会找到file.pdf的过时版本并重建。

注意:我知道有一个选项可以删除file.pdf如果构建被破坏,但我不希望这样,因为即使构建破坏了,我希望能够查看pdf生成了。

NB II:在你问为什么我不只是更新tex代码并重新运行之前(因为这解决了问题)。我通常在退出破坏的pdflatex构建之前解决tex-code中的问题(我认为这是很常见的做法),所以当我重新运行make时,pdf会比固定的tex文件更年轻。

0 个答案:

没有答案