2017.04.05
GNU autotools安裝
要安裝autotools需要如下幾個文件
automake,autoconf,M4
安裝順序是M4 -> autoconf -> automake (重要)
安裝需要的命令:
tar zxvf **
./configure
make
make install
mac下:
brew install autoconf
brew install automake
(沒有裝上M4也正常使用了)
autotools使用
源碼目錄如下
main.cpp
inc/test.h
src/test.cpp
1.手工編寫Makefile.am這個文件
#Makefile.am
UTOMAKE_OPTIONS = foreign
bin_PROGRAMS = main
main_SOURCES = main.cpp inc/test.h src/test.cpp
mian_CPPFLAGS = -I include/
2.在源代碼目錄樹的最高層運行autoscan。然後手動修改configure.scan文件,重命名爲configure.ac
並修改內容:
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
修改爲:AC_INIT(main,0.0.1,[email protected])
在AC_INIT(main,0.0.1,[email protected])下一行添加
AM_INIT_AUTOMAKE(main,0.0.1)
在AC_OUTPUT 上一行添加
AC_CONFIG_FILES([Makefile])
3.使用aclocal命令,掃描configure.ac文件生成 aclocal.m4文件,
該文件主要處理本地的宏定義,它根據已經安裝的宏、用戶定義宏和acinclude.m4文件中的宏將 configure.ac文件需要的宏集中定義到文件 aclocal.m4 中
4.使用autoconf命令生成configure文件。這個命令將configure.ac文件中的宏展開,生成configure 腳本。這個過程可能要用到aclocal.m4中定義的宏。
5.使用 autoheader 命令生成 config.h.in 文件。該命令通常會從 “acconfig.h” 文件中複製用戶附加的符號定義。該例子中沒有附加的符號定義, 所以不需要創建 “acconfig.h” 文件
6.運行automake –add-missing,它根據Makefile.am的內容生成Makefile.in。
7.運行configure,它會根據Makefile.in的內容生成Makefile這個文件。
8.獲得Makefile文件後,我們就可以使用make程序來管理我們的工程了
第3-7步可以寫成build.sh
#!/bin/bash
aclocal
autoconf
autoheader
touch NEWS README AUTHORS ChangeLog
automake --add-missing
./configure