簡體   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