Explorar el Código

Dpkg: Add new Dpkg::PROGMAKE variable to store GNU make command name

Guillem Jover hace 10 años
padre
commit
c9fd007bbe
Se han modificado 5 ficheros con 13 adiciones y 3 borrados
  1. 1 0
      debian/changelog
  2. 7 1
      scripts/Dpkg.pm
  3. 2 0
      scripts/Makefile.am
  4. 1 1
      scripts/dpkg-buildpackage.pl
  5. 2 1
      scripts/t/mk.t

+ 1 - 0
debian/changelog

@@ -69,6 +69,7 @@ dpkg (1.18.11) UNRELEASED; urgency=medium
     - Change Dpkg::Compression::FileHandle to inherit directly from IO::File
       instead of FileHandle.
     - Add new Dpkg::PROGTAR variable to store GNU tar command name.
+    - Add new Dpkg::PROGMAKE variable to store GNU make command name.
   * Packaging:
     - Add liblocale-gettext-perl to libdpkg-perl Recommends.
     - Wrap and document dependency relationships.

+ 7 - 1
scripts/Dpkg.pm

@@ -33,6 +33,7 @@ our $VERSION = '1.02';
 our @EXPORT_OK = qw(
     $PROGNAME
     $PROGVERSION
+    $PROGMAKE
     $PROGTAR
     $CONFDIR
     $ADMINDIR
@@ -61,6 +62,10 @@ Contains the name of the current program.
 
 Contains the version of the dpkg suite.
 
+=item $Dpkg::PROGMAKE
+
+Contains the name of the system GNU make program.
+
 =item $Dpkg::PROGTAR
 
 Contains the name of the system GNU tar program.
@@ -89,6 +94,7 @@ our ($PROGNAME) = $0 =~ m{(?:.*/)?([^/]*)};
 
 # The following lines are automatically fixed at install time
 our $PROGVERSION = '1.18.x';
+our $PROGMAKE = $ENV{DPKG_PROGMAKE} // 'make';
 our $PROGTAR = $ENV{DPKG_PROGTAR} // 'tar';
 
 our $CONFDIR = '/etc/dpkg';
@@ -108,7 +114,7 @@ our $pkgdatadir = $DATADIR;
 
 =head2 Version 1.02 (dpkg 1.18.11)
 
-New variable: $PROGTAR.
+New variable: $PROGTAR, $PROGMAKE.
 
 =head2 Version 1.01 (dpkg 1.17.0)
 

+ 2 - 0
scripts/Makefile.am

@@ -127,6 +127,7 @@ do_perl_subst = $(AM_V_GEN) sed \
 	-e "s:\$$ADMINDIR = .*;:\$$ADMINDIR = '$(admindir)';:" \
 	-e "s:\$$LIBDIR = .*;:\$$LIBDIR = '$(pkglibdir)';:" \
 	-e "s:\$$DATADIR = .*;:\$$DATADIR = '$(pkgdatadir)';:" \
+	-e "s:\$$PROGMAKE = .*;:\$$PROGMAKE = '$(MAKE)';:" \
 	-e "s:\$$PROGTAR = .*;:\$$PROGTAR = '$(TAR)';:" \
 	-e "s:\$$PROGVERSION = .*;:\$$PROGVERSION = '$(PACKAGE_VERSION)';:"
 
@@ -189,6 +190,7 @@ coverage-clean:
 
 TEST_ENV_VARS = \
 	DPKG_PROGTAR=$(TAR) \
+	DPKG_PROGMAKE=$(MAKE) \
 	DPKG_DATADIR=$(top_srcdir)/data \
 	DPKG_ORIGINS_DIR=$(srcdir)/t/origins
 TEST_COVERAGE = $(PERL_COVERAGE)

+ 1 - 1
scripts/dpkg-buildpackage.pl

@@ -740,7 +740,7 @@ sub build_target_fallback {
 
     # Check if the build-{arch,indep} targets are supported. If not, fallback
     # to build.
-    my $pid = spawn(exec => [ 'make', '-f', @debian_rules, '-qn', $buildtarget ],
+    my $pid = spawn(exec => [ $Dpkg::PROGMAKE, '-f', @debian_rules, '-qn', $buildtarget ],
                     from_file => '/dev/null', to_file => '/dev/null',
                     error_to_file => '/dev/null');
     my $cmdline = "make -f @debian_rules -qn $buildtarget";

+ 2 - 1
scripts/t/mk.t

@@ -19,6 +19,7 @@ use warnings;
 use Test::More tests => 5;
 use File::Spec::Functions qw(rel2abs);
 
+use Dpkg ();
 use Dpkg::ErrorHandling;
 use Dpkg::IPC;
 use Dpkg::Vendor;
@@ -38,7 +39,7 @@ $ENV{DEB_BUILD_PATH} = rel2abs($datadir);
 sub test_makefile {
     my $makefile = shift;
 
-    spawn(exec => [ 'make', '-C', $datadir, '-f', $makefile ],
+    spawn(exec => [ $Dpkg::PROGMAKE, '-C', $datadir, '-f', $makefile ],
           wait_child => 1, nocheck => 1);
     ok($? == 0, "makefile $makefile computes all values correctly");
 }