]> git.donarmstrong.com Git - debhelper.git/blob - dh_auto_clean
Set MODULEBUILDRC environment variable
[debhelper.git] / dh_auto_clean
1 #!/usr/bin/perl -w
2
3 =head1 NAME
4
5 dh_auto_clean - automatically cleans up after a build
6
7 =cut
8
9 use strict;
10 use Debian::Debhelper::Dh_Lib;
11
12 =head1 SYNOPSIS
13
14 B<dh_auto_clean> [S<I<debhelper options>>] [S<B<--> I<params>>]
15
16 =head1 DESCRIPTION
17
18 dh_auto_clean is a debhelper program that tries to automatically clean up
19 after a package build. If there's a Makefile and it contains a "distclean",
20 "realclean", or "clean" target, then this is  done by running make (or MAKE,
21 if the environment variable is set). If there is a setup.py or Build.PL, it
22 is run to clean the package.
23
24 This is intended to work for about 90% of packages. If it doesn't work, or
25 tries to use the wrong clean target, you're encouraged to skip using
26 dh_auto_clean at all, and just run make clean manually.
27
28 =head1 OPTIONS
29
30 =over 4
31
32 =item B<--> I<params>
33
34 Pass "params" to the program that is run. These can be used to supplement
35 or override the any standard parameters that dh_auto_clean passes.
36
37 =back
38
39 =cut
40
41 init();
42
43 if (-e "Makefile" || -e "makefile" || -e "GNUmakefile") {
44         $ENV{MAKE}="make" unless exists $ENV{MAKE};
45         foreach my $target (qw{distclean realclean clean}) {
46                 # Use make -n to check to see if the target would do
47                 # anything. There's no good way to test if a target exists.
48                 my $ret=`$ENV{MAKE} -s -n $target 2>/dev/null`;
49                 chomp $ret;
50                 if (length $ret) {
51                         doit($ENV{MAKE}, $target, @{$dh{U_PARAMS}});
52                         last;
53                 }
54         }
55 }
56 elsif (-e "setup.py") {
57         doit("python", "setup.py", "clean", "-a", @{$dh{U_PARAMS}});
58         # The setup.py might import files, leading to python creating pyc
59         # files.
60         doit('find', '.', '-name', '*.pyc', '-exec', 'rm', '{}', ';');
61 }
62 elsif (-e "Build.PL" && -e "Build") {
63         $ENV{MODULEBUILDRC} = "/dev/null";
64         doit("perl", "Build", "--allow_mb_mismatch", 1, "distclean", @{$dh{U_PARAMS}});
65 }
66
67 =head1 SEE ALSO
68
69 L<debhelper(7)>
70
71 This program is a part of debhelper.
72
73 =head1 AUTHOR
74
75 Joey Hess <joeyh@debian.org>
76
77 =cut