summaryrefslogtreecommitdiff
path: root/dh_auto_clean
diff options
context:
space:
mode:
Diffstat (limited to 'dh_auto_clean')
-rwxr-xr-xdh_auto_clean43
1 files changed, 12 insertions, 31 deletions
diff --git a/dh_auto_clean b/dh_auto_clean
index 610155a..8603b11 100755
--- a/dh_auto_clean
+++ b/dh_auto_clean
@@ -7,19 +7,20 @@ dh_auto_clean - automatically cleans up after a build
=cut
use strict;
-use Debian::Debhelper::Dh_Lib;
+use Debian::Debhelper::Dh_Buildsystems;
=head1 SYNOPSIS
-B<dh_auto_clean> [S<I<debhelper options>>] [S<B<--> I<params>>]
+B<dh_auto_clean> [S<I<build system options>>] [S<I<debhelper options>>] [S<B<--> I<params>>]
=head1 DESCRIPTION
dh_auto_clean is a debhelper program that tries to automatically clean up
-after a package build. If there's a Makefile and it contains a "distclean",
-"realclean", or "clean" target, then this is done by running make (or MAKE,
-if the environment variable is set). If there is a setup.py or Build.PL, it
-is run to clean the package.
+after a package build. It does so by running the appropriate command for
+the build system it detects the package uses. For example, if there's a
+Makefile and it contains a "distclean", "realclean", or "clean" target,
+then this is done by running make (or MAKE, if the environment variable is
+set). If there is a setup.py or Build.PL, it is run to clean the package.
This is intended to work for about 90% of packages. If it doesn't work, or
tries to use the wrong clean target, you're encouraged to skip using
@@ -27,6 +28,9 @@ dh_auto_clean at all, and just run make clean manually.
=head1 OPTIONS
+See L<debhelper(7)/BUILD SYSTEM OPTIONS> for a list of common build
+system selection and control options.
+
=over 4
=item B<--> I<params>
@@ -38,31 +42,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}});
-}
+buildsystems_init();
+buildsystems_do();
=head1 SEE ALSO