2010-01-06 74 views
1

我想要一個Makefile目標,只有當目標文件超過某個時間間隔時纔會被重建。如何創建基於時間的Makefile規則?

作爲一個例子,假設我有一些方法可以生成一天有效的密鑰,但生成密鑰需要花費很少的時間。

.PHONY: key 
key: 
    sleep 5 && echo generated > key 
foo: key 
    echo foo 
bar: key 
    echo bar 

但是,在一天的過程中,我可以鍵入make foomake bar了好幾次:我每次我需要它的時候只是重新生成。每次等待都很煩人,我寧願每天吃一次這種成本。

回答

4

生成的文件依賴於一些虛擬文件,如key-timestamp,然後每天有一個cron作業touch該文件。

+0

儘管我相信這會起作用,但每個想要編譯此代碼的開發人員都需要額外的設置。如果cron條目沒有設置,那麼只要密鑰過期,構建就會失敗。 – Shepmaster 2010-01-07 14:35:37