]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_auto_configure
Revert "Generate and install dh_auto docs when building debhelper."
[debhelper.git] / dh_auto_configure
index 6b8adf524d016c3996ff98cad586ccf111d0e494..3f326cef913e41b9a01d093382a7360717c1d665 100755 (executable)
@@ -2,28 +2,34 @@
 
 =head1 NAME
 
-dh_auto_configure - automatically configure a package prior to building
+dh_auto_configure - configure and prepare package sources for 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<debhelper options>>] [S<I<dh_auto 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, Makefile.PL, or Build.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.
+dh_auto_configure is a debhelper program that is responsible for the
+I<configure> step of the L<dh_auto(7)> building process. Since I<configure> is
+the first step, typically it is the point when build configuration options
+are set, system settings are detected and various build system specific
+temporary files are pre-generated in the build directory. Some simpler build
+systems do not need this step. In such a case, dh_auto_configure silently
+succeeds without doing anything.
 
-This is intended to work for about 90% of packages. If it doesn't work,
-you're encouraged to skip using dh_auto_configure at all, and just run
-./configure or its equivalent manually.
+dh_auto_configure usually pre-configures the source build system with a set of
+standard options which most Debian packages need to set anyway. Custom options
+can be passed as I<params>. If dh_auto_configure does not meet your needs or
+does not work, it is safe to skip/override it entirely and just run a configure
+script or its equivalent manually.
+
+#DH_AUTO SHARED OPTIONS#
 
 =head1 OPTIONS
 
@@ -31,78 +37,36 @@ you're encouraged to skip using dh_auto_configure at all, and just run
 
 =item B<--> I<params>
 
-Pass "params" to the program that is run. These can be used to supplement
-or override the standard parameters that dh_auto_configure passes.
+Pass I<params> to the command that is run, after the standard
+parameters that dh_auto_configure passes. This can be used to supplement
+or override those parameters. For example:
+
+  dh_auto_configure -- --with-foo --enable-bar
 
 =back
 
+=head1 SUPPORTED BUILD SYSTEMS
+
+#SUPPORTED BUILD SYSTEMS INTRO#
+#SUPPORTED BUILD SYSTEMS LIST#
+
 =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}});
-}
-elsif (-e "Build.PL") {
-       $ENV{PERL_MM_USE_DEFAULT}=1; # Module::Build can also use this.
-       doit("perl", "Build.PL", "installdirs=vendor", @{$dh{U_PARAMS}});
-}
+buildsystems_init();
+buildsystems_do();
 
 =head1 SEE ALSO
 
+L<dh_auto(7)>
+
 L<debhelper(7)>
 
-This program is a part of debhelper.
+This program is a part of debhelper and its dh_auto package source building
+suite.
 
-=head1 AUTHOR
+=head1 AUTHORS
 
-Joey Hess <joeyh@debian.org>
+ Joey Hess <joeyh@debian.org>
+ Modestas Vainius <modestas@vainius.eu>
 
 =cut