Annotation of sbbs/include/sdl/begin_code.h, revision 1.1

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 */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.