アプリケーションを並列に構築するためのオプション

アプリケーションを並列に構築するためのオプション

これはアプリケーションの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

次の2つのコマンドを実行すると、最後に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の場合、上記の2つのオプションがデフォルトで有効になっているため

dh $@

並列ビルドを有効にするのに十分ですautoreconf

dhマニュアルページにはdebhelperすべての詳細が含まれています。

おすすめ記事