2015-11-05 80 views
-1

我正在研究由其他開發人員編寫的複雜make文件,該makefile還包含其他makefile。GNU Make不執行第一個目標

我在makefile的開頭放了一個啞規則,然後在沒有指定期望第一個規則只執行(迴應某些事情)的目標的情況下調用makefile,但是我發現其他規則被調用了。

我不知道是否有任何其他規則可能會在第一條規則之前得到評估(可能是因爲包含或二次擴展或其他)?

回答

0

使看到的第一個(非模式非前導點)規則是默認目標(默認情況下)。無論是來自Makefile還是某些包含makefile的都不重要。

此外,通過設置.DEFAULT_GOAL special variable,makefile可以覆蓋該設置。

這在GNU make手冊的How make Processes a Makefile部分討論過。

默認情況下,make以第一個目標(不是名稱以'。'開頭的目標)開始。這被稱爲默認目標。 (目標是使最終努力打造更新的目標,你可以使用命令行(見Arguments to Specify the Goals)或與.DEFAULT_GOAL特殊的變量(見Other Special Variables)覆蓋此行爲。