configure.in
author Sam Lantinga <slouken@libsdl.org>
Sun, 08 Jan 2012 02:23:37 -0500
changeset 6188 e82023802002
parent 6116 66f48d6bf735
child 6217 6952b11b7f46
permissions -rw-r--r--
Fixed bug 1242 - PATCH: Improve support for OpenGL ES under X11

Scott Percival 2011-07-03 06:41:51 PDT

This submission is aimed at making life easier for OpenGL ES capable devices
running a X11 stack (e.g. Maemo, Meego, TrimSlice, other ARM SoC boards not
running Android). SDL's Pandora support already has the neccesary GLES-to-X11
glue code, however it's all ghetto'd off in Makefile.pandora and not very
flexible.

The patch:
- adds an awesome --enable-video-opengles option to configure
- re-modifies the opengles and opengles2 SDL_renderers to use function pointers
- no idea why this was removed?
- for SDL_Renderers, links in libGLESv1_CM, libGLES_CM (for PowerVR fans) or
libGLESv2 at runtime
- links in libEGL.so at runtime - the old code made an assumption that
eglFunctions could be pulled from the active GLES library, PowerVR for one
doesn't let you do that with their libGLESv2
- allows you to pick which of GLES v1 or v2 to load via
SDL_GL_CONTEXT_MAJOR_VERSION

So far I've tested this on a Nokia N900 (OMAP 3430/SGX 530 running Maemo 5) and
a Toshiba AC100 (Tegra 2 running Ubuntu 10.10). I haven't tested it on... well,
everything that isn't those two, such as a Pandora, iOS or Android device. The
Pandora specific code should be kept intact (fingers crossed), and nothing
painfully drastic has been added to the SDL_renderers. The library loading
sequence in SDL_x11opengles has been updated to accomodate both NVIDIA's
propensity to let developers get away with murder and PowerVR's alternative of
punishing every missed step.

The test apps work okay with GLES or GLES2 as the renderer. For some reason
alpha blending doesn't seem to work on the Tegra 2; last week NVIDIA pushed out
a new set of X11 GLES drivers, so I'll try and investigate once I upgrade
those. Also, this patch adds things to configure.in, include/SDL_config.h.in
and test/configure.in. I didn't know what the policy was re. committing
generated spaghetti from autotools, so ./autogen.sh has to be run again. Sorry.

I think that's about everything, let me know if there's anything I've
overlooked.
     1 dnl Process this file with autoconf to produce a configure script.
     2 AC_INIT(README)
     3 AC_CONFIG_HEADER(include/SDL_config.h)
     4 AC_GNU_SOURCE
     5 AC_CONFIG_AUX_DIR(build-scripts)
     6 AC_CONFIG_MACRO_DIR([acinclude])
     7 
     8 dnl Save the CFLAGS to see whether they were passed in or generated
     9 orig_CFLAGS="$CFLAGS"
    10 
    11 dnl Set various version strings - taken gratefully from the GTk sources
    12 #
    13 # Making releases:
    14 # Edit include/SDL/SDL_version.h and change the version, then:
    15 #   SDL_MICRO_VERSION += 1;
    16 #   SDL_INTERFACE_AGE += 1;
    17 #   SDL_BINARY_AGE += 1;
    18 # if any functions have been added, set SDL_INTERFACE_AGE to 0.
    19 # if backwards compatibility has been broken,
    20 # set SDL_BINARY_AGE and SDL_INTERFACE_AGE to 0.
    21 #
    22 SDL_MAJOR_VERSION=1
    23 SDL_MINOR_VERSION=3
    24 SDL_MICRO_VERSION=0
    25 SDL_INTERFACE_AGE=0
    26 SDL_BINARY_AGE=0
    27 SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
    28 
    29 AC_SUBST(SDL_MAJOR_VERSION)
    30 AC_SUBST(SDL_MINOR_VERSION)
    31 AC_SUBST(SDL_MICRO_VERSION)
    32 AC_SUBST(SDL_INTERFACE_AGE)
    33 AC_SUBST(SDL_BINARY_AGE)
    34 AC_SUBST(SDL_VERSION)
    35 
    36 # libtool versioning
    37 LT_INIT([win32-dll])
    38 
    39 LT_RELEASE=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION
    40 LT_CURRENT=`expr $SDL_MICRO_VERSION - $SDL_INTERFACE_AGE`
    41 LT_REVISION=$SDL_INTERFACE_AGE
    42 LT_AGE=`expr $SDL_BINARY_AGE - $SDL_INTERFACE_AGE`
    43 m4_pattern_allow([^LT_])
    44 
    45 AC_SUBST(LT_RELEASE)
    46 AC_SUBST(LT_CURRENT)
    47 AC_SUBST(LT_REVISION)
    48 AC_SUBST(LT_AGE)
    49 
    50 dnl Detect the canonical build and host environments
    51 dnl AC_CANONICAL_HOST
    52 
    53 dnl Check for tools
    54 AC_PROG_LIBTOOL
    55 AC_PROG_CC
    56 AC_PROG_CXX
    57 AC_PROG_INSTALL
    58 AC_PROG_MAKE_SET
    59 AC_CHECK_TOOL(WINDRES, [windres], [:])
    60 
    61 dnl Set up the compiler and linker flags
    62 INCLUDE="-I$srcdir/include"
    63 if test x$srcdir != x.; then
    64     # Remove SDL_config.h from the source directory, since it's the
    65     # default one, and we want to include the one that we generate.
    66     if test -f $srcdir/include/SDL_config.h; then
    67         rm $srcdir/include/SDL_config.h
    68     fi
    69     INCLUDE="-Iinclude $INCLUDE"
    70 fi
    71 case "$host" in
    72     *-*-cygwin*)
    73         # We build SDL on cygwin without the UNIX emulation layer
    74         BASE_CFLAGS="-I/usr/include/mingw -mno-cygwin"
    75         BASE_LDFLAGS="-mno-cygwin"
    76         ;;
    77     *)
    78         BASE_CFLAGS=""
    79         BASE_LDFLAGS=""
    80         ;;
    81 esac
    82 # Uncomment the following line if you want to force SDL and applications
    83 # built with it to be compiled for a particular architecture.
    84 #AX_GCC_ARCHFLAG([no], [BASE_CFLAGS="$BASE_CFLAGS $ax_cv_gcc_archflag]")
    85 BUILD_CFLAGS="$CFLAGS $CPPFLAGS"
    86 # The default optimization for SDL 1.3 is -O3 (Bug #31)
    87 if test x$orig_CFLAGS = x; then
    88     BUILD_CFLAGS=`echo $BUILD_CFLAGS | sed 's/-O2/-O3/'`
    89 fi
    90 EXTRA_CFLAGS="$INCLUDE $BASE_CFLAGS"
    91 BUILD_LDFLAGS="$LDFLAGS"
    92 EXTRA_LDFLAGS="$BASE_LDFLAGS"
    93 ## These are common directories to find software packages
    94 #for path in /usr/freeware /usr/pkg /usr/X11R6 /usr/local; do
    95 #    if test -d $path/include; then
    96 #        EXTRA_CFLAGS="$EXTRA_CFLAGS -I$path/include"
    97 #    fi
    98 #    if test -d $path/lib; then
    99 #        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -L$path/lib"
   100 #    fi
   101 #done
   102 SDL_CFLAGS="$BASE_CFLAGS"
   103 SDL_LIBS="-lSDL $BASE_LDFLAGS"
   104 CPPFLAGS="$CPPFLAGS $EXTRA_CFLAGS"
   105 CFLAGS="$CFLAGS $EXTRA_CFLAGS"
   106 LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS"
   107 
   108 dnl set this to use on systems that use lib64 instead of lib
   109 base_libdir=`echo \${libdir} | sed 's/.*\/\(.*\)/\1/; q'`
   110 
   111 dnl Function to find a library in the compiler search path
   112 find_lib()
   113 {
   114     gcc_bin_path=[`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
   115     gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
   116     env_lib_path=[`echo $LIBS $LDFLAGS $* | sed 's/-L[ ]*//g'`]
   117     if test "$cross_compiling" = yes; then
   118         host_lib_path=""
   119     else
   120         host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
   121     fi
   122     for path in $gcc_bin_path $gcc_lib_path $env_lib_path $host_lib_path; do
   123         lib=[`ls -- $path/$1 2>/dev/null | sort | sed 's/.*\/\(.*\)/\1/; q'`]
   124         if test x$lib != x; then
   125             echo $lib
   126             return
   127         fi
   128     done
   129 }
   130 
   131 dnl Check for compiler characteristics
   132 AC_C_CONST
   133 AC_C_INLINE
   134 AC_C_VOLATILE
   135 
   136 dnl See whether we want assertions for debugging/sanity checking SDL itself.
   137 AC_ARG_ENABLE(assertions,
   138 AC_HELP_STRING([--enable-assertions],
   139                [Enable internal sanity checks (auto/disabled/release/enabled/paranoid) [[default=auto]]]),
   140               , enable_assertions=auto)
   141 case "$enable_assertions" in
   142     auto) # Use optimization settings to determine assertion level
   143         ;;
   144     disabled)
   145         AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 0, [ ])
   146         ;;
   147     release)
   148         AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 1, [ ])
   149         ;;
   150     enabled)
   151         AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 2, [ ])
   152         ;;
   153     paranoid)
   154         AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 3, [ ])
   155         ;;
   156     *)
   157         AC_MSG_ERROR([*** unknown assertion level. stop.])
   158         ;;
   159 esac
   160 
   161 dnl See whether we can use gcc style dependency tracking
   162 AC_ARG_ENABLE(dependency-tracking,
   163 AC_HELP_STRING([--enable-dependency-tracking],
   164                [Use gcc -MMD -MT dependency tracking [[default=yes]]]),
   165               , enable_dependency_tracking=yes)
   166 if test x$enable_dependency_tracking = xyes; then
   167     have_gcc_mmd_mt=no
   168     AC_MSG_CHECKING(for GCC -MMD -MT option)
   169     AC_TRY_COMPILE([
   170     #if !defined(__GNUC__) || __GNUC__ < 3
   171     #error Dependency tracking requires GCC 3.0 or newer
   172     #endif
   173     ],[
   174     ],[
   175     have_gcc_mmd_mt=yes
   176     ])
   177     AC_MSG_RESULT($have_gcc_mmd_mt)
   178 
   179     if test x$have_gcc_mmd_mt = xyes; then
   180         DEPENDENCY_TRACKING_OPTIONS="-MMD -MT \$@"
   181     fi
   182 fi
   183 
   184 dnl See whether we are allowed to use the system C library
   185 AC_ARG_ENABLE(libc,
   186 AC_HELP_STRING([--enable-libc], [Use the system C library [[default=yes]]]),
   187               , enable_libc=yes)
   188 if test x$enable_libc = xyes; then
   189     AC_DEFINE(HAVE_LIBC, 1, [ ])
   190 
   191     dnl Check for C library headers
   192     AC_HEADER_STDC
   193     AC_CHECK_HEADERS(sys/types.h stdio.h stdlib.h stddef.h stdarg.h malloc.h memory.h string.h strings.h inttypes.h stdint.h ctype.h math.h iconv.h signal.h)
   194 
   195     dnl Check for typedefs, structures, etc.
   196     AC_TYPE_SIZE_T
   197 
   198     dnl Check for defines
   199     AC_CHECK_DEFINE(M_PI, math.h)
   200 
   201     dnl Checks for library functions.
   202     case "$host" in
   203     *-*-cygwin* | *-*-mingw32*)
   204         ;;
   205     *)
   206         AC_FUNC_ALLOCA
   207         ;;
   208     esac
   209 
   210     AC_FUNC_MEMCMP
   211     if test x$ac_cv_func_memcmp_working = xyes; then
   212         AC_DEFINE(HAVE_MEMCMP, 1, [ ])
   213     fi
   214     AC_FUNC_STRTOD
   215     if test x$ac_cv_func_strtod = xyes; then
   216         AC_DEFINE(HAVE_STRTOD, 1, [ ])
   217     fi
   218     AC_CHECK_FUNC(mprotect,
   219         AC_TRY_COMPILE([
   220           #include <sys/types.h>
   221           #include <sys/mman.h>
   222         ],[
   223         ],[
   224         AC_DEFINE(HAVE_MPROTECT, 1, [ ])
   225         ]),
   226     )
   227     AC_CHECK_FUNCS(malloc calloc realloc free getenv setenv putenv unsetenv qsort abs bcopy memset memcpy memmove strlen strlcpy strlcat strdup _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp sscanf snprintf vsnprintf sigaction setjmp nanosleep sysconf sysctlbyname)
   228 
   229     AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"])
   230     AC_CHECK_FUNCS(atan atan2 ceil copysign cos cosf fabs floor log pow scalbn sin sinf sqrt)
   231 
   232     AC_CHECK_LIB(iconv, iconv_open, [LIBS="$LIBS -liconv"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -liconv"])
   233     AC_CHECK_FUNCS(iconv)
   234 
   235     AC_CHECK_MEMBER(struct sigaction.sa_sigaction,[AC_DEFINE(HAVE_SA_SIGACTION)], ,[#include <signal.h>])
   236 fi
   237 
   238 AC_CHECK_SIZEOF(void*)
   239 
   240 dnl See whether we can use gcc atomic operations on this architecture
   241 AC_ARG_ENABLE(gcc-atomics,
   242 AC_HELP_STRING([--enable-gcc-atomics],
   243                [Use gcc builtin atomics [[default=yes]]]),
   244               , enable_gcc_atomics=yes)
   245 if test x$enable_gcc_atomics = xyes; then
   246     have_gcc_atomics=no
   247     AC_MSG_CHECKING(for GCC builtin atomic operations)
   248     AC_TRY_LINK([
   249     ],[
   250     int a;
   251     void *x, *y, *z;
   252     __sync_lock_test_and_set(&a, 4);
   253     __sync_lock_test_and_set(&x, y);
   254     __sync_fetch_and_add(&a, 1);
   255     __sync_bool_compare_and_swap(&a, 5, 10);
   256     __sync_bool_compare_and_swap(&x, y, z);
   257     ],[
   258     have_gcc_atomics=yes
   259     ])
   260     AC_MSG_RESULT($have_gcc_atomics)
   261 
   262     if test x$have_gcc_atomics = xyes; then
   263         AC_DEFINE(HAVE_GCC_ATOMICS, 1, [ ])
   264     else
   265         # See if we have the minimum operation needed for GCC atomics
   266         AC_TRY_LINK([
   267         ],[
   268         int a;
   269         __sync_lock_test_and_set(&a, 1);
   270         __sync_lock_release(&a);
   271         ],[
   272         have_gcc_sync_lock_test_and_set=yes
   273         ])
   274         if test x$have_gcc_sync_lock_test_and_set = xyes; then
   275             AC_DEFINE(HAVE_GCC_SYNC_LOCK_TEST_AND_SET, 1, [ ])
   276         fi
   277     fi
   278 fi
   279 
   280 # Standard C sources
   281 SOURCES="$SOURCES $srcdir/src/*.c"
   282 SOURCES="$SOURCES $srcdir/src/atomic/*.c"
   283 SOURCES="$SOURCES $srcdir/src/audio/*.c"
   284 SOURCES="$SOURCES $srcdir/src/cpuinfo/*.c"
   285 SOURCES="$SOURCES $srcdir/src/events/*.c"
   286 SOURCES="$SOURCES $srcdir/src/file/*.c"
   287 SOURCES="$SOURCES $srcdir/src/render/*.c"
   288 SOURCES="$SOURCES $srcdir/src/render/*/*.c"
   289 SOURCES="$SOURCES $srcdir/src/stdlib/*.c"
   290 SOURCES="$SOURCES $srcdir/src/thread/*.c"
   291 SOURCES="$SOURCES $srcdir/src/timer/*.c"
   292 SOURCES="$SOURCES $srcdir/src/video/*.c"
   293 
   294 dnl Enable/disable various subsystems of the SDL library
   295 
   296 AC_ARG_ENABLE(atomic,
   297 AC_HELP_STRING([--enable-atomic], [Enable the atomic operations subsystem [[default=yes]]]),
   298               , enable_atomic=yes)
   299 if test x$enable_atomic != xyes; then
   300     AC_DEFINE(SDL_ATOMIC_DISABLED, 1, [ ])
   301 fi
   302 AC_ARG_ENABLE(audio,
   303 AC_HELP_STRING([--enable-audio], [Enable the audio subsystem [[default=yes]]]),
   304               , enable_audio=yes)
   305 if test x$enable_audio != xyes; then
   306     AC_DEFINE(SDL_AUDIO_DISABLED, 1, [ ])
   307 fi
   308 AC_ARG_ENABLE(video,
   309 AC_HELP_STRING([--enable-video], [Enable the video subsystem [[default=yes]]]),
   310               , enable_video=yes)
   311 if test x$enable_video != xyes; then
   312     AC_DEFINE(SDL_VIDEO_DISABLED, 1, [ ])
   313 fi
   314 AC_ARG_ENABLE(render,
   315 AC_HELP_STRING([--enable-render], [Enable the render subsystem [[default=yes]]]),
   316               , enable_render=yes)
   317 if test x$enable_render != xyes; then
   318     AC_DEFINE(SDL_RENDER_DISABLED, 1, [ ])
   319 fi
   320 AC_ARG_ENABLE(events,
   321 AC_HELP_STRING([--enable-events], [Enable the events subsystem [[default=yes]]]),
   322               , enable_events=yes)
   323 if test x$enable_events != xyes; then
   324     AC_DEFINE(SDL_EVENTS_DISABLED, 1, [ ])
   325 fi
   326 AC_ARG_ENABLE(joystick,
   327 AC_HELP_STRING([--enable-joystick], [Enable the joystick subsystem [[default=yes]]]),
   328               , enable_joystick=yes)
   329 if test x$enable_joystick != xyes; then
   330     AC_DEFINE(SDL_JOYSTICK_DISABLED, 1, [ ])
   331 else
   332     SOURCES="$SOURCES $srcdir/src/joystick/*.c"
   333 fi
   334 AC_ARG_ENABLE(haptic,
   335 AC_HELP_STRING([--enable-haptic], [Enable the haptic (force feedback) subsystem [[default=yes]]]),
   336               , enable_haptic=yes)
   337 if test x$enable_haptic != xyes; then
   338     AC_DEFINE(SDL_HAPTIC_DISABLED, 1, [ ])
   339 else
   340     SOURCES="$SOURCES $srcdir/src/haptic/*.c"
   341 fi
   342 AC_ARG_ENABLE(power,
   343 AC_HELP_STRING([--enable-power], [Enable the power subsystem [[default=yes]]]),
   344               , enable_power=yes)
   345 if test x$enable_power != xyes; then
   346     AC_DEFINE(SDL_POWER_DISABLED, 1, [ ])
   347 else
   348     SOURCES="$SOURCES $srcdir/src/power/*.c"
   349 fi
   350 AC_ARG_ENABLE(threads,
   351 AC_HELP_STRING([--enable-threads], [Enable the threading subsystem [[default=yes]]]),
   352               , enable_threads=yes)
   353 if test x$enable_threads != xyes; then
   354     AC_DEFINE(SDL_THREADS_DISABLED, 1, [ ])
   355 fi
   356 AC_ARG_ENABLE(timers,
   357 AC_HELP_STRING([--enable-timers], [Enable the timer subsystem [[default=yes]]]),
   358               , enable_timers=yes)
   359 if test x$enable_timers != xyes; then
   360     AC_DEFINE(SDL_TIMERS_DISABLED, 1, [ ])
   361 fi
   362 AC_ARG_ENABLE(file,
   363 AC_HELP_STRING([--enable-file], [Enable the file subsystem [[default=yes]]]),
   364               , enable_file=yes)
   365 if test x$enable_file != xyes; then
   366     AC_DEFINE(SDL_FILE_DISABLED, 1, [ ])
   367 fi
   368 AC_ARG_ENABLE(loadso,
   369 AC_HELP_STRING([--enable-loadso], [Enable the shared object loading subsystem [[default=yes]]]),
   370               , enable_loadso=yes)
   371 if test x$enable_loadso != xyes; then
   372     AC_DEFINE(SDL_LOADSO_DISABLED, 1, [ ])
   373 fi
   374 AC_ARG_ENABLE(cpuinfo,
   375 AC_HELP_STRING([--enable-cpuinfo], [Enable the cpuinfo subsystem [[default=yes]]]),
   376               , enable_cpuinfo=yes)
   377 if test x$enable_cpuinfo != xyes; then
   378     AC_DEFINE(SDL_CPUINFO_DISABLED, 1, [ ])
   379 fi
   380 AC_ARG_ENABLE(atomic,
   381 AC_HELP_STRING([--enable-atomic], [Enable the atomic operations [[default=yes]]]),
   382               , enable_atomic=yes)
   383 if test x$enable_atomic != xyes; then
   384     AC_DEFINE(SDL_ATOMIC_DISABLED, 1, [ ])
   385 fi
   386 AC_ARG_ENABLE(assembly,
   387 AC_HELP_STRING([--enable-assembly], [Enable assembly routines [[default=yes]]]),
   388               , enable_assembly=yes)
   389 if test x$enable_assembly = xyes; then
   390     AC_DEFINE(SDL_ASSEMBLY_ROUTINES, 1, [ ])
   391 
   392     # Make sure that we don't generate floating point code that would
   393     # cause illegal instruction exceptions on older processors
   394     case "$host" in
   395         *-*-darwin*)
   396             # Don't need to worry about Apple hardware, it's all SSE capable
   397             default_ssemath=yes
   398             ;;
   399         *64-*-*)
   400             # x86 64-bit architectures all have SSE instructions
   401             default_ssemath=yes
   402             ;;
   403         *)
   404             default_ssemath=no
   405             ;;
   406     esac
   407     AC_ARG_ENABLE(ssemath,
   408 AC_HELP_STRING([--enable-ssemath], [Allow GCC to use SSE floating point math [[default=no]]]),
   409                   , enable_ssemath=$default_ssemath)
   410     if test x$enable_ssemath = xno; then
   411         if test x$have_gcc_sse = xyes -o x$have_gcc_sse2 = xyes; then
   412             EXTRA_CFLAGS="$EXTRA_CFLAGS -mfpmath=387"
   413         fi
   414     fi
   415 
   416     dnl Check for various instruction support
   417     AC_ARG_ENABLE(mmx,
   418 AC_HELP_STRING([--enable-mmx], [use MMX assembly routines [[default=yes]]]),
   419                   , enable_mmx=yes)
   420     if test x$enable_mmx = xyes; then
   421         save_CFLAGS="$CFLAGS"
   422         have_gcc_mmx=no
   423         AC_MSG_CHECKING(for GCC -mmmx option)
   424         mmx_CFLAGS="-mmmx"
   425         CFLAGS="$save_CFLAGS $mmx_CFLAGS"
   426 
   427         AC_TRY_COMPILE([
   428         #ifdef __MINGW32__
   429         #include <_mingw.h>
   430         #ifdef __MINGW64_VERSION_MAJOR
   431         #include <intrin.h>
   432         #else
   433         #include <mmintrin.h>
   434         #endif
   435         #else
   436         #include <mmintrin.h>
   437         #endif
   438         #ifndef __MMX__
   439         #error Assembler CPP flag not enabled
   440         #endif
   441         ],[
   442         ],[
   443         have_gcc_mmx=yes
   444         ])
   445         AC_MSG_RESULT($have_gcc_mmx)
   446         CFLAGS="$save_CFLAGS"
   447 
   448         if test x$have_gcc_mmx = xyes; then
   449             EXTRA_CFLAGS="$EXTRA_CFLAGS $mmx_CFLAGS"
   450         fi
   451     fi
   452 
   453     AC_ARG_ENABLE(3dnow,
   454 AC_HELP_STRING([--enable-3dnow], [use MMX assembly routines [[default=yes]]]),
   455                   , enable_3dnow=yes)
   456     if test x$enable_3dnow = xyes; then
   457         save_CFLAGS="$CFLAGS"
   458         have_gcc_3dnow=no
   459         AC_MSG_CHECKING(for GCC -m3dnow option)
   460         amd3dnow_CFLAGS="-m3dnow"
   461         CFLAGS="$save_CFLAGS $amd3dnow_CFLAGS"
   462 
   463         AC_TRY_COMPILE([
   464         #include <mm3dnow.h>
   465         #ifndef __3dNOW__
   466         #error Assembler CPP flag not enabled
   467         #endif
   468         ],[
   469         ],[
   470         have_gcc_3dnow=yes
   471         ])
   472         AC_MSG_RESULT($have_gcc_3dnow)
   473         CFLAGS="$save_CFLAGS"
   474 
   475         if test x$have_gcc_3dnow = xyes; then
   476             EXTRA_CFLAGS="$EXTRA_CFLAGS $amd3dnow_CFLAGS"
   477         fi
   478     fi
   479 
   480     AC_ARG_ENABLE(sse,
   481 AC_HELP_STRING([--enable-sse], [use SSE assembly routines [[default=yes]]]),
   482                   , enable_sse=yes)
   483     if test x$enable_sse = xyes; then
   484         save_CFLAGS="$CFLAGS"
   485         have_gcc_sse=no
   486         AC_MSG_CHECKING(for GCC -msse option)
   487         sse_CFLAGS="-msse"
   488         CFLAGS="$save_CFLAGS $sse_CFLAGS"
   489 
   490         AC_TRY_COMPILE([
   491         #ifdef __MINGW32__
   492         #include <_mingw.h>
   493         #ifdef __MINGW64_VERSION_MAJOR
   494         #include <intrin.h>
   495         #else
   496         #include <xmmintrin.h>
   497         #endif
   498         #else
   499         #include <xmmintrin.h>
   500         #endif
   501         #ifndef __SSE__
   502         #error Assembler CPP flag not enabled
   503         #endif
   504         ],[
   505         ],[
   506         have_gcc_sse=yes
   507         ])
   508         AC_MSG_RESULT($have_gcc_sse)
   509         CFLAGS="$save_CFLAGS"
   510 
   511         if test x$have_gcc_sse = xyes; then
   512             EXTRA_CFLAGS="$EXTRA_CFLAGS $sse_CFLAGS"
   513         fi
   514     fi
   515 
   516     AC_ARG_ENABLE(sse2,
   517 AC_HELP_STRING([--enable-sse2], [use SSE2 assembly routines [[default=no]]]),
   518                   , enable_sse2=$default_ssemath)
   519     if test x$enable_sse2 = xyes; then
   520         save_CFLAGS="$CFLAGS"
   521         have_gcc_sse2=no
   522         AC_MSG_CHECKING(for GCC -msse2 option)
   523         sse2_CFLAGS="-msse2"
   524         CFLAGS="$save_CFLAGS $sse2_CFLAGS"
   525 
   526         AC_TRY_COMPILE([
   527         #ifdef __MINGW32__
   528         #include <_mingw.h>
   529         #ifdef __MINGW64_VERSION_MAJOR
   530         #include <intrin.h>
   531         #else
   532         #include <emmintrin.h>
   533         #endif
   534         #else
   535         #include <emmintrin.h>
   536         #endif
   537         #ifndef __SSE2__
   538         #error Assembler CPP flag not enabled
   539         #endif
   540         ],[
   541         ],[
   542         have_gcc_sse2=yes
   543         ])
   544         AC_MSG_RESULT($have_gcc_sse2)
   545         CFLAGS="$save_CFLAGS"
   546 
   547         if test x$have_gcc_sse2 = xyes; then
   548             EXTRA_CFLAGS="$EXTRA_CFLAGS $sse2_CFLAGS"
   549         fi
   550     fi
   551 
   552     AC_ARG_ENABLE(altivec,
   553 AC_HELP_STRING([--enable-altivec], [use Altivec assembly routines [[default=yes]]]),
   554                   , enable_altivec=yes)
   555     if test x$enable_altivec = xyes; then
   556         save_CFLAGS="$CFLAGS"
   557         have_gcc_altivec=no
   558         have_altivec_h_hdr=no
   559         altivec_CFLAGS="-maltivec"
   560         CFLAGS="$save_CFLAGS $altivec_CFLAGS"
   561 
   562         AC_MSG_CHECKING(for Altivec with GCC altivec.h and -maltivec option)
   563         AC_TRY_COMPILE([
   564         #include <altivec.h>
   565         vector unsigned int vzero() {
   566             return vec_splat_u32(0);
   567         }
   568         ],[
   569         ],[
   570         have_gcc_altivec=yes
   571         have_altivec_h_hdr=yes
   572         ])
   573         AC_MSG_RESULT($have_gcc_altivec)
   574 
   575         if test x$have_gcc_altivec = xno; then
   576             AC_MSG_CHECKING(for Altivec with GCC -maltivec option)
   577             AC_TRY_COMPILE([
   578             vector unsigned int vzero() {
   579                 return vec_splat_u32(0);
   580             }
   581             ],[
   582             ],[
   583             have_gcc_altivec=yes
   584             ])
   585             AC_MSG_RESULT($have_gcc_altivec)
   586         fi
   587 
   588         if test x$have_gcc_altivec = xno; then
   589             AC_MSG_CHECKING(for Altivec with GCC altivec.h and -faltivec option)
   590             altivec_CFLAGS="-faltivec"
   591             CFLAGS="$save_CFLAGS $altivec_CFLAGS"
   592             AC_TRY_COMPILE([
   593             #include <altivec.h>
   594             vector unsigned int vzero() {
   595                 return vec_splat_u32(0);
   596             }
   597             ],[
   598             ],[
   599             have_gcc_altivec=yes
   600             have_altivec_h_hdr=yes
   601             ])
   602             AC_MSG_RESULT($have_gcc_altivec)
   603         fi
   604 
   605         if test x$have_gcc_altivec = xno; then
   606             AC_MSG_CHECKING(for Altivec with GCC -faltivec option)
   607             AC_TRY_COMPILE([
   608             vector unsigned int vzero() {
   609                 return vec_splat_u32(0);
   610             }
   611             ],[
   612             ],[
   613             have_gcc_altivec=yes
   614             ])
   615             AC_MSG_RESULT($have_gcc_altivec)
   616         fi
   617         CFLAGS="$save_CFLAGS"
   618 
   619         if test x$have_gcc_altivec = xyes; then
   620             AC_DEFINE(SDL_ALTIVEC_BLITTERS, 1, [ ])
   621             if test x$have_altivec_h_hdr = xyes; then
   622               AC_DEFINE(HAVE_ALTIVEC_H, 1, [ ])
   623             fi
   624             EXTRA_CFLAGS="$EXTRA_CFLAGS $altivec_CFLAGS"
   625         fi
   626     fi
   627 fi
   628 
   629 dnl See if the OSS audio interface is supported
   630 CheckOSS()
   631 {
   632     AC_ARG_ENABLE(oss,
   633 AC_HELP_STRING([--enable-oss], [support the OSS audio API [[default=yes]]]),
   634                   , enable_oss=yes)
   635     if test x$enable_audio = xyes -a x$enable_oss = xyes; then
   636         AC_MSG_CHECKING(for OSS audio support)
   637         have_oss=no
   638         if test x$have_oss != xyes; then
   639             AC_TRY_COMPILE([
   640               #include <sys/soundcard.h>
   641             ],[
   642               int arg = SNDCTL_DSP_SETFRAGMENT;
   643             ],[
   644             have_oss=yes
   645             ])
   646         fi
   647         if test x$have_oss != xyes; then
   648             AC_TRY_COMPILE([
   649               #include <soundcard.h>
   650             ],[
   651               int arg = SNDCTL_DSP_SETFRAGMENT;
   652             ],[
   653             have_oss=yes
   654             AC_DEFINE(SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H, 1, [ ])
   655             ])
   656         fi
   657         AC_MSG_RESULT($have_oss)
   658         if test x$have_oss = xyes; then
   659             AC_DEFINE(SDL_AUDIO_DRIVER_OSS, 1, [ ])
   660             SOURCES="$SOURCES $srcdir/src/audio/dsp/*.c"
   661             have_audio=yes
   662 
   663             # We may need to link with ossaudio emulation library
   664             case "$host" in
   665                 *-*-openbsd*|*-*-netbsd*)
   666                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lossaudio";;
   667             esac
   668         fi
   669     fi
   670 }
   671 
   672 dnl See if the ALSA audio interface is supported
   673 CheckALSA()
   674 {
   675     AC_ARG_ENABLE(alsa,
   676 AC_HELP_STRING([--enable-alsa], [support the ALSA audio API [[default=yes]]]),
   677                   , enable_alsa=yes)
   678     if test x$enable_audio = xyes -a x$enable_alsa = xyes; then
   679         AM_PATH_ALSA(0.9.0, have_alsa=yes, have_alsa=no)
   680         # Restore all flags from before the ALSA detection runs
   681         CFLAGS="$alsa_save_CFLAGS"
   682         LDFLAGS="$alsa_save_LDFLAGS"
   683         LIBS="$alsa_save_LIBS"
   684         if test x$have_alsa = xyes; then
   685             AC_ARG_ENABLE(alsa-shared,
   686 AC_HELP_STRING([--enable-alsa-shared], [dynamically load ALSA audio support [[default=yes]]]),
   687                           , enable_alsa_shared=yes)
   688             alsa_lib=[`find_lib "libasound.so.*" "$ALSA_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   689 
   690             AC_DEFINE(SDL_AUDIO_DRIVER_ALSA, 1, [ ])
   691             SOURCES="$SOURCES $srcdir/src/audio/alsa/*.c"
   692             EXTRA_CFLAGS="$EXTRA_CFLAGS $ALSA_CFLAGS"
   693             if test x$have_loadso != xyes && \
   694                test x$enable_alsa_shared = xyes; then
   695                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ALSA loading])
   696             fi
   697             if test x$have_loadso = xyes && \
   698                test x$enable_alsa_shared = xyes && test x$alsa_lib != x; then
   699                 echo "-- dynamic libasound -> $alsa_lib"
   700                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ALSA_DYNAMIC, "$alsa_lib", [ ])
   701             else
   702                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ALSA_LIBS"
   703             fi
   704             have_audio=yes
   705         fi
   706     fi
   707 }
   708 
   709 dnl Find the ESD includes and libraries
   710 CheckESD()
   711 {
   712     AC_ARG_ENABLE(esd,
   713 AC_HELP_STRING([--enable-esd], [support the Enlightened Sound Daemon [[default=yes]]]),
   714                   , enable_esd=yes)
   715     if test x$enable_audio = xyes -a x$enable_esd = xyes; then
   716         AM_PATH_ESD(0.2.8, have_esd=yes, have_esd=no)
   717         if test x$have_esd = xyes; then
   718             AC_ARG_ENABLE(esd-shared,
   719 AC_HELP_STRING([--enable-esd-shared], [dynamically load ESD audio support [[default=yes]]]),
   720                           , enable_esd_shared=yes)
   721             esd_lib=[`find_lib "libesd.so.*" "$ESD_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   722 
   723             AC_DEFINE(SDL_AUDIO_DRIVER_ESD, 1, [ ])
   724             SOURCES="$SOURCES $srcdir/src/audio/esd/*.c"
   725             EXTRA_CFLAGS="$EXTRA_CFLAGS $ESD_CFLAGS"
   726             if test x$have_loadso != xyes && \
   727                test x$enable_esd_shared = xyes; then
   728                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ESD loading])
   729             fi
   730             if test x$have_loadso = xyes && \
   731                test x$enable_esd_shared = xyes && test x$esd_lib != x; then
   732                 echo "-- dynamic libesd -> $esd_lib"
   733                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ESD_DYNAMIC, "$esd_lib", [ ])
   734             else
   735                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ESD_LIBS"
   736             fi
   737             have_audio=yes
   738         fi
   739     fi
   740 }
   741 
   742 dnl Find PulseAudio
   743 CheckPulseAudio()
   744 {
   745     AC_ARG_ENABLE(pulseaudio,
   746 AC_HELP_STRING([--enable-pulseaudio], [use PulseAudio [[default=yes]]]),
   747                   , enable_pulseaudio=yes)
   748     if test x$enable_audio = xyes -a x$enable_pulseaudio = xyes; then
   749         audio_pulseaudio=no
   750 
   751         PULSEAUDIO_REQUIRED_VERSION=0.9
   752 
   753         AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
   754         AC_MSG_CHECKING(for PulseAudio $PULSEAUDIO_REQUIRED_VERSION support)
   755         if test x$PKG_CONFIG != xno; then
   756         if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $PULSEAUDIO_REQUIRED_VERSION libpulse-simple; then
   757                 PULSEAUDIO_CFLAGS=`$PKG_CONFIG --cflags libpulse-simple`
   758                 PULSEAUDIO_LIBS=`$PKG_CONFIG --libs libpulse-simple`
   759                 audio_pulseaudio=yes
   760             fi
   761         fi
   762         AC_MSG_RESULT($audio_pulseaudio)
   763 
   764         if test x$audio_pulseaudio = xyes; then
   765             AC_ARG_ENABLE(pulseaudio-shared,
   766 AC_HELP_STRING([--enable-pulseaudio-shared], [dynamically load PulseAudio support [[default=yes]]]),
   767                           , enable_pulseaudio_shared=yes)
   768             pulseaudio_lib=[`find_lib "libpulse-simple.so.*" "$PULSEAUDIO_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   769 
   770             AC_DEFINE(SDL_AUDIO_DRIVER_PULSEAUDIO, 1, [ ])
   771             SOURCES="$SOURCES $srcdir/src/audio/pulseaudio/*.c"
   772             EXTRA_CFLAGS="$EXTRA_CFLAGS $PULSEAUDIO_CFLAGS"
   773             if test x$have_loadso != xyes && \
   774                test x$enable_pulseaudio_shared = xyes; then
   775                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic PulseAudio loading])
   776             fi
   777             if test x$have_loadso = xyes && \
   778                test x$enable_pulseaudio_shared = xyes && test x$pulseaudio_lib != x; then
   779                 echo "-- dynamic libpulse-simple -> $pulseaudio_lib"
   780                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC, "$pulseaudio_lib", [ ])
   781             else
   782                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PULSEAUDIO_LIBS"
   783             fi
   784             have_audio=yes
   785         fi
   786     fi
   787 }
   788 
   789 CheckARTSC()
   790 {
   791     AC_ARG_ENABLE(arts,
   792 AC_HELP_STRING([--enable-arts], [support the Analog Real Time Synthesizer [[default=yes]]]),
   793                   , enable_arts=yes)
   794     if test x$enable_audio = xyes -a x$enable_arts = xyes; then
   795         AC_PATH_PROG(ARTSCONFIG, artsc-config)
   796         if test x$ARTSCONFIG = x -o x$ARTSCONFIG = x'"$ARTSCONFIG"'; then
   797             : # arts isn't installed
   798         else
   799             ARTS_CFLAGS=`$ARTSCONFIG --cflags`
   800             ARTS_LIBS=`$ARTSCONFIG --libs`
   801             AC_MSG_CHECKING(for aRts development environment)
   802             audio_arts=no
   803             save_CFLAGS="$CFLAGS"
   804             CFLAGS="$CFLAGS $ARTS_CFLAGS"
   805             AC_TRY_COMPILE([
   806              #include <artsc.h>
   807             ],[
   808              arts_stream_t stream;
   809             ],[
   810             audio_arts=yes
   811             ])
   812             CFLAGS="$save_CFLAGS"
   813             AC_MSG_RESULT($audio_arts)
   814             if test x$audio_arts = xyes; then
   815                 AC_ARG_ENABLE(arts-shared,
   816 AC_HELP_STRING([--enable-arts-shared], [dynamically load aRts audio support [[default=yes]]]),
   817                               , enable_arts_shared=yes)
   818                 arts_lib=[`find_lib "libartsc.so.*" "$ARTS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   819 
   820                 AC_DEFINE(SDL_AUDIO_DRIVER_ARTS, 1, [ ])
   821                 SOURCES="$SOURCES $srcdir/src/audio/arts/*.c"
   822                 EXTRA_CFLAGS="$EXTRA_CFLAGS $ARTS_CFLAGS"
   823                 if test x$have_loadso != xyes && \
   824                    test x$enable_arts_shared = xyes; then
   825                     AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ARTS loading])
   826                 fi
   827                 if test x$have_loadso = xyes && \
   828                    test x$enable_arts_shared = xyes && test x$arts_lib != x; then
   829                     echo "-- dynamic libartsc -> $arts_lib"
   830                     AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ARTS_DYNAMIC, "$arts_lib", [ ])
   831                 else
   832                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ARTS_LIBS"
   833                 fi
   834                 have_audio=yes
   835             fi
   836         fi
   837     fi
   838 }
   839 
   840 dnl See if the NAS audio interface is supported
   841 CheckNAS()
   842 {
   843     AC_ARG_ENABLE(nas,
   844 AC_HELP_STRING([--enable-nas], [support the NAS audio API [[default=yes]]]),
   845                   , enable_nas=yes)
   846     if test x$enable_audio = xyes -a x$enable_nas = xyes; then
   847         AC_CHECK_HEADER(audio/audiolib.h, have_nas_hdr=yes)
   848         AC_CHECK_LIB(audio, AuOpenServer, have_nas_lib=yes)
   849 
   850         AC_MSG_CHECKING(for NAS audio support)
   851         have_nas=no
   852 
   853         if test x$have_nas_hdr = xyes -a x$have_nas_lib = xyes; then
   854             have_nas=yes
   855             NAS_LIBS="-laudio"
   856 
   857         elif test -r /usr/X11R6/include/audio/audiolib.h; then
   858             have_nas=yes
   859             NAS_CFLAGS="-I/usr/X11R6/include/"
   860             NAS_LIBS="-L/usr/X11R6/lib -laudio -lXt"
   861 
   862         fi
   863 
   864         AC_MSG_RESULT($have_nas)
   865 
   866         if test x$have_nas = xyes; then
   867             AC_ARG_ENABLE(nas-shared,
   868 AC_HELP_STRING([--enable-nas-shared], [dynamically load NAS audio support [[default=yes]]]),
   869                           , enable_nas_shared=yes)
   870             nas_lib=[`find_lib "libaudio.so.*" "$NAS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   871 
   872             if test x$have_loadso != xyes && \
   873                test x$enable_nas_shared = xyes; then
   874                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic NAS loading])
   875             fi
   876             if test x$have_loadso = xyes && \
   877                test x$enable_nas_shared = xyes && test x$nas_lib != x; then
   878                 echo "-- dynamic libaudio -> $nas_lib"
   879                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_NAS_DYNAMIC, "$nas_lib", [ ])
   880             else
   881                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $NAS_LIBS"
   882             fi
   883 
   884             AC_DEFINE(SDL_AUDIO_DRIVER_NAS, 1, [ ])
   885             SOURCES="$SOURCES $srcdir/src/audio/nas/*.c"
   886             EXTRA_CFLAGS="$EXTRA_CFLAGS $NAS_CFLAGS"
   887             have_audio=yes
   888         fi
   889     fi
   890 }
   891 
   892 dnl rcg07142001 See if the user wants the disk writer audio driver...
   893 CheckDiskAudio()
   894 {
   895     AC_ARG_ENABLE(diskaudio,
   896 AC_HELP_STRING([--enable-diskaudio], [support the disk writer audio driver [[default=yes]]]),
   897                   , enable_diskaudio=yes)
   898     if test x$enable_audio = xyes -a x$enable_diskaudio = xyes; then
   899         AC_DEFINE(SDL_AUDIO_DRIVER_DISK, 1, [ ])
   900         SOURCES="$SOURCES $srcdir/src/audio/disk/*.c"
   901     fi
   902 }
   903 
   904 dnl rcg03142006 See if the user wants the dummy audio driver...
   905 CheckDummyAudio()
   906 {
   907     AC_ARG_ENABLE(dummyaudio,
   908 AC_HELP_STRING([--enable-dummyaudio], [support the dummy audio driver [[default=yes]]]),
   909                   , enable_dummyaudio=yes)
   910     if test x$enable_audio = xyes -a x$enable_dummyaudio = xyes; then
   911         AC_DEFINE(SDL_AUDIO_DRIVER_DUMMY, 1, [ ])
   912         SOURCES="$SOURCES $srcdir/src/audio/dummy/*.c"
   913     fi
   914 }
   915 
   916 dnl See if GCC's -fvisibility=hidden is supported (gcc4 and later, usually).
   917 dnl  Details of this flag are here: http://gcc.gnu.org/wiki/Visibility
   918 CheckVisibilityHidden()
   919 {
   920     AC_MSG_CHECKING(for GCC -fvisibility=hidden option)
   921     have_gcc_fvisibility=no
   922 
   923     visibility_CFLAGS="-fvisibility=hidden"
   924     save_CFLAGS="$CFLAGS"
   925     CFLAGS="$save_CFLAGS $visibility_CFLAGS -Werror"
   926     AC_TRY_COMPILE([
   927     #if !defined(__GNUC__) || __GNUC__ < 4
   928     #error SDL only uses visibility attributes in GCC 4 or newer
   929     #endif
   930     ],[
   931     ],[
   932     have_gcc_fvisibility=yes
   933     ])
   934     AC_MSG_RESULT($have_gcc_fvisibility)
   935     CFLAGS="$save_CFLAGS"
   936 
   937     if test x$have_gcc_fvisibility = xyes; then
   938         EXTRA_CFLAGS="$EXTRA_CFLAGS $visibility_CFLAGS"
   939     fi
   940 }
   941 
   942 dnl See if GCC's -mpreferred-stack-boundary is supported.
   943 dnl  Reference: http://bugzilla.libsdl.org/show_bug.cgi?id=1296
   944 CheckStackBoundary()
   945 {
   946     AC_MSG_CHECKING(for GCC -mpreferred-stack-boundary option)
   947     have_gcc_preferred_stack_boundary=no
   948 
   949     save_CFLAGS="$CFLAGS"
   950     CFLAGS="$save_CFLAGS -mpreferred-stack-boundary=2"
   951     AC_TRY_COMPILE([
   952     int x = 0;
   953     ],[
   954     ],[
   955     have_gcc_preferred_stack_boundary=yes
   956     ])
   957     AC_MSG_RESULT($have_gcc_preferred_stack_boundary)
   958     CFLAGS="$save_CFLAGS"
   959 
   960     if test x$have_gcc_preferred_stack_boundary = xyes; then
   961         EXTRA_CFLAGS="$EXTRA_CFLAGS -mpreferred-stack-boundary=2"
   962     fi
   963 }
   964 
   965 
   966 dnl See if GCC's -Wall is supported.
   967 CheckWarnAll()
   968 {
   969     AC_MSG_CHECKING(for GCC -Wall option)
   970     have_gcc_Wall=no
   971 
   972     save_CFLAGS="$CFLAGS"
   973     CFLAGS="$save_CFLAGS -Wall"
   974     AC_TRY_COMPILE([
   975     int x = 0;
   976     ],[
   977     ],[
   978     have_gcc_Wall=yes
   979     ])
   980     AC_MSG_RESULT($have_gcc_Wall)
   981     CFLAGS="$save_CFLAGS"
   982 
   983     if test x$have_gcc_Wall = xyes; then
   984         EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
   985 
   986         dnl Haiku headers use multicharacter constants all over the place. Ignore these warnings when using -Wall.
   987         AC_MSG_CHECKING(for necessary GCC -Wno-multichar option)
   988         need_gcc_Wno_multichar=no
   989         case "$host" in
   990             *-*-beos* | *-*-haiku*)
   991                 need_gcc_Wno_multichar=yes
   992                 ;;
   993         esac
   994         AC_MSG_RESULT($need_gcc_Wno_multichar)
   995         if test x$need_gcc_Wno_multichar = xyes; then
   996             EXTRA_CFLAGS="$EXTRA_CFLAGS -Wno-multichar"
   997         fi
   998     fi
   999 }
  1000 
  1001 
  1002 dnl Find the X11 include and library directories
  1003 CheckX11()
  1004 {
  1005 
  1006 
  1007     AC_ARG_ENABLE(video-x11,
  1008 AC_HELP_STRING([--enable-video-x11], [use X11 video driver [[default=yes]]]),
  1009                   , enable_video_x11=yes)
  1010     if test x$enable_video = xyes -a x$enable_video_x11 = xyes; then
  1011         case "$host" in
  1012             *-*-darwin*)
  1013                 # This isn't necessary for X11, but fixes GLX detection
  1014                 if test "x$x_includes" = xNONE && test "x$x_libraries" = xNONE; then
  1015                     x_includes="/usr/X11R6/include"
  1016                     x_libraries="/usr/X11R6/lib"
  1017                 fi
  1018                 ;;
  1019         esac
  1020         AC_PATH_X
  1021         AC_PATH_XTRA
  1022         if test x$have_x = xyes; then
  1023             # Only allow dynamically loaded X11 if the X11 function pointers
  1024             # will not end up in the global namespace, which causes problems
  1025             # with other libraries calling X11 functions.
  1026             x11_symbols_private=$have_gcc_fvisibility
  1027 
  1028             AC_ARG_ENABLE(x11-shared,
  1029 AC_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=maybe]]]),
  1030                           , enable_x11_shared=maybe)
  1031 
  1032             case "$host" in
  1033                 *-*-darwin*)
  1034                     x11_symbols_private=yes
  1035                     x11_lib='/usr/X11R6/lib/libX11.6.dylib'
  1036                     x11ext_lib='/usr/X11R6/lib/libXext.6.dylib'
  1037                     xcursor_lib='/usr/X11R6/lib/libXcursor.1.dylib'
  1038                     xinerama_lib='/usr/X11R6/lib/libXinerama.1.dylib'
  1039                     xinput_lib='/usr/X11R6/lib/libXi.6.dylib'
  1040                     xrandr_lib='/usr/X11R6/lib/libXrandr.2.dylib'
  1041                     xrender_lib='/usr/X11R6/lib/libXrender.1.dylib'
  1042                     xss_lib='/usr/X11R6/lib/libXss.1.dylib'
  1043                     xvidmode_lib='/usr/X11R6/lib/libXxf86vm.1.dylib'
  1044                     ;;
  1045                 *)
  1046                     x11_lib=[`find_lib "libX11.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1047                     x11ext_lib=[`find_lib "libXext.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1048                     xcursor_lib=[`find_lib "libXcursor.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1049                     xinerama_lib=[`find_lib "libXinerama.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1050                     xinput_lib=[`find_lib "libXi.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1051                     xrandr_lib=[`find_lib "libXrandr.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1052                     xrender_lib=[`find_lib "libXrender.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1053                     xss_lib=[`find_lib "libXss.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1054                     xvidmode_lib=[`find_lib "libXxf86vm.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1055                     ;;
  1056             esac
  1057 
  1058             if test x$ac_cv_func_shmat != xyes; then
  1059                 X_CFLAGS="$X_CFLAGS -DNO_SHARED_MEMORY"
  1060             fi
  1061             CFLAGS="$CFLAGS $X_CFLAGS"
  1062             LDFLAGS="$LDFLAGS $X_LIBS"
  1063 
  1064             AC_DEFINE(SDL_VIDEO_DRIVER_X11, 1, [ ])
  1065             SOURCES="$SOURCES $srcdir/src/video/x11/*.c"
  1066             EXTRA_CFLAGS="$EXTRA_CFLAGS $X_CFLAGS"
  1067 
  1068             if test x$enable_x11_shared = xmaybe; then
  1069                 enable_x11_shared=$x11_symbols_private
  1070             fi
  1071             if test x$have_loadso != xyes && \
  1072                test x$enable_x11_shared = xyes; then
  1073                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic X11 loading])
  1074                 enable_x11_shared=no
  1075             fi
  1076             if test x$x11_symbols_private != xyes && \
  1077                test x$enable_x11_shared = xyes; then
  1078                 AC_MSG_WARN([You must have gcc4 (-fvisibility=hidden) for dynamic X11 loading])
  1079                 enable_x11_shared=no
  1080             fi
  1081 
  1082             if test x$have_loadso = xyes && \
  1083                test x$enable_x11_shared = xyes && test x$x11_lib != x && test x$x11ext_lib != x; then
  1084                 echo "-- dynamic libX11 -> $x11_lib"
  1085                 echo "-- dynamic libX11ext -> $x11ext_lib"
  1086                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC, "$x11_lib", [ ])
  1087                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT, "$x11ext_lib", [ ])
  1088             else
  1089                 enable_x11_shared=no
  1090                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $X_LIBS -lX11 -lXext"
  1091             fi
  1092             have_video=yes
  1093 
  1094             AC_ARG_ENABLE(video-x11-xcursor,
  1095 AC_HELP_STRING([--enable-video-x11-xcursor], [enable X11 Xcursor support [[default=yes]]]),
  1096                             , enable_video_x11_xcursor=yes)
  1097             if test x$enable_video_x11_xcursor = xyes; then
  1098                 definitely_enable_video_x11_xcursor=no
  1099                 AC_CHECK_HEADER(X11/Xcursor/Xcursor.h,
  1100                                 have_xcursor_h_hdr=yes,
  1101                                 have_xcursor_h_hdr=no,
  1102                                 [#include <X11/Xlib.h>
  1103                                 ])
  1104                 if test x$have_xcursor_h_hdr = xyes; then
  1105                     if test x$enable_x11_shared = xyes && test x$xcursor_lib != x ; then
  1106                         echo "-- dynamic libXcursor -> $xcursor_lib"
  1107                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR, "$xcursor_lib", [ ])
  1108                         definitely_enable_video_x11_xcursor=yes
  1109                     else
  1110                         AC_CHECK_LIB(Xcursor, XcursorImageCreate, have_xcursor_lib=yes)
  1111                         if test x$have_xcursor_lib = xyes ; then
  1112                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXcursor"
  1113                             definitely_enable_video_x11_xcursor=yes
  1114                         fi
  1115                     fi
  1116                 fi
  1117             fi
  1118             if test x$definitely_enable_video_x11_xcursor = xyes; then
  1119                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XCURSOR, 1, [ ])
  1120             fi
  1121             AC_ARG_ENABLE(video-x11-xinerama,
  1122 AC_HELP_STRING([--enable-video-x11-xinerama], [enable X11 Xinerama support [[default=yes]]]),
  1123                             , enable_video_x11_xinerama=yes)
  1124             if test x$enable_video_x11_xinerama = xyes; then
  1125                 definitely_enable_video_x11_xinerama=no
  1126                 AC_CHECK_HEADER(X11/extensions/Xinerama.h,
  1127                                 have_xinerama_h_hdr=yes,
  1128                                 have_xinerama_h_hdr=no,
  1129                                 [#include <X11/Xlib.h>
  1130                                 ])
  1131                 if test x$have_xinerama_h_hdr = xyes; then
  1132                     if test x$enable_x11_shared = xyes && test x$xinerama_lib != x ; then
  1133                         echo "-- dynamic libXinerama -> $xinerama_lib"
  1134                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA, "$xinerama_lib", [ ])
  1135                         definitely_enable_video_x11_xinerama=yes
  1136                     else
  1137                         AC_CHECK_LIB(Xinerama, XineramaQueryExtension, have_xinerama_lib=yes)
  1138                         if test x$have_xinerama_lib = xyes ; then
  1139                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXinerama"
  1140                             definitely_enable_video_x11_xinerama=yes
  1141                         fi
  1142                     fi
  1143                 fi
  1144             fi
  1145             if test x$definitely_enable_video_x11_xinerama = xyes; then
  1146                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINERAMA, 1, [ ])
  1147             fi
  1148             AC_ARG_ENABLE(video-x11-xinput,
  1149 AC_HELP_STRING([--enable-video-x11-xinput], [enable X11 XInput extension for manymouse, tablets, etc [[default=yes]]]),
  1150                             , enable_video_x11_xinput=yes)
  1151             if test x$enable_video_x11_xinput = xyes; then
  1152                 definitely_enable_video_x11_xinput=no
  1153                 AC_CHECK_HEADER(X11/extensions/XInput.h,
  1154                                 have_xinput_h_hdr=yes,
  1155                                 have_xinput_h_hdr=no,
  1156                                 [#include <X11/Xlib.h>
  1157                                 ])
  1158                 if test x$have_xinput_h_hdr = xyes; then
  1159                     if test x$enable_x11_shared = xyes && test x$xinput_lib != x ; then
  1160                         echo "-- dynamic libXi -> $xinput_lib"
  1161                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT, "$xinput_lib", [ ])
  1162                         definitely_enable_video_x11_xinput=yes
  1163                     else
  1164                         AC_CHECK_LIB(Xi, XOpenDevice, have_xinput_lib=yes)
  1165                         if test x$have_xinput_lib = xyes ; then
  1166                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXi"
  1167                             definitely_enable_video_x11_xinput=yes
  1168                         fi
  1169                     fi
  1170                 fi
  1171             fi
  1172             if test x$definitely_enable_video_x11_xinput = xyes; then
  1173                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINPUT, 1, [ ])
  1174             fi
  1175             AC_ARG_ENABLE(video-x11-xrandr,
  1176 AC_HELP_STRING([--enable-video-x11-xrandr], [enable X11 Xrandr extension for fullscreen [[default=yes]]]),
  1177                             , enable_video_x11_xrandr=yes)
  1178             if test x$enable_video_x11_xrandr = xyes; then
  1179                 definitely_enable_video_x11_xrandr=no
  1180                 AC_CHECK_HEADER(X11/extensions/Xrandr.h,
  1181                                 have_xrandr_h_hdr=yes,
  1182                                 have_xrandr_h_hdr=no,
  1183                                 [#include <X11/Xlib.h>
  1184                                 ])
  1185                 if test x$have_xrandr_h_hdr = xyes; then
  1186                     if test x$enable_x11_shared = xyes && test x$xrandr_lib != x ; then
  1187                         echo "-- dynamic libXrandr -> $xrandr_lib"
  1188                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR, "$xrandr_lib", [ ])
  1189                         definitely_enable_video_x11_xrandr=yes
  1190                     else
  1191                         AC_CHECK_LIB(Xrandr, XRRQueryExtension, have_xrandr_lib=yes)
  1192                         if test x$have_xrandr_lib = xyes ; then
  1193                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXrandr"
  1194                             definitely_enable_video_x11_xrandr=yes
  1195                         fi
  1196                     fi
  1197                 fi
  1198             fi
  1199             if test x$definitely_enable_video_x11_xrandr = xyes; then
  1200                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR, 1, [ ])
  1201             fi
  1202             AC_ARG_ENABLE(video-x11-scrnsaver,
  1203 AC_HELP_STRING([--enable-video-x11-scrnsaver], [enable X11 screensaver extension [[default=yes]]]),
  1204                             , enable_video_x11_scrnsaver=yes)
  1205             if test x$enable_video_x11_scrnsaver = xyes; then
  1206                 AC_CHECK_HEADER(X11/extensions/scrnsaver.h,
  1207                                 have_scrnsaver_h_hdr=yes,
  1208                                 have_scrnsaver_h_hdr=no,
  1209                                 [#include <X11/Xlib.h>
  1210                                 ])
  1211                 if test x$have_scrnsaver_h_hdr = xyes; then
  1212                     if test x$enable_x11_shared = xyes && test x$xss_lib != x ; then
  1213                         echo "-- dynamic libXss -> $xss_lib"
  1214                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS, "$xss_lib", [ ])
  1215                         definitely_enable_video_x11_scrnsaver=yes
  1216                     else
  1217                         AC_CHECK_LIB(Xss, XScreenSaverSuspend, have_xss_lib=yes)
  1218                         if test x$have_xss_lib = xyes ; then
  1219                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXss"
  1220                             definitely_enable_video_x11_scrnsaver=yes
  1221                         fi
  1222                     fi
  1223                 fi
  1224             fi
  1225             if test x$definitely_enable_video_x11_scrnsaver = xyes; then
  1226                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XSCRNSAVER, 1, [ ])
  1227             fi
  1228             AC_ARG_ENABLE(video-x11-xshape,
  1229 AC_HELP_STRING([--enable-video-x11-xshape], [enable X11 XShape support [[default=yes]]]),
  1230                             , enable_video_x11_xshape=yes)
  1231             if test x$enable_video_x11_xshape = xyes; then
  1232                 AC_CHECK_HEADER(X11/extensions/shape.h,
  1233                                 have_shape_h_hdr=yes,
  1234                                 have_shape_h_hdr=no,
  1235                                 [#include <X11/Xlib.h>
  1236                                 ])
  1237                 if test x$have_shape_h_hdr = xyes; then
  1238                     AC_DEFINE(SDL_VIDEO_DRIVER_X11_XSHAPE, 1, [ ])
  1239                 fi
  1240             fi
  1241             AC_ARG_ENABLE(video-x11-vm,
  1242 AC_HELP_STRING([--enable-video-x11-vm], [use X11 VM extension for fullscreen [[default=yes]]]),
  1243                             , enable_video_x11_vm=yes)
  1244             if test x$enable_video_x11_vm = xyes; then
  1245                 definitely_enable_video_x11_vm=no
  1246                 AC_CHECK_HEADER(X11/extensions/xf86vmode.h,
  1247                                 have_vm_h_hdr=yes,
  1248                                 have_vm_h_hdr=no,
  1249                                 [#include <X11/Xlib.h>
  1250                                 ])
  1251                 if test x$have_vm_h_hdr = xyes; then
  1252                     if test x$enable_x11_shared = xyes && test x$xvidmode_lib != x ; then
  1253                         echo "-- dynamic libXxf86vm -> $xvidmode_lib"
  1254                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE, "$xvidmode_lib", [ ])
  1255                         definitely_enable_video_x11_vm=yes
  1256                     else
  1257                         AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryVersion, have_vm_lib=yes)
  1258                         if test x$have_vm_lib = xyes ; then
  1259                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXxf86vm"
  1260                             definitely_enable_video_x11_vm=yes
  1261                         fi
  1262                     fi
  1263                 fi
  1264             fi
  1265             if test x$definitely_enable_video_x11_vm = xyes; then
  1266                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XVIDMODE, 1, [ ])
  1267             fi
  1268         fi
  1269     fi
  1270 }
  1271 
  1272 dnl Set up the BWindow video driver if enabled
  1273 CheckBWINDOW()
  1274 {
  1275     if test x$enable_video = xyes; then
  1276         AC_DEFINE(SDL_VIDEO_DRIVER_BWINDOW, 1, [ ])
  1277         SOURCES="$SOURCES $srcdir/src/video/bwindow/*.cc"
  1278         have_video=yes
  1279     fi
  1280 }
  1281 
  1282 dnl Set up the Cocoa video driver for Mac OS X (but not Darwin)
  1283 CheckCOCOA()
  1284 {
  1285     AC_ARG_ENABLE(video-cocoa,
  1286 AC_HELP_STRING([--enable-video-cocoa], [use Cocoa video driver [[default=yes]]]),
  1287                   , enable_video_cocoa=yes)
  1288     if test x$enable_video = xyes -a x$enable_video_cocoa = xyes; then
  1289         save_CFLAGS="$CFLAGS"
  1290         dnl work around that we don't have Objective-C support in autoconf
  1291         CFLAGS="$CFLAGS -x objective-c"
  1292         AC_MSG_CHECKING(for Cocoa framework)
  1293         have_cocoa=no
  1294         AC_TRY_COMPILE([
  1295           #import <Cocoa/Cocoa.h>
  1296         ],[
  1297         ],[
  1298         have_cocoa=yes
  1299         ])
  1300         AC_MSG_RESULT($have_cocoa)
  1301         CFLAGS="$save_CFLAGS"
  1302         if test x$have_cocoa = xyes; then
  1303             AC_DEFINE(SDL_VIDEO_DRIVER_COCOA, 1, [ ])
  1304             SOURCES="$SOURCES $srcdir/src/video/cocoa/*.m"
  1305             have_video=yes
  1306         fi
  1307     fi
  1308 }
  1309 
  1310 dnl Find DirectFB
  1311 CheckDirectFB()
  1312 {
  1313     AC_ARG_ENABLE(video-directfb,
  1314 AC_HELP_STRING([--enable-video-directfb], [use DirectFB video driver [[default=no]]]),
  1315                   , enable_video_directfb=no)
  1316     if test x$enable_video = xyes -a x$enable_video_directfb = xyes; then
  1317         video_directfb=no
  1318 
  1319         DIRECTFB_REQUIRED_VERSION=1.0.0
  1320         AC_PATH_PROGS(DIRECTFBCONFIG, directfb-config, no, [$prefix/bin:$PATH])
  1321         if test x$DIRECTFBCONFIG = xno; then
  1322             AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
  1323             if test x$PKG_CONFIG != xno; then
  1324                 if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb; then
  1325                     DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags directfb`
  1326                     DIRECTFB_LIBS=`$PKG_CONFIG --libs directfb`
  1327                     DIRECTFB_PREFIX=`$PKG_CONFIG --variable=prefix directfb`
  1328                     video_directfb=yes
  1329                 fi
  1330             fi
  1331         else
  1332             set -- `echo $DIRECTFB_REQUIRED_VERSION | sed 's/\./ /g'`
  1333             NEED_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
  1334             set -- `directfb-config --version | sed 's/\./ /g'`
  1335             HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
  1336             if test $HAVE_VERSION -ge $NEED_VERSION; then
  1337                 DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags`
  1338                 DIRECTFB_LIBS=`$DIRECTFBCONFIG --libs`
  1339                 DIRECTFB_PREFIX=`$DIRECTFBCONFIG --prefix`
  1340                 video_directfb=yes
  1341             fi
  1342         fi
  1343         if test x$video_directfb = xyes; then
  1344             # SuSE 11.1 installs directfb-config without directfb-devel
  1345             save_CPPFLAGS="$CPPFLAGS"
  1346             CPPFLAGS="$CPPFLAGS $DIRECTFB_CFLAGS"
  1347             AC_CHECK_HEADER(directfb.h, have_directfb_hdr=yes, have_directfb_hdr=no)
  1348             CPPFLAGS="$save_CPPFLAGS"
  1349             video_directfb=$have_directfb_hdr
  1350         fi
  1351         AC_MSG_CHECKING(for DirectFB $DIRECTFB_REQUIRED_VERSION support)
  1352         AC_MSG_RESULT($video_directfb)
  1353 
  1354         if test x$video_directfb = xyes; then
  1355             AC_ARG_ENABLE(directfb-shared,
  1356 AC_HELP_STRING([--enable-directfb-shared], [dynamically load directfb support [[default=yes]]]),
  1357                               , enable_directfb_shared=yes)
  1358 
  1359             AC_DEFINE(SDL_VIDEO_DRIVER_DIRECTFB, 1, [ ])
  1360             AC_DEFINE(SDL_VIDEO_RENDER_DIRECTFB, 1, [ ])
  1361             SOURCES="$SOURCES $srcdir/src/video/directfb/*.c"
  1362             EXTRA_CFLAGS="$EXTRA_CFLAGS $DIRECTFB_CFLAGS"
  1363 
  1364             AC_MSG_CHECKING(for directfb dynamic loading support)
  1365             directfb_shared=no
  1366             directfb_lib=[`find_lib "libdirectfb.so.*" "$DIRECTFB_LIBS"`]
  1367             # | sed 's/.*\/\(.*\)/\1/; q'`]
  1368 AC_MSG_WARN("directfb $directfb_lib")
  1369             if test x$have_loadso != xyes && \
  1370                test x$enable_directfb_shared = xyes; then
  1371                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic directfb loading])
  1372             fi
  1373             if test x$have_loadso = xyes && \
  1374                test x$enable_directfb_shared = xyes && test x$directfb_lib != x; then
  1375                 directfb_shared=yes
  1376                 echo "-- $directfb_lib_spec -> $directfb_lib"
  1377                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC, "$directfb_lib", [ ])
  1378             else
  1379                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $DIRECTFB_LIBS"
  1380             fi
  1381             AC_MSG_RESULT($directfb_shared)
  1382             have_video=yes
  1383         fi
  1384     fi
  1385 }
  1386 
  1387 dnl Find FusionSound
  1388 CheckFusionSound()
  1389 {
  1390     AC_ARG_ENABLE(fusionsound,
  1391 AC_HELP_STRING([--enable-fusionsound], [use FusionSound audio driver [[default=no]]]),
  1392                   , enable_fusionsound=no)
  1393     if test x$enable_audio = xyes -a x$enable_fusionsound = xyes; then
  1394         fusionsound=no
  1395 
  1396         FUSIONSOUND_REQUIRED_VERSION=1.1.1
  1397 
  1398         AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
  1399         AC_MSG_CHECKING(for FusionSound $FUSIONSOUND_REQUIRED_VERSION support)
  1400         if test x$PKG_CONFIG != xno; then
  1401             if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $FUSIONSOUND_REQUIRED_VERSION fusionsound; then
  1402                 FUSIONSOUND_CFLAGS=`$PKG_CONFIG --cflags fusionsound`
  1403                 FUSIONSOUND_LIBS=`$PKG_CONFIG --libs fusionsound`
  1404                 fusionsound=yes
  1405             fi
  1406         fi
  1407         AC_MSG_RESULT($fusionsound)
  1408 
  1409         if test x$fusionsound = xyes; then
  1410             AC_DEFINE(SDL_AUDIO_DRIVER_FUSIONSOUND, 1, [ ])
  1411             SOURCES="$SOURCES $srcdir/src/audio/fusionsound/*.c"
  1412             EXTRA_CFLAGS="$EXTRA_CFLAGS $FUSIONSOUND_CFLAGS"
  1413             
  1414             AC_ARG_ENABLE(fusionsound-shared,
  1415 AC_HELP_STRING([--enable-fusionsound-shared], [dynamically load fusionsound audio support [[default=yes]]]),
  1416                           , enable_fusionsound_shared=yes)
  1417             fusionsound_shared=no
  1418             AC_MSG_CHECKING(for FusionSound dynamic loading support)
  1419             if test x$have_loadso != xyes && \
  1420                test x$enable_fusionsound_shared = xyes; then
  1421                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic fusionsound loading])
  1422             fi
  1423             if test x$have_loadso = xyes && \
  1424                test x$enable_fusionsound_shared = xyes; then
  1425                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC, "libfusionsound.so", [ ])
  1426                 fusionsound_shared=yes
  1427             else
  1428                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $FUSIONSOUND_LIBS"
  1429             fi
  1430             AC_MSG_RESULT($fusionsound_shared)
  1431             
  1432             have_audio=yes
  1433         fi
  1434     fi
  1435 }
  1436 
  1437 dnl rcg04172001 Set up the Null video driver.
  1438 CheckDummyVideo()
  1439 {
  1440     AC_ARG_ENABLE(video-dummy,
  1441 AC_HELP_STRING([--enable-video-dummy], [use dummy video driver [[default=yes]]]),
  1442                   , enable_video_dummy=yes)
  1443     if test x$enable_video_dummy = xyes; then
  1444         AC_DEFINE(SDL_VIDEO_DRIVER_DUMMY, 1, [ ])
  1445         SOURCES="$SOURCES $srcdir/src/video/dummy/*.c"
  1446         have_video=yes
  1447     fi
  1448 }
  1449 
  1450 dnl Check to see if OpenGL support is desired
  1451 AC_ARG_ENABLE(video-opengl,
  1452 AC_HELP_STRING([--enable-video-opengl], [include OpenGL support [[default=yes]]]),
  1453               , enable_video_opengl=yes)
  1454 
  1455 dnl Find OpenGL
  1456 CheckOpenGLX11()
  1457 {
  1458     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1459         AC_MSG_CHECKING(for OpenGL (GLX) support)
  1460         video_opengl=no
  1461         AC_TRY_COMPILE([
  1462          #include <GL/gl.h>
  1463          #include <GL/glx.h>
  1464         ],[
  1465         ],[
  1466         video_opengl=yes
  1467         ])
  1468         AC_MSG_RESULT($video_opengl)
  1469         if test x$video_opengl = xyes; then
  1470             AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1471             AC_DEFINE(SDL_VIDEO_OPENGL_GLX, 1, [ ])
  1472             AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  1473         fi
  1474     fi
  1475 }
  1476 
  1477 dnl Check to see if OpenGL ES support is desired
  1478 AC_ARG_ENABLE(video-opengles,
  1479 AC_HELP_STRING([--enable-video-opengles], [include OpenGL ES support [[default=yes]]]),
  1480               , enable_video_opengles=yes)
  1481 
  1482 dnl Find OpenGL ES
  1483 CheckOpenGLESX11()
  1484 {
  1485     if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then
  1486         AC_MSG_CHECKING(for OpenGL ES (EGL) support)
  1487         video_opengles=no
  1488         AC_TRY_COMPILE([
  1489          #include <EGL/egl.h>
  1490         ],[
  1491         ],[
  1492         video_opengles=yes
  1493         ])
  1494         AC_MSG_RESULT($video_opengles)
  1495         if test x$video_opengles = xyes; then
  1496             AC_MSG_CHECKING(for OpenGL ES v1 headers)
  1497             video_opengles_v1=no
  1498             AC_TRY_COMPILE([
  1499              #include <GLES/gl.h>
  1500              #include <GLES/glext.h>
  1501             ],[
  1502             ],[
  1503             video_opengles_v1=yes
  1504             ])
  1505             AC_MSG_RESULT($video_opengles_v1)
  1506             if test x$video_opengles_v1 = xyes; then
  1507                 AC_DEFINE(SDL_VIDEO_OPENGL_ES, 1, [ ])
  1508                 AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES, 1, [ ])
  1509             fi
  1510             AC_MSG_CHECKING(for OpenGL ES v2 headers)
  1511             video_opengles_v2=no
  1512             AC_TRY_COMPILE([
  1513              #include <GLES2/gl2.h>
  1514              #include <GLES2/gl2ext.h>
  1515             ],[
  1516             ],[
  1517             video_opengles_v2=yes
  1518             ])
  1519             AC_MSG_RESULT($video_opengles_v2)
  1520             if test x$video_opengles_v2 = xyes; then
  1521                 AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ])
  1522                 AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
  1523             fi
  1524         fi
  1525     fi
  1526 }
  1527 
  1528 dnl Check for Windows OpenGL
  1529 CheckWINDOWSGL()
  1530 {
  1531     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1532         AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1533         AC_DEFINE(SDL_VIDEO_OPENGL_WGL, 1, [ ])
  1534         AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  1535     fi
  1536 }
  1537 
  1538 dnl Check for BeOS OpenGL
  1539 CheckBeGL()
  1540 {
  1541     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1542         AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1543         AC_DEFINE(SDL_VIDEO_OPENGL_BGL, 1, [ ])
  1544         AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  1545         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL"
  1546     fi
  1547 }
  1548 
  1549 dnl Check for MacOS OpenGL
  1550 CheckMacGL()
  1551 {
  1552     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1553         AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1554         AC_DEFINE(SDL_VIDEO_OPENGL_CGL, 1, [ ])
  1555         AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  1556         case "$host" in
  1557             *-*-darwin*)
  1558                 if test x$enable_video_cocoa = xyes; then
  1559                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,OpenGL"
  1560                 fi
  1561         esac
  1562     fi
  1563 }
  1564 
  1565 dnl See if we can use the new unified event interface in Linux 2.4
  1566 CheckInputEvents()
  1567 {
  1568     dnl Check for Linux 2.4 unified input event interface support
  1569     AC_ARG_ENABLE(input-events,
  1570 AC_HELP_STRING([--enable-input-events], [use Linux 2.4 unified input interface [[default=yes]]]),
  1571                   , enable_input_events=yes)
  1572     if test x$enable_input_events = xyes; then
  1573         AC_MSG_CHECKING(for Linux 2.4 unified input interface)
  1574         use_input_events=no
  1575         AC_TRY_COMPILE([
  1576           #include <linux/input.h>
  1577         ],[
  1578           #ifndef EVIOCGNAME
  1579           #error EVIOCGNAME() ioctl not available
  1580           #endif
  1581         ],[
  1582         use_input_events=yes
  1583         ])
  1584         AC_MSG_RESULT($use_input_events)
  1585         if test x$use_input_events = xyes; then
  1586             AC_DEFINE(SDL_INPUT_LINUXEV, 1, [ ])
  1587         fi
  1588     fi
  1589 }
  1590 
  1591 dnl See if we can use the Touchscreen input library
  1592 CheckTslib()
  1593 {
  1594     AC_ARG_ENABLE(input-tslib,
  1595 AC_HELP_STRING([--enable-input-tslib], [use the Touchscreen library for input [[default=yes]]]),
  1596                   , enable_input_tslib=yes)
  1597     if test x$enable_input_tslib = xyes; then
  1598         AC_MSG_CHECKING(for Touchscreen library support)
  1599         enable_input_tslib=no
  1600         AC_TRY_COMPILE([
  1601           #include "tslib.h"
  1602         ],[
  1603         ],[
  1604         enable_input_tslib=yes
  1605         ])
  1606         AC_MSG_RESULT($enable_input_tslib)
  1607         if test x$enable_input_tslib = xyes; then
  1608             AC_DEFINE(SDL_INPUT_TSLIB, 1, [ ])
  1609             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lts"
  1610         fi
  1611     fi
  1612 }
  1613 
  1614 dnl See what type of thread model to use on Linux and Solaris
  1615 CheckPTHREAD()
  1616 {
  1617     dnl Check for pthread support
  1618     AC_ARG_ENABLE(pthreads,
  1619 AC_HELP_STRING([--enable-pthreads], [use POSIX threads for multi-threading [[default=yes]]]),
  1620                   , enable_pthreads=yes)
  1621     dnl This is used on Linux for glibc binary compatibility (Doh!)
  1622     AC_ARG_ENABLE(pthread-sem,
  1623 AC_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [[default=yes]]]),
  1624                   , enable_pthread_sem=yes)
  1625     case "$host" in
  1626         *-*-linux*|*-*-uclinux*)
  1627             pthread_cflags="-D_REENTRANT"
  1628             pthread_lib="-lpthread"
  1629             ;;
  1630         *-*-bsdi*)
  1631             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  1632             pthread_lib=""
  1633             ;;
  1634         *-*-darwin*)
  1635             pthread_cflags="-D_THREAD_SAFE"
  1636 # causes Carbon.p complaints?
  1637 #            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  1638             ;;
  1639         *-*-freebsd*|*-*-dragonfly*)
  1640             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  1641             pthread_lib="-pthread"
  1642             ;;
  1643         *-*-netbsd*)
  1644             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  1645             pthread_lib="-lpthread"
  1646             ;;
  1647         *-*-openbsd*)
  1648             pthread_cflags="-D_REENTRANT"
  1649             pthread_lib="-pthread"
  1650             ;;
  1651         *-*-solaris*)
  1652             pthread_cflags="-D_REENTRANT"
  1653             pthread_lib="-lpthread -lposix4"
  1654             ;;
  1655         *-*-sysv5*)
  1656             pthread_cflags="-D_REENTRANT -Kthread"
  1657             pthread_lib=""
  1658             ;;
  1659         *-*-aix*)
  1660             pthread_cflags="-D_REENTRANT -mthreads"
  1661             pthread_lib="-lpthread"
  1662             ;;
  1663         *-*-hpux11*)
  1664             pthread_cflags="-D_REENTRANT"
  1665             pthread_lib="-L/usr/lib -lpthread"
  1666             ;;
  1667         *)
  1668             pthread_cflags="-D_REENTRANT"
  1669             pthread_lib="-lpthread"
  1670             ;;
  1671     esac
  1672     if test x$enable_threads = xyes -a x$enable_pthreads = xyes; then
  1673         # Save the original compiler flags and libraries
  1674         ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
  1675         # Add the pthread compiler flags and libraries
  1676         CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
  1677         # Check to see if we have pthread support on this system
  1678         AC_MSG_CHECKING(for pthreads)
  1679         use_pthreads=no
  1680         AC_TRY_LINK([
  1681          #include <pthread.h>
  1682         ],[
  1683          pthread_attr_t type;
  1684          pthread_attr_init(&type);
  1685         ],[
  1686         use_pthreads=yes
  1687         ])
  1688         AC_MSG_RESULT($use_pthreads)
  1689         # Restore the compiler flags and libraries
  1690         CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
  1691 
  1692         # Do futher testing if we have pthread support...
  1693         if test x$use_pthreads = xyes; then
  1694             AC_DEFINE(SDL_THREAD_PTHREAD, 1, [ ])
  1695             EXTRA_CFLAGS="$EXTRA_CFLAGS $pthread_cflags"
  1696             EXTRA_LDFLAGS="$EXTRA_LDFLAGS $pthread_lib"
  1697             SDL_CFLAGS="$SDL_CFLAGS $pthread_cflags"
  1698             SDL_LIBS="$SDL_LIBS $pthread_lib"
  1699 
  1700             # Save the original compiler flags and libraries
  1701             ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
  1702             # Add the pthread compiler flags and libraries
  1703             CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
  1704 
  1705             # Check to see if recursive mutexes are available
  1706             AC_MSG_CHECKING(for recursive mutexes)
  1707             has_recursive_mutexes=no
  1708             if test x$has_recursive_mutexes = xno; then
  1709                 AC_TRY_COMPILE([
  1710                   #include <pthread.h>
  1711                 ],[
  1712                   pthread_mutexattr_t attr;
  1713                   pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
  1714                 ],[
  1715                 has_recursive_mutexes=yes
  1716                 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX, 1, [ ])
  1717                 ])
  1718             fi
  1719             if test x$has_recursive_mutexes = xno; then
  1720                 AC_TRY_COMPILE([
  1721                   #include <pthread.h>
  1722                 ],[
  1723                   pthread_mutexattr_t attr;
  1724                   pthread_mutexattr_setkind_np(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
  1725                 ],[
  1726                 has_recursive_mutexes=yes
  1727                 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP, 1, [ ])
  1728                 ])
  1729             fi
  1730             AC_MSG_RESULT($has_recursive_mutexes)
  1731 
  1732             # Check to see if pthread semaphore support is missing
  1733             if test x$enable_pthread_sem = xyes; then
  1734                 AC_MSG_CHECKING(for pthread semaphores)
  1735                 have_pthread_sem=no
  1736                 AC_TRY_COMPILE([
  1737                   #include <pthread.h>
  1738                   #include <semaphore.h>
  1739                 ],[
  1740                 ],[
  1741                 have_pthread_sem=yes
  1742                 ])
  1743                 AC_MSG_RESULT($have_pthread_sem)
  1744             fi
  1745 
  1746             AC_MSG_CHECKING(for pthread_spin_trylock)
  1747             AC_TRY_LINK_FUNC(pthread_spin_trylock, [
  1748               has_pthread_spin_trylock=yes
  1749               AC_DEFINE(HAVE_PTHREAD_SPINLOCK, 1, [ ])
  1750             ],[
  1751               has_pthread_spin_trylock=no
  1752             ])
  1753             AC_MSG_RESULT($has_pthread_spin_trylock)
  1754 
  1755             AC_CHECK_HEADER(pthread_np.h, have_pthread_np_h=yes)
  1756             if test x$have_pthread_np_h = xyes; then
  1757                 AC_DEFINE(HAVE_PTHREAD_NP_H, 1, [ ])
  1758             fi
  1759 
  1760             # Check to see if pthread naming is available
  1761             AC_MSG_CHECKING(for pthread_setname_np)
  1762             AC_TRY_LINK_FUNC(pthread_setname_np, [
  1763               has_pthread_setname_np=yes
  1764               AC_DEFINE(HAVE_PTHREAD_SETNAME_NP, 1, [ ])
  1765             ],[
  1766               has_pthread_setname_np=no
  1767             ])
  1768             AC_MSG_RESULT($has_pthread_setname_np)
  1769 
  1770             AC_MSG_CHECKING(for pthread_set_name_np)
  1771             AC_TRY_LINK_FUNC(pthread_set_name_np, [
  1772               has_pthread_set_name_np=yes
  1773               AC_DEFINE(HAVE_PTHREAD_SET_NAME_NP, 1, [ ])
  1774             ],[
  1775               has_pthread_set_name_np=no
  1776             ])
  1777             AC_MSG_RESULT($has_pthread_set_name_np)
  1778 
  1779             # Restore the compiler flags and libraries
  1780             CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
  1781 
  1782             # Basic thread creation functions
  1783             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_systhread.c"
  1784 
  1785             # Semaphores
  1786             # We can fake these with mutexes and condition variables if necessary
  1787             if test x$have_pthread_sem = xyes; then
  1788                 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syssem.c"
  1789             else
  1790                 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syssem.c"
  1791             fi
  1792 
  1793             # Mutexes
  1794             # We can fake these with semaphores if necessary
  1795             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_sysmutex.c"
  1796 
  1797             # Condition variables
  1798             # We can fake these with semaphores and mutexes if necessary
  1799             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syscond.c"
  1800 
  1801             have_threads=yes
  1802         fi
  1803     fi
  1804 }
  1805 
  1806 dnl Determine whether the compiler can produce Windows executables
  1807 CheckWINDOWS()
  1808 {
  1809     AC_MSG_CHECKING(Windows compiler)
  1810     have_win32_gcc=no
  1811     AC_TRY_COMPILE([
  1812      #include <windows.h>
  1813     ],[
  1814     ],[
  1815     have_win32_gcc=yes
  1816     ])
  1817     AC_MSG_RESULT($have_win32_gcc)
  1818     if test x$have_win32_gcc != xyes; then
  1819        AC_MSG_ERROR([
  1820 *** Your compiler ($CC) does not produce Windows executables!
  1821        ])
  1822     fi
  1823 
  1824     AC_MSG_CHECKING(Windows CE)
  1825     have_wince=no
  1826     AC_TRY_COMPILE([
  1827 #if !defined(_WIN32_WCE) && !defined(__MINGW32CE__)
  1828 #error This is not Windows CE
  1829 #endif
  1830     ],[
  1831     ],[
  1832     have_wince=yes
  1833     ])
  1834     AC_MSG_RESULT($have_wince)
  1835 
  1836     # This fixes Windows stack alignment with newer GCC
  1837     CheckStackBoundary
  1838 }
  1839 
  1840 dnl Find the DirectX includes and libraries
  1841 CheckDIRECTX()
  1842 {
  1843     AC_ARG_ENABLE(directx,
  1844 AC_HELP_STRING([--enable-directx], [use DirectX for Windows audio/video [[default=yes]]]),
  1845                   , enable_directx=yes)
  1846     if test x$enable_directx = xyes; then
  1847         AC_CHECK_HEADER(d3d9.h, have_d3d=yes)
  1848         AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
  1849         AC_CHECK_HEADER(dsound.h, have_dsound=yes)
  1850         AC_CHECK_HEADER(dinput.h, have_dinput=yes)
  1851         AC_CHECK_HEADER(xaudio2.h, have_xaudio2=yes)
  1852     fi
  1853 }
  1854 
  1855 dnl Check for the dlfcn.h interface for dynamically loading objects
  1856 CheckDLOPEN()
  1857 {
  1858     AC_ARG_ENABLE(sdl-dlopen,
  1859 AC_HELP_STRING([--enable-sdl-dlopen], [use dlopen for shared object loading [[default=yes]]]),
  1860                   , enable_sdl_dlopen=yes)
  1861     if test x$enable_sdl_dlopen = xyes; then
  1862         AC_MSG_CHECKING(for dlopen)
  1863         have_dlopen=no
  1864         AC_TRY_COMPILE([
  1865          #include <dlfcn.h>
  1866         ],[
  1867          #if defined(MAC_OS_X_VERSION_MIN_REQUIRED) && MAC_OS_X_VERSION_MIN_REQUIRED <= 1020
  1868          #error Use dlcompat for Mac OS X 10.2 compatibility
  1869          #endif
  1870         ],[
  1871         have_dlopen=yes
  1872         ])
  1873         AC_MSG_RESULT($have_dlopen)
  1874 
  1875         if test x$have_dlopen = xyes; then
  1876             AC_CHECK_LIB(c, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS",
  1877                AC_CHECK_LIB(dl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldl",
  1878                   AC_CHECK_LIB(ltdl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lltdl")))
  1879             AC_DEFINE(SDL_LOADSO_DLOPEN, 1, [ ])
  1880             SOURCES="$SOURCES $srcdir/src/loadso/dlopen/*.c"
  1881             have_loadso=yes
  1882         fi
  1883     fi
  1884 }
  1885 
  1886 dnl Check for the usbhid(3) library on *BSD
  1887 CheckUSBHID()
  1888 {
  1889     if test x$enable_joystick = xyes; then
  1890         AC_CHECK_LIB(usbhid, hid_init, have_libusbhid=yes)
  1891         if test x$have_libusbhid = xyes; then
  1892             AC_CHECK_HEADER(usbhid.h, [USB_CFLAGS="-DHAVE_USBHID_H"])
  1893             AC_CHECK_HEADER(libusbhid.h, [USB_CFLAGS="-DHAVE_LIBUSBHID_H"])
  1894             USB_LIBS="$USB_LIBS -lusbhid"
  1895         else
  1896             AC_CHECK_HEADER(usb.h, [USB_CFLAGS="-DHAVE_USB_H"])
  1897             AC_CHECK_HEADER(libusb.h, [USB_CFLAGS="-DHAVE_LIBUSB_H"])
  1898             AC_CHECK_LIB(usb, hid_init, [USB_LIBS="$USB_LIBS -lusb"])
  1899         fi
  1900             
  1901         save_CFLAGS="$CFLAGS"
  1902         CFLAGS="$CFLAGS $USB_CFLAGS"
  1903 
  1904         AC_MSG_CHECKING(for usbhid)
  1905         have_usbhid=no
  1906         AC_TRY_COMPILE([
  1907           #include <sys/types.h>
  1908           #if defined(HAVE_USB_H)
  1909           #include <usb.h>
  1910           #endif
  1911           #ifdef __DragonFly__
  1912           # include <bus/usb/usb.h>
  1913           # include <bus/usb/usbhid.h>
  1914           #else
  1915           # include <dev/usb/usb.h>
  1916           # include <dev/usb/usbhid.h>
  1917           #endif
  1918           #if defined(HAVE_USBHID_H)
  1919           #include <usbhid.h>
  1920           #elif defined(HAVE_LIBUSB_H)
  1921           #include <libusb.h>
  1922           #elif defined(HAVE_LIBUSBHID_H)
  1923           #include <libusbhid.h>
  1924           #endif
  1925         ],[
  1926           struct report_desc *repdesc;
  1927           struct usb_ctl_report *repbuf;
  1928           hid_kind_t hidkind;
  1929         ],[
  1930         have_usbhid=yes
  1931         ])
  1932         AC_MSG_RESULT($have_usbhid)
  1933 
  1934         if test x$have_usbhid = xyes; then
  1935             AC_MSG_CHECKING(for ucr_data member of usb_ctl_report)
  1936             have_usbhid_ucr_data=no
  1937             AC_TRY_COMPILE([
  1938               #include <sys/types.h>
  1939               #if defined(HAVE_USB_H)
  1940               #include <usb.h>
  1941               #endif
  1942               #ifdef __DragonFly__
  1943               # include <bus/usb/usb.h>
  1944               # include <bus/usb/usbhid.h>
  1945               #else
  1946               # include <dev/usb/usb.h>
  1947               # include <dev/usb/usbhid.h>
  1948               #endif
  1949               #if defined(HAVE_USBHID_H)
  1950               #include <usbhid.h>
  1951               #elif defined(HAVE_LIBUSB_H)
  1952               #include <libusb.h>
  1953               #elif defined(HAVE_LIBUSBHID_H)
  1954               #include <libusbhid.h>
  1955               #endif
  1956             ],[
  1957               struct usb_ctl_report buf;
  1958               if (buf.ucr_data) { }
  1959             ],[
  1960             have_usbhid_ucr_data=yes
  1961             ])
  1962             if test x$have_usbhid_ucr_data = xyes; then
  1963                 USB_CFLAGS="$USB_CFLAGS -DUSBHID_UCR_DATA"
  1964             fi
  1965             AC_MSG_RESULT($have_usbhid_ucr_data)
  1966             
  1967             AC_MSG_CHECKING(for new usbhid API)
  1968             have_usbhid_new=no
  1969             AC_TRY_COMPILE([
  1970               #include <sys/types.h>
  1971               #if defined(HAVE_USB_H)
  1972               #include <usb.h>
  1973               #endif
  1974               #ifdef __DragonFly__
  1975               #include <bus/usb/usb.h>
  1976               #include <bus/usb/usbhid.h>
  1977               #else
  1978               #include <dev/usb/usb.h>
  1979               #include <dev/usb/usbhid.h>
  1980               #endif
  1981               #if defined(HAVE_USBHID_H)
  1982               #include <usbhid.h>
  1983               #elif defined(HAVE_LIBUSB_H)
  1984               #include <libusb.h>
  1985               #elif defined(HAVE_LIBUSBHID_H)
  1986               #include <libusbhid.h>
  1987               #endif
  1988             ],[
  1989               report_desc_t d;
  1990               hid_start_parse(d, 1, 1);
  1991             ],[
  1992             have_usbhid_new=yes
  1993             ])
  1994             if test x$have_usbhid_new = xyes; then
  1995                 USB_CFLAGS="$USB_CFLAGS -DUSBHID_NEW"
  1996             fi
  1997             AC_MSG_RESULT($have_usbhid_new)
  1998 
  1999             AC_MSG_CHECKING(for struct joystick in machine/joystick.h)
  2000             have_machine_joystick=no
  2001             AC_TRY_COMPILE([
  2002               #include <machine/joystick.h>
  2003             ],[
  2004               struct joystick t;
  2005             ],[
  2006             have_machine_joystick=yes
  2007             ])
  2008             if test x$have_machine_joystick = xyes; then
  2009                 AC_DEFINE(SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H, 1, [ ])
  2010             fi
  2011             AC_MSG_RESULT($have_machine_joystick)
  2012 
  2013             AC_DEFINE(SDL_JOYSTICK_USBHID, 1, [ ])
  2014             SOURCES="$SOURCES $srcdir/src/joystick/bsd/*.c"
  2015             EXTRA_CFLAGS="$EXTRA_CFLAGS $USB_CFLAGS"
  2016             EXTRA_LDFLAGS="$EXTRA_LDFLAGS $USB_LIBS"
  2017             have_joystick=yes
  2018         fi
  2019         CFLAGS="$save_CFLAGS"
  2020     fi
  2021 }
  2022 
  2023 dnl Check for clock_gettime()
  2024 CheckClockGettime()
  2025 {
  2026     AC_ARG_ENABLE(clock_gettime,
  2027 AC_HELP_STRING([--enable-clock_gettime], [use clock_gettime() instead of gettimeofday() on UNIX [[default=no]]]),
  2028                   , enable_clock_gettime=no)
  2029     if test x$enable_clock_gettime = xyes; then
  2030         AC_CHECK_LIB(rt, clock_gettime, have_clock_gettime=yes)
  2031         if test x$have_clock_gettime = xyes; then
  2032             AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [ ])
  2033             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lrt"
  2034         else
  2035             AC_CHECK_LIB(c, clock_gettime, have_clock_gettime=yes)
  2036             if test x$have_clock_gettime = xyes; then
  2037                AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [ ])
  2038                EXTRA_LDFLAGS="$EXTRA_LDFLAGS"
  2039             fi
  2040         fi
  2041     fi
  2042 }
  2043 
  2044 dnl Check for a valid linux/version.h
  2045 CheckLinuxVersion()
  2046 {
  2047     AC_CHECK_HEADER(linux/version.h, have_linux_version_h=yes)
  2048     if test x$have_linux_version_h = xyes; then
  2049         EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_LINUX_VERSION_H"
  2050     fi
  2051 }
  2052 
  2053 dnl Check if we want to use RPATH
  2054 CheckRPATH()
  2055 {
  2056     AC_ARG_ENABLE(rpath,
  2057 AC_HELP_STRING([--enable-rpath], [use an rpath when linking SDL [[default=yes]]]),
  2058                   , enable_rpath=yes)
  2059 }
  2060 
  2061 dnl Set up the configuration based on the host platform!
  2062 case "$host" in
  2063     *-*-linux*|*-*-uclinux*|*-*-gnu*|*-*-k*bsd*-gnu|*-*-bsdi*|*-*-freebsd*|*-*-dragonfly*|*-*-netbsd*|*-*-openbsd*|*-*-sysv5*|*-*-solaris*|*-*-hpux*|*-*-aix*|*-*-minix*)
  2064         case "$host" in
  2065             *-*-linux*)         ARCH=linux ;;
  2066             *-*-uclinux*)       ARCH=linux ;;
  2067             *-*-kfreebsd*-gnu)  ARCH=kfreebsd-gnu ;;
  2068             *-*-knetbsd*-gnu)   ARCH=knetbsd-gnu ;;
  2069             *-*-kopenbsd*-gnu)  ARCH=kopenbsd-gnu ;;
  2070             *-*-gnu*)           ARCH=gnu ;; # must be last of the gnu variants
  2071             *-*-bsdi*)          ARCH=bsdi ;;
  2072             *-*-freebsd*)       ARCH=freebsd ;;
  2073             *-*-dragonfly*)     ARCH=freebsd ;;
  2074             *-*-netbsd*)        ARCH=netbsd ;;
  2075             *-*-openbsd*)       ARCH=openbsd ;;
  2076             *-*-sysv5*)         ARCH=sysv5 ;;
  2077             *-*-solaris*)       ARCH=solaris ;;
  2078             *-*-hpux*)          ARCH=hpux ;;
  2079             *-*-aix*)           ARCH=aix ;;
  2080             *-*-minix*)         ARCH=minix ;;
  2081         esac
  2082         CheckVisibilityHidden
  2083         CheckDummyVideo
  2084         CheckDiskAudio
  2085         CheckDummyAudio
  2086         CheckDLOPEN
  2087         CheckOSS
  2088         CheckALSA
  2089         CheckPulseAudio
  2090         CheckARTSC
  2091         CheckESD
  2092         CheckNAS
  2093         CheckX11
  2094         CheckDirectFB
  2095         CheckFusionSound
  2096         CheckOpenGLX11
  2097         CheckOpenGLESX11
  2098         CheckInputEvents
  2099         CheckTslib
  2100         CheckUSBHID
  2101         CheckPTHREAD
  2102         CheckClockGettime
  2103         CheckLinuxVersion
  2104         CheckRPATH
  2105         # Set up files for the audio library
  2106         if test x$enable_audio = xyes; then
  2107           case $ARCH in
  2108             sysv5|solaris|hpux)
  2109                 AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO, 1, [ ])
  2110                 SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
  2111                 have_audio=yes
  2112             ;;
  2113             netbsd|openbsd)
  2114                 AC_DEFINE(SDL_AUDIO_DRIVER_BSD, 1, [ ])
  2115                 SOURCES="$SOURCES $srcdir/src/audio/bsd/*.c"
  2116                 have_audio=yes
  2117             ;;
  2118             aix)
  2119                 AC_DEFINE(SDL_AUDIO_DRIVER_PAUDIO, 1, [ ])
  2120                 SOURCES="$SOURCES $srcdir/src/audio/paudio/*.c"
  2121                 have_audio=yes
  2122             ;;
  2123           esac
  2124         fi
  2125         # Set up files for the joystick library
  2126         if test x$enable_joystick = xyes; then
  2127           case $ARCH in
  2128             linux)
  2129                 AC_DEFINE(SDL_JOYSTICK_LINUX, 1, [ ])
  2130                 SOURCES="$SOURCES $srcdir/src/joystick/linux/*.c"
  2131                 have_joystick=yes
  2132             ;;
  2133           esac
  2134         fi
  2135         # Set up files for the haptic library
  2136         if test x$enable_haptic = xyes; then
  2137            if test x$use_input_events = xyes; then
  2138              case $ARCH in
  2139                linux)
  2140                    AC_DEFINE(SDL_HAPTIC_LINUX, 1, [ ])
  2141                    SOURCES="$SOURCES $srcdir/src/haptic/linux/*.c"
  2142                    have_haptic=yes
  2143                ;;
  2144              esac
  2145            fi
  2146         fi
  2147         # Set up files for the power library
  2148         if test x$enable_power = xyes; then
  2149              case $ARCH in
  2150                linux)
  2151                    AC_DEFINE(SDL_POWER_LINUX, 1, [ ])
  2152                    SOURCES="$SOURCES $srcdir/src/power/linux/*.c"
  2153                    have_power=yes
  2154                ;;
  2155              esac
  2156         fi
  2157         # Set up files for the timer library
  2158         if test x$enable_timers = xyes; then
  2159             AC_DEFINE(SDL_TIMER_UNIX, 1, [ ])
  2160             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  2161             have_timers=yes
  2162         fi
  2163         ;;
  2164     *-wince* | *-mingw32ce)
  2165         ARCH=win32
  2166         CheckDummyVideo
  2167         CheckDiskAudio
  2168         CheckDummyAudio
  2169         CheckWINDOWS
  2170         if test x$enable_video = xyes; then
  2171             AC_DEFINE(SDL_VIDEO_DRIVER_WINDOWS, 1, [ ])
  2172             SOURCES="$SOURCES $srcdir/src/video/windows/*.c"
  2173             have_video=yes
  2174             AC_ARG_ENABLE(render-d3d,
  2175 AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[default=yes]]]),
  2176                                 , enable_render_d3d=yes)
  2177             enable_render_d3d=no
  2178             if test x$enable_render_d3d = xyes -a x$have_d3d = xyes; then
  2179                 AC_DEFINE(SDL_VIDEO_RENDER_D3D, 1, [ ])
  2180             fi
  2181         fi
  2182         # Set up files for the audio library
  2183         if test x$enable_audio = xyes; then
  2184             AC_DEFINE(SDL_AUDIO_DRIVER_WINMM, 1, [ ])
  2185             SOURCES="$SOURCES $srcdir/src/audio/winmm/*.c"
  2186             if test x$have_dsound = xyes; then
  2187                 AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND, 1, [ ])
  2188                 SOURCES="$SOURCES $srcdir/src/audio/directsound/*.c"
  2189             fi
  2190             if test x$have_xaudio2 = xyes; then
  2191                 AC_DEFINE(SDL_AUDIO_DRIVER_XAUDIO2, 1, [ ])
  2192                 SOURCES="$SOURCES $srcdir/src/audio/xaudio2/*.c"
  2193             fi
  2194             have_audio=yes
  2195         fi
  2196         # Set up dummy files for the joystick for now
  2197         if test x$enable_joystick = xyes; then
  2198             AC_DEFINE(SDL_JOYSTICK_DUMMY, 1, [ ])
  2199             SOURCES="$SOURCES $srcdir/src/joystick/dummy/*.c"
  2200             have_joystick=yes
  2201         fi
  2202         # Set up files for the thread library
  2203         if test x$enable_threads = xyes; then
  2204             AC_DEFINE(SDL_THREAD_WINDOWS, 1, [ ])
  2205             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_sysmutex.c"
  2206             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_syssem.c"
  2207             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_systhread.c"
  2208             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
  2209             have_threads=yes
  2210         fi
  2211         # Set up files for the timer library
  2212         if test x$enable_timers = xyes; then
  2213             AC_DEFINE(SDL_TIMER_WINCE, 1, [ ])
  2214             SOURCES="$SOURCES $srcdir/src/timer/wince/*.c"
  2215             have_timers=yes
  2216         fi
  2217         # Set up files for the shared object loading library
  2218         if test x$enable_loadso = xyes; then
  2219             AC_DEFINE(SDL_LOADSO_WINDOWS, 1, [ ])
  2220             SOURCES="$SOURCES $srcdir/src/loadso/windows/*.c"
  2221             have_loadso=yes
  2222         fi
  2223         # Set up the system libraries we need
  2224         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lcoredll -lcommctrl -lmmtimer"
  2225 
  2226 	# mingw32ce library
  2227 	case "$host" in
  2228     	    *-mingw32ce)
  2229     		EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lmingwex"
  2230     		;;
  2231     	    *)
  2232         	;;
  2233 	esac
  2234 
  2235         # The Windows platform requires special setup
  2236         SDLMAIN_SOURCES="$srcdir/src/main/windows/*.c"
  2237         EXTRA_CFLAGS="$EXTRA_CFLAGS -Dmain=SDL_main -D_WIN32_WCE=0x420"
  2238         EXTRA_LDFLAGS="-lSDLmain $EXTRA_LDFLAGS"
  2239         ;;
  2240     *-*-cygwin* | *-*-mingw32*)
  2241         ARCH=win32
  2242         if test "$build" != "$host"; then # cross-compiling
  2243             # Default cross-compile location
  2244             ac_default_prefix=/usr/local/cross-tools/$host
  2245         else
  2246             # Look for the location of the tools and install there
  2247             if test "$BUILD_PREFIX" != ""; then
  2248                 ac_default_prefix=$BUILD_PREFIX
  2249             fi
  2250         fi
  2251         CheckDummyVideo
  2252         CheckDiskAudio
  2253         CheckDummyAudio
  2254         CheckWINDOWS
  2255         CheckWINDOWSGL
  2256         CheckDIRECTX
  2257 
  2258         # Set up the core platform files
  2259         SOURCES="$SOURCES $srcdir/src/core/windows/*.c"
  2260 
  2261         # Set up files for the video library
  2262         if test x$enable_video = xyes; then
  2263             AC_DEFINE(SDL_VIDEO_DRIVER_WINDOWS, 1, [ ])
  2264             SOURCES="$SOURCES $srcdir/src/video/windows/*.c"
  2265             have_video=yes
  2266             AC_ARG_ENABLE(render-d3d,
  2267 AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[default=yes]]]),
  2268                                 , enable_render_d3d=yes)
  2269             if test x$enable_render_d3d = xyes -a x$have_d3d = xyes; then
  2270                 AC_DEFINE(SDL_VIDEO_RENDER_D3D, 1, [ ])
  2271             fi
  2272         fi
  2273         # Set up files for the audio library
  2274         if test x$enable_audio = xyes; then
  2275             AC_DEFINE(SDL_AUDIO_DRIVER_WINMM, 1, [ ])
  2276             SOURCES="$SOURCES $srcdir/src/audio/winmm/*.c"
  2277             if test x$have_dsound = xyes; then
  2278                 AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND, 1, [ ])
  2279                 SOURCES="$SOURCES $srcdir/src/audio/directsound/*.c"
  2280             fi
  2281             if test x$have_xaudio2 = xyes; then
  2282                 AC_DEFINE(SDL_AUDIO_DRIVER_XAUDIO2, 1, [ ])
  2283                 SOURCES="$SOURCES $srcdir/src/audio/xaudio2/*.c"
  2284             fi
  2285             have_audio=yes
  2286         fi
  2287         # Set up files for the joystick library
  2288         if test x$enable_joystick = xyes; then
  2289             if test x$have_dinput = xyes; then
  2290                 AC_DEFINE(SDL_JOYSTICK_DINPUT, 1, [ ])
  2291                 SOURCES="$SOURCES $srcdir/src/joystick/windows/SDL_dxjoystick.c"
  2292                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldinput8 -ldxguid -ldxerr8"
  2293             else
  2294                 AC_DEFINE(SDL_JOYSTICK_WINMM, 1, [ ])
  2295                 SOURCES="$SOURCES $srcdir/src/joystick/windows/SDL_mmjoystick.c"
  2296             fi
  2297             have_joystick=yes
  2298         fi
  2299         if test x$enable_haptic = xyes; then
  2300             if test x$have_dinput = xyes; then
  2301                 AC_DEFINE(SDL_HAPTIC_DINPUT, 1, [ ])
  2302                 SOURCES="$SOURCES $srcdir/src/haptic/windows/SDL_syshaptic.c"
  2303                 have_haptic=yes
  2304             fi
  2305         fi
  2306         if test x$enable_power = xyes; then
  2307             AC_DEFINE(SDL_POWER_WINDOWS, 1, [ ])
  2308             SOURCES="$SOURCES $srcdir/src/power/windows/SDL_syspower.c"
  2309             have_power=yes
  2310         fi
  2311         # Set up files for the thread library
  2312         if test x$enable_threads = xyes; then
  2313             AC_DEFINE(SDL_THREAD_WINDOWS, 1, [ ])
  2314             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_sysmutex.c"
  2315             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_syssem.c"
  2316             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_systhread.c"
  2317             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
  2318             have_threads=yes
  2319         fi
  2320         # Set up files for the timer library
  2321         if test x$enable_timers = xyes; then
  2322             AC_DEFINE(SDL_TIMER_WINDOWS, 1, [ ])
  2323             SOURCES="$SOURCES $srcdir/src/timer/windows/*.c"
  2324             have_timers=yes
  2325         fi
  2326         # Set up files for the shared object loading library
  2327         if test x$enable_loadso = xyes; then
  2328             AC_DEFINE(SDL_LOADSO_WINDOWS, 1, [ ])
  2329             SOURCES="$SOURCES $srcdir/src/loadso/windows/*.c"
  2330             have_loadso=yes
  2331         fi
  2332         # Set up the system libraries we need
  2333         # SDL 1.3 is unicode, and unicows emulates this on Windows 98/ME
  2334         # You can get this here: http://libunicows.sourceforge.net/
  2335         #EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lunicows"
  2336         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lversion -luuid"
  2337         # The Windows platform requires special setup
  2338         VERSION_SOURCES="$srcdir/src/main/windows/*.rc"
  2339         SDLMAIN_SOURCES="$srcdir/src/main/windows/*.c"
  2340         SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
  2341         SDL_LIBS="-lmingw32 -lSDLmain $SDL_LIBS -mwindows"
  2342         ;;
  2343     *-*-beos* | *-*-haiku*)
  2344         ARCH=beos
  2345         ac_default_prefix=/boot/develop/tools/gnupro
  2346         CheckDummyVideo
  2347         CheckDiskAudio
  2348         CheckDummyAudio
  2349         CheckBWINDOW
  2350         CheckBeGL
  2351         # Set up files for the audio library
  2352         if test x$enable_audio = xyes; then
  2353             AC_DEFINE(SDL_AUDIO_DRIVER_BEOSAUDIO, 1, [ ])
  2354             SOURCES="$SOURCES $srcdir/src/audio/baudio/*.cc"
  2355             have_audio=yes
  2356         fi
  2357         # Set up files for the joystick library
  2358         if test x$enable_joystick = xyes; then
  2359             AC_DEFINE(SDL_JOYSTICK_BEOS, 1, [ ])
  2360             SOURCES="$SOURCES $srcdir/src/joystick/beos/*.cc"
  2361             have_joystick=yes
  2362         fi
  2363         # Set up files for the thread library
  2364         if test x$enable_threads = xyes; then
  2365             AC_DEFINE(SDL_THREAD_BEOS, 1, [ ])
  2366             SOURCES="$SOURCES $srcdir/src/thread/beos/*.c"
  2367             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_sysmutex.c"
  2368             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
  2369             have_threads=yes
  2370         fi
  2371         # Set up files for the timer library
  2372         if test x$enable_timers = xyes; then
  2373             AC_DEFINE(SDL_TIMER_BEOS, 1, [ ])
  2374             SOURCES="$SOURCES $srcdir/src/timer/beos/*.c"
  2375             have_timers=yes
  2376         fi
  2377         # Set up files for the shared object loading library
  2378         if test x$enable_loadso = xyes; then
  2379             AC_DEFINE(SDL_LOADSO_BEOS, 1, [ ])
  2380             SOURCES="$SOURCES $srcdir/src/loadso/beos/*.c"
  2381             have_loadso=yes
  2382         fi
  2383         # Set up files for the system power library
  2384         if test x$enable_power = xyes; then
  2385             AC_DEFINE(SDL_POWER_BEOS, 1, [ ])
  2386             SOURCES="$SOURCES $srcdir/src/power/beos/*.c"
  2387             have_power=yes
  2388         fi
  2389         # The BeOS platform requires special setup.
  2390         SOURCES="$srcdir/src/main/beos/*.cc $SOURCES"
  2391         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding"
  2392         ;;
  2393     *-*-darwin* )
  2394         # This could be either full "Mac OS X", or plain "Darwin" which is
  2395         # just the OS X kernel sans upper layers like Carbon and Cocoa.
  2396         # Next line is broken, and a few files below require Mac OS X (full)
  2397         ARCH=macosx
  2398 
  2399         # Mac OS X builds with both the Carbon and OSX APIs at the moment
  2400         EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_CARBON"
  2401         EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_OSX"
  2402 
  2403         CheckVisibilityHidden
  2404         CheckDummyVideo
  2405         CheckDiskAudio
  2406         CheckDummyAudio
  2407         CheckDLOPEN
  2408         CheckCOCOA
  2409         CheckX11
  2410         CheckMacGL
  2411         CheckOpenGLX11
  2412         CheckPTHREAD
  2413 
  2414         # Good optimization on Mac OS X, yes...
  2415         EXTRA_CFLAGS="$EXTRA_CFLAGS -falign-loops=16"
  2416 
  2417         # Need this or things might misbuild on a G3.
  2418         EXTRA_CFLAGS="$EXTRA_CFLAGS -force_cpusubtype_ALL"
  2419 
  2420         # Set up files for the audio library
  2421         if test x$enable_audio = xyes; then
  2422             AC_DEFINE(SDL_AUDIO_DRIVER_COREAUDIO, 1, [ ])
  2423             SOURCES="$SOURCES $srcdir/src/audio/coreaudio/*.c"
  2424             have_audio=yes
  2425         fi
  2426         # Set up files for the joystick library
  2427         if test x$enable_joystick = xyes; then
  2428             AC_DEFINE(SDL_JOYSTICK_IOKIT, 1, [ ])
  2429             SOURCES="$SOURCES $srcdir/src/joystick/darwin/*.c"
  2430             have_joystick=yes
  2431         fi
  2432         # Set up files for the haptic library
  2433         if test x$enable_haptic = xyes; then
  2434             AC_DEFINE(SDL_HAPTIC_IOKIT, 1, [ ])
  2435             SOURCES="$SOURCES $srcdir/src/haptic/darwin/*.c"
  2436             have_haptic=yes
  2437             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,ForceFeedback"
  2438         fi
  2439         # Set up files for the power library
  2440         if test x$enable_power = xyes; then
  2441             AC_DEFINE(SDL_POWER_MACOSX, 1, [ ])
  2442             SOURCES="$SOURCES $srcdir/src/power/macosx/*.c"
  2443             have_power=yes
  2444         fi
  2445         # Set up files for the timer library
  2446         if test x$enable_timers = xyes; then
  2447             AC_DEFINE(SDL_TIMER_UNIX, 1, [ ])
  2448             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  2449             have_timers=yes
  2450         fi
  2451         # Set up additional files for the file library
  2452         if test x$enable_file = xyes; then
  2453             SOURCES="$SOURCES $srcdir/src/file/cocoa/*.m"
  2454         fi
  2455         # The Mac OS X platform requires special setup.
  2456         EXTRA_CFLAGS="$EXTRA_CFLAGS -fpascal-strings"
  2457         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lobjc"
  2458         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Cocoa"
  2459         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Carbon"
  2460         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,IOKit"
  2461         # If audio is used, add the AudioUnit framework
  2462         if test x$enable_audio = xyes; then
  2463             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit"
  2464         fi
  2465         ;;
  2466     *)
  2467         AC_MSG_ERROR([
  2468 *** Unsupported host:  Please add to configure.in
  2469         ])
  2470         ;;
  2471 esac
  2472 
  2473 dnl Do this on all platforms, after everything else.
  2474 CheckWarnAll
  2475 
  2476 # Verify that we have all the platform specific files we need
  2477 
  2478 if test x$have_joystick != xyes; then
  2479     if test x$enable_joystick = xyes; then
  2480         AC_DEFINE(SDL_JOYSTICK_DISABLED, 1, [ ])
  2481     fi
  2482     SOURCES="$SOURCES $srcdir/src/joystick/dummy/*.c"
  2483 fi
  2484 if test x$have_haptic != xyes; then
  2485     if test x$enable_haptic = xyes; then
  2486         AC_DEFINE(SDL_HAPTIC_DISABLED, 1, [ ])
  2487     fi
  2488     SOURCES="$SOURCES $srcdir/src/haptic/dummy/*.c"
  2489 fi
  2490 if test x$have_threads != xyes; then
  2491     if test x$enable_threads = xyes; then
  2492         AC_DEFINE(SDL_THREADS_DISABLED, 1, [ ])
  2493     fi
  2494     SOURCES="$SOURCES $srcdir/src/thread/generic/*.c"
  2495 fi
  2496 if test x$have_timers != xyes; then
  2497     if test x$enable_timers = xyes; then
  2498         AC_DEFINE(SDL_TIMERS_DISABLED, 1, [ ])
  2499     fi
  2500     SOURCES="$SOURCES $srcdir/src/timer/dummy/*.c"
  2501 fi
  2502 if test x$have_loadso != xyes; then
  2503     if test x$enable_loadso = xyes; then
  2504         AC_DEFINE(SDL_LOADSO_DISABLED, 1, [ ])
  2505     fi
  2506     SOURCES="$SOURCES $srcdir/src/loadso/dummy/*.c"
  2507 fi
  2508 if test x$SDLMAIN_SOURCES = x; then
  2509     SDLMAIN_SOURCES="$srcdir/src/main/dummy/*.c"
  2510 fi
  2511 
  2512 OBJECTS=`echo $SOURCES`
  2513 DEPENDS=`echo $SOURCES | tr ' ' '\n'`
  2514 for EXT in asm cc m c S; do
  2515     OBJECTS=`echo "$OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.'$EXT',$(objects)/\1.lo,g'`
  2516     DEPENDS=`echo "$DEPENDS" | sed "s,^\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.$EXT\\$,\\\\
  2517 \\$(objects)/\\2.lo: \\1/\\2.$EXT\\\\
  2518 	\\$(LIBTOOL) --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
  2519 done
  2520 
  2521 VERSION_OBJECTS=`echo $VERSION_SOURCES`
  2522 VERSION_DEPENDS=`echo $VERSION_SOURCES`
  2523 VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'`
  2524 VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.rc,\\\\
  2525 \\$(objects)/\\2.o: \\1/\\2.rc\\\\
  2526 	\\$(WINDRES) \\$< \\$@,g"`
  2527 
  2528 SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
  2529 SDLMAIN_DEPENDS=`echo $SDLMAIN_SOURCES`
  2530 SDLMAIN_OBJECTS=`echo "$SDLMAIN_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.o,g'`
  2531 SDLMAIN_DEPENDS=`echo "$SDLMAIN_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\
  2532 \\$(objects)/\\2.o: \\1/\\2.c\\\\
  2533 	\\$(LIBTOOL) --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
  2534 
  2535 # Set runtime shared library paths as needed
  2536 
  2537 if test "x$enable_rpath" = "xyes"; then
  2538   if test $ARCH = bsdi -o $ARCH = freebsd -o $ARCH = linux -o $ARCH = netbsd; then
  2539     SDL_RLD_FLAGS="-Wl,-rpath,\${libdir}"
  2540   fi
  2541   if test $ARCH = solaris; then
  2542     SDL_RLD_FLAGS="-R\${libdir}"
  2543   fi
  2544 else
  2545   SDL_RLD_FLAGS=""
  2546 fi
  2547 
  2548 case "$ARCH" in
  2549   macosx)
  2550     # Evil hack to allow static linking on Mac OS X
  2551     SDL_STATIC_LIBS="\${libdir}/libSDL.a $EXTRA_LDFLAGS"
  2552     ;;
  2553   *)
  2554     SDL_STATIC_LIBS="$SDL_LIBS $EXTRA_LDFLAGS"
  2555     ;;
  2556 esac
  2557 
  2558 dnl Expand the cflags and libraries needed by apps using SDL
  2559 AC_SUBST(SDL_CFLAGS)
  2560 AC_SUBST(SDL_LIBS)
  2561 AC_SUBST(SDL_STATIC_LIBS)
  2562 AC_SUBST(SDL_RLD_FLAGS)
  2563 if test x$enable_shared = xyes; then
  2564     ENABLE_SHARED_TRUE=
  2565     ENABLE_SHARED_FALSE="#"
  2566 else
  2567     ENABLE_SHARED_TRUE="#"
  2568     ENABLE_SHARED_FALSE=
  2569 fi
  2570 if test x$enable_static = xyes; then
  2571     ENABLE_STATIC_TRUE=
  2572     ENABLE_STATIC_FALSE="#"
  2573 else
  2574     ENABLE_STATIC_TRUE="#"
  2575     ENABLE_STATIC_FALSE=
  2576 fi
  2577 AC_SUBST(ENABLE_SHARED_TRUE)
  2578 AC_SUBST(ENABLE_SHARED_FALSE)
  2579 AC_SUBST(ENABLE_STATIC_TRUE)
  2580 AC_SUBST(ENABLE_STATIC_FALSE)
  2581 
  2582 dnl Expand the sources and objects needed to build the library
  2583 AC_SUBST(ac_aux_dir)
  2584 AC_SUBST(INCLUDE)
  2585 AC_SUBST(OBJECTS)
  2586 AC_SUBST(VERSION_OBJECTS)
  2587 AC_SUBST(SDLMAIN_OBJECTS)
  2588 AC_SUBST(BUILD_CFLAGS)
  2589 AC_SUBST(EXTRA_CFLAGS)
  2590 AC_SUBST(BUILD_LDFLAGS)
  2591 AC_SUBST(EXTRA_LDFLAGS)
  2592 AC_SUBST(WINDRES)
  2593 
  2594 cat >Makefile.rules <<__EOF__
  2595 
  2596 # Build rules for objects
  2597 -include \$(OBJECTS:.lo=.d)
  2598 
  2599 # Special dependency for SDL.c, since it depends on SDL_revision.h
  2600 $srcdir/src/SDL.c: update-revision
  2601 $DEPENDS
  2602 $VERSION_DEPENDS
  2603 $SDLMAIN_DEPENDS
  2604 __EOF__
  2605 
  2606 AC_CONFIG_FILES([
  2607     Makefile:Makefile.in:Makefile.rules sdl-config SDL.spec sdl.pc
  2608 ])
  2609 AC_OUTPUT