亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > cvs
CVS、Automake與Autoconf簡介
作者:網絡轉載 發布時間:[ 2012/12/28 14:18:46 ] 推薦標簽:

AM_INIT_AUTOMAKE(PACKAGE,VERSION)
這個是使用 Automake 所必備的宏,PACKAGE 是所要產生軟件的名稱,VERSION 是版本編號。

AC_PROG_CC
檢查系統可用的C編譯器,若源代碼是用C寫的需要這個宏。

AC_OUTPUT(FILE)
設置 configure 所要產生的文件,若是Makefile ,configure 便會把它檢查出來的結果填充到Makefile.in 文件后產生合適的 Makefile。

實際上,在使用 Automake 時,還需要一些其他的宏,這些額外的宏我們用 aclocal來幫助產生。執行 aclocal會產生aclocal.m4 文件,如果沒有特別的用途,不需要修改它,用 aclocal 所產生的宏會告訴 Automake如何動作。

有了 configure.in 及 aclocal.m4兩個文件以后,便可以執行 Autoconf來產生 configure 文件了。

編輯Makefile.am 文件
接下來要編輯Makefile.am 文件,Automake 會根據 configure.in 中的宏并在perl的幫助下把Makefile.am 轉成 Makefile.in 文件。 Makefile.am 文件定義所要產生的目標:

AUTOMAKE_OPTIONS
設置 Automake 的選項。Automake 主要是幫助開發 GNU 軟件的人員來維護軟件,所以在執行Automake 時,會檢查目錄下是否存在標準 GNU 軟件中應具備的文件,例如 'NEWS'、'AUTHOR'、
'ChangeLog' 等文件。設置為foreign 時,Automake 會改用一般軟件的標準來檢查。

bin_PROGRAMS
定義要產生的執行文件名。如果要產生多個執行文件,每個文件名用空白符隔開。

hello_SOURCES
定義 'hello' 這個執行程序所需要的原始文件。如果 'hello'這個程序是由多個原始文件所產生,
必?把它所用到的所有原始文件都列出來,以空白符隔開。假設 'hello' 還需要 'hello.c'、'main.c'、'hello.h' 三個文件的話,則定義
hello_SOURCES= hello.c main.c hello.h
如果定義多個執行文件,則對每個執行程序都要定義相對的filename_SOURCES。

編輯好 Makefile.am 文件,可以用 Automake --add-missing來產生 Makefile.in。加上 --add-missing 選項來告訴 Automake順便加入包裝一個軟件所必須的文件,如果你不使用該選項,Automake可能會抱怨缺少了什么文件。Automake產生出?的 Makefile.in 文件是完全符合 GNU Makefile 慣例的,只要執行 configure這個shell
script 便可以產生合適的 Makefile 文件了。

使用 Makefile
利用 configure 所產生的 Makefile文件有幾個預先設定的目標可供使用,這里只用幾個簡述如下:

make all
產生設定的目標,既范例中的可執行文件。只敲入make 也可以,此時會開始編譯源代碼,然后連接并產生執行文件。

make clean
清除之前所編譯的可執行文件及目標文件(object file, *.o)。

make distclean
除了清除可執行文件和目標文件以外,也把 configure 所產生的 Makefile 清除掉。 通常在發布軟件前執行該命令。

make install
將程序安裝到系統中,若源碼編譯成功,且執行結果正確,便可以把程序安裝到系統預先設定的執行文件存放路徑中,若用 bin_PROGRAMS 宏的話,程序會被安裝到 /usr/local/bin下。

make dist
將程序和相關的文檔包裝為一個壓縮文檔以供發布 (distribution) 。執行完在目錄下會產生一個以
PACKAGE-VERSION.tar.gz 為名稱的文件。PACKAGE 和 VERSION 這兩個參數是根據 configure.in 文中
AM_INIT_AUTOMAKE(PACKAGE, VERSION) 的定義。在我們的例子中會產生 'hello-1.0.tar.gz' 的文件。

make distcheck
和 make dist 類似,但是加入檢查包裝以后的壓縮文件是否正常,這個目標除了把程序和相關文檔包裝成 tar.gz 文件外,還會自動把這個壓縮文件解開,執行 configure,并執行 make all ,確認編譯無錯誤以后,方顯示這個 tar.gz 文件已經準備好并可以發布了。當你看到:
==========================================
hello-1.0.tar.gz is ready for distribution
==========================================

可以放心地發布您的軟件了,檢查過關的套件,基本上可以給任何具備 GNU 開發環境的人去重新編譯成功。
要注意的是,利用 Autoconf 及 Automake 所產生出?的軟件套件是可以在沒有安裝 Autoconf 及 Automake 的環境使用的,因為 configure 是一個 shell script,它己被設計為可以在一般 Unix 的 sh 這個 shell 下執行。但是如果要修改 configure.in 及 Makefile.am 文件再產生新的 configure 及 Makefile.in 文件時一定要有 Autoconf 及 Automake 了。

相關資料
通常我們掌握了一些入門知識可以開始實踐了,在有新的需求時,參照相關的文檔和別人的例子解決問題,在實踐中不斷提高。
Autoconf 和 Automake 功能十分強大,可以從它們附帶的 info 文檔中找到詳細的使用說明;蛘吣矚ghtml,可以從gun站點上下載hmtl版本。你也可以從許多現有的GNU 軟件或 Open Source 軟件如Minigui中找到相關的 configure.in 或 Makefile.am 文件,他們是學習 Autoconf 及 Automake 更多技巧的佳范例。

上一頁1234下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 久久高清一级毛片 | 国产无遮挡又爽又色又刺激 | 在线观看成人免费视频播放 | 亚洲成人一区 | 亚洲女人国产香蕉久久精品 | 欧美色欧美亚洲另类二区精品 | 天堂中文字幕在线 | 手机看片亚洲 | 日本不卡免费在线 | 欧美第一福利 | 国产精选在线播放 | 欧美日韩中文字幕在线观看 | 欧美国产黄色 | 日本看片网址 | 小明看片 | 51av视频| 日韩高清伦理片中字在线观看 | 性色网址 | 欧美在线日韩 | 免费视频成人 | 一本大道香蕉大在线最新 | 国产在线欧美日韩一区二区 | 欧美日韩免费在线 | 亚洲一区二区三区高清 不卡 | 亚洲精品乱码中文字幕无线 | 三级纯黄| 999精品视频这里只有精品 | 久久亚洲欧美成人精品 | 亚洲精品二区中文字幕 | 亚洲最大视频网 | 23部禽女乱小说内裤畸情 | 色老头综合免费视频 | 国产成年网站 | 国产 欧美日韩 在线播放 | 精品国产日韩亚洲一区在线 | 精品国产欧美一区二区最新 | 黄 色 片 在 线 看 | 丝袜综合| 国产精品免费视频网站 | 亚洲理论a中文字幕在线 | 黄网站免费视频 |