diff options
author | Tim Angus <tim@ngus.net> | 2009-10-26 00:10:07 +0000 |
---|---|---|
committer | Tim Angus <tim@ngus.net> | 2013-01-03 00:17:05 +0000 |
commit | 0fed3b1c32d99560482ea162b197531439df76e5 (patch) | |
tree | dd5f74d3124715a538462aa474f9af294f79bbbd /src/SDL12/include/begin_code.h | |
parent | af6fd4fa5aaa4dc7c59ae54ead20d5ef0fbcc946 (diff) |
* Merge ioq3-r1708
Diffstat (limited to 'src/SDL12/include/begin_code.h')
-rw-r--r-- | src/SDL12/include/begin_code.h | 105 |
1 files changed, 73 insertions, 32 deletions
diff --git a/src/SDL12/include/begin_code.h b/src/SDL12/include/begin_code.h index 40279337..22748090 100644 --- a/src/SDL12/include/begin_code.h +++ b/src/SDL12/include/begin_code.h @@ -1,6 +1,6 @@ /* SDL - Simple DirectMedia Layer - Copyright (C) 1997-2004 Sam Lantinga + Copyright (C) 1997-2009 Sam Lantinga This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public @@ -20,20 +20,28 @@ slouken@libsdl.org */ -/* This file sets things up for C dynamic library function definitions, - static inlined functions, and structures aligned at 4-byte alignment. - If you don't like ugly C preprocessor code, don't look at this file. :) -*/ +/** + * @file begin_code.h + * This file sets things up for C dynamic library function definitions, + * static inlined functions, and structures aligned at 4-byte alignment. + * If you don't like ugly C preprocessor code, don't look at this file. :) + */ -/* This shouldn't be nested -- included it around code only. */ +/** + * @file begin_code.h + * This shouldn't be nested -- included it around code only. + */ #ifdef _begin_code_h #error Nested inclusion of begin_code.h #endif #define _begin_code_h -/* Some compilers use a special export keyword */ +/** + * @def DECLSPEC + * Some compilers use a special export keyword + */ #ifndef DECLSPEC -# if defined(__BEOS__) +# if defined(__BEOS__) || defined(__HAIKU__) # if defined(__GNUC__) # define DECLSPEC __declspec(dllexport) # else @@ -56,6 +64,15 @@ # else # define DECLSPEC # endif +# elif defined (__GNUC__) && __GNUC__ < 4 +# /* Added support for GCC-EMX <v4.x */ +# /* this is needed for XFree86/OS2 developement */ +# /* F. Ambacher(anakor@snafu.de) 05.2008 */ +# ifdef BUILD_SDL +# define DECLSPEC __declspec(dllexport) +# else +# define DECLSPEC +# endif # else # define DECLSPEC # endif @@ -68,31 +85,45 @@ # endif #endif -/* By default SDL uses the C calling convention */ +/** + * @def SDLCALL + * By default SDL uses the C calling convention + */ #ifndef SDLCALL -#if defined(__WIN32__) && !defined(__GNUC__) -#define SDLCALL __cdecl -#else -#ifdef __OS2__ -/* But on OS/2, we use the _System calling convention */ -/* to be compatible with every compiler */ -#define SDLCALL _System -#else -#define SDLCALL -#endif -#endif +# if defined(__WIN32__) && !defined(__GNUC__) +# define SDLCALL __cdecl +# elif defined(__OS2__) +# if defined (__GNUC__) && __GNUC__ < 4 +# /* Added support for GCC-EMX <v4.x */ +# /* this is needed for XFree86/OS2 developement */ +# /* F. Ambacher(anakor@snafu.de) 05.2008 */ +# define SDLCALL _cdecl +# else +# /* On other compilers on OS/2, we use the _System calling convention */ +# /* to be compatible with every compiler */ +# define SDLCALL _System +# endif +# else +# define SDLCALL +# endif #endif /* SDLCALL */ -/* Removed DECLSPEC on Symbian OS because SDL cannot be a DLL in EPOC */ #ifdef __SYMBIAN32__ +#ifndef EKA2 #undef DECLSPEC #define DECLSPEC +#elif !defined(__WINS__) +#undef DECLSPEC +#define DECLSPEC __declspec(dllexport) +#endif /* !EKA2 */ #endif /* __SYMBIAN32__ */ -/* Force structure packing at 4 byte alignment. - This is necessary if the header is included in code which has structure - packing set to an alternate value, say for loading structures from disk. - The packing is reset to the previous value in close_code.h +/** + * @file begin_code.h + * Force structure packing at 4 byte alignment. + * This is necessary if the header is included in code which has structure + * packing set to an alternate value, say for loading structures from disk. + * The packing is reset to the previous value in close_code.h */ #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__) #ifdef _MSC_VER @@ -107,7 +138,10 @@ #pragma enumsalwaysint on #endif /* Compiler needs structure packing set */ -/* Set up compiler-specific options for inlining functions */ +/** + * @def SDL_INLINE_OKAY + * Set up compiler-specific options for inlining functions + */ #ifndef SDL_INLINE_OKAY #ifdef __GNUC__ #define SDL_INLINE_OKAY @@ -116,29 +150,36 @@ #if defined(_MSC_VER) || defined(__BORLANDC__) || \ defined(__DMC__) || defined(__SC__) || \ defined(__WATCOMC__) || defined(__LCC__) || \ - defined(__DECC) + defined(__DECC) || defined(__EABI__) #ifndef __inline__ #define __inline__ __inline #endif #define SDL_INLINE_OKAY #else #if !defined(__MRC__) && !defined(_SGI_SOURCE) +#ifndef __inline__ #define __inline__ inline +#endif #define SDL_INLINE_OKAY #endif /* Not a funky compiler */ #endif /* Visual C++ */ #endif /* GNU C */ #endif /* SDL_INLINE_OKAY */ -/* If inlining isn't supported, remove "__inline__", turning static - inlined functions into static functions (resulting in code bloat - in all files which include the offending header files) -*/ +/** + * @def __inline__ + * If inlining isn't supported, remove "__inline__", turning static + * inlined functions into static functions (resulting in code bloat + * in all files which include the offending header files) + */ #ifndef SDL_INLINE_OKAY #define __inline__ #endif -/* Apparently this is needed by several Windows compilers */ +/** + * @def NULL + * Apparently this is needed by several Windows compilers + */ #if !defined(__MACH__) #ifndef NULL #ifdef __cplusplus |