1 /*
2     SDL - Simple DirectMedia Layer
3     Copyright (C) 1997-2004 Sam Lantinga
4 
5     This library is free software; you can redistribute it and/or
6     modify it under the terms of the GNU Library General Public
7     License as published by the Free Software Foundation; either
8     version 2 of the License, or (at your option) any later version.
9 
10     This library is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13     Library General Public License for more details.
14 
15     You should have received a copy of the GNU Library General Public
16     License along with this library; if not, write to the Free
17     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18 
19     Sam Lantinga
20     slouken@libsdl.org
21 */
22 
23 #ifdef SAVE_RCSID
24 static char rcsid =
25  "@(#) $Id: SDL_main.h,v 1.12 2004/01/04 16:49:07 slouken Exp $";
26 #endif
27 
28 #ifndef _SDL_main_h
29 #define _SDL_main_h
30 
31 /* Redefine main() on Win32 and MacOS so that it is called by winmain.c */
32 
33 #if defined(WIN32) || defined(_WIN32) || \
34     (defined(__MWERKS__) && !defined(__BEOS__)) || \
35     defined(macintosh) || defined(__APPLE__) || \
36     defined(__SYMBIAN32__) || defined(QWS)
37 
38 #ifdef __cplusplus
39 #define C_LINKAGE	"C"
40 #else
41 #define C_LINKAGE
42 #endif /* __cplusplus */
43 
44 /* The application's main() function must be called with C linkage,
45    and should be declared like this:
46 #ifdef __cplusplus
47 extern "C"
48 #endif
49 	int main(int argc, char *argv[])
50 	{
51 	}
52  */
53 #define main	SDL_main
54 
55 /* The prototype for the application's main() function */
56 extern C_LINKAGE int SDL_main(int argc, char *argv[]);
57 
58 
59 /* From the SDL library code -- needed for registering the app on Win32 */
60 #if defined(WIN32)
61 #include "SDL_types.h"
62 #include "begin_code.h"
63 
64 #ifdef __cplusplus
65 extern "C" {
66 #endif
67 
68 /* This should be called from your WinMain() function, if any */
69 extern DECLSPEC void SDLCALL SDL_SetModuleHandle(void *hInst);
70 /* This can also be called, but is no longer necessary */
71 extern DECLSPEC int SDLCALL SDL_RegisterApp(char *name, Uint32 style, void *hInst);
72 
73 #ifdef __cplusplus
74 }
75 #endif
76 #include "close_code.h"
77 #endif
78 
79 /* From the SDL library code -- needed for registering QuickDraw on MacOS */
80 #if defined(macintosh)
81 #include "begin_code.h"
82 
83 #ifdef __cplusplus
84 extern "C" {
85 #endif
86 
87 /* Forward declaration so we don't need to include QuickDraw.h */
88 struct QDGlobals;
89 
90 /* This should be called from your main() function, if any */
91 extern DECLSPEC void SDLCALL SDL_InitQuickDraw(struct QDGlobals *the_qd);
92 
93 #ifdef __cplusplus
94 }
95 #endif
96 #include "close_code.h"
97 #endif
98 
99 #endif /* Need to redefine main()? */
100 
101 #endif /* _SDL_main_h */
102