The patch at the end of this message repairs a VMS-only problem with file 
lists passed to Extutils::MakeMaker::WriteMakeFile().  The bug is 
reproducible with the following dummy Makefile.PL, greatly whittled down 
from XML::Parser where it originally showed up:

### begin dummy Makefile.PL
use ExtUtils::MakeMaker;

WriteMakefile(
                NAME    => 'FOO::Bar',
                C       => ['foo.c', 'subdir/bar.c'],
                OBJECT  => '$(O_FILES)'
               );
### end dummy Makefile.PL

Before the patch, the following lines appear in the generated makefile:

OBJECT = [.foo_obj subdir]bar.obj
LDFROM = [.foo_obj subdir]bar.obj

but after the patch the same Makefile.PL properly generates:

OBJECT = foo.obj [.subdir]bar.obj
LDFROM = foo.obj [.subdir]bar.obj

A similar patch was sent in for 5.005_57 or thereabouts, but the changes 
were lost when duplicate methods in ExtUtils::MM_VMS and File::Spec::VMS 
were consolidated later in the development of 5.6.0.  Here's the patch:


--- lib/File/Spec/VMS.pm;-0     Tue Mar 21 02:55:48 2000
+++ lib/File/Spec/VMS.pm        Wed May 10 16:15:01 2000
@@ -37,7 +37,7 @@
      my($self,$path) = @_;
      return '' unless $path;
      $self = {} unless ref $self;
-    my($npath) = unixify($path);
+    my($npath) = join(' ', map(unixify($_), split(/\s+/, $path)));
      my($complex) = 0;
      my($head,$macro,$tail);
  
@@ -88,10 +88,10 @@
  
      if ($path =~ m#^\$\([^\)]+\)\z#s || $path =~ m#[/:>\]]#) { 
          if ($force_path or $path =~ /(?:DIR\)|\])\z/) {
-            $fixedpath = vmspath($self->eliminate_macros($path));
+            $fixedpath = join(' ', map(vmspath($_),split(/\s+/, 
+$self->eliminate_macros($path))));
          }
          else {
-            $fixedpath = vmsify($self->eliminate_macros($path));
+            $fixedpath = join(' ', map(vmsify($_),split(/\s+/, 
+$self->eliminate_macros($path))));
          }
      }
      elsif ((($prefix,$name) = ($path =~ m#^\$\(([^\)]+)\)(.+)#s)) && 
$self->{$prefix}) {
[End of Patch.]

_______________________________________________
Craig A. Berry                                   
mailto:[EMAIL PROTECTED]

Reply via email to