This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Use makedef.pl on VMS to feed vms/gen_shrfls.pl.
[perl5.git] / makedef.pl
index 73a80ad..4e9dfb2 100644 (file)
@@ -4,6 +4,7 @@
 #
 # Needed by WIN32 and OS/2 for creating perl.dll,
 # and by AIX for creating libperl.a when -Dusershrplib is in effect,
 #
 # Needed by WIN32 and OS/2 for creating perl.dll,
 # and by AIX for creating libperl.a when -Dusershrplib is in effect,
+# and by VMS for creating perlshr.exe.
 #
 # Reads from information stored in
 #
 #
 # Reads from information stored in
 #
@@ -29,7 +30,7 @@
 #    perldll.def Windows
 #    perl.exp    AIX
 #    perl.imp    NetWare
 #    perldll.def Windows
 #    perl.exp    AIX
 #    perl.imp    NetWare
-
+#    makedef.lis VMS
 
 BEGIN { unshift @INC, "lib" }
 use Config;
 
 BEGIN { unshift @INC, "lib" }
 use Config;
@@ -57,7 +58,7 @@ while (@ARGV) {
     }
 }
 
     }
 }
 
-my @PLATFORM = qw(aix win32 wince os2 netware);
+my @PLATFORM = qw(aix win32 wince os2 netware vms);
 my %PLATFORM;
 @PLATFORM{@PLATFORM} = ();
 
 my %PLATFORM;
 @PLATFORM{@PLATFORM} = ();
 
@@ -131,6 +132,10 @@ unless ($PLATFORM eq 'win32' || $PLATFORM eq 'wince' || $PLATFORM eq 'netware')
            $ARCHNAME =    $1 if /^archname='(.+)'$/;
            $PATCHLEVEL =  $1 if /^perl_patchlevel='(.+)'$/;
        }
            $ARCHNAME =    $1 if /^archname='(.+)'$/;
            $PATCHLEVEL =  $1 if /^perl_patchlevel='(.+)'$/;
        }
+       if ($PLATFORM eq 'vms') {
+           $define{DEBUGGING} = 1 if /^usedebugging_perl='Y'$/;
+           $define{UNLINK_ALL_VERSIONS} = 1 if /^d_unlink_all_versions='define'$/;
+       }
     }
     close(CFG);
 }
     }
     close(CFG);
 }
@@ -179,7 +184,7 @@ my $sym_ord = 0;
 print STDERR "Defines: (" . join(' ', sort keys %define) . ")\n";
 
 if ($PLATFORM =~ /^win(?:32|ce)$/) {
 print STDERR "Defines: (" . join(' ', sort keys %define) . ")\n";
 
 if ($PLATFORM =~ /^win(?:32|ce)$/) {
-    (my $dll = ($define{PERL_DLL} || "perl514")) =~ s/\.dll$//i;
+    (my $dll = ($define{PERL_DLL} || "perl515")) =~ s/\.dll$//i;
     print "LIBRARY $dll\n";
     # The DESCRIPTION module definition file statement is not supported
     # by VC7 onwards.
     print "LIBRARY $dll\n";
     # The DESCRIPTION module definition file statement is not supported
     # by VC7 onwards.
@@ -235,7 +240,7 @@ elsif ($PLATFORM eq 'aix') {
 }
 elsif ($PLATFORM eq 'netware') {
        if ($FILETYPE eq 'def') {
 }
 elsif ($PLATFORM eq 'netware') {
        if ($FILETYPE eq 'def') {
-       print "LIBRARY perl514\n";
+       print "LIBRARY perl515\n";
        print "DESCRIPTION 'Perl interpreter for NetWare'\n";
        print "EXPORTS\n";
        }
        print "DESCRIPTION 'Perl interpreter for NetWare'\n";
        print "EXPORTS\n";
        }
@@ -319,7 +324,7 @@ if ($PLATFORM eq 'win32') {
                     Perl_my_sprintf
                     )];
 }
                     Perl_my_sprintf
                     )];
 }
-else {
+elsif ($PLATFORM ne 'vms') {
     skip_symbols [qw(
                     Perl_do_spawn
                     Perl_do_spawn_nowait
     skip_symbols [qw(
                     Perl_do_spawn
                     Perl_do_spawn_nowait
@@ -349,7 +354,6 @@ if ($PLATFORM eq 'wince') {
                     PL_numeric_name
                     PL_numeric_radix_sv
                     PL_numeric_standard
                     PL_numeric_name
                     PL_numeric_radix_sv
                     PL_numeric_standard
-                    PL_vtbl_collxfrm
                     Perl_sv_collxfrm
                     setgid
                     setuid
                     Perl_sv_collxfrm
                     setgid
                     setuid
@@ -583,6 +587,116 @@ elsif ($PLATFORM eq 'netware') {
                        PerlIO_perlio
                        )];
 }
                        PerlIO_perlio
                        )];
 }
+elsif ($PLATFORM eq 'vms') {
+    emit_symbols([qw(
+                       boot_DynaLoader
+                       Perl_cando
+                       Perl_cando_by_name
+                       Perl_closedir
+                       Perl_csighandler_init
+                       Perl_do_rmdir
+                       Perl_fileify_dirspec
+                       Perl_fileify_dirspec_ts
+                       Perl_fileify_dirspec_utf8
+                       Perl_fileify_dirspec_utf8_ts
+                       Perl_flex_fstat
+                       Perl_flex_lstat
+                       Perl_flex_stat
+                       Perl_kill_file
+                       Perl_my_chdir
+                       Perl_my_chmod
+                       Perl_my_crypt
+                       Perl_my_endpwent
+                       Perl_my_fclose
+                       Perl_my_fdopen
+                       Perl_my_fgetname
+                       Perl_my_flush
+                       Perl_my_fwrite
+                       Perl_my_gconvert
+                       Perl_my_getenv
+                       Perl_my_getenv_len
+                       Perl_my_getlogin
+                       Perl_my_getpwnam
+                       Perl_my_getpwuid
+                       Perl_my_gmtime
+                       Perl_my_kill
+                       Perl_my_localtime
+                       Perl_my_mkdir
+                       Perl_my_sigaction 
+                       Perl_my_symlink
+                       Perl_my_time
+                       Perl_my_tmpfile
+                       Perl_my_trnlnm
+                       Perl_my_utime
+                       Perl_my_waitpid
+                       Perl_opendir
+                       Perl_pathify_dirspec
+                       Perl_pathify_dirspec_ts
+                       Perl_pathify_dirspec_utf8
+                       Perl_pathify_dirspec_utf8_ts
+                       Perl_readdir
+                       Perl_readdir_r
+                       Perl_rename
+                       Perl_rmscopy
+                       Perl_rmsexpand
+                       Perl_rmsexpand_ts
+                       Perl_rmsexpand_utf8
+                       Perl_rmsexpand_utf8_ts
+                       Perl_seekdir
+                       Perl_sig_to_vmscondition
+                       Perl_telldir
+                       Perl_tounixpath
+                       Perl_tounixpath_ts
+                       Perl_tounixpath_utf8
+                       Perl_tounixpath_utf8_ts
+                       Perl_tounixspec
+                       Perl_tounixspec_ts
+                       Perl_tounixspec_utf8
+                       Perl_tounixspec_utf8_ts
+                       Perl_tovmspath
+                       Perl_tovmspath_ts
+                       Perl_tovmspath_utf8
+                       Perl_tovmspath_utf8_ts
+                       Perl_tovmsspec
+                       Perl_tovmsspec_ts
+                       Perl_tovmsspec_utf8
+                       Perl_tovmsspec_utf8_ts
+                       Perl_trim_unixpath
+                       Perl_vms_case_tolerant
+                       Perl_vms_do_aexec
+                       Perl_vms_do_exec
+                       Perl_vms_image_init
+                       Perl_vms_realpath
+                       Perl_vmssetenv
+                       Perl_vmssetuserlnm
+                       Perl_vmstrnenv
+                       PerlIO_openn
+                    )]);
+    skip_symbols([qw(
+                       PL_statusvalue_posix
+                       PL_cryptseen
+                       PL_opsave
+                       Perl_GetVars
+                       Perl_dump_fds
+                       Perl_my_bzero
+                       Perl_my_bcopy
+                       Perl_my_chsize
+                       Perl_my_htonl
+                       Perl_my_memcmp
+                       Perl_my_memset
+                       Perl_my_ntohl
+                       Perl_my_sprintf
+                       Perl_my_swap
+                    )]);
+    skip_symbols([qw(
+                    Perl_signbit
+                    )])
+       if $define{'HAS_SIGNBIT'};
+    skip_symbols([qw(
+                    Perl_unlnk
+                    )])
+       unless $define{'UNLINK_ALL_VERSIONS'};
+}
 
 unless ($define{'DEBUGGING'}) {
     skip_symbols [qw(
 
 unless ($define{'DEBUGGING'}) {
     skip_symbols [qw(
@@ -902,7 +1016,7 @@ if ($define{'PERL_MAD'}) {
 unless ($define{'MULTIPLICITY'}) {
     skip_symbols [qw(
                    PL_interp_size
 unless ($define{'MULTIPLICITY'}) {
     skip_symbols [qw(
                    PL_interp_size
-                   PL_interp_size_5_10_0
+                   PL_interp_size_5_16_0
                    )];
 }
 
                    )];
 }
 
@@ -1615,7 +1729,7 @@ sub output_symbol {
          $ordinal{$exportperlmalloc{$symbol}} || ++$sym_ord
          if $exportperlmalloc and exists $exportperlmalloc{$symbol};
     }
          $ordinal{$exportperlmalloc{$symbol}} || ++$sym_ord
          if $exportperlmalloc and exists $exportperlmalloc{$symbol};
     }
-    elsif ($PLATFORM eq 'aix') {
+    elsif ($PLATFORM eq 'aix' || $PLATFORM eq 'vms') {
        print "$symbol\n";
     }
        elsif ($PLATFORM eq 'netware') {
        print "$symbol\n";
     }
        elsif ($PLATFORM eq 'netware') {