Automake/Autoconf

 

1. autoscan
  autoscan是 用來掃描源代碼目錄生成configure.scan文件的 .autoscan
可以用目錄名做爲參數,但如果你不使用參數的 話,那麼autoscan將認爲使用的是當前目錄.
autoscan將掃描你所指定目錄中的 源文件,並創建configure.scan文件.
  2. configure.scan
  configure.scan包含了系統配置的 基本選項,裏面都是 一些宏定義.我們需要將它改名爲
configure.in
  3. aclocal
  aclocal是 一個perl 腳本程序.aclocal根據configure.in文件的 內容
,自動生成aclocal.m4文件.aclocal的 定義是 :"aclocal - create
aclocal.m4 by scanning configure.ac".
  4. autoconf
  autoconf是 用來產生configure文件的 .configure是 一個腳本,它能設置
源程序來適應各種不同的操作系統平臺,並且根據不同的 系統來產生合適的 Makefile,從而可以使
你的源代碼能在不同的操作系統平臺上被編譯出來.
  configure.in文件的 內容是 一些宏,這些宏經過autoconf 處理後會變成檢查系統
特性.環境變量.軟件必須的 參數的 shell腳本.configure.in文件中的 宏的 順序並沒
有規定,但是 你必須在 所有宏的 最前面和最後面分別加上AC_INIT宏和AC_OUTPUT宏.
  在 configure.ini中:
  #號表示註釋,這個宏後面的 內容將被忽略.
  AC_INIT(FILE)
  這個宏用來檢查源代碼所在 的 路徑.
AM_INIT_AUTOMAKE(PACKAGE, VERSION)
   這個宏是 必須的 ,它描述了我們將要生成的 軟件包的 名字及其版本號:PACKAGE是軟件包
的名字,VERSION是 版本號.當你使用make dist命令時,它會給你生成一個類似
helloworld-1.0.tar.gz的 軟件發行包,其中就有對應的 軟件包的 名字和版本號.
AC_PROG_CC
  這個宏將檢查系統所用的 C編譯器.
AC_OUTPUT(FILE)
  這個宏是 我們要輸出的 Makefile的 名字.
  我們在 使用automake時,實際上還需要用到其他的 一些宏,但我們可以用aclocal 來幫
我們自動產生.執行aclocal後我們會得到aclocal.m4文件.
  產生了configure.in和aclocal.m4 兩個宏文件後,我們就可以使用autocon
f來產生configure文件了.
  5. Makefile.am
  Makefile.am是 用來生成Makefile.in的 ,需要你手工書寫.Makefile.
am中定義了一些內容:
AUTOMAKE_OPTIONS
  這個是 automake的 選項.在 執行automake時,它會檢查目錄下是 否存在 標準
GNU軟件包中應具備的各種文件,例如AUTHORS.ChangeLog.NEWS等文件.
我們將其設置成foreign時,automake會改用一般軟件包的 標準來檢查.
bin_PROGRAMS
  這個是 指定我們所要產生的 可執行文件的 文件名.如果你要產生多個可執行文件,
那麼在各個名字間用空格隔開.
helloworld_SOURCES
  這個是 指定產生"helloworld"時所需要的 源代碼.如果它用到了多個源文件,
那麼請使用空格符號將它們隔開.比如需要helloworld.h,helloworld.c那麼請寫成:
helloworld_SOURCES= helloworld.h helloworld.c.
  如果你在 bin_PROGRAMS定義了多個可執行文件,則對應每個可執行文件都要定義相對的
filename_SOURCES.
  6. automake
  我們使用automake --add-missing來產生Makefile.in.
  選項--add-missing的 定義是 "add missing standard files
 to package",它會讓automake加入一個標準的 軟件包所必須的 一些文件.
  我們用automake產生出來的 Makefile.in文件是 符合GNU Makefile慣例
的 ,接下來我們只要執行configure這個shell 腳本就可以產生合適的 Makefile 文
件了.
  7. Makefile
  在 符合GNU Makefiel慣例的 Makefile中,包含了一些基本的 預先定義的 操作:

make
  根據Makefile編譯源代碼,連接,生成目標文件,可執行文件.
make clean
  清除上次的 make命令所產生的 object文件(後綴爲".o"的 文件)及可執行文件.
make install
  將編譯成功的 可執行文件安裝到系統目錄中,一般爲/usr/local/bin目錄.
make dist
  產生髮布軟件包文件(即distribution package).這個命令將會將可執行文件及相關
文件打包成一個tar.gz壓縮的 文件用來作爲發佈軟件的 軟件包.
  它會在 當前目錄下生成一個名字類似"PACKAGE-VERSION.tar.gz"的 文件.PA
CKAGE和VERSION,是 我們在 configure.in中定義的 AM_INIT_AUTOM
AKE(PACKAGE, VERSION).
make distcheck
  生成發佈軟件包並對其進行測試檢查,以確定發佈包的正確性.

    

 

發佈了36 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章