1.autoscan
[root@localhost automake]# autoscan
它會在給定目錄及其子目錄樹中檢查原始檔,若沒有給出目錄,就在當前目錄及其子目
錄樹中進行檢查。它會搜尋原始檔以尋找一般的移植性問題並建立乙個檔案「configure.scan」,
該檔案就是接下來autoconf要用到的「configure.in」原型。
2.autoconf
configure.in是autoconf的指令碼配置檔案,它的原型檔案「configure.scan」如下所示:更改.scan檔案,新增一些語句,並儲存為configure.in檔案。
# -*- autoconf -*-
# process this file with autoconf to produce a configure script.
ac_prereq(2.59)
#the next one is modified by sunq
#ac_init(full-package-name,version,bug-report-address)
要注釋掉
ac_init(hello,1.0)
新增此句
# the next one is added by sunq
am_init_automake(hello,1.0)
ac_config_srcdir([hello.c])
ac_config_header([config.h])
# checks for programs.
ac_prog_cc
# checks for libraries.
# checks for header files.
# checks for typedefs, structures, and compiler characteristics.
# checks for library functions.
ac_config_files([makefile])
新增此句
ac_output
接下來首先執行aclocal,生成乙個「aclocal.m4」檔案,該檔案主要處理本地的巨集定義。
如下所示:
[root@localhost automake]# aclocal
再接著執行autoconf,生成「configure」可執行檔案。如下所示:
[root@localhost automake]# autoconf
[root@localhost automake]# ls
aclocal.m4 autom4te.cache autoscan.log configure configure.in hello.c
3.autoheader
接著使用autoheader 命令,它負責生成config.h.in檔案。該工具通常會從「acconfig.h」
檔案中複製使用者附加的符號定義,因此此處沒有附加符號定義,所以不需要建立「acconfig.h」
檔案。如下所示:
[root@localhost automake]# autoheader
4.automake
這一步是建立makefile 很重要的一步,automake 要用的指令碼配置檔案是makefile.am,
使用者需要自己建立相應的檔案。之後,automake工具轉換成makefile.in。在該例中,筆者創
建的檔案為makefile.am如下所示:
automake_options=foreign
bin_programs= hello
hello_sources= hello.c
hello.h
要是有多個檔案就全部列舉出來
automake提供了3 種軟體等級:foreign、gnu和gnits,讓使用者
選擇採用,預設等級為gnu。在本例使用foreign等級,它只檢測必須的檔案
接下來可以使用automake 對其生成「configure.in」檔案,在這裡使用選項
「—adding-missing」可以讓automake自動新增有一些必需的指令碼檔案。如下所示:
[root@localhost automake]# automake --add-missing
configure.in: installing './install-sh'
configure.in: installing './missing'
makefile.am: installing 'depcomp'
[root@localhost automake]# ls
aclocal.m4 autoscan.log configure.in hello.c makefile.am missing
autom4te.cache configure depcomp install-sh makefile.in config.h.in
5.執行configure
在這一步中,通過執行自動配置設定檔案configure,把makefile.in 變成了最終的
makefile。如下所示:
[root@localhost automake]# ./configure
6.make
鍵入make預設執行「make all」命令,即目標體為all,其執**況如下所示:
[root@localhost automake]# make
此時在本目錄下就生成了可執行檔案「hello」,執行「./hello」能出現正常結果,如下
所示:[root@localhost automake]# ./hello
hello!autoconf!
autotools 使用例項
1 work 下新建資料夾auto。2 將實驗七 hello.c 複製到該目錄下。3 使用autoscan生成configure.scan。有改動的的地方是第 5,6,7,20行。5 使用aclocal生成aclocal.m4。6 使用autoconf 生成configure。7 使用autohea...
AutoTools工具的使用
最近一直在看linux下autotools工具的使用方法,查閱了一些資料,感覺入門級別的文章網上寫的很多,但寫的清楚明白的應該是下面這篇。a brief introduction to autoconf 而完整詳細,寫的特別棒的是這本書 autoconf,automake and libtool 各...
autotools工具使用記錄
參考 安裝順序 m4 autoconf automake 參考的博文說這個順序很重要,剛開始很納悶,後來在安裝的過程中,發現之間是有依賴關係的 安裝方法 configure make make install 使用方法 autotool工具使用到的工具有 aclocal autoscan autoc...