From: Modestas Vainius Date: Thu, 21 Jul 2011 11:48:57 +0000 (+0300) Subject: makefile.pm: remove build directory even if Makefile does not exist yet. X-Git-Tag: 8.9.4~6 X-Git-Url: https://git.donarmstrong.com/?p=debhelper.git;a=commitdiff_plain;h=f2123b6963a0c59d4901037f519376c1ce660177 makefile.pm: remove build directory even if Makefile does not exist yet. Assume that the package can be cleaned (i.e. the build directory can be removed) as long as it is built out-of-source tree and can be configured. This is useful for derivative buildsystems which generate Makefiles. --- diff --git a/Debian/Debhelper/Buildsystem/makefile.pm b/Debian/Debhelper/Buildsystem/makefile.pm index d4b68e4..f38387b 100644 --- a/Debian/Debhelper/Buildsystem/makefile.pm +++ b/Debian/Debhelper/Buildsystem/makefile.pm @@ -69,11 +69,23 @@ sub check_auto_buildable { my $this=shift; my ($step) = @_; - # This is always called in the source directory, but generally - # Makefiles are created (or live) in the the build directory. - return (-e $this->get_buildpath("Makefile") || - -e $this->get_buildpath("makefile") || - -e $this->get_buildpath("GNUmakefile")) ? 1 : 0; + if (-e $this->get_buildpath("Makefile") || + -e $this->get_buildpath("makefile") || + -e $this->get_buildpath("GNUmakefile")) + { + # This is always called in the source directory, but generally + # Makefiles are created (or live) in the the build directory. + return 1; + } elsif ($step eq "clean" && defined $this->get_builddir() && + $this->check_auto_buildable("configure")) + { + # Assume that the package can be cleaned (i.e. the build directory can + # be removed) as long as it is built out-of-source tree and can be + # configured. This is useful for derivative buildsystems which + # generate Makefiles. + return 1; + } + return 0; } sub build { diff --git a/t/buildsystems/buildsystem_tests b/t/buildsystems/buildsystem_tests index c6f23ca..3b45ac5 100755 --- a/t/buildsystems/buildsystem_tests +++ b/t/buildsystems/buildsystem_tests @@ -256,7 +256,7 @@ touch "$tmpdir/configure", 0755; test_check_auto_buildable($bs{autoconf}, "configure", { configure => 1 }); touch "$tmpdir/CMakeLists.txt"; -test_check_auto_buildable($bs{cmake}, "CMakeLists.txt", { configure => 1 }); +test_check_auto_buildable($bs{cmake}, "CMakeLists.txt", { configure => 1, clean => 1 }); touch "$tmpdir/Makefile.PL"; test_check_auto_buildable($bs{perl_makemaker}, "Makefile.PL", { configure => 1 });