#!/usr/bin/perl -w
-#
-# Build the .deb package, assuming all the files are set up.
+=head1 NAME
+
+dh_builddeb - build debian binary packages
+
+=cut
+
+use strict;
use Debian::Debhelper::Dh_Lib;
-init();
+
+=head1 SYNOPSIS
+
+B<dh_builddeb> [S<I<debhelper options>>] [B<--destdir=>I<directory>] [B<--filename=>I<name>] [S<B<--> I<params>>]
+
+=head1 DESCRIPTION
+
+dh_builddeb simply calls L<dpkg-deb(8)> to build a debian package or
+packages.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--destdir=>I<directory>
+
+Use this if you want the generated .deb files to be put in a directory
+other than the default of ".."
+
+=item B<--filename=>I<name>
+
+Use this if you want to force the generated .deb file to have a particular
+file name. Does not work well if more than one .deb is generated!
+
+=item B<-u>I<params>
+
+=item B<--> I<params>
+
+Pass I<params> to L<dpkg-deb(1)> when it is used to build the
+package.
+
+=back
+
+=cut
+
+init(options => {
+ "filename=s" => \$dh{FILENAME},
+});
# Set the default destination directory.
if (! defined $dh{DESTDIR}) {
$dh{DESTDIR}='..';
}
-foreach $PACKAGE (@{$dh{DOPACKAGES}}) {
- $TMP=tmpdir($PACKAGE);
- doit("dpkg","--build",$TMP,$dh{DESTDIR},@{$dh{U_PARAMS}});
+if (! defined $dh{FILENAME}) {
+ $dh{FILENAME}='';
+}
+else {
+ $dh{FILENAME}="/$dh{FILENAME}";
+}
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+ if (exists $ENV{DH_ALWAYS_EXCLUDE} && length $ENV{DH_ALWAYS_EXCLUDE}) {
+ if (! compat(5)) {
+ complex_doit("find $tmp $dh{EXCLUDE_FIND} | xargs rm -rf");
+ }
+ else {
+ # Old broken code here for compatibility. Does not
+ # remove everything.
+ complex_doit("find $tmp -name $_ | xargs rm -rf")
+ foreach split(":", $ENV{DH_ALWAYS_EXCLUDE});
+ }
+ }
+ if (! is_udeb($package)) {
+ doit("dpkg-deb", @{$dh{U_PARAMS}}, "--build", $tmp, $dh{DESTDIR}.$dh{FILENAME});
+ }
+ else {
+ my $filename=$dh{FILENAME};
+ if (! $filename) {
+ $filename="/".udeb_filename($package);
+ }
+ doit("dpkg-deb", @{$dh{U_PARAMS}}, "--build", $tmp, $dh{DESTDIR}.$filename);
+ }
}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut