From bf2778d7ca2f11d3584ff1d49c15df1238062107 Mon Sep 17 00:00:00 2001
From: Joey Hess <joey@kodama.kitenet.net>
Date: Wed, 23 Apr 2008 15:57:17 -0400
Subject: [PATCH] new method to tell if a makefile contains a target

---
 dh_auto_clean   | 11 ++++-------
 dh_auto_install | 10 ++++------
 dh_auto_test    | 10 ++++------
 3 files changed, 12 insertions(+), 19 deletions(-)

diff --git a/dh_auto_clean b/dh_auto_clean
index 222edec..9a81145 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;
 		}
diff --git a/dh_auto_install b/dh_auto_install
index b35810a..be052e2 100755
--- a/dh_auto_install
+++ b/dh_auto_install
@@ -67,13 +67,11 @@ if (-e "Makefile" || -e "makefile" || -e "GNUmakefile") {
 		push @params, "PREFIX=/usr";
 	}
 	foreach my $target (qw{install}) {
-		# Make --question returns false if the target is
-		# up-to-date. But we still want to run the target in this
-		# case. So check 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;
-		if ($ret =~ /^Making \Q$target\E/m) {
+		if (length $ret) {
 			doit($ENV{MAKE}, $target,
 				@params,
 				@{$dh{U_PARAMS}});
diff --git a/dh_auto_test b/dh_auto_test
index cf6e58a..ddc223e 100755
--- a/dh_auto_test
+++ b/dh_auto_test
@@ -44,13 +44,11 @@ init();
 if (-e "Makefile" || -e "makefile" || -e "GNUmakefile") {
 	$ENV{MAKE}="make" unless exists $ENV{MAKE};
 	foreach my $target (qw{test check}) {
-		# 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;
-		if ($ret =~ /^Making \Q$target\E/m) {
+		if (length $ret) {
 			doit($ENV{MAKE}, $target, @{$dh{U_PARAMS}});
 			last;
 		}
-- 
2.39.5