diff options
Diffstat (limited to 'dh_auto_clean')
-rwxr-xr-x | dh_auto_clean | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/dh_auto_clean b/dh_auto_clean new file mode 100755 index 0000000..8aa6ab7 --- /dev/null +++ b/dh_auto_clean @@ -0,0 +1,73 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_auto_clean - automatically cleans up after a build + +=cut + +use strict; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B<dh_auto_clean> [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, 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 encoruaged to skip using +dh_auto_test at all, and just run make clean manually. + +=head1 OPTIONS + +=over 4 + +=item B<--> I<params> + +Pass "params" to the program that is run. These can be used to suppliment +or override the any standard parameters that dh_auto_clean passes. + +=back + +=cut + +init(); + +if (-e "Makefile" || -e "makefile" || -e "GNUmakefile") { + $ENV{MAKE}="make" unless exists $ENV{MAKE}; + foreach my $target (qw{distclean realclean clean}) { + # Make --question returns false if the target is + # up-to-date. But we still want to run the target in this + # case. So ceck if a target exists by seeing if make outputs + # "Making target". + my $ret=`LANG=C $ENV{MAKE} --question $target 2>/dev/null`; + chomp $ret; + if ($ret =~ /^Making \Q$target\E/m) { + doit($ENV{MAKE}, $target, @{$dh{U_PARAMS}}); + last; + } + } +} +elsif (-e "setup.py") { + doit("python setup.py", "clean", "-a", @{$dh{U_PARAMS}}); +} + + +=head1 SEE ALSO + +L<debhelper(7)> + +This program is a part of debhelper. + +=head1 AUTHOR + +Joey Hess <joeyh@debian.org> + +=cut |