我們前面分析了Makefile的編寫,其實一個大的項目,如果手工去寫Makefile的話會比較累,那麼我們可以用AutoTools的一系列工具來生成Makefile
Linux Makefile編寫 詳述 http://www.linuxidc.com/Linux/2016-11/137506.htm
大家在Linux中下載的任何源碼包都需要先執行configure的配置文件,這個就是用來生成Makefile的
AutoTools其實是一系列工具,包含aclocal、autoscan、autoconf、autoheader、和automake
可以用如下的流程圖來分析
我們下面用一個例子來說明
1 執行autoscan
它會在給定目錄及其子目錄樹中檢查源文件,默認是在當前目錄及其子目錄樹中進行檢查。執行autoscan後會產生一個configure.scan的腳本配置文件,我們把它改名為configure.in,這個後面用於生成configure的
然後修改這個文件
AC_INIT(main,1.0) // AC_INIT宏用來定義軟件的名稱和版本等信息。
AM_INIT_AUTOMAKE(main,1.0) //是automake所必備的宏,軟件名稱和版本號
AC_CONFIG_FILES([Makefile]) //用於生成相應的Makefile 文件
2 執行aclocal
生成一個“aclocal.m4”文件,該文件是處理本地的宏定義
3 執行autoconf
生成configure文件
4 autoheader
使用autoheader命令是為了成config.h.in文件。該工具通常會從acconfig.h文件中復制用戶定義的符號,若此處沒有自定義符號就不需創建acconfig.h文件
5 automake
這一步需要用到Makefile.am文件,這個文件需要我們自己創建
內容如下:
接下來使用automake生成configure.in文件,在這裡使用選項—adding-missing可以讓automake自動添加有一些必需的腳本
6 執行configure 這個就類似源碼包安裝的第一步了
我們看到Makefile生成了
7 執行make makeinstall,然後運行main
好了,大功告成!
Linux AutoTools工具就總結到這裡,如有問題,歡迎指正,謝謝。