2014-10-10 62 views
0

我有這應該始終執行的Makefile的配方,沒有任何條件,不管什麼(如果)目標是在make調用指定的。我可以指定一個始終運行的Makefile配方嗎?

執行這個食譜會對一些其他規則的前提條件的影響,所以我想make認爲在Makefile中的任何其他規則之前要執行這個食譜。由於執行這個配方並不總是會導致其他規則的前提條件得到滿足(即make認爲它們已經過時),所以我不能把這個配方放在.PHONY的目標中,並將其作爲其他目標的先決條件,因爲make會將所有相關目標視爲過期,即使它們不是。

我想定義一個虛擬變量,它被分配一個${shell my ; recipe ; commands}的結果,但似乎並不可靠地執行的。

回答

1

有可能是一個更優雅的答案,但是僞造的目標是的依賴項,每個其他目標在makefile中應該滿足您的要求。

+0

正如我在質詢時說,我不能這樣做,即使它不是必需的,因爲那就隨時重新制作。 – FriendFX 2014-10-10 04:29:34

+0

操作的構件是什麼?您是否可以在步驟中不添加條件以避免重複操作?或者也許使用一個真實的文件來表明操作已經發生? – Rich 2014-10-10 04:31:58

+0

該操作主要是製作一堆文件的副本,這些文件我事先不知道。只有新文件被複制,並且如果它們比我的目標中的一個新,它將被認爲是過期的make。所以複製操作應該總是被執行,以檢查是否需要重新構建目標。 – FriendFX 2014-10-10 04:44:04

相關問題