2013-02-26 95 views
2

它是不好的做法,有這樣的:在一個Makefile做不好有沒有默認的目標在一個Makefile

all: 

,強制用戶指定的目標,而忽略了默認的?

+2

取決於您是否需要/需要強制用戶指定目標。約定是默認的目標是'all'(即它是第一個指定的)並構建代碼而不部署它。不過,這不是一個真正的答案。 – Petesh 2013-02-26 17:22:40

+1

Make只是一個工具,如果你有一個很好的理由禁用默認目標,並且不認爲它會惹惱你的用戶,那麼做你喜歡的。 – blueshift 2013-02-26 17:23:23

回答

7

all不一定是默認目標。默認目標是在你的makefile中定義的第一個目標。另外,如果你留下一個空白的目標作爲默認的目標(並且確保沒有其他all目標在makefile中的其他地方),make的行爲可能有點令人費解。我建議讓默認行爲打印一條適當的錯誤消息,如:

error: 
     @echo "Please choose one of the following target: compile, install, uninstall" 
     @# Alternatively: "Please RTFI(nstall)F(ile)" 
     @exit 2 
相關問題