![](/img/trans.png)
[英]Makefile always says generated-file target is up to date, but generates target as expected
[英]Makefile: assume file is up to date for a specific target?
我正在使用 GNU Make 为论文构建图表。 我有两个目标:
data
以重新生成数据/ *。CSV文件夹。 这在计算上非常昂贵。 (在金钱方面也是如此。)plot
从数据/文件夹重建图现在,由于计算data
成本很高,我将生成的文件提交到 git 中。 我想尽可能避免更改它们。 但是当有人克隆 git 存储库时,它会弄乱文件的 mtime,所以make plot
想要重建data
,即使它们已经存在。
也就是说,我不想删除目标依赖项! 如果出于某种原因,我重新计算了data
某些内容,我希望这些图能够看到并能够自行重建。 另外,如果缺少一个 csv,我希望它被计算出来。
我认为理想情况下,我想要的是有一种方法可以说“如果这些文件存在,则假设它们是最新的”。 有没有办法在 GNU Make 中做到这一点?
感谢 Renaud Pacalet 的评论,我使用了order-only 依赖来重写我的规则,如下所示:
data/%.csv: | source/%.py
...
使用这个|
允许make
永远不会重建已经存在的 CSV 文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.