如何配置使用Autotools构建到外部目录的应用程序?

时间:2018-06-25 11:57:04

标签: build autotools

我有使用Autotools(Autoconf,Automake等)的应用程序,该工具将对象和二进制文件构建到项目目录中。这不方便,我想为他们提供单独的目录,例如“构建”目录。即我需要“阴影构建”。有人可以建议这样做吗?

1 个答案:

答案 0 :(得分:2)

Autotools默认支持源外构建,如in the Automake manual所述。简而言之,您可以在任何位置创建目录,构建结果应该进入该目录。创建工作目录,然后从此处运行项目的configure脚本:

mkdir ~/the_project-build
cd  ~/the_project-build
~/the_project-1.2.3/configure
make
make install

然后,所有构建的文件应进入您创建的构建树中,而不是源树中。如果愿意,构建树的根目录可能位于项目目录中。

但是请注意

  1. 此功能取决于Automake和Autoconf。使用不带Automake的Autoconf的项目需要一些手动的注意才能为他们进行外包构建工作,而根据我的经验,此类项目通常不会受到关注。

  2. 基于Autotools的项目的维护者可以采取许多措施来破坏源代码的构建,因此您不能完全确定每个 Autotools项目都可以可以直接使用这种方式构建。

  3. 另一方面,Automake自动提供一个“ distcheck”目标来测试源外构建,因此,包维护者拥有一个工具,旨在帮助确保其项目确实支持源外。源构建。这样可以提高任何给定项目实际上所做的可能性。