]> git.donarmstrong.com Git - debhelper.git/commitdiff
Migrates dh_auto_* commands to Dh_Buildsystems.pm
authorModestas Vainius <modestas@vainius.eu>
Mon, 23 Mar 2009 19:32:43 +0000 (21:32 +0200)
committerJoey Hess <joey@gnu.kitenet.net>
Fri, 10 Apr 2009 20:11:01 +0000 (16:11 -0400)
This patch switches dh_auto_* commands to use Dh_Buildsystems.pm
module. Most of them became very minimal by design.

Documentation has not been updated with new features yet.

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
dh_auto_build
dh_auto_clean
dh_auto_configure
dh_auto_install
dh_auto_test

index 75ce51cf78d19180cef1ba1bd0c45db798ce499b..9cfe70ef9b1eeb1658d94eb44fb1de402c3853a1 100755 (executable)
@@ -7,7 +7,7 @@ dh_auto_build - automatically builds a package
 =cut
 
 use strict;
-use Debian::Debhelper::Dh_Lib;
+use Debian::Debhelper::Dh_Buildsystems;
 
 =head1 SYNOPSIS
 
@@ -37,18 +37,8 @@ or override any standard parameters that dh_auto_build passes.
 
 =cut
 
-init();
-
-if (-e "Makefile" || -e "makefile" || -e "GNUmakefile") {
-       doit(exists $ENV{MAKE} ? $ENV{MAKE} : "make", @{$dh{U_PARAMS}});
-}
-elsif (-e "setup.py") {
-       doit("python", "setup.py", "build", @{$dh{U_PARAMS}});
-}
-elsif (-e "Build.PL" && -e "Build") {
-       $ENV{MODULEBUILDRC} = "/dev/null";
-       doit("perl", "Build", @{$dh{U_PARAMS}});
-}
+my $manager = new Debian::Debhelper::Dh_Buildsystems;
+$manager->run_dh_auto_tool();
 
 =head1 SEE ALSO
 
index 610155ae5653eaad2d69e79b5807c54d021bc73f..75f3ce480e7b4b356a5ffa4fa60044b71d6b860c 100755 (executable)
@@ -7,7 +7,7 @@ dh_auto_clean - automatically cleans up after a build
 =cut
 
 use strict;
-use Debian::Debhelper::Dh_Lib;
+use Debian::Debhelper::Dh_Buildsystems;
 
 =head1 SYNOPSIS
 
@@ -38,31 +38,8 @@ or override the any standard parameters that dh_auto_clean passes.
 
 =cut
 
-init();
-
-if (-e "Makefile" || -e "makefile" || -e "GNUmakefile") {
-       $ENV{MAKE}="make" unless exists $ENV{MAKE};
-       foreach my $target (qw{distclean realclean clean}) {
-               # Use make -n to check to see if the target would do
-               # anything. There's no good way to test if a target exists.
-               my $ret=`$ENV{MAKE} -s -n $target 2>/dev/null`;
-               chomp $ret;
-               if (length $ret) {
-                       doit($ENV{MAKE}, $target, @{$dh{U_PARAMS}});
-                       last;
-               }
-       }
-}
-elsif (-e "setup.py") {
-       doit("python", "setup.py", "clean", "-a", @{$dh{U_PARAMS}});
-       # The setup.py might import files, leading to python creating pyc
-       # files.
-       doit('find', '.', '-name', '*.pyc', '-exec', 'rm', '{}', ';');
-}
-elsif (-e "Build.PL" && -e "Build") {
-       $ENV{MODULEBUILDRC} = "/dev/null";
-       doit("perl", "Build", "--allow_mb_mismatch", 1, "distclean", @{$dh{U_PARAMS}});
-}
+my $manager = new Debian::Debhelper::Dh_Buildsystems;
+$manager->run_dh_auto_tool();
 
 =head1 SEE ALSO
 
index 0445c34395231791287ea747655dcdda37fcc780..e846e99901fe80e17a15255649fc8bead0c67ac5 100755 (executable)
@@ -7,7 +7,7 @@ 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
 
@@ -17,7 +17,7 @@ B<dh_auto_configure> [S<I<debhelper options>>] [S<B<--> I<params>>]
 
 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
+script, Makefile.PL, Build.PL, or cmake. 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.
 
@@ -38,40 +38,8 @@ or override the standard parameters that dh_auto_configure passes.
 
 =cut
 
-init();
-
-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.
-       $ENV{MODULEBUILDRC} = "/dev/null";
-       doit("perl", "Build.PL", "installdirs=vendor", @{$dh{U_PARAMS}});
-}
+my $manager = new Debian::Debhelper::Dh_Buildsystems;
+$manager->run_dh_auto_tool();
 
 =head1 SEE ALSO
 
index 264725ca80da60ea64c02289a36cc23548c94592..c115a184aa791d278fcb1e2500bbd354b9518eac 100755 (executable)
@@ -8,6 +8,7 @@ dh_auto_install - automatically runs make install or similar
 
 use strict;
 use Debian::Debhelper::Dh_Lib;
+use Debian::Debhelper::Dh_Buildsystems;
 use Cwd;
 
 =head1 SYNOPSIS
@@ -48,7 +49,8 @@ or override the any standard parameters that dh_auto_install passes.
 
 =cut
 
-init();
+my $manager = new Debian::Debhelper::Dh_Buildsystems;
+$manager->init_dh_auto_tool();
 
 my $destdir;
 my @allpackages=getpackages();
@@ -60,40 +62,7 @@ else {
 }
 $destdir=cwd()."/".$destdir;
 
-if (-e "Makefile" || -e "makefile" || -e "GNUmakefile") {
-       $ENV{MAKE}="make" unless exists $ENV{MAKE};
-       my @params="DESTDIR=$destdir";
-
-       # Special case for MakeMaker generated Makefiles.
-       if (-e "Makefile" &&
-           system('grep -q "generated automatically by MakeMaker" Makefile') == 0) {
-               push @params, "PREFIX=/usr";
-       }
-
-       foreach my $target (qw{install}) {
-               # Use make -n to check to see if the target would do
-               # anything. There's no good way to test if a target exists.
-               my $ret=`$ENV{MAKE} -s -n $target 2>/dev/null`;
-               chomp $ret;
-               if (length $ret) {
-                       doit($ENV{MAKE}, $target,
-                               @params,
-                               @{$dh{U_PARAMS}});
-                       last;
-               }
-       }
-}
-elsif (-e "setup.py") {
-       doit("python", "setup.py", "install", 
-               "--root=$destdir",
-               "--no-compile", "-O0",
-               @{$dh{U_PARAMS}});
-}
-elsif (-e "Build.PL" && -e "Build") {
-       $ENV{MODULEBUILDRC} = "/dev/null";
-       doit("perl", "Build", "install", "destdir=$destdir",
-               "create_packlist=0", @{$dh{U_PARAMS}});
-}
+$manager->run_dh_auto_tool($destdir);
 
 =head1 SEE ALSO
 
index ea2d7fdc2c70b18c92a822d0cb5112beacf2fc9e..9dda30fb15412c0c12bcf4d822ee001ac77d8c2d 100755 (executable)
@@ -7,7 +7,7 @@ dh_auto_test - automatically runs a package's test suites
 =cut
 
 use strict;
-use Debian::Debhelper::Dh_Lib;
+use Debian::Debhelper::Dh_Buildsystems;
 
 =head1 SYNOPSIS
 
@@ -44,29 +44,12 @@ tests will be performed.
 
 =cut
 
-init();
-
 if (defined $ENV{DEB_BUILD_OPTIONS} && $ENV{DEB_BUILD_OPTIONS} =~ /nocheck/) {
        exit 0;
 }
 
-if (-e "Makefile" || -e "makefile" || -e "GNUmakefile") {
-       $ENV{MAKE}="make" unless exists $ENV{MAKE};
-       foreach my $target (qw{test check}) {
-               # Use make -n to check to see if the target would do
-               # anything. There's no good way to test if a target exists.
-               my $ret=`$ENV{MAKE} -s -n $target 2>/dev/null`;
-               chomp $ret;
-               if (length $ret) {
-                       doit($ENV{MAKE}, $target, @{$dh{U_PARAMS}});
-                       last;
-               }
-       }
-}
-elsif (-e "Build.PL" && -e "Build") {
-       $ENV{MODULEBUILDRC} = "/dev/null";
-       doit(qw/perl Build test/, @{$dh{U_PARAMS}});
-}
+my $manager = new Debian::Debhelper::Dh_Buildsystems;
+$manager->run_dh_auto_tool();
 
 =head1 SEE ALSO