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