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

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: /* Some compilers use a special export keyword */
                     35: #ifndef DECLSPEC
1.1.1.2 ! root       36: # if defined(__BEOS__)
1.1       root       37: #  if defined(__GNUC__)
                     38: #   define DECLSPEC    __declspec(dllexport)
                     39: #  else
                     40: #   define DECLSPEC    __declspec(export)
                     41: #  endif
1.1.1.2 ! root       42: # elif defined(__WIN32__)
1.1       root       43: #  ifdef __BORLANDC__
                     44: #   ifdef BUILD_SDL
                     45: #    define DECLSPEC 
                     46: #   else
1.1.1.2 ! root       47: #    define DECLSPEC   __declspec(dllimport)
1.1       root       48: #   endif
                     49: #  else
                     50: #   define DECLSPEC    __declspec(dllexport)
                     51: #  endif
1.1.1.2 ! root       52: # elif defined(__OS2__)
        !            53: #  ifdef __WATCOMC__
        !            54: #   ifdef BUILD_SDL
        !            55: #    define DECLSPEC   __declspec(dllexport)
        !            56: #   else
        !            57: #    define DECLSPEC
        !            58: #   endif
        !            59: #  else
        !            60: #   define DECLSPEC
        !            61: #  endif
1.1       root       62: # else
1.1.1.2 ! root       63: #  if defined(__GNUC__) && __GNUC__ >= 4
        !            64: #   define DECLSPEC    __attribute__ ((visibility("default")))
        !            65: #  else
        !            66: #   define DECLSPEC
        !            67: #  endif
1.1       root       68: # endif
                     69: #endif
                     70: 
                     71: /* By default SDL uses the C calling convention */
                     72: #ifndef SDLCALL
1.1.1.2 ! root       73: #if defined(__WIN32__) && !defined(__GNUC__)
1.1       root       74: #define SDLCALL __cdecl
                     75: #else
1.1.1.2 ! root       76: #ifdef __OS2__
        !            77: /* But on OS/2, we use the _System calling convention */
        !            78: /* to be compatible with every compiler */
        !            79: #define SDLCALL _System
        !            80: #else
1.1       root       81: #define SDLCALL
                     82: #endif
1.1.1.2 ! root       83: #endif
1.1       root       84: #endif /* SDLCALL */
                     85: 
                     86: #ifdef __SYMBIAN32__ 
1.1.1.2 ! root       87: #ifndef EKA2 
1.1       root       88: #undef DECLSPEC
                     89: #define DECLSPEC
1.1.1.2 ! root       90: #elif !defined(__WINS__)
        !            91: #undef DECLSPEC
        !            92: #define DECLSPEC __declspec(dllexport)
        !            93: #endif //EKA2
        !            94: #endif //__SYMBIAN32__
1.1       root       95: 
                     96: /* Force structure packing at 4 byte alignment.
                     97:    This is necessary if the header is included in code which has structure
                     98:    packing set to an alternate value, say for loading structures from disk.
                     99:    The packing is reset to the previous value in close_code.h
                    100:  */
                    101: #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__)
                    102: #ifdef _MSC_VER
                    103: #pragma warning(disable: 4103)
                    104: #endif
                    105: #ifdef __BORLANDC__
                    106: #pragma nopackwarning
                    107: #endif
                    108: #pragma pack(push,4)
1.1.1.2 ! root      109: #elif (defined(__MWERKS__) && defined(__MACOS__))
1.1       root      110: #pragma options align=mac68k4byte
                    111: #pragma enumsalwaysint on
                    112: #endif /* Compiler needs structure packing set */
                    113: 
                    114: /* Set up compiler-specific options for inlining functions */
                    115: #ifndef SDL_INLINE_OKAY
                    116: #ifdef __GNUC__
                    117: #define SDL_INLINE_OKAY
                    118: #else
                    119: /* Add any special compiler-specific cases here */
                    120: #if defined(_MSC_VER) || defined(__BORLANDC__) || \
                    121:     defined(__DMC__) || defined(__SC__) || \
                    122:     defined(__WATCOMC__) || defined(__LCC__) || \
1.1.1.2 ! root      123:     defined(__DECC) || defined(__EABI__)
1.1       root      124: #ifndef __inline__
                    125: #define __inline__     __inline
                    126: #endif
                    127: #define SDL_INLINE_OKAY
                    128: #else
                    129: #if !defined(__MRC__) && !defined(_SGI_SOURCE)
1.1.1.2 ! root      130: #ifndef __inline__
1.1       root      131: #define __inline__ inline
1.1.1.2 ! root      132: #endif
1.1       root      133: #define SDL_INLINE_OKAY
                    134: #endif /* Not a funky compiler */
                    135: #endif /* Visual C++ */
                    136: #endif /* GNU C */
                    137: #endif /* SDL_INLINE_OKAY */
                    138: 
                    139: /* If inlining isn't supported, remove "__inline__", turning static
                    140:    inlined functions into static functions (resulting in code bloat
                    141:    in all files which include the offending header files)
                    142: */
                    143: #ifndef SDL_INLINE_OKAY
                    144: #define __inline__
                    145: #endif
                    146: 
                    147: /* Apparently this is needed by several Windows compilers */
                    148: #if !defined(__MACH__)
                    149: #ifndef NULL
                    150: #ifdef __cplusplus
                    151: #define NULL 0
                    152: #else
                    153: #define NULL ((void *)0)
                    154: #endif
                    155: #endif /* NULL */
1.1.1.2 ! root      156: #endif /* ! Mac OS 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.