configure.in
author Ryan C. Gordon <icculus@icculus.org>
Sun, 02 Feb 2014 23:41:46 -0500
changeset 8153 3e43c73ac79b
parent 8147 9802c269104f
child 8158 429513cb6707
permissions -rw-r--r--
Added Mir video target (thanks, Brandon!).
     1 dnl Process this file with autoconf to produce a configure script.
     2 AC_INIT(README.txt)
     3 AC_CONFIG_HEADER(include/SDL_config.h)
     4 AC_CONFIG_AUX_DIR(build-scripts)
     5 AC_CONFIG_MACRO_DIR([acinclude])
     6 
     7 dnl Save the CFLAGS to see whether they were passed in or generated
     8 orig_CFLAGS="$CFLAGS"
     9 
    10 dnl Set various version strings - taken gratefully from the GTk sources
    11 #
    12 # Making releases:
    13 # Edit include/SDL_version.h and change the version, then:
    14 #   SDL_MICRO_VERSION += 1;
    15 #   SDL_INTERFACE_AGE += 1;
    16 #   SDL_BINARY_AGE += 1;
    17 # if any functions have been added, set SDL_INTERFACE_AGE to 0.
    18 # if backwards compatibility has been broken,
    19 # set SDL_BINARY_AGE and SDL_INTERFACE_AGE to 0.
    20 #
    21 SDL_MAJOR_VERSION=2
    22 SDL_MINOR_VERSION=0
    23 SDL_MICRO_VERSION=1
    24 SDL_INTERFACE_AGE=0
    25 SDL_BINARY_AGE=1
    26 SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
    27 
    28 AC_SUBST(SDL_MAJOR_VERSION)
    29 AC_SUBST(SDL_MINOR_VERSION)
    30 AC_SUBST(SDL_MICRO_VERSION)
    31 AC_SUBST(SDL_INTERFACE_AGE)
    32 AC_SUBST(SDL_BINARY_AGE)
    33 AC_SUBST(SDL_VERSION)
    34 
    35 # libtool versioning
    36 LT_INIT([win32-dll])
    37 
    38 LT_RELEASE=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION
    39 LT_CURRENT=`expr $SDL_MICRO_VERSION - $SDL_INTERFACE_AGE`
    40 LT_REVISION=$SDL_INTERFACE_AGE
    41 LT_AGE=`expr $SDL_BINARY_AGE - $SDL_INTERFACE_AGE`
    42 m4_pattern_allow([^LT_])
    43 
    44 AC_SUBST(LT_RELEASE)
    45 AC_SUBST(LT_CURRENT)
    46 AC_SUBST(LT_REVISION)
    47 AC_SUBST(LT_AGE)
    48 
    49 dnl Detect the canonical build and host environments
    50 dnl AC_CANONICAL_HOST
    51 
    52 dnl Check for tools
    53 AC_PROG_LIBTOOL
    54 AC_PROG_CC
    55 AC_PROG_CXX
    56 AC_PROG_INSTALL
    57 AC_PROG_MAKE_SET
    58 AC_CHECK_TOOL(WINDRES, [windres], [:])
    59 
    60 dnl Make sure that srcdir is a full pathname
    61 case "$host" in
    62     *-*-mingw32*)
    63         # Except on msys, where make can't handle full pathnames (bug 1972)
    64         ;;
    65     *)
    66         srcdir=`cd $srcdir && pwd`
    67         ;;
    68 esac
    69 
    70 dnl Set up the compiler and linker flags
    71 INCLUDE="-I$srcdir/include"
    72 if test x$srcdir != x.; then
    73     INCLUDE="-Iinclude $INCLUDE"
    74 elif test -d .hg; then
    75     AC_MSG_ERROR([
    76 *** When building from Mercurial you should configure and build in a
    77     separate directory so you don't clobber SDL_config.h, SDL_revision.h
    78 ])
    79 fi
    80 BASE_CFLAGS=""
    81 BASE_LDFLAGS=""
    82 case "$host" in
    83     *-*-cygwin*)
    84         # We build SDL on cygwin without the UNIX emulation layer
    85         save_CFLAGS="$CFLAGS"
    86         have_no_cygwin=no
    87         AC_MSG_CHECKING(for GCC -mno-cygwin option)
    88         CFLAGS="$save_CFLAGS -mno-cygwin"
    89 
    90         AC_TRY_COMPILE([
    91         ],[
    92         ],[
    93         have_no_cygwin=yes
    94         ])
    95         AC_MSG_RESULT($have_no_cygwin)
    96         CFLAGS="$save_CFLAGS"
    97 
    98         if test x$have_no_cygwin = xyes; then
    99             BASE_CFLAGS="-mno-cygwin"
   100             BASE_LDFLAGS="-mno-cygwin"
   101         fi
   102         BASE_CFLAGS="$BASE_CFLAGS -I/usr/include/mingw"
   103         ;;
   104 esac
   105 # Uncomment the following line if you want to force SDL and applications
   106 # built with it to be compiled for a particular architecture.
   107 #AX_GCC_ARCHFLAG([no], [BASE_CFLAGS="$BASE_CFLAGS $ax_cv_gcc_archflag]")
   108 BUILD_CFLAGS="$CFLAGS $CPPFLAGS -DUSING_GENERATED_CONFIG_H"
   109 # The default optimization for SDL is -O3 (Bug #31)
   110 if test "x$orig_CFLAGS" = x; then
   111     BUILD_CFLAGS=`echo $BUILD_CFLAGS | sed 's/-O2/-O3/'`
   112 fi
   113 EXTRA_CFLAGS="$INCLUDE $BASE_CFLAGS"
   114 BUILD_LDFLAGS="$LDFLAGS"
   115 EXTRA_LDFLAGS="$BASE_LDFLAGS"
   116 ## These are common directories to find software packages
   117 #for path in /usr/freeware /usr/pkg /usr/X11R6 /usr/local; do
   118 #    if test -d $path/include; then
   119 #        EXTRA_CFLAGS="$EXTRA_CFLAGS -I$path/include"
   120 #    fi
   121 #    if test -d $path/lib; then
   122 #        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -L$path/lib"
   123 #    fi
   124 #done
   125 SDL_CFLAGS="$BASE_CFLAGS"
   126 SDL_LIBS="-lSDL2 $BASE_LDFLAGS"
   127 CPPFLAGS="$CPPFLAGS $EXTRA_CFLAGS"
   128 CFLAGS="$CFLAGS $EXTRA_CFLAGS"
   129 LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS"
   130 
   131 dnl set this to use on systems that use lib64 instead of lib
   132 base_libdir=`echo \${libdir} | sed 's/.*\/\(.*\)/\1/; q'`
   133 
   134 dnl Function to find a library in the compiler search path
   135 find_lib()
   136 {
   137     gcc_bin_path=[`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
   138     gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
   139     env_lib_path=[`echo $LIBS $LDFLAGS $* | sed 's/-L[ ]*//g'`]
   140     if test "$cross_compiling" = yes; then
   141         host_lib_path=""
   142     else
   143         host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
   144     fi
   145     for path in $gcc_bin_path $gcc_lib_path $env_lib_path $host_lib_path; do
   146         lib=[`ls -- $path/$1 2>/dev/null | sed -e '/\.so\..*\./d' -e 's,.*/,,' | sort | tail -1`]
   147         if test x$lib != x; then
   148             echo $lib
   149             return
   150         fi
   151     done
   152 }
   153 
   154 dnl Check for compiler characteristics
   155 AC_C_CONST
   156 AC_C_INLINE
   157 AC_C_VOLATILE
   158 
   159 dnl See whether we want assertions for debugging/sanity checking SDL itself.
   160 AC_ARG_ENABLE(assertions,
   161 AC_HELP_STRING([--enable-assertions],
   162                [Enable internal sanity checks (auto/disabled/release/enabled/paranoid) [[default=auto]]]),
   163               , enable_assertions=auto)
   164 case "$enable_assertions" in
   165     auto) # Use optimization settings to determine assertion level
   166         ;;
   167     disabled)
   168         AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 0, [ ])
   169         ;;
   170     release)
   171         AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 1, [ ])
   172         ;;
   173     enabled)
   174         AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 2, [ ])
   175         ;;
   176     paranoid)
   177         AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 3, [ ])
   178         ;;
   179     *)
   180         AC_MSG_ERROR([*** unknown assertion level. stop.])
   181         ;;
   182 esac
   183 
   184 dnl See whether we can use gcc style dependency tracking
   185 AC_ARG_ENABLE(dependency-tracking,
   186 AC_HELP_STRING([--enable-dependency-tracking],
   187                [Use gcc -MMD -MT dependency tracking [[default=yes]]]),
   188               , enable_dependency_tracking=yes)
   189 if test x$enable_dependency_tracking = xyes; then
   190     have_gcc_mmd_mt=no
   191     AC_MSG_CHECKING(for GCC -MMD -MT option)
   192     AC_TRY_COMPILE([
   193     #if !defined(__GNUC__) || __GNUC__ < 3
   194     #error Dependency tracking requires GCC 3.0 or newer
   195     #endif
   196     ],[
   197     ],[
   198     have_gcc_mmd_mt=yes
   199     ])
   200     AC_MSG_RESULT($have_gcc_mmd_mt)
   201 
   202     if test x$have_gcc_mmd_mt = xyes; then
   203         DEPENDENCY_TRACKING_OPTIONS="-MMD -MT \$@"
   204     fi
   205 fi
   206 
   207 AC_MSG_CHECKING(for linker option --no-undefined)
   208 have_no_undefined=no
   209 case "$host" in
   210     dnl Skip this on platforms where it is just simply busted.
   211     *-*-openbsd*)
   212         ;;
   213 
   214     *)
   215         save_LDFLAGS="$LDFLAGS"
   216         LDFLAGS="$LDFLAGS -Wl,--no-undefined"
   217         AC_TRY_LINK([
   218         ],[
   219         ],[
   220         have_no_undefined=yes
   221         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,--no-undefined"
   222         ])
   223         LDFLAGS="$save_LDFLAGS"
   224         ;;
   225 esac
   226 AC_MSG_RESULT($have_no_undefined)
   227 
   228 dnl See whether we are allowed to use the system C library
   229 AC_ARG_ENABLE(libc,
   230 AC_HELP_STRING([--enable-libc], [Use the system C library [[default=yes]]]),
   231               , enable_libc=yes)
   232 if test x$enable_libc = xyes; then
   233     AC_DEFINE(HAVE_LIBC, 1, [ ])
   234 
   235     dnl Check for C library headers
   236     AC_HEADER_STDC
   237     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)
   238 
   239     dnl Check for typedefs, structures, etc.
   240     AC_TYPE_SIZE_T
   241 
   242     dnl Check for defines
   243     AC_CHECK_DEFINE(M_PI, math.h)
   244 
   245     dnl Checks for library functions.
   246     case "$host" in
   247     *-*-cygwin* | *-*-mingw32*)
   248         ;;
   249     *)
   250         AC_FUNC_ALLOCA
   251         ;;
   252     esac
   253 
   254     AC_FUNC_MEMCMP
   255     if test x$ac_cv_func_memcmp_working = xyes; then
   256         AC_DEFINE(HAVE_MEMCMP, 1, [ ])
   257     fi
   258     AC_FUNC_STRTOD
   259     if test x$ac_cv_func_strtod = xyes; then
   260         AC_DEFINE(HAVE_STRTOD, 1, [ ])
   261     fi
   262     AC_CHECK_FUNC(mprotect,
   263         AC_TRY_COMPILE([
   264           #include <sys/types.h>
   265           #include <sys/mman.h>
   266         ],[
   267         ],[
   268         AC_DEFINE(HAVE_MPROTECT, 1, [ ])
   269         ]),
   270     )
   271     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 vsscanf vsnprintf fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname)
   272 
   273     AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"])
   274     AC_CHECK_FUNCS(atan atan2 acos asin ceil copysign cos cosf fabs floor log pow scalbn sin sinf sqrt)
   275 
   276     AC_CHECK_LIB(iconv, iconv_open, [LIBS="$LIBS -liconv"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -liconv"])
   277     AC_CHECK_FUNCS(iconv)
   278 
   279     AC_CHECK_MEMBER(struct sigaction.sa_sigaction,[AC_DEFINE(HAVE_SA_SIGACTION)], ,[#include <signal.h>])
   280 fi
   281 
   282 dnl AC_CHECK_SIZEOF(void*)
   283 
   284 dnl See whether we can use gcc atomic operations on this architecture
   285 AC_ARG_ENABLE(gcc-atomics,
   286 AC_HELP_STRING([--enable-gcc-atomics],
   287                [Use gcc builtin atomics [[default=yes]]]),
   288               , enable_gcc_atomics=yes)
   289 if test x$enable_gcc_atomics = xyes; then
   290     have_gcc_atomics=no
   291     AC_MSG_CHECKING(for GCC builtin atomic operations)
   292     AC_TRY_LINK([
   293     ],[
   294     int a;
   295     void *x, *y, *z;
   296     __sync_lock_test_and_set(&a, 4);
   297     __sync_lock_test_and_set(&x, y);
   298     __sync_fetch_and_add(&a, 1);
   299     __sync_bool_compare_and_swap(&a, 5, 10);
   300     __sync_bool_compare_and_swap(&x, y, z);
   301     ],[
   302     have_gcc_atomics=yes
   303     ])
   304     AC_MSG_RESULT($have_gcc_atomics)
   305 
   306     if test x$have_gcc_atomics = xyes; then
   307         AC_DEFINE(HAVE_GCC_ATOMICS, 1, [ ])
   308     else
   309         # See if we have the minimum operation needed for GCC atomics
   310         AC_TRY_LINK([
   311         ],[
   312         int a;
   313         __sync_lock_test_and_set(&a, 1);
   314         __sync_lock_release(&a);
   315         ],[
   316         have_gcc_sync_lock_test_and_set=yes
   317         ])
   318         if test x$have_gcc_sync_lock_test_and_set = xyes; then
   319             AC_DEFINE(HAVE_GCC_SYNC_LOCK_TEST_AND_SET, 1, [ ])
   320         fi
   321     fi
   322 fi
   323 
   324 # Standard C sources
   325 SOURCES="$SOURCES $srcdir/src/*.c"
   326 SOURCES="$SOURCES $srcdir/src/atomic/*.c"
   327 SOURCES="$SOURCES $srcdir/src/audio/*.c"
   328 SOURCES="$SOURCES $srcdir/src/cpuinfo/*.c"
   329 SOURCES="$SOURCES $srcdir/src/dynapi/*.c"
   330 SOURCES="$SOURCES $srcdir/src/events/*.c"
   331 SOURCES="$SOURCES $srcdir/src/file/*.c"
   332 SOURCES="$SOURCES $srcdir/src/haptic/*.c"
   333 SOURCES="$SOURCES $srcdir/src/joystick/*.c"
   334 SOURCES="$SOURCES $srcdir/src/libm/*.c"
   335 SOURCES="$SOURCES $srcdir/src/power/*.c"
   336 #SOURCES="$SOURCES $srcdir/src/filesystem/*.c"
   337 SOURCES="$SOURCES $srcdir/src/render/*.c"
   338 SOURCES="$SOURCES $srcdir/src/render/*/*.c"
   339 SOURCES="$SOURCES $srcdir/src/stdlib/*.c"
   340 SOURCES="$SOURCES $srcdir/src/thread/*.c"
   341 SOURCES="$SOURCES $srcdir/src/timer/*.c"
   342 SOURCES="$SOURCES $srcdir/src/video/*.c"
   343 
   344 dnl Enable/disable various subsystems of the SDL library
   345 
   346 AC_ARG_ENABLE(atomic,
   347 AC_HELP_STRING([--enable-atomic], [Enable the atomic operations subsystem [[default=yes]]]),
   348               , enable_atomic=yes)
   349 if test x$enable_atomic != xyes; then
   350     AC_DEFINE(SDL_ATOMIC_DISABLED, 1, [ ])
   351 else
   352     SUMMARY_modules="${SUMMARY_modules} atomic"
   353 fi
   354 AC_ARG_ENABLE(audio,
   355 AC_HELP_STRING([--enable-audio], [Enable the audio subsystem [[default=yes]]]),
   356               , enable_audio=yes)
   357 if test x$enable_audio != xyes; then
   358     AC_DEFINE(SDL_AUDIO_DISABLED, 1, [ ])
   359 else
   360     SUMMARY_modules="${SUMMARY_modules} audio"
   361 fi
   362 AC_ARG_ENABLE(video,
   363 AC_HELP_STRING([--enable-video], [Enable the video subsystem [[default=yes]]]),
   364               , enable_video=yes)
   365 if test x$enable_video != xyes; then
   366     AC_DEFINE(SDL_VIDEO_DISABLED, 1, [ ])
   367 else
   368     SUMMARY_modules="${SUMMARY_modules} video"
   369 fi
   370 AC_ARG_ENABLE(render,
   371 AC_HELP_STRING([--enable-render], [Enable the render subsystem [[default=yes]]]),
   372               , enable_render=yes)
   373 if test x$enable_render != xyes; then
   374     AC_DEFINE(SDL_RENDER_DISABLED, 1, [ ])
   375 else
   376     SUMMARY_modules="${SUMMARY_modules} render"
   377 fi
   378 AC_ARG_ENABLE(events,
   379 AC_HELP_STRING([--enable-events], [Enable the events subsystem [[default=yes]]]),
   380               , enable_events=yes)
   381 if test x$enable_events != xyes; then
   382     AC_DEFINE(SDL_EVENTS_DISABLED, 1, [ ])
   383 else
   384     SUMMARY_modules="${SUMMARY_modules} events"
   385 fi
   386 AC_ARG_ENABLE(joystick,
   387 AC_HELP_STRING([--enable-joystick], [Enable the joystick subsystem [[default=yes]]]),
   388               , enable_joystick=yes)
   389 if test x$enable_joystick != xyes; then
   390     AC_DEFINE(SDL_JOYSTICK_DISABLED, 1, [ ])
   391 else
   392     SUMMARY_modules="${SUMMARY_modules} joystick"
   393 fi
   394 AC_ARG_ENABLE(haptic,
   395 AC_HELP_STRING([--enable-haptic], [Enable the haptic (force feedback) subsystem [[default=yes]]]),
   396               , enable_haptic=yes)
   397 if test x$enable_haptic != xyes; then
   398     AC_DEFINE(SDL_HAPTIC_DISABLED, 1, [ ])
   399 else
   400     SUMMARY_modules="${SUMMARY_modules} haptic"
   401 fi
   402 AC_ARG_ENABLE(power,
   403 AC_HELP_STRING([--enable-power], [Enable the power subsystem [[default=yes]]]),
   404               , enable_power=yes)
   405 if test x$enable_power != xyes; then
   406     AC_DEFINE(SDL_POWER_DISABLED, 1, [ ])
   407 else
   408     SUMMARY_modules="${SUMMARY_modules} power"
   409 fi
   410 AC_ARG_ENABLE(filesystem,
   411 AC_HELP_STRING([--enable-filesystem], [Enable the filesystem subsystem [[default=yes]]]),
   412               , enable_filesystem=yes)
   413 if test x$enable_filesystem != xyes; then
   414     AC_DEFINE(SDL_FILESYSTEM_DISABLED, 1, [ ])
   415 else
   416     SUMMARY_modules="${SUMMARY_modules} filesystem"
   417 fi
   418 AC_ARG_ENABLE(threads,
   419 AC_HELP_STRING([--enable-threads], [Enable the threading subsystem [[default=yes]]]),
   420               , enable_threads=yes)
   421 if test x$enable_threads != xyes; then
   422     AC_DEFINE(SDL_THREADS_DISABLED, 1, [ ])
   423 else
   424     SUMMARY_modules="${SUMMARY_modules} threads"
   425 fi
   426 AC_ARG_ENABLE(timers,
   427 AC_HELP_STRING([--enable-timers], [Enable the timer subsystem [[default=yes]]]),
   428               , enable_timers=yes)
   429 if test x$enable_timers != xyes; then
   430     AC_DEFINE(SDL_TIMERS_DISABLED, 1, [ ])
   431 else
   432     SUMMARY_modules="${SUMMARY_modules} timers"
   433 fi
   434 AC_ARG_ENABLE(file,
   435 AC_HELP_STRING([--enable-file], [Enable the file subsystem [[default=yes]]]),
   436               , enable_file=yes)
   437 if test x$enable_file != xyes; then
   438     AC_DEFINE(SDL_FILE_DISABLED, 1, [ ])
   439 else
   440     SUMMARY_modules="${SUMMARY_modules} file"
   441 fi
   442 AC_ARG_ENABLE(loadso,
   443 AC_HELP_STRING([--enable-loadso], [Enable the shared object loading subsystem [[default=yes]]]),
   444               , enable_loadso=yes)
   445 if test x$enable_loadso != xyes; then
   446     AC_DEFINE(SDL_LOADSO_DISABLED, 1, [ ])
   447 else
   448     SUMMARY_modules="${SUMMARY_modules} loadso"
   449 fi
   450 AC_ARG_ENABLE(cpuinfo,
   451 AC_HELP_STRING([--enable-cpuinfo], [Enable the cpuinfo subsystem [[default=yes]]]),
   452               , enable_cpuinfo=yes)
   453 if test x$enable_cpuinfo != xyes; then
   454     AC_DEFINE(SDL_CPUINFO_DISABLED, 1, [ ])
   455 else
   456     SUMMARY_modules="${SUMMARY_modules} cpuinfo"
   457 fi
   458 AC_ARG_ENABLE(assembly,
   459 AC_HELP_STRING([--enable-assembly], [Enable assembly routines [[default=yes]]]),
   460               , enable_assembly=yes)
   461 if test x$enable_assembly = xyes; then
   462     SUMMARY_modules="${SUMMARY_modules} assembly"
   463 
   464     AC_DEFINE(SDL_ASSEMBLY_ROUTINES, 1, [ ])
   465 
   466     # Make sure that we don't generate floating point code that would
   467     # cause illegal instruction exceptions on older processors
   468     case "$host" in
   469         *-*-darwin*)
   470             # Don't need to worry about Apple hardware, it's all SSE capable
   471             default_ssemath=yes
   472             ;;
   473         *64-*-*)
   474             # x86 64-bit architectures all have SSE instructions
   475             default_ssemath=yes
   476             ;;
   477         *)
   478             default_ssemath=no
   479             ;;
   480     esac
   481     AC_ARG_ENABLE(ssemath,
   482 AC_HELP_STRING([--enable-ssemath], [Allow GCC to use SSE floating point math [[default=no]]]),
   483                   , enable_ssemath=$default_ssemath)
   484     if test x$enable_ssemath = xno; then
   485         if test x$have_gcc_sse = xyes -o x$have_gcc_sse2 = xyes; then
   486             EXTRA_CFLAGS="$EXTRA_CFLAGS -mfpmath=387"
   487         fi
   488     fi
   489 
   490     dnl Check for various instruction support
   491     AC_ARG_ENABLE(mmx,
   492 AC_HELP_STRING([--enable-mmx], [use MMX assembly routines [[default=yes]]]),
   493                   , enable_mmx=yes)
   494     if test x$enable_mmx = xyes; then
   495         save_CFLAGS="$CFLAGS"
   496         have_gcc_mmx=no
   497         AC_MSG_CHECKING(for GCC -mmmx option)
   498         mmx_CFLAGS="-mmmx"
   499         CFLAGS="$save_CFLAGS $mmx_CFLAGS"
   500 
   501         AC_TRY_COMPILE([
   502         #ifdef __MINGW32__
   503         #include <_mingw.h>
   504         #ifdef __MINGW64_VERSION_MAJOR
   505         #include <intrin.h>
   506         #else
   507         #include <mmintrin.h>
   508         #endif
   509         #else
   510         #include <mmintrin.h>
   511         #endif
   512         #ifndef __MMX__
   513         #error Assembler CPP flag not enabled
   514         #endif
   515         ],[
   516         ],[
   517         have_gcc_mmx=yes
   518         ])
   519         AC_MSG_RESULT($have_gcc_mmx)
   520         CFLAGS="$save_CFLAGS"
   521 
   522         if test x$have_gcc_mmx = xyes; then
   523             EXTRA_CFLAGS="$EXTRA_CFLAGS $mmx_CFLAGS"
   524             SUMMARY_math="${SUMMARY_math} mmx"
   525         fi
   526     fi
   527 
   528     AC_ARG_ENABLE(3dnow,
   529 AC_HELP_STRING([--enable-3dnow], [use 3DNow! assembly routines [[default=yes]]]),
   530                   , enable_3dnow=yes)
   531     if test x$enable_3dnow = xyes; then
   532         save_CFLAGS="$CFLAGS"
   533         have_gcc_3dnow=no
   534         AC_MSG_CHECKING(for GCC -m3dnow option)
   535         amd3dnow_CFLAGS="-m3dnow"
   536         CFLAGS="$save_CFLAGS $amd3dnow_CFLAGS"
   537 
   538         AC_TRY_LINK([
   539         #include <mm3dnow.h>
   540         #ifndef __3dNOW__
   541         #error Assembler CPP flag not enabled
   542         #endif
   543         ],[
   544         void *p = 0;
   545         _m_prefetch(p);
   546         ],[
   547         have_gcc_3dnow=yes
   548         ])
   549         AC_MSG_RESULT($have_gcc_3dnow)
   550         CFLAGS="$save_CFLAGS"
   551 
   552         if test x$have_gcc_3dnow = xyes; then
   553             EXTRA_CFLAGS="$EXTRA_CFLAGS $amd3dnow_CFLAGS"
   554             SUMMARY_math="${SUMMARY_math} 3dnow"
   555         fi
   556     fi
   557 
   558     AC_ARG_ENABLE(sse,
   559 AC_HELP_STRING([--enable-sse], [use SSE assembly routines [[default=yes]]]),
   560                   , enable_sse=yes)
   561     if test x$enable_sse = xyes; then
   562         save_CFLAGS="$CFLAGS"
   563         have_gcc_sse=no
   564         AC_MSG_CHECKING(for GCC -msse option)
   565         sse_CFLAGS="-msse"
   566         CFLAGS="$save_CFLAGS $sse_CFLAGS"
   567 
   568         AC_TRY_COMPILE([
   569         #ifdef __MINGW32__
   570         #include <_mingw.h>
   571         #ifdef __MINGW64_VERSION_MAJOR
   572         #include <intrin.h>
   573         #else
   574         #include <xmmintrin.h>
   575         #endif
   576         #else
   577         #include <xmmintrin.h>
   578         #endif
   579         #ifndef __SSE__
   580         #error Assembler CPP flag not enabled
   581         #endif
   582         ],[
   583         ],[
   584         have_gcc_sse=yes
   585         ])
   586         AC_MSG_RESULT($have_gcc_sse)
   587         CFLAGS="$save_CFLAGS"
   588 
   589         if test x$have_gcc_sse = xyes; then
   590             EXTRA_CFLAGS="$EXTRA_CFLAGS $sse_CFLAGS"
   591             SUMMARY_math="${SUMMARY_math} sse"
   592         fi
   593     fi
   594 
   595     AC_ARG_ENABLE(sse2,
   596 AC_HELP_STRING([--enable-sse2], [use SSE2 assembly routines [[default=no]]]),
   597                   , enable_sse2=$default_ssemath)
   598     if test x$enable_sse2 = xyes; then
   599         save_CFLAGS="$CFLAGS"
   600         have_gcc_sse2=no
   601         AC_MSG_CHECKING(for GCC -msse2 option)
   602         sse2_CFLAGS="-msse2"
   603         CFLAGS="$save_CFLAGS $sse2_CFLAGS"
   604 
   605         AC_TRY_COMPILE([
   606         #ifdef __MINGW32__
   607         #include <_mingw.h>
   608         #ifdef __MINGW64_VERSION_MAJOR
   609         #include <intrin.h>
   610         #else
   611         #include <emmintrin.h>
   612         #endif
   613         #else
   614         #include <emmintrin.h>
   615         #endif
   616         #ifndef __SSE2__
   617         #error Assembler CPP flag not enabled
   618         #endif
   619         ],[
   620         ],[
   621         have_gcc_sse2=yes
   622         ])
   623         AC_MSG_RESULT($have_gcc_sse2)
   624         CFLAGS="$save_CFLAGS"
   625 
   626         if test x$have_gcc_sse2 = xyes; then
   627             EXTRA_CFLAGS="$EXTRA_CFLAGS $sse2_CFLAGS"
   628             SUMMARY_math="${SUMMARY_math} sse2"
   629         fi
   630     fi
   631 
   632     AC_ARG_ENABLE(altivec,
   633 AC_HELP_STRING([--enable-altivec], [use Altivec assembly routines [[default=yes]]]),
   634                   , enable_altivec=yes)
   635     if test x$enable_altivec = xyes; then
   636         save_CFLAGS="$CFLAGS"
   637         have_gcc_altivec=no
   638         have_altivec_h_hdr=no
   639         altivec_CFLAGS="-maltivec"
   640         CFLAGS="$save_CFLAGS $altivec_CFLAGS"
   641 
   642         AC_MSG_CHECKING(for Altivec with GCC altivec.h and -maltivec option)
   643         AC_TRY_COMPILE([
   644         #include <altivec.h>
   645         vector unsigned int vzero() {
   646             return vec_splat_u32(0);
   647         }
   648         ],[
   649         ],[
   650         have_gcc_altivec=yes
   651         have_altivec_h_hdr=yes
   652         ])
   653         AC_MSG_RESULT($have_gcc_altivec)
   654 
   655         if test x$have_gcc_altivec = xno; then
   656             AC_MSG_CHECKING(for Altivec with GCC -maltivec option)
   657             AC_TRY_COMPILE([
   658             vector unsigned int vzero() {
   659                 return vec_splat_u32(0);
   660             }
   661             ],[
   662             ],[
   663             have_gcc_altivec=yes
   664             ])
   665             AC_MSG_RESULT($have_gcc_altivec)
   666         fi
   667 
   668         if test x$have_gcc_altivec = xno; then
   669             AC_MSG_CHECKING(for Altivec with GCC altivec.h and -faltivec option)
   670             altivec_CFLAGS="-faltivec"
   671             CFLAGS="$save_CFLAGS $altivec_CFLAGS"
   672             AC_TRY_COMPILE([
   673             #include <altivec.h>
   674             vector unsigned int vzero() {
   675                 return vec_splat_u32(0);
   676             }
   677             ],[
   678             ],[
   679             have_gcc_altivec=yes
   680             have_altivec_h_hdr=yes
   681             ])
   682             AC_MSG_RESULT($have_gcc_altivec)
   683         fi
   684 
   685         if test x$have_gcc_altivec = xno; then
   686             AC_MSG_CHECKING(for Altivec with GCC -faltivec option)
   687             AC_TRY_COMPILE([
   688             vector unsigned int vzero() {
   689                 return vec_splat_u32(0);
   690             }
   691             ],[
   692             ],[
   693             have_gcc_altivec=yes
   694             ])
   695             AC_MSG_RESULT($have_gcc_altivec)
   696         fi
   697         CFLAGS="$save_CFLAGS"
   698 
   699         if test x$have_gcc_altivec = xyes; then
   700             AC_DEFINE(SDL_ALTIVEC_BLITTERS, 1, [ ])
   701             if test x$have_altivec_h_hdr = xyes; then
   702               AC_DEFINE(HAVE_ALTIVEC_H, 1, [ ])
   703             fi
   704             EXTRA_CFLAGS="$EXTRA_CFLAGS $altivec_CFLAGS"
   705             SUMMARY_math="${SUMMARY_math} altivec"
   706         fi
   707     fi
   708 fi
   709 
   710 dnl See if the OSS audio interface is supported
   711 CheckOSS()
   712 {
   713     AC_ARG_ENABLE(oss,
   714 AC_HELP_STRING([--enable-oss], [support the OSS audio API [[default=maybe]]]),
   715                   , enable_oss=maybe)
   716 
   717     # OpenBSD "has" OSS, but it's not really for app use. They want you to
   718     #  use sndio instead. So on there, we default to disabled. You can force
   719     #  it on if you really want, though.
   720     if test x$enable_oss = xmaybe; then
   721         enable_oss=yes
   722         case "$host" in
   723             *-*-openbsd*)
   724                 enable_oss=no;;
   725         esac
   726     fi
   727 
   728     if test x$enable_audio = xyes -a x$enable_oss = xyes; then
   729         AC_MSG_CHECKING(for OSS audio support)
   730         have_oss=no
   731         if test x$have_oss != xyes; then
   732             AC_TRY_COMPILE([
   733               #include <sys/soundcard.h>
   734             ],[
   735               int arg = SNDCTL_DSP_SETFRAGMENT;
   736             ],[
   737             have_oss=yes
   738             ])
   739         fi
   740         if test x$have_oss != xyes; then
   741             AC_TRY_COMPILE([
   742               #include <soundcard.h>
   743             ],[
   744               int arg = SNDCTL_DSP_SETFRAGMENT;
   745             ],[
   746             have_oss=yes
   747             AC_DEFINE(SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H, 1, [ ])
   748             ])
   749         fi
   750         AC_MSG_RESULT($have_oss)
   751         if test x$have_oss = xyes; then
   752             SUMMARY_audio="${SUMMARY_audio} oss"
   753             AC_DEFINE(SDL_AUDIO_DRIVER_OSS, 1, [ ])
   754             SOURCES="$SOURCES $srcdir/src/audio/dsp/*.c"
   755             have_audio=yes
   756 
   757             # We may need to link with ossaudio emulation library
   758             case "$host" in
   759                 *-*-openbsd*|*-*-netbsd*)
   760                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lossaudio";;
   761             esac
   762         fi
   763     fi
   764 }
   765 
   766 dnl See if the ALSA audio interface is supported
   767 CheckALSA()
   768 {
   769     AC_ARG_ENABLE(alsa,
   770 AC_HELP_STRING([--enable-alsa], [support the ALSA audio API [[default=yes]]]),
   771                   , enable_alsa=yes)
   772     if test x$enable_audio = xyes -a x$enable_alsa = xyes; then
   773         AM_PATH_ALSA(0.9.0, have_alsa=yes, have_alsa=no)
   774         # Restore all flags from before the ALSA detection runs
   775         CFLAGS="$alsa_save_CFLAGS"
   776         LDFLAGS="$alsa_save_LDFLAGS"
   777         LIBS="$alsa_save_LIBS"
   778         if test x$have_alsa = xyes; then
   779             AC_ARG_ENABLE(alsa-shared,
   780 AC_HELP_STRING([--enable-alsa-shared], [dynamically load ALSA audio support [[default=yes]]]),
   781                           , enable_alsa_shared=yes)
   782             alsa_lib=[`find_lib "libasound.so.*" "$ALSA_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   783 
   784             AC_DEFINE(SDL_AUDIO_DRIVER_ALSA, 1, [ ])
   785             SOURCES="$SOURCES $srcdir/src/audio/alsa/*.c"
   786             EXTRA_CFLAGS="$EXTRA_CFLAGS $ALSA_CFLAGS"
   787             if test x$have_loadso != xyes && \
   788                test x$enable_alsa_shared = xyes; then
   789                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ALSA loading])
   790             fi
   791             if test x$have_loadso = xyes && \
   792                test x$enable_alsa_shared = xyes && test x$alsa_lib != x; then
   793                 echo "-- dynamic libasound -> $alsa_lib"
   794                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ALSA_DYNAMIC, "$alsa_lib", [ ])
   795                 SUMMARY_audio="${SUMMARY_audio} alsa(dynamic)"
   796             else
   797                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ALSA_LIBS"
   798                 SUMMARY_audio="${SUMMARY_audio} alsa"
   799             fi
   800             have_audio=yes
   801         fi
   802     fi
   803 }
   804 
   805 dnl Find the ESD includes and libraries
   806 CheckESD()
   807 {
   808     AC_ARG_ENABLE(esd,
   809 AC_HELP_STRING([--enable-esd], [support the Enlightened Sound Daemon [[default=yes]]]),
   810                   , enable_esd=yes)
   811     if test x$enable_audio = xyes -a x$enable_esd = xyes; then
   812         AM_PATH_ESD(0.2.8, have_esd=yes, have_esd=no)
   813         if test x$have_esd = xyes; then
   814             AC_ARG_ENABLE(esd-shared,
   815 AC_HELP_STRING([--enable-esd-shared], [dynamically load ESD audio support [[default=yes]]]),
   816                           , enable_esd_shared=yes)
   817             esd_lib=[`find_lib "libesd.so.*" "$ESD_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   818 
   819             AC_DEFINE(SDL_AUDIO_DRIVER_ESD, 1, [ ])
   820             SOURCES="$SOURCES $srcdir/src/audio/esd/*.c"
   821             EXTRA_CFLAGS="$EXTRA_CFLAGS $ESD_CFLAGS"
   822             if test x$have_loadso != xyes && \
   823                test x$enable_esd_shared = xyes; then
   824                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ESD loading])
   825             fi
   826             if test x$have_loadso = xyes && \
   827                test x$enable_esd_shared = xyes && test x$esd_lib != x; then
   828                 echo "-- dynamic libesd -> $esd_lib"
   829                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ESD_DYNAMIC, "$esd_lib", [ ])
   830                 SUMMARY_audio="${SUMMARY_audio} esd(dynamic)"
   831             else
   832                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ESD_LIBS"
   833                 SUMMARY_audio="${SUMMARY_audio} esd"
   834             fi
   835             have_audio=yes
   836         fi
   837     fi
   838 }
   839 
   840 dnl Find PulseAudio
   841 CheckPulseAudio()
   842 {
   843     AC_ARG_ENABLE(pulseaudio,
   844 AC_HELP_STRING([--enable-pulseaudio], [use PulseAudio [[default=yes]]]),
   845                   , enable_pulseaudio=yes)
   846     if test x$enable_audio = xyes -a x$enable_pulseaudio = xyes; then
   847         audio_pulseaudio=no
   848 
   849         PULSEAUDIO_REQUIRED_VERSION=0.9
   850 
   851         AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
   852         AC_MSG_CHECKING(for PulseAudio $PULSEAUDIO_REQUIRED_VERSION support)
   853         if test x$PKG_CONFIG != xno; then
   854         if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $PULSEAUDIO_REQUIRED_VERSION libpulse-simple; then
   855                 PULSEAUDIO_CFLAGS=`$PKG_CONFIG --cflags libpulse-simple`
   856                 PULSEAUDIO_LIBS=`$PKG_CONFIG --libs libpulse-simple`
   857                 audio_pulseaudio=yes
   858             fi
   859         fi
   860         AC_MSG_RESULT($audio_pulseaudio)
   861 
   862         if test x$audio_pulseaudio = xyes; then
   863             AC_ARG_ENABLE(pulseaudio-shared,
   864 AC_HELP_STRING([--enable-pulseaudio-shared], [dynamically load PulseAudio support [[default=yes]]]),
   865                           , enable_pulseaudio_shared=yes)
   866             pulseaudio_lib=[`find_lib "libpulse-simple.so.*" "$PULSEAUDIO_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   867 
   868             AC_DEFINE(SDL_AUDIO_DRIVER_PULSEAUDIO, 1, [ ])
   869             SOURCES="$SOURCES $srcdir/src/audio/pulseaudio/*.c"
   870             EXTRA_CFLAGS="$EXTRA_CFLAGS $PULSEAUDIO_CFLAGS"
   871             if test x$have_loadso != xyes && \
   872                test x$enable_pulseaudio_shared = xyes; then
   873                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic PulseAudio loading])
   874             fi
   875             if test x$have_loadso = xyes && \
   876                test x$enable_pulseaudio_shared = xyes && test x$pulseaudio_lib != x; then
   877                 echo "-- dynamic libpulse-simple -> $pulseaudio_lib"
   878                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC, "$pulseaudio_lib", [ ])
   879                 SUMMARY_audio="${SUMMARY_audio} pulse(dynamic)"
   880 
   881                 case "$host" in
   882                     # On Solaris, pulseaudio must be linked deferred explicitly
   883                     # to prevent undefined symbol failures.
   884                     *-*-solaris*)
   885                         PULSEAUDIO_LIBS=`echo $PULSEAUDIO_LIBS | sed 's/\-l/-Wl,-l/g'`
   886                         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-zdeferred $PULSEAUDIO_LIBS -Wl,-znodeferred"
   887                 esac
   888             else
   889                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PULSEAUDIO_LIBS"
   890                 SUMMARY_audio="${SUMMARY_audio} pulse"
   891             fi
   892             have_audio=yes
   893         fi
   894     fi
   895 }
   896 
   897 CheckARTSC()
   898 {
   899     AC_ARG_ENABLE(arts,
   900 AC_HELP_STRING([--enable-arts], [support the Analog Real Time Synthesizer [[default=yes]]]),
   901                   , enable_arts=yes)
   902     if test x$enable_audio = xyes -a x$enable_arts = xyes; then
   903         AC_PATH_PROG(ARTSCONFIG, artsc-config)
   904         if test x$ARTSCONFIG = x -o x$ARTSCONFIG = x'"$ARTSCONFIG"'; then
   905             : # arts isn't installed
   906         else
   907             ARTS_CFLAGS=`$ARTSCONFIG --cflags`
   908             ARTS_LIBS=`$ARTSCONFIG --libs`
   909             AC_MSG_CHECKING(for aRts development environment)
   910             audio_arts=no
   911             save_CFLAGS="$CFLAGS"
   912             CFLAGS="$CFLAGS $ARTS_CFLAGS"
   913             AC_TRY_COMPILE([
   914              #include <artsc.h>
   915             ],[
   916              arts_stream_t stream;
   917             ],[
   918             audio_arts=yes
   919             ])
   920             CFLAGS="$save_CFLAGS"
   921             AC_MSG_RESULT($audio_arts)
   922             if test x$audio_arts = xyes; then
   923                 AC_ARG_ENABLE(arts-shared,
   924 AC_HELP_STRING([--enable-arts-shared], [dynamically load aRts audio support [[default=yes]]]),
   925                               , enable_arts_shared=yes)
   926                 arts_lib=[`find_lib "libartsc.so.*" "$ARTS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   927 
   928                 AC_DEFINE(SDL_AUDIO_DRIVER_ARTS, 1, [ ])
   929                 SOURCES="$SOURCES $srcdir/src/audio/arts/*.c"
   930                 EXTRA_CFLAGS="$EXTRA_CFLAGS $ARTS_CFLAGS"
   931                 if test x$have_loadso != xyes && \
   932                    test x$enable_arts_shared = xyes; then
   933                     AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ARTS loading])
   934                 fi
   935                 if test x$have_loadso = xyes && \
   936                    test x$enable_arts_shared = xyes && test x$arts_lib != x; then
   937                     echo "-- dynamic libartsc -> $arts_lib"
   938                     AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ARTS_DYNAMIC, "$arts_lib", [ ])
   939                     SUMMARY_audio="${SUMMARY_audio} arts(dynamic)"
   940                 else
   941                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ARTS_LIBS"
   942                     SUMMARY_audio="${SUMMARY_audio} arts"
   943                 fi
   944                 have_audio=yes
   945             fi
   946         fi
   947     fi
   948 }
   949 
   950 dnl See if the NAS audio interface is supported
   951 CheckNAS()
   952 {
   953     AC_ARG_ENABLE(nas,
   954 AC_HELP_STRING([--enable-nas], [support the NAS audio API [[default=yes]]]),
   955                   , enable_nas=yes)
   956     if test x$enable_audio = xyes -a x$enable_nas = xyes; then
   957         AC_CHECK_HEADER(audio/audiolib.h, have_nas_hdr=yes)
   958         AC_CHECK_LIB(audio, AuOpenServer, have_nas_lib=yes)
   959 
   960         AC_MSG_CHECKING(for NAS audio support)
   961         have_nas=no
   962 
   963         if test x$have_nas_hdr = xyes -a x$have_nas_lib = xyes; then
   964             have_nas=yes
   965             NAS_LIBS="-laudio"
   966 
   967         elif test -r /usr/X11R6/include/audio/audiolib.h; then
   968             have_nas=yes
   969             NAS_CFLAGS="-I/usr/X11R6/include/"
   970             NAS_LIBS="-L/usr/X11R6/lib -laudio -lXt"
   971 
   972         fi
   973 
   974         AC_MSG_RESULT($have_nas)
   975 
   976         if test x$have_nas = xyes; then
   977             AC_ARG_ENABLE(nas-shared,
   978 AC_HELP_STRING([--enable-nas-shared], [dynamically load NAS audio support [[default=yes]]]),
   979                           , enable_nas_shared=yes)
   980             nas_lib=[`find_lib "libaudio.so.*" "$NAS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   981 
   982             if test x$have_loadso != xyes && \
   983                test x$enable_nas_shared = xyes; then
   984                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic NAS loading])
   985             fi
   986             if test x$have_loadso = xyes && \
   987                test x$enable_nas_shared = xyes && test x$nas_lib != x; then
   988                 echo "-- dynamic libaudio -> $nas_lib"
   989                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_NAS_DYNAMIC, "$nas_lib", [ ])
   990                 SUMMARY_audio="${SUMMARY_audio} nas(dynamic)"
   991             else
   992                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $NAS_LIBS"
   993                 SUMMARY_audio="${SUMMARY_audio} nas"
   994             fi
   995 
   996             AC_DEFINE(SDL_AUDIO_DRIVER_NAS, 1, [ ])
   997             SOURCES="$SOURCES $srcdir/src/audio/nas/*.c"
   998             EXTRA_CFLAGS="$EXTRA_CFLAGS $NAS_CFLAGS"
   999             have_audio=yes
  1000         fi
  1001     fi
  1002 }
  1003 
  1004 dnl See if the sndio audio interface is supported
  1005 CheckSNDIO()
  1006 {
  1007     AC_ARG_ENABLE(sndio,
  1008 AC_HELP_STRING([--enable-sndio], [support the sndio audio API [[default=yes]]]),
  1009                   , enable_sndio=yes)
  1010     if test x$enable_audio = xyes -a x$enable_sndio = xyes; then
  1011         AC_CHECK_HEADER(sndio.h, have_sndio_hdr=yes)
  1012         AC_CHECK_LIB(sndio, sio_open, have_sndio_lib=yes)
  1013 
  1014         AC_MSG_CHECKING(for sndio audio support)
  1015         have_sndio=no
  1016 
  1017         if test x$have_sndio_hdr = xyes -a x$have_sndio_lib = xyes; then
  1018             have_sndio=yes
  1019             SNDIO_LIBS="-lsndio"
  1020         fi
  1021 
  1022         AC_MSG_RESULT($have_sndio)
  1023 
  1024         if test x$have_sndio = xyes; then
  1025             AC_ARG_ENABLE(sndio-shared,
  1026 AC_HELP_STRING([--enable-sndio-shared], [dynamically load sndio audio support [[default=yes]]]),
  1027                           , enable_sndio_shared=yes)
  1028             sndio_lib=[`find_lib "libsndio.so.*" "$SNDIO_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
  1029 
  1030             if test x$have_loadso != xyes && \
  1031                test x$enable_sndio_shared = xyes; then
  1032                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic sndio loading])
  1033             fi
  1034             if test x$have_loadso = xyes && \
  1035                test x$enable_sndio_shared = xyes && test x$sndio_lib != x; then
  1036                 echo "-- dynamic libsndio -> $sndio_lib"
  1037                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_SNDIO_DYNAMIC, "$sndio_lib", [ ])
  1038                 SUMMARY_audio="${SUMMARY_audio} sndio(dynamic)"
  1039             else
  1040                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $SNDIO_LIBS"
  1041                 SUMMARY_audio="${SUMMARY_audio} sndio"
  1042             fi
  1043 
  1044             AC_DEFINE(SDL_AUDIO_DRIVER_SNDIO, 1, [ ])
  1045             SOURCES="$SOURCES $srcdir/src/audio/sndio/*.c"
  1046             EXTRA_CFLAGS="$EXTRA_CFLAGS $SNDIO_CFLAGS"
  1047             have_audio=yes
  1048         fi
  1049     fi
  1050 }
  1051 
  1052 dnl rcg07142001 See if the user wants the disk writer audio driver...
  1053 CheckDiskAudio()
  1054 {
  1055     AC_ARG_ENABLE(diskaudio,
  1056 AC_HELP_STRING([--enable-diskaudio], [support the disk writer audio driver [[default=yes]]]),
  1057                   , enable_diskaudio=yes)
  1058     if test x$enable_audio = xyes -a x$enable_diskaudio = xyes; then
  1059         AC_DEFINE(SDL_AUDIO_DRIVER_DISK, 1, [ ])
  1060         SOURCES="$SOURCES $srcdir/src/audio/disk/*.c"
  1061         SUMMARY_audio="${SUMMARY_audio} disk"
  1062     fi
  1063 }
  1064 
  1065 dnl rcg03142006 See if the user wants the dummy audio driver...
  1066 CheckDummyAudio()
  1067 {
  1068     AC_ARG_ENABLE(dummyaudio,
  1069 AC_HELP_STRING([--enable-dummyaudio], [support the dummy audio driver [[default=yes]]]),
  1070                   , enable_dummyaudio=yes)
  1071     if test x$enable_audio = xyes -a x$enable_dummyaudio = xyes; then
  1072         AC_DEFINE(SDL_AUDIO_DRIVER_DUMMY, 1, [ ])
  1073         SOURCES="$SOURCES $srcdir/src/audio/dummy/*.c"
  1074         SUMMARY_audio="${SUMMARY_audio} dummy"
  1075     fi
  1076 }
  1077 
  1078 dnl See if GCC's -fvisibility=hidden is supported (gcc4 and later, usually).
  1079 dnl  Details of this flag are here: http://gcc.gnu.org/wiki/Visibility
  1080 CheckVisibilityHidden()
  1081 {
  1082     AC_MSG_CHECKING(for GCC -fvisibility=hidden option)
  1083     have_gcc_fvisibility=no
  1084 
  1085     visibility_CFLAGS="-fvisibility=hidden"
  1086     save_CFLAGS="$CFLAGS"
  1087     CFLAGS="$save_CFLAGS $visibility_CFLAGS -Werror"
  1088     AC_TRY_COMPILE([
  1089     #if !defined(__GNUC__) || __GNUC__ < 4
  1090     #error SDL only uses visibility attributes in GCC 4 or newer
  1091     #endif
  1092     ],[
  1093     ],[
  1094     have_gcc_fvisibility=yes
  1095     ])
  1096     AC_MSG_RESULT($have_gcc_fvisibility)
  1097     CFLAGS="$save_CFLAGS"
  1098 
  1099     if test x$have_gcc_fvisibility = xyes; then
  1100         EXTRA_CFLAGS="$EXTRA_CFLAGS $visibility_CFLAGS"
  1101     fi
  1102 }
  1103 
  1104 dnl See if GCC's -mpreferred-stack-boundary is supported.
  1105 dnl  Reference: http://bugzilla.libsdl.org/show_bug.cgi?id=1296
  1106 CheckStackBoundary()
  1107 {
  1108     AC_MSG_CHECKING(for GCC -mpreferred-stack-boundary option)
  1109     have_gcc_preferred_stack_boundary=no
  1110 
  1111     save_CFLAGS="$CFLAGS"
  1112     CFLAGS="$save_CFLAGS -mpreferred-stack-boundary=2"
  1113     AC_TRY_COMPILE([
  1114     int x = 0;
  1115     ],[
  1116     ],[
  1117     have_gcc_preferred_stack_boundary=yes
  1118     ])
  1119     AC_MSG_RESULT($have_gcc_preferred_stack_boundary)
  1120     CFLAGS="$save_CFLAGS"
  1121 
  1122     if test x$have_gcc_preferred_stack_boundary = xyes; then
  1123         EXTRA_CFLAGS="$EXTRA_CFLAGS -mpreferred-stack-boundary=2"
  1124     fi
  1125 }
  1126 
  1127 CheckMir()
  1128 {
  1129     AC_ARG_ENABLE(video-mir,
  1130     AC_HELP_STRING([--enable-video-mir], [use Mir video driver [[default=yes]]]),
  1131                    , enable_video_mir=yes)
  1132 
  1133     if test x$enable_video = xyes -a x$enable_video_mir = xyes; then
  1134         AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
  1135 
  1136         if test x$PKG_CONFIG != xno; then
  1137             AC_MSG_CHECKING(for Mir support)
  1138             video_mir=no
  1139             tmp_CFLAGS="$CFLAGS"
  1140             CFLAGS="$EXTRA_CFLAGS `$PKG_CONFIG --cflags egl mirclient xkbcommon`"
  1141 
  1142             AC_TRY_COMPILE([
  1143              #include <EGL/egl.h>
  1144              #include <xkbcommon/xkbcommon.h>
  1145              #include <mir_toolkit/mir_client_library.h>
  1146             ],[
  1147             ],[
  1148             video_mir=yes
  1149             ])
  1150             CFLAGS="$tmp_CFLAGS"
  1151             AC_MSG_RESULT($video_mir)
  1152 
  1153             if test x$video_mir = xyes; then
  1154                   AC_DEFINE(SDL_VIDEO_DRIVER_MIR)
  1155                   SOURCES="$SOURCES $srcdir/src/video/mir/*.c"
  1156                   EXTRA_CFLAGS="$EXTRA_CFLAGS `$PKG_CONFIG --cflags egl mirclient xkbcommon`"
  1157                   EXTRA_LDFLAGS="$EXTRA_LDFLAGS `$PKG_CONFIG --libs egl mirclient xkbcommon`"
  1158                   have_video=yes
  1159             fi
  1160         fi
  1161     fi
  1162 }
  1163 
  1164 dnl See if GCC's -Wall is supported.
  1165 CheckWarnAll()
  1166 {
  1167     AC_MSG_CHECKING(for GCC -Wall option)
  1168     have_gcc_Wall=no
  1169 
  1170     save_CFLAGS="$CFLAGS"
  1171     CFLAGS="$save_CFLAGS -Wall"
  1172     AC_TRY_COMPILE([
  1173     int x = 0;
  1174     ],[
  1175     ],[
  1176     have_gcc_Wall=yes
  1177     ])
  1178     AC_MSG_RESULT($have_gcc_Wall)
  1179     CFLAGS="$save_CFLAGS"
  1180 
  1181     if test x$have_gcc_Wall = xyes; then
  1182         EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
  1183 
  1184         dnl Haiku headers use multicharacter constants all over the place. Ignore these warnings when using -Wall.
  1185         AC_MSG_CHECKING(for necessary GCC -Wno-multichar option)
  1186         need_gcc_Wno_multichar=no
  1187         case "$host" in
  1188             *-*-haiku*)
  1189                 need_gcc_Wno_multichar=yes
  1190                 ;;
  1191         esac
  1192         AC_MSG_RESULT($need_gcc_Wno_multichar)
  1193         if test x$need_gcc_Wno_multichar = xyes; then
  1194             EXTRA_CFLAGS="$EXTRA_CFLAGS -Wno-multichar"
  1195         fi
  1196     fi
  1197 }
  1198 
  1199 dnl Check for Wayland
  1200 CheckWayland()
  1201 {
  1202     AC_ARG_ENABLE(video-wayland,
  1203 AC_HELP_STRING([--enable-video-wayland], [use Wayland video driver [[default=yes]]]),
  1204                   ,enable_video_wayland=yes)
  1205 
  1206     AC_ARG_ENABLE(video-wayland-qt-touch,
  1207 AC_HELP_STRING([--enable-video-wayland-qt-touch], [QtWayland server support for Wayland video driver [[default=yes]]]),
  1208                   ,enable_video_wayland_qt_touch=yes)
  1209 
  1210     if test x$enable_video = xyes -a x$enable_video_wayland = xyes; then
  1211         AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
  1212         AC_MSG_CHECKING(for Wayland support)
  1213         video_wayland=no
  1214         if test x$PKG_CONFIG != xno; then
  1215             if $PKG_CONFIG --exists wayland-client wayland-egl wayland-cursor egl xkbcommon ; then
  1216                 WAYLAND_CFLAGS=`$PKG_CONFIG --cflags wayland-client wayland-egl wayland-cursor xkbcommon`
  1217                 WAYLAND_LIBS=`$PKG_CONFIG --libs wayland-client wayland-egl wayland-cursor xkbcommon`
  1218                 video_wayland=yes
  1219             fi
  1220         fi
  1221         AC_MSG_RESULT($video_wayland)
  1222 
  1223         if test x$video_wayland = xyes; then
  1224             AC_DEFINE(SDL_VIDEO_DRIVER_WAYLAND, 1, [ ])
  1225             if test x$enable_video_wayland_qt_touch = xyes; then
  1226                 AC_DEFINE(SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH, 1, [ ])
  1227             fi
  1228             SOURCES="$SOURCES $srcdir/src/video/wayland/*.c"
  1229             EXTRA_CFLAGS="$EXTRA_CFLAGS $WAYLAND_CFLAGS"
  1230             AC_ARG_ENABLE(wayland-shared,
  1231 AC_HELP_STRING([--enable-wayland-shared], [dynamically load Wayland support [[default=maybe]]]),
  1232                           , enable_wayland_shared=maybe)
  1233 
  1234             dnl FIXME: Do BSD and OS X need special cases?
  1235             case "$host" in
  1236                 *)
  1237                     wayland_client_lib=[`find_lib "libwayland-client.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
  1238                     wayland_egl_lib=[`find_lib "libwayland-egl.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
  1239                     if test x$wayland_egl_lib = x; then
  1240                         dnl This works in Ubuntu 13.10, maybe others
  1241                         wayland_egl_lib=[`find_lib "mesa-egl/libwayland-egl.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
  1242                     fi
  1243                     wayland_cursor_lib=[`find_lib "libwayland-cursor.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
  1244                     xkbcommon_lib=[`find_lib "libxkbcommon.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
  1245                     ;;
  1246             esac
  1247 
  1248             if test x$enable_wayland_shared = xmaybe; then
  1249                 enable_wayland_shared=yes
  1250             fi
  1251             if test x$have_loadso != xyes && \
  1252                test x$enable_wayland_shared = xyes; then
  1253                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic WAYLAND loading])
  1254                 enable_wayland_shared=no
  1255             fi
  1256             if test x$have_loadso = xyes && \
  1257                test x$enable_wayland_shared = xyes && \
  1258                test x$wayland_client_lib != x && \
  1259                test x$wayland_egl_lib != x && \
  1260                test x$wayland_cursor_lib != x && \
  1261                test x$xkbcommon_lib != x; then
  1262                 echo "-- dynamic libwayland-client -> $wayland_client_lib"
  1263                 echo "-- dynamic libwayland-egl -> $wayland_egl_lib"
  1264                 echo "-- dynamic libwayland-cursor -> $wayland_cursor_lib"
  1265                 echo "-- dynamic xkbcommon -> $xkbcommon_lib"
  1266                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC, "$wayland_client_lib", [ ])
  1267                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL, "$wayland_egl_lib", [ ])
  1268                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR, "$wayland_cursor_lib", [ ])
  1269                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON, "$xkbcommon_lib", [ ])
  1270                 SUMMARY_video="${SUMMARY_video} wayland(dynamic)"
  1271             else
  1272                 enable_wayland_shared=no
  1273                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $WAYLAND_LIBS"
  1274                 SUMMARY_video="${SUMMARY_video} wayland"
  1275             fi
  1276             have_video=yes
  1277         fi
  1278     fi
  1279 }
  1280 
  1281 dnl Find the X11 include and library directories
  1282 CheckX11()
  1283 {
  1284 
  1285 
  1286     AC_ARG_ENABLE(video-x11,
  1287 AC_HELP_STRING([--enable-video-x11], [use X11 video driver [[default=yes]]]),
  1288                   , enable_video_x11=yes)
  1289     if test x$enable_video = xyes -a x$enable_video_x11 = xyes; then
  1290         case "$host" in
  1291             *-*-darwin*)
  1292                 # This isn't necessary for X11, but fixes GLX detection
  1293                 if test "x$x_includes" = xNONE && \
  1294                    test "x$x_libraries" = xNONE && \
  1295                    test -d /usr/X11R6/include && \
  1296                    test -d /usr/X11R6/lib; then
  1297                     x_includes="/usr/X11R6/include"
  1298                     x_libraries="/usr/X11R6/lib"
  1299                 fi
  1300                 ;;
  1301         esac
  1302         AC_PATH_X
  1303         AC_PATH_XTRA
  1304         if test x$have_x = xyes; then
  1305             AC_ARG_ENABLE(x11-shared,
  1306 AC_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=maybe]]]),
  1307                           , enable_x11_shared=maybe)
  1308 
  1309             case "$host" in
  1310                 *-*-darwin*)
  1311                     x11_lib='/usr/X11R6/lib/libX11.6.dylib'
  1312                     x11ext_lib='/usr/X11R6/lib/libXext.6.dylib'
  1313                     xcursor_lib='/usr/X11R6/lib/libXcursor.1.dylib'
  1314                     xinerama_lib='/usr/X11R6/lib/libXinerama.1.dylib'
  1315                     xinput_lib='/usr/X11R6/lib/libXi.6.dylib'
  1316                     xrandr_lib='/usr/X11R6/lib/libXrandr.2.dylib'
  1317                     xrender_lib='/usr/X11R6/lib/libXrender.1.dylib'
  1318                     xss_lib='/usr/X11R6/lib/libXss.1.dylib'
  1319                     xvidmode_lib='/usr/X11R6/lib/libXxf86vm.1.dylib'
  1320                     ;;
  1321                 *-*-openbsd*)
  1322                     x11_lib='libX11.so'
  1323                     x11ext_lib='libXext.so'
  1324                     xcursor_lib='libXcursor.so'
  1325                     xinerama_lib='libXinerama.so'
  1326                     xinput_lib='libXi.so'
  1327                     xrandr_lib='libXrandr.so'
  1328                     xrender_lib='libXrender.so'
  1329                     xss_lib='libXss.so'
  1330                     xvidmode_lib='libXxf86vm.so'
  1331                     ;;
  1332                 *)
  1333                     x11_lib=[`find_lib "libX11.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1334                     x11ext_lib=[`find_lib "libXext.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1335                     xcursor_lib=[`find_lib "libXcursor.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1336                     xinerama_lib=[`find_lib "libXinerama.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1337                     xinput_lib=[`find_lib "libXi.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1338                     xrandr_lib=[`find_lib "libXrandr.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1339                     xrender_lib=[`find_lib "libXrender.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1340                     xss_lib=[`find_lib "libXss.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1341                     xvidmode_lib=[`find_lib "libXxf86vm.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1342                     ;;
  1343             esac
  1344 
  1345             if test x$ac_cv_func_shmat != xyes; then
  1346                 X_CFLAGS="$X_CFLAGS -DNO_SHARED_MEMORY"
  1347             fi
  1348             CFLAGS="$CFLAGS $X_CFLAGS"
  1349             LDFLAGS="$LDFLAGS $X_LIBS"
  1350 
  1351             AC_CHECK_HEADER(X11/extensions/Xext.h,
  1352                             have_xext_h_hdr=yes,
  1353                             have_xext_h_hdr=no,
  1354                             [#include <X11/Xlib.h>
  1355                              #include <X11/Xproto.h>
  1356                             ])
  1357             if test x$have_xext_h_hdr != xyes; then
  1358                AC_MSG_ERROR([
  1359 *** Missing Xext.h, maybe you need to install the libxext-dev package?
  1360                ])
  1361             fi
  1362 
  1363             AC_DEFINE(SDL_VIDEO_DRIVER_X11, 1, [ ])
  1364             SOURCES="$SOURCES $srcdir/src/video/x11/*.c"
  1365             EXTRA_CFLAGS="$EXTRA_CFLAGS $X_CFLAGS"
  1366 
  1367             # Needed so SDL applications can include SDL_syswm.h
  1368             SDL_CFLAGS="$SDL_CFLAGS $X_CFLAGS"
  1369 
  1370             if test x$enable_x11_shared = xmaybe; then
  1371                 enable_x11_shared=yes
  1372             fi
  1373             if test x$have_loadso != xyes && \
  1374                test x$enable_x11_shared = xyes; then
  1375                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic X11 loading])
  1376                 enable_x11_shared=no
  1377             fi
  1378             if test x$have_loadso = xyes && \
  1379                test x$enable_x11_shared = xyes && test x$x11_lib != x && test x$x11ext_lib != x; then
  1380                 echo "-- dynamic libX11 -> $x11_lib"
  1381                 echo "-- dynamic libX11ext -> $x11ext_lib"
  1382                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC, "$x11_lib", [ ])
  1383                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT, "$x11ext_lib", [ ])
  1384                 SUMMARY_video="${SUMMARY_video} x11(dynamic)"
  1385             else
  1386                 enable_x11_shared=no
  1387                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $X_LIBS -lX11 -lXext"
  1388                 SUMMARY_video="${SUMMARY_video} x11"
  1389             fi
  1390             have_video=yes
  1391 
  1392             AC_MSG_CHECKING(for const parameter to XextAddDisplay)
  1393             have_const_param_XextAddDisplay=no
  1394             AC_TRY_COMPILE([
  1395               #include <X11/Xlib.h>
  1396               #include <X11/Xproto.h>
  1397               #include <X11/extensions/Xext.h>
  1398               #include <X11/extensions/extutil.h>
  1399               extern XExtDisplayInfo* XextAddDisplay(XExtensionInfo* a,Display* b,_Xconst char* c,XExtensionHooks* d,int e,XPointer f);
  1400             ],[
  1401             ],[
  1402             have_const_param_XextAddDisplay=yes
  1403             AC_DEFINE(SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY)
  1404             ])
  1405             AC_MSG_RESULT($have_const_param_XextAddDisplay)
  1406 
  1407             AC_MSG_CHECKING(for const parameter to _XData32)
  1408 	    have_const_param_xdata32=no
  1409 	    AC_TRY_COMPILE([
  1410 	      #include <X11/Xlibint.h>
  1411 	      extern int _XData32(Display *dpy,register _Xconst long *data,unsigned len);
  1412 	    ],[
  1413 	    ],[
  1414 	    have_const_param_xdata32=yes
  1415 	    AC_DEFINE(SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32)
  1416 	    ])
  1417 	    AC_MSG_RESULT($have_const_param_xdata32)
  1418 
  1419             dnl AC_CHECK_LIB(X11, XGetEventData, AC_DEFINE(SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS, 1, [Have XGenericEvent]))
  1420             AC_MSG_CHECKING([for XGenericEvent])
  1421             have_XGenericEvent=no
  1422             AC_TRY_COMPILE([
  1423               	#include <X11/Xlib.h>
  1424             ],[
  1425 Display *display;
  1426 XEvent event;
  1427 XGenericEventCookie *cookie = &event.xcookie;
  1428 XNextEvent(display, &event);
  1429 XGetEventData(display, cookie);
  1430 XFreeEventData(display, cookie);
  1431             ],[
  1432                 have_XGenericEvent=yes
  1433                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS)
  1434             ])
  1435             AC_MSG_RESULT($have_XGenericEvent)
  1436 
  1437             AC_CHECK_LIB(X11, XkbKeycodeToKeysym, AC_DEFINE(SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM, 1, [Have XkbKeycodeToKeysym]))
  1438 
  1439             AC_ARG_ENABLE(video-x11-xcursor,
  1440 AC_HELP_STRING([--enable-video-x11-xcursor], [enable X11 Xcursor support [[default=yes]]]),
  1441                             , enable_video_x11_xcursor=yes)
  1442             if test x$enable_video_x11_xcursor = xyes; then
  1443                 definitely_enable_video_x11_xcursor=no
  1444                 AC_CHECK_HEADER(X11/Xcursor/Xcursor.h,
  1445                                 have_xcursor_h_hdr=yes,
  1446                                 have_xcursor_h_hdr=no,
  1447                                 [#include <X11/Xlib.h>
  1448                                 ])
  1449                 if test x$have_xcursor_h_hdr = xyes; then
  1450                     if test x$enable_x11_shared = xyes && test x$xcursor_lib != x ; then
  1451                         echo "-- dynamic libXcursor -> $xcursor_lib"
  1452                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR, "$xcursor_lib", [ ])
  1453                         definitely_enable_video_x11_xcursor=yes
  1454                     else
  1455                         AC_CHECK_LIB(Xcursor, XcursorImageCreate, have_xcursor_lib=yes)
  1456                         if test x$have_xcursor_lib = xyes ; then
  1457                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXcursor"
  1458                             definitely_enable_video_x11_xcursor=yes
  1459                         fi
  1460                     fi
  1461                 fi
  1462             fi
  1463             if test x$definitely_enable_video_x11_xcursor = xyes; then
  1464                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XCURSOR, 1, [ ])
  1465                 SUMMARY_video_x11="${SUMMARY_video_x11} xcursor"
  1466             fi
  1467             AC_ARG_ENABLE(video-x11-xinerama,
  1468 AC_HELP_STRING([--enable-video-x11-xinerama], [enable X11 Xinerama support [[default=yes]]]),
  1469                             , enable_video_x11_xinerama=yes)
  1470             if test x$enable_video_x11_xinerama = xyes; then
  1471                 definitely_enable_video_x11_xinerama=no
  1472                 AC_CHECK_HEADER(X11/extensions/Xinerama.h,
  1473                                 have_xinerama_h_hdr=yes,
  1474                                 have_xinerama_h_hdr=no,
  1475                                 [#include <X11/Xlib.h>
  1476                                 ])
  1477                 if test x$have_xinerama_h_hdr = xyes; then
  1478                     if test x$enable_x11_shared = xyes && test x$xinerama_lib != x ; then
  1479                         echo "-- dynamic libXinerama -> $xinerama_lib"
  1480                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA, "$xinerama_lib", [ ])
  1481                         definitely_enable_video_x11_xinerama=yes
  1482                     else
  1483                         AC_CHECK_LIB(Xinerama, XineramaQueryExtension, have_xinerama_lib=yes)
  1484                         if test x$have_xinerama_lib = xyes ; then
  1485                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXinerama"
  1486                             definitely_enable_video_x11_xinerama=yes
  1487                         fi
  1488                     fi
  1489                 fi
  1490             fi
  1491             if test x$definitely_enable_video_x11_xinerama = xyes; then
  1492                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINERAMA, 1, [ ])
  1493                 SUMMARY_video_x11="${SUMMARY_video_x11} xinerama"
  1494             fi
  1495             AC_ARG_ENABLE(video-x11-xinput,
  1496 AC_HELP_STRING([--enable-video-x11-xinput], [enable X11 XInput extension for manymouse, tablets, etc [[default=yes]]]),
  1497                             , enable_video_x11_xinput=yes)
  1498             if test x$enable_video_x11_xinput = xyes; then
  1499                 definitely_enable_video_x11_xinput=no
  1500                 AC_CHECK_HEADER(X11/extensions/XInput2.h,
  1501                                 have_xinput_h_hdr=yes,
  1502                                 have_xinput_h_hdr=no,
  1503                                 [#include <X11/Xlib.h>
  1504                                 ])
  1505                 if test x$have_xinput_h_hdr = xyes; then
  1506                     if test x$enable_x11_shared = xyes && test x$xinput_lib != x ; then
  1507                         echo "-- dynamic libXi -> $xinput_lib"
  1508                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2, "$xinput_lib", [ ])
  1509                         definitely_enable_video_x11_xinput=yes
  1510                     else
  1511                         AC_CHECK_LIB(Xi, XOpenDevice, have_xinput_lib=yes)
  1512                         if test x$have_xinput_lib = xyes ; then
  1513                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXi"
  1514                             definitely_enable_video_x11_xinput=yes
  1515                         fi
  1516                     fi
  1517                 fi
  1518             fi
  1519             if test x$definitely_enable_video_x11_xinput = xyes; then
  1520                 SUMMARY_video_x11="${SUMMARY_video_x11} xinput2"
  1521                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINPUT2, 1, [ ])
  1522                 AC_MSG_CHECKING(for xinput2 multitouch)
  1523             	have_xinput2_multitouch=no
  1524             	AC_TRY_COMPILE([
  1525               		#include <X11/Xlib.h>
  1526              		#include <X11/Xproto.h>
  1527 			#include <X11/extensions/XInput2.h>
  1528             	],[
  1529 int event_type = XI_TouchBegin;
  1530 XITouchClassInfo *t;
  1531 Status 
  1532 XIAllowTouchEvents(Display *a,int b,unsigned int c,Window d,int f)
  1533 {
  1534     return (Status)0;
  1535 }
  1536             	],[
  1537             	have_xinput2_multitouch=yes
  1538             	AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH)
  1539                 SUMMARY_video_x11="${SUMMARY_video_x11} xinput2_multitouch"
  1540             	])
  1541             	AC_MSG_RESULT($have_xinput2_multitouch)
  1542             fi
  1543             AC_ARG_ENABLE(video-x11-xrandr,
  1544 AC_HELP_STRING([--enable-video-x11-xrandr], [enable X11 Xrandr extension for fullscreen [[default=yes]]]),
  1545                             , enable_video_x11_xrandr=yes)
  1546             if test x$enable_video_x11_xrandr = xyes; then
  1547                 dnl XRRScreenResources is only present in Xrandr >= 1.2, we use that as a test.
  1548                 definitely_enable_video_x11_xrandr=no
  1549                 have_xrandr_h_hdr=no
  1550                 AC_TRY_COMPILE([
  1551                 #include <X11/Xlib.h>
  1552                 #include <X11/extensions/Xrandr.h>
  1553                 ],[
  1554                 XRRScreenResources *res = NULL;
  1555                 ],[
  1556                 have_xrandr_h_hdr=yes
  1557                 ])
  1558                 if test x$have_xrandr_h_hdr = xyes; then
  1559                     if test x$enable_x11_shared = xyes && test x$xrandr_lib != x ; then
  1560                         echo "-- dynamic libXrandr -> $xrandr_lib"
  1561                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR, "$xrandr_lib", [ ])
  1562                         definitely_enable_video_x11_xrandr=yes
  1563                     else
  1564                         AC_CHECK_LIB(Xrandr, XRRQueryExtension, have_xrandr_lib=yes)
  1565                         if test x$have_xrandr_lib = xyes ; then
  1566                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXrandr"
  1567                             definitely_enable_video_x11_xrandr=yes
  1568                         fi
  1569                     fi
  1570                 fi
  1571             fi
  1572             if test x$definitely_enable_video_x11_xrandr = xyes; then
  1573                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR, 1, [ ])
  1574                 SUMMARY_video_x11="${SUMMARY_video_x11} xrandr"
  1575             fi
  1576             AC_ARG_ENABLE(video-x11-scrnsaver,
  1577 AC_HELP_STRING([--enable-video-x11-scrnsaver], [enable X11 screensaver extension [[default=yes]]]),
  1578                             , enable_video_x11_scrnsaver=yes)
  1579             if test x$enable_video_x11_scrnsaver = xyes; then
  1580                 AC_CHECK_HEADER(X11/extensions/scrnsaver.h,
  1581                                 have_scrnsaver_h_hdr=yes,
  1582                                 have_scrnsaver_h_hdr=no,
  1583                                 [#include <X11/Xlib.h>
  1584                                 ])
  1585                 if test x$have_scrnsaver_h_hdr = xyes; then
  1586                     if test x$enable_x11_shared = xyes && test x$xss_lib != x ; then
  1587                         echo "-- dynamic libXss -> $xss_lib"
  1588                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS, "$xss_lib", [ ])
  1589                         definitely_enable_video_x11_scrnsaver=yes
  1590                     else
  1591                         AC_CHECK_LIB(Xss, XScreenSaverSuspend, have_xss_lib=yes)
  1592                         if test x$have_xss_lib = xyes ; then
  1593                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXss"
  1594                             definitely_enable_video_x11_scrnsaver=yes
  1595                         fi
  1596                     fi
  1597                 fi
  1598             fi
  1599             if test x$definitely_enable_video_x11_scrnsaver = xyes; then
  1600                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XSCRNSAVER, 1, [ ])
  1601                 SUMMARY_video_x11="${SUMMARY_video_x11} xscrnsaver"
  1602             fi
  1603             AC_ARG_ENABLE(video-x11-xshape,
  1604 AC_HELP_STRING([--enable-video-x11-xshape], [enable X11 XShape support [[default=yes]]]),
  1605                             , enable_video_x11_xshape=yes)
  1606             if test x$enable_video_x11_xshape = xyes; then
  1607                 AC_CHECK_HEADER(X11/extensions/shape.h,
  1608                                 have_shape_h_hdr=yes,
  1609                                 have_shape_h_hdr=no,
  1610                                 [#include <X11/Xlib.h>
  1611                                 ])
  1612                 if test x$have_shape_h_hdr = xyes; then
  1613                     AC_DEFINE(SDL_VIDEO_DRIVER_X11_XSHAPE, 1, [ ])
  1614                     SUMMARY_video_x11="${SUMMARY_video_x11} xshape"
  1615                 fi
  1616             fi
  1617             AC_ARG_ENABLE(video-x11-vm,
  1618 AC_HELP_STRING([--enable-video-x11-vm], [use X11 VM extension for fullscreen [[default=yes]]]),
  1619                             , enable_video_x11_vm=yes)
  1620             if test x$enable_video_x11_vm = xyes; then
  1621                 definitely_enable_video_x11_vm=no
  1622                 AC_CHECK_HEADER(X11/extensions/xf86vmode.h,
  1623                                 have_vm_h_hdr=yes,
  1624                                 have_vm_h_hdr=no,
  1625                                 [#include <X11/Xlib.h>
  1626                                 ])
  1627                 if test x$have_vm_h_hdr = xyes; then
  1628                     if test x$enable_x11_shared = xyes && test x$xvidmode_lib != x ; then
  1629                         echo "-- dynamic libXxf86vm -> $xvidmode_lib"
  1630                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE, "$xvidmode_lib", [ ])
  1631                         definitely_enable_video_x11_vm=yes
  1632                     else
  1633                         AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryVersion, have_vm_lib=yes)
  1634                         if test x$have_vm_lib = xyes ; then
  1635                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXxf86vm"
  1636                             definitely_enable_video_x11_vm=yes
  1637                         fi
  1638                     fi
  1639                 fi
  1640             fi
  1641             if test x$definitely_enable_video_x11_vm = xyes; then
  1642                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XVIDMODE, 1, [ ])
  1643                 SUMMARY_video_x11="${SUMMARY_video_x11} xvidmode"
  1644             fi
  1645         fi
  1646     fi
  1647 }
  1648 
  1649 dnl Set up the Haiku video driver if enabled
  1650 CheckHaikuVideo()
  1651 {
  1652     if test x$enable_video = xyes; then
  1653         AC_DEFINE(SDL_VIDEO_DRIVER_HAIKU, 1, [ ])
  1654         SOURCES="$SOURCES $srcdir/src/video/haiku/*.cc"
  1655         have_video=yes
  1656         SUMMARY_video="${SUMMARY_video} haiku"
  1657     fi
  1658 }
  1659 
  1660 dnl Set up the Cocoa video driver for Mac OS X (but not Darwin)
  1661 CheckCOCOA()
  1662 {
  1663     AC_ARG_ENABLE(video-cocoa,
  1664 AC_HELP_STRING([--enable-video-cocoa], [use Cocoa video driver [[default=yes]]]),
  1665                   , enable_video_cocoa=yes)
  1666     if test x$enable_video = xyes -a x$enable_video_cocoa = xyes; then
  1667         save_CFLAGS="$CFLAGS"
  1668         dnl work around that we don't have Objective-C support in autoconf
  1669         CFLAGS="$CFLAGS -x objective-c"
  1670         AC_MSG_CHECKING(for Cocoa framework)
  1671         have_cocoa=no
  1672         AC_TRY_COMPILE([
  1673           #import <Cocoa/Cocoa.h>
  1674         ],[
  1675         ],[
  1676         have_cocoa=yes
  1677         ])
  1678         AC_MSG_RESULT($have_cocoa)
  1679         CFLAGS="$save_CFLAGS"
  1680         if test x$have_cocoa = xyes; then
  1681             AC_DEFINE(SDL_VIDEO_DRIVER_COCOA, 1, [ ])
  1682             SOURCES="$SOURCES $srcdir/src/video/cocoa/*.m"
  1683             SUMMARY_video="${SUMMARY_video} cocoa"
  1684             have_video=yes
  1685         fi
  1686     fi
  1687 }
  1688 
  1689 dnl Find DirectFB
  1690 CheckDirectFB()
  1691 {
  1692     AC_ARG_ENABLE(video-directfb,
  1693 AC_HELP_STRING([--enable-video-directfb], [use DirectFB video driver [[default=no]]]),
  1694                   , enable_video_directfb=no)
  1695     if test x$enable_video = xyes -a x$enable_video_directfb = xyes; then
  1696         video_directfb=no
  1697 
  1698         DIRECTFB_REQUIRED_VERSION=1.0.0
  1699         AC_PATH_PROGS(DIRECTFBCONFIG, directfb-config, no, [$prefix/bin:$PATH])
  1700         if test x$DIRECTFBCONFIG = xno; then
  1701             AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
  1702             if test x$PKG_CONFIG != xno; then
  1703                 if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb; then
  1704                     DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags directfb`
  1705                     DIRECTFB_LIBS=`$PKG_CONFIG --libs directfb`
  1706                     DIRECTFB_PREFIX=`$PKG_CONFIG --variable=prefix directfb`
  1707                     video_directfb=yes
  1708                 fi
  1709             fi
  1710         else
  1711             set -- `echo $DIRECTFB_REQUIRED_VERSION | sed 's/\./ /g'`
  1712             NEED_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
  1713             set -- `$DIRECTFBCONFIG --version | sed 's/\./ /g'`
  1714             HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
  1715             if test $HAVE_VERSION -ge $NEED_VERSION; then
  1716                 DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags`
  1717                 DIRECTFB_LIBS=`$DIRECTFBCONFIG --libs`
  1718                 DIRECTFB_PREFIX=`$DIRECTFBCONFIG --prefix`
  1719                 video_directfb=yes
  1720             fi
  1721         fi
  1722         if test x$video_directfb = xyes; then
  1723             # SuSE 11.1 installs directfb-config without directfb-devel
  1724             save_CPPFLAGS="$CPPFLAGS"
  1725             CPPFLAGS="$CPPFLAGS $DIRECTFB_CFLAGS"
  1726             AC_CHECK_HEADER(directfb.h, have_directfb_hdr=yes, have_directfb_hdr=no)
  1727             CPPFLAGS="$save_CPPFLAGS"
  1728             video_directfb=$have_directfb_hdr
  1729         fi
  1730         AC_MSG_CHECKING(for DirectFB $DIRECTFB_REQUIRED_VERSION support)
  1731         AC_MSG_RESULT($video_directfb)
  1732 
  1733         if test x$video_directfb = xyes; then
  1734             AC_ARG_ENABLE(directfb-shared,
  1735 AC_HELP_STRING([--enable-directfb-shared], [dynamically load directfb support [[default=yes]]]),
  1736                               , enable_directfb_shared=yes)
  1737 
  1738             AC_DEFINE(SDL_VIDEO_DRIVER_DIRECTFB, 1, [ ])
  1739             AC_DEFINE(SDL_VIDEO_RENDER_DIRECTFB, 1, [ ])
  1740             SOURCES="$SOURCES $srcdir/src/video/directfb/*.c"
  1741             EXTRA_CFLAGS="$EXTRA_CFLAGS $DIRECTFB_CFLAGS"
  1742 
  1743             AC_MSG_CHECKING(for directfb dynamic loading support)
  1744             directfb_shared=no
  1745             directfb_lib=[`find_lib "libdirectfb.so.*" "$DIRECTFB_LIBS"`]
  1746             # | sed 's/.*\/\(.*\)/\1/; q'`]
  1747 AC_MSG_WARN("directfb $directfb_lib")
  1748             if test x$have_loadso != xyes && \
  1749                test x$enable_directfb_shared = xyes; then
  1750                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic directfb loading])
  1751             fi
  1752             if test x$have_loadso = xyes && \
  1753                test x$enable_directfb_shared = xyes && test x$directfb_lib != x; then
  1754                 directfb_shared=yes
  1755                 echo "-- $directfb_lib_spec -> $directfb_lib"
  1756                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC, "$directfb_lib", [ ])
  1757                 SUMMARY_video="${SUMMARY_video} directfb(dynamic)"
  1758             else
  1759                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $DIRECTFB_LIBS"
  1760                 SUMMARY_video="${SUMMARY_video} directfb"
  1761             fi
  1762             AC_MSG_RESULT($directfb_shared)
  1763             have_video=yes
  1764         fi
  1765     fi
  1766 }
  1767 
  1768 dnl Find FusionSound
  1769 CheckFusionSound()
  1770 {
  1771     AC_ARG_ENABLE(fusionsound,
  1772 AC_HELP_STRING([--enable-fusionsound], [use FusionSound audio driver [[default=no]]]),
  1773                   , enable_fusionsound=no)
  1774     if test x$enable_audio = xyes -a x$enable_fusionsound = xyes; then
  1775         fusionsound=no
  1776 
  1777         FUSIONSOUND_REQUIRED_VERSION=1.1.1
  1778 
  1779         AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
  1780         AC_MSG_CHECKING(for FusionSound $FUSIONSOUND_REQUIRED_VERSION support)
  1781         if test x$PKG_CONFIG != xno; then
  1782             if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $FUSIONSOUND_REQUIRED_VERSION fusionsound; then
  1783                 FUSIONSOUND_CFLAGS=`$PKG_CONFIG --cflags fusionsound`
  1784                 FUSIONSOUND_LIBS=`$PKG_CONFIG --libs fusionsound`
  1785                 fusionsound=yes
  1786             fi
  1787         fi
  1788         AC_MSG_RESULT($fusionsound)
  1789 
  1790         if test x$fusionsound = xyes; then
  1791             AC_DEFINE(SDL_AUDIO_DRIVER_FUSIONSOUND, 1, [ ])
  1792             SOURCES="$SOURCES $srcdir/src/audio/fusionsound/*.c"
  1793             EXTRA_CFLAGS="$EXTRA_CFLAGS $FUSIONSOUND_CFLAGS"
  1794             
  1795             AC_ARG_ENABLE(fusionsound-shared,
  1796 AC_HELP_STRING([--enable-fusionsound-shared], [dynamically load fusionsound audio support [[default=yes]]]),
  1797                           , enable_fusionsound_shared=yes)
  1798             fusionsound_shared=no
  1799             AC_MSG_CHECKING(for FusionSound dynamic loading support)
  1800             if test x$have_loadso != xyes && \
  1801                test x$enable_fusionsound_shared = xyes; then
  1802                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic fusionsound loading])
  1803             fi
  1804             if test x$have_loadso = xyes && \
  1805                test x$enable_fusionsound_shared = xyes; then
  1806                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC, "libfusionsound.so", [ ])
  1807                 fusionsound_shared=yes
  1808                 SUMMARY_audio="${SUMMARY_audio} fusionsound(dynamic)"
  1809             else
  1810                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $FUSIONSOUND_LIBS"
  1811                 SUMMARY_audio="${SUMMARY_audio} fusionsound"
  1812             fi
  1813             AC_MSG_RESULT($fusionsound_shared)
  1814             
  1815             have_audio=yes
  1816         fi
  1817     fi
  1818 }
  1819 
  1820 dnl rcg04172001 Set up the Null video driver.
  1821 CheckDummyVideo()
  1822 {
  1823     AC_ARG_ENABLE(video-dummy,
  1824 AC_HELP_STRING([--enable-video-dummy], [use dummy video driver [[default=yes]]]),
  1825                   , enable_video_dummy=yes)
  1826     if test x$enable_video_dummy = xyes; then
  1827         AC_DEFINE(SDL_VIDEO_DRIVER_DUMMY, 1, [ ])
  1828         SOURCES="$SOURCES $srcdir/src/video/dummy/*.c"
  1829         have_video=yes
  1830         SUMMARY_video="${SUMMARY_video} dummy"
  1831     fi
  1832 }
  1833 
  1834 dnl Check to see if OpenGL support is desired
  1835 AC_ARG_ENABLE(video-opengl,
  1836 AC_HELP_STRING([--enable-video-opengl], [include OpenGL support [[default=yes]]]),
  1837               , enable_video_opengl=yes)
  1838 
  1839 dnl Find OpenGL
  1840 CheckOpenGLX11()
  1841 {
  1842     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1843         AC_MSG_CHECKING(for OpenGL (GLX) support)
  1844         video_opengl=no
  1845         AC_TRY_COMPILE([
  1846          #include <GL/gl.h>
  1847          #include <GL/glx.h>
  1848         ],[
  1849         ],[
  1850         video_opengl=yes
  1851         ])
  1852         AC_MSG_RESULT($video_opengl)
  1853         if test x$video_opengl = xyes; then
  1854             AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1855             AC_DEFINE(SDL_VIDEO_OPENGL_GLX, 1, [ ])
  1856             AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  1857             SUMMARY_video="${SUMMARY_video} opengl"
  1858         fi
  1859     fi
  1860 }
  1861 
  1862 dnl Check to see if OpenGL ES support is desired
  1863 AC_ARG_ENABLE(video-opengles,
  1864 AC_HELP_STRING([--enable-video-opengles], [include OpenGL ES support [[default=yes]]]),
  1865               , enable_video_opengles=yes)
  1866 
  1867 dnl Find OpenGL ES
  1868 CheckOpenGLESX11()
  1869 {
  1870     if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then
  1871         AC_MSG_CHECKING(for EGL support)
  1872         video_opengl_egl=no
  1873         AC_TRY_COMPILE([
  1874          #include <EGL/egl.h>
  1875         ],[
  1876         ],[
  1877         video_opengl_egl=yes
  1878         ])
  1879         AC_MSG_RESULT($video_opengl_egl)
  1880         if test x$video_opengl_egl = xyes; then
  1881             AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ])
  1882         fi
  1883             
  1884         AC_MSG_CHECKING(for OpenGL ES v1 headers)
  1885         video_opengles_v1=no
  1886         AC_TRY_COMPILE([
  1887          #include <GLES/gl.h>
  1888          #include <GLES/glext.h>
  1889         ],[
  1890         ],[
  1891         video_opengles_v1=yes
  1892         ])
  1893         AC_MSG_RESULT($video_opengles_v1)
  1894         if test x$video_opengles_v1 = xyes; then
  1895             AC_DEFINE(SDL_VIDEO_OPENGL_ES, 1, [ ])
  1896             AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES, 1, [ ])
  1897             SUMMARY_video="${SUMMARY_video} opengl_es1"
  1898         fi
  1899         
  1900         AC_MSG_CHECKING(for OpenGL ES v2 headers)
  1901         video_opengles_v2=no
  1902         AC_TRY_COMPILE([
  1903          #include <GLES2/gl2.h>
  1904          #include <GLES2/gl2ext.h>
  1905         ],[
  1906         ],[
  1907         video_opengles_v2=yes
  1908         ])
  1909         AC_MSG_RESULT($video_opengles_v2)
  1910         if test x$video_opengles_v2 = xyes; then
  1911             AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ])
  1912             AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
  1913             SUMMARY_video="${SUMMARY_video} opengl_es2"
  1914         fi
  1915     fi
  1916 }
  1917 
  1918 dnl Check for Windows OpenGL
  1919 CheckWINDOWSGL()
  1920 {
  1921     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1922         AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1923         AC_DEFINE(SDL_VIDEO_OPENGL_WGL, 1, [ ])
  1924         AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  1925         SUMMARY_video="${SUMMARY_video} opengl"
  1926     fi
  1927 }
  1928 
  1929 dnl Check for Windows OpenGL
  1930 CheckWINDOWSGLES()
  1931 {
  1932     if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then
  1933 
  1934         AC_MSG_CHECKING(for EGL support)
  1935         video_opengl_egl=no
  1936         AC_TRY_COMPILE([
  1937          #include <EGL/egl.h>
  1938         ],[
  1939         ],[
  1940         video_opengl_egl=yes
  1941         ])
  1942         AC_MSG_RESULT($video_opengl_egl)
  1943         if test x$video_opengl_egl = xyes; then
  1944             AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1945             AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ])
  1946             SUMMARY_video="${SUMMARY_video} opengl_es1"
  1947         fi
  1948        
  1949         AC_MSG_CHECKING(for OpenGL ES v2 headers)
  1950         video_opengles_v2=no
  1951         AC_TRY_COMPILE([
  1952          #include <GLES2/gl2.h>
  1953          #include <GLES2/gl2ext.h>
  1954         ],[
  1955         ],[
  1956         video_opengles_v2=yes
  1957         ])
  1958         AC_MSG_RESULT($video_opengles_v2)
  1959         if test x$video_opengles_v2 = xyes; then
  1960             AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1961             AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ])
  1962             AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
  1963             SUMMARY_video="${SUMMARY_video} opengl_es2"
  1964         fi
  1965     fi
  1966 }
  1967 
  1968 dnl Check for Haiku OpenGL
  1969 CheckHaikuGL()
  1970 {
  1971     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1972         AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1973         AC_DEFINE(SDL_VIDEO_OPENGL_HAIKU, 1, [ ])
  1974         AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  1975         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL"
  1976         SUMMARY_video="${SUMMARY_video} opengl"
  1977     fi
  1978 }
  1979 
  1980 dnl Check for MacOS OpenGL
  1981 CheckMacGL()
  1982 {
  1983     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1984         AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1985         AC_DEFINE(SDL_VIDEO_OPENGL_CGL, 1, [ ])
  1986         AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  1987         SUMMARY_video="${SUMMARY_video} opengl"
  1988         case "$host" in
  1989             *-*-darwin*)
  1990                 if test x$enable_video_cocoa = xyes; then
  1991                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,OpenGL"
  1992                 fi
  1993         esac
  1994     fi
  1995 }
  1996 
  1997 dnl See if we can use the new unified event interface in Linux 2.4
  1998 CheckInputEvents()
  1999 {
  2000     dnl Check for Linux 2.4 unified input event interface support
  2001         AC_MSG_CHECKING(for Linux 2.4 unified input interface)
  2002         use_input_events=no
  2003         AC_TRY_COMPILE([
  2004           #include <linux/input.h>
  2005         ],[
  2006           #ifndef EVIOCGNAME
  2007           #error EVIOCGNAME() ioctl not available
  2008           #endif
  2009         ],[
  2010         use_input_events=yes
  2011         ])
  2012         AC_MSG_RESULT($use_input_events)
  2013         if test x$use_input_events = xyes; then
  2014             AC_DEFINE(SDL_INPUT_LINUXEV, 1, [ ])
  2015             SUMMARY_input="${SUMMARY_input} linuxev"
  2016         fi
  2017 }
  2018 
  2019 dnl See if we can use the kernel kd.h header
  2020 CheckInputKD()
  2021 {
  2022 
  2023     AC_MSG_CHECKING(for Linux kd.h)
  2024     use_input_kd=no
  2025     AC_TRY_COMPILE([
  2026       #include <linux/kd.h>
  2027       #include <linux/keyboard.h>
  2028     ],[
  2029         struct kbentry kbe;
  2030         kbe.kb_table = KG_CTRL;
  2031         ioctl(0, KDGKBENT, &kbe);
  2032     ],[
  2033     use_input_kd=yes
  2034     ])
  2035     AC_MSG_RESULT($use_input_kd)
  2036     if test x$use_input_kd = xyes; then
  2037         AC_DEFINE(SDL_INPUT_LINUXKD, 1, [ ])
  2038         SUMMARY_input="${SUMMARY_input} linuxkd"
  2039     fi
  2040 }
  2041 
  2042 dnl See if the platform offers libudev for device enumeration and hotplugging.
  2043 CheckLibUDev()
  2044 {
  2045     AC_ARG_ENABLE(libudev,
  2046 AC_HELP_STRING([--enable-libudev], [enable libudev support [[default=yes]]]),
  2047                         , enable_libudev=yes)
  2048     if test x$enable_libudev = xyes; then
  2049         AC_CHECK_HEADER(libudev.h,
  2050                         have_libudev_h_hdr=yes,
  2051                         have_libudev_h_hdr=no)
  2052         if test x$have_libudev_h_hdr = xyes; then
  2053             AC_DEFINE(HAVE_LIBUDEV_H, 1, [ ])
  2054         fi
  2055     fi
  2056 }
  2057 
  2058 dnl See if the platform offers libdbus for various IPC techniques.
  2059 CheckDBus()
  2060 {
  2061     AC_ARG_ENABLE(dbus,
  2062 AC_HELP_STRING([--enable-dbus], [enable D-Bus support [[default=yes]]]),
  2063                         , enable_dbus=yes)
  2064     if test x$enable_dbus = xyes; then
  2065         AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
  2066         if test x$PKG_CONFIG != xno; then
  2067             DBUS_CFLAGS=`$PKG_CONFIG --cflags dbus-1`
  2068             save_CFLAGS="$CFLAGS"
  2069             CFLAGS="$save_CFLAGS $DBUS_CFLAGS"
  2070             AC_CHECK_HEADER(dbus/dbus.h,
  2071                             have_dbus_dbus_h_hdr=yes,
  2072                             have_dbus_dbus_h_hdr=no)
  2073             CFLAGS="$save_CFLAGS"
  2074             if test x$have_dbus_dbus_h_hdr = xyes; then
  2075                 AC_DEFINE(HAVE_DBUS_DBUS_H, 1, [ ])
  2076                 EXTRA_CFLAGS="$EXTRA_CFLAGS $DBUS_CFLAGS"
  2077             fi
  2078         fi
  2079     fi
  2080 }
  2081 
  2082 dnl See if we can use the Touchscreen input library
  2083 CheckTslib()
  2084 {
  2085     AC_ARG_ENABLE(input-tslib,
  2086 AC_HELP_STRING([--enable-input-tslib], [use the Touchscreen library for input [[default=yes]]]),
  2087                   , enable_input_tslib=yes)
  2088     if test x$enable_input_tslib = xyes; then
  2089         AC_MSG_CHECKING(for Touchscreen library support)
  2090         enable_input_tslib=no
  2091         AC_TRY_COMPILE([
  2092           #include "tslib.h"
  2093         ],[
  2094         ],[
  2095         enable_input_tslib=yes
  2096         ])
  2097         AC_MSG_RESULT($enable_input_tslib)
  2098         if test x$enable_input_tslib = xyes; then
  2099             AC_DEFINE(SDL_INPUT_TSLIB, 1, [ ])
  2100             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lts"
  2101             SUMMARY_input="${SUMMARY_input} ts"
  2102         fi
  2103     fi
  2104 }
  2105 
  2106 dnl See what type of thread model to use on Linux and Solaris
  2107 CheckPTHREAD()
  2108 {
  2109     dnl Check for pthread support
  2110     AC_ARG_ENABLE(pthreads,
  2111 AC_HELP_STRING([--enable-pthreads], [use POSIX threads for multi-threading [[default=yes]]]),
  2112                   , enable_pthreads=yes)
  2113     dnl This is used on Linux for glibc binary compatibility (Doh!)
  2114     AC_ARG_ENABLE(pthread-sem,
  2115 AC_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [[default=yes]]]),
  2116                   , enable_pthread_sem=yes)
  2117     case "$host" in
  2118         *-*-linux*|*-*-uclinux*)
  2119             pthread_cflags="-D_REENTRANT"
  2120             pthread_lib="-lpthread"
  2121             ;;
  2122         *-*-bsdi*)
  2123             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  2124             pthread_lib=""
  2125             ;;
  2126         *-*-darwin*)
  2127             pthread_cflags="-D_THREAD_SAFE"
  2128 # causes Carbon.p complaints?
  2129 #            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  2130             ;;
  2131         *-*-freebsd*|*-*-dragonfly*)
  2132             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  2133             pthread_lib="-pthread"
  2134             ;;
  2135         *-*-netbsd*)
  2136             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  2137             pthread_lib="-lpthread"
  2138             ;;
  2139         *-*-openbsd*)
  2140             pthread_cflags="-D_REENTRANT"
  2141             pthread_lib="-pthread"
  2142             ;;
  2143         *-*-solaris2.9)
  2144             # From Solaris 9+, posix4's preferred name is rt.
  2145             pthread_cflags="-D_REENTRANT"
  2146             pthread_lib="-lpthread -lrt"
  2147             ;;
  2148         *-*-solaris2.10)
  2149             # Solaris 10+ merged pthread into libc.
  2150             pthread_cflags="-D_REENTRANT"
  2151             pthread_lib="-lrt"
  2152             ;;
  2153         *-*-solaris*)
  2154             # Solaris 11+ merged rt into libc.
  2155             pthread_cflags="-D_REENTRANT"
  2156             pthread_lib=""
  2157             ;;
  2158         *-*-sysv5*)
  2159             pthread_cflags="-D_REENTRANT -Kthread"
  2160             pthread_lib=""
  2161             ;;
  2162         *-*-aix*)
  2163             pthread_cflags="-D_REENTRANT -mthreads"
  2164             pthread_lib="-lpthread"
  2165             ;;
  2166         *-*-hpux11*)
  2167             pthread_cflags="-D_REENTRANT"
  2168             pthread_lib="-L/usr/lib -lpthread"
  2169             ;;
  2170         *-*-haiku*)
  2171             pthread_cflags="-D_REENTRANT"
  2172             pthread_lib=""
  2173             ;;
  2174         *)
  2175             pthread_cflags="-D_REENTRANT"
  2176             pthread_lib="-lpthread"
  2177             ;;
  2178     esac
  2179     if test x$enable_threads = xyes -a x$enable_pthreads = xyes; then
  2180         # Save the original compiler flags and libraries
  2181         ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
  2182         # Add the pthread compiler flags and libraries
  2183         CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
  2184         # Check to see if we have pthread support on this system
  2185         AC_MSG_CHECKING(for pthreads)
  2186         use_pthreads=no
  2187         AC_TRY_LINK([
  2188          #include <pthread.h>
  2189         ],[
  2190          pthread_attr_t type;
  2191          pthread_attr_init(&type);
  2192         ],[
  2193         use_pthreads=yes
  2194         ])
  2195         AC_MSG_RESULT($use_pthreads)
  2196         # Restore the compiler flags and libraries
  2197         CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
  2198 
  2199         # Do futher testing if we have pthread support...
  2200         if test x$use_pthreads = xyes; then
  2201             AC_DEFINE(SDL_THREAD_PTHREAD, 1, [ ])
  2202             EXTRA_CFLAGS="$EXTRA_CFLAGS $pthread_cflags"
  2203             EXTRA_LDFLAGS="$EXTRA_LDFLAGS $pthread_lib"
  2204             SDL_CFLAGS="$SDL_CFLAGS $pthread_cflags"
  2205             SDL_LIBS="$SDL_LIBS $pthread_lib"
  2206 
  2207             # Save the original compiler flags and libraries
  2208             ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
  2209             # Add the pthread compiler flags and libraries
  2210             CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
  2211 
  2212             # Check to see if recursive mutexes are available
  2213             AC_MSG_CHECKING(for recursive mutexes)
  2214             has_recursive_mutexes=no
  2215             if test x$has_recursive_mutexes = xno; then
  2216                 AC_TRY_COMPILE([
  2217                   #include <pthread.h>
  2218                 ],[
  2219                   pthread_mutexattr_t attr;
  2220                   pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
  2221                 ],[
  2222                 has_recursive_mutexes=yes
  2223                 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX, 1, [ ])
  2224                 ])
  2225             fi
  2226             if test x$has_recursive_mutexes = xno; then
  2227                 AC_TRY_COMPILE([
  2228                   #include <pthread.h>
  2229                 ],[
  2230                   pthread_mutexattr_t attr;
  2231                   pthread_mutexattr_setkind_np(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
  2232                 ],[
  2233                 has_recursive_mutexes=yes
  2234                 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP, 1, [ ])
  2235                 ])
  2236             fi
  2237             AC_MSG_RESULT($has_recursive_mutexes)
  2238 
  2239             # Check to see if pthread semaphore support is missing
  2240             if test x$enable_pthread_sem = xyes; then
  2241                 AC_MSG_CHECKING(for pthread semaphores)
  2242                 have_pthread_sem=no
  2243                 AC_TRY_COMPILE([
  2244                   #include <pthread.h>
  2245                   #include <semaphore.h>
  2246                 ],[
  2247                 ],[
  2248                 have_pthread_sem=yes
  2249                 ])
  2250                 AC_MSG_RESULT($have_pthread_sem)
  2251             fi
  2252             if test x$have_pthread_sem = xyes; then
  2253                 AC_MSG_CHECKING(for sem_timedwait)
  2254                 have_sem_timedwait=no
  2255                 AC_TRY_LINK([
  2256                   #include <pthread.h>
  2257                   #include <semaphore.h>
  2258                 ],[
  2259                   sem_timedwait(NULL, NULL);
  2260                 ],[
  2261                 have_sem_timedwait=yes
  2262                 AC_DEFINE(HAVE_SEM_TIMEDWAIT)
  2263                 ])
  2264                 AC_MSG_RESULT($have_sem_timedwait)
  2265             fi
  2266 
  2267             AC_MSG_CHECKING(for pthread_spin_trylock)
  2268             AC_TRY_LINK_FUNC(pthread_spin_trylock, [
  2269               has_pthread_spin_trylock=yes
  2270               AC_DEFINE(HAVE_PTHREAD_SPINLOCK, 1, [ ])
  2271             ],[
  2272               has_pthread_spin_trylock=no
  2273             ])
  2274             AC_MSG_RESULT($has_pthread_spin_trylock)
  2275 
  2276             AC_CHECK_HEADER(pthread_np.h, have_pthread_np_h=yes, have_pthread_np_h=no, [ #include <pthread.h> ])
  2277             if test x$have_pthread_np_h = xyes; then
  2278                 AC_DEFINE(HAVE_PTHREAD_NP_H, 1, [ ])
  2279             fi
  2280 
  2281             # Check to see if pthread naming is available
  2282             AC_MSG_CHECKING(for pthread_setname_np)
  2283             AC_TRY_LINK_FUNC(pthread_setname_np, [
  2284               has_pthread_setname_np=yes
  2285               AC_DEFINE(HAVE_PTHREAD_SETNAME_NP, 1, [ ])
  2286             ],[
  2287               has_pthread_setname_np=no
  2288             ])
  2289             AC_MSG_RESULT($has_pthread_setname_np)
  2290 
  2291             AC_MSG_CHECKING(for pthread_set_name_np)
  2292             AC_TRY_LINK_FUNC(pthread_set_name_np, [
  2293               has_pthread_set_name_np=yes
  2294               AC_DEFINE(HAVE_PTHREAD_SET_NAME_NP, 1, [ ])
  2295             ],[
  2296               has_pthread_set_name_np=no
  2297             ])
  2298             AC_MSG_RESULT($has_pthread_set_name_np)
  2299 
  2300             # Restore the compiler flags and libraries
  2301             CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
  2302 
  2303             # Basic thread creation functions
  2304             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_systhread.c"
  2305 
  2306             # Semaphores
  2307             # We can fake these with mutexes and condition variables if necessary
  2308             if test x$have_pthread_sem = xyes; then
  2309                 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syssem.c"
  2310             else
  2311                 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syssem.c"
  2312             fi
  2313 
  2314             # Mutexes
  2315             # We can fake these with semaphores if necessary
  2316             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_sysmutex.c"
  2317 
  2318             # Condition variables
  2319             # We can fake these with semaphores and mutexes if necessary
  2320             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syscond.c"
  2321 
  2322             # Thread local storage
  2323             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_systls.c"
  2324 
  2325             have_threads=yes
  2326         fi
  2327     fi
  2328 }
  2329 
  2330 dnl Determine whether the compiler can produce Windows executables
  2331 CheckWINDOWS()
  2332 {
  2333     AC_MSG_CHECKING(Windows compiler)
  2334     have_win32_gcc=no
  2335     AC_TRY_COMPILE([
  2336      #include <windows.h>
  2337     ],[
  2338     ],[
  2339     have_win32_gcc=yes
  2340     ])
  2341     AC_MSG_RESULT($have_win32_gcc)
  2342     if test x$have_win32_gcc != xyes; then
  2343        AC_MSG_ERROR([
  2344 *** Your compiler ($CC) does not produce Windows executables!
  2345        ])
  2346     fi
  2347 
  2348     AC_MSG_CHECKING(Windows CE)
  2349     have_wince=no
  2350     AC_TRY_COMPILE([
  2351 #if !defined(_WIN32_WCE) && !defined(__MINGW32CE__)
  2352 #error This is not Windows CE
  2353 #endif
  2354     ],[
  2355     ],[
  2356     have_wince=yes
  2357        AC_MSG_ERROR([
  2358 *** Sorry, Windows CE is no longer supported.
  2359        ])
  2360     ])
  2361     AC_MSG_RESULT($have_wince)
  2362 
  2363     # This fixes Windows stack alignment with newer GCC
  2364     CheckStackBoundary
  2365 }
  2366 
  2367 dnl Find the DirectX includes and libraries
  2368 CheckDIRECTX()
  2369 {
  2370     AC_ARG_ENABLE(directx,
  2371 AC_HELP_STRING([--enable-directx], [use DirectX for Windows audio/video [[default=yes]]]),
  2372                   , enable_directx=yes)
  2373     if test x$enable_directx = xyes; then
  2374         AC_CHECK_HEADER(d3d9.h, have_d3d=yes)
  2375         AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
  2376         AC_CHECK_HEADER(dsound.h, have_dsound=yes)
  2377         AC_CHECK_HEADER(dinput.h, have_dinput=yes)
  2378         AC_CHECK_HEADER(xaudio2.h, have_xaudio2=yes)
  2379 
  2380         SUMMARY_video="${SUMMARY_video} directx"
  2381         SUMMARY_audio="${SUMMARY_audio} directx"
  2382 
  2383         # FIXME: latest Cygwin finds dinput headers, but we die on other win32 headers.
  2384         # FIXME:  ...so force it off for now.
  2385         case "$host" in
  2386             *-*-cygwin*)
  2387             have_dinput=false
  2388             ;;
  2389         esac
  2390     fi
  2391 }
  2392 
  2393 dnl Check for the dlfcn.h interface for dynamically loading objects
  2394 CheckDLOPEN()
  2395 {
  2396     AC_ARG_ENABLE(sdl-dlopen,
  2397 AC_HELP_STRING([--enable-sdl-dlopen], [use dlopen for shared object loading [[default=yes]]]),
  2398                   , enable_sdl_dlopen=yes)
  2399     if test x$enable_sdl_dlopen = xyes; then
  2400         AC_MSG_CHECKING(for dlopen)
  2401         have_dlopen=no
  2402         AC_TRY_COMPILE([
  2403          #include <dlfcn.h>
  2404         ],[
  2405          void *handle = dlopen("", RTLD_NOW);
  2406          const char *loaderror = (char *) dlerror();
  2407         ],[
  2408         have_dlopen=yes
  2409         ])
  2410         AC_MSG_RESULT($have_dlopen)
  2411 
  2412         if test x$have_dlopen = xyes; then
  2413             AC_CHECK_LIB(c, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS",
  2414                AC_CHECK_LIB(dl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldl",
  2415                   AC_CHECK_LIB(ltdl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lltdl")))
  2416             AC_DEFINE(SDL_LOADSO_DLOPEN, 1, [ ])
  2417             SOURCES="$SOURCES $srcdir/src/loadso/dlopen/*.c"
  2418             have_loadso=yes
  2419         fi
  2420     fi
  2421 }
  2422 
  2423 dnl Check for the usbhid(3) library on *BSD
  2424 CheckUSBHID()
  2425 {
  2426     case "$host" in
  2427         *-*-*bsd*)
  2428             if test x$enable_joystick = xyes; then
  2429                 AC_CHECK_LIB(usbhid, hid_init, have_libusbhid=yes)
  2430                 if test x$have_libusbhid = xyes; then
  2431                     AC_CHECK_HEADER(usbhid.h, [USB_CFLAGS="-DHAVE_USBHID_H"])
  2432                     AC_CHECK_HEADER(libusbhid.h, [USB_CFLAGS="-DHAVE_LIBUSBHID_H"])
  2433                     USB_LIBS="$USB_LIBS -lusbhid"
  2434                 else
  2435                     AC_CHECK_HEADER(usb.h, [USB_CFLAGS="-DHAVE_USB_H"])
  2436                     AC_CHECK_HEADER(libusb.h, [USB_CFLAGS="-DHAVE_LIBUSB_H"])
  2437                     AC_CHECK_LIB(usb, hid_init, [USB_LIBS="$USB_LIBS -lusb"])
  2438                 fi
  2439                     
  2440                 save_CFLAGS="$CFLAGS"
  2441                 CFLAGS="$CFLAGS $USB_CFLAGS"
  2442 
  2443                 AC_MSG_CHECKING(for usbhid)
  2444                 have_usbhid=no
  2445                 AC_TRY_COMPILE([
  2446                   #include <sys/types.h>
  2447                   #if defined(HAVE_USB_H)
  2448                   #include <usb.h>
  2449                   #endif
  2450                   #ifdef __DragonFly__
  2451                   # include <bus/usb/usb.h>
  2452                   # include <bus/usb/usbhid.h>
  2453                   #else
  2454                   # include <dev/usb/usb.h>
  2455                   # include <dev/usb/usbhid.h>
  2456                   #endif
  2457                   #if defined(HAVE_USBHID_H)
  2458                   #include <usbhid.h>
  2459                   #elif defined(HAVE_LIBUSB_H)
  2460                   #include <libusb.h>
  2461                   #elif defined(HAVE_LIBUSBHID_H)
  2462                   #include <libusbhid.h>
  2463                   #endif
  2464                 ],[
  2465                   struct report_desc *repdesc;
  2466                   struct usb_ctl_report *repbuf;
  2467                   hid_kind_t hidkind;
  2468                 ],[
  2469                 have_usbhid=yes
  2470                 ])
  2471                 AC_MSG_RESULT($have_usbhid)
  2472 
  2473                 if test x$have_usbhid = xyes; then
  2474                     AC_MSG_CHECKING(for ucr_data member of usb_ctl_report)
  2475                     have_usbhid_ucr_data=no
  2476                     AC_TRY_COMPILE([
  2477                       #include <sys/types.h>
  2478                       #if defined(HAVE_USB_H)
  2479                       #include <usb.h>
  2480                       #endif
  2481                       #ifdef __DragonFly__
  2482                       # include <bus/usb/usb.h>
  2483                       # include <bus/usb/usbhid.h>
  2484                       #else
  2485                       # include <dev/usb/usb.h>
  2486                       # include <dev/usb/usbhid.h>
  2487                       #endif
  2488                       #if defined(HAVE_USBHID_H)
  2489                       #include <usbhid.h>
  2490                       #elif defined(HAVE_LIBUSB_H)
  2491                       #include <libusb.h>
  2492                       #elif defined(HAVE_LIBUSBHID_H)
  2493                       #include <libusbhid.h>
  2494                       #endif
  2495                     ],[
  2496                       struct usb_ctl_report buf;
  2497                       if (buf.ucr_data) { }
  2498                     ],[
  2499                     have_usbhid_ucr_data=yes
  2500                     ])
  2501                     if test x$have_usbhid_ucr_data = xyes; then
  2502                         USB_CFLAGS="$USB_CFLAGS -DUSBHID_UCR_DATA"
  2503                     fi
  2504                     AC_MSG_RESULT($have_usbhid_ucr_data)
  2505                     
  2506                     AC_MSG_CHECKING(for new usbhid API)
  2507                     have_usbhid_new=no
  2508                     AC_TRY_COMPILE([
  2509                       #include <sys/types.h>
  2510                       #if defined(HAVE_USB_H)
  2511                       #include <usb.h>
  2512                       #endif
  2513                       #ifdef __DragonFly__
  2514                       #include <bus/usb/usb.h>
  2515                       #include <bus/usb/usbhid.h>
  2516                       #else
  2517                       #include <dev/usb/usb.h>
  2518                       #include <dev/usb/usbhid.h>
  2519                       #endif
  2520                       #if defined(HAVE_USBHID_H)
  2521                       #include <usbhid.h>
  2522                       #elif defined(HAVE_LIBUSB_H)
  2523                       #include <libusb.h>
  2524                       #elif defined(HAVE_LIBUSBHID_H)
  2525                       #include <libusbhid.h>
  2526                       #endif
  2527                     ],[
  2528                       report_desc_t d;
  2529                       hid_start_parse(d, 1, 1);
  2530                     ],[
  2531                     have_usbhid_new=yes
  2532                     ])
  2533                     if test x$have_usbhid_new = xyes; then
  2534                         USB_CFLAGS="$USB_CFLAGS -DUSBHID_NEW"
  2535                     fi
  2536                     AC_MSG_RESULT($have_usbhid_new)
  2537 
  2538                     AC_MSG_CHECKING(for struct joystick in machine/joystick.h)
  2539                     have_machine_joystick=no
  2540                     AC_TRY_COMPILE([
  2541                       #include <machine/joystick.h>
  2542                     ],[
  2543                       struct joystick t;
  2544                     ],[
  2545                     have_machine_joystick=yes
  2546                     ])
  2547                     if test x$have_machine_joystick = xyes; then
  2548                         AC_DEFINE(SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H, 1, [ ])
  2549                     fi
  2550                     AC_MSG_RESULT($have_machine_joystick)
  2551 
  2552                     AC_DEFINE(SDL_JOYSTICK_USBHID, 1, [ ])
  2553                     SOURCES="$SOURCES $srcdir/src/joystick/bsd/*.c"
  2554                     EXTRA_CFLAGS="$EXTRA_CFLAGS $USB_CFLAGS"
  2555                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS $USB_LIBS"
  2556                     have_joystick=yes
  2557                 fi
  2558                 CFLAGS="$save_CFLAGS"
  2559             fi
  2560         ;;
  2561     esac
  2562 }
  2563 
  2564 dnl Check for clock_gettime()
  2565 CheckClockGettime()
  2566 {
  2567     AC_ARG_ENABLE(clock_gettime,
  2568 AC_HELP_STRING([--enable-clock_gettime], [use clock_gettime() instead of gettimeofday() on UNIX [[default=yes]]]),
  2569                   , enable_clock_gettime=yes)
  2570     if test x$enable_clock_gettime = xyes; then
  2571         AC_CHECK_LIB(rt, clock_gettime, have_clock_gettime=yes)
  2572         if test x$have_clock_gettime = xyes; then
  2573             AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [ ])
  2574             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lrt"
  2575         else
  2576             AC_CHECK_LIB(c, clock_gettime, have_clock_gettime=yes)
  2577             if test x$have_clock_gettime = xyes; then
  2578                AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [ ])
  2579                EXTRA_LDFLAGS="$EXTRA_LDFLAGS"
  2580             fi
  2581         fi
  2582     fi
  2583 }
  2584 
  2585 dnl Check for a valid linux/version.h
  2586 CheckLinuxVersion()
  2587 {
  2588     AC_CHECK_HEADER(linux/version.h, have_linux_version_h=yes)
  2589     if test x$have_linux_version_h = xyes; then
  2590         EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_LINUX_VERSION_H"
  2591     fi
  2592 }
  2593 
  2594 dnl Check if we want to use RPATH
  2595 CheckRPATH()
  2596 {
  2597     AC_ARG_ENABLE(rpath,
  2598 AC_HELP_STRING([--enable-rpath], [use an rpath when linking SDL [[default=yes]]]),
  2599                   , enable_rpath=yes)
  2600 }
  2601 
  2602 dnl Set up the configuration based on the host platform!
  2603 case "$host" in
  2604     *-*-linux*|*-*-uclinux*|*-*-gnu*|*-*-k*bsd*-gnu|*-*-bsdi*|*-*-freebsd*|*-*-dragonfly*|*-*-netbsd*|*-*-openbsd*|*-*-sysv5*|*-*-solaris*|*-*-hpux*|*-*-aix*|*-*-minix*)
  2605         case "$host" in
  2606             *-raspberry-linux*)
  2607                 # Raspberry Pi
  2608                 ARCH=linux
  2609                 RPI_CFLAGS="-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux"
  2610                 CFLAGS="$CFLAGS $RPI_CFLAGS"
  2611                 SDL_CFLAGS="$SDL_CFLAGS $RPI_CFLAGS"
  2612                 EXTRA_CFLAGS="$EXTRA_CFLAGS $RPI_CFLAGS"
  2613                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -L/opt/vc/lib -lbcm_host -ldl"
  2614 
  2615                 if test x$enable_video = xyes; then
  2616                     SOURCES="$SOURCES $srcdir/src/video/raspberry/*.c"
  2617                     $as_echo "#define SDL_VIDEO_DRIVER_RPI 1" >>confdefs.h
  2618                 fi
  2619                 ;;
  2620             *-*-linux*)         ARCH=linux ;;
  2621             *-*-uclinux*)       ARCH=linux ;;
  2622             *-*-kfreebsd*-gnu)  ARCH=kfreebsd-gnu ;;
  2623             *-*-knetbsd*-gnu)   ARCH=knetbsd-gnu ;;
  2624             *-*-kopenbsd*-gnu)  ARCH=kopenbsd-gnu ;;
  2625             *-*-gnu*)           ARCH=gnu ;; # must be last of the gnu variants
  2626             *-*-bsdi*)          ARCH=bsdi ;;
  2627             *-*-freebsd*)       ARCH=freebsd ;;
  2628             *-*-dragonfly*)     ARCH=freebsd ;;
  2629             *-*-netbsd*)        ARCH=netbsd ;;
  2630             *-*-openbsd*)       ARCH=openbsd ;;
  2631             *-*-sysv5*)         ARCH=sysv5 ;;
  2632             *-*-solaris*)       ARCH=solaris ;;
  2633             *-*-hpux*)          ARCH=hpux ;;
  2634             *-*-aix*)           ARCH=aix ;;
  2635             *-*-minix*)         ARCH=minix ;;
  2636         esac
  2637         CheckVisibilityHidden
  2638         CheckDummyVideo
  2639         CheckDiskAudio
  2640         CheckDummyAudio
  2641         CheckDLOPEN
  2642         CheckOSS
  2643         CheckALSA
  2644         CheckPulseAudio
  2645         CheckARTSC
  2646         CheckESD
  2647         CheckNAS
  2648         CheckSNDIO
  2649         CheckX11
  2650         CheckWayland
  2651         CheckMir
  2652         CheckDirectFB
  2653         CheckFusionSound
  2654         CheckOpenGLX11
  2655         CheckOpenGLESX11
  2656         CheckLibUDev
  2657         CheckDBus
  2658         CheckInputEvents
  2659         CheckInputKD
  2660         CheckTslib
  2661         CheckUSBHID
  2662         CheckPTHREAD
  2663         CheckClockGettime
  2664         CheckLinuxVersion
  2665         CheckRPATH
  2666         # Set up files for the audio library
  2667         if test x$enable_audio = xyes; then
  2668           case $ARCH in
  2669             sysv5|solaris|hpux)
  2670                 AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO, 1, [ ])
  2671                 SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
  2672                 have_audio=yes
  2673             ;;
  2674             netbsd)  # Don't use this on OpenBSD, it's busted.
  2675                 AC_DEFINE(SDL_AUDIO_DRIVER_BSD, 1, [ ])
  2676                 SOURCES="$SOURCES $srcdir/src/audio/bsd/*.c"
  2677                 have_audio=yes
  2678             ;;
  2679             aix)
  2680                 AC_DEFINE(SDL_AUDIO_DRIVER_PAUDIO, 1, [ ])
  2681                 SOURCES="$SOURCES $srcdir/src/audio/paudio/*.c"
  2682                 have_audio=yes
  2683             ;;
  2684           esac
  2685         fi
  2686         # Set up files for the joystick library
  2687         if test x$enable_joystick = xyes; then
  2688           case $ARCH in
  2689             linux)
  2690                 AC_DEFINE(SDL_JOYSTICK_LINUX, 1, [ ])
  2691                 SOURCES="$SOURCES $srcdir/src/joystick/linux/*.c"
  2692                 have_joystick=yes
  2693             ;;
  2694           esac
  2695         fi
  2696         # Set up files for the haptic library
  2697         if test x$enable_haptic = xyes; then
  2698            if test x$use_input_events = xyes; then
  2699              case $ARCH in
  2700                linux)
  2701                    AC_DEFINE(SDL_HAPTIC_LINUX, 1, [ ])
  2702                    SOURCES="$SOURCES $srcdir/src/haptic/linux/*.c"
  2703                    have_haptic=yes
  2704                ;;
  2705              esac
  2706            fi
  2707         fi
  2708         # Set up files for the power library
  2709         if test x$enable_power = xyes; then
  2710              case $ARCH in
  2711                linux)
  2712                    AC_DEFINE(SDL_POWER_LINUX, 1, [ ])
  2713                    SOURCES="$SOURCES $srcdir/src/power/linux/*.c"
  2714                    have_power=yes
  2715                ;;
  2716              esac
  2717         fi
  2718         # Set up files for the filesystem library
  2719         if test x$enable_filesystem = xyes; then
  2720             AC_DEFINE(SDL_FILESYSTEM_UNIX, 1, [ ])
  2721             SOURCES="$SOURCES $srcdir/src/filesystem/unix/*.c"
  2722             have_filesystem=yes
  2723         fi
  2724         # Set up files for the timer library
  2725         if test x$enable_timers = xyes; then
  2726             AC_DEFINE(SDL_TIMER_UNIX, 1, [ ])
  2727             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  2728             have_timers=yes
  2729         fi
  2730         # Set up files for udev hotplugging support
  2731         if test x$enable_libudev = xyes && test x$have_libudev_h_hdr = xyes; then
  2732             SOURCES="$SOURCES $srcdir/src/core/linux/SDL_udev.c"               
  2733         fi
  2734         # Set up files for evdev input
  2735         if test x$use_input_events = xyes; then
  2736             SOURCES="$SOURCES $srcdir/src/core/linux/SDL_evdev.c"
  2737         fi       
  2738         ;;
  2739     *-*-cygwin* | *-*-mingw32*)
  2740         ARCH=win32
  2741         if test "$build" != "$host"; then # cross-compiling
  2742             # Default cross-compile location
  2743             ac_default_prefix=/usr/local/cross-tools/$host
  2744         else
  2745             # Look for the location of the tools and install there
  2746             if test "$BUILD_PREFIX" != ""; then
  2747                 ac_default_prefix=$BUILD_PREFIX
  2748             fi
  2749         fi
  2750         CheckDummyVideo
  2751         CheckDiskAudio
  2752         CheckDummyAudio
  2753         CheckWINDOWS
  2754         CheckWINDOWSGL
  2755         CheckWINDOWSGLES
  2756         CheckDIRECTX
  2757 
  2758         # Set up the core platform files
  2759         SOURCES="$SOURCES $srcdir/src/core/windows/*.c"
  2760 
  2761         # Set up files for the video library
  2762         if test x$enable_video = xyes; then
  2763             AC_DEFINE(SDL_VIDEO_DRIVER_WINDOWS, 1, [ ])
  2764             SOURCES="$SOURCES $srcdir/src/video/windows/*.c"
  2765             have_video=yes
  2766             AC_ARG_ENABLE(render-d3d,
  2767 AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[default=yes]]]),
  2768                                 , enable_render_d3d=yes)
  2769             if test x$enable_render_d3d = xyes -a x$have_d3d = xyes; then
  2770                 AC_DEFINE(SDL_VIDEO_RENDER_D3D, 1, [ ])
  2771             fi
  2772         fi
  2773         # Set up files for the audio library
  2774         if test x$enable_audio = xyes; then
  2775             AC_DEFINE(SDL_AUDIO_DRIVER_WINMM, 1, [ ])
  2776             SOURCES="$SOURCES $srcdir/src/audio/winmm/*.c"
  2777             if test x$have_dsound = xyes; then
  2778                 AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND, 1, [ ])
  2779                 SOURCES="$SOURCES $srcdir/src/audio/directsound/*.c"
  2780             fi
  2781             if test x$have_xaudio2 = xyes; then
  2782                 AC_DEFINE(SDL_AUDIO_DRIVER_XAUDIO2, 1, [ ])
  2783                 SOURCES="$SOURCES $srcdir/src/audio/xaudio2/*.c"
  2784             fi
  2785             have_audio=yes
  2786         fi
  2787         # Set up files for the joystick library
  2788         if test x$enable_joystick = xyes; then
  2789             if test x$have_dinput = xyes; then
  2790                 AC_DEFINE(SDL_JOYSTICK_DINPUT, 1, [ ])
  2791                 SOURCES="$SOURCES $srcdir/src/joystick/windows/SDL_dxjoystick.c"
  2792                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldinput8 -ldxguid -ldxerr8"
  2793             else
  2794                 AC_DEFINE(SDL_JOYSTICK_WINMM, 1, [ ])
  2795                 SOURCES="$SOURCES $srcdir/src/joystick/windows/SDL_mmjoystick.c"
  2796             fi
  2797             have_joystick=yes
  2798         fi
  2799         if test x$enable_haptic = xyes; then
  2800             if test x$have_dinput = xyes; then
  2801                 AC_DEFINE(SDL_HAPTIC_DINPUT, 1, [ ])
  2802                 SOURCES="$SOURCES $srcdir/src/haptic/windows/SDL_syshaptic.c"
  2803                 have_haptic=yes
  2804             fi
  2805         fi
  2806         if test x$enable_power = xyes; then
  2807             AC_DEFINE(SDL_POWER_WINDOWS, 1, [ ])
  2808             SOURCES="$SOURCES $srcdir/src/power/windows/SDL_syspower.c"
  2809             have_power=yes
  2810         fi
  2811         if test x$enable_filesystem = xyes; then
  2812             AC_DEFINE(SDL_FILESYSTEM_WINDOWS, 1, [ ])
  2813             SOURCES="$SOURCES $srcdir/src/filesystem/windows/SDL_sysfilesystem.c"
  2814             have_filesystem=yes
  2815         fi
  2816         # Set up files for the thread library
  2817         if test x$enable_threads = xyes; then
  2818             AC_DEFINE(SDL_THREAD_WINDOWS, 1, [ ])
  2819             SOURCES="$SOURCES $srcdir/src/thread/windows/*.c"
  2820             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
  2821             have_threads=yes
  2822         fi
  2823         # Set up files for the timer library
  2824         if test x$enable_timers = xyes; then
  2825             AC_DEFINE(SDL_TIMER_WINDOWS, 1, [ ])
  2826             SOURCES="$SOURCES $srcdir/src/timer/windows/*.c"
  2827             have_timers=yes
  2828         fi
  2829         # Set up files for the shared object loading library
  2830         if test x$enable_loadso = xyes; then
  2831             AC_DEFINE(SDL_LOADSO_WINDOWS, 1, [ ])
  2832             SOURCES="$SOURCES $srcdir/src/loadso/windows/*.c"
  2833             have_loadso=yes
  2834         fi
  2835         # Set up the system libraries we need
  2836         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -XCClinker -static-libgcc"
  2837         # The Windows platform requires special setup
  2838         VERSION_SOURCES="$srcdir/src/main/windows/*.rc"
  2839         SDLMAIN_SOURCES="$srcdir/src/main/windows/*.c"
  2840         SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
  2841         SDL_LIBS="-lSDL2main $SDL_LIBS -mwindows"
  2842 
  2843         # Check to see if this is a mingw or cygwin build
  2844         have_mingw32=
  2845         AC_CHECK_LIB(mingw32, main, [have_mingw32=yes])
  2846         if test x$have_mingw32 = xyes; then
  2847             SDL_LIBS="-lmingw32 $SDL_LIBS"
  2848         else
  2849             SDL_LIBS="-lcygwin $SDL_LIBS"
  2850         fi
  2851         ;;
  2852 
  2853     dnl BeOS support removed after SDL 2.0.1. Haiku still works.  --ryan.
  2854     *-*-beos*)
  2855         AC_MSG_ERROR([
  2856 *** BeOS support has been removed as of SDL 2.0.2.
  2857         ])
  2858         ;;
  2859 
  2860     *-*-haiku*)
  2861         ARCH=haiku
  2862         ac_default_prefix=/boot/system
  2863         CheckDummyVideo
  2864         CheckDiskAudio
  2865         CheckDummyAudio
  2866         CheckHaikuVideo
  2867         CheckHaikuGL
  2868         CheckPTHREAD
  2869 
  2870         # Set up files for the audio library
  2871         if test x$enable_audio = xyes; then
  2872             AC_DEFINE(SDL_AUDIO_DRIVER_HAIKU, 1, [ ])
  2873             SOURCES="$SOURCES $srcdir/src/audio/haiku/*.cc"
  2874             have_audio=yes
  2875         fi
  2876         # Set up files for the joystick library
  2877         if test x$enable_joystick = xyes; then
  2878             AC_DEFINE(SDL_JOYSTICK_HAIKU, 1, [ ])
  2879             SOURCES="$SOURCES $srcdir/src/joystick/haiku/*.cc"
  2880             have_joystick=yes
  2881         fi
  2882         # Set up files for the timer library
  2883         if test x$enable_timers = xyes; then
  2884             AC_DEFINE(SDL_TIMER_HAIKU, 1, [ ])
  2885             SOURCES="$SOURCES $srcdir/src/timer/haiku/*.c"
  2886             have_timers=yes
  2887         fi
  2888         # Set up files for the shared object loading library
  2889         if test x$enable_loadso = xyes; then
  2890             AC_DEFINE(SDL_LOADSO_HAIKU, 1, [ ])
  2891             SOURCES="$SOURCES $srcdir/src/loadso/haiku/*.c"
  2892             have_loadso=yes
  2893         fi
  2894         # Set up files for the system power library
  2895         if test x$enable_power = xyes; then
  2896             AC_DEFINE(SDL_POWER_HAIKU, 1, [ ])
  2897             SOURCES="$SOURCES $srcdir/src/power/haiku/*.c"
  2898             have_power=yes
  2899         fi
  2900         # Set up files for the system filesystem library
  2901         if test x$enable_filesystem = xyes; then
  2902             AC_DEFINE(SDL_FILESYSTEM_HAIKU, 1, [ ])
  2903             SOURCES="$SOURCES $srcdir/src/filesystem/haiku/*.cc"
  2904             have_filesystem=yes
  2905         fi
  2906         # The Haiku platform requires special setup.
  2907         SOURCES="$srcdir/src/main/haiku/*.cc $SOURCES"
  2908         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding"
  2909         ;;
  2910     arm*-apple-darwin*)
  2911         # iOS - We are not writing anything to confdefs.h because you have to replace
  2912         # SDL_config.h for SDL_config_iphoneos.h anyway
  2913         ARCH=ios
  2914 
  2915         CheckVisibilityHidden
  2916         CheckDummyVideo
  2917         CheckDiskAudio
  2918         CheckDummyAudio
  2919         CheckDLOPEN
  2920         CheckCOCOA
  2921         CheckPTHREAD
  2922 
  2923 
  2924         # Set up files for the audio library
  2925         if test x$enable_audio = xyes; then
  2926             SOURCES="$SOURCES $srcdir/src/audio/coreaudio/*.c"
  2927             have_audio=yes
  2928         fi
  2929         # Set up files for the joystick library
  2930         if test x$enable_joystick = xyes; then
  2931             SOURCES="$SOURCES $srcdir/src/joystick/iphoneos/*.m"
  2932             have_joystick=yes
  2933         fi
  2934         # Set up files for the haptic library
  2935         #if test x$enable_haptic = xyes; then
  2936         #    SOURCES="$SOURCES $srcdir/src/haptic/darwin/*.c"
  2937         #    have_haptic=yes
  2938         #    EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,ForceFeedback"
  2939         #fi
  2940         # Set up files for the power library
  2941         if test x$enable_power = xyes; then
  2942             SOURCES="$SOURCES $srcdir/src/power/uikit/*.m"
  2943             have_power=yes
  2944         fi
  2945         # Set up files for the filesystem library
  2946         if test x$enable_filesystem = xyes; then
  2947             SOURCES="$SOURCES $srcdir/src/filesystem/cocoa/*.m"
  2948             have_filesystem=yes
  2949         fi
  2950         # Set up files for the timer library
  2951         if test x$enable_timers = xyes; then
  2952             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  2953             have_timers=yes
  2954         fi
  2955         # Set up additional files for the file library
  2956         if test x$enable_file = xyes; then
  2957             SOURCES="$SOURCES $srcdir/src/file/cocoa/*.m"
  2958         fi
  2959         # The iOS platform requires special setup.
  2960         SOURCES="$SOURCES $srcdir/src/video/uikit/*.m"
  2961         EXTRA_CFLAGS="$EXTRA_CFLAGS -fpascal-strings"
  2962         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm -liconv -lobjc"
  2963         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Foundation"
  2964         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,UIKit"
  2965         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,OpenGLES"
  2966         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,QuartzCore"
  2967         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreAudio"
  2968         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AudioToolbox"
  2969         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreGraphics"
  2970         ;;
  2971     *-*-darwin* )
  2972         # This could be either full "Mac OS X", or plain "Darwin" which is
  2973         # just the OS X kernel sans upper layers like Carbon and Cocoa.
  2974         # Next line is broken, and a few files below require Mac OS X (full)
  2975         ARCH=macosx
  2976 
  2977         # Mac OS X builds with both the Carbon and OSX APIs at the moment
  2978         EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_CARBON"
  2979         EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_OSX"
  2980 
  2981         CheckVisibilityHidden
  2982         CheckDummyVideo
  2983         CheckDiskAudio
  2984         CheckDummyAudio
  2985         CheckDLOPEN
  2986         CheckCOCOA
  2987         CheckX11
  2988         CheckMacGL
  2989         CheckOpenGLX11
  2990         CheckPTHREAD
  2991 
  2992         # Need this or things might misbuild on a G3.
  2993         EXTRA_CFLAGS="$EXTRA_CFLAGS -force_cpusubtype_ALL"
  2994 
  2995         # Set up files for the audio library
  2996         if test x$enable_audio = xyes; then
  2997             AC_DEFINE(SDL_AUDIO_DRIVER_COREAUDIO, 1, [ ])
  2998             SOURCES="$SOURCES $srcdir/src/audio/coreaudio/*.c"
  2999             have_audio=yes
  3000         fi
  3001         # Set up files for the joystick library
  3002         if test x$enable_joystick = xyes; then
  3003             AC_DEFINE(SDL_JOYSTICK_IOKIT, 1, [ ])
  3004             SOURCES="$SOURCES $srcdir/src/joystick/darwin/*.c"
  3005             have_joystick=yes
  3006         fi
  3007         # Set up files for the haptic library
  3008         if test x$enable_haptic = xyes; then
  3009             AC_DEFINE(SDL_HAPTIC_IOKIT, 1, [ ])
  3010             SOURCES="$SOURCES $srcdir/src/haptic/darwin/*.c"
  3011             have_haptic=yes
  3012             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,ForceFeedback"
  3013         fi
  3014         # Set up files for the power library
  3015         if test x$enable_power = xyes; then
  3016             AC_DEFINE(SDL_POWER_MACOSX, 1, [ ])
  3017             SOURCES="$SOURCES $srcdir/src/power/macosx/*.c"
  3018             have_power=yes
  3019         fi
  3020         # Set up files for the filesystem library
  3021         if test x$enable_filesystem = xyes; then
  3022             AC_DEFINE(SDL_FILESYSTEM_COCOA, 1, [ ])
  3023             SOURCES="$SOURCES $srcdir/src/filesystem/cocoa/*.m"
  3024             have_filesystem=yes
  3025         fi
  3026         # Set up files for the timer library
  3027         if test x$enable_timers = xyes; then
  3028             AC_DEFINE(SDL_TIMER_UNIX, 1, [ ])
  3029             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  3030             have_timers=yes
  3031         fi
  3032         # Set up additional files for the file library
  3033         if test x$enable_file = xyes; then
  3034             SOURCES="$SOURCES $srcdir/src/file/cocoa/*.m"
  3035         fi
  3036         # The Mac OS X platform requires special setup.
  3037         EXTRA_CFLAGS="$EXTRA_CFLAGS -fpascal-strings"
  3038         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lobjc"
  3039         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Cocoa"
  3040         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Carbon"
  3041         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,IOKit"
  3042         # If audio is used, add the AudioUnit framework
  3043         if test x$enable_audio = xyes; then
  3044             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit"
  3045         fi
  3046         ;;
  3047     *)
  3048         AC_MSG_ERROR([
  3049 *** Unsupported host:  Please add to configure.in
  3050         ])
  3051         ;;
  3052 esac
  3053 
  3054 dnl Do this on all platforms, after everything else.
  3055 CheckWarnAll
  3056 
  3057 # Verify that we have all the platform specific files we need
  3058 
  3059 if test x$have_joystick != xyes; then
  3060     if test x$enable_joystick = xyes; then
  3061         AC_DEFINE(SDL_JOYSTICK_DISABLED, 1, [ ])
  3062     fi
  3063     SOURCES="$SOURCES $srcdir/src/joystick/dummy/*.c"
  3064 fi
  3065 if test x$have_haptic != xyes; then
  3066     if test x$enable_haptic = xyes; then
  3067         AC_DEFINE(SDL_HAPTIC_DISABLED, 1, [ ])
  3068     fi
  3069     SOURCES="$SOURCES $srcdir/src/haptic/dummy/*.c"
  3070 fi
  3071 if test x$have_threads != xyes; then
  3072     if test x$enable_threads = xyes; then
  3073         AC_DEFINE(SDL_THREADS_DISABLED, 1, [ ])
  3074     fi
  3075     SOURCES="$SOURCES $srcdir/src/thread/generic/*.c"
  3076 fi
  3077 if test x$have_timers != xyes; then
  3078     if test x$enable_timers = xyes; then
  3079         AC_DEFINE(SDL_TIMERS_DISABLED, 1, [ ])
  3080     fi
  3081     SOURCES="$SOURCES $srcdir/src/timer/dummy/*.c"
  3082 fi
  3083 if test x$have_filesystem != xyes; then
  3084     if test x$enable_filesystem = xyes; then
  3085         AC_DEFINE(SDL_FILESYSTEM_DISABLED, 1, [ ])
  3086     fi
  3087     SOURCES="$SOURCES $srcdir/src/filesystem/dummy/*.c"
  3088 fi
  3089 if test x$have_loadso != xyes; then
  3090     if test x$enable_loadso = xyes; then
  3091         AC_DEFINE(SDL_LOADSO_DISABLED, 1, [ ])
  3092     fi
  3093     SOURCES="$SOURCES $srcdir/src/loadso/dummy/*.c"
  3094 fi
  3095 if test x$SDLMAIN_SOURCES = x; then
  3096     SDLMAIN_SOURCES="$srcdir/src/main/dummy/*.c"
  3097 fi
  3098 SDLTEST_SOURCES="$srcdir/src/test/*.c"
  3099 
  3100 OBJECTS=`echo $SOURCES`
  3101 DEPENDS=`echo $SOURCES | tr ' ' '\n'`
  3102 for EXT in asm cc m c S; do
  3103     OBJECTS=`echo "$OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.'$EXT',$(objects)/\1.lo,g'`
  3104     DEPENDS=`echo "$DEPENDS" | sed "s,^\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.$EXT\\$,\\\\
  3105 \\$(objects)/\\2.lo: \\1/\\2.$EXT\\\\
  3106 	\\$(LIBTOOL) --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
  3107 done
  3108 
  3109 VERSION_OBJECTS=`echo $VERSION_SOURCES`
  3110 VERSION_DEPENDS=`echo $VERSION_SOURCES`
  3111 VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'`
  3112 VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.rc,\\\\
  3113 \\$(objects)/\\2.o: \\1/\\2.rc\\\\
  3114 	\\$(WINDRES) \\$< \\$@,g"`
  3115 
  3116 SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
  3117 SDLMAIN_DEPENDS=`echo $SDLMAIN_SOURCES`
  3118 SDLMAIN_OBJECTS=`echo "$SDLMAIN_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.o,g'`
  3119 SDLMAIN_DEPENDS=`echo "$SDLMAIN_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\
  3120 \\$(objects)/\\2.o: \\1/\\2.c\\\\
  3121 	\\$(LIBTOOL) --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
  3122 
  3123 SDLTEST_OBJECTS=`echo $SDLTEST_SOURCES`
  3124 SDLTEST_DEPENDS=`echo $SDLTEST_SOURCES`
  3125 SDLTEST_OBJECTS=`echo "$SDLTEST_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.o,g'`
  3126 SDLTEST_DEPENDS=`echo "$SDLTEST_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\
  3127 \\$(objects)/\\2.o: \\1/\\2.c\\\\
  3128 	\\$(LIBTOOL) --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
  3129 
  3130 # Set runtime shared library paths as needed
  3131 
  3132 if test "x$enable_rpath" = "xyes"; then
  3133   if test $ARCH = bsdi -o $ARCH = freebsd -o $ARCH = linux -o $ARCH = netbsd; then
  3134     SDL_RLD_FLAGS="-Wl,-rpath,\${libdir}"
  3135   fi
  3136   if test $ARCH = solaris; then
  3137     SDL_RLD_FLAGS="-R\${libdir}"
  3138   fi
  3139 else
  3140   SDL_RLD_FLAGS=""
  3141 fi
  3142 
  3143 SDL_STATIC_LIBS="$SDL_LIBS $EXTRA_LDFLAGS"
  3144 
  3145 dnl Expand the cflags and libraries needed by apps using SDL
  3146 AC_SUBST(SDL_CFLAGS)
  3147 AC_SUBST(SDL_LIBS)
  3148 AC_SUBST(SDL_STATIC_LIBS)
  3149 AC_SUBST(SDL_RLD_FLAGS)
  3150 if test x$enable_shared = xyes; then
  3151     ENABLE_SHARED_TRUE=
  3152     ENABLE_SHARED_FALSE="#"
  3153 else
  3154     ENABLE_SHARED_TRUE="#"
  3155     ENABLE_SHARED_FALSE=
  3156 fi
  3157 if test x$enable_static = xyes; then
  3158     ENABLE_STATIC_TRUE=
  3159     ENABLE_STATIC_FALSE="#"
  3160 else
  3161     ENABLE_STATIC_TRUE="#"
  3162     ENABLE_STATIC_FALSE=
  3163 fi
  3164 AC_SUBST(ENABLE_SHARED_TRUE)
  3165 AC_SUBST(ENABLE_SHARED_FALSE)
  3166 AC_SUBST(ENABLE_STATIC_TRUE)
  3167 AC_SUBST(ENABLE_STATIC_FALSE)
  3168 
  3169 dnl Expand the sources and objects needed to build the library
  3170 AC_SUBST(ac_aux_dir)
  3171 AC_SUBST(INCLUDE)
  3172 AC_SUBST(OBJECTS)
  3173 AC_SUBST(VERSION_OBJECTS)
  3174 AC_SUBST(SDLMAIN_OBJECTS)
  3175 AC_SUBST(SDLTEST_OBJECTS)
  3176 AC_SUBST(BUILD_CFLAGS)
  3177 AC_SUBST(EXTRA_CFLAGS)
  3178 AC_SUBST(BUILD_LDFLAGS)
  3179 AC_SUBST(EXTRA_LDFLAGS)
  3180 AC_SUBST(WINDRES)
  3181 
  3182 cat >Makefile.rules <<__EOF__
  3183 
  3184 # Build rules for objects
  3185 -include \$(OBJECTS:.lo=.d)
  3186 
  3187 # Special dependency for SDL.c, since it depends on SDL_revision.h
  3188 $srcdir/src/SDL.c: update-revision
  3189 $DEPENDS
  3190 $VERSION_DEPENDS
  3191 $SDLMAIN_DEPENDS
  3192 $SDLTEST_DEPENDS
  3193 __EOF__
  3194 
  3195 AC_CONFIG_FILES([
  3196     Makefile:Makefile.in:Makefile.rules sdl2-config SDL2.spec sdl2.pc
  3197 ])
  3198 AC_CONFIG_COMMANDS([sdl2_config],[chmod a+x sdl2-config])
  3199 
  3200 SUMMARY="SDL2 Configure Summary:\n"
  3201 if test x$enable_shared = xyes; then
  3202     SUMMARY="${SUMMARY}Building Shared Libraries\n"
  3203 fi
  3204 if test x$enable_static = xyes; then
  3205     SUMMARY="${SUMMARY}Building Static Libraries\n"
  3206 fi
  3207 SUMMARY="${SUMMARY}Enabled modules :${SUMMARY_modules}\n"
  3208 SUMMARY="${SUMMARY}Assembly Math   :${SUMMARY_math}\n" 
  3209 SUMMARY="${SUMMARY}Audio drivers   :${SUMMARY_audio}\n"
  3210 SUMMARY="${SUMMARY}Video drivers   :${SUMMARY_video}\n"
  3211 if test x$have_x = xyes; then
  3212     SUMMARY="${SUMMARY}X11 libraries   :${SUMMARY_video_x11}\n"
  3213 fi
  3214 SUMMARY="${SUMMARY}Input drivers   :${SUMMARY_input}\n"
  3215 if test x$enable_libudev = xyes; then
  3216     SUMMARY="${SUMMARY}Using libudev   : YES\n"
  3217 else
  3218     SUMMARY="${SUMMARY}Using libudev   : NO\n"
  3219 fi
  3220 if test x$have_dbus_dbus_h_hdr = xyes; then
  3221     SUMMARY="${SUMMARY}Using dbus      : YES\n"
  3222 else
  3223     SUMMARY="${SUMMARY}Using dbus      : NO\n"
  3224 fi
  3225 AC_CONFIG_COMMANDS([summary], [echo -en "$SUMMARY"], [SUMMARY="$SUMMARY"])
  3226 
  3227 AC_OUTPUT