X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dh_auto_configure;h=3f326cef913e41b9a01d093382a7360717c1d665;hb=55a176113de2b1923c62774779bb9e069d88021d;hp=a320df95f87bb3cd699b8b7775910706bbb668e7;hpb=ff3cc0c92fc865297ed869b38c6cb0dd0882f77c;p=debhelper.git diff --git a/dh_auto_configure b/dh_auto_configure index a320df9..3f326ce 100755 --- a/dh_auto_configure +++ b/dh_auto_configure @@ -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 [S>] [S I>] +B [S>] [S>] [S I>] =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 step of the L building process. Since I 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. 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,7 +37,7 @@ you're encouraged to skip using dh_auto_configure at all, and just run =item B<--> I -Pass "params" to the program that is run, after the standard +Pass I 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: @@ -39,75 +45,28 @@ or override those parameters. For example: =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 () { - 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", - "create_packlist=0", "--skipdeps", @{$dh{U_PARAMS}}); -} -elsif (-e "Build.PL") { - $ENV{PERL_MM_USE_DEFAULT}=1; # Module::Build can also use this. - $ENV{MODULEBUILDRC} = "/dev/null"; - doit("perl", "Build.PL", "installdirs=vendor", @{$dh{U_PARAMS}}); -} +buildsystems_init(); +buildsystems_do(); =head1 SEE ALSO +L + L -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 + Joey Hess + Modestas Vainius =cut