configure.in
author Dimitris Zenios <dimitris.zenios@gmail.com>
Thu, 31 May 2012 13:37:02 +0300
changeset 6316 a89c79a3f0cd
parent 6313 d86efd889847
child 6318 49b2cb56db6e
permissions -rw-r--r--
1.Moved all xinput2 functionality to its own file
2.Implement touch events using Xinput2.Leave evtouch as a fallback when xinput2 is not supported
     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             ],[
  1102 XExtDisplayInfo*
  1103 XextAddDisplay(XExtensionInfo* a,Display* b,_Xconst char* c,XExtensionHooks* d,int e,XPointer f)
  1104 {
  1105     return (XExtDisplayInfo*)0;
  1106 }
  1107             ],[
  1108             have_const_param_XextAddDisplay=yes
  1109             AC_DEFINE(SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY)
  1110             ])
  1111             AC_MSG_RESULT($have_const_param_XextAddDisplay)
  1112 
  1113             AC_CHECK_LIB(X11, XGetEventData, AC_DEFINE(SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS, 1, [Have XGenericEvent]))
  1114 
  1115             AC_ARG_ENABLE(video-x11-xcursor,
  1116 AC_HELP_STRING([--enable-video-x11-xcursor], [enable X11 Xcursor support [[default=yes]]]),
  1117                             , enable_video_x11_xcursor=yes)
  1118             if test x$enable_video_x11_xcursor = xyes; then
  1119                 definitely_enable_video_x11_xcursor=no
  1120                 AC_CHECK_HEADER(X11/Xcursor/Xcursor.h,
  1121                                 have_xcursor_h_hdr=yes,
  1122                                 have_xcursor_h_hdr=no,
  1123                                 [#include <X11/Xlib.h>
  1124                                 ])
  1125                 if test x$have_xcursor_h_hdr = xyes; then
  1126                     if test x$enable_x11_shared = xyes && test x$xcursor_lib != x ; then
  1127                         echo "-- dynamic libXcursor -> $xcursor_lib"
  1128                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR, "$xcursor_lib", [ ])
  1129                         definitely_enable_video_x11_xcursor=yes
  1130                     else
  1131                         AC_CHECK_LIB(Xcursor, XcursorImageCreate, have_xcursor_lib=yes)
  1132                         if test x$have_xcursor_lib = xyes ; then
  1133                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXcursor"
  1134                             definitely_enable_video_x11_xcursor=yes
  1135                         fi
  1136                     fi
  1137                 fi
  1138             fi
  1139             if test x$definitely_enable_video_x11_xcursor = xyes; then
  1140                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XCURSOR, 1, [ ])
  1141             fi
  1142             AC_ARG_ENABLE(video-x11-xinerama,
  1143 AC_HELP_STRING([--enable-video-x11-xinerama], [enable X11 Xinerama support [[default=yes]]]),
  1144                             , enable_video_x11_xinerama=yes)
  1145             if test x$enable_video_x11_xinerama = xyes; then
  1146                 definitely_enable_video_x11_xinerama=no
  1147                 AC_CHECK_HEADER(X11/extensions/Xinerama.h,
  1148                                 have_xinerama_h_hdr=yes,
  1149                                 have_xinerama_h_hdr=no,
  1150                                 [#include <X11/Xlib.h>
  1151                                 ])
  1152                 if test x$have_xinerama_h_hdr = xyes; then
  1153                     if test x$enable_x11_shared = xyes && test x$xinerama_lib != x ; then
  1154                         echo "-- dynamic libXinerama -> $xinerama_lib"
  1155                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA, "$xinerama_lib", [ ])
  1156                         definitely_enable_video_x11_xinerama=yes
  1157                     else
  1158                         AC_CHECK_LIB(Xinerama, XineramaQueryExtension, have_xinerama_lib=yes)
  1159                         if test x$have_xinerama_lib = xyes ; then
  1160                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXinerama"
  1161                             definitely_enable_video_x11_xinerama=yes
  1162                         fi
  1163                     fi
  1164                 fi
  1165             fi
  1166             if test x$definitely_enable_video_x11_xinerama = xyes; then
  1167                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINERAMA, 1, [ ])
  1168             fi
  1169             AC_ARG_ENABLE(video-x11-xinput,
  1170 AC_HELP_STRING([--enable-video-x11-xinput], [enable X11 XInput extension for manymouse, tablets, etc [[default=yes]]]),
  1171                             , enable_video_x11_xinput=yes)
  1172             if test x$enable_video_x11_xinput = xyes; then
  1173                 definitely_enable_video_x11_xinput=no
  1174                 AC_CHECK_HEADER(X11/extensions/XInput2.h,
  1175                                 have_xinput_h_hdr=yes,
  1176                                 have_xinput_h_hdr=no,
  1177                                 [#include <X11/Xlib.h>
  1178                                 ])
  1179                 if test x$have_xinput_h_hdr = xyes; then
  1180                     if test x$enable_x11_shared = xyes && test x$xinput_lib != x ; then
  1181                         echo "-- dynamic libXi -> $xinput_lib"
  1182                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2, "$xinput_lib", [ ])
  1183                         definitely_enable_video_x11_xinput=yes
  1184                     else
  1185                         AC_CHECK_LIB(Xi, XOpenDevice, have_xinput_lib=yes)
  1186                         if test x$have_xinput_lib = xyes ; then
  1187                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXi"
  1188                             definitely_enable_video_x11_xinput=yes
  1189                         fi
  1190                     fi
  1191                 fi
  1192             fi
  1193             if test x$definitely_enable_video_x11_xinput = xyes; then
  1194                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINPUT2, 1, [ ])
  1195                 AC_MSG_CHECKING(for xinput2 multitouch)
  1196             	have_xinput2_multitouch=no
  1197             	AC_TRY_COMPILE([
  1198               		#include <X11/Xlib.h>
  1199              		#include <X11/Xproto.h>
  1200 			#include <X11/extensions/XInput2.h>
  1201             	],[
  1202 Status 
  1203 XIAllowTouchEvents(Display *a,int b,unsigned int c,Window d,int f)
  1204 {
  1205     return (Status)0;
  1206 }
  1207             	],[
  1208             	have_xinput2_multitouch=yes
  1209             	AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH)
  1210             	])
  1211             	AC_MSG_RESULT($have_xinput2_multitouch)
  1212             fi
  1213             AC_ARG_ENABLE(video-x11-xrandr,
  1214 AC_HELP_STRING([--enable-video-x11-xrandr], [enable X11 Xrandr extension for fullscreen [[default=yes]]]),
  1215                             , enable_video_x11_xrandr=yes)
  1216             if test x$enable_video_x11_xrandr = xyes; then
  1217                 definitely_enable_video_x11_xrandr=no
  1218                 AC_CHECK_HEADER(X11/extensions/Xrandr.h,
  1219                                 have_xrandr_h_hdr=yes,
  1220                                 have_xrandr_h_hdr=no,
  1221                                 [#include <X11/Xlib.h>
  1222                                 ])
  1223                 if test x$have_xrandr_h_hdr = xyes; then
  1224                     if test x$enable_x11_shared = xyes && test x$xrandr_lib != x ; then
  1225                         echo "-- dynamic libXrandr -> $xrandr_lib"
  1226                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR, "$xrandr_lib", [ ])
  1227                         definitely_enable_video_x11_xrandr=yes
  1228                     else
  1229                         AC_CHECK_LIB(Xrandr, XRRQueryExtension, have_xrandr_lib=yes)
  1230                         if test x$have_xrandr_lib = xyes ; then
  1231                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXrandr"
  1232                             definitely_enable_video_x11_xrandr=yes
  1233                         fi
  1234                     fi
  1235                 fi
  1236             fi
  1237             if test x$definitely_enable_video_x11_xrandr = xyes; then
  1238                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR, 1, [ ])
  1239             fi
  1240             AC_ARG_ENABLE(video-x11-scrnsaver,
  1241 AC_HELP_STRING([--enable-video-x11-scrnsaver], [enable X11 screensaver extension [[default=yes]]]),
  1242                             , enable_video_x11_scrnsaver=yes)
  1243             if test x$enable_video_x11_scrnsaver = xyes; then
  1244                 AC_CHECK_HEADER(X11/extensions/scrnsaver.h,
  1245                                 have_scrnsaver_h_hdr=yes,
  1246                                 have_scrnsaver_h_hdr=no,
  1247                                 [#include <X11/Xlib.h>
  1248                                 ])
  1249                 if test x$have_scrnsaver_h_hdr = xyes; then
  1250                     if test x$enable_x11_shared = xyes && test x$xss_lib != x ; then
  1251                         echo "-- dynamic libXss -> $xss_lib"
  1252                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS, "$xss_lib", [ ])
  1253                         definitely_enable_video_x11_scrnsaver=yes
  1254                     else
  1255                         AC_CHECK_LIB(Xss, XScreenSaverSuspend, have_xss_lib=yes)
  1256                         if test x$have_xss_lib = xyes ; then
  1257                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXss"
  1258                             definitely_enable_video_x11_scrnsaver=yes
  1259                         fi
  1260                     fi
  1261                 fi
  1262             fi
  1263             if test x$definitely_enable_video_x11_scrnsaver = xyes; then
  1264                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XSCRNSAVER, 1, [ ])
  1265             fi
  1266             AC_ARG_ENABLE(video-x11-xshape,
  1267 AC_HELP_STRING([--enable-video-x11-xshape], [enable X11 XShape support [[default=yes]]]),
  1268                             , enable_video_x11_xshape=yes)
  1269             if test x$enable_video_x11_xshape = xyes; then
  1270                 AC_CHECK_HEADER(X11/extensions/shape.h,
  1271                                 have_shape_h_hdr=yes,
  1272                                 have_shape_h_hdr=no,
  1273                                 [#include <X11/Xlib.h>
  1274                                 ])
  1275                 if test x$have_shape_h_hdr = xyes; then
  1276                     AC_DEFINE(SDL_VIDEO_DRIVER_X11_XSHAPE, 1, [ ])
  1277                 fi
  1278             fi
  1279             AC_ARG_ENABLE(video-x11-vm,
  1280 AC_HELP_STRING([--enable-video-x11-vm], [use X11 VM extension for fullscreen [[default=yes]]]),
  1281                             , enable_video_x11_vm=yes)
  1282             if test x$enable_video_x11_vm = xyes; then
  1283                 definitely_enable_video_x11_vm=no
  1284                 AC_CHECK_HEADER(X11/extensions/xf86vmode.h,
  1285                                 have_vm_h_hdr=yes,
  1286                                 have_vm_h_hdr=no,
  1287                                 [#include <X11/Xlib.h>
  1288                                 ])
  1289                 if test x$have_vm_h_hdr = xyes; then
  1290                     if test x$enable_x11_shared = xyes && test x$xvidmode_lib != x ; then
  1291                         echo "-- dynamic libXxf86vm -> $xvidmode_lib"
  1292                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE, "$xvidmode_lib", [ ])
  1293                         definitely_enable_video_x11_vm=yes
  1294                     else
  1295                         AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryVersion, have_vm_lib=yes)
  1296                         if test x$have_vm_lib = xyes ; then
  1297                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXxf86vm"
  1298                             definitely_enable_video_x11_vm=yes
  1299                         fi
  1300                     fi
  1301                 fi
  1302             fi
  1303             if test x$definitely_enable_video_x11_vm = xyes; then
  1304                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XVIDMODE, 1, [ ])
  1305             fi
  1306         fi
  1307     fi
  1308 }
  1309 
  1310 dnl Set up the BWindow video driver if enabled
  1311 CheckBWINDOW()
  1312 {
  1313     if test x$enable_video = xyes; then
  1314         AC_DEFINE(SDL_VIDEO_DRIVER_BWINDOW, 1, [ ])
  1315         SOURCES="$SOURCES $srcdir/src/video/bwindow/*.cc"
  1316         have_video=yes
  1317     fi
  1318 }
  1319 
  1320 dnl Set up the Cocoa video driver for Mac OS X (but not Darwin)
  1321 CheckCOCOA()
  1322 {
  1323     AC_ARG_ENABLE(video-cocoa,
  1324 AC_HELP_STRING([--enable-video-cocoa], [use Cocoa video driver [[default=yes]]]),
  1325                   , enable_video_cocoa=yes)
  1326     if test x$enable_video = xyes -a x$enable_video_cocoa = xyes; then
  1327         save_CFLAGS="$CFLAGS"
  1328         dnl work around that we don't have Objective-C support in autoconf
  1329         CFLAGS="$CFLAGS -x objective-c"
  1330         AC_MSG_CHECKING(for Cocoa framework)
  1331         have_cocoa=no
  1332         AC_TRY_COMPILE([
  1333           #import <Cocoa/Cocoa.h>
  1334         ],[
  1335         ],[
  1336         have_cocoa=yes
  1337         ])
  1338         AC_MSG_RESULT($have_cocoa)
  1339         CFLAGS="$save_CFLAGS"
  1340         if test x$have_cocoa = xyes; then
  1341             AC_DEFINE(SDL_VIDEO_DRIVER_COCOA, 1, [ ])
  1342             SOURCES="$SOURCES $srcdir/src/video/cocoa/*.m"
  1343             have_video=yes
  1344         fi
  1345     fi
  1346 }
  1347 
  1348 dnl Find DirectFB
  1349 CheckDirectFB()
  1350 {
  1351     AC_ARG_ENABLE(video-directfb,
  1352 AC_HELP_STRING([--enable-video-directfb], [use DirectFB video driver [[default=no]]]),
  1353                   , enable_video_directfb=no)
  1354     if test x$enable_video = xyes -a x$enable_video_directfb = xyes; then
  1355         video_directfb=no
  1356 
  1357         DIRECTFB_REQUIRED_VERSION=1.0.0
  1358         AC_PATH_PROGS(DIRECTFBCONFIG, directfb-config, no, [$prefix/bin:$PATH])
  1359         if test x$DIRECTFBCONFIG = xno; then
  1360             AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
  1361             if test x$PKG_CONFIG != xno; then
  1362                 if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb; then
  1363                     DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags directfb`
  1364                     DIRECTFB_LIBS=`$PKG_CONFIG --libs directfb`
  1365                     DIRECTFB_PREFIX=`$PKG_CONFIG --variable=prefix directfb`
  1366                     video_directfb=yes
  1367                 fi
  1368             fi
  1369         else
  1370             set -- `echo $DIRECTFB_REQUIRED_VERSION | sed 's/\./ /g'`
  1371             NEED_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
  1372             set -- `directfb-config --version | sed 's/\./ /g'`
  1373             HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
  1374             if test $HAVE_VERSION -ge $NEED_VERSION; then
  1375                 DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags`
  1376                 DIRECTFB_LIBS=`$DIRECTFBCONFIG --libs`
  1377                 DIRECTFB_PREFIX=`$DIRECTFBCONFIG --prefix`
  1378                 video_directfb=yes
  1379             fi
  1380         fi
  1381         if test x$video_directfb = xyes; then
  1382             # SuSE 11.1 installs directfb-config without directfb-devel
  1383             save_CPPFLAGS="$CPPFLAGS"
  1384             CPPFLAGS="$CPPFLAGS $DIRECTFB_CFLAGS"
  1385             AC_CHECK_HEADER(directfb.h, have_directfb_hdr=yes, have_directfb_hdr=no)
  1386             CPPFLAGS="$save_CPPFLAGS"
  1387             video_directfb=$have_directfb_hdr
  1388         fi
  1389         AC_MSG_CHECKING(for DirectFB $DIRECTFB_REQUIRED_VERSION support)
  1390         AC_MSG_RESULT($video_directfb)
  1391 
  1392         if test x$video_directfb = xyes; then
  1393             AC_ARG_ENABLE(directfb-shared,
  1394 AC_HELP_STRING([--enable-directfb-shared], [dynamically load directfb support [[default=yes]]]),
  1395                               , enable_directfb_shared=yes)
  1396 
  1397             AC_DEFINE(SDL_VIDEO_DRIVER_DIRECTFB, 1, [ ])
  1398             AC_DEFINE(SDL_VIDEO_RENDER_DIRECTFB, 1, [ ])
  1399             SOURCES="$SOURCES $srcdir/src/video/directfb/*.c"
  1400             EXTRA_CFLAGS="$EXTRA_CFLAGS $DIRECTFB_CFLAGS"
  1401 
  1402             AC_MSG_CHECKING(for directfb dynamic loading support)
  1403             directfb_shared=no
  1404             directfb_lib=[`find_lib "libdirectfb.so.*" "$DIRECTFB_LIBS"`]
  1405             # | sed 's/.*\/\(.*\)/\1/; q'`]
  1406 AC_MSG_WARN("directfb $directfb_lib")
  1407             if test x$have_loadso != xyes && \
  1408                test x$enable_directfb_shared = xyes; then
  1409                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic directfb loading])
  1410             fi
  1411             if test x$have_loadso = xyes && \
  1412                test x$enable_directfb_shared = xyes && test x$directfb_lib != x; then
  1413                 directfb_shared=yes
  1414                 echo "-- $directfb_lib_spec -> $directfb_lib"
  1415                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC, "$directfb_lib", [ ])
  1416             else
  1417                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $DIRECTFB_LIBS"
  1418             fi
  1419             AC_MSG_RESULT($directfb_shared)
  1420             have_video=yes
  1421         fi
  1422     fi
  1423 }
  1424 
  1425 dnl Find FusionSound
  1426 CheckFusionSound()
  1427 {
  1428     AC_ARG_ENABLE(fusionsound,
  1429 AC_HELP_STRING([--enable-fusionsound], [use FusionSound audio driver [[default=no]]]),
  1430                   , enable_fusionsound=no)
  1431     if test x$enable_audio = xyes -a x$enable_fusionsound = xyes; then
  1432         fusionsound=no
  1433 
  1434         FUSIONSOUND_REQUIRED_VERSION=1.1.1
  1435 
  1436         AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
  1437         AC_MSG_CHECKING(for FusionSound $FUSIONSOUND_REQUIRED_VERSION support)
  1438         if test x$PKG_CONFIG != xno; then
  1439             if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $FUSIONSOUND_REQUIRED_VERSION fusionsound; then
  1440                 FUSIONSOUND_CFLAGS=`$PKG_CONFIG --cflags fusionsound`
  1441                 FUSIONSOUND_LIBS=`$PKG_CONFIG --libs fusionsound`
  1442                 fusionsound=yes
  1443             fi
  1444         fi
  1445         AC_MSG_RESULT($fusionsound)
  1446 
  1447         if test x$fusionsound = xyes; then
  1448             AC_DEFINE(SDL_AUDIO_DRIVER_FUSIONSOUND, 1, [ ])
  1449             SOURCES="$SOURCES $srcdir/src/audio/fusionsound/*.c"
  1450             EXTRA_CFLAGS="$EXTRA_CFLAGS $FUSIONSOUND_CFLAGS"
  1451             
  1452             AC_ARG_ENABLE(fusionsound-shared,
  1453 AC_HELP_STRING([--enable-fusionsound-shared], [dynamically load fusionsound audio support [[default=yes]]]),
  1454                           , enable_fusionsound_shared=yes)
  1455             fusionsound_shared=no
  1456             AC_MSG_CHECKING(for FusionSound dynamic loading support)
  1457             if test x$have_loadso != xyes && \
  1458                test x$enable_fusionsound_shared = xyes; then
  1459                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic fusionsound loading])
  1460             fi
  1461             if test x$have_loadso = xyes && \
  1462                test x$enable_fusionsound_shared = xyes; then
  1463                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC, "libfusionsound.so", [ ])
  1464                 fusionsound_shared=yes
  1465             else
  1466                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $FUSIONSOUND_LIBS"
  1467             fi
  1468             AC_MSG_RESULT($fusionsound_shared)
  1469             
  1470             have_audio=yes
  1471         fi
  1472     fi
  1473 }
  1474 
  1475 dnl rcg04172001 Set up the Null video driver.
  1476 CheckDummyVideo()
  1477 {
  1478     AC_ARG_ENABLE(video-dummy,
  1479 AC_HELP_STRING([--enable-video-dummy], [use dummy video driver [[default=yes]]]),
  1480                   , enable_video_dummy=yes)
  1481     if test x$enable_video_dummy = xyes; then
  1482         AC_DEFINE(SDL_VIDEO_DRIVER_DUMMY, 1, [ ])
  1483         SOURCES="$SOURCES $srcdir/src/video/dummy/*.c"
  1484         have_video=yes
  1485     fi
  1486 }
  1487 
  1488 dnl Check to see if OpenGL support is desired
  1489 AC_ARG_ENABLE(video-opengl,
  1490 AC_HELP_STRING([--enable-video-opengl], [include OpenGL support [[default=yes]]]),
  1491               , enable_video_opengl=yes)
  1492 
  1493 dnl Find OpenGL
  1494 CheckOpenGLX11()
  1495 {
  1496     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1497         AC_MSG_CHECKING(for OpenGL (GLX) support)
  1498         video_opengl=no
  1499         AC_TRY_COMPILE([
  1500          #include <GL/gl.h>
  1501          #include <GL/glx.h>
  1502         ],[
  1503         ],[
  1504         video_opengl=yes
  1505         ])
  1506         AC_MSG_RESULT($video_opengl)
  1507         if test x$video_opengl = xyes; then
  1508             AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1509             AC_DEFINE(SDL_VIDEO_OPENGL_GLX, 1, [ ])
  1510             AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  1511         fi
  1512     fi
  1513 }
  1514 
  1515 dnl Check to see if OpenGL ES support is desired
  1516 AC_ARG_ENABLE(video-opengles,
  1517 AC_HELP_STRING([--enable-video-opengles], [include OpenGL ES support [[default=yes]]]),
  1518               , enable_video_opengles=yes)
  1519 
  1520 dnl Find OpenGL ES
  1521 CheckOpenGLESX11()
  1522 {
  1523     if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then
  1524         AC_MSG_CHECKING(for OpenGL ES (EGL) support)
  1525         video_opengles=no
  1526         AC_TRY_COMPILE([
  1527          #include <EGL/egl.h>
  1528         ],[
  1529         ],[
  1530         video_opengles=yes
  1531         ])
  1532         AC_MSG_RESULT($video_opengles)
  1533         if test x$video_opengles = xyes; then
  1534             AC_MSG_CHECKING(for OpenGL ES v1 headers)
  1535             video_opengles_v1=no
  1536             AC_TRY_COMPILE([
  1537              #include <GLES/gl.h>
  1538              #include <GLES/glext.h>
  1539             ],[
  1540             ],[
  1541             video_opengles_v1=yes
  1542             ])
  1543             AC_MSG_RESULT($video_opengles_v1)
  1544             if test x$video_opengles_v1 = xyes; then
  1545                 AC_DEFINE(SDL_VIDEO_OPENGL_ES, 1, [ ])
  1546                 AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES, 1, [ ])
  1547             fi
  1548             AC_MSG_CHECKING(for OpenGL ES v2 headers)
  1549             video_opengles_v2=no
  1550             AC_TRY_COMPILE([
  1551              #include <GLES2/gl2.h>
  1552              #include <GLES2/gl2ext.h>
  1553             ],[
  1554             ],[
  1555             video_opengles_v2=yes
  1556             ])
  1557             AC_MSG_RESULT($video_opengles_v2)
  1558             if test x$video_opengles_v2 = xyes; then
  1559                 AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ])
  1560                 AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
  1561             fi
  1562         fi
  1563     fi
  1564 }
  1565 
  1566 dnl Check for Windows OpenGL
  1567 CheckWINDOWSGL()
  1568 {
  1569     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1570         AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1571         AC_DEFINE(SDL_VIDEO_OPENGL_WGL, 1, [ ])
  1572         AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  1573     fi
  1574 }
  1575 
  1576 dnl Check for BeOS OpenGL
  1577 CheckBeGL()
  1578 {
  1579     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1580         AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1581         AC_DEFINE(SDL_VIDEO_OPENGL_BGL, 1, [ ])
  1582         AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  1583         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL"
  1584     fi
  1585 }
  1586 
  1587 dnl Check for MacOS OpenGL
  1588 CheckMacGL()
  1589 {
  1590     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1591         AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1592         AC_DEFINE(SDL_VIDEO_OPENGL_CGL, 1, [ ])
  1593         AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  1594         case "$host" in
  1595             *-*-darwin*)
  1596                 if test x$enable_video_cocoa = xyes; then
  1597                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,OpenGL"
  1598                 fi
  1599         esac
  1600     fi
  1601 }
  1602 
  1603 dnl See if we can use the new unified event interface in Linux 2.4
  1604 CheckInputEvents()
  1605 {
  1606     dnl Check for Linux 2.4 unified input event interface support
  1607     AC_ARG_ENABLE(input-events,
  1608 AC_HELP_STRING([--enable-input-events], [use Linux 2.4 unified input interface [[default=yes]]]),
  1609                   , enable_input_events=yes)
  1610     if test x$enable_input_events = xyes; then
  1611         AC_MSG_CHECKING(for Linux 2.4 unified input interface)
  1612         use_input_events=no
  1613         AC_TRY_COMPILE([
  1614           #include <linux/input.h>
  1615         ],[
  1616           #ifndef EVIOCGNAME
  1617           #error EVIOCGNAME() ioctl not available
  1618           #endif
  1619         ],[
  1620         use_input_events=yes
  1621         ])
  1622         AC_MSG_RESULT($use_input_events)
  1623         if test x$use_input_events = xyes; then
  1624             AC_DEFINE(SDL_INPUT_LINUXEV, 1, [ ])
  1625         fi
  1626     fi
  1627 }
  1628 
  1629 dnl See if we can use the Touchscreen input library
  1630 CheckTslib()
  1631 {
  1632     AC_ARG_ENABLE(input-tslib,
  1633 AC_HELP_STRING([--enable-input-tslib], [use the Touchscreen library for input [[default=yes]]]),
  1634                   , enable_input_tslib=yes)
  1635     if test x$enable_input_tslib = xyes; then
  1636         AC_MSG_CHECKING(for Touchscreen library support)
  1637         enable_input_tslib=no
  1638         AC_TRY_COMPILE([
  1639           #include "tslib.h"
  1640         ],[
  1641         ],[
  1642         enable_input_tslib=yes
  1643         ])
  1644         AC_MSG_RESULT($enable_input_tslib)
  1645         if test x$enable_input_tslib = xyes; then
  1646             AC_DEFINE(SDL_INPUT_TSLIB, 1, [ ])
  1647             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lts"
  1648         fi
  1649     fi
  1650 }
  1651 
  1652 dnl See what type of thread model to use on Linux and Solaris
  1653 CheckPTHREAD()
  1654 {
  1655     dnl Check for pthread support
  1656     AC_ARG_ENABLE(pthreads,
  1657 AC_HELP_STRING([--enable-pthreads], [use POSIX threads for multi-threading [[default=yes]]]),
  1658                   , enable_pthreads=yes)
  1659     dnl This is used on Linux for glibc binary compatibility (Doh!)
  1660     AC_ARG_ENABLE(pthread-sem,
  1661 AC_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [[default=yes]]]),
  1662                   , enable_pthread_sem=yes)
  1663     case "$host" in
  1664         *-*-linux*|*-*-uclinux*)
  1665             pthread_cflags="-D_REENTRANT"
  1666             pthread_lib="-lpthread"
  1667             ;;
  1668         *-*-bsdi*)
  1669             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  1670             pthread_lib=""
  1671             ;;
  1672         *-*-darwin*)
  1673             pthread_cflags="-D_THREAD_SAFE"
  1674 # causes Carbon.p complaints?
  1675 #            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  1676             ;;
  1677         *-*-freebsd*|*-*-dragonfly*)
  1678             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  1679             pthread_lib="-pthread"
  1680             ;;
  1681         *-*-netbsd*)
  1682             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  1683             pthread_lib="-lpthread"
  1684             ;;
  1685         *-*-openbsd*)
  1686             pthread_cflags="-D_REENTRANT"
  1687             pthread_lib="-pthread"
  1688             ;;
  1689         *-*-solaris*)
  1690             pthread_cflags="-D_REENTRANT"
  1691             pthread_lib="-lpthread -lposix4"
  1692             ;;
  1693         *-*-sysv5*)
  1694             pthread_cflags="-D_REENTRANT -Kthread"
  1695             pthread_lib=""
  1696             ;;
  1697         *-*-aix*)
  1698             pthread_cflags="-D_REENTRANT -mthreads"
  1699             pthread_lib="-lpthread"
  1700             ;;
  1701         *-*-hpux11*)
  1702             pthread_cflags="-D_REENTRANT"
  1703             pthread_lib="-L/usr/lib -lpthread"
  1704             ;;
  1705         *)
  1706             pthread_cflags="-D_REENTRANT"
  1707             pthread_lib="-lpthread"
  1708             ;;
  1709     esac
  1710     if test x$enable_threads = xyes -a x$enable_pthreads = xyes; then
  1711         # Save the original compiler flags and libraries
  1712         ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
  1713         # Add the pthread compiler flags and libraries
  1714         CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
  1715         # Check to see if we have pthread support on this system
  1716         AC_MSG_CHECKING(for pthreads)
  1717         use_pthreads=no
  1718         AC_TRY_LINK([
  1719          #include <pthread.h>
  1720         ],[
  1721          pthread_attr_t type;
  1722          pthread_attr_init(&type);
  1723         ],[
  1724         use_pthreads=yes
  1725         ])
  1726         AC_MSG_RESULT($use_pthreads)
  1727         # Restore the compiler flags and libraries
  1728         CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
  1729 
  1730         # Do futher testing if we have pthread support...
  1731         if test x$use_pthreads = xyes; then
  1732             AC_DEFINE(SDL_THREAD_PTHREAD, 1, [ ])
  1733             EXTRA_CFLAGS="$EXTRA_CFLAGS $pthread_cflags"
  1734             EXTRA_LDFLAGS="$EXTRA_LDFLAGS $pthread_lib"
  1735             SDL_CFLAGS="$SDL_CFLAGS $pthread_cflags"
  1736             SDL_LIBS="$SDL_LIBS $pthread_lib"
  1737 
  1738             # Save the original compiler flags and libraries
  1739             ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
  1740             # Add the pthread compiler flags and libraries
  1741             CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
  1742 
  1743             # Check to see if recursive mutexes are available
  1744             AC_MSG_CHECKING(for recursive mutexes)
  1745             has_recursive_mutexes=no
  1746             if test x$has_recursive_mutexes = xno; then
  1747                 AC_TRY_COMPILE([
  1748                   #include <pthread.h>
  1749                 ],[
  1750                   pthread_mutexattr_t attr;
  1751                   pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
  1752                 ],[
  1753                 has_recursive_mutexes=yes
  1754                 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX, 1, [ ])
  1755                 ])
  1756             fi
  1757             if test x$has_recursive_mutexes = xno; then
  1758                 AC_TRY_COMPILE([
  1759                   #include <pthread.h>
  1760                 ],[
  1761                   pthread_mutexattr_t attr;
  1762                   pthread_mutexattr_setkind_np(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
  1763                 ],[
  1764                 has_recursive_mutexes=yes
  1765                 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP, 1, [ ])
  1766                 ])
  1767             fi
  1768             AC_MSG_RESULT($has_recursive_mutexes)
  1769 
  1770             # Check to see if pthread semaphore support is missing
  1771             if test x$enable_pthread_sem = xyes; then
  1772                 AC_MSG_CHECKING(for pthread semaphores)
  1773                 have_pthread_sem=no
  1774                 AC_TRY_COMPILE([
  1775                   #include <pthread.h>
  1776                   #include <semaphore.h>
  1777                 ],[
  1778                 ],[
  1779                 have_pthread_sem=yes
  1780                 ])
  1781                 AC_MSG_RESULT($have_pthread_sem)
  1782             fi
  1783             if test x$have_pthread_sem = xyes; then
  1784                 AC_MSG_CHECKING(for sem_timedwait)
  1785                 have_sem_timedwait=no
  1786                 AC_TRY_LINK([
  1787                   #include <pthread.h>
  1788                   #include <semaphore.h>
  1789                 ],[
  1790                   sem_timedwait(NULL, NULL);
  1791                 ],[
  1792                 have_sem_timedwait=yes
  1793                 AC_DEFINE(HAVE_SEM_TIMEDWAIT)
  1794                 ])
  1795                 AC_MSG_RESULT($have_sem_timedwait)
  1796             fi
  1797 
  1798             AC_MSG_CHECKING(for pthread_spin_trylock)
  1799             AC_TRY_LINK_FUNC(pthread_spin_trylock, [
  1800               has_pthread_spin_trylock=yes
  1801               AC_DEFINE(HAVE_PTHREAD_SPINLOCK, 1, [ ])
  1802             ],[
  1803               has_pthread_spin_trylock=no
  1804             ])
  1805             AC_MSG_RESULT($has_pthread_spin_trylock)
  1806 
  1807             AC_CHECK_HEADER(pthread_np.h, have_pthread_np_h=yes)
  1808             if test x$have_pthread_np_h = xyes; then
  1809                 AC_DEFINE(HAVE_PTHREAD_NP_H, 1, [ ])
  1810             fi
  1811 
  1812             # Check to see if pthread naming is available
  1813             AC_MSG_CHECKING(for pthread_setname_np)
  1814             AC_TRY_LINK_FUNC(pthread_setname_np, [
  1815               has_pthread_setname_np=yes
  1816               AC_DEFINE(HAVE_PTHREAD_SETNAME_NP, 1, [ ])
  1817             ],[
  1818               has_pthread_setname_np=no
  1819             ])
  1820             AC_MSG_RESULT($has_pthread_setname_np)
  1821 
  1822             AC_MSG_CHECKING(for pthread_set_name_np)
  1823             AC_TRY_LINK_FUNC(pthread_set_name_np, [
  1824               has_pthread_set_name_np=yes
  1825               AC_DEFINE(HAVE_PTHREAD_SET_NAME_NP, 1, [ ])
  1826             ],[
  1827               has_pthread_set_name_np=no
  1828             ])
  1829             AC_MSG_RESULT($has_pthread_set_name_np)
  1830 
  1831             # Restore the compiler flags and libraries
  1832             CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
  1833 
  1834             # Basic thread creation functions
  1835             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_systhread.c"
  1836 
  1837             # Semaphores
  1838             # We can fake these with mutexes and condition variables if necessary
  1839             if test x$have_pthread_sem = xyes; then
  1840                 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syssem.c"
  1841             else
  1842                 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syssem.c"
  1843             fi
  1844 
  1845             # Mutexes
  1846             # We can fake these with semaphores if necessary
  1847             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_sysmutex.c"
  1848 
  1849             # Condition variables
  1850             # We can fake these with semaphores and mutexes if necessary
  1851             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syscond.c"
  1852 
  1853             have_threads=yes
  1854         fi
  1855     fi
  1856 }
  1857 
  1858 dnl Determine whether the compiler can produce Windows executables
  1859 CheckWINDOWS()
  1860 {
  1861     AC_MSG_CHECKING(Windows compiler)
  1862     have_win32_gcc=no
  1863     AC_TRY_COMPILE([
  1864      #include <windows.h>
  1865     ],[
  1866     ],[
  1867     have_win32_gcc=yes
  1868     ])
  1869     AC_MSG_RESULT($have_win32_gcc)
  1870     if test x$have_win32_gcc != xyes; then
  1871        AC_MSG_ERROR([
  1872 *** Your compiler ($CC) does not produce Windows executables!
  1873        ])
  1874     fi
  1875 
  1876     AC_MSG_CHECKING(Windows CE)
  1877     have_wince=no
  1878     AC_TRY_COMPILE([
  1879 #if !defined(_WIN32_WCE) && !defined(__MINGW32CE__)
  1880 #error This is not Windows CE
  1881 #endif
  1882     ],[
  1883     ],[
  1884     have_wince=yes
  1885     ])
  1886     AC_MSG_RESULT($have_wince)
  1887 
  1888     # This fixes Windows stack alignment with newer GCC
  1889     CheckStackBoundary
  1890 }
  1891 
  1892 dnl Find the DirectX includes and libraries
  1893 CheckDIRECTX()
  1894 {
  1895     AC_ARG_ENABLE(directx,
  1896 AC_HELP_STRING([--enable-directx], [use DirectX for Windows audio/video [[default=yes]]]),
  1897                   , enable_directx=yes)
  1898     if test x$enable_directx = xyes; then
  1899         AC_CHECK_HEADER(d3d9.h, have_d3d=yes)
  1900         AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
  1901         AC_CHECK_HEADER(dsound.h, have_dsound=yes)
  1902         AC_CHECK_HEADER(dinput.h, have_dinput=yes)
  1903         AC_CHECK_HEADER(xaudio2.h, have_xaudio2=yes)
  1904     fi
  1905 }
  1906 
  1907 dnl Check for the dlfcn.h interface for dynamically loading objects
  1908 CheckDLOPEN()
  1909 {
  1910     AC_ARG_ENABLE(sdl-dlopen,
  1911 AC_HELP_STRING([--enable-sdl-dlopen], [use dlopen for shared object loading [[default=yes]]]),
  1912                   , enable_sdl_dlopen=yes)
  1913     if test x$enable_sdl_dlopen = xyes; then
  1914         AC_MSG_CHECKING(for dlopen)
  1915         have_dlopen=no
  1916         AC_TRY_COMPILE([
  1917          #include <dlfcn.h>
  1918         ],[
  1919          #if defined(MAC_OS_X_VERSION_MIN_REQUIRED) && MAC_OS_X_VERSION_MIN_REQUIRED <= 1020
  1920          #error Use dlcompat for Mac OS X 10.2 compatibility
  1921          #endif
  1922         ],[
  1923         have_dlopen=yes
  1924         ])
  1925         AC_MSG_RESULT($have_dlopen)
  1926 
  1927         if test x$have_dlopen = xyes; then
  1928             AC_CHECK_LIB(c, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS",
  1929                AC_CHECK_LIB(dl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldl",
  1930                   AC_CHECK_LIB(ltdl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lltdl")))
  1931             AC_DEFINE(SDL_LOADSO_DLOPEN, 1, [ ])
  1932             SOURCES="$SOURCES $srcdir/src/loadso/dlopen/*.c"
  1933             have_loadso=yes
  1934         fi
  1935     fi
  1936 }
  1937 
  1938 dnl Check for the usbhid(3) library on *BSD
  1939 CheckUSBHID()
  1940 {
  1941     if test x$enable_joystick = xyes; then
  1942         AC_CHECK_LIB(usbhid, hid_init, have_libusbhid=yes)
  1943         if test x$have_libusbhid = xyes; then
  1944             AC_CHECK_HEADER(usbhid.h, [USB_CFLAGS="-DHAVE_USBHID_H"])
  1945             AC_CHECK_HEADER(libusbhid.h, [USB_CFLAGS="-DHAVE_LIBUSBHID_H"])
  1946             USB_LIBS="$USB_LIBS -lusbhid"
  1947         else
  1948             AC_CHECK_HEADER(usb.h, [USB_CFLAGS="-DHAVE_USB_H"])
  1949             AC_CHECK_HEADER(libusb.h, [USB_CFLAGS="-DHAVE_LIBUSB_H"])
  1950             AC_CHECK_LIB(usb, hid_init, [USB_LIBS="$USB_LIBS -lusb"])
  1951         fi
  1952             
  1953         save_CFLAGS="$CFLAGS"
  1954         CFLAGS="$CFLAGS $USB_CFLAGS"
  1955 
  1956         AC_MSG_CHECKING(for usbhid)
  1957         have_usbhid=no
  1958         AC_TRY_COMPILE([
  1959           #include <sys/types.h>
  1960           #if defined(HAVE_USB_H)
  1961           #include <usb.h>
  1962           #endif
  1963           #ifdef __DragonFly__
  1964           # include <bus/usb/usb.h>
  1965           # include <bus/usb/usbhid.h>
  1966           #else
  1967           # include <dev/usb/usb.h>
  1968           # include <dev/usb/usbhid.h>
  1969           #endif
  1970           #if defined(HAVE_USBHID_H)
  1971           #include <usbhid.h>
  1972           #elif defined(HAVE_LIBUSB_H)
  1973           #include <libusb.h>
  1974           #elif defined(HAVE_LIBUSBHID_H)
  1975           #include <libusbhid.h>
  1976           #endif
  1977         ],[
  1978           struct report_desc *repdesc;
  1979           struct usb_ctl_report *repbuf;
  1980           hid_kind_t hidkind;
  1981         ],[
  1982         have_usbhid=yes
  1983         ])
  1984         AC_MSG_RESULT($have_usbhid)
  1985 
  1986         if test x$have_usbhid = xyes; then
  1987             AC_MSG_CHECKING(for ucr_data member of usb_ctl_report)
  1988             have_usbhid_ucr_data=no
  1989             AC_TRY_COMPILE([
  1990               #include <sys/types.h>
  1991               #if defined(HAVE_USB_H)
  1992               #include <usb.h>
  1993               #endif
  1994               #ifdef __DragonFly__
  1995               # include <bus/usb/usb.h>
  1996               # include <bus/usb/usbhid.h>
  1997               #else
  1998               # include <dev/usb/usb.h>
  1999               # include <dev/usb/usbhid.h>
  2000               #endif
  2001               #if defined(HAVE_USBHID_H)
  2002               #include <usbhid.h>
  2003               #elif defined(HAVE_LIBUSB_H)
  2004               #include <libusb.h>
  2005               #elif defined(HAVE_LIBUSBHID_H)
  2006               #include <libusbhid.h>
  2007               #endif
  2008             ],[
  2009               struct usb_ctl_report buf;
  2010               if (buf.ucr_data) { }
  2011             ],[
  2012             have_usbhid_ucr_data=yes
  2013             ])
  2014             if test x$have_usbhid_ucr_data = xyes; then
  2015                 USB_CFLAGS="$USB_CFLAGS -DUSBHID_UCR_DATA"
  2016             fi
  2017             AC_MSG_RESULT($have_usbhid_ucr_data)
  2018             
  2019             AC_MSG_CHECKING(for new usbhid API)
  2020             have_usbhid_new=no
  2021             AC_TRY_COMPILE([
  2022               #include <sys/types.h>
  2023               #if defined(HAVE_USB_H)
  2024               #include <usb.h>
  2025               #endif
  2026               #ifdef __DragonFly__
  2027               #include <bus/usb/usb.h>
  2028               #include <bus/usb/usbhid.h>
  2029               #else
  2030               #include <dev/usb/usb.h>
  2031               #include <dev/usb/usbhid.h>
  2032               #endif
  2033               #if defined(HAVE_USBHID_H)
  2034               #include <usbhid.h>
  2035               #elif defined(HAVE_LIBUSB_H)
  2036               #include <libusb.h>
  2037               #elif defined(HAVE_LIBUSBHID_H)
  2038               #include <libusbhid.h>
  2039               #endif
  2040             ],[
  2041               report_desc_t d;
  2042               hid_start_parse(d, 1, 1);
  2043             ],[
  2044             have_usbhid_new=yes
  2045             ])
  2046             if test x$have_usbhid_new = xyes; then
  2047                 USB_CFLAGS="$USB_CFLAGS -DUSBHID_NEW"
  2048             fi
  2049             AC_MSG_RESULT($have_usbhid_new)
  2050 
  2051             AC_MSG_CHECKING(for struct joystick in machine/joystick.h)
  2052             have_machine_joystick=no
  2053             AC_TRY_COMPILE([
  2054               #include <machine/joystick.h>
  2055             ],[
  2056               struct joystick t;
  2057             ],[
  2058             have_machine_joystick=yes
  2059             ])
  2060             if test x$have_machine_joystick = xyes; then
  2061                 AC_DEFINE(SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H, 1, [ ])
  2062             fi
  2063             AC_MSG_RESULT($have_machine_joystick)
  2064 
  2065             AC_DEFINE(SDL_JOYSTICK_USBHID, 1, [ ])
  2066             SOURCES="$SOURCES $srcdir/src/joystick/bsd/*.c"
  2067             EXTRA_CFLAGS="$EXTRA_CFLAGS $USB_CFLAGS"
  2068             EXTRA_LDFLAGS="$EXTRA_LDFLAGS $USB_LIBS"
  2069             have_joystick=yes
  2070         fi
  2071         CFLAGS="$save_CFLAGS"
  2072     fi
  2073 }
  2074 
  2075 dnl Check for clock_gettime()
  2076 CheckClockGettime()
  2077 {
  2078     AC_ARG_ENABLE(clock_gettime,
  2079 AC_HELP_STRING([--enable-clock_gettime], [use clock_gettime() instead of gettimeofday() on UNIX [[default=no]]]),
  2080                   , enable_clock_gettime=no)
  2081     if test x$enable_clock_gettime = xyes; then
  2082         AC_CHECK_LIB(rt, clock_gettime, have_clock_gettime=yes)
  2083         if test x$have_clock_gettime = xyes; then
  2084             AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [ ])
  2085             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lrt"
  2086         else
  2087             AC_CHECK_LIB(c, clock_gettime, have_clock_gettime=yes)
  2088             if test x$have_clock_gettime = xyes; then
  2089                AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [ ])
  2090                EXTRA_LDFLAGS="$EXTRA_LDFLAGS"
  2091             fi
  2092         fi
  2093     fi
  2094 }
  2095 
  2096 dnl Check for a valid linux/version.h
  2097 CheckLinuxVersion()
  2098 {
  2099     AC_CHECK_HEADER(linux/version.h, have_linux_version_h=yes)
  2100     if test x$have_linux_version_h = xyes; then
  2101         EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_LINUX_VERSION_H"
  2102     fi
  2103 }
  2104 
  2105 dnl Check if we want to use RPATH
  2106 CheckRPATH()
  2107 {
  2108     AC_ARG_ENABLE(rpath,
  2109 AC_HELP_STRING([--enable-rpath], [use an rpath when linking SDL [[default=yes]]]),
  2110                   , enable_rpath=yes)
  2111 }
  2112 
  2113 dnl Set up the configuration based on the host platform!
  2114 case "$host" in
  2115     *-*-linux*|*-*-uclinux*|*-*-gnu*|*-*-k*bsd*-gnu|*-*-bsdi*|*-*-freebsd*|*-*-dragonfly*|*-*-netbsd*|*-*-openbsd*|*-*-sysv5*|*-*-solaris*|*-*-hpux*|*-*-aix*|*-*-minix*)
  2116         case "$host" in
  2117             *-*-linux*)         ARCH=linux ;;
  2118             *-*-uclinux*)       ARCH=linux ;;
  2119             *-*-kfreebsd*-gnu)  ARCH=kfreebsd-gnu ;;
  2120             *-*-knetbsd*-gnu)   ARCH=knetbsd-gnu ;;
  2121             *-*-kopenbsd*-gnu)  ARCH=kopenbsd-gnu ;;
  2122             *-*-gnu*)           ARCH=gnu ;; # must be last of the gnu variants
  2123             *-*-bsdi*)          ARCH=bsdi ;;
  2124             *-*-freebsd*)       ARCH=freebsd ;;
  2125             *-*-dragonfly*)     ARCH=freebsd ;;
  2126             *-*-netbsd*)        ARCH=netbsd ;;
  2127             *-*-openbsd*)       ARCH=openbsd ;;
  2128             *-*-sysv5*)         ARCH=sysv5 ;;
  2129             *-*-solaris*)       ARCH=solaris ;;
  2130             *-*-hpux*)          ARCH=hpux ;;
  2131             *-*-aix*)           ARCH=aix ;;
  2132             *-*-minix*)         ARCH=minix ;;
  2133         esac
  2134         CheckVisibilityHidden
  2135         CheckDummyVideo
  2136         CheckDiskAudio
  2137         CheckDummyAudio
  2138         CheckDLOPEN
  2139         CheckOSS
  2140         CheckALSA
  2141         CheckPulseAudio
  2142         CheckARTSC
  2143         CheckESD
  2144         CheckNAS
  2145         CheckX11
  2146         CheckDirectFB
  2147         CheckFusionSound
  2148         CheckOpenGLX11
  2149         CheckOpenGLESX11
  2150         CheckInputEvents
  2151         CheckTslib
  2152         CheckUSBHID
  2153         CheckPTHREAD
  2154         CheckClockGettime
  2155         CheckLinuxVersion
  2156         CheckRPATH
  2157         # Set up files for the audio library
  2158         if test x$enable_audio = xyes; then
  2159           case $ARCH in
  2160             sysv5|solaris|hpux)
  2161                 AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO, 1, [ ])
  2162                 SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
  2163                 have_audio=yes
  2164             ;;
  2165             netbsd|openbsd)
  2166                 AC_DEFINE(SDL_AUDIO_DRIVER_BSD, 1, [ ])
  2167                 SOURCES="$SOURCES $srcdir/src/audio/bsd/*.c"
  2168                 have_audio=yes
  2169             ;;
  2170             aix)
  2171                 AC_DEFINE(SDL_AUDIO_DRIVER_PAUDIO, 1, [ ])
  2172                 SOURCES="$SOURCES $srcdir/src/audio/paudio/*.c"
  2173                 have_audio=yes
  2174             ;;
  2175           esac
  2176         fi
  2177         # Set up files for the joystick library
  2178         if test x$enable_joystick = xyes; then
  2179           case $ARCH in
  2180             linux)
  2181                 AC_DEFINE(SDL_JOYSTICK_LINUX, 1, [ ])
  2182                 SOURCES="$SOURCES $srcdir/src/joystick/linux/*.c"
  2183                 have_joystick=yes
  2184             ;;
  2185           esac
  2186         fi
  2187         # Set up files for the haptic library
  2188         if test x$enable_haptic = xyes; then
  2189            if test x$use_input_events = xyes; then
  2190              case $ARCH in
  2191                linux)
  2192                    AC_DEFINE(SDL_HAPTIC_LINUX, 1, [ ])
  2193                    SOURCES="$SOURCES $srcdir/src/haptic/linux/*.c"
  2194                    have_haptic=yes
  2195                ;;
  2196              esac
  2197            fi
  2198         fi
  2199         # Set up files for the power library
  2200         if test x$enable_power = xyes; then
  2201              case $ARCH in
  2202                linux)
  2203                    AC_DEFINE(SDL_POWER_LINUX, 1, [ ])
  2204                    SOURCES="$SOURCES $srcdir/src/power/linux/*.c"
  2205                    have_power=yes
  2206                ;;
  2207              esac
  2208         fi
  2209         # Set up files for the timer library
  2210         if test x$enable_timers = xyes; then
  2211             AC_DEFINE(SDL_TIMER_UNIX, 1, [ ])
  2212             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  2213             have_timers=yes
  2214         fi
  2215         ;;
  2216     *-wince* | *-mingw32ce)
  2217         ARCH=win32
  2218         CheckDummyVideo
  2219         CheckDiskAudio
  2220         CheckDummyAudio
  2221         CheckWINDOWS
  2222         if test x$enable_video = xyes; then
  2223             AC_DEFINE(SDL_VIDEO_DRIVER_WINDOWS, 1, [ ])
  2224             SOURCES="$SOURCES $srcdir/src/video/windows/*.c"
  2225             have_video=yes
  2226             AC_ARG_ENABLE(render-d3d,
  2227 AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[default=yes]]]),
  2228                                 , enable_render_d3d=yes)
  2229             enable_render_d3d=no
  2230             if test x$enable_render_d3d = xyes -a x$have_d3d = xyes; then
  2231                 AC_DEFINE(SDL_VIDEO_RENDER_D3D, 1, [ ])
  2232             fi
  2233         fi
  2234         # Set up files for the audio library
  2235         if test x$enable_audio = xyes; then
  2236             AC_DEFINE(SDL_AUDIO_DRIVER_WINMM, 1, [ ])
  2237             SOURCES="$SOURCES $srcdir/src/audio/winmm/*.c"
  2238             if test x$have_dsound = xyes; then
  2239                 AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND, 1, [ ])
  2240                 SOURCES="$SOURCES $srcdir/src/audio/directsound/*.c"
  2241             fi
  2242             if test x$have_xaudio2 = xyes; then
  2243                 AC_DEFINE(SDL_AUDIO_DRIVER_XAUDIO2, 1, [ ])
  2244                 SOURCES="$SOURCES $srcdir/src/audio/xaudio2/*.c"
  2245             fi
  2246             have_audio=yes
  2247         fi
  2248         # Set up dummy files for the joystick for now
  2249         if test x$enable_joystick = xyes; then
  2250             AC_DEFINE(SDL_JOYSTICK_DUMMY, 1, [ ])
  2251             SOURCES="$SOURCES $srcdir/src/joystick/dummy/*.c"
  2252             have_joystick=yes
  2253         fi
  2254         # Set up files for the thread library
  2255         if test x$enable_threads = xyes; then
  2256             AC_DEFINE(SDL_THREAD_WINDOWS, 1, [ ])
  2257             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_sysmutex.c"
  2258             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_syssem.c"
  2259             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_systhread.c"
  2260             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
  2261             have_threads=yes
  2262         fi
  2263         # Set up files for the timer library
  2264         if test x$enable_timers = xyes; then
  2265             AC_DEFINE(SDL_TIMER_WINCE, 1, [ ])
  2266             SOURCES="$SOURCES $srcdir/src/timer/wince/*.c"
  2267             have_timers=yes
  2268         fi
  2269         # Set up files for the shared object loading library
  2270         if test x$enable_loadso = xyes; then
  2271             AC_DEFINE(SDL_LOADSO_WINDOWS, 1, [ ])
  2272             SOURCES="$SOURCES $srcdir/src/loadso/windows/*.c"
  2273             have_loadso=yes
  2274         fi
  2275         # Set up the system libraries we need
  2276         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lcoredll -lcommctrl -lmmtimer"
  2277 
  2278 	# mingw32ce library
  2279 	case "$host" in
  2280     	    *-mingw32ce)
  2281     		EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lmingwex"
  2282     		;;
  2283     	    *)
  2284         	;;
  2285 	esac
  2286 
  2287         # The Windows platform requires special setup
  2288         SDLMAIN_SOURCES="$srcdir/src/main/windows/*.c"
  2289         EXTRA_CFLAGS="$EXTRA_CFLAGS -Dmain=SDL_main -D_WIN32_WCE=0x420"
  2290         EXTRA_LDFLAGS="-lSDL2main $EXTRA_LDFLAGS"
  2291         ;;
  2292     *-*-cygwin* | *-*-mingw32*)
  2293         ARCH=win32
  2294         if test "$build" != "$host"; then # cross-compiling
  2295             # Default cross-compile location
  2296             ac_default_prefix=/usr/local/cross-tools/$host
  2297         else
  2298             # Look for the location of the tools and install there
  2299             if test "$BUILD_PREFIX" != ""; then
  2300                 ac_default_prefix=$BUILD_PREFIX
  2301             fi
  2302         fi
  2303         CheckDummyVideo
  2304         CheckDiskAudio
  2305         CheckDummyAudio
  2306         CheckWINDOWS
  2307         CheckWINDOWSGL
  2308         CheckDIRECTX
  2309 
  2310         # Set up the core platform files
  2311         SOURCES="$SOURCES $srcdir/src/core/windows/*.c"
  2312 
  2313         # Set up files for the video library
  2314         if test x$enable_video = xyes; then
  2315             AC_DEFINE(SDL_VIDEO_DRIVER_WINDOWS, 1, [ ])
  2316             SOURCES="$SOURCES $srcdir/src/video/windows/*.c"
  2317             have_video=yes
  2318             AC_ARG_ENABLE(render-d3d,
  2319 AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[default=yes]]]),
  2320                                 , enable_render_d3d=yes)
  2321             if test x$enable_render_d3d = xyes -a x$have_d3d = xyes; then
  2322                 AC_DEFINE(SDL_VIDEO_RENDER_D3D, 1, [ ])
  2323             fi
  2324         fi
  2325         # Set up files for the audio library
  2326         if test x$enable_audio = xyes; then
  2327             AC_DEFINE(SDL_AUDIO_DRIVER_WINMM, 1, [ ])
  2328             SOURCES="$SOURCES $srcdir/src/audio/winmm/*.c"
  2329             if test x$have_dsound = xyes; then
  2330                 AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND, 1, [ ])
  2331                 SOURCES="$SOURCES $srcdir/src/audio/directsound/*.c"
  2332             fi
  2333             if test x$have_xaudio2 = xyes; then
  2334                 AC_DEFINE(SDL_AUDIO_DRIVER_XAUDIO2, 1, [ ])
  2335                 SOURCES="$SOURCES $srcdir/src/audio/xaudio2/*.c"
  2336             fi
  2337             have_audio=yes
  2338         fi
  2339         # Set up files for the joystick library
  2340         if test x$enable_joystick = xyes; then
  2341             if test x$have_dinput = xyes; then
  2342                 AC_DEFINE(SDL_JOYSTICK_DINPUT, 1, [ ])
  2343                 SOURCES="$SOURCES $srcdir/src/joystick/windows/SDL_dxjoystick.c"
  2344                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldinput8 -ldxguid -ldxerr8"
  2345             else
  2346                 AC_DEFINE(SDL_JOYSTICK_WINMM, 1, [ ])
  2347                 SOURCES="$SOURCES $srcdir/src/joystick/windows/SDL_mmjoystick.c"
  2348             fi
  2349             have_joystick=yes
  2350         fi
  2351         if test x$enable_haptic = xyes; then
  2352             if test x$have_dinput = xyes; then
  2353                 AC_DEFINE(SDL_HAPTIC_DINPUT, 1, [ ])
  2354                 SOURCES="$SOURCES $srcdir/src/haptic/windows/SDL_syshaptic.c"
  2355                 have_haptic=yes
  2356             fi
  2357         fi
  2358         if test x$enable_power = xyes; then
  2359             AC_DEFINE(SDL_POWER_WINDOWS, 1, [ ])
  2360             SOURCES="$SOURCES $srcdir/src/power/windows/SDL_syspower.c"
  2361             have_power=yes
  2362         fi
  2363         # Set up files for the thread library
  2364         if test x$enable_threads = xyes; then
  2365             AC_DEFINE(SDL_THREAD_WINDOWS, 1, [ ])
  2366             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_sysmutex.c"
  2367             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_syssem.c"
  2368             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_systhread.c"
  2369             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
  2370             have_threads=yes
  2371         fi
  2372         # Set up files for the timer library
  2373         if test x$enable_timers = xyes; then
  2374             AC_DEFINE(SDL_TIMER_WINDOWS, 1, [ ])
  2375             SOURCES="$SOURCES $srcdir/src/timer/windows/*.c"
  2376             have_timers=yes
  2377         fi
  2378         # Set up files for the shared object loading library
  2379         if test x$enable_loadso = xyes; then
  2380             AC_DEFINE(SDL_LOADSO_WINDOWS, 1, [ ])
  2381             SOURCES="$SOURCES $srcdir/src/loadso/windows/*.c"
  2382             have_loadso=yes
  2383         fi
  2384         # Set up the system libraries we need
  2385         # SDL is unicode, and unicows emulates this on Windows 98/ME
  2386         # You can get this here: http://libunicows.sourceforge.net/
  2387         #EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lunicows"
  2388         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lversion -luuid"
  2389         # The Windows platform requires special setup
  2390         VERSION_SOURCES="$srcdir/src/main/windows/*.rc"
  2391         SDLMAIN_SOURCES="$srcdir/src/main/windows/*.c"
  2392         SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
  2393         SDL_LIBS="-lmingw32 -lSDL2main $SDL_LIBS -mwindows"
  2394         ;;
  2395     *-*-beos* | *-*-haiku*)
  2396         ARCH=beos
  2397         ac_default_prefix=/boot/develop/tools/gnupro
  2398         CheckDummyVideo
  2399         CheckDiskAudio
  2400         CheckDummyAudio
  2401         CheckBWINDOW
  2402         CheckBeGL
  2403         # Set up files for the audio library
  2404         if test x$enable_audio = xyes; then
  2405             AC_DEFINE(SDL_AUDIO_DRIVER_BEOSAUDIO, 1, [ ])
  2406             SOURCES="$SOURCES $srcdir/src/audio/baudio/*.cc"
  2407             have_audio=yes
  2408         fi
  2409         # Set up files for the joystick library
  2410         if test x$enable_joystick = xyes; then
  2411             AC_DEFINE(SDL_JOYSTICK_BEOS, 1, [ ])
  2412             SOURCES="$SOURCES $srcdir/src/joystick/beos/*.cc"
  2413             have_joystick=yes
  2414         fi
  2415         # Set up files for the thread library
  2416         if test x$enable_threads = xyes; then
  2417             AC_DEFINE(SDL_THREAD_BEOS, 1, [ ])
  2418             SOURCES="$SOURCES $srcdir/src/thread/beos/*.c"
  2419             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_sysmutex.c"
  2420             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
  2421             have_threads=yes
  2422         fi
  2423         # Set up files for the timer library
  2424         if test x$enable_timers = xyes; then
  2425             AC_DEFINE(SDL_TIMER_BEOS, 1, [ ])
  2426             SOURCES="$SOURCES $srcdir/src/timer/beos/*.c"
  2427             have_timers=yes
  2428         fi
  2429         # Set up files for the shared object loading library
  2430         if test x$enable_loadso = xyes; then
  2431             AC_DEFINE(SDL_LOADSO_BEOS, 1, [ ])
  2432             SOURCES="$SOURCES $srcdir/src/loadso/beos/*.c"
  2433             have_loadso=yes
  2434         fi
  2435         # Set up files for the system power library
  2436         if test x$enable_power = xyes; then
  2437             AC_DEFINE(SDL_POWER_BEOS, 1, [ ])
  2438             SOURCES="$SOURCES $srcdir/src/power/beos/*.c"
  2439             have_power=yes
  2440         fi
  2441         # The BeOS platform requires special setup.
  2442         SOURCES="$srcdir/src/main/beos/*.cc $SOURCES"
  2443         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding"
  2444         ;;
  2445     *-*-darwin* )
  2446         # This could be either full "Mac OS X", or plain "Darwin" which is
  2447         # just the OS X kernel sans upper layers like Carbon and Cocoa.
  2448         # Next line is broken, and a few files below require Mac OS X (full)
  2449         ARCH=macosx
  2450 
  2451         # Mac OS X builds with both the Carbon and OSX APIs at the moment
  2452         EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_CARBON"
  2453         EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_OSX"
  2454 
  2455         CheckVisibilityHidden
  2456         CheckDummyVideo
  2457         CheckDiskAudio
  2458         CheckDummyAudio
  2459         CheckDLOPEN
  2460         CheckCOCOA
  2461         CheckX11
  2462         CheckMacGL
  2463         CheckOpenGLX11
  2464         CheckPTHREAD
  2465 
  2466         # Good optimization on Mac OS X, yes...
  2467         EXTRA_CFLAGS="$EXTRA_CFLAGS -falign-loops=16"
  2468 
  2469         # Need this or things might misbuild on a G3.
  2470         EXTRA_CFLAGS="$EXTRA_CFLAGS -force_cpusubtype_ALL"
  2471 
  2472         # Set up files for the audio library
  2473         if test x$enable_audio = xyes; then
  2474             AC_DEFINE(SDL_AUDIO_DRIVER_COREAUDIO, 1, [ ])
  2475             SOURCES="$SOURCES $srcdir/src/audio/coreaudio/*.c"
  2476             have_audio=yes
  2477         fi
  2478         # Set up files for the joystick library
  2479         if test x$enable_joystick = xyes; then
  2480             AC_DEFINE(SDL_JOYSTICK_IOKIT, 1, [ ])
  2481             SOURCES="$SOURCES $srcdir/src/joystick/darwin/*.c"
  2482             have_joystick=yes
  2483         fi
  2484         # Set up files for the haptic library
  2485         if test x$enable_haptic = xyes; then
  2486             AC_DEFINE(SDL_HAPTIC_IOKIT, 1, [ ])
  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             AC_DEFINE(SDL_POWER_MACOSX, 1, [ ])
  2494             SOURCES="$SOURCES $srcdir/src/power/macosx/*.c"
  2495             have_power=yes
  2496         fi
  2497         # Set up files for the timer library
  2498         if test x$enable_timers = xyes; then
  2499             AC_DEFINE(SDL_TIMER_UNIX, 1, [ ])
  2500             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  2501             have_timers=yes
  2502         fi
  2503         # Set up additional files for the file library
  2504         if test x$enable_file = xyes; then
  2505             SOURCES="$SOURCES $srcdir/src/file/cocoa/*.m"
  2506         fi
  2507         # The Mac OS X platform requires special setup.
  2508         EXTRA_CFLAGS="$EXTRA_CFLAGS -fpascal-strings"
  2509         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lobjc"
  2510         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Cocoa"
  2511         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Carbon"
  2512         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,IOKit"
  2513         # If audio is used, add the AudioUnit framework
  2514         if test x$enable_audio = xyes; then
  2515             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit"
  2516         fi
  2517         ;;
  2518     *)
  2519         AC_MSG_ERROR([
  2520 *** Unsupported host:  Please add to configure.in
  2521         ])
  2522         ;;
  2523 esac
  2524 
  2525 dnl Do this on all platforms, after everything else.
  2526 CheckWarnAll
  2527 
  2528 # Verify that we have all the platform specific files we need
  2529 
  2530 if test x$have_joystick != xyes; then
  2531     if test x$enable_joystick = xyes; then
  2532         AC_DEFINE(SDL_JOYSTICK_DISABLED, 1, [ ])
  2533     fi
  2534     SOURCES="$SOURCES $srcdir/src/joystick/dummy/*.c"
  2535 fi
  2536 if test x$have_haptic != xyes; then
  2537     if test x$enable_haptic = xyes; then
  2538         AC_DEFINE(SDL_HAPTIC_DISABLED, 1, [ ])
  2539     fi
  2540     SOURCES="$SOURCES $srcdir/src/haptic/dummy/*.c"
  2541 fi
  2542 if test x$have_threads != xyes; then
  2543     if test x$enable_threads = xyes; then
  2544         AC_DEFINE(SDL_THREADS_DISABLED, 1, [ ])
  2545     fi
  2546     SOURCES="$SOURCES $srcdir/src/thread/generic/*.c"
  2547 fi
  2548 if test x$have_timers != xyes; then
  2549     if test x$enable_timers = xyes; then
  2550         AC_DEFINE(SDL_TIMERS_DISABLED, 1, [ ])
  2551     fi
  2552     SOURCES="$SOURCES $srcdir/src/timer/dummy/*.c"
  2553 fi
  2554 if test x$have_loadso != xyes; then
  2555     if test x$enable_loadso = xyes; then
  2556         AC_DEFINE(SDL_LOADSO_DISABLED, 1, [ ])
  2557     fi
  2558     SOURCES="$SOURCES $srcdir/src/loadso/dummy/*.c"
  2559 fi
  2560 if test x$SDLMAIN_SOURCES = x; then
  2561     SDLMAIN_SOURCES="$srcdir/src/main/dummy/*.c"
  2562 fi
  2563 
  2564 OBJECTS=`echo $SOURCES`
  2565 DEPENDS=`echo $SOURCES | tr ' ' '\n'`
  2566 for EXT in asm cc m c S; do
  2567     OBJECTS=`echo "$OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.'$EXT',$(objects)/\1.lo,g'`
  2568     DEPENDS=`echo "$DEPENDS" | sed "s,^\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.$EXT\\$,\\\\
  2569 \\$(objects)/\\2.lo: \\1/\\2.$EXT\\\\
  2570 	\\$(LIBTOOL) --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
  2571 done
  2572 
  2573 VERSION_OBJECTS=`echo $VERSION_SOURCES`
  2574 VERSION_DEPENDS=`echo $VERSION_SOURCES`
  2575 VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'`
  2576 VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.rc,\\\\
  2577 \\$(objects)/\\2.o: \\1/\\2.rc\\\\
  2578 	\\$(WINDRES) \\$< \\$@,g"`
  2579 
  2580 SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
  2581 SDLMAIN_DEPENDS=`echo $SDLMAIN_SOURCES`
  2582 SDLMAIN_OBJECTS=`echo "$SDLMAIN_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.o,g'`
  2583 SDLMAIN_DEPENDS=`echo "$SDLMAIN_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\
  2584 \\$(objects)/\\2.o: \\1/\\2.c\\\\
  2585 	\\$(LIBTOOL) --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
  2586 
  2587 # Set runtime shared library paths as needed
  2588 
  2589 if test "x$enable_rpath" = "xyes"; then
  2590   if test $ARCH = bsdi -o $ARCH = freebsd -o $ARCH = linux -o $ARCH = netbsd; then
  2591     SDL_RLD_FLAGS="-Wl,-rpath,\${libdir}"
  2592   fi
  2593   if test $ARCH = solaris; then
  2594     SDL_RLD_FLAGS="-R\${libdir}"
  2595   fi
  2596 else
  2597   SDL_RLD_FLAGS=""
  2598 fi
  2599 
  2600 SDL_STATIC_LIBS="$SDL_LIBS $EXTRA_LDFLAGS"
  2601 
  2602 dnl Expand the cflags and libraries needed by apps using SDL
  2603 AC_SUBST(SDL_CFLAGS)
  2604 AC_SUBST(SDL_LIBS)
  2605 AC_SUBST(SDL_STATIC_LIBS)
  2606 AC_SUBST(SDL_RLD_FLAGS)
  2607 if test x$enable_shared = xyes; then
  2608     ENABLE_SHARED_TRUE=
  2609     ENABLE_SHARED_FALSE="#"
  2610 else
  2611     ENABLE_SHARED_TRUE="#"
  2612     ENABLE_SHARED_FALSE=
  2613 fi
  2614 if test x$enable_static = xyes; then
  2615     ENABLE_STATIC_TRUE=
  2616     ENABLE_STATIC_FALSE="#"
  2617 else
  2618     ENABLE_STATIC_TRUE="#"
  2619     ENABLE_STATIC_FALSE=
  2620 fi
  2621 AC_SUBST(ENABLE_SHARED_TRUE)
  2622 AC_SUBST(ENABLE_SHARED_FALSE)
  2623 AC_SUBST(ENABLE_STATIC_TRUE)
  2624 AC_SUBST(ENABLE_STATIC_FALSE)
  2625 
  2626 dnl Expand the sources and objects needed to build the library
  2627 AC_SUBST(ac_aux_dir)
  2628 AC_SUBST(INCLUDE)
  2629 AC_SUBST(OBJECTS)
  2630 AC_SUBST(VERSION_OBJECTS)
  2631 AC_SUBST(SDLMAIN_OBJECTS)
  2632 AC_SUBST(BUILD_CFLAGS)
  2633 AC_SUBST(EXTRA_CFLAGS)
  2634 AC_SUBST(BUILD_LDFLAGS)
  2635 AC_SUBST(EXTRA_LDFLAGS)
  2636 AC_SUBST(WINDRES)
  2637 
  2638 cat >Makefile.rules <<__EOF__
  2639 
  2640 # Build rules for objects
  2641 -include \$(OBJECTS:.lo=.d)
  2642 
  2643 # Special dependency for SDL.c, since it depends on SDL_revision.h
  2644 $srcdir/src/SDL.c: update-revision
  2645 $DEPENDS
  2646 $VERSION_DEPENDS
  2647 $SDLMAIN_DEPENDS
  2648 __EOF__
  2649 
  2650 AC_CONFIG_FILES([
  2651     Makefile:Makefile.in:Makefile.rules sdl2-config SDL2.spec sdl2.pc
  2652 ])
  2653 AC_OUTPUT