From bf2778d7ca2f11d3584ff1d49c15df1238062107 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 23 Apr 2008 15:57:17 -0400 Subject: new method to tell if a makefile contains a target --- dh_auto_clean | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'dh_auto_clean') diff --git a/dh_auto_clean b/dh_auto_clean index 222edeca..9a81145a 100755 --- a/dh_auto_clean +++ b/dh_auto_clean @@ -43,14 +43,11 @@ 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; } -- cgit v1.2.3