2014-05-20 113 views

回答

4

這個目標本身並沒有做任何事情。它對我所知的make沒有特別的意義。

但是,它是在項目使用GNU Automake時自動生成的。 Automake創建Makefile.in文件,which ./configure will use to generate Makefiles

它不中the targets in the documentation列出的:只有開發者會需要它,因爲它的定義生成Makefile.in顯示:

.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check-am \ 
    ctags-recursive install-am install-strip tags-recursive 

兩個變量在Makefile.in別處定義,看來,這個目標會試圖完成所有可以完成的任務:清理源代碼樹,編譯軟件,運行自動測試,安裝它,卸載它,以及僅對開發人員有用的幾個步驟。所以這基本上是一次性的測試運行,可以在連續的構建測試中使用。

這是爲什麼automake被創建的一個明確示例:make(即告訴它「做所有事情」的能力)缺少一個非常理想的功能,因此automake提供了它。

+0

感謝 - 也許我應該更明確 - 在使用AutoMake工具(./configure,Makefile.in等)的軟件包中,它似乎經常出現在.PHONY目標(已記錄)旁邊。要選擇具體示例,請參閱wireshark-1.10.6 Makefile。我在多個依靠自動配置和AutoMake的開源項目中見過它。 – Kevin

+0

啊哈!我只是在GNU make 4.0源代碼中通過grep for .MAKE來證實這一點。它只發生在'automake'命令生成的文件('Makefile.in')和隨後生成的文件('Makefile')中。修復我的答案... – reinierpost

+0

完美 - 謝謝! – Kevin