configure.in
author Jørgen P. Tjernø <jorgen@valvesoftware.com>
Tue, 23 Jul 2013 17:38:59 -0700
changeset 7507 885b4aab4190
parent 7498 bda3639deecc
child 7554 4b653ef6050d
permissions -rw-r--r--
Mac: Codify SDK and OS requirements, and clean up.

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