autotools使用流程

2021-06-20 08:24:20 字數 2888 閱讀 3436

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...