3 # Written: 10 April 1996 Gary Ng (71564.1743@compuserve.com)
5 # Create the export list for perl.
6 # Needed by WIN32 for creating perl.dll
7 # based on perl_exp.SH in the main perl distribution directory
9 # This simple program relys on 'global.sym' being up to date
10 # with all of the global symbols that a dynamicly link library
11 # might want to access.
13 # There is some symbol defined in global.sym and interp.sym
14 # that does not present in the WIN32 port but there is no easy
15 # way to find them so I just put a exeception list here
17 my $CCTYPE = shift || "MSVC";
19 $skip_sym=<<'!END!OF!SKIP!';
100 Perl_scan_inputsymbol
115 Perl_too_few_arguments
116 Perl_too_many_arguments
141 # All symbols have a Perl_ prefix because that's what embed.h
142 # sticks in front of them.
145 print "LIBRARY Perl\n";
146 print "DESCRIPTION 'Perl interpreter, export autogenerated'\n";
147 print "CODE LOADONCALL\n";
148 print "DATA LOADONCALL NONSHARED MULTIPLE\n";
151 open (GLOBAL, "<../global.sym") || die "failed to open global.sym" . $!;
154 next if (!/^[A-Za-z]/);
155 next if (/_amg[ \t]*$/);
157 next if ($skip_sym =~ m/$symbol/m);
158 emit_symbol($symbol);
162 # also add symbols from interp.sym
163 # They are only needed if -DMULTIPLICITY is not set but it
164 # doesn't hurt to include them anyway.
165 # these don't have Perl prefix
167 open (INTERP, "<../interp.sym") || die "failed to open interp.sym" . $!;
170 next if (!/^[A-Za-z]/);
171 next if (/_amg[ \t]*$/);
173 next if ($skip_sym =~ m/$symbol/m);
175 emit_symbol("Perl_" . $symbol);
182 next if (!/^[A-Za-z]/);
185 next if ($skip_sym =~ m/^$symbol/m);
186 emit_symbol($symbol);
192 if ($CCTYPE eq "BORLAND") {
193 # workaround Borland quirk by exporting both the straight
194 # name and a name with leading underscore
195 #print "\t$symbol = _$symbol\n";
196 print "\t_$symbol\n";
205 # extra globals not included above.
303 win32_getprotobynumber