]> git.donarmstrong.com Git - debhelper.git/blob - dh_auto_configure
Add dpkg_architecture_value and sourcepackage to Dh_Lib
[debhelper.git] / dh_auto_configure
1 #!/usr/bin/perl -w
2
3 =head1 NAME
4
5 dh_auto_configure - automatically configure a package prior to building
6
7 =cut
8
9 use strict;
10 use Debian::Debhelper::Dh_Lib;
11
12 =head1 SYNOPSIS
13
14 B<dh_auto_configure> [S<I<debhelper options>>] [S<B<--> I<params>>]
15
16 =head1 DESCRIPTION
17
18 dh_auto_configure is a debhelper program that tries to automatically
19 configure a package prior to building. It looks for and runs a ./configure
20 script, Makefile.PL, or Build.PL. A standard set of parameters is
21 determined and passed to the program that is run. If no program to run is
22 found, dh_auto_configure will exit without doing anything.
23
24 This is intended to work for about 90% of packages. If it doesn't work,
25 you're encouraged to skip using dh_auto_configure at all, and just run
26 ./configure or its equivalent manually.
27
28 =head1 OPTIONS
29
30 =over 4
31
32 =item B<--> I<params>
33
34 Pass "params" to the program that is run. These can be used to supplement
35 or override the standard parameters that dh_auto_configure passes.
36
37 =back
38
39 =cut
40
41 init();
42
43 if (-x "configure") {
44         # Standard set of options for configure.
45         my @opts;
46         push @opts, "--build=".dpkg_architecture_value("DEB_BUILD_GNU_TYPE");
47         push @opts, "--prefix=/usr";
48         push @opts, "--includedir=\${prefix}/include";
49         push @opts, "--mandir=\${prefix}/share/man";
50         push @opts, "--infodir=\${prefix}/share/info";
51         push @opts, "--sysconfdir=/etc";
52         push @opts, "--localstatedir=/var";
53         push @opts, "--libexecdir=\${prefix}/lib/".sourcepackage();
54         push @opts, "--disable-maintainer-mode";
55         push @opts, "--disable-dependency-tracking";
56         # Provide --host only if different from --build, as recommended in
57         # autotools-dev README.Debian: When provided (even if equal) autotools
58         # 2.52+ switches to cross-compiling mode.
59         if (dpkg_architecture_value("DEB_BUILD_GNU_TYPE") ne dpkg_architecture_value("DEB_HOST_GNU_TYPE")) {
60                 push @opts, "--host=".dpkg_architecture_value("DEB_HOST_GNU_TYPE");
61         }
62         doit("./configure", @opts, @{$dh{U_PARAMS}});
63 }
64 elsif (-e "Makefile.PL") {
65         # If set to a true value then MakeMaker's prompt function will
66         # # always return the default without waiting for user input.
67         $ENV{PERL_MM_USE_DEFAULT}=1;
68         doit("perl", "Makefile.PL", "INSTALLDIRS=vendor", @{$dh{U_PARAMS}});
69 }
70 elsif (-e "Build.PL") {
71         $ENV{PERL_MM_USE_DEFAULT}=1; # Module::Build can also use this.
72         $ENV{MODULEBUILDRC} = "/dev/null";
73         doit("perl", "Build.PL", "installdirs=vendor", @{$dh{U_PARAMS}});
74 }
75
76 =head1 SEE ALSO
77
78 L<debhelper(7)>
79
80 This program is a part of debhelper.
81
82 =head1 AUTHOR
83
84 Joey Hess <joeyh@debian.org>
85
86 =cut