summaryrefslogtreecommitdiff
path: root/Debian/Debhelper
diff options
context:
space:
mode:
Diffstat (limited to 'Debian/Debhelper')
-rw-r--r--Debian/Debhelper/Buildsystem/makefile.pm15
-rw-r--r--Debian/Debhelper/Dh_Lib.pm10
2 files changed, 11 insertions, 14 deletions
diff --git a/Debian/Debhelper/Buildsystem/makefile.pm b/Debian/Debhelper/Buildsystem/makefile.pm
index 159f7c1e..ff904afd 100644
--- a/Debian/Debhelper/Buildsystem/makefile.pm
+++ b/Debian/Debhelper/Buildsystem/makefile.pm
@@ -8,7 +8,7 @@ package Debian::Debhelper::Buildsystem::makefile;
use strict;
use Debian::Debhelper::Dh_Lib qw(escape_shell is_make_jobserver_unavailable
- clean_makeflags);
+ clean_jobserver_makeflags);
use base 'Debian::Debhelper::Buildsystem';
sub get_makecmd_C {
@@ -34,17 +34,16 @@ sub exists_make_target {
sub do_make {
my $this=shift;
- # Remove unavailable jobserver options from MAKEFLAGS.
- # Always clean MAKEFLAGS from unavailable jobserver options. If parallel
- # is enabled, do more extensive clean up from all job control specific
- # options
- if (defined $this->get_parallel() || is_make_jobserver_unavailable()) {
- clean_makeflags();
+ # Avoid warnings about unavailable jobserver.
+ if (is_make_jobserver_unavailable()) {
+ clean_jobserver_makeflags();
}
- # Start a new jobserver if parallel building was requested
if (defined $this->get_parallel()) {
+ # Note that this will override any -j settings in MAKEFLAGS.
unshift @_, "-j" . ($this->get_parallel() > 1 ? $this->get_parallel() : 1);
+ # Force make to start a new jobserver.
+ clean_jobserver_makeflags();
}
$this->doit_in_builddir($this->{makecmd}, @_);
diff --git a/Debian/Debhelper/Dh_Lib.pm b/Debian/Debhelper/Dh_Lib.pm
index ac0d8ab4..8af365ff 100644
--- a/Debian/Debhelper/Dh_Lib.pm
+++ b/Debian/Debhelper/Dh_Lib.pm
@@ -16,7 +16,8 @@ use vars qw(@ISA @EXPORT %dh);
&compat &addsubstvar &delsubstvar &excludefile &package_arch
&is_udeb &udeb_filename &debhelper_script_subst &escape_shell
&inhibit_log &load_log &write_log &dpkg_architecture_value
- &sourcepackage &is_make_jobserver_unavailable &clean_makeflags);
+ &sourcepackage
+ &is_make_jobserver_unavailable &clean_jobserver_makeflags);
my $max_compat=7;
@@ -811,16 +812,13 @@ sub is_make_jobserver_unavailable {
return; # no jobserver specified
}
-# Cleans out job control options from MAKEFLAGS.
-sub clean_makeflags {
+# Cleans out jobserver options from MAKEFLAGS.
+sub clean_jobserver_makeflags {
if (exists $ENV{MAKEFLAGS}) {
if ($ENV{MAKEFLAGS} =~ /(?:^|\s)--jobserver-fds=(\d+)/) {
$ENV{MAKEFLAGS} =~ s/(?:^|\s)--jobserver-fds=\S+//g;
$ENV{MAKEFLAGS} =~ s/(?:^|\s)-j\b//g;
}
- else {
- $ENV{MAKEFLAGS} =~ s/(?:^|\s)(?:(?:-j\s*|--jobs(?:=|\s+))(\d+)?|--jobs)\b//g;
- }
delete $ENV{MAKEFLAGS} if $ENV{MAKEFLAGS} =~ /^\s*$/;
}
}