1. 程式人生 > >makefile編譯多個目標

makefile編譯多個目標

即然make可以指定所有makefile中的目標,那麼也包括“偽目標”,於是我們可以根據這種性質來讓我們的makefile根據指定的不同的目標來完成不同的事。在Unix世界中,軟體釋出時,特別是GNU這種開源軟體的釋出時,其makefile都包含了編譯、安裝、打包等功能。我們可以參照這種規則來書寫我們的makefile中的目標。

“all”
這個偽目標是所有目標的目標,其功能一般是編譯所有的目標。
“clean”
這個偽目標功能是刪除所有被make建立的檔案。
“install”
這個偽目標功能是安裝已編譯好的程式,其實就是把目標執行檔案拷貝到指定的目標中去。
“print”
個偽目標的功能是例出改變過的源
檔案。
“tar”
個偽目標功能是把源程式打包備份。也就是一個tar檔案。
“dist”
這個偽目標功能是建立一個壓縮檔案,一般是把tar檔案壓成Z檔案。或是gz檔案。
“TAGS”
這個偽目標功能是更新所有的目標,以備完整地重編譯使用。
“check”和“test”
這兩個偽目標一般用來測試makefile的流程。

當然一個專案的makefile中也不一定要書寫這樣的目標,這些東西都是GNU的東西,但是我想,GNU搞出這些東西一定有其可取之處(等你的UNIX下的程式檔案一多時你就會發現這些功能很有用了),這裡只不過是說明了,如果你要書寫這種功能,最好使用這種名字命名你的目標,這樣規範一些,規範的好處就是——不用解釋,大家都明白。而且如果你的makefile中有這些功能,一是很實用,二是可以顯得你的makefile很專業(不是那種初學者的作品)。