eassy/autotools — comment on commit f4a6b271127f0d59c230358682ab643ade8fffbd
File:  line 0
By eassy:

因为automake和libtool只是autotools框架上的插件，所以我们有必要丢开它们，手动的使用Autoconf来配置我们的项目。这将通过剖析那些通常被automake隐藏的工具来告诉我们Autoconf是如何工作的。
在Automake出现之前，Autoconf被单独使用。事实上，一些古老的开源项目从不将Autoconf当做整个GNU项目的自动配置套件。所以就像寻找Makefile.in模板一样，我们很难在那些老的开源项目中找到一个叫做configure.in（通常的autoconf命名方式）的配置文件。
在这章里面，我将告诉你如何在一个现存的项目中添加一个Autoconf组建系统，并主要讲解Autoconf的基本特征。在下一章里，我会从更细的角度说明众多的Autoconf宏是如何一起工作的，以及我们该怎么合理的使用它们。我们将继续使用Jupiter项目作为例子。

Autoconf 配置脚本

autoconf程序的输入是连接着宏调用的shell脚本，它们必须包括着对其所引用宏的定义，不管宏是Autoconf提供的还是你自定义的。

在Autoconf中使用的宏语言被称作M4（表明后有4个字母的M，或单词Macro）。m4工具是由Brian Kernighan和Dennis Ritchie在1997年所写的一个宏语言基础应用处理器。

尽管你可能对这并不熟悉，但是你在每个Unix和Linux平台上（或者其他平台）都能看到M4的应用。因为Autoconf的最初设计理念是不需要额外的工具链就可以支持各种平台，所以M4以其多样化的属性被应用在Autoconf。

Autoconf要求一下工具的存在：
* bourne shell
* M4
* perl解释器
它的配置脚本与makefiles依赖于一系列的工具：一个bourne shell，grep，ls，sed，awk。
注意：不要将Autotools的依赖与它们生成脚本与makefiles的依赖搞混。Autotools是主要的工具，而最终脚本和makefiles是终端用户工具。