summaryrefslogtreecommitdiff
path: root/dh
diff options
context:
space:
mode:
authorRoger Leigh <rleigh@debian.org>2010-11-22 20:58:20 +0000
committerJoey Hess <joey@kitenet.net>2010-11-22 18:18:04 -0400
commit9e54d11d1d1beb8b001c78eb1cf51a6fa5089d00 (patch)
tree0ec6147f4bc9f1a6847b5f781e9715b5ccf11d57 /dh
parent8e3c6c65a7da0b402616a8b6e63541e5c0b6fc7e (diff)
dh: Add support for build-arch, build-indep, install-arch and install-indep sequences
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>
Diffstat (limited to 'dh')
-rwxr-xr-xdh44
1 files changed, 28 insertions, 16 deletions
diff --git a/dh b/dh
index 21863dd..0b07973 100755
--- 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");