1引言

一位物理学家、一位工程师和一位计算机科学家正在讨论上帝的本性。“当然是物理学家,”物理学家说,“因为在创世早期,上帝创造了光;你知道,Maxwell的方程,电磁波的对偶性质,相对论后果...“工程师!”工程师说,“因为在制造光之前,上帝将混沌分裂为陆地和水;这需要处理这么多泥浆的工程师真是太棒了,而且井然有序固体和液体的分离...“计算机科学家喊道:“还有混沌,你认为它是从哪里来的,嗯?”

-匿名

Autoconf是一种工具,用于自动生成shell脚本配置软件源代码包以适应多种类Posix系统。Autoconf生成的配置脚本在运行时独立于Autoconf,因此其用户不会需要有Autoconf。

Autoconf生成的配置脚本不需要手动用户运行时干预;他们通常甚至不需要争论指定系统类型。相反,他们单独测试显示软件包可能需要的每个功能。(在每次检查之前,他们打印一条单行消息,说明他们是什么检查,这样用户在等待脚本完成。)因此,它们能够很好地处理以下系统混合型或从更常见的Posix变体定制。无需维护列出每个支持的功能的文件发布Posix的每个变体。

对于使用Autoconf的每个软件包,它都会创建一个来自列出系统功能的模板文件的配置脚本软件包需要或可以使用的。外壳代码识别后并响应已编写的系统功能,Autoconf允许它由许多可以使用(或需要)该功能的软件包共享。如果后来发现shell代码需要进行一些调整原因是,它只需要在一个地方进行更改;所有的可以自动重新生成配置脚本以利用更新后的代码。

那些不了解Autoconf的人注定要彻底改造它。Autoconf的主要目标是用户的生活更轻松;制作维修人员的生活更轻松只是次要目标。换句话说,主要目标不是让配置包维护者自动使用(尽管有补丁欢迎沿着这条战线前进,因为包维护者形成了用户Autoconf基础);相反,目标是配置为每种产品的最终用户提供无痛、便携和可预测的服务自动加密的包裹。在这个程度上,Autoconf在目标上取得成功-对Autoconf列表的大多数投诉是关于编写Autoconf输入的困难,而不是结果配置。甚至不使用Autoconf的软件包通常会提供配置脚本,以及最常见的对这些替代的家庭成长脚本的抱怨是它们失败了满足一个或多个GNU编码标准(参见配置在里面GNU编码标准)用户已经开始期待Autoconf-generated配置脚本。

Metaconfig包的用途与Autoconf类似,但它生成的脚本需要用户手动干预,这相当配置大型源树时不方便。与Metaconfig不同脚本,Autoconf脚本可以支持交叉编译,如果需要注意的话被写下来了。

Autoconf并不能解决与便携化相关的所有问题软件包-为了获得更完整的解决方案,它应该用于与其他GNU构建工具(如Automake和Libtool。这些其他工具可以承担诸如创建带有所有标准目标的可移植递归makefile,共享库的链接等。请参阅GNU构建系统,了解更多信息。

Autoconf对与一起使用的宏的名称施加了一些限制#如果在C程序中(请参见预处理器符号索引).

Autoconf需要GNU M4 1.4.8或更高版本,以便生成脚本。它使用了一些版本的M4、,包括GNU M4 1.3,没有。Autoconf效果更好使用GNU M4 1.4.16或更高版本,但这不是必修的。

请参见从版本1升级,获取有关从版本1升级的信息。请参见Autoconf的历史,为Autoconf的发展故事。请参见常见Autoconf问题及答案,获取有关Autoconf的一些常见问题的答案。

请参阅Autoconf网页有关最新信息,请参阅邮件的详细信息列表、指向已知错误列表的指针等。

将建议邮寄至。过去的建议是已存档.

将错误报告发送给。过去的错误报告是已存档.

如果可能,首先检查您的错误在当前开发版本中尚未解决,并且尚未解决尚未报告。确保包括所有必要的信息和短的配置.ac这说明了问题所在。

可以通过以下方式访问Autoconf的开发树吉特; 请参阅自动控制总结有关详细信息,或查看实际的储存库.相对于电流的补丁吉特版本可以发送给审查,讨论了以前的补丁程序已存档; 所有提交都以只读方式发布,这是已存档.

由于其使命,Autoconf包本身只包括一组常用的已经证明其有用性的宏。尽管如此,如果希望共享宏或查找现有宏,请参阅Autoconf宏档案文件,这是善意的运行.