如何使用debuild运行并行make?

我正在尝试打包一款我(合作)编写的软件。我正在使用...
debuild -i -us -uc -b 

原则上,这是可以的。为了缩短编译时间,我想使用debuild并行运行make(就像我通常通过运行"make -j4"来做的一样,例如)。 我在网络上找到了一些建议,如下所示:
debuild -eDEB_BUILD_OPTIONS="parallel=4" -us -uc -b
debuild -j4 -us -uc -b

另一个网站建议在 debian/rules 文件中添加一些代码,基本上是设置的。

MAKEFLAGS += -j4

然而,似乎这些方法都没有起作用。我是不是漏掉了什么?或者我应该在源代码的autoconf/automake设置中做一些改变吗?
4个回答

必须在debian/rules中启用它。如果软件包使用dh,请在debian/rules中添加以下行:
dh $@

将其更改为
dh $@ --parallel

然后你的命令将会生效,至少DEB_BUILD_OPTIONS="parallel=4"


5只需记住导出DEB_BUILD_OPTIONS以使所有工具都满意。 - rbrito
4不再需要--parallel选项,只需设置环境变量即可。 - gps

我建议使用DEB_BUILD_OPTIONS环境变量,如《Debian政策手册》第4.9.1节所述。
DEB_BUILD_OPTIONS='parallel=4' debuild -i -us -uc -b

顺便提一下,这个环境变量对于 dpkg-buildpackage 命令无效。它有自己的选项 -j=4 可以使用。但等号 = 很重要。 - Vasily Ryabov

使用debhelper 10,您不再需要在debian/rules中提供--parallel选项;它现在默认并行构建。请参阅发布说明
因此,答案就是将debian/compat的内容设置为10,并在debian/control中将debhelper版本更新为>=10。

总结以上所有内容,对我来说有效的是:
export DEB_BUILD_OPTIONS='parallel=16'
fakeroot debian/rules binary