summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorModestas Vainius <modestas@vainius.eu>2009-12-04 00:17:06 +0200
committerModestas Vainius <modestas@vainius.eu>2009-12-04 23:27:58 +0200
commitb02cb29e726ba44da007dff1c68f02a2c921f474 (patch)
tree792adb3df9e48280b69ec6d90acbb7cf6e080ea8
parent3a6520173bbb2eb4c4212d3ce180b846423d5535 (diff)
downloaddebhelper-b02cb29e726ba44da007dff1c68f02a2c921f474.tar.gz
Add --parallel option.
This patch adds --parallel option that enables parallel builds and does not impose limits on maximum concurrent processes. --max-parallel (that implies --parallel) can be used to specify that maximum limit. Also make necessary adjustments to debhelper.pod and buildsystem_tests for this option.
-rw-r--r--Debian/Debhelper/Dh_Buildsystems.pm1
-rw-r--r--debhelper.pod22
-rwxr-xr-xt/buildsystems/buildsystem_tests16
3 files changed, 25 insertions, 14 deletions
diff --git a/Debian/Debhelper/Dh_Buildsystems.pm b/Debian/Debhelper/Dh_Buildsystems.pm
index d50c5173..0f34a2e2 100644
--- a/Debian/Debhelper/Dh_Buildsystems.pm
+++ b/Debian/Debhelper/Dh_Buildsystems.pm
@@ -152,6 +152,7 @@ sub buildsystems_init {
"l" => \$opt_list,
"list" => \$opt_list,
+ "parallel" => sub { $max_parallel = -1 },
"max-parallel=i" => \$max_parallel,
);
$args{options}{$_} = $options{$_} foreach keys(%options);
diff --git a/debhelper.pod b/debhelper.pod
index 29687adc..19d1d497 100644
--- a/debhelper.pod
+++ b/debhelper.pod
@@ -217,20 +217,24 @@ 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<--max-parallel>I<=maximum>
-
-This option allows controlling how many parallel jobs can be used in a
-build, if parallel builds are enabled by the DEB_BUILD_OPTIONS environment
-variable.
+=item B<--parallel>
-If set to 1, parallel 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.
+Enable support for parallel builds if underlying build system provides this
+feature. The number of parallel processes is controlled by the
+DEB_BUILD_OPTIONS environment variable (L<Debian Policy, section 4.9.1>) at
+build time. It might also be subject to the build system specific limit.
If this option is not specified, debhelper currently defaults to not
supporting parallel package builds.
+=item B<--max-parallel>I<=maximum>
+
+This option implies L<--parallel> and allows to further limit the number of
+jobs that can be used in a parallel build. If the package build is known to
+only work with certain levels of concurrency, you can set this to the maximum
+level that is known to work, or that you wish to support. If set to 1, parallel
+builds will be effectively forbidden.
+
=item B<--list>, B<-l>
List all build systems supported by debhelper on this system. The list
diff --git a/t/buildsystems/buildsystem_tests b/t/buildsystems/buildsystem_tests
index 1a9e21ca..e69367ed 100755
--- a/t/buildsystems/buildsystem_tests
+++ b/t/buildsystems/buildsystem_tests
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-use Test::More tests => 291;
+use Test::More tests => 295;
use strict;
use warnings;
@@ -572,21 +572,27 @@ sub test_is_parallel {
test_isnt_parallel( do_parallel_mk(),
"No parallel by default" );
+test_isnt_parallel( do_parallel_mk("parallel"),
+ "No parallel by default with --parallel" );
+test_isnt_parallel( do_parallel_mk("--max-parallel=5"),
+ "No parallel by default with --max-parallel=5" );
$ENV{DEB_BUILD_OPTIONS}="parallel=5";
test_isnt_parallel( do_parallel_mk(),
- "DEB_BUILD_OPTIONS=parallel=5 without --max-parallel" );
+ "DEB_BUILD_OPTIONS=parallel=5 without parallel options" );
++test_is_parallel( do_parallel_mk("--parallel"),
++ "DEB_BUILD_OPTIONS=parallel=5 with --parallel" );
test_is_parallel( do_parallel_mk("--max-parallel=2"),
"DEB_BUILD_OPTIONS=parallel=5 with --max-parallel=2" );
test_isnt_parallel( do_parallel_mk("--max-parallel=1"),
- "DEB_BUILD_OPTIONS=parallel=5 with --max-parallel=1 (off)" );
+ "DEB_BUILD_OPTIONS=parallel=5 with --max-parallel=1" );
$ENV{MAKEFLAGS} = "--jobserver-fds=105,106 -j";
$ENV{DEB_BUILD_OPTIONS}="";
-test_isnt_parallel( do_parallel_mk("--max-parallel=5"),
+test_isnt_parallel( do_parallel_mk(),
"makefile.pm (no parallel): no make warnings about unavailable jobserver" );
$ENV{DEB_BUILD_OPTIONS}="parallel=5";
-test_is_parallel( do_parallel_mk("--max-paralle=5"),
+test_is_parallel( do_parallel_mk("--parallel"),
"DEB_BUILD_OPTIONS=parallel=5: no make warnings about unavail parent jobserver" );
$ENV{MAKEFLAGS} = "-j2";