X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dh_auto_configure;h=e1ca7af25b41a1cfcfea733672663e81457ef43a;hb=e2a6d4cec4a7ee952cf6a7f250d80f1d75a38f95;hp=6b8adf524d016c3996ff98cad586ccf111d0e494;hpb=69b4dec41ea998cd7e245bf5fedb272e2402904d;p=debhelper.git diff --git a/dh_auto_configure b/dh_auto_configure index 6b8adf5..e1ca7af 100755 --- a/dh_auto_configure +++ b/dh_auto_configure @@ -7,93 +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 [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. +B 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, +F, or F. 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 will exit 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. +you're encouraged to skip using B at all, and just run +F<./configure> or its equivalent manually. =head1 OPTIONS +See L> for a list of common build +system selection and control options. + =over 4 =item B<--> I -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 to the program that is run, after the parameters that +B 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 () { - 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