【发布时间】:2020-05-23 01:41:45
【问题描述】:
我有一个进程,它接受一个输入文件(称为 test.in)并生成一些输出文件(模式名称 test-[0-9]?.out)。该过程应始终产生至少 1 个输出文件 (test-1.out),但输出文件的数量将取决于输入文件的内容(随着每个后续输出文件的数量顺序增长)。有没有办法在 make 规则中捕获这种依赖关系,或者我是否需要满足于仅列出保证的第一个目标(使用它来确定过期状态)并将此表单的所有文件的删除写入明确配方?
【问题讨论】:
-
这个解决方案听起来不错。
-
另一种方法是生成输出文件的存档(tar 或 zip),但这可能会使使用变得复杂,因为您很可能需要在使用前提取文件。
-
嗯...也许不是存档,而是常规文件夹。文件夹可以成为 makefile 规则的目标吗?
-
是的,但是由于文件夹在文件系统上的工作方式,最新检查会变得很奇怪。您必须将文件夹声明为 PHONY 并始终对其进行重新制作。顺便说一句,请务必标记您回复的人,例如“@Andreas 嗯……也许不是档案……”。否则,我不会收到您尝试讨论的通知。
-
@Andreas 啊,好吧,所以目录的想法只有在我不将它用于其他任何东西(不仅在 makefile 中,而且在系统的其他地方也是如此)的情况下才能合理地工作。这将很难跟踪,因为我需要能够使用输出文件。大多数时候只是阅读它们,但你永远不知道它们何时可能会得到
touched 或以其他方式被意外修改。
标签: makefile