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