Annotation of sbbs/include/sdl/begin_code.h, revision 1.1.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.