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