애플리케이션을 병렬로 구축하기 위한 옵션

애플리케이션을 병렬로 구축하기 위한 옵션

이는 애플리케이션의 데비안/규칙입니다. 라고넥스. 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

다음 두 명령을 실행하면 끝에 데비안 패키지가 나타납니다.

$ 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은 제안 요청데비안의 소프트웨어 패키지

답변1

예, 호환성 수준 9에서는

dh $@ --parallel --with autoreconf

병렬 빌드를 활성화하기에 충분합니다. 병렬 빌드의 "누락된 종속성"은 Makefile패키지 종속성이 아니라 업스트림 빌드 규칙(등)의 대상 종속성을 나타냅니다 .

호환성 수준 10의 경우 위의 두 가지 옵션이 기본적으로 활성화되어 있으므로

dh $@

병렬 빌드를 활성화하기에 충분합니다 autoreconf.

dh매뉴얼 페이지에는 debhelper모든 세부 정보가 포함되어 있습니다.

관련 정보