Re: FreeBSD mostly OK. [nwc10@colon.colondot.net: Report /export/home/nwc10/Even...
[p5sagit/p5-mst-13.2.git] / makedef.pl
index 4b807a6..1d35103 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,16 +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}) {
+    if ($define{USE_ITHREADS} and $define{PERL_IMPLICIT_SYS}) {
        output_symbol("perl_clone_host");
     }
 }
@@ -243,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
@@ -672,6 +744,7 @@ my @layer_syms = qw(
                         PerlIOBuf_bufsiz
                         PerlIOBuf_fill
                         PerlIOBuf_flush
+                        PerlIOBuf_get_base
                         PerlIOBuf_get_cnt
                         PerlIOBuf_get_ptr
                         PerlIOBuf_open
@@ -722,7 +795,9 @@ 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
@@ -802,6 +877,9 @@ if ($define{'USE_PERLIO'}) {
                         Perl_PerlIO_tell
                         Perl_PerlIO_unread
                         Perl_PerlIO_write
+                         PL_def_layerlist
+                         PL_known_layers
+                         PL_perlio
                         )];
     }
     else {
@@ -878,7 +956,7 @@ while (<DATA>) {
     try_symbol($_);
 }
 
-if ($PLATFORM eq 'win32') {
+if ($PLATFORM =~ /^win(?:32|ce)$/) {
     foreach my $symbol (qw(
                            setuid
                            setgid
@@ -975,6 +1053,7 @@ if ($PLATFORM eq 'win32') {
                            win32_link
                            win32_unlink
                            win32_utime
+                           win32_gettimeofday
                            win32_uname
                            win32_wait
                            win32_waitpid
@@ -1219,7 +1298,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