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

Makefile: assume file is up to date for a specific target?

我正在使用 GNU Make 为论文构建图表。我有两个目标:

现在,由于 data 的计算成本很高,我在 git 中提交了生成的文件。我想尽可能避免更改它们。但是当有人克隆 git 存储库时,它会弄乱文件的 mtime,因此 make plot 想要重建 data,即使它们已经存在。

就是说,我不想删除目标依赖项!如果出于某种原因,我在 data 中重新计算了某些内容,我希望绘图能够看到并能够自行重建。另外,如果缺少一个 csv,我希望计算它。

我觉得最理想的是,我想要的是有一种表达方式"if these files are present, assume that they are up to date"。有没有办法在 GNU Make 中做到这一点?

感谢 Renaud Pacalet 的评论,我用 order-only dependencies 重写了我的规则:

data/%.csv: | source/%.py
    ...

使用此 | 允许 make 永远不会重建已经存在的 CSV 文件。