2. 安裝
m4-1.4.11.tar.gz
autoconf-2.63.tar.gz
automake-1.9.1.tar.gz
3. autotools五工具
4. autotools使用流程
第一步:手工編寫makefile.am這個檔案
第二步:在源**目錄樹的最高層執行autoscan。然後手動修改configure.scan檔案,並改名為configure.ac/configure.in
第三步:執行aclocal,它會根據configure.ac的內容生成aclocal.m4檔案
第四步:執行autoconf,它根據configure.ac和aclocal.m4的內容生成configure這個配置指令碼檔案
第五步:執行automake –add-missing,它根據makefile.am的內容生成makefile.in
第六步:執行configure,它會根據makefile.in的內容生成makefile這個檔案
5. 流程圖
6. 舉例
# cat hello.c
#include
#include "include/hello.h"
int main()
# cat makefile.am //automake使用
subdirs = lib
automake_options = foreign
bin_programs = hello
hello_sources = hello.c
hello_ldadd = lib/libprint.a
automake_options為設定automake的選項。automake提供了3種軟體等級:
subdirs:子目錄選項
bin_programs:如果多個執行檔案, 用空格隔開
hello_sources:」hello」這個可執行程式所需的原始檔案。如果」hello」這個程式是由多個原始檔所產生, 所有原始檔用空格隔開
# cat lib/makefile.am
noinst_libraries = libprint.a
libprint_a_sources = print.c ../include/print.h
# ls include
hello.h
print.h
7. 開始使用
# autoscan
生成configure.scan
//修改(軟體名稱, 版本資訊, bug匯報e-mail)
ac_init([
full
-package
-name],
[version]
, [bug-report
-address])
//為ac_init(hello, 0.01,
)am_init_automake
ac_prog_ranlib
重新命名為configure.ac
ac_config_scrdir:巨集用來偵測所指定的原始碼檔案是否存在, 來確定原始碼目錄的有效性
ac_config_header:巨集用於生成config.h檔案,以便 autoheader 命令使用
ac_prog_cc:用來指定編譯器,如果不指定,預設gcc
ac_config_files:巨集用於生成相應的makefile檔案
ac_output:用來設定 configure 所要產生的檔案,如果是makefile,configure 會把它檢查出來的結果帶入makefile.in檔案產生合適的makefile
# aclocal
# autoconf
# autoheader
# automake --add-missing
automake工具會根據 configure.in 中的參量把 makefile.am 轉換成 makefile.in 檔案
–add-missing:可以讓 automake 自動新增一些必需的指令碼檔案
再次執行,可以輔助生成幾個必要的檔案:
makefile.am: required file `./news' not found
makefile.am: required file `./readme' not found
makefile.am: required file `./authors' not found
makefile.am: required file `./changelog' not found
解決辦法:手動touch
# ./configure
# make
使用GNU Autotools製作Makefile
最近用了一些開源軟體,它們都有統一的安裝方法,非常方便 configure make make install 於是我也鳥槍換炮,給自己的原始碼用上了automake和autoconf。下面這張流程圖顯示了製作makefile的全過程 autoconf工具的作用是檢查工程依賴的庫檔案和標頭檔案,同時...
學習GNU autotools的好資料
收集一些gnu方面的學習資料方便查詢幫助 gnu autoconf,automake and libtool automake autoconf gnu document 使用autotools生成makefile檔案入門 makefile學習與高階之makefile.am和 m 的意思 gnu a...
docker安裝和caffe安裝
第一步 啟動ubuntu安裝docker root lyf virtual machine apt get install docker.io 第二步 第三步 開啟docker root lyf virtual machine sudo service docker start root lyf v...