]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_auto_clean
dh_auto_clean: setup.py clean can create pyc files. Remove. Closes: #481899
[debhelper.git] / dh_auto_clean
index 222edecadb48be38a051acf1be67a4e807d1be1f..1303570384be0840041f99d48082ca3a165f4171 100755 (executable)
@@ -18,11 +18,11 @@ B<dh_auto_clean> [S<I<debhelper options>>] [S<B<--> I<params>>]
 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.
+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 encoruaged to skip using
+tries to use the wrong clean target, you're encouraged to skip using
 dh_auto_clean at all, and just run make clean manually.
 
 =head1 OPTIONS
@@ -43,23 +43,25 @@ 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`;
+               # 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;
-               print ">>$ret for $target\n";
-               if ($ret =~ /^Making \Q$target\E/m) {
+               if (length $ret) {
                        doit($ENV{MAKE}, $target, @{$dh{U_PARAMS}});
                        last;
                }
        }
 }
 elsif (-e "setup.py") {
-       doit("python setup.py", "clean", "-a", @{$dh{U_PARAMS}});
+       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") {
+       doit("perl", "Build", "--allow_mb_mismatch", 1, "distclean", @{$dh{U_PARAMS}});
 }
-
 
 =head1 SEE ALSO