X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dh_builddeb;h=3477f25765d2693107ab74d87bf4b9a79bf04e6e;hb=dc8877bbccde87d35d74d48c018ba9e6a106dc29;hp=0822f5077a0be56657692c997fd9ba84c137af3c;hpb=ce345636461e05dc52b74ad41b8049c2349c9f12;p=debhelper.git diff --git a/dh_builddeb b/dh_builddeb index 0822f50..3477f25 100755 --- a/dh_builddeb +++ b/dh_builddeb @@ -1,17 +1,101 @@ #!/usr/bin/perl -w -# -# Build the .deb package, assuming all the files are set up. -BEGIN { push @INC, "debian", "/usr/share/debhelper" } -use Dh_Lib; -init(); +=head1 NAME + +dh_builddeb - build debian binary packages + +=cut + +use strict; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B [S>] [B<--destdir=>I] [B<--filename=>I] [S I>] + +=head1 DESCRIPTION + +dh_builddeb simply calls L to build a debian package or +packages. + +=head1 OPTIONS + +=over 4 + +=item B<--destdir=>I + +Use this if you want the generated .deb files to be put in a directory +other than the default of ".." + +=item B<--filename=>I + +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<--> I + +Pass I to L when it is used to build the +package. + +=item B<-u>I + +This is another way to pass I to L. +It is deprecated; use B<--> instead. + +=back + +=cut + +init(options => { + "filename=s" => \$dh{FILENAME}, + "destdir=s" => \$dh{DESTDIR}, +}); # 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 + +This program is a part of debhelper. + +=head1 AUTHOR + +Joey Hess + +=cut