2010-04-16 Sebastien Pouliot <sebastien@ximian.com>
[mono/afaerber.git] / msvc / create-windef.pl
blob241487d09932b15a96b59f51b009b5f064d158b6
1 #!/usr/bin/perl -w
3 use strict;
5 my $outfile = shift || usage ();
6 my @symbols = ();
7 my %excludes = ();
8 my $cmd = "nm -D ../mono/mini/.libs/libmono.so";
10 @excludes {qw(
11 mono_class_setup_vtable_general_new mono_debugger_init mono_debugger_main
12 mono_once mono_pthread_key_for_tls
13 )} = ();
15 open (SYMS, "$cmd |") || die "Cannot run \$cmd': $!\n";
16 while (<SYMS>) {
17 next unless / T (mono_.*)/;
18 next if exists $excludes {$1};
19 push @symbols, $1;
21 close (SYMS);
22 push @symbols, "MonoFixupCorEE";
23 @symbols = sort @symbols;
25 open (OUT, ">$outfile") || die "Cannot open '$outfile': $!\n";
26 print OUT "; file generated by create-windef.pl\n";
27 print OUT "LIBRARY mono.dll\nEXPORTS\n";
28 print OUT join ("\n", @symbols);
30 close (OUT);
32 sub usage {
33 print "Usage: create-windef.pl output_file\n";
34 exit (1);