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