various win32 odds and ends
[p5sagit/p5-mst-13.2.git] / win32 / makedef.pl
index aa0fe34..059fc49 100644 (file)
@@ -27,17 +27,24 @@ open(CFG,'config.h') || die "Cannot open config.h:$!";
 while (<CFG>)
  {
   $define{$1} = 1 if /^\s*#\s*define\s+(MYMALLOC)\b/;
+  $define{$1} = 1 if /^\s*#\s*define\s+(USE_THREADS)\b/;
  }
 close(CFG);
 
 warn join(' ',keys %define)."\n";
 
+if ($define{PERL_OBJECT}) {
+    print "LIBRARY PerlCore\n";
+    print "DESCRIPTION 'Perl interpreter'\n";
+    print "EXPORTS\n";
+    output_symbol("perl_alloc");
+    exit(0);
+}
+
 if ($CCTYPE ne 'GCC') 
  {
   print "LIBRARY Perl\n";
   print "DESCRIPTION 'Perl interpreter, export autogenerated'\n";
-  print "CODE LOADONCALL\n";
-  print "DATA LOADONCALL NONSHARED MULTIPLE\n";
  }
 else
  {
@@ -70,21 +77,20 @@ sub emit_symbols
 
 skip_symbols [qw(
 Perl_statusvalue_vms
+Perl_archpat_auto
 Perl_block_type
+Perl_bostr
 Perl_additem
 Perl_cast_ulong
 Perl_check_uni
 Perl_checkcomma
 Perl_chsize
 Perl_ck_aelem
+Perl_colors
+Perl_colorset
 Perl_cryptseen
 Perl_cx_dump
-Perl_deb
-Perl_deb_growlevel
-Perl_debop
-Perl_debprofdump
-Perl_debstack
-Perl_debstackptrs
+Perl_DBcv
 Perl_do_ipcctl
 Perl_do_ipcget
 Perl_do_msgrcv
@@ -104,16 +110,22 @@ Perl_dump_packsubs
 Perl_dump_pm
 Perl_dump_sub
 Perl_expectterm
-Perl_error_no
+Perl_extralen
 Perl_fetch_gv
 Perl_fetch_io
 Perl_force_ident
 Perl_force_next
 Perl_force_word
+Perl_generation
 Perl_hv_stashpv
+Perl_in_clean_all
+Perl_in_clean_objs
 Perl_intuit_more
 Perl_init_thread_intern
 Perl_know_next
+Perl_lastgotoprobe
+Perl_linestart
+Perl_modcount
 Perl_modkids
 Perl_mstats
 Perl_my_bzero
@@ -126,6 +138,7 @@ Perl_no_fh_allowed
 Perl_no_op
 Perl_nointrp
 Perl_nomem
+Perl_pending_ident
 Perl_pp_cswitch
 Perl_pp_entersubr
 Perl_pp_evalonce
@@ -135,13 +148,41 @@ Perl_pp_nswitch
 Perl_q
 Perl_rcsid
 Perl_reall_srchlen
+Perl_reg_eval_set
+Perl_reg_flags
+Perl_reg_start_tmp
+Perl_reg_start_tmpl
+Perl_regbol
+Perl_regcc
+Perl_regcode
+Perl_regdata
+Perl_regdummy
 Perl_regdump
 Perl_regfold
+Perl_regendp
+Perl_regeol
+Perl_regflags
+Perl_regindent
+Perl_reginput
+Perl_reglastparen
 Perl_regmyendp
 Perl_regmyp_size
 Perl_regmystartp
 Perl_regnarrate
+Perl_regnaughty
+Perl_regnpar
+Perl_regcomp_parse
+Perl_regprecomp
+Perl_regprev
+Perl_regprogram
 Perl_regprop
+Perl_regsawback
+Perl_regseen
+Perl_regsize
+Perl_regstartp
+Perl_regtill
+Perl_regxend
+Perl_regcomp_rx
 Perl_same_dirent
 Perl_saw_return
 Perl_scan_const
@@ -155,10 +196,13 @@ Perl_scan_str
 Perl_scan_subst
 Perl_scan_trans
 Perl_scan_word
+Perl_seen_zerolen
 Perl_setenv_getix
 Perl_skipspace
 Perl_sort_mutex
+Perl_sortcxix
 Perl_sublex_done
+Perl_sublex_info
 Perl_sublex_start
 Perl_sv_ref
 Perl_sv_setptrobj
@@ -166,7 +210,6 @@ Perl_timesbuf
 Perl_too_few_arguments
 Perl_too_many_arguments
 Perl_unlnk
-Perl_wait4pid
 Perl_watch
 Perl_yyname
 Perl_yyrule
@@ -208,9 +251,12 @@ if ($define{'MYMALLOC'})
 unless ($define{'USE_THREADS'})
  {
   skip_symbols [qw(
+Perl_getTHR
+Perl_setTHR
 Perl_condpair_magic
 Perl_thr_key
 Perl_sv_mutex
+Perl_svref_mutex
 Perl_malloc_mutex
 Perl_eval_mutex
 Perl_eval_cond
@@ -272,11 +318,19 @@ if ($define{'PERL_GLOBAL_STRUCT'})
  {
   my $global = readvar("../perlvars.h");
   skip_symbols $global;
+  emit_symbols [qw(Perl_GetVars)];
+  emit_symbols [qw(Perl_Vars Perl_VarsPtr)] unless $CCTYPE eq 'GCC';
  } 
 
 unless ($define{'DEBUGGING'})
  {
   skip_symbols [qw(
+    Perl_deb
+    Perl_deb_growlevel
+    Perl_debop
+    Perl_debprofdump
+    Perl_debstack
+    Perl_debstackptrs
     Perl_runops_debug
     Perl_sv_peek
     Perl_watchaddr
@@ -306,11 +360,7 @@ close(GLOBAL);
 # doesn't hurt to include them anyway.
 # these don't have Perl prefix
 
-if ($define{'PERL_GLOBAL_STRUCT'})
- {
-  emit_symbol( ($CCTYPE eq 'GCC') ? 'Perl_GetVars' : 'Perl_VarsPtr')
- }
-else
+unless ($define{'PERL_GLOBAL_STRUCT'})
  {
   my $glob = readvar("../perlvars.h");
   emit_symbols $glob;
@@ -341,25 +391,7 @@ while (<DATA>) {
 
 foreach my $symbol (sort keys %export)
  {
-       if ($CCTYPE eq "BORLAND") {
-               # workaround Borland quirk by exporting both the straight
-               # name and a name with leading underscore.  Note the
-               # alias *must* come after the symbol itself, if both
-               # are to be exported. (Linker bug?)
-               print "\t_$symbol\n";
-               print "\t$symbol = _$symbol\n";
-       }
-        elsif ($CCTYPE eq 'GCC') {
-                # Symbols have leading _ whole process is $%£"% slow
-                # so skip aliases for now
-               print "\t$symbol\n";
-        }
-       else {
-               # for binary coexistence, export both the symbol and
-               # alias with leading underscore
-               print "\t$symbol\n";
-               print "\t_$symbol = $symbol\n";
-       }
+   output_symbol($symbol);
  }
 
 sub emit_symbol {
@@ -368,12 +400,36 @@ sub emit_symbol {
        $export{$symbol} = 1;
 }
 
+sub output_symbol {
+    my $symbol = shift;
+    if ($CCTYPE eq "BORLAND") {
+           # workaround Borland quirk by exporting both the straight
+           # name and a name with leading underscore.  Note the
+           # alias *must* come after the symbol itself, if both
+           # are to be exported. (Linker bug?)
+           print "\t_$symbol\n";
+           print "\t$symbol = _$symbol\n";
+    }
+    elsif ($CCTYPE eq 'GCC') {
+           # Symbols have leading _ whole process is $%£"% slow
+           # so skip aliases for now
+           print "\t$symbol\n";
+    }
+    else {
+           # for binary coexistence, export both the symbol and
+           # alias with leading underscore
+           print "\t$symbol\n";
+           print "\t_$symbol = $symbol\n";
+    }
+}
+
 1;
 __DATA__
 # extra globals not included above.
 perl_init_i18nl10n
 perl_init_ext
 perl_alloc
+perl_atexit
 perl_construct
 perl_destruct
 perl_free
@@ -390,6 +446,11 @@ perl_call_sv
 perl_require_pv
 perl_eval_pv
 perl_eval_sv
+perl_new_ctype
+perl_new_collate
+perl_new_numeric
+perl_set_numeric_standard
+perl_set_numeric_local
 boot_DynaLoader
 Perl_thread_create
 win32_errno
@@ -444,6 +505,7 @@ win32_mkdir
 win32_rmdir
 win32_chdir
 win32_flock
+win32_execv
 win32_execvp
 win32_htons
 win32_ntohs
@@ -513,6 +575,8 @@ win32_get_osfhandle
 win32_ioctl
 win32_utime
 win32_wait
+win32_waitpid
+win32_kill
 win32_str_os_error
 Perl_win32_init
 Perl_init_os_extras