]> git.donarmstrong.com Git - debhelper.git/blob - dh_builddeb
Merge branch 'master' of ssh://git.debian.org/git/debhelper/debhelper
[debhelper.git] / dh_builddeb
1 #!/usr/bin/perl -w
2
3 =head1 NAME
4
5 dh_builddeb - build debian binary packages
6
7 =cut
8
9 use strict;
10 use Debian::Debhelper::Dh_Lib;
11
12 =head1 SYNOPSIS
13
14 B<dh_builddeb> [S<I<debhelper options>>] [B<--destdir=>I<directory>] [B<--filename=>I<name>] [S<B<--> I<params>>]
15
16 =head1 DESCRIPTION
17
18 dh_builddeb simply calls L<dpkg-deb(1)> to build a debian package or
19 packages.
20
21 =head1 OPTIONS
22
23 =over 4
24
25 =item B<--destdir=>I<directory>
26
27 Use this if you want the generated .deb files to be put in a directory
28 other than the default of ".."
29
30 =item B<--filename=>I<name>
31
32 Use this if you want to force the generated .deb file to have a particular
33 file name. Does not work well if more than one .deb is generated!
34
35 =item B<-u>I<params>
36
37 =item B<--> I<params>
38
39 Pass I<params> to L<dpkg-deb(1)> when it is used to build the
40 package.
41
42 =back
43
44 =cut
45
46 init(options => {
47         "filename=s" => \$dh{FILENAME},
48         "destdir=s" => \$dh{DESTDIR},
49 });
50
51 # Set the default destination directory.
52 if (! defined $dh{DESTDIR}) {
53         $dh{DESTDIR}='..';
54 }
55
56 if (! defined $dh{FILENAME}) {
57         $dh{FILENAME}='';
58 }
59 else {
60         $dh{FILENAME}="/$dh{FILENAME}";
61 }
62
63 foreach my $package (@{$dh{DOPACKAGES}}) {
64         my $tmp=tmpdir($package);
65         if (exists $ENV{DH_ALWAYS_EXCLUDE} && length $ENV{DH_ALWAYS_EXCLUDE}) {
66                 if (! compat(5)) {
67                         complex_doit("find $tmp $dh{EXCLUDE_FIND} | xargs rm -rf");
68                 }
69                 else {
70                         # Old broken code here for compatibility. Does not
71                         # remove everything.
72                         complex_doit("find $tmp -name $_ | xargs rm -rf")
73                                 foreach split(":", $ENV{DH_ALWAYS_EXCLUDE});
74                 }
75         }
76         if (! is_udeb($package)) {
77                 doit("dpkg-deb", @{$dh{U_PARAMS}}, "--build", $tmp, $dh{DESTDIR}.$dh{FILENAME});
78         }
79         else {
80                 my $filename=$dh{FILENAME};
81                 if (! $filename) {
82                         $filename="/".udeb_filename($package);
83                 }
84                 doit("dpkg-deb", @{$dh{U_PARAMS}}, "--build", $tmp, $dh{DESTDIR}.$filename);
85         }
86 }
87
88 =head1 SEE ALSO
89
90 L<debhelper(7)>
91
92 This program is a part of debhelper.
93
94 =head1 AUTHOR
95
96 Joey Hess <joeyh@debian.org>
97
98 =cut