Re: [PATCH: perl@16826] small updates to DCL portions of perl kit
[p5sagit/p5-mst-13.2.git] / makedef.pl
index 103a1ca..0a1e7ed 100644 (file)
@@ -17,12 +17,12 @@ while (@ARGV) {
     $define{$1} = $2 if ($flag =~ /^-D(\w+)=(.+)$/);
     $CCTYPE   = $1 if ($flag =~ /^CCTYPE=(\w+)$/);
     $PLATFORM = $1 if ($flag =~ /^PLATFORM=(\w+)$/);
-       if ($PLATFORM eq 'netware') {
-               $FILETYPE = $1 if ($flag =~ /^FILETYPE=(\w+)$/);
-       }
+    if ($PLATFORM eq 'netware') {
+       $FILETYPE = $1 if ($flag =~ /^FILETYPE=(\w+)$/);
+    }
 }
 
-my @PLATFORM = qw(aix win32 os2 MacOS netware);
+my @PLATFORM = qw(aix win32 wince os2 MacOS netware);
 my %PLATFORM;
 @PLATFORM{@PLATFORM} = ();
 
@@ -42,7 +42,7 @@ my $perlio_sym  = "perlio.sym";
 if ($PLATFORM eq 'aix') {
     # Nothing for now.
 }
-elsif ($PLATFORM eq 'win32' || $PLATFORM eq 'netware') {
+elsif ($PLATFORM =~ /^win(?:32|ce)$/ || $PLATFORM eq 'netware') {
     $CCTYPE = "MSVC" unless defined $CCTYPE;
     foreach ($thrdvar_h, $intrpvar_h, $perlvars_h, $global_sym,
                $pp_sym, $globvar_sym, $perlio_sym) {
@@ -56,7 +56,7 @@ elsif ($PLATFORM eq 'MacOS') {
     }
 }
 
-unless ($PLATFORM eq 'win32' || $PLATFORM eq 'MacOS' || $PLATFORM eq 'netware') {
+unless ($PLATFORM eq 'win32' || $PLATFORM eq 'wince' || $PLATFORM eq 'MacOS' || $PLATFORM eq 'netware') {
     open(CFG,$config_sh) || die "Cannot open $config_sh: $!\n";
     while (<CFG>) {
        if (/^(?:ccflags|optimize)='(.+)'$/) {
@@ -106,14 +106,17 @@ if ($define{USE_ITHREADS} && $PLATFORM ne 'win32' && $^O ne 'darwin') {
 
 my $sym_ord = 0;
 
-if ($PLATFORM eq 'win32') {
+if ($PLATFORM =~ /^win(?:32|ce)$/) {
     warn join(' ',keys %define)."\n";
-    print "LIBRARY perl58\n";
+    ($dll = ($define{PERL_DLL} || "perl58")) =~ s/\.dll$//i;
+    print "LIBRARY $dll\n";
     print "DESCRIPTION 'Perl interpreter'\n";
     print "EXPORTS\n";
     if ($define{PERL_IMPLICIT_SYS}) {
        output_symbol("perl_get_host_info");
        output_symbol("perl_alloc_override");
+    }
+    if ($define{USE_ITHREADS} and $define{PERL_IMPLICIT_SYS}) {
        output_symbol("perl_clone_host");
     }
 }
@@ -241,6 +244,77 @@ if ($PLATFORM eq 'win32') {
                     Perl_my_popen
                     )];
 }
+elsif ($PLATFORM eq 'wince') {
+    skip_symbols [qw(
+                    PL_statusvalue_vms
+                    PL_archpat_auto
+                    PL_cryptseen
+                    PL_DBcv
+                    PL_generation
+                    PL_lastgotoprobe
+                    PL_linestart
+                    PL_modcount
+                    PL_pending_ident
+                    PL_sortcxix
+                    PL_sublex_info
+                    PL_timesbuf
+                    PL_collation_ix
+                    PL_collation_name
+                    PL_collation_standard
+                    PL_collxfrm_base
+                    PL_collxfrm_mult
+                    PL_numeric_compat1
+                    PL_numeric_local
+                    PL_numeric_name
+                    PL_numeric_radix_sv
+                    PL_numeric_standard
+                    PL_vtbl_collxfrm
+                    Perl_sv_collxfrm
+                    setgid
+                    setuid
+                    win32_async_check
+                    win32_free_childdir
+                    win32_free_childenv
+                    win32_get_childdir
+                    win32_get_childenv
+                    win32_spawnvp
+                    main
+                    Perl_ErrorNo
+                    Perl_GetVars
+                    Perl_do_exec3
+                    Perl_do_ipcctl
+                    Perl_do_ipcget
+                    Perl_do_msgrcv
+                    Perl_do_msgsnd
+                    Perl_do_semop
+                    Perl_do_shmio
+                    Perl_dump_fds
+                    Perl_init_thread_intern
+                    Perl_my_bzero
+                    Perl_my_bcopy
+                    Perl_my_htonl
+                    Perl_my_ntohl
+                    Perl_my_swap
+                    Perl_my_chsize
+                    Perl_same_dirent
+                    Perl_setenv_getix
+                    Perl_unlnk
+                    Perl_watch
+                    Perl_safexcalloc
+                    Perl_safexmalloc
+                    Perl_safexfree
+                    Perl_safexrealloc
+                    Perl_my_memcmp
+                    Perl_my_memset
+                    PL_cshlen
+                    PL_cshname
+                    PL_opsave
+                    Perl_do_exec
+                    Perl_getenv_len
+                    Perl_my_pclose
+                    Perl_my_popen
+                    )];
+}
 elsif ($PLATFORM eq 'aix') {
     skip_symbols([qw(
                     Perl_dump_fds
@@ -664,16 +738,19 @@ my @layer_syms = qw(
                         PerlIOBase_error
                         PerlIOBase_fileno
                         PerlIOBase_pushed
+                        PerlIOBase_popped
                         PerlIOBase_read
                         PerlIOBase_setlinebuf
                         PerlIOBase_unread
                         PerlIOBuf_bufsiz
                         PerlIOBuf_fill
                         PerlIOBuf_flush
+                        PerlIOBuf_get_base
                         PerlIOBuf_get_cnt
                         PerlIOBuf_get_ptr
                         PerlIOBuf_open
                         PerlIOBuf_pushed
+                        PerlIOBuf_popped
                         PerlIOBuf_read
                         PerlIOBuf_seek
                         PerlIOBuf_set_ptrcnt
@@ -695,8 +772,34 @@ my @layer_syms = qw(
                         PerlIO_push
                         PerlIO_sv_dup
                         PerlIO_perlio
-);
 
+Perl_PerlIO_clearerr
+Perl_PerlIO_close
+Perl_PerlIO_eof
+Perl_PerlIO_error
+Perl_PerlIO_fileno
+Perl_PerlIO_fill
+Perl_PerlIO_flush
+Perl_PerlIO_get_base
+Perl_PerlIO_get_bufsiz
+Perl_PerlIO_get_cnt
+Perl_PerlIO_get_ptr
+Perl_PerlIO_read
+Perl_PerlIO_seek
+Perl_PerlIO_set_cnt
+Perl_PerlIO_set_ptrcnt
+Perl_PerlIO_setlinebuf
+Perl_PerlIO_stderr
+Perl_PerlIO_stdin
+Perl_PerlIO_stdout
+Perl_PerlIO_tell
+Perl_PerlIO_unread
+Perl_PerlIO_write
+
+);
+if ($PLATFORM eq 'netware') {
+    push(@layer_syms,'PL_def_layerlist','PL_known_layers','PL_perlio');
+}
 
 if ($define{'USE_PERLIO'}) {
     # Export the symols that make up the PerlIO abstraction, regardless
@@ -776,6 +879,9 @@ if ($define{'USE_PERLIO'}) {
                         Perl_PerlIO_tell
                         Perl_PerlIO_unread
                         Perl_PerlIO_write
+                         PL_def_layerlist
+                         PL_known_layers
+                         PL_perlio
                         )];
     }
     else {
@@ -787,6 +893,8 @@ if ($define{'USE_PERLIO'}) {
        # Skip the PerlIO layer symbols - although
        # nothing should have exported them any way
        skip_symbols \@layer_syms;
+        skip_symbols [qw(PL_def_layerlist PL_known_layers PL_perlio)];
+
        # Also do NOT add abstraction symbols from $perlio_sym
        # abstraction is done as #define to stdio
        # Remaining remnants that _may_ be functions
@@ -850,7 +958,7 @@ while (<DATA>) {
     try_symbol($_);
 }
 
-if ($PLATFORM eq 'win32') {
+if ($PLATFORM =~ /^win(?:32|ce)$/) {
     foreach my $symbol (qw(
                            setuid
                            setgid
@@ -947,6 +1055,7 @@ if ($PLATFORM eq 'win32') {
                            win32_link
                            win32_unlink
                            win32_utime
+                           win32_gettimeofday
                            win32_uname
                            win32_wait
                            win32_waitpid
@@ -1191,7 +1300,7 @@ sub emit_symbol {
 
 sub output_symbol {
     my $symbol = shift;
-    if ($PLATFORM eq 'win32') {
+    if ($PLATFORM =~ /^win(?:32|ce)$/) {
        $symbol = "_$symbol" if $CCTYPE eq 'BORLAND';
        print "\t$symbol\n";
 # XXX: binary compatibility between compilers is an exercise
@@ -1241,11 +1350,10 @@ perl_destruct
 perl_free
 perl_parse
 perl_run
-# Oddities
+# Oddities from PerlIO
 PerlIO_binmode
 PerlIO_getpos
 PerlIO_init
-PerlIO_perlio
 PerlIO_setpos
 PerlIO_sprintf
 PerlIO_sv_dup