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