20

我是 Autotools 的新手。据我了解,可以使用以下基本步骤来使用 Autotools 构建软件:

  1. autoreconf --install
  2. ./configure
  3. make

但是,我注意到大多数开源软件包(在 Linux 上)不需要第 1 步。他们大多数时候只需要第 2 步和第 3 步来构建。似乎它们已经与Makefile.in. 我想知道为什么?他们是手动编码Makefile.in,还是软件开发人员在创建软件包之前autoreconf用来生成?Makefile.in

谢谢。

4

2 回答 2

11

创建 tarball(或从版本控制系统检查源代码)的软件开发人员通常会autoreconf从调用的脚本调用bootstrap.shautogen.sh执行其他操作。 autoreconf也可能被调用Makefile(比如何时configure.ac改变)。

大多数用户永远不需要运行autoreconf,即使是那些对源代码进行一些修改(例如补丁)的用户。只有那些需要对包本身进行修改(对configure.ac和/或进行更改Makefile.am)的人才需要autoreconf.

于 2013-10-09T05:49:22.827 回答
3

运行autoreconf需要已经安装了正确版本的 autotools。这导致了先有鸡还是先有蛋的问题——首先如何安装自动工具?它还添加了大多数最终用户并不真正需要的额外依赖项。

因此,大多数打包程序在生成他们分发的源代码压缩包之前运行 autoreconf。这意味着如果您下载这样的 tarball,您可以配置和构建它,而无需先安装 autotools。

于 2016-06-13T20:48:44.357 回答