Updating ExtUtils-ParseXS to 2.20
[p5sagit/p5-mst-13.2.git] / lib / ExtUtils / Mksymlists.pm
index c5b4053..5aa6ef7 100644 (file)
@@ -1,6 +1,6 @@
 package ExtUtils::Mksymlists;
 
-use 5.00503;
+use 5.006;
 use strict qw[ subs refs ];
 # no strict 'vars';  # until filehandles are exempted
 
@@ -8,10 +8,9 @@ use Carp;
 use Exporter;
 use Config;
 
-use vars qw(@ISA @EXPORT $VERSION);
-@ISA = 'Exporter';
-@EXPORT = '&Mksymlists';
-$VERSION = 1.18_00;
+our @ISA = qw(Exporter);
+our @EXPORT = qw(&Mksymlists);
+our $VERSION = '6.53_02';
 
 sub Mksymlists {
     my(%spec) = @_;
@@ -28,16 +27,17 @@ sub Mksymlists {
         unless ( ($spec{DL_FUNCS} and keys %{$spec{DL_FUNCS}}) or
                  @{$spec{FUNCLIST}});
     if (defined $spec{DL_FUNCS}) {
-        my($package);
-        foreach $package (keys %{$spec{DL_FUNCS}}) {
-            my($packprefix,$sym,$bootseen);
+        foreach my $package (keys %{$spec{DL_FUNCS}}) {
+            my($packprefix,$bootseen);
             ($packprefix = $package) =~ s/\W/_/g;
-            foreach $sym (@{$spec{DL_FUNCS}->{$package}}) {
+            foreach my $sym (@{$spec{DL_FUNCS}->{$package}}) {
                 if ($sym =~ /^boot_/) {
                     push(@{$spec{FUNCLIST}},$sym);
                     $bootseen++;
                 }
-                else { push(@{$spec{FUNCLIST}},"XS_${packprefix}_$sym"); }
+                else {
+                    push(@{$spec{FUNCLIST}},"XS_${packprefix}_$sym");
+                }
             }
             push(@{$spec{FUNCLIST}},"boot_$packprefix") unless $bootseen;
         }
@@ -55,7 +55,9 @@ sub Mksymlists {
     elsif ($osname eq 'VMS') { _write_vms(\%spec) }
     elsif ($osname eq 'os2') { _write_os2(\%spec) }
     elsif ($osname eq 'MSWin32') { _write_win32(\%spec) }
-    else { croak("Don't know how to create linker option file for $osname\n"); }
+    else {
+        croak("Don't know how to create linker option file for $osname\n");
+    }
 }
 
 
@@ -64,11 +66,11 @@ sub _write_aix {
 
     rename "$data->{FILE}.exp", "$data->{FILE}.exp_old";
 
-    open(EXP,">$data->{FILE}.exp")
+    open( my $exp, ">", "$data->{FILE}.exp")
         or croak("Can't create $data->{FILE}.exp: $!\n");
-    print EXP join("\n",@{$data->{DL_VARS}}, "\n") if @{$data->{DL_VARS}};
-    print EXP join("\n",@{$data->{FUNCLIST}}, "\n") if @{$data->{FUNCLIST}};
-    close EXP;
+    print $exp join("\n",@{$data->{DL_VARS}}, "\n") if @{$data->{DL_VARS}};
+    print $exp join("\n",@{$data->{FUNCLIST}}, "\n") if @{$data->{FUNCLIST}};
+    close $exp;
 }
 
 
@@ -88,30 +90,30 @@ sub _write_os2 {
       $Config::Config{version}, $threaded, $patchlevel, $data->{NAME};
     chomp $comment;
     if ($data->{INSTALLDIRS} and $data->{INSTALLDIRS} eq 'perl') {
-       $distname = 'perl5-porters@perl.org';
-       $comment = "Core $comment";
+        $distname = 'perl5-porters@perl.org';
+        $comment = "Core $comment";
     }
     $comment = "$comment (Perl-config: $Config{config_args})";
     $comment = substr($comment, 0, 200) . "...)" if length $comment > 203;
     rename "$data->{FILE}.def", "$data->{FILE}_def.old";
 
-    open(DEF,">$data->{FILE}.def")
+    open(my $def, ">", "$data->{FILE}.def")
         or croak("Can't create $data->{FILE}.def: $!\n");
-    print DEF "LIBRARY '$data->{DLBASE}' INITINSTANCE TERMINSTANCE\n";
-    print DEF "DESCRIPTION '\@#$distname:$data->{VERSION}#\@ $comment'\n";
-    print DEF "CODE LOADONCALL\n";
-    print DEF "DATA LOADONCALL NONSHARED MULTIPLE\n";
-    print DEF "EXPORTS\n  ";
-    print DEF join("\n  ",@{$data->{DL_VARS}}, "\n") if @{$data->{DL_VARS}};
-    print DEF join("\n  ",@{$data->{FUNCLIST}}, "\n") if @{$data->{FUNCLIST}};
+    print $def "LIBRARY '$data->{DLBASE}' INITINSTANCE TERMINSTANCE\n";
+    print $def "DESCRIPTION '\@#$distname:$data->{VERSION}#\@ $comment'\n";
+    print $def "CODE LOADONCALL\n";
+    print $def "DATA LOADONCALL NONSHARED MULTIPLE\n";
+    print $def "EXPORTS\n  ";
+    print $def join("\n  ",@{$data->{DL_VARS}}, "\n") if @{$data->{DL_VARS}};
+    print $def join("\n  ",@{$data->{FUNCLIST}}, "\n") if @{$data->{FUNCLIST}};
     if (%{$data->{IMPORTS}}) {
-        print DEF "IMPORTS\n";
-       my ($name, $exp);
-       while (($name, $exp)= each %{$data->{IMPORTS}}) {
-           print DEF "  $name=$exp\n";
-       }
+        print $def "IMPORTS\n";
+        my ($name, $exp);
+        while (($name, $exp)= each %{$data->{IMPORTS}}) {
+            print $def "  $name=$exp\n";
+        }
     }
-    close DEF;
+    close $def;
 }
 
 sub _write_win32 {
@@ -124,13 +126,13 @@ sub _write_win32 {
     }
     rename "$data->{FILE}.def", "$data->{FILE}_def.old";
 
-    open(DEF,">$data->{FILE}.def")
+    open( my $def, ">", "$data->{FILE}.def" )
         or croak("Can't create $data->{FILE}.def: $!\n");
     # put library name in quotes (it could be a keyword, like 'Alias')
     if ($Config::Config{'cc'} !~ /^gcc/i) {
-      print DEF "LIBRARY \"$data->{DLBASE}\"\n";
+        print $def "LIBRARY \"$data->{DLBASE}\"\n";
     }
-    print DEF "EXPORTS\n  ";
+    print $def "EXPORTS\n  ";
     my @syms;
     # Export public symbols both with and without underscores to
     # ensure compatibility between DLLs from different compilers
@@ -138,24 +140,24 @@ sub _write_win32 {
     # so this is only to cover the case when the extension DLL may be
     # linked to directly from C. GSAR 97-07-10
     if ($Config::Config{'cc'} =~ /^bcc/i) {
-       for (@{$data->{DL_VARS}}, @{$data->{FUNCLIST}}) {
-           push @syms, "_$_", "$_ = _$_";
-       }
+        for (@{$data->{DL_VARS}}, @{$data->{FUNCLIST}}) {
+            push @syms, "_$_", "$_ = _$_";
+        }
     }
     else {
-       for (@{$data->{DL_VARS}}, @{$data->{FUNCLIST}}) {
-           push @syms, "$_", "_$_ = $_";
-       }
+        for (@{$data->{DL_VARS}}, @{$data->{FUNCLIST}}) {
+            push @syms, "$_", "_$_ = $_";
+        }
     }
-    print DEF join("\n  ",@syms, "\n") if @syms;
+    print $def join("\n  ",@syms, "\n") if @syms;
     if (%{$data->{IMPORTS}}) {
-        print DEF "IMPORTS\n";
+        print $def "IMPORTS\n";
         my ($name, $exp);
         while (($name, $exp)= each %{$data->{IMPORTS}}) {
-            print DEF "  $name=$exp\n";
+            print $def "  $name=$exp\n";
         }
     }
-    close DEF;
+    close $def;
 }
 
 
@@ -167,11 +169,10 @@ sub _write_vms {
 
     my($isvax) = $Config::Config{'archname'} =~ /VAX/i;
     my($set) = new ExtUtils::XSSymSet;
-    my($sym);
 
     rename "$data->{FILE}.opt", "$data->{FILE}.opt_old";
 
-    open(OPT,">$data->{FILE}.opt")
+    open(my $opt,">", "$data->{FILE}.opt")
         or croak("Can't create $data->{FILE}.opt: $!\n");
 
     # Options file declaring universal symbols
@@ -181,21 +182,23 @@ sub _write_vms {
     # We don't do anything to preserve order, so we won't relax
     # the GSMATCH criteria for a dynamic extension
 
-    print OPT "case_sensitive=yes\n"
+    print $opt "case_sensitive=yes\n"
         if $Config::Config{d_vms_case_sensitive_symbols};
-    foreach $sym (@{$data->{FUNCLIST}}) {
+
+    foreach my $sym (@{$data->{FUNCLIST}}) {
         my $safe = $set->addsym($sym);
-        if ($isvax) { print OPT "UNIVERSAL=$safe\n" }
-        else        { print OPT "SYMBOL_VECTOR=($safe=PROCEDURE)\n"; }
+        if ($isvax) { print $opt "UNIVERSAL=$safe\n" }
+        else        { print $opt "SYMBOL_VECTOR=($safe=PROCEDURE)\n"; }
     }
-    foreach $sym (@{$data->{DL_VARS}}) {
+
+    foreach my $sym (@{$data->{DL_VARS}}) {
         my $safe = $set->addsym($sym);
-        print OPT "PSECT_ATTR=${sym},PIC,OVR,RD,NOEXE,WRT,NOSHR\n";
-        if ($isvax) { print OPT "UNIVERSAL=$safe\n" }
-        else        { print OPT "SYMBOL_VECTOR=($safe=DATA)\n"; }
+        print $opt "PSECT_ATTR=${sym},PIC,OVR,RD,NOEXE,WRT,NOSHR\n";
+        if ($isvax) { print $opt "UNIVERSAL=$safe\n" }
+        else        { print $opt "SYMBOL_VECTOR=($safe=DATA)\n"; }
     }
-    close OPT;
-
+    
+    close $opt;
 }
 
 1;