diff options
author | Joey Hess <joey@gnu.kitenet.net> | 2010-01-03 14:51:05 -0500 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2010-01-03 14:51:05 -0500 |
commit | 9afe080c5ee27e6e9170d09c9dc5c72cccbdc27e (patch) | |
tree | 2ce974864bf0392433df16c5f45f725c3a31afa6 /Debian/Debhelper | |
parent | 854494c6481e69350d2e1ea73b8aa2fdf12c749e (diff) |
makefile: Support the (asking for trouble) case of MAKE being set to something with a space in it. Closes: #563557
Diffstat (limited to 'Debian/Debhelper')
-rw-r--r-- | Debian/Debhelper/Buildsystem/makefile.pm | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/Debian/Debhelper/Buildsystem/makefile.pm b/Debian/Debhelper/Buildsystem/makefile.pm index 47814296..2c14c151 100644 --- a/Debian/Debhelper/Buildsystem/makefile.pm +++ b/Debian/Debhelper/Buildsystem/makefile.pm @@ -10,24 +10,21 @@ use strict; use Debian::Debhelper::Dh_Lib qw(escape_shell clean_jobserver_makeflags); use base 'Debian::Debhelper::Buildsystem'; -sub get_makecmd_C { - my $this=shift; - my $buildpath = $this->get_buildpath(); - if ($buildpath ne '.') { - return $this->{makecmd} . " -C " . escape_shell($buildpath); - } - return $this->{makecmd}; -} - sub exists_make_target { my ($this, $target) = @_; - my $makecmd=$this->get_makecmd_C(); # Use make -n to check to see if the target would do # anything. There's no good way to test if a target exists. - my $ret=`$makecmd -s -n --no-print-directory $target 2>/dev/null | head -n 1`; - chomp $ret; - return length($ret); + my @opts=("-s", "-n", "--no-print-directory"); + my $buildpath = $this->get_buildpath(); + unshift @opts, "-C", $buildpath if $buildpath ne "."; + open(SAVEDERR, ">&STDERR"); + close STDERR; + open(MAKE, "-|", $this->{makecmd}, @opts, $target); + my $output=<MAKE>; + close MAKE; + open(STDERR, ">&SAVEDERR"); + return defined $output && length $output; } sub do_make { |