]> git.donarmstrong.com Git - debhelper.git/commitdiff
dh: Add support for build-arch, build-indep, install-arch and install-indep sequences
authorRoger Leigh <rleigh@debian.org>
Mon, 22 Nov 2010 20:58:20 +0000 (20:58 +0000)
committerJoey Hess <joey@kitenet.net>
Mon, 22 Nov 2010 22:18:04 +0000 (18:18 -0400)
The existing binary-arch and binary-indep sequences depend upon these
new sequences, leading to the following possible orders:

binary → install → build
binary-arch → install-arch → build-arch
binary-indep → install-indep → build-indep

This is the logical dependency ordering of the sequences; the actual
order is of course in reverse so that build is followed by install
and binary.

Signed-off-by: Roger Leigh <rleigh@debian.org>
dh

diff --git a/dh b/dh
index 21863dde215e4a3ca29c9f551d5b03ef9d258718..0b07973ea1742a7085bb91a38897a3a875a94549 100755 (executable)
--- a/dh
+++ b/dh
@@ -16,13 +16,15 @@ B<dh> I<sequence> [B<--with> I<addon>[B<,>I<addon> ...]] [B<--list>] [B<--until>
 =head1 DESCRIPTION
 
 B<dh> runs a sequence of debhelper commands. The supported I<sequence>s
-correspond to the targets of a F<debian/rules> file: B<build>, B<clean>,
+correspond to the targets of a F<debian/rules> file: B<build-arch>,
+B<build-indep>, B<build>, B<clean>, B<install-indep>, B<install-arch>,
 B<install>, B<binary-arch>, B<binary-indep>, and B<binary>.
 
-Commands in the B<binary-indep> sequence are passed the B<-i> option to ensure
-they only work on binary independent packages, and commands in the
-B<binary-arch> sequences are passed the B<-a> option to ensure they only work
-on architecture dependent packages.
+Commands in the B<build-indep>, B<install-indep> and B<binary-indep>
+sequences are passed the B<-i> option to ensure they only work on
+binary independent packages, and commands in the B<build-arch>,
+B<install-arch> and B<binary-arch> sequences are passed the B<-a>
+option to ensure they only work on architecture dependent packages.
 
 If F<debian/rules> contains a target with a name like B<override_>I<dh_command>,
 then when it would normally run I<dh_command>, B<dh> will instead call that
@@ -322,12 +324,14 @@ $sequences{build} = [qw{
        dh_auto_build
        dh_auto_test
 }],
+$sequences{'build-indep'} = [@{$sequences{build}}];
+$sequences{'build-arch'} = [@{$sequences{build}}];
 $sequences{clean} = [qw{
        dh_testdir
        dh_auto_clean
        dh_clean
 }];
-$sequences{install} = [@{$sequences{build}}, qw{
+my @i = qw{
        dh_testroot
        dh_prep
        dh_installdirs
@@ -366,20 +370,24 @@ $sequences{install} = [@{$sequences{build}}, qw{
        dh_link
        dh_compress
        dh_fixperms
-}];
+};
+$sequences{'install'} = [@{$sequences{build}}, @i];
+$sequences{'install-indep'} = [@{$sequences{'build-indep'}}, @i];
+$sequences{'install-arch'} = [@{$sequences{'build-arch'}}, @i];
+my @ba=qw{
+       dh_strip
+       dh_makeshlibs
+       dh_shlibdeps
+};
 my @b=qw{
        dh_installdeb
        dh_gencontrol
        dh_md5sums
        dh_builddeb
 };
-$sequences{'binary-indep'} = [@{$sequences{install}}, @b];
-$sequences{binary} = [@{$sequences{install}}, qw{
-       dh_strip
-       dh_makeshlibs
-       dh_shlibdeps
-}, @b];
-$sequences{'binary-arch'} = [@{$sequences{binary}}];
+$sequences{binary} = [@{$sequences{install}}, @ba, @b];
+$sequences{'binary-indep'} = [@{$sequences{'install-indep'}}, @b];
+$sequences{'binary-arch'} = [@{$sequences{'install-arch'}}, @ba, @b];
 
 # Additional command options
 my %command_opts;
@@ -514,14 +522,18 @@ my @packages=@{$dh{DOPACKAGES}};
 # Get the options to pass to commands in the sequence.
 # Filter out options intended only for this program.
 my @options;
-if ($sequence eq 'binary-arch') {
+if ($sequence eq 'build-arch' ||
+    $sequence eq 'install-arch' ||
+    $sequence eq 'binary-arch') {
        push @options, "-a";
        # as an optimisation, remove from the list any packages
        # that are not arch dependent
        my %arch_packages = map { $_ => 1 } getpackages("arch");
        @packages = grep { $arch_packages{$_} } @packages;
 }
-elsif ($sequence eq 'binary-indep') {
+elsif ($sequence eq 'build-indep' ||
+       $sequence eq 'install-indep' ||
+       $sequence eq 'binary-indep') {
        push @options, "-i";
        # ditto optimisation for arch indep
        my %indep_packages = map { $_ => 1 } getpackages("indep");