]> git.donarmstrong.com Git - debhelper.git/commitdiff
new method to tell if a makefile contains a target
authorJoey Hess <joey@kodama.kitenet.net>
Wed, 23 Apr 2008 19:57:17 +0000 (15:57 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Wed, 23 Apr 2008 19:57:17 +0000 (15:57 -0400)
dh_auto_clean
dh_auto_install
dh_auto_test

index 222edecadb48be38a051acf1be67a4e807d1be1f..9a81145a1c88984e01f78e1406227038f32407d7 100755 (executable)
@@ -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;
                }
index b35810a338d5cd39d536f15fdcea0a7dbb308f33..be052e2142825e3d93c99114893987b12f7534ad 100755 (executable)
@@ -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}});
index cf6e58a2ee773085d883baf8184caf089d275fe6..ddc223e7c4356b8eb3e22ebc78d3f65e081062e2 100755 (executable)
@@ -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;
                }