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文件更年轻。