源碼根目錄調用autoscan腳本,生成configure.scan文件,而後將此文件重命名爲configure.ac(或configure.in,早期使用.in後綴)shell
修改【configure.ac】,利用autoconf提供的各類M4宏,配置項目須要的各類自動化探測項目segmentfault
編寫【自定義宏】,建議每一個宏一個單獨的*.m4文件;編碼
調用aclocal收集configure.ac中用到的各類非Autoconf的宏,包括自定義宏;spa
調用autoheader,掃描configure.ac(configure.in)、acconfig.h(若是存在),生成config.h.in宏定義文件,裏面主要是根據configure.ac中某些特定宏(如AC_DEFINE)生成的#define和#undefine宏,configure在將根據實際的探測結果決定這些宏是否認義(具體見後面例子)。開發
按照automake規定的規則和項目的目錄結構,編寫一個或多個【Makefile.am】(Makefile.am數目和存放位置和源碼目錄結構相關),Makefile.am主要寫的就是編譯的目標及其源碼組成。源碼
調用automake,將每一個Makefile.am轉化成Makefile.in,同時生成知足GNU編碼規範的一系列文件(帶-a選項自動添加缺乏的文件,但有幾個仍須要本身添加,在執行automake前需執行touch NEWS README AUTHORS ChangeLog)。若是configure.ac配置了使用libtool(定義了AC_PROG_LIBTOOL宏(老版本)或LT_INIT宏),須要在此步驟前先在項目根目錄執行libtoolize --automake --copy --force,以生成ltmain.sh,供automake和config.status調用。開源軟件
調用autoconf,利用M4解析configure.ac,生成shell腳本configure。以上幾步完成後,開發者的工做就算完成了,後面的定製就由開源軟件的用戶根據須要給configure輸入不一樣的參數來完成。it
用戶調用configure,生成Makefile,而後make && make install。自動化
進入project目錄編譯
運行autoscan命令
將configure.scan 文件重命名爲configure.in,並修改configure.in文件
在project目錄下新建Makefile.am文件,並在各個子目錄下也新建makefile.am文件
在project目錄下新建NEWS、 README、 ChangeLog 、AUTHORS文件
將/usr/share/automake-1.X/目錄下的depcomp和complie文件拷貝到本目錄下
運行aclocal命令
運行autoconf命令
運行automake -a命令
運行./confiugre腳本