(一)写Makefile.am
AM_CFLAGS = -ggdb为开启调试。
ACLOCAL_AMFLAGS = -I m4,当使用libtoolize生成config.guess, config.sub, ltmain.sh, ltconfig时需要设置这个位置。
(二)autoscan
在工作目录中执行autoscan,会生成configurae.scan。修改configure.scan内容之后,命名为configure.ac。
AM_INIT_AUTOMAKE([subdir-objects]) #多层目录的automake
AC_CONFIG_MACRO_DIR([m4]) #用于libtoolize
AM_PROG_CC_C_O #子目录的编译
(三)执行libtoolize
生成config.guess, config.sub, ltmain.sh, ltconfig
(四)执行aclocal
生成aclocal.m4
(五)执行autoconf
生成configure文件
(六)执行automake --add-missing
生成Makefile.in文件
(七)执行./configure --prefix=`pwd`
生成Makefile文件
(八)执行make && make install
将可执行二进制文件安装到当前目录的./bin/下
makefile.am:
对于可执行文件和静态库类型,如果只想编译,不想安装到系统中,可以用noinst_PROGRAMS代替bin_PROGRAMS,noinst_LIBRARIES代替lib_LIBRARIES。以此类推。
PROGRAMS 表示可执行文件
SOURCES 表示源文件
HEADERS 头文件。
LIBRARIES 表示库文件
LTLIBRARIES 这也是表示库文件,前面的LT表示libtool。
DATA 数据文件,不能执行。
SCRIPTS 脚本文件
AUTOMAKE_OPTIONS:
AUTOMAKE_OPTIONS = foreign
这个是用来设定automake的选项。automake主要是帮助开发GNU软件的人员维护软件套件,一般在执行automake时会检查目录下是否存在标准GNU套件中应具备的文件档案,例如NEWS、AUTHOR、ChangeLog等,设成foreign时,automake会改用一般软件套件标准来检查,而gnu是缺省设置,该级别下将尽可能地检查包是否服从GNU标准,gnits是严格标准,不推荐
。
bindir = $(prefix)/bin。
libdir = $(prefix)/lib。
datadir=$(prefix)/share。
sysconfdir=$(prefix)/etc。
includedir=$(prefix)/include。
AM_CFLAGS = -ggdb为开启调试。
ACLOCAL_AMFLAGS = -I m4,当使用libtoolize生成config.guess, config.sub, ltmain.sh, ltconfig时需要设置这个位置。
(二)autoscan
在工作目录中执行autoscan,会生成configurae.scan。修改configure.scan内容之后,命名为configure.ac。
AM_INIT_AUTOMAKE([subdir-objects]) #多层目录的automake
AC_CONFIG_MACRO_DIR([m4]) #用于libtoolize
AM_PROG_CC_C_O #子目录的编译
(三)执行libtoolize
生成config.guess, config.sub, ltmain.sh, ltconfig
(四)执行aclocal
生成aclocal.m4
(五)执行autoconf
生成configure文件
(六)执行automake --add-missing
生成Makefile.in文件
(七)执行./configure --prefix=`pwd`
生成Makefile文件
(八)执行make && make install
将可执行二进制文件安装到当前目录的./bin/下
makefile.am:
对于可执行文件和静态库类型,如果只想编译,不想安装到系统中,可以用noinst_PROGRAMS代替bin_PROGRAMS,noinst_LIBRARIES代替lib_LIBRARIES。以此类推。
PROGRAMS 表示可执行文件
SOURCES 表示源文件
HEADERS 头文件。
LIBRARIES 表示库文件
LTLIBRARIES 这也是表示库文件,前面的LT表示libtool。
DATA 数据文件,不能执行。
SCRIPTS 脚本文件
AUTOMAKE_OPTIONS:
AUTOMAKE_OPTIONS = foreign
这个是用来设定automake的选项。automake主要是帮助开发GNU软件的人员维护软件套件,一般在执行automake时会检查目录下是否存在标准GNU套件中应具备的文件档案,例如NEWS、AUTHOR、ChangeLog等,设成foreign时,automake会改用一般软件套件标准来检查,而gnu是缺省设置,该级别下将尽可能地检查包是否服从GNU标准,gnits是严格标准,不推荐
。
bindir = $(prefix)/bin。
libdir = $(prefix)/lib。
datadir=$(prefix)/share。
sysconfdir=$(prefix)/etc。
includedir=$(prefix)/include。