首页 理论教育 Linux系统编程:autotools的使用

Linux系统编程:autotools的使用

时间:2023-11-16 理论教育 版权反馈
【摘要】:autotools工具只需用户输入简单的目标文件、依赖文件、文件目录等就可以轻松地生成makefile文件,其可以完成系统配置信息的收集,从而可以方便地处理各种移植性的问题。图5.1用autotools产生makefile文件的总体流程利用autotools系列工具生成makefile文件的基本步骤如表5.3所示。[root@localhost root]# aclocal[root@localhost root]# 1s5.7.avg.c 5.7.main.c aclocal.m4 autoscan.log configure.in[root@localhost root]# autoconf[root@localhost root]# ls5.7.main.c autom4te.cache configure5.7.avg.c aclocal.m4 autoscan.Log configure.in[root@localhost root]# autoheader[root@localhost root]# 1s5.7.main.c autom4te.cache config.h.in configure.in5.7.avg.c aclocal.m4 autoscan.log configure步骤4:使用automake。

Linux系统编程:autotools的使用

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”,清除编译时生成的可执行文件及目标文件。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈