]> git.ipfire.org Git - thirdparty/make.git/commitdiff
* tests/test_driver.pl: Compute full path to Perl interpreter
authorPaul Smith <psmith@gnu.org>
Fri, 3 Jan 2020 06:53:47 +0000 (01:53 -0500)
committerPaul Smith <psmith@gnu.org>
Fri, 3 Jan 2020 07:08:59 +0000 (02:08 -0500)
tests/test_driver.pl

index bcf534d6f08fcadaef83408a76de118c80eb0cfd..96a86e444923373e24c7f1cb5e887a918539e69f 100644 (file)
@@ -30,7 +30,9 @@
 
 # $Id$
 
+use Config;
 use Cwd;
+use File::Spec;
 
 # The number of test categories we've run
 $categories_run = 0;
@@ -53,8 +55,32 @@ $test_passed = 1;
 $test_timeout = 5;
 $test_timeout = 10 if $^O eq 'VMS';
 
-# Path to Perl--make sure it uses forward-slashes
+# Path to Perl
 $perl_name = $^X;
+if ($^O ne 'VMS') {
+    $perl_name .= $Config{_exe} unless $perl_name =~ m/$Config{_exe}$/i;
+}
+# If it's a simple name, look it up on PATH
+{
+    my ($v,$d,$f) = File::Spec->splitpath($perl_name);
+    if (!$d) {
+        my $perl = undef;
+        foreach my $p (File::Spec->path()) {
+            my $f = File::Spec->catfile($p, $f);
+            if (-e $f) {
+                $perl = $f;
+                last;
+            }
+        }
+        if ($perl) {
+            $perl_name = $perl;
+        } else {
+            print "Cannot locate Perl interpreter $perl_name\n";
+        }
+    }
+}
+# Make sure it uses forward-slashes even on Windows, else it won't work
+# in recipes
 $perl_name =~ tr,\\,/,;
 
 # %makeENV is the cleaned-out environment.