2017-08-10 61 views
0

我知道我們可以在makefile中設置命令如all, clean, install等,並使用.PHONY來告訴make they're not associated with filesMakefile - 是否在創建make時使用.PHONY來運行命令?

但我想知道 - 在創建make和makefile時 - 是否將這種用途(運行此類命令)與專爲此目的而設計的.PHONY結合使用?或者,也許以後添加了.PHONY以輕鬆擴展make來支持這些類型的命令?

我也讀this但除了常規的已知用法外,沒有其他任何東西。

謝謝!

+0

您的問題是關於GNU make的歷史(在什麼日期添加了'.PHONY'特殊目標?)或者關於使用'.PHONY'還是使用假目標? –

+0

它的組合,我想知道這是否是它的目的,如果有更多的用途(也許沒有人使用)。再想一想 - 也許它更適合unix站點? – arieljannai

回答

1

我不知道GNU make的歷史。

.PHONY的使用正是你所懷疑的:有目標(這可以是目標或命令,如果你願意的話)不是文件,並且即使偶然發生了同名文件存在。這是一個單一的,明確界定的目的。

在某些情況下,即使目標文件是最新的,也要重新構建目標文件,並且您可以爲此目的聲明它是一個先決條件.PHONY,但常常是您的標誌makefile不是它應該的。

另一種常見情況是將幾個目標(真實或假冒)分組爲一個單一其他假目標的先決條件。

但是在這兩種情況下,我們可以說由此產生的假目標是一種指令。在第一種情況下,它是強制構建文件的命令。第二,它是一系列行動的一種別名。

相關問題