=head1 SYNOPSIS
-B<dh> sequence [B<--with> I<addon>] [B<--until> I<cmd>] [B<--before> I<cmd>] [B<--after> I<cmd>] [B<--remaining>] [S<I<debhelper options>>]
+B<dh> sequence [B<--with> I<addon>[,I<addon>,...]] [B<--until> I<cmd>] [B<--before> I<cmd>] [B<--after> I<cmd>] [B<--remaining>] [S<I<debhelper options>>]
=head1 DESCRIPTION
=over 4
-=item B<--with> I<addon>
+=item B<--with> I<addon>[,I<addon>,...]
Add the debhelper commands specified by the given addon to appropriate places
in the sequence of commands that is run. This option can be repeated more
-than once, and is used when there is a third-party package that provides
+than once, or multiple addons can be listed, separated by commas.
+This is used when there is a third-party package that provides
debhelper commands. See the PROGRAMMING file for documentation about
the sequence addon interface.
%:
dh --with quilt $@
+Here is an example of overriding where the dh_auto_* commands find
+the package's source, for a package where the source is located in a
+subdirectory. It also forces use of perl's Module::Build build system,
+which can be necessary if debhelper wrongly detects that the package
+uses MakeMaker.
+
+ #!/usr/bin/make -f
+ %:
+ dh --sourcedirectory=src --buildsystem=perl_build $@
+
=cut
# Stash this away before init modifies it.
# python-support is enabled by default, at least for now
# (and comes first so python-central loads later and can disable it).
unshift @ARGV, "--with=python-support";
+
+# Disable complaints about unknown options for both dh and the commands
+# it runs. This is done because dh accepts and passes on options that may
+# be specific to only some debhelper commands.
+$ENV{DH_IGNORE_UNKNOWN_OPTIONS}=1;
init(options => {
"until=s" => \$dh{UNTIL},
"remaining" => \$dh{REMAINING},
"with=s" => sub {
my ($option,$value)=@_;
- push @{$dh{WITH}},$value;
+ push @{$dh{WITH}},split(",", $value);
},
"without=s" => sub {
my ($option,$value)=@_;
dh_gconf
dh_icons
dh_perl
- dh_scrollkeeper
dh_usrlocal
dh_link
$override_command=$command;
# This passes the options through to commands called
# inside the target.
- $ENV{DH_INTERNAL_OPTIONS}=join(" ", @options);
+ $ENV{DH_INTERNAL_OPTIONS}=join("\x1e", @options);
$command="debian/rules";
@options="override_".$override_command;
}
# Need to handle logging for overriden commands here,
# because the actual debhelper command may not have
# been run by the rules file target.
- my %packages=map { $_ => 1 } @packages;
- map { delete $packages{$_} } @exclude;
- write_log($override_command, keys %packages);
+ # (But avoid logging for dh_clean since it removes
+ # the log earlier.)
+ if ($override_command ne 'dh_clean') {
+ my %packages=map { $_ => 1 } @packages;
+ map { delete $packages{$_} } @exclude;
+ write_log($override_command, keys %packages);
+ }
}
}
}