資源描述:
《automake實例應(yīng)用探討》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、目錄1Aotumake概論12使用Automake前的準(zhǔn)備工作23Automake使用指南23.1autotools的工作原理23.2編寫Makefile.am33.2.1Makefile.am規(guī)則33.2.2庫的生成53.2.3可執(zhí)行文件的生成63.3編寫configure.in文件63.3.1在configure.in中定義外部變量63.3.2給configure配置自定義參數(shù)74Automake的應(yīng)用——使用Automake生成Makefile84.1Makefile的用處84.2使用Automake生成Ma
2、kefile的優(yōu)勢84.3Automake應(yīng)用實例94.3.3執(zhí)行aclocal和Autoconf104.3.4編輯Makefile.am文件?104.3.5執(zhí)行Automake104.3.6執(zhí)行./configure104.4使用已定義好的宏生成Makefile124.4.1編輯configure.in文件144.4.2編輯Makefile.am文件155結(jié)束語17I1Aotumake概論在Unix上寫程式的人大概都碰過Makefile,尤其是用C來開發(fā)程式的人。用make來開發(fā)和編譯程式的確很方便,可是要寫出一
3、個Makefile就不簡單了。偏偏介紹Makefile的文件不多,GNUMake那份印出來要幾百頁的文件,光看完Overview就快陣亡了,難怪許多人聞Unix色變。本文將介紹如何利用GNUAutoconf及Automake這兩套軟件來協(xié)助我們『自動』產(chǎn)生Makefile檔,并且讓開發(fā)出來的軟件可以像Apache,MySQL和常見的GNU軟件一樣,只要會./configure,make,makeinstall就可以把程式安裝到系統(tǒng)中。如果您有心開發(fā)OpenSource的軟件,或只是想在Unix系統(tǒng)下寫寫程式。希望這
4、份介紹文件能幫助您輕松地進(jìn)入UnixProgramming的殿堂。Makefile基本上就是『目標(biāo)』(target),『關(guān)連』(dependencies)和『動作』三者所組成的一連串規(guī)則。而make就會根據(jù)Makefile的規(guī)則來決定如何編譯(compile)和連結(jié)(link)程式。實際上make可做的不只是編譯和連結(jié)程式,例如FreeBSD的portcollection中,Makefile還可以做到自動下載原始程式套件,解壓縮(extract),修補(bǔ)(patch),設(shè)定,然后編譯,安裝至系統(tǒng)中。Makefile基
5、本構(gòu)造雖然簡單,但是妥善運(yùn)用這些規(guī)則就也可以變出許多不同的花招。卻也因此,許多剛開始學(xué)習(xí)寫Makefile時會感到?jīng)]有規(guī)范可循,每個人寫出來的Makefile長得都不太一樣,不知道從何下手,而且常常會受限於自己的開發(fā)環(huán)境,只要環(huán)境變數(shù)不同或路徑改一下,可能Makefile就得跟著修改。雖然有GNUMakefileConventions(GNUMakefile慣例)訂出一些使用GNU程式設(shè)計時撰寫Makefile的一些標(biāo)準(zhǔn)和規(guī)范,但是內(nèi)容很長而且很復(fù)雜,并且經(jīng)常做些調(diào)整,為了減輕程式設(shè)計師維護(hù)Makefile的負(fù)擔(dān),
6、因此有Automake。程式設(shè)計師只需寫一些預(yù)先定義好的巨集(macro),交給Automake處理後會產(chǎn)生一個可供Autoconf使用的Makefile.in檔。再配合利用Autoconf產(chǎn)生的自動設(shè)定檔configure即可產(chǎn)生一份符合GNUMakefile慣例的Makeifle了。2使用Automake前的準(zhǔn)備工作在開始試著用Automake之前,請先確認(rèn)你的系統(tǒng)已經(jīng)安裝以下的軟件:1.GNUAutomake2.GNUAutoconf3.GNUm44.perl5.GNULibtool(如果你需要產(chǎn)生share
7、dlibrary)我會建議你最好也使用GNUC/C++編譯器、GNUMake以及其它GNU的工具程式來做為開發(fā)的環(huán)境,這些工具都是屬于OpenSourceSoftware不僅免費而且功能強(qiáng)大。如果你是使用RedHatLinux可以找到所有上述軟件的rpm檔,F(xiàn)reeBSD也有現(xiàn)成的package可以直接安裝,或著你也可以自行下載這些軟件的原始檔回來DIY。以下的范例是在RedHatLinux5.2+CLE2的環(huán)境下所完成的。3.Automake使用指南Automake主要通過編輯Makefile.am來控制它的行為
8、,下面就常用的三個Makefile.am配置做出說明。3.1autotools的工作原理autotools最終是為了生成Makefile,為此,需要使用到autotools系列工具的如下幾個命令:lautoscanlaclocallautoheaderlautoconflAutomake另外,還需要有兩類輸入文件:configure.in和Makefile.