繁体   English   中英

Makefile:假设文件对于特定目标是最新的?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM