]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_auto_configure
Typo. Closes: #653339
[debhelper.git] / dh_auto_configure
index 6e56c953bd4374ed19799a7890aec92b468bf3d0..e1ca7af25b41a1cfcfea733672663e81457ef43a 100755 (executable)
@@ -7,89 +7,47 @@ dh_auto_configure - automatically configure a package prior to building
 =cut
 
 use strict;
-use Debian::Debhelper::Dh_Lib;
+use Debian::Debhelper::Dh_Buildsystems;
 
 =head1 SYNOPSIS
 
-B<dh_auto_configure> [S<I<debhelper options>>] [S<B<--> I<params>>]
+B<dh_auto_configure> [S<I<build system options>>] [S<I<debhelper options>>] [S<B<--> I<params>>]
 
 =head1 DESCRIPTION
 
-dh_auto_configure is a debhelper program that tries to automatically
-configure a package prior to building. It looks for and runs
-a ./configure script, or Makefile.PL. A standard set of parameters is
-determined and passed to the program that is run. If no program to run
-is found, dh_auto_configure will exit without doing anything.
+B<dh_auto_configure> is a debhelper program that tries to automatically
+configure a package prior to building. It does so by running the
+appropriate command for the build system it detects the package uses.
+For example, it looks for and runs a F<./configure> script, F<Makefile.PL>,
+F<Build.PL>, or F<cmake>. A standard set of parameters is determined and passed
+to the program that is run. Some build systems, such as make, do not
+need a configure step; for these B<dh_auto_configure> will exit without
+doing anything.
 
 This is intended to work for about 90% of packages. If it doesn't work,
-you're encoruaged to skip using dh_auto_configure at all, and just run
-./configure or its equivilant manually.
+you're encouraged to skip using B<dh_auto_configure> at all, and just run
+F<./configure> or its equivalent manually.
 
 =head1 OPTIONS
 
+See L<debhelper(7)/B<BUILD SYSTEM OPTIONS>> for a list of common build
+system selection and control options.
+
 =over 4
 
 =item B<--> I<params>
 
-Pass "params" to the program that is run. These can be used to suppliment
-or override the standard parameters that dh_auto_configure passes.
+Pass I<params> to the program that is run, after the parameters that
+B<dh_auto_configure> usually passes. For example:
+
+  dh_auto_configure -- --with-foo --enable-bar
 
 =back
 
 =cut
 
-init();
-
-sub dpkg_architecture_value {
-       my $var=shift;
-       my $value=`dpkg-architecture -q$var 2>/dev/null` || error("dpkg-architecture failed");
-       chomp $value;
-       return $value;
-}
-
-sub sourcepackage {
-       open (CONTROL, 'debian/control') ||
-               error("cannot read debian/control: $!\n");
-       while (<CONTROL>) {
-               chomp;
-               s/\s+$//;
-               if (/^Source:\s*(.*)/) {
-                       close CONTROL;
-                       return $1;
-               }
-       }
-
-       close CONTROL;
-       error("could not find Source: line in control file.");
-}
-
-if (-x "configure") {
-       # Standard set of options for configure.
-       my @opts;
-       push @opts, "--build=".dpkg_architecture_value("DEB_BUILD_GNU_TYPE");
-       push @opts, "--prefix=/usr";
-       push @opts, "--includedir=\${prefix}/include";
-       push @opts, "--mandir=\${prefix}/share/man";
-       push @opts, "--infodir=\${prefix}/share/info";
-       push @opts, "--sysconfdir=/etc";
-       push @opts, "--localstatedir=/var";
-       push @opts, "--libexecdir=\${prefix}/lib/".sourcepackage();
-       push @opts, "--disable-maintainer-mode";
-       push @opts, "--disable-dependency-tracking";
-       # Provide --host only if different from --build, as recommended in
-       # autotools-dev README.Debian: When provided (even if equal) autotools
-       # 2.52+ switches to cross-compiling mode.
-       if (dpkg_architecture_value("DEB_BUILD_GNU_TYPE") ne dpkg_architecture_value("DEB_HOST_GNU_TYPE")) {
-               push @opts, "--host=".dpkg_architecture_value("DEB_HOST_GNU_TYPE");
-       }
-       doit("./configure", @opts, @{$dh{U_PARAMS}});
-}
-elsif (-e "Makefile.PL") {
-       # If set to a true value then MakeMaker's prompt function will
-       # # always return the default without waiting for user input.
-       $ENV{PERL_MM_USE_DEFAULT}=1;
-       doit("perl", "Makefile.PL", "INSTALLDIRS=vendor", @{$dh{U_PARAMS}});
-}
+buildsystems_init();
+buildsystems_do();
 
 =head1 SEE ALSO