递归Autotools项目中的并行构建

时间:2013-09-16 10:45:48

标签: makefile autotools

我有一个使用递归autotools结构的大型项目。大部分构建时间都花在了这个目录中的一个目录上,所以我想让这个目录并行构建。我找到了与make -j选项相关的文档来启用并行构建,但问题是,我应该在-j中为我正在构建的目录指定Makefile.am

我理解使用非递归结构进行并行构建更好,但是现在这个工作太大了,我希望还有一种方法可以并行构建这个目录。

2 个答案:

答案 0 :(得分:2)

指定构建的并行度级别不是维护者的任务,因为它取决于您构建的机器。通常将CPU数量传递给-j是一个好主意,但并非总是如此。应该发生的是用户只使用适当的make标志运行-j。如果你碰巧也是那个用户而且你已经厌倦了一直明确地传递-j,那么

export MAKEFLAGS=-j2
来自您的shell个人资料的

(例如.bashrc)并让make始终考虑此选项。

答案 1 :(得分:0)

假设有一个linux发行版,并且进一步假设您希望构建是自适应的,那么您可以尝试:

export MAKEFLAGS=-j`nproc`