|
|
1.1 ! root 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: [email protected] ! 21: */ ! 22: ! 23: /* This file sets things up for C dynamic library function definitions, ! 24: static inlined functions, and structures aligned at 4-byte alignment. ! 25: If you don't like ugly C preprocessor code, don't look at this file. :) ! 26: */ ! 27: ! 28: /* This shouldn't be nested -- included it around code only. */ ! 29: #ifdef _begin_code_h ! 30: #error Nested inclusion of begin_code.h ! 31: #endif ! 32: #define _begin_code_h ! 33: ! 34: /* Make sure the correct platform symbols are defined */ ! 35: #if !defined(WIN32) && defined(_WIN32) ! 36: #define WIN32 ! 37: #endif /* Windows */ ! 38: ! 39: /* Some compilers use a special export keyword */ ! 40: #ifndef DECLSPEC ! 41: # ifdef __BEOS__ ! 42: # if defined(__GNUC__) ! 43: # define DECLSPEC __declspec(dllexport) ! 44: # else ! 45: # define DECLSPEC __declspec(export) ! 46: # endif ! 47: # else ! 48: # ifdef WIN32 ! 49: # ifdef __BORLANDC__ ! 50: # ifdef BUILD_SDL ! 51: # define DECLSPEC ! 52: # else ! 53: # define DECLSPEC __declspec(dllimport) ! 54: # endif ! 55: # else ! 56: # define DECLSPEC __declspec(dllexport) ! 57: # endif ! 58: # else ! 59: # define DECLSPEC ! 60: # endif ! 61: # endif ! 62: #endif ! 63: ! 64: /* By default SDL uses the C calling convention */ ! 65: #ifndef SDLCALL ! 66: #if defined(WIN32) && !defined(__GNUC__) ! 67: #define SDLCALL __cdecl ! 68: #else ! 69: #define SDLCALL ! 70: #endif ! 71: #endif /* SDLCALL */ ! 72: ! 73: /* Removed DECLSPEC on Symbian OS because SDL cannot be a DLL in EPOC */ ! 74: #ifdef __SYMBIAN32__ ! 75: #undef DECLSPEC ! 76: #define DECLSPEC ! 77: #endif /* __SYMBIAN32__ */ ! 78: ! 79: /* Force structure packing at 4 byte alignment. ! 80: This is necessary if the header is included in code which has structure ! 81: packing set to an alternate value, say for loading structures from disk. ! 82: The packing is reset to the previous value in close_code.h ! 83: */ ! 84: #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__) ! 85: #ifdef _MSC_VER ! 86: #pragma warning(disable: 4103) ! 87: #endif ! 88: #ifdef __BORLANDC__ ! 89: #pragma nopackwarning ! 90: #endif ! 91: #pragma pack(push,4) ! 92: #elif (defined(__MWERKS__) && defined(macintosh)) ! 93: #pragma options align=mac68k4byte ! 94: #pragma enumsalwaysint on ! 95: #endif /* Compiler needs structure packing set */ ! 96: ! 97: /* Set up compiler-specific options for inlining functions */ ! 98: #ifndef SDL_INLINE_OKAY ! 99: #ifdef __GNUC__ ! 100: #define SDL_INLINE_OKAY ! 101: #else ! 102: /* Add any special compiler-specific cases here */ ! 103: #if defined(_MSC_VER) || defined(__BORLANDC__) || \ ! 104: defined(__DMC__) || defined(__SC__) || \ ! 105: defined(__WATCOMC__) || defined(__LCC__) || \ ! 106: defined(__DECC) ! 107: #ifndef __inline__ ! 108: #define __inline__ __inline ! 109: #endif ! 110: #define SDL_INLINE_OKAY ! 111: #else ! 112: #if !defined(__MRC__) && !defined(_SGI_SOURCE) ! 113: #define __inline__ inline ! 114: #define SDL_INLINE_OKAY ! 115: #endif /* Not a funky compiler */ ! 116: #endif /* Visual C++ */ ! 117: #endif /* GNU C */ ! 118: #endif /* SDL_INLINE_OKAY */ ! 119: ! 120: /* If inlining isn't supported, remove "__inline__", turning static ! 121: inlined functions into static functions (resulting in code bloat ! 122: in all files which include the offending header files) ! 123: */ ! 124: #ifndef SDL_INLINE_OKAY ! 125: #define __inline__ ! 126: #endif ! 127: ! 128: /* Apparently this is needed by several Windows compilers */ ! 129: #if !defined(__MACH__) ! 130: #ifndef NULL ! 131: #ifdef __cplusplus ! 132: #define NULL 0 ! 133: #else ! 134: #define NULL ((void *)0) ! 135: #endif ! 136: #endif /* NULL */ ! 137: #endif /* ! MacOS X - breaks precompiled headers */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.