autotools工具只需用户输入简单的目标文件、依赖文件、文件目录等就可以轻松地生成makefile文件,其可以完成系统配置信息的收集,从而可以方便地处理各种移植性的问题。
autotools是系列工具,包含有:
(1)aclocal;
(2)autoscan;
(3)autoconf;
(4)autoheader;
(5)automake。
用autotools产生makefile文件的总体流程如图5.1所示。
图5.1 用autotools产生makefile文件的总体流程
利用autotools系列工具生成makefile文件的基本步骤如表5.3所示。
表5.3 利用autotools系列工具生成makefile文件的基本步骤
例5.7 利用例5.3中的两个程序文件5-3-main.c和5-3-avg.c,把它们的文件名分别改成5.7.main.c和5.7.avg.c,用autotools工具生成makefile文件。
步骤1:使用autoscan。
[root@localhost root]#ls
5.7.avg.c 5.7.main.c
[root@localhost root]#autoscan
[root@localhost root]#ls
5.7.avg.c 5.7.main.c autoscan.log configure.scan
步骤2:修改configure.scan文件,重命名成configure.in文件。
修改时需要增加一个宏AM_INIT_AUTOMAKE(PACKAGE,VERSION),还要把AC_CONFIG_HEADER更改为AM_CONFIG_HEADER。
修改后,用mv命令重命名:
[root@localhost root]#mv configure.scan configure.in
步骤3:使用aclocal、autoconf和autoheader。
[root@localhost root]# aclocal
[root@localhost root]# 1s
5.7.avg.c 5.7.main.c aclocal.m4 autoscan.log configure.in(www.xing528.com)
[root@localhost root]# autoconf
[root@localhost root]# ls
5.7.main.c autom4te.cache configure
5.7.avg.c aclocal.m4 autoscan.Log configure.in
[root@localhost root]# autoheader
[root@localhost root]# 1s
5.7.main.c autom4te.cache config.h.in configure.in
5.7.avg.c aclocal.m4 autoscan.log configure
步骤4:使用automake。
automake需要的脚本配置文件是“Makefile.am”,这个文件需要自己建立。
vim Makefile.am
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=test
test_SOURCES=5.7.main.c 5.7.avg.c
特别说明:
AUTOMAKE_OPTIONS为设置automake的选项。automake提供了3种软件等级foreign、gnu、gnits供用户选择使用,默认等级是gnu。现在使用的foreign只是检测必要的文件。
bin_PROGRAMS定义了要产生的执行文件名。如果产生多个可执行文件,每个文件名用空格隔开。
file_SOURCES定义file这个执行程序的依赖文件。同样地,对于多个执行文件,那就要定义相应的file_SOURCES。
步骤5:运行configure。
步骤6:将程序打包发布。
[root@localhost automake]# make dist
[root@localhost automake]# ls
autotools生成的makefile是最常见的开源软件提供的方式,安装此类开源软件的一般步骤:
(1)解压:tar test-1.0-tar.gz。
(2)输入“./configure”,执行configure程序,生成“Makefile”文件。
(3)输入“make”,用make工程管理器编译源程序。
(4)输入“make install”,把软件安装到系统目录中。
(5)输入“make clean”,清除编译时生成的可执行文件及目标文件。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。