为什么经常不使用“autoreconf”?

时间:2013-10-09 05:34:03

标签: linux autotools autoreconf

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

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

    感谢。

2 个答案:

答案 0 :(得分:9)

创建tarball(或从版本控制系统检出来源的人)的软件开发人员通常会从名为autoreconfbootstrap.sh的脚本中调用autogen.sh东西。 autoreconf也可能会调用Makefile(就像configure.ac更改时一样)。

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

答案 1 :(得分:3)

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

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