From bf2778d7ca2f11d3584ff1d49c15df1238062107 Mon Sep 17 00:00:00 2001 From: Joey Hess 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.2