include/SDL_config.h.in
author Sam Lantinga <slouken@libsdl.org>
Sun, 16 Jan 2011 15:16:39 -0800
changeset 5004 0c72ae7b7cb2
parent 4873 67ad1c88dda0
child 5041 3ce345cc46f8
permissions -rw-r--r--
Added native atomic operations for Windows, Mac OS X, and gcc compiler intrinsics.
Changed the CAS return value to bool, so it's efficient with OSAtomicCompareAndSwap32Barrier()
Added an atomic test adapted from code by Michael Davidsaver
slouken@1341
     1
/*
slouken@1341
     2
    SDL - Simple DirectMedia Layer
slouken@2859
     3
    Copyright (C) 1997-2009 Sam Lantinga
slouken@1341
     4
slouken@1341
     5
    This library is free software; you can redistribute it and/or
slouken@1341
     6
    modify it under the terms of the GNU Lesser General Public
slouken@1341
     7
    License as published by the Free Software Foundation; either
slouken@1341
     8
    version 2.1 of the License, or (at your option) any later version.
slouken@1341
     9
slouken@1341
    10
    This library is distributed in the hope that it will be useful,
slouken@1341
    11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
slouken@1341
    12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
slouken@1341
    13
    Lesser General Public License for more details.
slouken@1341
    14
slouken@1341
    15
    You should have received a copy of the GNU Lesser General Public
slouken@1341
    16
    License along with this library; if not, write to the Free Software
slouken@1341
    17
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
slouken@1341
    18
slouken@1341
    19
    Sam Lantinga
slouken@1341
    20
    slouken@libsdl.org
slouken@1341
    21
*/
slouken@1341
    22
slouken@1341
    23
#ifndef _SDL_config_h
slouken@1341
    24
#define _SDL_config_h
slouken@1341
    25
slouken@3407
    26
/**
slouken@3407
    27
 *  \file SDL_config.h.in
slouken@3407
    28
 *
slouken@3407
    29
 *  This is a set of defines to configure the SDL features
slouken@3407
    30
 */
slouken@1341
    31
slouken@1402
    32
/* General platform specific identifiers */
slouken@1402
    33
#include "SDL_platform.h"
slouken@1402
    34
slouken@2175
    35
/* Make sure that this isn't included by Visual C++ */
slouken@2175
    36
#ifdef _MSC_VER
slouken@2175
    37
#error You should copy include/SDL_config.h.default to include/SDL_config.h
slouken@2175
    38
#endif
slouken@2175
    39
slouken@1353
    40
/* C language features */
slouken@1353
    41
#undef const
slouken@1353
    42
#undef inline
slouken@1353
    43
#undef volatile
slouken@1352
    44
slouken@1353
    45
/* C datatypes */
slouken@3220
    46
#if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H)
slouken@1353
    47
#undef size_t
slouken@1353
    48
#undef int8_t
slouken@1353
    49
#undef uint8_t
slouken@1353
    50
#undef int16_t
slouken@1353
    51
#undef uint16_t
slouken@1353
    52
#undef int32_t
slouken@1353
    53
#undef uint32_t
slouken@1353
    54
#undef int64_t
slouken@1353
    55
#undef uint64_t
slouken@1353
    56
#undef uintptr_t
slouken@3220
    57
#endif /* !_STDINT_H_ && !HAVE_STDINT_H */
slouken@3220
    58
bob@3180
    59
#undef SIZEOF_VOIDP
slouken@1383
    60
#undef SDL_HAS_64BIT_TYPE
slouken@5004
    61
#undef HAVE_GCC_ATOMICS
slouken@1353
    62
slouken@1353
    63
/* Comment this if you want to build without any C library requirements */
slouken@1341
    64
#undef HAVE_LIBC
slouken@1402
    65
#if HAVE_LIBC
slouken@1341
    66
slouken@1353
    67
/* Useful headers */
slouken@1367
    68
#undef HAVE_ALLOCA_H
slouken@1353
    69
#undef HAVE_SYS_TYPES_H
slouken@1352
    70
#undef HAVE_STDIO_H
slouken@1353
    71
#undef STDC_HEADERS
slouken@1352
    72
#undef HAVE_STDLIB_H
slouken@1353
    73
#undef HAVE_STDARG_H
slouken@1352
    74
#undef HAVE_MALLOC_H
slouken@1353
    75
#undef HAVE_MEMORY_H
slouken@1352
    76
#undef HAVE_STRING_H
slouken@1353
    77
#undef HAVE_STRINGS_H
slouken@1353
    78
#undef HAVE_INTTYPES_H
slouken@1353
    79
#undef HAVE_STDINT_H
slouken@1352
    80
#undef HAVE_CTYPE_H
slouken@1361
    81
#undef HAVE_MATH_H
slouken@1501
    82
#undef HAVE_ICONV_H
slouken@1352
    83
#undef HAVE_SIGNAL_H
slouken@1361
    84
#undef HAVE_ALTIVEC_H
slouken@1341
    85
slouken@1353
    86
/* C library functions */
slouken@1352
    87
#undef HAVE_MALLOC
slouken@1352
    88
#undef HAVE_CALLOC
slouken@1352
    89
#undef HAVE_REALLOC
slouken@1352
    90
#undef HAVE_FREE
slouken@1352
    91
#undef HAVE_ALLOCA
slouken@1352
    92
#ifndef _WIN32 /* Don't use C runtime versions of these on Windows */
slouken@1352
    93
#undef HAVE_GETENV
icculus@3581
    94
#undef HAVE_SETENV
slouken@1352
    95
#undef HAVE_PUTENV
slouken@1352
    96
#undef HAVE_UNSETENV
slouken@1352
    97
#endif
slouken@1352
    98
#undef HAVE_QSORT
slouken@1341
    99
#undef HAVE_ABS
slouken@1353
   100
#undef HAVE_BCOPY
slouken@1352
   101
#undef HAVE_MEMSET
slouken@1352
   102
#undef HAVE_MEMCPY
slouken@1352
   103
#undef HAVE_MEMMOVE
slouken@1352
   104
#undef HAVE_MEMCMP
slouken@1352
   105
#undef HAVE_STRLEN
slouken@1379
   106
#undef HAVE_STRLCPY
slouken@1379
   107
#undef HAVE_STRLCAT
slouken@1352
   108
#undef HAVE_STRDUP
slouken@1352
   109
#undef HAVE__STRREV
slouken@1352
   110
#undef HAVE__STRUPR
slouken@1352
   111
#undef HAVE__STRLWR
slouken@1353
   112
#undef HAVE_INDEX
slouken@1353
   113
#undef HAVE_RINDEX
slouken@1352
   114
#undef HAVE_STRCHR
slouken@1352
   115
#undef HAVE_STRRCHR
slouken@1352
   116
#undef HAVE_STRSTR
slouken@1352
   117
#undef HAVE_ITOA
slouken@1352
   118
#undef HAVE__LTOA
slouken@1352
   119
#undef HAVE__UITOA
slouken@1352
   120
#undef HAVE__ULTOA
slouken@1352
   121
#undef HAVE_STRTOL
slouken@1461
   122
#undef HAVE_STRTOUL
slouken@1352
   123
#undef HAVE__I64TOA
slouken@1352
   124
#undef HAVE__UI64TOA
slouken@1352
   125
#undef HAVE_STRTOLL
slouken@1461
   126
#undef HAVE_STRTOULL
slouken@1352
   127
#undef HAVE_STRTOD
slouken@1352
   128
#undef HAVE_ATOI
slouken@1341
   129
#undef HAVE_ATOF
slouken@1352
   130
#undef HAVE_STRCMP
slouken@1352
   131
#undef HAVE_STRNCMP
slouken@1510
   132
#undef HAVE__STRICMP
slouken@1352
   133
#undef HAVE_STRCASECMP
slouken@1512
   134
#undef HAVE__STRNICMP
slouken@1501
   135
#undef HAVE_STRNCASECMP
slouken@1352
   136
#undef HAVE_SSCANF
slouken@1341
   137
#undef HAVE_SNPRINTF
slouken@1341
   138
#undef HAVE_VSNPRINTF
slouken@3012
   139
#undef HAVE_M_PI
slouken@4873
   140
#undef HAVE_ATAN
slouken@4870
   141
#undef HAVE_ATAN2
slouken@3032
   142
#undef HAVE_CEIL
slouken@3012
   143
#undef HAVE_COPYSIGN
slouken@3012
   144
#undef HAVE_COS
slouken@3012
   145
#undef HAVE_COSF
slouken@3012
   146
#undef HAVE_FABS
slouken@3012
   147
#undef HAVE_FLOOR
slouken@3012
   148
#undef HAVE_LOG
slouken@3012
   149
#undef HAVE_POW
slouken@3012
   150
#undef HAVE_SCALBN
slouken@3012
   151
#undef HAVE_SIN
slouken@3012
   152
#undef HAVE_SINF
slouken@3012
   153
#undef HAVE_SQRT
slouken@1361
   154
#undef HAVE_SIGACTION
slouken@1361
   155
#undef HAVE_SETJMP
slouken@1361
   156
#undef HAVE_NANOSLEEP
slouken@3586
   157
#undef HAVE_SYSCONF
slouken@3579
   158
#undef HAVE_SYSCTLBYNAME
slouken@1361
   159
#undef HAVE_CLOCK_GETTIME
icculus@2093
   160
#undef HAVE_GETPAGESIZE
slouken@3405
   161
#undef HAVE_MPROTECT
slouken@1341
   162
slouken@1361
   163
#else
slouken@1361
   164
/* We may need some replacement for stdarg.h here */
slouken@1361
   165
#include <stdarg.h>
slouken@1341
   166
#endif /* HAVE_LIBC */
slouken@1341
   167
slouken@3647
   168
/* SDL internal assertion support */
slouken@3649
   169
#undef SDL_DEFAULT_ASSERT_LEVEL
slouken@3647
   170
slouken@1353
   171
/* Allow disabling of core subsystems */
slouken@1361
   172
#undef SDL_AUDIO_DISABLED
slouken@1361
   173
#undef SDL_CPUINFO_DISABLED
slouken@1361
   174
#undef SDL_EVENTS_DISABLED
slouken@1361
   175
#undef SDL_FILE_DISABLED
slouken@1361
   176
#undef SDL_JOYSTICK_DISABLED
slouken@2713
   177
#undef SDL_HAPTIC_DISABLED
slouken@1361
   178
#undef SDL_LOADSO_DISABLED
slouken@1361
   179
#undef SDL_THREADS_DISABLED
slouken@1361
   180
#undef SDL_TIMERS_DISABLED
slouken@1361
   181
#undef SDL_VIDEO_DISABLED
icculus@3170
   182
#undef SDL_POWER_DISABLED
slouken@1361
   183
slouken@1361
   184
/* Enable various audio drivers */
slouken@1361
   185
#undef SDL_AUDIO_DRIVER_ALSA
slouken@1361
   186
#undef SDL_AUDIO_DRIVER_ALSA_DYNAMIC
slouken@1361
   187
#undef SDL_AUDIO_DRIVER_ARTS
slouken@1361
   188
#undef SDL_AUDIO_DRIVER_ARTS_DYNAMIC
icculus@2271
   189
#undef SDL_AUDIO_DRIVER_PULSEAUDIO
icculus@2271
   190
#undef SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC
icculus@2049
   191
#undef SDL_AUDIO_DRIVER_BEOSAUDIO
slouken@1568
   192
#undef SDL_AUDIO_DRIVER_BSD
slouken@1361
   193
#undef SDL_AUDIO_DRIVER_COREAUDIO
slouken@1361
   194
#undef SDL_AUDIO_DRIVER_DISK
icculus@1532
   195
#undef SDL_AUDIO_DRIVER_DUMMY
slouken@1361
   196
#undef SDL_AUDIO_DRIVER_DMEDIA
slouken@1361
   197
#undef SDL_AUDIO_DRIVER_DSOUND
slouken@1361
   198
#undef SDL_AUDIO_DRIVER_ESD
slouken@1361
   199
#undef SDL_AUDIO_DRIVER_ESD_DYNAMIC
slouken@1361
   200
#undef SDL_AUDIO_DRIVER_MMEAUDIO
slouken@1361
   201
#undef SDL_AUDIO_DRIVER_NAS
icculus@2049
   202
#undef SDL_AUDIO_DRIVER_NAS_DYNAMIC
slouken@2735
   203
#undef SDL_AUDIO_DRIVER_NDS
slouken@1361
   204
#undef SDL_AUDIO_DRIVER_OSS
slouken@1361
   205
#undef SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H
icculus@2049
   206
#undef SDL_AUDIO_DRIVER_PAUDIO
slouken@3099
   207
#undef SDL_AUDIO_DRIVER_QSA
slouken@1361
   208
#undef SDL_AUDIO_DRIVER_SUNAUDIO
icculus@2070
   209
#undef SDL_AUDIO_DRIVER_WINWAVEOUT
slouken@2947
   210
#undef SDL_AUDIO_DRIVER_FUSIONSOUND
slouken@2947
   211
#undef SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC
slouken@1361
   212
slouken@1361
   213
/* Enable various input drivers */
icculus@2276
   214
#undef SDL_INPUT_LINUXEV
slouken@1361
   215
#undef SDL_INPUT_TSLIB
slouken@1361
   216
#undef SDL_JOYSTICK_BEOS
slouken@1895
   217
#undef SDL_JOYSTICK_DINPUT
slouken@1361
   218
#undef SDL_JOYSTICK_DUMMY
slouken@1361
   219
#undef SDL_JOYSTICK_IOKIT
slouken@1361
   220
#undef SDL_JOYSTICK_LINUX
slouken@2735
   221
#undef SDL_JOYSTICK_NDS
slouken@1361
   222
#undef SDL_JOYSTICK_RISCOS
slouken@1361
   223
#undef SDL_JOYSTICK_WINMM
slouken@1361
   224
#undef SDL_JOYSTICK_USBHID
slouken@1565
   225
#undef SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H
slouken@2713
   226
#undef SDL_HAPTIC_DUMMY
slouken@2713
   227
#undef SDL_HAPTIC_LINUX
slouken@2713
   228
#undef SDL_HAPTIC_IOKIT
slouken@2713
   229
#undef SDL_HAPTIC_DINPUT
slouken@1361
   230
slouken@1361
   231
/* Enable various shared object loading systems */
slouken@1361
   232
#undef SDL_LOADSO_BEOS
slouken@1361
   233
#undef SDL_LOADSO_DLCOMPAT
slouken@1361
   234
#undef SDL_LOADSO_DLOPEN
slouken@1635
   235
#undef SDL_LOADSO_DUMMY
slouken@1361
   236
#undef SDL_LOADSO_LDG
slouken@1361
   237
#undef SDL_LOADSO_WIN32
slouken@1361
   238
slouken@1361
   239
/* Enable various threading systems */
slouken@1361
   240
#undef SDL_THREAD_BEOS
slouken@2735
   241
#undef SDL_THREAD_NDS
slouken@1361
   242
#undef SDL_THREAD_PTHREAD
slouken@1361
   243
#undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX
slouken@1361
   244
#undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP
slouken@1361
   245
#undef SDL_THREAD_SPROC
slouken@1361
   246
#undef SDL_THREAD_WIN32
slouken@1361
   247
slouken@1361
   248
/* Enable various timer systems */
slouken@1361
   249
#undef SDL_TIMER_BEOS
slouken@1635
   250
#undef SDL_TIMER_DUMMY
slouken@2735
   251
#undef SDL_TIMER_NDS
slouken@1361
   252
#undef SDL_TIMER_RISCOS
slouken@1361
   253
#undef SDL_TIMER_UNIX
slouken@1361
   254
#undef SDL_TIMER_WIN32
slouken@1361
   255
#undef SDL_TIMER_WINCE
slouken@1361
   256
slouken@1361
   257
/* Enable various video drivers */
slouken@1361
   258
#undef SDL_VIDEO_DRIVER_BWINDOW
slouken@1931
   259
#undef SDL_VIDEO_DRIVER_COCOA
slouken@1361
   260
#undef SDL_VIDEO_DRIVER_DIRECTFB
slouken@2998
   261
#undef SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC
slouken@1361
   262
#undef SDL_VIDEO_DRIVER_DUMMY
slouken@1361
   263
#undef SDL_VIDEO_DRIVER_FBCON
slouken@2735
   264
#undef SDL_VIDEO_DRIVER_NDS
slouken@1361
   265
#undef SDL_VIDEO_DRIVER_PHOTON
slouken@3083
   266
#undef SDL_VIDEO_DRIVER_QNXGF
slouken@3257
   267
#undef SDL_VIDEO_DRIVER_PS3
slouken@1361
   268
#undef SDL_VIDEO_DRIVER_RISCOS
slouken@1361
   269
#undef SDL_VIDEO_DRIVER_SVGALIB
slouken@1895
   270
#undef SDL_VIDEO_DRIVER_WIN32
slouken@1361
   271
#undef SDL_VIDEO_DRIVER_X11
slouken@1361
   272
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC
slouken@1361
   273
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT
icculus@1589
   274
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR
icculus@1589
   275
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRENDER
icculus@2763
   276
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT
slouken@3025
   277
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS
sunnysachanandani@4604
   278
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XDAMAGE
sunnysachanandani@4604
   279
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XFIXES
slouken@1361
   280
#undef SDL_VIDEO_DRIVER_X11_VIDMODE
slouken@1361
   281
#undef SDL_VIDEO_DRIVER_X11_XINERAMA
icculus@1589
   282
#undef SDL_VIDEO_DRIVER_X11_XRANDR
icculus@2763
   283
#undef SDL_VIDEO_DRIVER_X11_XINPUT
slouken@3025
   284
#undef SDL_VIDEO_DRIVER_X11_SCRNSAVER
slouken@1361
   285
#undef SDL_VIDEO_DRIVER_X11_XV
sunnysachanandani@4570
   286
#undef SDL_VIDEO_DRIVER_X11_XRENDER
sunnysachanandani@4604
   287
#undef SDL_VIDEO_DRIVER_X11_XDAMAGE
sunnysachanandani@4604
   288
#undef SDL_VIDEO_DRIVER_X11_XFIXES
icculus@4793
   289
#undef SDL_VIDEO_DRIVER_X11_XSHAPE
slouken@1361
   290
slouken@1895
   291
#undef SDL_VIDEO_RENDER_D3D
slouken@1895
   292
#undef SDL_VIDEO_RENDER_GDI
slouken@1895
   293
#undef SDL_VIDEO_RENDER_OGL
slouken@3087
   294
#undef SDL_VIDEO_RENDER_OGL_ES
slouken@2810
   295
#undef SDL_VIDEO_RENDER_X11
slouken@3168
   296
#undef SDL_VIDEO_RENDER_GAPI
slouken@3168
   297
#undef SDL_VIDEO_RENDER_DDRAW
slouken@1895
   298
slouken@1361
   299
/* Enable OpenGL support */
slouken@1361
   300
#undef SDL_VIDEO_OPENGL
slouken@3087
   301
#undef SDL_VIDEO_OPENGL_ES
slouken@1952
   302
#undef SDL_VIDEO_OPENGL_BGL
slouken@1952
   303
#undef SDL_VIDEO_OPENGL_CGL
slouken@1361
   304
#undef SDL_VIDEO_OPENGL_GLX
slouken@1361
   305
#undef SDL_VIDEO_OPENGL_WGL
slouken@1361
   306
#undef SDL_VIDEO_OPENGL_OSMESA
slouken@1361
   307
#undef SDL_VIDEO_OPENGL_OSMESA_DYNAMIC
slouken@1361
   308
icculus@3170
   309
/* Enable system power support */
icculus@3170
   310
#undef SDL_POWER_LINUX
icculus@3170
   311
#undef SDL_POWER_WINDOWS
icculus@3170
   312
#undef SDL_POWER_MACOSX
icculus@3173
   313
#undef SDL_POWER_BEOS
icculus@3170
   314
#undef SDL_POWER_NINTENDODS
icculus@3170
   315
#undef SDL_POWER_HARDWIRED
icculus@3170
   316
slouken@1402
   317
/* Enable assembly routines */
slouken@1402
   318
#undef SDL_ASSEMBLY_ROUTINES
slouken@1361
   319
#undef SDL_ALTIVEC_BLITTERS
slouken@1353
   320
slouken@1341
   321
#endif /* _SDL_config_h */