19682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#!/usr/bin/perl
29682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#
39682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# Program to take a set of header files and generate DLL export definitions
49682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
59682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# Special exports to ignore for this platform
69682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
79682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallwhile ( ($file = shift(@ARGV)) ) {
89682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	if ( ! defined(open(FILE, $file)) ) {
99682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		warn "Couldn't open $file: $!\n";
109682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		next;
119682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	}
129682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	$printed_header = 0;
139682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	$file =~ s,.*/,,;
149682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	while (<FILE>) {
159682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		if ( / DECLSPEC.* SDLCALL ([^\s\(]+)/ ) {
169682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall			if ( not $exclude{$1} ) {
179682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall				print "\t$1\r";
189682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall			}
199682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall		}
209682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	}
219682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall	close(FILE);
229682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall}
239682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall
249682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall# Special exports to include for this platform
259682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_putenv\r";
269682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_getenv\r";
279682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_qsort\r";
289682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_revcpy\r";
299682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_strlcpy\r";
309682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_strlcat\r";
319682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_strdup\r";
329682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_strrev\r";
339682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_strupr\r";
349682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_strlwr\r";
359682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_ltoa\r";
369682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_ultoa\r";
379682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_strcasecmp\r";
389682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_strncasecmp\r";
399682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_snprintf\r";
409682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_vsnprintf\r";
419682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_iconv\r";
429682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_iconv_string\r";
439682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallprint "\tSDL_InitQuickDraw\r";
44