加快大型项目的自动配置/配置
Posted
技术标签:
【中文标题】加快大型项目的自动配置/配置【英文标题】:speed up autoconf/configure of large project 【发布时间】:2011-07-13 19:11:26 【问题描述】:我有一个大型 autoconf/automake 项目,使用 AC_CONFIG_SUBDIRS 分解为组件。有什么方法可以让 autoconf/configure 运行得更快?也许并行执行子目录,或者缓存可重用的结果?
我可以轻松编写一个构建脚本来并行构建组件,但不希望添加构建结构维护的次要点。
【问题讨论】:
【参考方案1】:您可以使用configure cache feature 在多个configure
(同一configure
或递归子configure
的多次运行)之间缓存结果。只需运行
./configure -C
但是,您应该记住在系统配置更改时删除缓存(例如在安装了之前配置运行未找到的新软件包之后)。如果您使用一些第三方宏,您可能还必须将其中一些正确地修复为cache their results(一个常见的错误是在测试期间做出一些配置决定,如果该测试的结果被缓存,则可能会被跳过)。
如果您想在多个项目之间共享缓存,您可以在config.site
中进行设置。
【讨论】:
几乎在所有方面都同意,但在config.site
中设置缓存变量让我觉得是个坏主意。 gentoo 几年前没有尝试过 confcache 吗? IIRC,他们不得不退出,因为它破坏了很多东西。【参考方案2】:
我正在考虑一个 parallel 配置,它可以并行执行检查,以充分利用主机的多核。可能 autoconf 应该生成 bash 脚本,该脚本可以被矢量化/流水线化以使其成为可能。
【讨论】:
以上是关于加快大型项目的自动配置/配置的主要内容,如果未能解决你的问题,请参考以下文章