5 dh_auto_configure - automatically configure a package prior to building
10 use Debian::Debhelper::Dh_Lib;
14 B<dh_auto_configure> [S<I<debhelper options>>] [S<B<--> I<params>>]
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.
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.
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.
43 sub dpkg_architecture_value {
45 my $value=`dpkg-architecture -q$var 2>/dev/null` || error("dpkg-architecture failed");
51 open (CONTROL, 'debian/control') ||
52 error("cannot read debian/control: $!\n");
56 if (/^Source:\s*(.*)/) {
63 error("could not find Source: line in control file.");
67 # Standard set of options for configure.
69 push @opts, "--build=".dpkg_architecture_value("DEB_BUILD_GNU_TYPE");
70 push @opts, "--prefix=/usr";
71 push @opts, "--includedir=\${prefix}/include";
72 push @opts, "--mandir=\${prefix}/share/man";
73 push @opts, "--infodir=\${prefix}/share/info";
74 push @opts, "--sysconfdir=/etc";
75 push @opts, "--localstatedir=/var";
76 push @opts, "--libexecdir=\${prefix}/lib/".sourcepackage();
77 push @opts, "--disable-maintainer-mode";
78 push @opts, "--disable-dependency-tracking";
79 # Provide --host only if different from --build, as recommended in
80 # autotools-dev README.Debian: When provided (even if equal) autotools
81 # 2.52+ switches to cross-compiling mode.
82 if (dpkg_architecture_value("DEB_BUILD_GNU_TYPE") ne dpkg_architecture_value("DEB_HOST_GNU_TYPE")) {
83 push @opts, "--host=".dpkg_architecture_value("DEB_HOST_GNU_TYPE");
85 doit("./configure", @opts, @{$dh{U_PARAMS}});
87 elsif (-e "Makefile.PL") {
88 # If set to a true value then MakeMaker's prompt function will
89 # # always return the default without waiting for user input.
90 $ENV{PERL_MM_USE_DEFAULT}=1;
91 doit("perl", "Makefile.PL", "INSTALLDIRS=vendor", @{$dh{U_PARAMS}});
93 elsif (-e "Build.PL") {
94 $ENV{PERL_MM_USE_DEFAULT}=1; # Module::Build can also use this.
95 doit("perl", "Build.PL", "installdirs=vendor", @{$dh{U_PARAMS}});
102 This program is a part of debhelper.
106 Joey Hess <joeyh@debian.org>