工具简介
生成 Makefile 的来龙去脉
官方下载地址
Autoconf的内容
简短说明
Autoconf 安装依赖关系
autoconf的一个详细帖子

工具简介

autoconf是一个用于生成可以自动地配置软件源码包,用以适应多种 UNIX类系统的shell脚本工具,其中autoconf需要用到 m4,便于生成脚 本。automake是一个从Makefile.am文件自动生成Makefile.in的工具。 为了生成 Makefile.in,automake还需用到perl,由于automake创建的 发布完全遵循GNU标准,所以在创建中不需要perl。 libtool是一款方便 生成各种程序库的工具。

目前automake支持三种目录层次:flat、shallow和deep。

就是所有源文件、头文件以及其他库文件都位于当前目录中,且没有子 目录。Termutils就是这一类。

就是主要源文件在当前目录中,而其它一些实现各部分功能的源文件位 于各自不同的目录。automake本身就是这一类。

就是所有源文件及自己写的头文件位于当前目录的一个子目录中,而当 前目录里没有任何源文件。 GNU cpio和GNU tar就是这一类。

flat类型是最简单的,deep类型是最复杂的。不难看出,我们的模拟需 求正是基于第三类deep型,也就是说我们要做挑战性的事情:)。注:我 们的测试程序是基于多线程的简单程序。

生成 Makefile 的来龙去脉

首先进入 project 目录,在该目录下运行一系列命令,创建和修改几个 文件,就可以生成符合该平台的Makefile文件,操作过程如下:

1 运行autoscan命令

2 将configure.scan 文件重命名为configure.in,并修改configure.in文件

3 在project目录下新建Makefile.am文件,并在core和shell目录下也 新建makefile.am文件

4 在project目录下新建NEWS、 README、 ChangeLog 、AUTHORS文件

5 将/usr/share/automake-1.X/目录下的depcomp和complie文件拷贝到 本目录下

6 运行aclocal命令

7 运行autoconf命令

8 运行automake -a命令

9 运行./confiugre脚本

生成Makefile流程图
生成Makefile流程图

官方下载地址

Autoconf (2.59): ftp://ftp.gnu.org/gnu/autoconf/

Autoconf的内容

Autoconf 能生成用于自动配置源代码的 shell 脚本。

安装下列程序: autoconf, autoheader, autom4te, autoreconf, autoscan, autoupdate 和 ifnames

简短说明

autoconf是一个产生可以自动配置源代码包,生成shell脚本的工具,以 适应各种类UNIX系统的需要。autoconf 产生的配置脚本在运行时独立于 autoconf ,因此使用这些脚本的用户不需要安装autoconf。

autoheader
能够产生供configure脚本使用的C #define语句模板文件。
autom4te
对文件执行 GNU M4。
autoreconf
如果有多个autoconf产生的配置文件,autoreconf可以 保存一些工作,它通过重复运行autoconf(以及在合适的地方运行 autoheader)以重新产生autoconf配置脚本和配置头模板,这些文件 保存在以当前目录为根的目录树中。
autoscan
程序可以用来为软件包创建configure.in文件。 autoscan在以命令行参数中指定的目录为根(如果未给定参数,则以 当前目录为根)的目录树中检查源文件。它为通常的轻便问题搜索源 文件,并且为那个包创建一个configure.scan文件,这个文件就是 configure.in的前身。
autoupdate
程序将一个调用autoconf 宏的旧名称的configure.in 文件中的宏更新为新的名称。
ifnames
当为一个软件包写configure.in 时,ifnames可以提供一 些帮助。它打印包中那些在C预处理器中已经使用了的表示符。如果 一个包已经设置成具有某些可移植属性,这个程序能够帮助指出它的 配置应该如何检查。它可以用来填补由autoscan产生的 configure.in中的隔阂。

Autoconf 安装依赖关系

Autoconf 依赖于: Bash, Coreutils, Diffutils, Grep, M4, Make, Perl, Sed.

autoconf的一个详细帖子

参考文件
  1. http://www.ibm.com/developerworks/cn/linux/l-makefile/
  2. http://www.linuxforum.net/books/autoconf.html
  3. LFS的介绍