summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Debian/Debhelper/Dh_Buildsystems.pm14
-rw-r--r--debhelper.pod15
-rw-r--r--debian/changelog16
-rwxr-xr-xdh6
4 files changed, 28 insertions, 23 deletions
diff --git a/Debian/Debhelper/Dh_Buildsystems.pm b/Debian/Debhelper/Dh_Buildsystems.pm
index b0e0a568..8713aab4 100644
--- a/Debian/Debhelper/Dh_Buildsystems.pm
+++ b/Debian/Debhelper/Dh_Buildsystems.pm
@@ -112,6 +112,8 @@ sub load_all_buildsystems {
sub buildsystems_init {
my %args=@_;
+
+ my $max_parallel=0;
# Available command line options
my %options = (
@@ -127,28 +129,28 @@ sub buildsystems_init {
"l" => \$opt_list,
"list" => \$opt_list,
- "j:i" => \&set_parallel,
- "parallel:i" => \&set_parallel,
+ "max-parallel:i" => \$max_parallel,
);
$args{options}{$_} = $options{$_} foreach keys(%options);
Debian::Debhelper::Dh_Lib::init(%args);
+ set_parallel($max_parallel);
}
sub set_parallel {
- my ($option, $value)=@_;
+ my $max=shift;
- if ($value >= 0 && exists $ENV{DEB_BUILD_OPTIONS}) {
+ if (exists $ENV{DEB_BUILD_OPTIONS}) {
# Parse parallel=n tag
my $n;
foreach my $opt (split(/\s+/, $ENV{DEB_BUILD_OPTIONS})) {
$n = $1 if $opt =~ /^parallel=(\d+)$/;
}
if (defined $n && $n > 0) {
- if ($value == 0 || $n < $value) {
+ if ($max && $n < $max) {
$opt_parallel = $n;
}
else {
- $opt_parallel = $value;
+ $opt_parallel = $max;
}
}
else {
diff --git a/debhelper.pod b/debhelper.pod
index 20ca9d7d..0a9ef41e 100644
--- a/debhelper.pod
+++ b/debhelper.pod
@@ -205,15 +205,16 @@ If the build system prefers out of source tree building but still
allows in source building, the latter can be re-enabled by passing a build
directory path that is the same as the source directory path.
-=item B<-j>[I<maximum>], B<--parallel>[I<=maximum>]
+=item B<--max-parallel>[I<=maximum>]
-Indicate that a source package supports building using multiple parallel
-processes. This only enables parallel building if the build system supports
-it, and I<parallel=n> is present in the DEB_BUILD_OPTIONS environment
-variable (as per Debian Policy section 4.9.1).
+By default, the DEB_BUILD_OPTIONS environment variable can be used to
+enable parallel building, when supported by the build system.
-The number of parallel processes will be the smaller value specified by
-I<--parallel>, DEB_BUILD_OPTIONS, or a build system specific limit.
+This option allows controlling how many parallel jobs can be used in a
+build. If set to 1, concurrent builds are disabled -- do this if
+the package build is known not to work in parallel. If the package build
+is known to only work with certian levels of concurrency, you can set this
+to the maximum level that is known to work, or that you wish to support.
=item B<--list>, B<-l>
diff --git a/debian/changelog b/debian/changelog
index 9d1f81fe..07296a9f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,13 +1,15 @@
debhelper (7.4.4) UNRELEASED; urgency=low
- * dh_auto_*: Add --parallel option that indicates the package supports
- parallel building. Then if DH_BUILD_OPTIONS contains 'parallel=N',
- and the build system supports it, parallel building is done.
* The makefile buildsystem (and derived buildsystems) now supports
- parallel building.
- * Typically, to enable parallel building, the --parallel option will
- be passed to dh. Closes: #532805
- * Thanks, Modestas Vainius for most of the work on parallel build support.
+ parallel building by default, as specified via DEB_BUILD_OPTIONS.
+ Closes: #532805
+ * dh_auto_*: Add --max-parallel option that can be used to control
+ or disable parallel building. --max-parallel=1 will disable parallel
+ building, while --max-parallel=N will limit the maximum number of
+ parallel processes that can be specified via DEB_BUILD_OPTIONS.
+ * Added some hacks to avoid warnings about unavailable jobservers when
+ debhelper runs make.
+ * Thanks, Modestas Vainius for much of the work on parallel build support.
-- Joey Hess <joeyh@debian.org> Wed, 28 Oct 2009 18:10:45 -0400
diff --git a/dh b/dh
index 0ecfe442..bd82d44b 100755
--- a/dh
+++ b/dh
@@ -225,9 +225,9 @@ init(options => {
});
inhibit_log();
-# If make was using a jobserver, but it is not available, clean out
-# MAKEFLAGS so that further make invocations can start a new job
-# server.
+# If make is using a jobserver, but it is not available
+# to this process, clean out MAKEFLAGS. This avoids
+# ugly warnings when calling make.
if (is_make_jobserver_unavailable()) {
clean_jobserver_makeflags();
}