資源描述:
《automake生成makefile》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、autoconf和automake生成makefile分類:?Linux編程2010-11-2613:20?1877人閱讀?評論(0)?收藏?舉報makefilelibrarydependencies編譯器includelinker用autoconf和automake生成makefilel????????autoconf?的輸入文件是?configure.inl????????automake的輸入文件是?Makefile.am?1.????????用autoscan掃描源碼目錄,為你生成configure.scan模板。2.????????把configure.scan改名為co
2、nfigure.in3.????????修改configure.in1.????????????AC_INIT(ShowServer,1.0,kl222@126.com)?這個宏是必須的。2.????????????AC_OUTPUT(MakefileShowServer/MakefileTestClient/Makefile)這個宏是用于指定需要生成的目標(biāo)文件,一般是Makefile3.????????????指定配置頭文件:AC_CONFIG_HEADER([config.h])這個由?autoheader產(chǎn)生1.????????產(chǎn)生的頭文件必須被?.c或?.cpp文件用?#i
3、nclude包含。這些宏才能應(yīng)用到C編譯時。2.????????用AC_DEFINE定義需要的宏。4.????????????啟用?automake:AM_INIT_AUTOMAKE(ShowServer,1.0)5.????????????檢查編譯器1.????????AC_PROG_CXX此宏用于檢查系統(tǒng)是否有g(shù)++編譯器。其它的宏請看autoconf手冊6.????????????變量:1.????????變量:?CFLAGS為C編譯器提供的調(diào)試和優(yōu)化選項。如果在運行configure時,沒有在環(huán)境中設(shè)置它,就在你調(diào)用AC_PROG_CC的時候設(shè)置它的缺省
4、值(如果你沒有調(diào)用AC_PROG_CC,它就為空)。?configure在編譯程序以測試C的特征時,使用本變量。2.????????變量:?CPPFLAGS為C預(yù)處理器和編譯器提供頭文件搜索目錄選項(`-Idir')以及其他各種選項。如果在運行?configure時,在環(huán)境中沒有設(shè)置本變量,缺省值就是空。configure在編譯或者預(yù)處理程序以測試C的特征時,使用本變量。3.????????變量:?CXXFLAGS為C++編譯器提供的調(diào)試和優(yōu)化選項。如果在運行configure時,沒有在環(huán)境中設(shè)置本變量,那么就在你調(diào)用AC_PROG_CXX時設(shè)置它的缺省值(如果你沒有調(diào)用AC_PR
5、OG_CXX,它就為空)。?configure在編譯程序以測試C++的特征時,使用本變量。4.????????變量:?FFLAGS為Fortran77編譯器提供的調(diào)試和優(yōu)化選項。如果在運行configure時,在環(huán)境中沒有設(shè)置本變量,那么它的缺省值就在你調(diào)用AC_PROG_F77時被設(shè)置(如果你沒有調(diào)用AC_PROG_F77,它就為空)。?configure在編譯程序以測試Fortran77的特征時,使用本變量。5.????????變量:?DEFS傳遞給C編譯器的`-D'選項。如果調(diào)用了AC_CONFIG_HEADER,configure就用?`-DHAVE_CONFIG_H'代替
6、`@DEFS@'(參見配置頭文件)。在configure進行它的測試時,本變量沒有被定義,只有在創(chuàng)建輸出文件時候才定義。關(guān)于如何檢查從前的測試結(jié)果,請參見設(shè)定輸出變量。6.????????變量:?LDFLAGS為連接器提供的Stripping(`-s')選項和其他各種選項。如果在運行configure時,在環(huán)境中沒有設(shè)置本變量,它的缺省值就是空。?configure在連接程序以測試C的特征時使用本變量。7.????????變量:?LIBS傳遞給連接器的`-l'和`-L'選項。這里可以用環(huán)境變量。例如:ACE庫存放在環(huán)境變量ACE_LIB中,則可以這樣指定:LIBS=-L$ACE_L
7、IB8.????????檢查依賴庫:1.???????????configure檢查時的路徑為,系統(tǒng)默認庫路徑,再就是?LIBS中用?–L指定的路徑。詳見變量中的LIBS2.???????????AC_CHECK_LIB([pthread],[pthread_create],,exit1)3.???????????AC_HAVE_LIBRARY([ACE],,exit1)4.???????????AC_HAVE_LIBRARY([Cfg],,exit1)9.?????