并行构建应用程序的选项

并行构建应用程序的选项

这些是来自应用程序的 debian/规则。被称为内克斯。它是 GNU/Linux 的 CPU-Z 替代品,并且有一个 debian 子目录,其中包含以下文件 -

┌─[shirish@debian] - [~/games/I-Nex] - [4454]
└─[$] ll -r debian

-rw-r--r-- 1 shirish shirish   296 2016-11-13 02:12 i-nex-library.desktop
-rw-r--r-- 1 shirish shirish    93 2016-11-13 02:12 gbp.conf
-rw-r--r-- 1 shirish shirish 16588 2016-11-13 02:12 copyright
-rw-r--r-- 1 shirish shirish 14328 2016-11-13 02:12 changelog
drwxr-xr-x 2 shirish shirish  4096 2016-11-13 02:12 source
-rwxr-xr-x 1 shirish shirish   384 2016-11-13 02:12 rules
-rw-r--r-- 1 shirish shirish    63 2016-11-13 02:12 manpages
-rw-r--r-- 1 shirish shirish   110 2016-11-13 02:12 i-nex.triggers
-rw-r--r-- 1 shirish shirish  6535 2016-11-13 02:12 i-nex.desktop
-rw-r--r-- 1 shirish shirish  1408 2016-11-13 03:16 control
-rw-r--r-- 1 shirish shirish     2 2016-11-13 03:16 compat
-rw-r--r-- 1 shirish shirish     6 2016-11-13 03:17 debhelper-build-stamp
drwxr-xr-x 5 shirish shirish  4096 2016-11-13 03:18 i-nex
-rw-r--r-- 1 shirish shirish    62 2016-11-13 03:19 i-nex.substvars
-rw-r--r-- 1 shirish shirish    91 2016-11-13 03:19 files
-rw-r--r-- 1 shirish shirish   455 2016-11-13 03:19 i-nex.debhelper.log

我运行以下两个命令,最后会出现一个 debian 包 -

$ fakeroot debian/rules build 
$ fakeroot debian/rules binary 

从上面的清单可以明显看出,在后端,debhelper 正在根据时间戳和构建日志执行构建过程。这也通过运行得到证实

$ fakeroot debian/rules clean 

其中 debian 子目录删除了所有 debhelper 条目。

现在可以看到这是 debian/rules -

┌─[shirish@debian] - [~/games/I-Nex] - [4453]
└─[$] cat debian/rules

#!/usr/bin/make -f
LSB_CS =        $(shell lsb_release -cs)

ifeq ($(LSB_CS),lucid)
COMPRESSION =       -- -z9 -Zgzip
else
COMPRESSION =       -- -z9 -Zxz
endif
override_dh_autoreconf:
    cd I-Nex && autoreconf -i
override_dh_auto_configure:
    dh_auto_configure --sourcedirectory=I-Nex
override_dh_builddeb:
    dh_builddeb $(COMPRESSION)
override_dh_fixperms:
    dh_fixperms
%:
    dh $@  --with autoreconf

现在根据这个回答,似乎唯一要改变的是最后一行 -

dh $@  --with autoreconf

dh $@ --parallel --with autoreconf

当然,这是假设并行编译时没有丢失依赖项。我错过了什么吗?

JFR有 征求建议书在 Debian 中的软件包

答案1

没错,在兼容性级别 9 中,

dh $@ --parallel --with autoreconf

足以启用并行构建。请注意,并行构建的“缺少依赖项”是指上游构建规则(Makefile等)中的目标依赖项,而不是包依赖项。

对于兼容性级别 10,默认情况下启用上述两个选项,因此

dh $@

足以启用并行构建autoreconf

dh和手册页debhelper包含所有详细信息。

相关内容