快速业务通道

Linux下编程工具的使用(4) - autoconf/automake工具

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-30
efile.in 产生合适的Makefile.

具体流程如下所示:

代码 --> [autoscan*] --> [configure.scan] --> configure.in
configure.in --. .------> Autoconf* -----> configure

 --- 

[aclocal.m4] --  `---.

[acsite.m4] ---'''' |

 --> [autoheader*] -> [config.h.in]

[acconfig.h] ----. |  -----''''

[config.h.top] -- 

[config.h.bot] --''''

Makefile.am --? [Autoconf*] -------> Makefile.in

.-------------> config.cache

configure* ------------ -------------> config.log

|

[config.h.in] -. v .-> [config.h] -.

 --> config.status* -   --> make*

Makefile.in ---'''' `-> Makefile ---''''


上图表示在整个过程中要使用的文件及产生出来的文件,有星号 (*) 代表可执行文件.在此示例中可由 Autoconf 及 Automake 工具所产生的额外文件有 configure.scan、aclocal.m4、configure、Makefile.in,需要加入设置的有configure.in 及 Makefile.am.开发者要书写的文件集中为confiugre.in和Makefile.am,在minigui项目中,我们把一系列的命令集中到一个批处理文件中: autogen.sh:

#!/bin/sh
aclocal
autoheader
Automake --add-missing
Autoconf

只要执行该批处理文件,结合configure.in和Makefile.am,就可以生成需要的Makefile了.

编辑 configure.in 文件

Autoconf 是用来产生 ''''configure''''文件的工具.''''configure'''' 是一个 shell scrīpt,它可以自动设定一些编译参数使程序能够条件编译以符合各种不同平台的Unix 系统.Autoconf会读取configure.in 文件然后产生''''configure'''' 这个 shell scrīpt.



configure.in 文件内容是一系列GNU m4 的宏,这些宏经Autoconf处理后会变成检查系统特性的shell scrīpts. configure.in文件中宏的顺序并没有特别的规定,但是每一个configure.in 文件在所有其它宏前加入 AC_INIT 宏,然后在所有其它宏的加上 AC_OUTPUT宏.一般可先用 autoscan 扫描原始文件以产生一个 configure.scan 文件,再对 configure.scan 做些修改成 configure.in 文件.在例子中所用到的宏如下:



dnl

这个宏后面的内容不会被处理,可以视为注释



AC_INIT(FILE)

该宏用来检查源代码所在路径,autoscan 会自动产生,一般无须修改它.



AM_INIT_AUTOMAKE(PACKAGE,VERSION)

这个是使用 Automake 所必备的宏,PACKAGE 是所要产生软件的名称,VERSION 是版本编号.



AC_PROG_CC

检查系统可用的C编译器,若源代码是用C写的就需要这个宏.



AC_OUTPUT(FILE)

设置 configure 所要产生的文件,若是Makefile ,configure 便会把它检查出来的结果填充到Makefile.in 文件后产生合适的 Makefile.



实际上,在使用 Automake 时,还需要一些其他的宏,这些额外的宏我们用 aclocal来帮助产生.执行 aclocal会产生aclocal.m4 文件,如果没有特别的用途,不需要修改它,用 aclocal 所产生的宏会告诉 Automake如何动作.

要注意的是,利用 Autoconf 及 Automake 所产生出來的软件套件是可以在没有安装 Autoconf 及 Automake 的环境使用的, configure 是一个 shell scrīpt,它己被设计为可以在一般 Unix 的 sh 这个 shell 下执行.但是如果要修改 configure.in 及 Makefile.am 文件再产生新的 configure 及 Makefile.in 文件时就一定要有 Autoconf 及 Automake 了.

相关资料
通常我们掌握了一些入门知识就可以开始实践了,在有新的需求时,参照相关的文档和别人的例子解决问题,在实践中不断提高.

Autoconf 和 Automake 功能十分强大,可以从它们附带的 info 文档中找到详细的使用说明.或者您喜欢html,可以从gun站点上下载hmtl版本.你也可以从许多现有的GNU 软件或 Open Source 软件如Minigui中找到相关的 configur

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号