configure.ac
author Ben Avison <bavison@riscosopen.org>
Thu, 24 Oct 2019 21:12:08 -0400
changeset 13173 de3493dacdaf
parent 13130 502bb7d04f0a
child 13180 60b1290fe381
permissions -rw-r--r--
ARM: Create configure option --enable-arm-simd to govern assembly optimizations
     1 dnl Process this file with autoconf to produce a configure script.
     2 AC_INIT(README.txt)
     3 AC_CONFIG_HEADER(include/SDL_config.h)
     4 AC_CONFIG_AUX_DIR(build-scripts)
     5 AC_CONFIG_MACRO_DIR([acinclude])
     6 
     7 dnl Save the CFLAGS to see whether they were passed in or generated
     8 orig_CFLAGS="$CFLAGS"
     9 
    10 dnl Set various version strings - taken gratefully from the GTk sources
    11 #
    12 # Making releases:
    13 # Edit include/SDL_version.h and change the version, then:
    14 #   SDL_MICRO_VERSION += 1;
    15 #   SDL_INTERFACE_AGE += 1;
    16 #   SDL_BINARY_AGE += 1;
    17 # if any functions have been added, set SDL_INTERFACE_AGE to 0.
    18 # if backwards compatibility has been broken,
    19 # set SDL_BINARY_AGE and SDL_INTERFACE_AGE to 0.
    20 #
    21 SDL_MAJOR_VERSION=2
    22 SDL_MINOR_VERSION=0
    23 SDL_MICRO_VERSION=11
    24 SDL_INTERFACE_AGE=0
    25 SDL_BINARY_AGE=11
    26 SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
    27 
    28 AC_SUBST(SDL_MAJOR_VERSION)
    29 AC_SUBST(SDL_MINOR_VERSION)
    30 AC_SUBST(SDL_MICRO_VERSION)
    31 AC_SUBST(SDL_INTERFACE_AGE)
    32 AC_SUBST(SDL_BINARY_AGE)
    33 AC_SUBST(SDL_VERSION)
    34 
    35 # libtool versioning
    36 LT_INIT([win32-dll])
    37 
    38 LT_RELEASE=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION
    39 LT_CURRENT=`expr $SDL_MICRO_VERSION - $SDL_INTERFACE_AGE`
    40 LT_REVISION=$SDL_INTERFACE_AGE
    41 LT_AGE=`expr $SDL_BINARY_AGE - $SDL_INTERFACE_AGE`
    42 m4_pattern_allow([^LT_])
    43 
    44 AC_SUBST(LT_RELEASE)
    45 AC_SUBST(LT_CURRENT)
    46 AC_SUBST(LT_REVISION)
    47 AC_SUBST(LT_AGE)
    48 
    49 dnl Detect the canonical build and host environments
    50 dnl AC_CANONICAL_HOST
    51 
    52 dnl Check for tools
    53 AC_PROG_LIBTOOL
    54 AC_PROG_CC
    55 AC_PROG_CXX
    56 AC_PROG_INSTALL
    57 AC_PROG_MAKE_SET
    58 AC_CHECK_TOOL(WINDRES, [windres], [:])
    59 PKG_PROG_PKG_CONFIG
    60 
    61 dnl Make sure that srcdir is a full pathname
    62 case "$host" in
    63     *-*-mingw32*)
    64         # Except on msys, where make can't handle full pathnames (bug 1972)
    65         ;;
    66     *)
    67         srcdir=`cd $srcdir && pwd`
    68         ;;
    69 esac
    70 
    71 dnl Set up the compiler and linker flags
    72 INCLUDE="-I$srcdir/include -idirafter $srcdir/src/video/khronos"
    73 if test x$srcdir != x.; then
    74     INCLUDE="-Iinclude $INCLUDE"
    75 elif test -d .hg; then
    76     AC_MSG_ERROR([
    77 *** When building from Mercurial you should configure and build in a
    78     separate directory so you don't clobber SDL_config.h, SDL_revision.h
    79 ])
    80 fi
    81 BASE_CFLAGS=""
    82 BASE_LDFLAGS=""
    83 case "$host" in
    84     *-*-cygwin*)
    85         # We build SDL on cygwin without the UNIX emulation layer
    86         save_CFLAGS="$CFLAGS"
    87         have_no_cygwin=no
    88         AC_MSG_CHECKING(for GCC -mno-cygwin option)
    89         CFLAGS="$save_CFLAGS -mno-cygwin"
    90 
    91         AC_TRY_COMPILE([
    92         ],[
    93         ],[
    94         have_no_cygwin=yes
    95         ])
    96         AC_MSG_RESULT($have_no_cygwin)
    97         CFLAGS="$save_CFLAGS"
    98 
    99         if test x$have_no_cygwin = xyes; then
   100             BASE_CFLAGS="-mno-cygwin"
   101             BASE_LDFLAGS="-mno-cygwin"
   102         fi
   103         BASE_CFLAGS="$BASE_CFLAGS -I/usr/include/mingw"
   104         ;;
   105 esac
   106 # Uncomment the following line if you want to force SDL and applications
   107 # built with it to be compiled for a particular architecture.
   108 #AX_GCC_ARCHFLAG([no], [BASE_CFLAGS="$BASE_CFLAGS $ax_cv_gcc_archflag]")
   109 BUILD_CFLAGS="$CFLAGS $CPPFLAGS -DUSING_GENERATED_CONFIG_H"
   110 # The default optimization for SDL is -O3 (Bug #31)
   111 if test "x$orig_CFLAGS" = x; then
   112     BUILD_CFLAGS=`echo $BUILD_CFLAGS | sed 's/-O2/-O3/'`
   113 fi
   114 EXTRA_CFLAGS="$INCLUDE $BASE_CFLAGS"
   115 BUILD_LDFLAGS="$LDFLAGS"
   116 EXTRA_LDFLAGS="$BASE_LDFLAGS"
   117 ## These are common directories to find software packages
   118 #for path in /usr/freeware /usr/pkg /usr/X11R6 /usr/local; do
   119 #    if test -d $path/include; then
   120 #        EXTRA_CFLAGS="$EXTRA_CFLAGS -I$path/include"
   121 #    fi
   122 #    if test -d $path/lib; then
   123 #        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -L$path/lib"
   124 #    fi
   125 #done
   126 SDL_CFLAGS="$BASE_CFLAGS"
   127 SDL_LIBS="-lSDL2"
   128 if test "x$BASE_LDFLAGS" != x; then
   129     SDL_LIBS="$SDL_LIBS $BASE_LDFLAGS"
   130 fi
   131 if test "x$EXTRA_CFLAGS" != x; then
   132     CPPFLAGS="$CPPFLAGS $EXTRA_CFLAGS"
   133     CFLAGS="$CFLAGS $EXTRA_CFLAGS"
   134 fi
   135 if test "x$EXTRA_LDFLAGS" != x; then
   136     LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS"
   137 fi
   138 
   139 dnl set this to use on systems that use lib64 instead of lib
   140 base_libdir=`echo \${libdir} | sed 's/.*\/\(.*\)/\1/; q'`
   141 
   142 dnl Function to find a library in the compiler search path
   143 find_lib()
   144 {
   145     gcc_bin_path=[`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
   146     gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
   147     env_lib_path=[`echo $LIBS $LDFLAGS $* | sed 's/-L[ ]*//g'`]
   148     if test "$cross_compiling" = yes; then
   149         host_lib_path=""
   150     else
   151         host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
   152     fi
   153     for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
   154         lib=[`ls -- $path/$1 2>/dev/null | sed -e '/\.so\..*\./d' -e 's,.*/,,' | sort | tail -1`]
   155         if test x$lib != x; then
   156             echo $lib
   157             return
   158         fi
   159     done
   160     # Try again, this time allowing more than one version digit after the .so
   161     for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
   162         lib=[`ls -- $path/$1 2>/dev/null | sed -e 's,.*/,,' | sort | tail -1`]
   163         if test x$lib != x; then
   164             echo $lib
   165             return
   166         fi
   167     done
   168 }
   169 
   170 dnl Check for compiler characteristics
   171 AC_C_CONST
   172 AC_C_INLINE
   173 AC_C_VOLATILE
   174 
   175 dnl See whether we want assertions for debugging/sanity checking SDL itself.
   176 AC_ARG_ENABLE(assertions,
   177 AS_HELP_STRING([--enable-assertions],
   178                [Enable internal sanity checks (auto/disabled/release/enabled/paranoid) [[default=auto]]]),
   179               , enable_assertions=auto)
   180 case "$enable_assertions" in
   181     auto) # Use optimization settings to determine assertion level
   182         ;;
   183     disabled)
   184         AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 0, [ ])
   185         ;;
   186     release)
   187         AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 1, [ ])
   188         ;;
   189     enabled)
   190         AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 2, [ ])
   191         ;;
   192     paranoid)
   193         AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 3, [ ])
   194         ;;
   195     *)
   196         AC_MSG_ERROR([*** unknown assertion level. stop.])
   197         ;;
   198 esac
   199 
   200 dnl See whether we can use gcc style dependency tracking
   201 AC_ARG_ENABLE(dependency-tracking,
   202 AS_HELP_STRING([--enable-dependency-tracking],
   203                [Use gcc -MMD -MT dependency tracking [[default=yes]]]),
   204               , enable_dependency_tracking=yes)
   205 if test x$enable_dependency_tracking = xyes; then
   206     have_gcc_mmd_mt=no
   207     AC_MSG_CHECKING(for GCC -MMD -MT option)
   208     AC_TRY_COMPILE([
   209     #if !defined(__GNUC__) || __GNUC__ < 3
   210     #error Dependency tracking requires GCC 3.0 or newer
   211     #endif
   212     ],[
   213     ],[
   214     have_gcc_mmd_mt=yes
   215     ])
   216     AC_MSG_RESULT($have_gcc_mmd_mt)
   217 
   218     if test x$have_gcc_mmd_mt = xyes; then
   219         DEPENDENCY_TRACKING_OPTIONS="-MMD -MT \$@"
   220     fi
   221 fi
   222 
   223 AC_MSG_CHECKING(for linker option --no-undefined)
   224 have_no_undefined=no
   225 case "$host" in
   226     dnl Skip this on platforms where it is just simply busted.
   227     *-*-openbsd*)
   228         ;;
   229 
   230     *)
   231         save_LDFLAGS="$LDFLAGS"
   232         LDFLAGS="$LDFLAGS -Wl,--no-undefined"
   233         AC_TRY_LINK([
   234         ],[
   235         ],[
   236         have_no_undefined=yes
   237         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,--no-undefined"
   238         ])
   239         LDFLAGS="$save_LDFLAGS"
   240         ;;
   241 esac
   242 AC_MSG_RESULT($have_no_undefined)
   243 
   244 AC_MSG_CHECKING(for linker option --dynamicbase)
   245 have_dynamicbase=no
   246 case "$host" in
   247     *)
   248         save_LDFLAGS="$LDFLAGS"
   249         LDFLAGS="$LDFLAGS -Wl,--dynamicbase"
   250         AC_TRY_LINK([
   251         ],[
   252         ],[
   253         have_dynamicbase=yes
   254         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,--dynamicbase"
   255         ])
   256         LDFLAGS="$save_LDFLAGS"
   257         ;;
   258 esac
   259 AC_MSG_RESULT($have_dynamicbase)
   260 
   261 AC_MSG_CHECKING(for linker option --nxcompat)
   262 have_nxcompat=no
   263 case "$host" in
   264     *)
   265         save_LDFLAGS="$LDFLAGS"
   266         LDFLAGS="$LDFLAGS -Wl,--nxcompat"
   267         AC_TRY_LINK([
   268         ],[
   269         ],[
   270         have_nxcompat=yes
   271         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,--nxcompat"
   272         ])
   273         LDFLAGS="$save_LDFLAGS"
   274         ;;
   275 esac
   276 AC_MSG_RESULT($have_nxcompat)
   277 
   278 AC_MSG_CHECKING(for linker option --high-entropy-va)
   279 have_high_entropy_va=no
   280 case "$host" in
   281     *)
   282         save_LDFLAGS="$LDFLAGS"
   283         LDFLAGS="$LDFLAGS -Wl,--high-entropy-va"
   284         AC_TRY_LINK([
   285         ],[
   286         ],[
   287         have_high_entropy_va=yes
   288         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,--high-entropy-va"
   289         ])
   290         LDFLAGS="$save_LDFLAGS"
   291         ;;
   292 esac
   293 AC_MSG_RESULT($have_high_entropy_va)
   294 
   295 dnl See whether we are allowed to use the system C library
   296 AC_ARG_ENABLE(libc,
   297 AS_HELP_STRING([--enable-libc], [Use the system C library [[default=yes]]]),
   298               , enable_libc=yes)
   299 if test x$enable_libc = xyes; then
   300     AC_DEFINE(HAVE_LIBC, 1, [ ])
   301 
   302     dnl Check for C library headers
   303     AC_HEADER_STDC
   304     AC_CHECK_HEADERS(sys/types.h stdio.h stdlib.h stddef.h stdarg.h malloc.h memory.h string.h strings.h wchar.h inttypes.h stdint.h limits.h ctype.h math.h float.h iconv.h signal.h)
   305 
   306     dnl Check for typedefs, structures, etc.
   307     AC_TYPE_SIZE_T
   308 
   309     dnl Check for defines
   310     AC_CHECK_DEFINE(M_PI, math.h)
   311 
   312     dnl Checks for library functions.
   313     case "$host" in
   314     *-*-cygwin* | *-*-mingw32*)
   315         ;;
   316     *)
   317         AC_FUNC_ALLOCA
   318         ;;
   319     esac
   320 
   321     AC_FUNC_MEMCMP
   322     if test x$ac_cv_func_memcmp_working = xyes; then
   323         AC_DEFINE(HAVE_MEMCMP, 1, [ ])
   324     fi
   325     AC_FUNC_STRTOD
   326     if test x$ac_cv_func_strtod = xyes; then
   327         AC_DEFINE(HAVE_STRTOD, 1, [ ])
   328     fi
   329     AC_CHECK_FUNC(mprotect,
   330         AC_TRY_COMPILE([
   331           #include <sys/types.h>
   332           #include <sys/mman.h>
   333         ],[
   334         ],[
   335         AC_DEFINE(HAVE_MPROTECT, 1, [ ])
   336         ]),
   337     )
   338     AC_CHECK_FUNCS(malloc calloc realloc free getenv setenv putenv unsetenv qsort abs bcopy memset memcpy memmove wcslen wcscmp strlen strlcpy strlcat _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp vsscanf vsnprintf fopen64 fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname getauxval poll _Exit)
   339 
   340     AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"])
   341     AC_CHECK_FUNCS(acos acosf asin asinf atan atanf atan2 atan2f ceil ceilf copysign copysignf cos cosf exp expf fabs fabsf floor floorf fmod fmodf log logf log10 log10f pow powf scalbn scalbnf sin sinf sqrt sqrtf tan tanf)
   342 
   343     AC_CHECK_LIB(iconv, iconv_open, [LIBS="$LIBS -liconv"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -liconv"])
   344     AC_CHECK_FUNCS(iconv)
   345 
   346     AC_CHECK_MEMBER(struct sigaction.sa_sigaction,[AC_DEFINE([HAVE_SA_SIGACTION], 1, [ ])], ,[#include <signal.h>])
   347 
   348     dnl Check for additional non-standard headers
   349     AC_CHECK_HEADERS(libunwind.h)
   350 fi
   351 
   352 dnl AC_CHECK_SIZEOF(void*)
   353 
   354 dnl See whether we can use gcc atomic operations on this architecture
   355 AC_ARG_ENABLE(gcc-atomics,
   356 AS_HELP_STRING([--enable-gcc-atomics],
   357                [Use gcc builtin atomics [[default=yes]]]),
   358               , enable_gcc_atomics=yes)
   359 if test x$enable_gcc_atomics = xyes; then
   360     have_gcc_atomics=no
   361     AC_MSG_CHECKING(for GCC builtin atomic operations)
   362     AC_TRY_LINK([
   363     ],[
   364     int a;
   365     void *x, *y, *z;
   366     __sync_lock_test_and_set(&a, 4);
   367     __sync_lock_test_and_set(&x, y);
   368     __sync_fetch_and_add(&a, 1);
   369     __sync_bool_compare_and_swap(&a, 5, 10);
   370     __sync_bool_compare_and_swap(&x, y, z);
   371     ],[
   372     have_gcc_atomics=yes
   373     ])
   374     AC_MSG_RESULT($have_gcc_atomics)
   375 
   376     if test x$have_gcc_atomics = xyes; then
   377         AC_DEFINE(HAVE_GCC_ATOMICS, 1, [ ])
   378     else
   379         # See if we have the minimum operation needed for GCC atomics
   380         AC_TRY_LINK([
   381         ],[
   382         int a;
   383         __sync_lock_test_and_set(&a, 1);
   384         __sync_lock_release(&a);
   385         ],[
   386         have_gcc_sync_lock_test_and_set=yes
   387         ])
   388         if test x$have_gcc_sync_lock_test_and_set = xyes; then
   389             AC_DEFINE(HAVE_GCC_SYNC_LOCK_TEST_AND_SET, 1, [ ])
   390         fi
   391     fi
   392 fi
   393 
   394 # Standard C sources
   395 SOURCES="$SOURCES $srcdir/src/*.c"
   396 SOURCES="$SOURCES $srcdir/src/atomic/*.c"
   397 SOURCES="$SOURCES $srcdir/src/audio/*.c"
   398 SOURCES="$SOURCES $srcdir/src/cpuinfo/*.c"
   399 SOURCES="$SOURCES $srcdir/src/dynapi/*.c"
   400 SOURCES="$SOURCES $srcdir/src/events/*.c"
   401 SOURCES="$SOURCES $srcdir/src/file/*.c"
   402 SOURCES="$SOURCES $srcdir/src/haptic/*.c"
   403 SOURCES="$SOURCES $srcdir/src/joystick/*.c"
   404 SOURCES="$SOURCES $srcdir/src/libm/*.c"
   405 SOURCES="$SOURCES $srcdir/src/power/*.c"
   406 #SOURCES="$SOURCES $srcdir/src/filesystem/*.c"
   407 SOURCES="$SOURCES $srcdir/src/render/*.c"
   408 SOURCES="$SOURCES $srcdir/src/render/*/*.c"
   409 SOURCES="$SOURCES $srcdir/src/sensor/*.c"
   410 SOURCES="$SOURCES $srcdir/src/stdlib/*.c"
   411 SOURCES="$SOURCES $srcdir/src/thread/*.c"
   412 SOURCES="$SOURCES $srcdir/src/timer/*.c"
   413 SOURCES="$SOURCES $srcdir/src/video/*.c"
   414 SOURCES="$SOURCES $srcdir/src/video/yuv2rgb/*.c"
   415 
   416 dnl Enable/disable various subsystems of the SDL library
   417 
   418 AC_ARG_ENABLE(atomic,
   419 AS_HELP_STRING([--enable-atomic], [Enable the atomic operations subsystem [[default=yes]]]),
   420               , enable_atomic=yes)
   421 if test x$enable_atomic != xyes; then
   422     AC_DEFINE(SDL_ATOMIC_DISABLED, 1, [ ])
   423 else
   424     SUMMARY_modules="${SUMMARY_modules} atomic"
   425 fi
   426 AC_ARG_ENABLE(audio,
   427 AS_HELP_STRING([--enable-audio], [Enable the audio subsystem [[default=yes]]]),
   428               , enable_audio=yes)
   429 if test x$enable_audio != xyes; then
   430     AC_DEFINE(SDL_AUDIO_DISABLED, 1, [ ])
   431 else
   432     SUMMARY_modules="${SUMMARY_modules} audio"
   433 fi
   434 AC_ARG_ENABLE(video,
   435 AS_HELP_STRING([--enable-video], [Enable the video subsystem [[default=yes]]]),
   436               , enable_video=yes)
   437 if test x$enable_video != xyes; then
   438     AC_DEFINE(SDL_VIDEO_DISABLED, 1, [ ])
   439 else
   440     SUMMARY_modules="${SUMMARY_modules} video"
   441 fi
   442 AC_ARG_ENABLE(render,
   443 AS_HELP_STRING([--enable-render], [Enable the render subsystem [[default=yes]]]),
   444               , enable_render=yes)
   445 if test x$enable_render != xyes; then
   446     AC_DEFINE(SDL_RENDER_DISABLED, 1, [ ])
   447 else
   448     SUMMARY_modules="${SUMMARY_modules} render"
   449 fi
   450 AC_ARG_ENABLE(events,
   451 AS_HELP_STRING([--enable-events], [Enable the events subsystem [[default=yes]]]),
   452               , enable_events=yes)
   453 if test x$enable_events != xyes; then
   454     AC_DEFINE(SDL_EVENTS_DISABLED, 1, [ ])
   455 else
   456     SUMMARY_modules="${SUMMARY_modules} events"
   457 fi
   458 AC_ARG_ENABLE(joystick,
   459 AS_HELP_STRING([--enable-joystick], [Enable the joystick subsystem [[default=yes]]]),
   460               , enable_joystick=yes)
   461 if test x$enable_joystick != xyes; then
   462     AC_DEFINE(SDL_JOYSTICK_DISABLED, 1, [ ])
   463 else
   464     SUMMARY_modules="${SUMMARY_modules} joystick"
   465 fi
   466 AC_ARG_ENABLE(haptic,
   467 AS_HELP_STRING([--enable-haptic], [Enable the haptic (force feedback) subsystem [[default=yes]]]),
   468               , enable_haptic=yes)
   469 if test x$enable_haptic != xyes; then
   470     AC_DEFINE(SDL_HAPTIC_DISABLED, 1, [ ])
   471 else
   472     SUMMARY_modules="${SUMMARY_modules} haptic"
   473 fi
   474 AC_ARG_ENABLE(sensor,
   475 AS_HELP_STRING([--enable-sensor], [Enable the sensor subsystem [[default=yes]]]),
   476               , enable_sensor=yes)
   477 if test x$enable_sensor != xyes; then
   478     AC_DEFINE(SDL_SENSOR_DISABLED, 1, [ ])
   479 else
   480     SUMMARY_modules="${SUMMARY_modules} sensor"
   481 fi
   482 AC_ARG_ENABLE(power,
   483 AS_HELP_STRING([--enable-power], [Enable the power subsystem [[default=yes]]]),
   484               , enable_power=yes)
   485 if test x$enable_power != xyes; then
   486     AC_DEFINE(SDL_POWER_DISABLED, 1, [ ])
   487 else
   488     SUMMARY_modules="${SUMMARY_modules} power"
   489 fi
   490 AC_ARG_ENABLE(filesystem,
   491 AS_HELP_STRING([--enable-filesystem], [Enable the filesystem subsystem [[default=yes]]]),
   492               , enable_filesystem=yes)
   493 if test x$enable_filesystem != xyes; then
   494     AC_DEFINE(SDL_FILESYSTEM_DISABLED, 1, [ ])
   495 else
   496     SUMMARY_modules="${SUMMARY_modules} filesystem"
   497 fi
   498 AC_ARG_ENABLE(threads,
   499 AS_HELP_STRING([--enable-threads], [Enable the threading subsystem [[default=yes]]]),
   500               , enable_threads=yes)
   501 if test x$enable_threads != xyes; then
   502     AC_DEFINE(SDL_THREADS_DISABLED, 1, [ ])
   503 else
   504     SUMMARY_modules="${SUMMARY_modules} threads"
   505 fi
   506 AC_ARG_ENABLE(timers,
   507 AS_HELP_STRING([--enable-timers], [Enable the timer subsystem [[default=yes]]]),
   508               , enable_timers=yes)
   509 if test x$enable_timers != xyes; then
   510     AC_DEFINE(SDL_TIMERS_DISABLED, 1, [ ])
   511 else
   512     SUMMARY_modules="${SUMMARY_modules} timers"
   513 fi
   514 AC_ARG_ENABLE(file,
   515 AS_HELP_STRING([--enable-file], [Enable the file subsystem [[default=yes]]]),
   516               , enable_file=yes)
   517 if test x$enable_file != xyes; then
   518     AC_DEFINE(SDL_FILE_DISABLED, 1, [ ])
   519 else
   520     SUMMARY_modules="${SUMMARY_modules} file"
   521 fi
   522 AC_ARG_ENABLE(loadso,
   523 AS_HELP_STRING([--enable-loadso], [Enable the shared object loading subsystem [[default=yes]]]),
   524               , enable_loadso=yes)
   525 if test x$enable_loadso != xyes; then
   526     AC_DEFINE(SDL_LOADSO_DISABLED, 1, [ ])
   527 else
   528     SUMMARY_modules="${SUMMARY_modules} loadso"
   529 fi
   530 AC_ARG_ENABLE(cpuinfo,
   531 AS_HELP_STRING([--enable-cpuinfo], [Enable the cpuinfo subsystem [[default=yes]]]),
   532               , enable_cpuinfo=yes)
   533 if test x$enable_cpuinfo != xyes; then
   534     AC_DEFINE(SDL_CPUINFO_DISABLED, 1, [ ])
   535 else
   536     SUMMARY_modules="${SUMMARY_modules} cpuinfo"
   537 fi
   538 AC_ARG_ENABLE(assembly,
   539 AS_HELP_STRING([--enable-assembly], [Enable assembly routines [[default=yes]]]),
   540               , enable_assembly=yes)
   541 if test x$enable_assembly = xyes; then
   542     SUMMARY_modules="${SUMMARY_modules} assembly"
   543 
   544     AC_DEFINE(SDL_ASSEMBLY_ROUTINES, 1, [ ])
   545 
   546     # Make sure that we don't generate floating point code that would
   547     # cause illegal instruction exceptions on older processors
   548     case "$host" in
   549         *-*-darwin*)
   550             # Don't need to worry about Apple hardware, it's all SSE capable
   551             default_ssemath=yes
   552             ;;
   553         *64-*-*)
   554             # x86 64-bit architectures all have SSE instructions
   555             default_ssemath=yes
   556             ;;
   557         *)
   558             default_ssemath=no
   559             ;;
   560     esac
   561     AC_ARG_ENABLE(ssemath,
   562 AS_HELP_STRING([--enable-ssemath], [Allow GCC to use SSE floating point math [[default=maybe]]]),
   563                   , enable_ssemath=$default_ssemath)
   564     if test x$enable_ssemath = xno; then
   565         if test x$have_gcc_sse = xyes -o x$have_gcc_sse2 = xyes -o x$have_gcc_sse3 = xyes; then
   566             EXTRA_CFLAGS="$EXTRA_CFLAGS -mfpmath=387"
   567         fi
   568     fi
   569 
   570     dnl Check for various instruction support
   571     AC_ARG_ENABLE(mmx,
   572 AS_HELP_STRING([--enable-mmx], [use MMX assembly routines [[default=yes]]]),
   573                   , enable_mmx=yes)
   574     if test x$enable_mmx = xyes; then
   575         save_CFLAGS="$CFLAGS"
   576         have_gcc_mmx=no
   577         AC_MSG_CHECKING(for GCC -mmmx option)
   578         mmx_CFLAGS="-mmmx"
   579         CFLAGS="$save_CFLAGS $mmx_CFLAGS"
   580 
   581         AC_TRY_COMPILE([
   582         #ifdef __MINGW32__
   583         #include <_mingw.h>
   584         #ifdef __MINGW64_VERSION_MAJOR
   585         #include <intrin.h>
   586         #else
   587         #include <mmintrin.h>
   588         #endif
   589         #else
   590         #include <mmintrin.h>
   591         #endif
   592         #ifndef __MMX__
   593         #error Assembler CPP flag not enabled
   594         #endif
   595         ],[
   596         ],[
   597         have_gcc_mmx=yes
   598         ])
   599         AC_MSG_RESULT($have_gcc_mmx)
   600         CFLAGS="$save_CFLAGS"
   601 
   602         if test x$have_gcc_mmx = xyes; then
   603             EXTRA_CFLAGS="$EXTRA_CFLAGS $mmx_CFLAGS"
   604             SUMMARY_math="${SUMMARY_math} mmx"
   605         fi
   606     fi
   607 
   608     AC_ARG_ENABLE(3dnow,
   609 AS_HELP_STRING([--enable-3dnow], [use 3DNow! assembly routines [[default=yes]]]),
   610                   , enable_3dnow=yes)
   611     if test x$enable_3dnow = xyes; then
   612         save_CFLAGS="$CFLAGS"
   613         have_gcc_3dnow=no
   614         AC_MSG_CHECKING(for GCC -m3dnow option)
   615         amd3dnow_CFLAGS="-m3dnow"
   616         CFLAGS="$save_CFLAGS $amd3dnow_CFLAGS"
   617 
   618         AC_TRY_LINK([
   619         #include <mm3dnow.h>
   620         #ifndef __3dNOW__
   621         #error Assembler CPP flag not enabled
   622         #endif
   623         ],[
   624         void *p = 0;
   625         _m_prefetch(p);
   626         ],[
   627         have_gcc_3dnow=yes
   628         ])
   629         AC_MSG_RESULT($have_gcc_3dnow)
   630         CFLAGS="$save_CFLAGS"
   631 
   632         if test x$have_gcc_3dnow = xyes; then
   633             EXTRA_CFLAGS="$EXTRA_CFLAGS $amd3dnow_CFLAGS"
   634             SUMMARY_math="${SUMMARY_math} 3dnow"
   635         fi
   636     fi
   637 
   638     AC_ARG_ENABLE(sse,
   639 AS_HELP_STRING([--enable-sse], [use SSE assembly routines [[default=yes]]]),
   640                   , enable_sse=yes)
   641     if test x$enable_sse = xyes; then
   642         save_CFLAGS="$CFLAGS"
   643         have_gcc_sse=no
   644         AC_MSG_CHECKING(for GCC -msse option)
   645         sse_CFLAGS="-msse"
   646         CFLAGS="$save_CFLAGS $sse_CFLAGS"
   647 
   648         AC_TRY_COMPILE([
   649         #ifdef __MINGW32__
   650         #include <_mingw.h>
   651         #ifdef __MINGW64_VERSION_MAJOR
   652         #include <intrin.h>
   653         #else
   654         #include <xmmintrin.h>
   655         #endif
   656         #else
   657         #include <xmmintrin.h>
   658         #endif
   659         #ifndef __SSE__
   660         #error Assembler CPP flag not enabled
   661         #endif
   662         ],[
   663         ],[
   664         have_gcc_sse=yes
   665         ])
   666         AC_MSG_RESULT($have_gcc_sse)
   667         CFLAGS="$save_CFLAGS"
   668 
   669         if test x$have_gcc_sse = xyes; then
   670             EXTRA_CFLAGS="$EXTRA_CFLAGS $sse_CFLAGS"
   671             SUMMARY_math="${SUMMARY_math} sse"
   672         fi
   673     fi
   674 
   675     AC_ARG_ENABLE(sse2,
   676 AS_HELP_STRING([--enable-sse2], [use SSE2 assembly routines [[default=maybe]]]),
   677                   , enable_sse2=$default_ssemath)
   678     if test x$enable_sse2 = xyes; then
   679         save_CFLAGS="$CFLAGS"
   680         have_gcc_sse2=no
   681         AC_MSG_CHECKING(for GCC -msse2 option)
   682         sse2_CFLAGS="-msse2"
   683         CFLAGS="$save_CFLAGS $sse2_CFLAGS"
   684 
   685         AC_TRY_COMPILE([
   686         #ifdef __MINGW32__
   687         #include <_mingw.h>
   688         #ifdef __MINGW64_VERSION_MAJOR
   689         #include <intrin.h>
   690         #else
   691         #include <emmintrin.h>
   692         #endif
   693         #else
   694         #include <emmintrin.h>
   695         #endif
   696         #ifndef __SSE2__
   697         #error Assembler CPP flag not enabled
   698         #endif
   699         ],[
   700         ],[
   701         have_gcc_sse2=yes
   702         ])
   703         AC_MSG_RESULT($have_gcc_sse2)
   704         CFLAGS="$save_CFLAGS"
   705 
   706         if test x$have_gcc_sse2 = xyes; then
   707             EXTRA_CFLAGS="$EXTRA_CFLAGS $sse2_CFLAGS"
   708             SUMMARY_math="${SUMMARY_math} sse2"
   709         fi
   710     fi
   711 
   712     AC_ARG_ENABLE(sse3,
   713 AS_HELP_STRING([--enable-sse3], [use SSE3 assembly routines [[default=maybe]]]),
   714                   , enable_sse3=$default_ssemath)
   715     if test x$enable_sse3 = xyes; then
   716         save_CFLAGS="$CFLAGS"
   717         have_gcc_sse3=no
   718         AC_MSG_CHECKING(for GCC -msse3 option)
   719         sse3_CFLAGS="-msse3"
   720         CFLAGS="$save_CFLAGS $sse3_CFLAGS"
   721 
   722         AC_TRY_COMPILE([
   723         #ifdef __MINGW32__
   724         #include <_mingw.h>
   725         #ifdef __MINGW64_VERSION_MAJOR
   726         #include <intrin.h>
   727         #else
   728         #include <pmmintrin.h>
   729         #endif
   730         #else
   731         #include <pmmintrin.h>
   732         #endif
   733         #ifndef __SSE2__
   734         #error Assembler CPP flag not enabled
   735         #endif
   736         ],[
   737         ],[
   738         have_gcc_sse3=yes
   739         ])
   740         AC_MSG_RESULT($have_gcc_sse3)
   741         CFLAGS="$save_CFLAGS"
   742 
   743         if test x$have_gcc_sse3 = xyes; then
   744             EXTRA_CFLAGS="$EXTRA_CFLAGS $sse3_CFLAGS"
   745             SUMMARY_math="${SUMMARY_math} sse3"
   746         fi
   747     fi
   748 
   749     AC_CHECK_HEADER(immintrin.h,
   750                     have_immintrin_h_hdr=yes,
   751                     have_immintrin_h_hdr=no)
   752     if test x$have_immintrin_h_hdr = xyes; then
   753         AC_DEFINE(HAVE_IMMINTRIN_H, 1, [ ])
   754     fi
   755 
   756     AC_ARG_ENABLE(altivec,
   757 AS_HELP_STRING([--enable-altivec], [use Altivec assembly routines [[default=yes]]]),
   758                   , enable_altivec=yes)
   759     if test x$enable_altivec = xyes; then
   760         save_CFLAGS="$CFLAGS"
   761         have_gcc_altivec=no
   762         have_altivec_h_hdr=no
   763         altivec_CFLAGS="-maltivec"
   764         CFLAGS="$save_CFLAGS $altivec_CFLAGS"
   765 
   766         AC_MSG_CHECKING(for Altivec with GCC altivec.h and -maltivec option)
   767         AC_TRY_COMPILE([
   768         #include <altivec.h>
   769         vector unsigned int vzero() {
   770             return vec_splat_u32(0);
   771         }
   772         ],[
   773         ],[
   774         have_gcc_altivec=yes
   775         have_altivec_h_hdr=yes
   776         ])
   777         AC_MSG_RESULT($have_gcc_altivec)
   778 
   779         if test x$have_gcc_altivec = xno; then
   780             AC_MSG_CHECKING(for Altivec with GCC -maltivec option)
   781             AC_TRY_COMPILE([
   782             vector unsigned int vzero() {
   783                 return vec_splat_u32(0);
   784             }
   785             ],[
   786             ],[
   787             have_gcc_altivec=yes
   788             ])
   789             AC_MSG_RESULT($have_gcc_altivec)
   790         fi
   791 
   792         if test x$have_gcc_altivec = xno; then
   793             AC_MSG_CHECKING(for Altivec with GCC altivec.h and -faltivec option)
   794             altivec_CFLAGS="-faltivec"
   795             CFLAGS="$save_CFLAGS $altivec_CFLAGS"
   796             AC_TRY_COMPILE([
   797             #include <altivec.h>
   798             vector unsigned int vzero() {
   799                 return vec_splat_u32(0);
   800             }
   801             ],[
   802             ],[
   803             have_gcc_altivec=yes
   804             have_altivec_h_hdr=yes
   805             ])
   806             AC_MSG_RESULT($have_gcc_altivec)
   807         fi
   808 
   809         if test x$have_gcc_altivec = xno; then
   810             AC_MSG_CHECKING(for Altivec with GCC -faltivec option)
   811             AC_TRY_COMPILE([
   812             vector unsigned int vzero() {
   813                 return vec_splat_u32(0);
   814             }
   815             ],[
   816             ],[
   817             have_gcc_altivec=yes
   818             ])
   819             AC_MSG_RESULT($have_gcc_altivec)
   820         fi
   821         CFLAGS="$save_CFLAGS"
   822 
   823         if test x$have_gcc_altivec = xyes; then
   824             AC_DEFINE(SDL_ALTIVEC_BLITTERS, 1, [ ])
   825             if test x$have_altivec_h_hdr = xyes; then
   826               AC_DEFINE(HAVE_ALTIVEC_H, 1, [ ])
   827             fi
   828             EXTRA_CFLAGS="$EXTRA_CFLAGS $altivec_CFLAGS"
   829             SUMMARY_math="${SUMMARY_math} altivec"
   830         fi
   831     fi
   832 fi
   833 
   834 dnl See if the OSS audio interface is supported
   835 CheckOSS()
   836 {
   837     AC_ARG_ENABLE(oss,
   838 AS_HELP_STRING([--enable-oss], [support the OSS audio API [[default=maybe]]]),
   839                   , enable_oss=maybe)
   840 
   841     # OpenBSD "has" OSS, but it's not really for app use. They want you to
   842     #  use sndio instead. So on there, we default to disabled. You can force
   843     #  it on if you really want, though.
   844     if test x$enable_oss = xmaybe; then
   845         enable_oss=yes
   846         case "$host" in
   847             *-*-openbsd*)
   848                 enable_oss=no;;
   849         esac
   850     fi
   851 
   852     if test x$enable_audio = xyes -a x$enable_oss = xyes; then
   853         AC_MSG_CHECKING(for OSS audio support)
   854         have_oss=no
   855         if test x$have_oss != xyes; then
   856             AC_TRY_COMPILE([
   857               #include <sys/soundcard.h>
   858             ],[
   859               int arg = SNDCTL_DSP_SETFRAGMENT;
   860             ],[
   861             have_oss=yes
   862             ])
   863         fi
   864         if test x$have_oss != xyes; then
   865             AC_TRY_COMPILE([
   866               #include <soundcard.h>
   867             ],[
   868               int arg = SNDCTL_DSP_SETFRAGMENT;
   869             ],[
   870             have_oss=yes
   871             AC_DEFINE(SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H, 1, [ ])
   872             ])
   873         fi
   874         AC_MSG_RESULT($have_oss)
   875         if test x$have_oss = xyes; then
   876             SUMMARY_audio="${SUMMARY_audio} oss"
   877             AC_DEFINE(SDL_AUDIO_DRIVER_OSS, 1, [ ])
   878             SOURCES="$SOURCES $srcdir/src/audio/dsp/*.c"
   879             have_audio=yes
   880 
   881             # We may need to link with ossaudio emulation library
   882             case "$host" in
   883                 *-*-openbsd*|*-*-netbsd*)
   884                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lossaudio";;
   885             esac
   886         fi
   887     fi
   888 }
   889 
   890 dnl See if the ALSA audio interface is supported
   891 CheckALSA()
   892 {
   893     AC_ARG_ENABLE(alsa,
   894 AS_HELP_STRING([--enable-alsa], [support the ALSA audio API [[default=yes]]]),
   895                   , enable_alsa=yes)
   896     if test x$enable_audio = xyes -a x$enable_alsa = xyes; then
   897         AM_PATH_ALSA(1.0.11, have_alsa=yes, have_alsa=no)
   898         # Restore all flags from before the ALSA detection runs
   899         CFLAGS="$alsa_save_CFLAGS"
   900         LDFLAGS="$alsa_save_LDFLAGS"
   901         LIBS="$alsa_save_LIBS"
   902         if test x$have_alsa = xyes; then
   903             AC_ARG_ENABLE(alsa-shared,
   904 AS_HELP_STRING([--enable-alsa-shared], [dynamically load ALSA audio support [[default=yes]]]),
   905                           , enable_alsa_shared=yes)
   906             alsa_lib=[`find_lib "libasound.so.*" "$ALSA_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   907 
   908             AC_DEFINE(SDL_AUDIO_DRIVER_ALSA, 1, [ ])
   909             SOURCES="$SOURCES $srcdir/src/audio/alsa/*.c"
   910             EXTRA_CFLAGS="$EXTRA_CFLAGS $ALSA_CFLAGS"
   911             if test x$have_loadso != xyes && \
   912                test x$enable_alsa_shared = xyes; then
   913                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ALSA loading])
   914             fi
   915             if test x$have_loadso = xyes && \
   916                test x$enable_alsa_shared = xyes && test x$alsa_lib != x; then
   917                 echo "-- dynamic libasound -> $alsa_lib"
   918                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ALSA_DYNAMIC, "$alsa_lib", [ ])
   919                 SUMMARY_audio="${SUMMARY_audio} alsa(dynamic)"
   920             else
   921                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ALSA_LIBS"
   922                 SUMMARY_audio="${SUMMARY_audio} alsa"
   923             fi
   924             have_audio=yes
   925         fi
   926     fi
   927 }
   928 
   929 dnl Find JACK Audio
   930 CheckJACK()
   931 {
   932     AC_ARG_ENABLE(jack,
   933 AS_HELP_STRING([--enable-jack], [use JACK audio [[default=yes]]]),
   934                   , enable_jack=yes)
   935     if test x$enable_audio = xyes -a x$enable_jack = xyes; then
   936         PKG_CHECK_MODULES([JACK], [jack >= 0.125], audio_jack=yes, audio_jack=no)
   937 
   938         if test x$audio_jack = xyes; then
   939             AC_ARG_ENABLE(jack-shared,
   940 AS_HELP_STRING([--enable-jack-shared], [dynamically load JACK audio support [[default=yes]]]),
   941                           , enable_jack_shared=yes)
   942             jack_lib=[`find_lib "libjack.so.*" "$JACK_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   943 
   944             AC_DEFINE(SDL_AUDIO_DRIVER_JACK, 1, [ ])
   945             SOURCES="$SOURCES $srcdir/src/audio/jack/*.c"
   946             EXTRA_CFLAGS="$EXTRA_CFLAGS $JACK_CFLAGS"
   947             if test x$have_loadso != xyes && \
   948                test x$enable_jack_shared = xyes; then
   949                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic JACK audio loading])
   950             fi
   951             if test x$have_loadso = xyes && \
   952                test x$enable_jack_shared = xyes && test x$jack_lib != x; then
   953                 echo "-- dynamic libjack -> $jack_lib"
   954                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_JACK_DYNAMIC, "$jack_lib", [ ])
   955                 SUMMARY_audio="${SUMMARY_audio} jack(dynamic)"
   956 
   957                 case "$host" in
   958                     # On Solaris, jack must be linked deferred explicitly
   959                     # to prevent undefined symbol failures.
   960                     *-*-solaris*)
   961                         JACK_LIBS=`echo $JACK_LIBS | sed 's/\-l/-Wl,-l/g'`
   962                         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-zdeferred $JACK_LIBS -Wl,-znodeferred"
   963                 esac
   964             else
   965                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $JACK_LIBS"
   966                 SUMMARY_audio="${SUMMARY_audio} jack"
   967             fi
   968             have_audio=yes
   969         fi
   970     fi
   971 }
   972 
   973 dnl Find the ESD includes and libraries
   974 CheckESD()
   975 {
   976     AC_ARG_ENABLE(esd,
   977 AS_HELP_STRING([--enable-esd], [support the Enlightened Sound Daemon [[default=yes]]]),
   978                   , enable_esd=yes)
   979     if test x$enable_audio = xyes -a x$enable_esd = xyes; then
   980         AM_PATH_ESD(0.2.8, have_esd=yes, have_esd=no)
   981         if test x$have_esd = xyes; then
   982             AC_ARG_ENABLE(esd-shared,
   983 AS_HELP_STRING([--enable-esd-shared], [dynamically load ESD audio support [[default=yes]]]),
   984                           , enable_esd_shared=yes)
   985             esd_lib=[`find_lib "libesd.so.*" "$ESD_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   986 
   987             AC_DEFINE(SDL_AUDIO_DRIVER_ESD, 1, [ ])
   988             SOURCES="$SOURCES $srcdir/src/audio/esd/*.c"
   989             EXTRA_CFLAGS="$EXTRA_CFLAGS $ESD_CFLAGS"
   990             if test x$have_loadso != xyes && \
   991                test x$enable_esd_shared = xyes; then
   992                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ESD loading])
   993             fi
   994             if test x$have_loadso = xyes && \
   995                test x$enable_esd_shared = xyes && test x$esd_lib != x; then
   996                 echo "-- dynamic libesd -> $esd_lib"
   997                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ESD_DYNAMIC, "$esd_lib", [ ])
   998                 SUMMARY_audio="${SUMMARY_audio} esd(dynamic)"
   999             else
  1000                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ESD_LIBS"
  1001                 SUMMARY_audio="${SUMMARY_audio} esd"
  1002             fi
  1003             have_audio=yes
  1004         fi
  1005     fi
  1006 }
  1007 
  1008 dnl Find PulseAudio
  1009 CheckPulseAudio()
  1010 {
  1011     AC_ARG_ENABLE(pulseaudio,
  1012 AS_HELP_STRING([--enable-pulseaudio], [use PulseAudio [[default=yes]]]),
  1013                   , enable_pulseaudio=yes)
  1014     if test x$enable_audio = xyes -a x$enable_pulseaudio = xyes; then
  1015         PKG_CHECK_MODULES([PULSEAUDIO], [libpulse-simple >= 0.9], audio_pulseaudio=yes, audio_pulseaudio=no)
  1016 
  1017         if test x$audio_pulseaudio = xyes; then
  1018             AC_ARG_ENABLE(pulseaudio-shared,
  1019 AS_HELP_STRING([--enable-pulseaudio-shared], [dynamically load PulseAudio support [[default=yes]]]),
  1020                           , enable_pulseaudio_shared=yes)
  1021             pulseaudio_lib=[`find_lib "libpulse-simple.so.*" "$PULSEAUDIO_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
  1022 
  1023             AC_DEFINE(SDL_AUDIO_DRIVER_PULSEAUDIO, 1, [ ])
  1024             SOURCES="$SOURCES $srcdir/src/audio/pulseaudio/*.c"
  1025             EXTRA_CFLAGS="$EXTRA_CFLAGS $PULSEAUDIO_CFLAGS"
  1026             if test x$have_loadso != xyes && \
  1027                test x$enable_pulseaudio_shared = xyes; then
  1028                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic PulseAudio loading])
  1029             fi
  1030             if test x$have_loadso = xyes && \
  1031                test x$enable_pulseaudio_shared = xyes && test x$pulseaudio_lib != x; then
  1032                 echo "-- dynamic libpulse-simple -> $pulseaudio_lib"
  1033                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC, "$pulseaudio_lib", [ ])
  1034                 SUMMARY_audio="${SUMMARY_audio} pulse(dynamic)"
  1035 
  1036                 case "$host" in
  1037                     # On Solaris, pulseaudio must be linked deferred explicitly
  1038                     # to prevent undefined symbol failures.
  1039                     *-*-solaris*)
  1040                         PULSEAUDIO_LIBS=`echo $PULSEAUDIO_LIBS | sed 's/\-l/-Wl,-l/g'`
  1041                         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-zdeferred $PULSEAUDIO_LIBS -Wl,-znodeferred"
  1042                 esac
  1043             else
  1044                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PULSEAUDIO_LIBS"
  1045                 SUMMARY_audio="${SUMMARY_audio} pulse"
  1046             fi
  1047             have_audio=yes
  1048         fi
  1049     fi
  1050 }
  1051 
  1052 CheckARTSC()
  1053 {
  1054     AC_ARG_ENABLE(arts,
  1055 AS_HELP_STRING([--enable-arts], [support the Analog Real Time Synthesizer [[default=yes]]]),
  1056                   , enable_arts=yes)
  1057     if test x$enable_audio = xyes -a x$enable_arts = xyes; then
  1058         AC_PATH_PROG(ARTSCONFIG, artsc-config)
  1059         if test x$ARTSCONFIG = x -o x$ARTSCONFIG = x'"$ARTSCONFIG"'; then
  1060             : # arts isn't installed
  1061         else
  1062             ARTS_CFLAGS=`$ARTSCONFIG --cflags`
  1063             ARTS_LIBS=`$ARTSCONFIG --libs`
  1064             AC_MSG_CHECKING(for aRts development environment)
  1065             audio_arts=no
  1066             save_CFLAGS="$CFLAGS"
  1067             CFLAGS="$CFLAGS $ARTS_CFLAGS"
  1068             AC_TRY_COMPILE([
  1069              #include <artsc.h>
  1070             ],[
  1071              arts_stream_t stream;
  1072             ],[
  1073             audio_arts=yes
  1074             ])
  1075             CFLAGS="$save_CFLAGS"
  1076             AC_MSG_RESULT($audio_arts)
  1077             if test x$audio_arts = xyes; then
  1078                 AC_ARG_ENABLE(arts-shared,
  1079 AS_HELP_STRING([--enable-arts-shared], [dynamically load aRts audio support [[default=yes]]]),
  1080                               , enable_arts_shared=yes)
  1081                 arts_lib=[`find_lib "libartsc.so.*" "$ARTS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
  1082 
  1083                 AC_DEFINE(SDL_AUDIO_DRIVER_ARTS, 1, [ ])
  1084                 SOURCES="$SOURCES $srcdir/src/audio/arts/*.c"
  1085                 EXTRA_CFLAGS="$EXTRA_CFLAGS $ARTS_CFLAGS"
  1086                 if test x$have_loadso != xyes && \
  1087                    test x$enable_arts_shared = xyes; then
  1088                     AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ARTS loading])
  1089                 fi
  1090                 if test x$have_loadso = xyes && \
  1091                    test x$enable_arts_shared = xyes && test x$arts_lib != x; then
  1092                     echo "-- dynamic libartsc -> $arts_lib"
  1093                     AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ARTS_DYNAMIC, "$arts_lib", [ ])
  1094                     SUMMARY_audio="${SUMMARY_audio} arts(dynamic)"
  1095                 else
  1096                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ARTS_LIBS"
  1097                     SUMMARY_audio="${SUMMARY_audio} arts"
  1098                 fi
  1099                 have_audio=yes
  1100             fi
  1101         fi
  1102     fi
  1103 }
  1104 
  1105 dnl See if the NAS audio interface is supported
  1106 CheckNAS()
  1107 {
  1108     AC_ARG_ENABLE(nas,
  1109 AS_HELP_STRING([--enable-nas], [support the NAS audio API [[default=yes]]]),
  1110                   , enable_nas=yes)
  1111     if test x$enable_audio = xyes -a x$enable_nas = xyes; then
  1112         AC_CHECK_HEADER(audio/audiolib.h, have_nas_hdr=yes)
  1113         AC_CHECK_LIB(audio, AuOpenServer, have_nas_lib=yes)
  1114 
  1115         AC_MSG_CHECKING(for NAS audio support)
  1116         have_nas=no
  1117 
  1118         if test x$have_nas_hdr = xyes -a x$have_nas_lib = xyes; then
  1119             have_nas=yes
  1120             NAS_LIBS="-laudio"
  1121 
  1122         elif test -r /usr/X11R6/include/audio/audiolib.h; then
  1123             have_nas=yes
  1124             NAS_CFLAGS="-I/usr/X11R6/include/"
  1125             NAS_LIBS="-L/usr/X11R6/lib -laudio -lXt"
  1126 
  1127         fi
  1128 
  1129         AC_MSG_RESULT($have_nas)
  1130 
  1131         if test x$have_nas = xyes; then
  1132             AC_ARG_ENABLE(nas-shared,
  1133 AS_HELP_STRING([--enable-nas-shared], [dynamically load NAS audio support [[default=yes]]]),
  1134                           , enable_nas_shared=yes)
  1135             nas_lib=[`find_lib "libaudio.so.*" "$NAS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
  1136 
  1137             if test x$have_loadso != xyes && \
  1138                test x$enable_nas_shared = xyes; then
  1139                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic NAS loading])
  1140             fi
  1141             if test x$have_loadso = xyes && \
  1142                test x$enable_nas_shared = xyes && test x$nas_lib != x; then
  1143                 echo "-- dynamic libaudio -> $nas_lib"
  1144                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_NAS_DYNAMIC, "$nas_lib", [ ])
  1145                 SUMMARY_audio="${SUMMARY_audio} nas(dynamic)"
  1146             else
  1147                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $NAS_LIBS"
  1148                 SUMMARY_audio="${SUMMARY_audio} nas"
  1149             fi
  1150 
  1151             AC_DEFINE(SDL_AUDIO_DRIVER_NAS, 1, [ ])
  1152             SOURCES="$SOURCES $srcdir/src/audio/nas/*.c"
  1153             EXTRA_CFLAGS="$EXTRA_CFLAGS $NAS_CFLAGS"
  1154             have_audio=yes
  1155         fi
  1156     fi
  1157 }
  1158 
  1159 dnl See if the sndio audio interface is supported
  1160 CheckSNDIO()
  1161 {
  1162     AC_ARG_ENABLE(sndio,
  1163 AS_HELP_STRING([--enable-sndio], [support the sndio audio API [[default=yes]]]),
  1164                   , enable_sndio=yes)
  1165     if test x$enable_audio = xyes -a x$enable_sndio = xyes; then
  1166         AC_CHECK_HEADER(sndio.h, have_sndio_hdr=yes)
  1167         AC_CHECK_LIB(sndio, sio_open, have_sndio_lib=yes)
  1168 
  1169         AC_MSG_CHECKING(for sndio audio support)
  1170         have_sndio=no
  1171 
  1172         if test x$have_sndio_hdr = xyes -a x$have_sndio_lib = xyes; then
  1173             have_sndio=yes
  1174             SNDIO_LIBS="-lsndio"
  1175         fi
  1176 
  1177         AC_MSG_RESULT($have_sndio)
  1178 
  1179         if test x$have_sndio = xyes; then
  1180             AC_ARG_ENABLE(sndio-shared,
  1181 AS_HELP_STRING([--enable-sndio-shared], [dynamically load sndio audio support [[default=yes]]]),
  1182                           , enable_sndio_shared=yes)
  1183             sndio_lib=[`find_lib "libsndio.so.*" "$SNDIO_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
  1184 
  1185             if test x$have_loadso != xyes && \
  1186                test x$enable_sndio_shared = xyes; then
  1187                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic sndio loading])
  1188             fi
  1189             if test x$have_loadso = xyes && \
  1190                test x$enable_sndio_shared = xyes && test x$sndio_lib != x; then
  1191                 echo "-- dynamic libsndio -> $sndio_lib"
  1192                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_SNDIO_DYNAMIC, "$sndio_lib", [ ])
  1193                 SUMMARY_audio="${SUMMARY_audio} sndio(dynamic)"
  1194             else
  1195                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $SNDIO_LIBS"
  1196                 SUMMARY_audio="${SUMMARY_audio} sndio"
  1197             fi
  1198 
  1199             AC_DEFINE(SDL_AUDIO_DRIVER_SNDIO, 1, [ ])
  1200             SOURCES="$SOURCES $srcdir/src/audio/sndio/*.c"
  1201             EXTRA_CFLAGS="$EXTRA_CFLAGS $SNDIO_CFLAGS"
  1202             have_audio=yes
  1203         fi
  1204     fi
  1205 }
  1206 
  1207 dnl Find FusionSound
  1208 CheckFusionSound()
  1209 {
  1210     AC_ARG_ENABLE(fusionsound,
  1211 AS_HELP_STRING([--enable-fusionsound], [use FusionSound audio driver [[default=no]]]),
  1212                   , enable_fusionsound=no)
  1213     if test x$enable_audio = xyes -a x$enable_fusionsound = xyes; then
  1214         PKG_CHECK_MODULES([FUSIONSOUND], [fusionsound >= 1.1.1], fusionsound=yes, fusionsound=no)
  1215 
  1216         if test x$fusionsound = xyes; then
  1217             AC_DEFINE(SDL_AUDIO_DRIVER_FUSIONSOUND, 1, [ ])
  1218             SOURCES="$SOURCES $srcdir/src/audio/fusionsound/*.c"
  1219             EXTRA_CFLAGS="$EXTRA_CFLAGS $FUSIONSOUND_CFLAGS"
  1220             
  1221             AC_ARG_ENABLE(fusionsound-shared,
  1222 AS_HELP_STRING([--enable-fusionsound-shared], [dynamically load fusionsound audio support [[default=yes]]]),
  1223                           , enable_fusionsound_shared=yes)
  1224             fusionsound_shared=no
  1225             AC_MSG_CHECKING(for FusionSound dynamic loading support)
  1226             if test x$have_loadso != xyes && \
  1227                test x$enable_fusionsound_shared = xyes; then
  1228                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic fusionsound loading])
  1229             fi
  1230             if test x$have_loadso = xyes && \
  1231                test x$enable_fusionsound_shared = xyes; then
  1232                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC, "libfusionsound.so", [ ])
  1233                 fusionsound_shared=yes
  1234                 SUMMARY_audio="${SUMMARY_audio} fusionsound(dynamic)"
  1235             else
  1236                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $FUSIONSOUND_LIBS"
  1237                 SUMMARY_audio="${SUMMARY_audio} fusionsound"
  1238             fi
  1239             AC_MSG_RESULT($fusionsound_shared)
  1240             
  1241             have_audio=yes
  1242         fi
  1243     fi
  1244 }
  1245 
  1246 dnl rcg07142001 See if the user wants the disk writer audio driver...
  1247 CheckDiskAudio()
  1248 {
  1249     AC_ARG_ENABLE(diskaudio,
  1250 AS_HELP_STRING([--enable-diskaudio], [support the disk writer audio driver [[default=yes]]]),
  1251                   , enable_diskaudio=yes)
  1252     if test x$enable_audio = xyes -a x$enable_diskaudio = xyes; then
  1253         AC_DEFINE(SDL_AUDIO_DRIVER_DISK, 1, [ ])
  1254         SOURCES="$SOURCES $srcdir/src/audio/disk/*.c"
  1255         SUMMARY_audio="${SUMMARY_audio} disk"
  1256     fi
  1257 }
  1258 
  1259 dnl rcg03142006 See if the user wants the dummy audio driver...
  1260 CheckDummyAudio()
  1261 {
  1262     AC_ARG_ENABLE(dummyaudio,
  1263 AS_HELP_STRING([--enable-dummyaudio], [support the dummy audio driver [[default=yes]]]),
  1264                   , enable_dummyaudio=yes)
  1265     if test x$enable_audio = xyes -a x$enable_dummyaudio = xyes; then
  1266         AC_DEFINE(SDL_AUDIO_DRIVER_DUMMY, 1, [ ])
  1267         SOURCES="$SOURCES $srcdir/src/audio/dummy/*.c"
  1268         SUMMARY_audio="${SUMMARY_audio} dummy"
  1269     fi
  1270 }
  1271 
  1272 dnl See if libsamplerate is available
  1273 CheckLibSampleRate()
  1274 {
  1275     AC_ARG_ENABLE(libsamplerate,
  1276 AS_HELP_STRING([--enable-libsamplerate], [use libsamplerate for audio rate conversion [[default=yes]]]),
  1277                   , enable_libsamplerate=yes)
  1278     if test x$enable_libsamplerate = xyes; then
  1279         AC_CHECK_HEADER(samplerate.h,
  1280                         have_samplerate_h_hdr=yes,
  1281                         have_samplerate_h_hdr=no)
  1282         if test x$have_samplerate_h_hdr = xyes; then
  1283             AC_DEFINE(HAVE_LIBSAMPLERATE_H, 1, [ ])
  1284 
  1285             AC_ARG_ENABLE(libsamplerate-shared,
  1286 AS_HELP_STRING([--enable-libsamplerate-shared], [dynamically load libsamplerate [[default=yes]]]),
  1287                           , enable_libsamplerate_shared=yes)
  1288 
  1289             samplerate_lib=[`find_lib "libsamplerate.so.*" "" | sed 's/.*\/\(.*\)/\1/; q'`]
  1290 
  1291             if test x$have_loadso != xyes && \
  1292                test x$enable_libsamplerate_shared = xyes; then
  1293                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic libsamplerate loading])
  1294             fi
  1295             if test x$have_loadso = xyes && \
  1296                test x$enable_libsamplerate_shared = xyes && test x$samplerate_lib != x; then
  1297                 echo "-- dynamic libsamplerate -> $samplerate_lib"
  1298                 AC_DEFINE_UNQUOTED(SDL_LIBSAMPLERATE_DYNAMIC, "$samplerate_lib", [ ])
  1299             else
  1300                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lsamplerate"
  1301             fi
  1302         fi
  1303     fi
  1304 }
  1305 
  1306 dnl Check for ARM instruction support using gas syntax
  1307 CheckARM()
  1308 {
  1309     AC_ARG_ENABLE(arm-simd,
  1310 AC_HELP_STRING([--enable-arm-simd], [use SIMD assembly blitters on ARM [[default=yes]]]),
  1311                   enable_arm_simd=$enableval, enable_arm_simd=yes)
  1312     if test x$enable_video = xyes -a x$enable_assembly = xyes -a x$enable_arm_simd = xyes; then
  1313         save_CFLAGS="$CFLAGS"
  1314         have_arm_simd=no
  1315         CFLAGS="-x assembler-with-cpp $CFLAGS"
  1316         
  1317         AC_MSG_CHECKING(for ARM SIMD)
  1318         AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
  1319         .text
  1320         .arch armv6
  1321         .object_arch armv4
  1322         .arm
  1323         .altmacro
  1324         #ifndef __ARM_EABI__
  1325         #error EABI is required (to be sure that calling conventions are compatible)
  1326         #endif
  1327         pld [r0]
  1328         uqadd8 r0, r0, r0
  1329         ]])], have_arm_simd=yes)
  1330         AC_MSG_RESULT($have_arm_simd)
  1331         
  1332         CFLAGS="$save_CFLAGS"
  1333         
  1334         if test x$have_arm_simd = xyes; then
  1335             AC_DEFINE(SDL_ARM_SIMD_BLITTERS)
  1336 dnl            SOURCES="$SOURCES $srcdir/src/video/arm/pixman-arm-simd*.c"
  1337             SOURCES="$SOURCES $srcdir/src/video/arm/pixman-arm-simd*.S"
  1338         fi
  1339     fi
  1340 }
  1341 
  1342 dnl See if GCC's -fvisibility=hidden is supported (gcc4 and later, usually).
  1343 dnl  Details of this flag are here: http://gcc.gnu.org/wiki/Visibility
  1344 CheckVisibilityHidden()
  1345 {
  1346     AC_MSG_CHECKING(for GCC -fvisibility=hidden option)
  1347     have_gcc_fvisibility=no
  1348 
  1349     visibility_CFLAGS="-fvisibility=hidden"
  1350     save_CFLAGS="$CFLAGS"
  1351     CFLAGS="$save_CFLAGS $visibility_CFLAGS -Werror"
  1352     AC_TRY_COMPILE([
  1353     #if !defined(__GNUC__) || __GNUC__ < 4
  1354     #error SDL only uses visibility attributes in GCC 4 or newer
  1355     #endif
  1356     ],[
  1357     ],[
  1358     have_gcc_fvisibility=yes
  1359     ])
  1360     AC_MSG_RESULT($have_gcc_fvisibility)
  1361     CFLAGS="$save_CFLAGS"
  1362 
  1363     if test x$have_gcc_fvisibility = xyes; then
  1364         EXTRA_CFLAGS="$EXTRA_CFLAGS $visibility_CFLAGS"
  1365     fi
  1366 }
  1367 
  1368 dnl See if GCC's -fno-strict-aliasingis supported.
  1369 dnl  Reference: https://bugzilla.libsdl.org/show_bug.cgi?id=4254
  1370 CheckNoStrictAliasing()
  1371 {
  1372     AC_MSG_CHECKING(for GCC -fno-strict-aliasing option)
  1373     have_gcc_no_strict_aliasing=no
  1374 
  1375     save_CFLAGS="$CFLAGS"
  1376     CFLAGS="$save_CFLAGS -fno-strict-aliasing"
  1377     AC_TRY_COMPILE([
  1378     int x = 0;
  1379     ],[
  1380     ],[
  1381     have_gcc_no_strict_aliasing=yes
  1382     ])
  1383     AC_MSG_RESULT($have_gcc_no_strict_aliasing)
  1384     CFLAGS="$save_CFLAGS"
  1385 
  1386     if test x$have_gcc_no_strict_aliasing = xyes; then
  1387         EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
  1388     fi
  1389 }
  1390 
  1391 dnl See if GCC's -mpreferred-stack-boundary is supported.
  1392 dnl  Reference: http://bugzilla.libsdl.org/show_bug.cgi?id=1296
  1393 CheckStackBoundary()
  1394 {
  1395     AC_MSG_CHECKING(for GCC -mpreferred-stack-boundary option)
  1396     have_gcc_preferred_stack_boundary=no
  1397 
  1398     save_CFLAGS="$CFLAGS"
  1399     CFLAGS="$save_CFLAGS -mpreferred-stack-boundary=2"
  1400     AC_TRY_COMPILE([
  1401     int x = 0;
  1402     ],[
  1403     ],[
  1404     have_gcc_preferred_stack_boundary=yes
  1405     ])
  1406     AC_MSG_RESULT($have_gcc_preferred_stack_boundary)
  1407     CFLAGS="$save_CFLAGS"
  1408 
  1409     if test x$have_gcc_preferred_stack_boundary = xyes; then
  1410         EXTRA_CFLAGS="$EXTRA_CFLAGS -mpreferred-stack-boundary=2"
  1411     fi
  1412 }
  1413 
  1414 dnl See if GCC's -Wdeclaration-after-statement is supported.
  1415 dnl  This lets us catch things that would fail on a C89 compiler when using
  1416 dnl  a modern GCC.
  1417 CheckDeclarationAfterStatement()
  1418 {
  1419     AC_MSG_CHECKING(for GCC -Wdeclaration-after-statement option)
  1420     have_gcc_declaration_after_statement=no
  1421 
  1422     save_CFLAGS="$CFLAGS"
  1423     CFLAGS="$save_CFLAGS -Wdeclaration-after-statement -Werror=declaration-after-statement"
  1424     AC_TRY_COMPILE([
  1425     int x = 0;
  1426     ],[
  1427     ],[
  1428     have_gcc_declaration_after_statement=yes
  1429     ])
  1430     AC_MSG_RESULT($have_gcc_declaration_after_statement)
  1431     CFLAGS="$save_CFLAGS"
  1432 
  1433     if test x$have_gcc_declaration_after_statement = xyes; then
  1434         EXTRA_CFLAGS="$EXTRA_CFLAGS -Wdeclaration-after-statement -Werror=declaration-after-statement"
  1435     fi
  1436 }
  1437 
  1438 dnl See if GCC's -Wall is supported.
  1439 CheckWarnAll()
  1440 {
  1441     AC_MSG_CHECKING(for GCC -Wall option)
  1442     have_gcc_Wall=no
  1443 
  1444     save_CFLAGS="$CFLAGS"
  1445     CFLAGS="$save_CFLAGS -Wall"
  1446     AC_TRY_COMPILE([
  1447     int x = 0;
  1448     ],[
  1449     ],[
  1450     have_gcc_Wall=yes
  1451     ])
  1452     AC_MSG_RESULT($have_gcc_Wall)
  1453     CFLAGS="$save_CFLAGS"
  1454 
  1455     if test x$have_gcc_Wall = xyes; then
  1456         EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
  1457 
  1458         dnl Haiku headers use multicharacter constants all over the place. Ignore these warnings when using -Wall.
  1459         AC_MSG_CHECKING(for necessary GCC -Wno-multichar option)
  1460         need_gcc_Wno_multichar=no
  1461         case "$host" in
  1462             *-*-haiku*)
  1463                 need_gcc_Wno_multichar=yes
  1464                 ;;
  1465         esac
  1466         AC_MSG_RESULT($need_gcc_Wno_multichar)
  1467         if test x$need_gcc_Wno_multichar = xyes; then
  1468             EXTRA_CFLAGS="$EXTRA_CFLAGS -Wno-multichar"
  1469         fi
  1470     fi
  1471 }
  1472 
  1473 dnl Check for Wayland
  1474 CheckWayland()
  1475 {
  1476     AC_ARG_ENABLE(video-wayland,
  1477 AS_HELP_STRING([--enable-video-wayland], [use Wayland video driver [[default=yes]]]),
  1478                   ,enable_video_wayland=yes)
  1479 
  1480     AC_ARG_ENABLE(video-wayland-qt-touch,
  1481 AS_HELP_STRING([--enable-video-wayland-qt-touch], [QtWayland server support for Wayland video driver [[default=yes]]]),
  1482                   ,enable_video_wayland_qt_touch=yes)
  1483 
  1484     if test x$enable_video = xyes -a x$enable_video_wayland = xyes; then
  1485         AC_MSG_CHECKING(for Wayland support)
  1486         video_wayland=no
  1487         if  test x$video_opengl_egl = xyes && \
  1488             test x$video_opengles_v2 = xyes; then
  1489             if $PKG_CONFIG --exists wayland-client wayland-scanner wayland-protocols wayland-egl wayland-cursor egl xkbcommon ; then
  1490                 WAYLAND_CFLAGS=`$PKG_CONFIG --cflags wayland-client wayland-egl wayland-cursor xkbcommon`
  1491                 WAYLAND_LIBS=`$PKG_CONFIG --libs wayland-client wayland-egl wayland-cursor xkbcommon`
  1492                 WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`
  1493                 video_wayland=yes
  1494             fi
  1495         fi
  1496         AC_MSG_RESULT($video_wayland)
  1497 
  1498         if test x$video_wayland = xyes; then
  1499             AC_DEFINE(SDL_VIDEO_DRIVER_WAYLAND, 1, [ ])
  1500             if test x$enable_video_wayland_qt_touch = xyes; then
  1501                 AC_DEFINE(SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH, 1, [ ])
  1502             fi
  1503 
  1504             WAYLAND_SOURCES="$srcdir/src/video/wayland/*.c"
  1505             SOURCES="$SOURCES $WAYLAND_SOURCES"
  1506             EXTRA_CFLAGS="$EXTRA_CFLAGS $WAYLAND_CFLAGS -I\$(gen)"
  1507             AC_ARG_ENABLE(wayland-shared,
  1508 AS_HELP_STRING([--enable-wayland-shared], [dynamically load Wayland support [[default=maybe]]]),
  1509                           , enable_wayland_shared=maybe)
  1510 
  1511             dnl FIXME: Do BSD and OS X need special cases?
  1512             case "$host" in
  1513                 *)
  1514                     wayland_client_lib=[`find_lib "libwayland-client.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
  1515                     wayland_egl_lib=[`find_lib "libwayland-egl.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
  1516                     if test x$wayland_egl_lib = x; then
  1517                         dnl This works in Ubuntu 13.10, maybe others
  1518                         wayland_egl_lib=[`find_lib "mesa-egl/libwayland-egl.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
  1519                     fi
  1520                     wayland_cursor_lib=[`find_lib "libwayland-cursor.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
  1521                     xkbcommon_lib=[`find_lib "libxkbcommon.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
  1522                     ;;
  1523             esac
  1524 
  1525             if test x$enable_wayland_shared = xmaybe; then
  1526                 enable_wayland_shared=yes
  1527             fi
  1528             if test x$have_loadso != xyes && \
  1529                test x$enable_wayland_shared = xyes; then
  1530                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic Wayland loading])
  1531                 enable_wayland_shared=no
  1532             fi
  1533             if test x$have_loadso = xyes && \
  1534                test x$enable_wayland_shared = xyes && \
  1535                test x$wayland_client_lib != x && \
  1536                test x$wayland_egl_lib != x && \
  1537                test x$wayland_cursor_lib != x && \
  1538                test x$xkbcommon_lib != x; then
  1539                 echo "-- dynamic libwayland-client -> $wayland_client_lib"
  1540                 echo "-- dynamic libwayland-egl -> $wayland_egl_lib"
  1541                 echo "-- dynamic libwayland-cursor -> $wayland_cursor_lib"
  1542                 echo "-- dynamic libxkbcommon -> $xkbcommon_lib"
  1543                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC, "$wayland_client_lib", [ ])
  1544                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL, "$wayland_egl_lib", [ ])
  1545                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR, "$wayland_cursor_lib", [ ])
  1546                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON, "$xkbcommon_lib", [ ])
  1547                 SUMMARY_video="${SUMMARY_video} wayland(dynamic)"
  1548             else
  1549                 enable_wayland_shared=no
  1550                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $WAYLAND_LIBS"
  1551                 SUMMARY_video="${SUMMARY_video} wayland"
  1552             fi
  1553             have_video=yes
  1554         fi
  1555     fi
  1556 }
  1557 
  1558 
  1559 dnl Check for Native Client stuff
  1560 CheckNativeClient()
  1561 {
  1562         AC_TRY_COMPILE([
  1563           #if !defined(__native_client__)
  1564           #error "NO NACL"
  1565           #endif
  1566         ],[
  1567         ],[
  1568         AC_DEFINE(SDL_VIDEO_DRIVER_NACL, 1, [ ])
  1569         AC_DEFINE(SDL_AUDIO_DRIVER_NACL, 1, [ ])
  1570         AC_DEFINE(HAVE_POW, 1, [ ])
  1571         AC_DEFINE(HAVE_OPENGLES2, 1, [ ])
  1572         AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ])
  1573         AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
  1574 
  1575         SDL_LIBS="-lppapi_simple -lppapi_gles2 $SDL_LIBS"
  1576 
  1577         SDLMAIN_SOURCES="$srcdir/src/main/nacl/*.c"
  1578         SOURCES="$SOURCES $srcdir/src/audio/nacl/*.c"
  1579         SUMMARY_audio="${SUMMARY_audio} nacl"
  1580         SOURCES="$SOURCES $srcdir/src/video/nacl/*.c"
  1581         SUMMARY_video="${SUMMARY_video} nacl opengles2"
  1582         ])
  1583 }
  1584 
  1585 
  1586 CheckRPI()
  1587 {
  1588     AC_ARG_ENABLE(video-rpi,
  1589 AS_HELP_STRING([--enable-video-rpi], [use Raspberry Pi video driver [[default=yes]]]),
  1590                   , enable_video_rpi=yes)
  1591     if test x$enable_video = xyes -a x$enable_video_rpi = xyes; then
  1592         PKG_CHECK_MODULES([RPI], [bcm_host brcmegl], video_rpi=yes, video_rpi=no)
  1593 
  1594         if test x$video_rpi = xno; then
  1595             if test x$ARCH = xnetbsd; then
  1596                 RPI_CFLAGS="-I/usr/pkg/include -I/usr/pkg/include/interface/vcos/pthreads -I/usr/pkg/include/interface/vmcs_host/linux"
  1597                 RPI_LIBS="-Wl,-R/usr/pkg/lib -L/usr/pkg/lib -lbcm_host"
  1598             else
  1599                 RPI_CFLAGS="-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux"
  1600                 RPI_LIBS="-Wl,-rpath,/opt/vc/lib -L/opt/vc/lib -lbcm_host"
  1601             fi
  1602         fi
  1603 
  1604         # Save the original compiler flags and libraries
  1605         ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
  1606 
  1607         # Add the Raspberry Pi compiler flags and libraries
  1608         CFLAGS="$CFLAGS $RPI_CFLAGS"; LIBS="$LIBS $RPI_LIBS"
  1609 
  1610         AC_MSG_CHECKING(for Raspberry Pi)
  1611         have_video_rpi=no
  1612         AC_TRY_LINK([
  1613           #include <bcm_host.h>
  1614         ],[
  1615           bcm_host_init();
  1616         ],[
  1617         have_video_rpi=yes
  1618         ],[
  1619         ])
  1620         AC_MSG_RESULT($have_video_rpi)
  1621 
  1622         # Restore the compiler flags and libraries
  1623         CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
  1624         
  1625         if test x$have_video_rpi = xyes; then
  1626             CFLAGS="$CFLAGS $RPI_CFLAGS"
  1627             SDL_CFLAGS="$SDL_CFLAGS $RPI_CFLAGS"
  1628             EXTRA_CFLAGS="$EXTRA_CFLAGS $RPI_CFLAGS"
  1629             EXTRA_LDFLAGS="$EXTRA_LDFLAGS $RPI_LIBS"
  1630             SOURCES="$SOURCES $srcdir/src/video/raspberry/*.c"
  1631             AC_DEFINE(SDL_VIDEO_DRIVER_RPI, 1, [ ])
  1632             SUMMARY_video="${SUMMARY_video} rpi"
  1633         fi
  1634     fi
  1635 }
  1636 
  1637 dnl Find the X11 include and library directories
  1638 CheckX11()
  1639 {
  1640     AC_ARG_ENABLE(video-x11,
  1641 AS_HELP_STRING([--enable-video-x11], [use X11 video driver [[default=yes]]]),
  1642                   , enable_video_x11=yes)
  1643     if test x$enable_video = xyes -a x$enable_video_x11 = xyes; then
  1644         case "$host" in
  1645             *-*-darwin*)
  1646                 # This isn't necessary for X11, but fixes GLX detection
  1647                 if test "x$x_includes" = xNONE && \
  1648                    test "x$x_libraries" = xNONE && \
  1649                    test -d /opt/X11/include && \
  1650                    test -d /opt/X11/lib; then
  1651                     x_includes="/opt/X11/include"
  1652                     x_libraries="/opt/X11/lib"
  1653                 fi
  1654                 ;;
  1655         esac
  1656         AC_PATH_X
  1657         AC_PATH_XTRA
  1658         if test x$have_x = xyes; then
  1659             AC_ARG_ENABLE(x11-shared,
  1660 AS_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=maybe]]]),
  1661                           , enable_x11_shared=maybe)
  1662 
  1663             case "$host" in
  1664                 *-*-darwin*)
  1665                     # Apple now puts this in /opt/X11
  1666                     x11_lib='/opt/X11/lib/libX11.6.dylib'
  1667                     x11ext_lib='/opt/X11/lib/libXext.6.dylib'
  1668                     xcursor_lib='/opt/X11/lib/libXcursor.1.dylib'
  1669                     xinerama_lib='/opt/X11/lib/libXinerama.1.dylib'
  1670                     xinput_lib='/opt/X11/lib/libXi.6.dylib'
  1671                     xrandr_lib='/opt/X11/lib/libXrandr.2.dylib'
  1672                     xrender_lib='/opt/X11/lib/libXrender.1.dylib'
  1673                     xss_lib='/opt/X11/lib/libXss.1.dylib'
  1674                     xvidmode_lib='/opt/X11/lib/libXxf86vm.1.dylib'
  1675                     ;;
  1676                 *-*-openbsd*)
  1677                     x11_lib='libX11.so'
  1678                     x11ext_lib='libXext.so'
  1679                     xcursor_lib='libXcursor.so'
  1680                     xinerama_lib='libXinerama.so'
  1681                     xinput_lib='libXi.so'
  1682                     xrandr_lib='libXrandr.so'
  1683                     xrender_lib='libXrender.so'
  1684                     xss_lib='libXss.so'
  1685                     xvidmode_lib='libXxf86vm.so'
  1686                     ;;
  1687                 *)
  1688                     x11_lib=[`find_lib "libX11.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1689                     x11ext_lib=[`find_lib "libXext.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1690                     xcursor_lib=[`find_lib "libXcursor.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1691                     xinerama_lib=[`find_lib "libXinerama.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1692                     xinput_lib=[`find_lib "libXi.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1693                     xrandr_lib=[`find_lib "libXrandr.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1694                     xrender_lib=[`find_lib "libXrender.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1695                     xss_lib=[`find_lib "libXss.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1696                     xvidmode_lib=[`find_lib "libXxf86vm.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1697                     ;;
  1698             esac
  1699 
  1700             if test x$ac_cv_func_shmat != xyes; then
  1701                 X_CFLAGS="$X_CFLAGS -DNO_SHARED_MEMORY"
  1702             fi
  1703             CFLAGS="$CFLAGS $X_CFLAGS"
  1704             LDFLAGS="$LDFLAGS $X_LIBS"
  1705 
  1706             AC_CHECK_HEADER(X11/extensions/Xext.h,
  1707                             have_xext_h_hdr=yes,
  1708                             have_xext_h_hdr=no,
  1709                             [#include <X11/Xlib.h>
  1710                              #include <X11/Xproto.h>
  1711                             ])
  1712             if test x$have_xext_h_hdr != xyes; then
  1713                AC_MSG_ERROR([
  1714 *** Missing Xext.h, maybe you need to install the libxext-dev package?
  1715                ])
  1716             fi
  1717 
  1718             AC_DEFINE(SDL_VIDEO_DRIVER_X11, 1, [ ])
  1719             SOURCES="$SOURCES $srcdir/src/video/x11/*.c"
  1720             EXTRA_CFLAGS="$EXTRA_CFLAGS $X_CFLAGS"
  1721 
  1722             # Needed so SDL applications can include SDL_syswm.h
  1723             SDL_CFLAGS="$SDL_CFLAGS $X_CFLAGS"
  1724 
  1725             if test x$enable_x11_shared = xmaybe; then
  1726                 enable_x11_shared=yes
  1727             fi
  1728             if test x$have_loadso != xyes && \
  1729                test x$enable_x11_shared = xyes; then
  1730                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic X11 loading])
  1731                 enable_x11_shared=no
  1732             fi
  1733             if test x$have_loadso = xyes && \
  1734                test x$enable_x11_shared = xyes && test x$x11_lib != x && test x$x11ext_lib != x; then
  1735                 echo "-- dynamic libX11 -> $x11_lib"
  1736                 echo "-- dynamic libX11ext -> $x11ext_lib"
  1737                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC, "$x11_lib", [ ])
  1738                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT, "$x11ext_lib", [ ])
  1739                 SUMMARY_video="${SUMMARY_video} x11(dynamic)"
  1740             else
  1741                 enable_x11_shared=no
  1742                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $X_LIBS -lX11 -lXext"
  1743                 SUMMARY_video="${SUMMARY_video} x11"
  1744             fi
  1745             have_video=yes
  1746 
  1747             AC_MSG_CHECKING(for const parameter to XextAddDisplay)
  1748             have_const_param_XextAddDisplay=no
  1749             AC_TRY_COMPILE([
  1750               #include <X11/Xlib.h>
  1751               #include <X11/Xproto.h>
  1752               #include <X11/extensions/Xext.h>
  1753               #include <X11/extensions/extutil.h>
  1754               extern XExtDisplayInfo* XextAddDisplay(XExtensionInfo* a,Display* b,_Xconst char* c,XExtensionHooks* d,int e,XPointer f);
  1755             ],[
  1756             ],[
  1757             have_const_param_XextAddDisplay=yes
  1758             AC_DEFINE([SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY], 1, [ ])
  1759             ])
  1760             AC_MSG_RESULT($have_const_param_XextAddDisplay)
  1761 
  1762             dnl AC_CHECK_LIB(X11, XGetEventData, AC_DEFINE(SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS, 1, [Have XGenericEvent]))
  1763             AC_MSG_CHECKING([for XGenericEvent])
  1764             have_XGenericEvent=no
  1765             AC_TRY_COMPILE([
  1766                 #include <X11/Xlib.h>
  1767             ],[
  1768 Display *display;
  1769 XEvent event;
  1770 XGenericEventCookie *cookie = &event.xcookie;
  1771 XNextEvent(display, &event);
  1772 XGetEventData(display, cookie);
  1773 XFreeEventData(display, cookie);
  1774             ],[
  1775                 have_XGenericEvent=yes
  1776                 AC_DEFINE([SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS], 1, [ ])
  1777             ])
  1778             AC_MSG_RESULT($have_XGenericEvent)
  1779 
  1780             AC_CHECK_LIB(X11, XkbKeycodeToKeysym, AC_DEFINE(SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM, 1, [Have XkbKeycodeToKeysym]))
  1781 
  1782             AC_ARG_ENABLE(video-x11-xcursor,
  1783 AS_HELP_STRING([--enable-video-x11-xcursor], [enable X11 Xcursor support [[default=yes]]]),
  1784                             , enable_video_x11_xcursor=yes)
  1785             if test x$enable_video_x11_xcursor = xyes; then
  1786                 definitely_enable_video_x11_xcursor=no
  1787                 AC_CHECK_HEADER(X11/Xcursor/Xcursor.h,
  1788                                 have_xcursor_h_hdr=yes,
  1789                                 have_xcursor_h_hdr=no,
  1790                                 [#include <X11/Xlib.h>
  1791                                 ])
  1792                 if test x$have_xcursor_h_hdr = xyes; then
  1793                     if test x$enable_x11_shared = xyes && test x$xcursor_lib != x ; then
  1794                         echo "-- dynamic libXcursor -> $xcursor_lib"
  1795                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR, "$xcursor_lib", [ ])
  1796                         definitely_enable_video_x11_xcursor=yes
  1797                     else
  1798                         AC_CHECK_LIB(Xcursor, XcursorImageCreate, have_xcursor_lib=yes)
  1799                         if test x$have_xcursor_lib = xyes ; then
  1800                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXcursor"
  1801                             definitely_enable_video_x11_xcursor=yes
  1802                         fi
  1803                     fi
  1804                 fi
  1805             fi
  1806             if test x$definitely_enable_video_x11_xcursor = xyes; then
  1807                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XCURSOR, 1, [ ])
  1808                 SUMMARY_video_x11="${SUMMARY_video_x11} xcursor"
  1809             fi
  1810             AC_ARG_ENABLE(video-x11-xdbe,
  1811 AS_HELP_STRING([--enable-video-x11-xdbe], [enable X11 Xdbe support [[default=yes]]]),
  1812                             , enable_video_x11_xdbe=yes)
  1813             if test x$enable_video_x11_xdbe = xyes; then
  1814                 AC_CHECK_HEADER(X11/extensions/Xdbe.h,
  1815                                 have_dbe_h_hdr=yes,
  1816                                 have_dbe_h_hdr=no,
  1817                                 [#include <X11/Xlib.h>
  1818                                 ])
  1819                 if test x$have_dbe_h_hdr = xyes; then
  1820                     AC_DEFINE(SDL_VIDEO_DRIVER_X11_XDBE, 1, [ ])
  1821                     SUMMARY_video_x11="${SUMMARY_video_x11} xdbe"
  1822                 fi
  1823             fi
  1824             AC_ARG_ENABLE(video-x11-xinerama,
  1825 AS_HELP_STRING([--enable-video-x11-xinerama], [enable X11 Xinerama support [[default=yes]]]),
  1826                             , enable_video_x11_xinerama=yes)
  1827             if test x$enable_video_x11_xinerama = xyes; then
  1828                 definitely_enable_video_x11_xinerama=no
  1829                 AC_CHECK_HEADER(X11/extensions/Xinerama.h,
  1830                                 have_xinerama_h_hdr=yes,
  1831                                 have_xinerama_h_hdr=no,
  1832                                 [#include <X11/Xlib.h>
  1833                                 ])
  1834                 if test x$have_xinerama_h_hdr = xyes; then
  1835                     if test x$enable_x11_shared = xyes && test x$xinerama_lib != x ; then
  1836                         echo "-- dynamic libXinerama -> $xinerama_lib"
  1837                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA, "$xinerama_lib", [ ])
  1838                         definitely_enable_video_x11_xinerama=yes
  1839                     else
  1840                         AC_CHECK_LIB(Xinerama, XineramaQueryExtension, have_xinerama_lib=yes)
  1841                         if test x$have_xinerama_lib = xyes ; then
  1842                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXinerama"
  1843                             definitely_enable_video_x11_xinerama=yes
  1844                         fi
  1845                     fi
  1846                 fi
  1847             fi
  1848             if test x$definitely_enable_video_x11_xinerama = xyes; then
  1849                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINERAMA, 1, [ ])
  1850                 SUMMARY_video_x11="${SUMMARY_video_x11} xinerama"
  1851             fi
  1852             AC_ARG_ENABLE(video-x11-xinput,
  1853 AS_HELP_STRING([--enable-video-x11-xinput], [enable X11 XInput extension for manymouse, tablets, etc [[default=yes]]]),
  1854                             , enable_video_x11_xinput=yes)
  1855             if test x$enable_video_x11_xinput = xyes; then
  1856                 definitely_enable_video_x11_xinput=no
  1857                 AC_CHECK_HEADER(X11/extensions/XInput2.h,
  1858                                 have_xinput_h_hdr=yes,
  1859                                 have_xinput_h_hdr=no,
  1860                                 [#include <X11/Xlib.h>
  1861                                 ])
  1862                 if test x$have_xinput_h_hdr = xyes; then
  1863                     if test x$enable_x11_shared = xyes && test x$xinput_lib != x ; then
  1864                         echo "-- dynamic libXi -> $xinput_lib"
  1865                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2, "$xinput_lib", [ ])
  1866                         definitely_enable_video_x11_xinput=yes
  1867                     else
  1868                         AC_CHECK_LIB(Xi, XOpenDevice, have_xinput_lib=yes)
  1869                         if test x$have_xinput_lib = xyes ; then
  1870                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXi"
  1871                             definitely_enable_video_x11_xinput=yes
  1872                         fi
  1873                     fi
  1874                 fi
  1875             fi
  1876             if test x$definitely_enable_video_x11_xinput = xyes; then
  1877                 SUMMARY_video_x11="${SUMMARY_video_x11} xinput2"
  1878                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINPUT2, 1, [ ])
  1879                 AC_MSG_CHECKING(for xinput2 multitouch)
  1880                 have_xinput2_multitouch=no
  1881                 AC_TRY_COMPILE([
  1882                     #include <X11/Xlib.h>
  1883                     #include <X11/Xproto.h>
  1884                     #include <X11/extensions/XInput2.h>
  1885                     ],[
  1886 int event_type = XI_TouchBegin;
  1887 XITouchClassInfo *t;
  1888                     ],[
  1889                     have_xinput2_multitouch=yes
  1890                     AC_DEFINE([SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH], 1, [])
  1891                     SUMMARY_video_x11="${SUMMARY_video_x11} xinput2_multitouch"
  1892                     ])
  1893                 AC_MSG_RESULT($have_xinput2_multitouch)
  1894             fi
  1895             AC_ARG_ENABLE(video-x11-xrandr,
  1896 AS_HELP_STRING([--enable-video-x11-xrandr], [enable X11 Xrandr extension for fullscreen [[default=yes]]]),
  1897                             , enable_video_x11_xrandr=yes)
  1898             if test x$enable_video_x11_xrandr = xyes; then
  1899                 dnl XRRScreenResources is only present in Xrandr >= 1.2, we use that as a test.
  1900                 definitely_enable_video_x11_xrandr=no
  1901                 have_xrandr_h_hdr=no
  1902                 AC_TRY_COMPILE([
  1903                 #include <X11/Xlib.h>
  1904                 #include <X11/extensions/Xrandr.h>
  1905                 ],[
  1906                 XRRScreenResources *res = NULL;
  1907                 ],[
  1908                 have_xrandr_h_hdr=yes
  1909                 ])
  1910                 if test x$have_xrandr_h_hdr = xyes; then
  1911                     if test x$enable_x11_shared = xyes && test x$xrandr_lib != x ; then
  1912                         echo "-- dynamic libXrandr -> $xrandr_lib"
  1913                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR, "$xrandr_lib", [ ])
  1914                         definitely_enable_video_x11_xrandr=yes
  1915                     else
  1916                         AC_CHECK_LIB(Xrandr, XRRQueryExtension, have_xrandr_lib=yes)
  1917                         if test x$have_xrandr_lib = xyes ; then
  1918                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXrandr"
  1919                             definitely_enable_video_x11_xrandr=yes
  1920                         fi
  1921                     fi
  1922                 fi
  1923             fi
  1924             if test x$definitely_enable_video_x11_xrandr = xyes; then
  1925                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR, 1, [ ])
  1926                 SUMMARY_video_x11="${SUMMARY_video_x11} xrandr"
  1927             fi
  1928             AC_ARG_ENABLE(video-x11-scrnsaver,
  1929 AS_HELP_STRING([--enable-video-x11-scrnsaver], [enable X11 screensaver extension [[default=yes]]]),
  1930                             , enable_video_x11_scrnsaver=yes)
  1931             if test x$enable_video_x11_scrnsaver = xyes; then
  1932                 AC_CHECK_HEADER(X11/extensions/scrnsaver.h,
  1933                                 have_scrnsaver_h_hdr=yes,
  1934                                 have_scrnsaver_h_hdr=no,
  1935                                 [#include <X11/Xlib.h>
  1936                                 ])
  1937                 if test x$have_scrnsaver_h_hdr = xyes; then
  1938                     if test x$enable_x11_shared = xyes && test x$xss_lib != x ; then
  1939                         echo "-- dynamic libXss -> $xss_lib"
  1940                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS, "$xss_lib", [ ])
  1941                         definitely_enable_video_x11_scrnsaver=yes
  1942                     else
  1943                         AC_CHECK_LIB(Xss, XScreenSaverSuspend, have_xss_lib=yes)
  1944                         if test x$have_xss_lib = xyes ; then
  1945                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXss"
  1946                             definitely_enable_video_x11_scrnsaver=yes
  1947                         fi
  1948                     fi
  1949                 fi
  1950             fi
  1951             if test x$definitely_enable_video_x11_scrnsaver = xyes; then
  1952                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XSCRNSAVER, 1, [ ])
  1953                 SUMMARY_video_x11="${SUMMARY_video_x11} xscrnsaver"
  1954             fi
  1955             AC_ARG_ENABLE(video-x11-xshape,
  1956 AS_HELP_STRING([--enable-video-x11-xshape], [enable X11 XShape support [[default=yes]]]),
  1957                             , enable_video_x11_xshape=yes)
  1958             if test x$enable_video_x11_xshape = xyes; then
  1959                 AC_CHECK_HEADER(X11/extensions/shape.h,
  1960                                 have_shape_h_hdr=yes,
  1961                                 have_shape_h_hdr=no,
  1962                                 [#include <X11/Xlib.h>
  1963                                 ])
  1964                 if test x$have_shape_h_hdr = xyes; then
  1965                     AC_DEFINE(SDL_VIDEO_DRIVER_X11_XSHAPE, 1, [ ])
  1966                     SUMMARY_video_x11="${SUMMARY_video_x11} xshape"
  1967                 fi
  1968             fi
  1969             AC_ARG_ENABLE(video-x11-vm,
  1970 AS_HELP_STRING([--enable-video-x11-vm], [use X11 VM extension for fullscreen [[default=yes]]]),
  1971                             , enable_video_x11_vm=yes)
  1972             if test x$enable_video_x11_vm = xyes; then
  1973                 definitely_enable_video_x11_vm=no
  1974                 AC_CHECK_HEADER(X11/extensions/xf86vmode.h,
  1975                                 have_vm_h_hdr=yes,
  1976                                 have_vm_h_hdr=no,
  1977                                 [#include <X11/Xlib.h>
  1978                                 ])
  1979                 if test x$have_vm_h_hdr = xyes; then
  1980                     if test x$enable_x11_shared = xyes && test x$xvidmode_lib != x ; then
  1981                         echo "-- dynamic libXxf86vm -> $xvidmode_lib"
  1982                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE, "$xvidmode_lib", [ ])
  1983                         definitely_enable_video_x11_vm=yes
  1984                     else
  1985                         AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryVersion, have_vm_lib=yes)
  1986                         if test x$have_vm_lib = xyes ; then
  1987                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXxf86vm"
  1988                             definitely_enable_video_x11_vm=yes
  1989                         fi
  1990                     fi
  1991                 fi
  1992             fi
  1993             if test x$definitely_enable_video_x11_vm = xyes; then
  1994                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XVIDMODE, 1, [ ])
  1995                 SUMMARY_video_x11="${SUMMARY_video_x11} xvidmode"
  1996             fi
  1997         fi
  1998     fi
  1999 }
  2000 
  2001 dnl Set up the Vivante video driver if enabled
  2002 CheckVivanteVideo()
  2003 {
  2004     AC_ARG_ENABLE(video-vivante,
  2005 AS_HELP_STRING([--enable-video-vivante], [use Vivante EGL video driver [[default=yes]]]),
  2006                   , enable_video_vivante=yes)
  2007     if test x$enable_video = xyes -a x$enable_video_vivante = xyes; then
  2008         AC_MSG_CHECKING(for Vivante VDK API)
  2009         have_vivante_vdk=no
  2010         AC_TRY_COMPILE([
  2011           #define LINUX
  2012           #define EGL_API_FB
  2013           #include <gc_vdk.h>
  2014         ],[
  2015         ],[
  2016         have_vivante_vdk=yes
  2017         ])
  2018         AC_MSG_RESULT($have_vivante_vdk)
  2019 
  2020         AC_MSG_CHECKING(for Vivante FB API)
  2021         have_vivante_egl=no
  2022         AC_TRY_COMPILE([
  2023           #define LINUX
  2024           #define EGL_API_FB
  2025           #include <EGL/eglvivante.h>
  2026         ],[
  2027         ],[
  2028         have_vivante_egl=yes
  2029         ])
  2030         AC_MSG_RESULT($have_vivante_egl)
  2031 
  2032         if test x$have_vivante_vdk = xyes -o x$have_vivante_egl = xyes; then
  2033             AC_DEFINE(SDL_VIDEO_DRIVER_VIVANTE, 1, [ ])
  2034             EXTRA_CFLAGS="$EXTRA_CFLAGS -DLINUX -DEGL_API_FB"
  2035             if test x$have_vivante_vdk = xyes; then
  2036                 AC_DEFINE(SDL_VIDEO_DRIVER_VIVANTE_VDK, 1, [ ])
  2037                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lVDK"
  2038             fi
  2039             SOURCES="$SOURCES $srcdir/src/video/vivante/*.c"
  2040             SUMMARY_video="${SUMMARY_video} vivante"
  2041             have_video=yes
  2042         fi
  2043     fi
  2044 }
  2045 
  2046 dnl Set up the Haiku video driver if enabled
  2047 CheckHaikuVideo()
  2048 {
  2049     if test x$enable_video = xyes; then
  2050         AC_DEFINE(SDL_VIDEO_DRIVER_HAIKU, 1, [ ])
  2051         SOURCES="$SOURCES $srcdir/src/video/haiku/*.cc"
  2052         have_video=yes
  2053         SUMMARY_video="${SUMMARY_video} haiku"
  2054     fi
  2055 }
  2056 
  2057 dnl Set up the Cocoa video driver for Mac OS X (but not Darwin)
  2058 CheckCOCOA()
  2059 {
  2060     AC_ARG_ENABLE(video-cocoa,
  2061 AS_HELP_STRING([--enable-video-cocoa], [use Cocoa video driver [[default=yes]]]),
  2062                   , enable_video_cocoa=yes)
  2063     if test x$enable_video = xyes -a x$enable_video_cocoa = xyes; then
  2064         save_CFLAGS="$CFLAGS"
  2065         dnl Work around that we don't have Objective-C support in autoconf
  2066         CFLAGS="$CFLAGS -x objective-c"
  2067         AC_MSG_CHECKING(for Cocoa framework)
  2068         have_cocoa=no
  2069         AC_TRY_COMPILE([
  2070           #import <Cocoa/Cocoa.h>
  2071         ],[
  2072         ],[
  2073         have_cocoa=yes
  2074         ])
  2075         AC_MSG_RESULT($have_cocoa)
  2076         CFLAGS="$save_CFLAGS"
  2077         if test x$have_cocoa = xyes; then
  2078             AC_DEFINE(SDL_VIDEO_DRIVER_COCOA, 1, [ ])
  2079             SOURCES="$SOURCES $srcdir/src/video/cocoa/*.m"
  2080             SUMMARY_video="${SUMMARY_video} cocoa"
  2081             have_video=yes
  2082         fi
  2083     fi
  2084 }
  2085 
  2086 CheckMETAL()
  2087 {
  2088     AC_ARG_ENABLE(video-metal,
  2089 AC_HELP_STRING([--enable-video-metal], [include Metal support [[default=yes]]]),
  2090               , enable_video_metal=yes)
  2091     AC_ARG_ENABLE(render-metal,
  2092 AS_HELP_STRING([--enable-render-metal], [enable the Metal render driver [[default=yes]]]),
  2093                                 , enable_render_metal=yes)
  2094     if test x$enable_video = xyes -a x$enable_video_metal = xyes; then
  2095         save_CFLAGS="$CFLAGS"
  2096         dnl Work around that we don't have Objective-C support in autoconf
  2097         CFLAGS="$CFLAGS -x objective-c"
  2098         AC_MSG_CHECKING(for Metal framework)
  2099         have_metal=no
  2100         AC_TRY_COMPILE([
  2101           #import <Cocoa/Cocoa.h>
  2102           #import <Metal/Metal.h>
  2103           #import <QuartzCore/CAMetalLayer.h>
  2104 
  2105           #if !TARGET_CPU_X86_64
  2106           #error Metal doesn't work on this configuration
  2107           #endif
  2108         ],[
  2109         ],[
  2110         have_metal=yes
  2111         ])
  2112         CFLAGS="$save_CFLAGS"
  2113         AC_MSG_RESULT($have_metal)
  2114         if test x$have_metal = xyes; then
  2115             AC_DEFINE(SDL_VIDEO_METAL, 1, [ ])
  2116             if test x$enable_render = xyes -a x$enable_render_metal = xyes; then
  2117                 AC_DEFINE(SDL_VIDEO_RENDER_METAL, 1, [ ])
  2118                 SOURCES="$SOURCES $srcdir/src/render/metal/*.m"
  2119             fi
  2120             SUMMARY_video="${SUMMARY_video} metal"
  2121         else
  2122             enable_video_metal=no
  2123             enable_render_metal=no
  2124         fi
  2125     fi
  2126 }
  2127 
  2128 
  2129 dnl Find DirectFB
  2130 CheckDirectFB()
  2131 {
  2132     AC_ARG_ENABLE(video-directfb,
  2133 AS_HELP_STRING([--enable-video-directfb], [use DirectFB video driver [[default=no]]]),
  2134                   , enable_video_directfb=no)
  2135     if test x$enable_video = xyes -a x$enable_video_directfb = xyes; then
  2136         PKG_CHECK_MODULES([DIRECTFB], [directfb >= 1.0.0], video_directfb=yes, video_directfb=no)
  2137 
  2138         if test x$video_directfb = xyes; then
  2139             # SuSE 11.1 installs directfb-config without directfb-devel
  2140             save_CPPFLAGS="$CPPFLAGS"
  2141             CPPFLAGS="$CPPFLAGS $DIRECTFB_CFLAGS"
  2142             AC_CHECK_HEADER(directfb.h, have_directfb_hdr=yes, have_directfb_hdr=no)
  2143             CPPFLAGS="$save_CPPFLAGS"
  2144             video_directfb=$have_directfb_hdr
  2145         fi
  2146 
  2147         if test x$video_directfb = xyes; then
  2148             AC_ARG_ENABLE(directfb-shared,
  2149 AS_HELP_STRING([--enable-directfb-shared], [dynamically load directfb support [[default=yes]]]),
  2150                               , enable_directfb_shared=yes)
  2151 
  2152             AC_DEFINE(SDL_VIDEO_DRIVER_DIRECTFB, 1, [ ])
  2153             AC_DEFINE(SDL_VIDEO_RENDER_DIRECTFB, 1, [ ])
  2154             SOURCES="$SOURCES $srcdir/src/video/directfb/*.c"
  2155             EXTRA_CFLAGS="$EXTRA_CFLAGS $DIRECTFB_CFLAGS"
  2156 
  2157             AC_MSG_CHECKING(for directfb dynamic loading support)
  2158             directfb_shared=no
  2159             directfb_lib=[`find_lib "libdirectfb*.so.*" "$DIRECTFB_LIBS"`]
  2160             # | sed 's/.*\/\(.*\)/\1/; q'`]
  2161 AC_MSG_WARN("directfb $directfb_lib")
  2162             if test x$have_loadso != xyes && \
  2163                test x$enable_directfb_shared = xyes; then
  2164                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic directfb loading])
  2165             fi
  2166             if test x$have_loadso = xyes && \
  2167                test x$enable_directfb_shared = xyes && test x$directfb_lib != x; then
  2168                 directfb_shared=yes
  2169                 echo "-- $directfb_lib_spec -> $directfb_lib"
  2170                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC, "$directfb_lib", [ ])
  2171                 SUMMARY_video="${SUMMARY_video} directfb(dynamic)"
  2172             else
  2173                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $DIRECTFB_LIBS"
  2174                 SUMMARY_video="${SUMMARY_video} directfb"
  2175             fi
  2176             AC_MSG_RESULT($directfb_shared)
  2177             SDL_CFLAGS="$SDL_CFLAGS $DIRECTFB_CFLAGS"
  2178             have_video=yes
  2179         fi
  2180     fi
  2181 }
  2182 
  2183 dnl Find KMSDRM
  2184 CheckKMSDRM()
  2185 {
  2186     AC_ARG_ENABLE(video-kmsdrm,
  2187 AS_HELP_STRING([--enable-video-kmsdrm], [use KMSDRM video driver [[default=no]]]),
  2188                   , enable_video_kmsdrm=no)
  2189 
  2190     if test x$enable_video = xyes -a x$enable_video_kmsdrm = xyes; then
  2191         video_kmsdrm=no
  2192 
  2193         PKG_CHECK_MODULES([LIBDRM], [libdrm >= 2.4.46], libdrm_avail=yes, libdrm_avail=no)
  2194         PKG_CHECK_MODULES([LIBGBM], [gbm >= 9.0.0], libgbm_avail=yes, libgbm_avail=no)
  2195 
  2196         if test x$libdrm_avail = xyes -a x$libgbm_avail = xyes; then
  2197             video_kmsdrm=yes
  2198         fi
  2199 
  2200         if test x$video_kmsdrm = xyes; then
  2201             AC_ARG_ENABLE(kmsdrm-shared,
  2202 AS_HELP_STRING([--enable-kmsdrm-shared], [dynamically load kmsdrm support [[default=yes]]]),
  2203                 , enable_kmsdrm_shared=yes)
  2204 
  2205             AC_DEFINE(SDL_VIDEO_DRIVER_KMSDRM, 1, [ ])
  2206             SOURCES="$SOURCES $srcdir/src/video/kmsdrm/*.c"
  2207             EXTRA_CFLAGS="$EXTRA_CFLAGS $LIBDRM_CFLAGS $LIBGBM_CFLAGS"
  2208 
  2209             AC_MSG_CHECKING(for kmsdrm dynamic loading support)
  2210             kmsdrm_shared=no
  2211             drm_lib=[`find_lib "libdrm.so.*" "$DRM_LIBS"`]
  2212             gbm_lib=[`find_lib "libgbm.so.*" "$DRM_LIBS"`]
  2213             if test x$have_loadso != xyes && \
  2214                test x$enable_kmsdrm_shared = xyes; then
  2215                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic kmsdrm loading])
  2216             fi
  2217             if test x$have_loadso = xyes && \
  2218                test x$enable_kmsdrm_shared = xyes && test x$drm_lib != x && test x$gbm_lib != x; then
  2219                 kmsdrm_shared=yes
  2220                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC, "$drm_lib", [ ])
  2221                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM, "$gbm_lib", [ ])
  2222                 AC_DEFINE_UNQUOTED(HAVE_KMSDRM_SHARED, "TRUE", [ ])
  2223                 SUMMARY_video="${SUMMARY_video} kmsdrm(dynamic)"
  2224             else
  2225                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $LIBDRM_LIBS $LIBGBM_LIBS"
  2226                 SUMMARY_video="${SUMMARY_video} kmsdrm"
  2227             fi
  2228             AC_MSG_RESULT($kmsdrm_shared)
  2229             have_video=yes
  2230         fi
  2231     fi
  2232 }
  2233 
  2234 dnl rcg04172001 Set up the Null video driver.
  2235 CheckDummyVideo()
  2236 {
  2237     AC_ARG_ENABLE(video-dummy,
  2238 AS_HELP_STRING([--enable-video-dummy], [use dummy video driver [[default=yes]]]),
  2239                   , enable_video_dummy=yes)
  2240     if test x$enable_video_dummy = xyes; then
  2241         AC_DEFINE(SDL_VIDEO_DRIVER_DUMMY, 1, [ ])
  2242         SOURCES="$SOURCES $srcdir/src/video/dummy/*.c"
  2243         have_video=yes
  2244         SUMMARY_video="${SUMMARY_video} dummy"
  2245     fi
  2246 }
  2247 
  2248 dnl Set up the QNX video driver if enabled
  2249 CheckQNXVideo()
  2250 {
  2251     if test x$enable_video = xyes; then
  2252         AC_DEFINE(SDL_VIDEO_DRIVER_QNX, 1, [ ])
  2253         SOURCES="$SOURCES $srcdir/src/video/qnx/*.c"
  2254         have_video=yes
  2255         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lscreen -lEGL -lGLESv2"
  2256         SUMMARY_video="${SUMMARY_video} qnx"
  2257     fi
  2258 }
  2259 
  2260 dnl Set up the QNX audio driver if enabled
  2261 CheckQNXAudio()
  2262 {
  2263     if test x$enable_audio = xyes; then
  2264         AC_DEFINE(SDL_AUDIO_DRIVER_QSA, 1, [ ])
  2265         SOURCES="$SOURCES $srcdir/src/audio/qsa/*.c"
  2266         have_audio=yes
  2267         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lasound"
  2268         SUMMARY_audio="${SUMMARY_audio} qsa"
  2269     fi
  2270 }
  2271 
  2272 dnl Check to see if OpenGL support is desired
  2273 AC_ARG_ENABLE(video-opengl,
  2274 AS_HELP_STRING([--enable-video-opengl], [include OpenGL support [[default=yes]]]),
  2275               , enable_video_opengl=yes)
  2276 
  2277 dnl Find OpenGL
  2278 CheckOpenGLX11()
  2279 {
  2280     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  2281         AC_MSG_CHECKING(for OpenGL (GLX) support)
  2282         video_opengl=no
  2283         AC_TRY_COMPILE([
  2284          #include <GL/gl.h>
  2285          #include <GL/glx.h>
  2286         ],[
  2287         ],[
  2288         video_opengl=yes
  2289         ])
  2290         AC_MSG_RESULT($video_opengl)
  2291         if test x$video_opengl = xyes; then
  2292             AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  2293             AC_DEFINE(SDL_VIDEO_OPENGL_GLX, 1, [ ])
  2294             AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  2295             SUMMARY_video="${SUMMARY_video} opengl"
  2296         fi
  2297     fi
  2298 }
  2299 
  2300 dnl Check to see if OpenGL ES support is desired
  2301 AC_ARG_ENABLE(video-opengles,
  2302 AS_HELP_STRING([--enable-video-opengles], [include OpenGL ES support [[default=yes]]]),
  2303               , enable_video_opengles=yes)
  2304 AC_ARG_ENABLE(video-opengles1,
  2305 AS_HELP_STRING([--enable-video-opengles1], [include OpenGL ES 1.1 support [[default=yes]]]),
  2306               , enable_video_opengles1=yes)
  2307 AC_ARG_ENABLE(video-opengles2,
  2308 AS_HELP_STRING([--enable-video-opengles2], [include OpenGL ES 2.0 support [[default=yes]]]),
  2309               , enable_video_opengles2=yes)
  2310 
  2311 dnl Find OpenGL ES
  2312 CheckOpenGLESX11()
  2313 {
  2314     if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then
  2315         AC_MSG_CHECKING(for EGL support)
  2316         video_opengl_egl=no
  2317         AC_TRY_COMPILE([
  2318           #define LINUX
  2319           #define EGL_API_FB
  2320           #define MESA_EGL_NO_X11_HEADERS
  2321           #include <EGL/egl.h>
  2322           #include <EGL/eglext.h>
  2323         ],[
  2324         ],[
  2325         video_opengl_egl=yes
  2326         ])
  2327         AC_MSG_RESULT($video_opengl_egl)
  2328         if test x$video_opengl_egl = xyes; then
  2329             AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ])
  2330         fi
  2331         
  2332         if test x$enable_video_opengles1 = xyes; then
  2333             AC_MSG_CHECKING(for OpenGL ES v1 headers)
  2334             video_opengles_v1=no
  2335             AC_TRY_COMPILE([
  2336              #include <GLES/gl.h>
  2337              #include <GLES/glext.h>
  2338             ],[
  2339             ],[
  2340             video_opengles_v1=yes
  2341             ])
  2342             AC_MSG_RESULT($video_opengles_v1)
  2343             if test x$video_opengles_v1 = xyes; then
  2344                 AC_DEFINE(SDL_VIDEO_OPENGL_ES, 1, [ ])
  2345                 AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES, 1, [ ])
  2346                 SUMMARY_video="${SUMMARY_video} opengl_es1"
  2347             fi
  2348         fi
  2349         
  2350         if test x$enable_video_opengles2 = xyes; then
  2351             AC_MSG_CHECKING(for OpenGL ES v2 headers)
  2352             video_opengles_v2=no
  2353             AC_TRY_COMPILE([
  2354              #include <GLES2/gl2.h>
  2355              #include <GLES2/gl2ext.h>
  2356             ],[
  2357             ],[
  2358             video_opengles_v2=yes
  2359             ])
  2360             AC_MSG_RESULT($video_opengles_v2)
  2361             if test x$video_opengles_v2 = xyes; then
  2362                 AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ])
  2363                 AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
  2364                 SUMMARY_video="${SUMMARY_video} opengl_es2"
  2365             fi
  2366         fi
  2367     fi
  2368 }
  2369 
  2370 dnl Check for Windows OpenGL
  2371 CheckWINDOWSGL()
  2372 {
  2373     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  2374         AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  2375         AC_DEFINE(SDL_VIDEO_OPENGL_WGL, 1, [ ])
  2376         AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  2377         SUMMARY_video="${SUMMARY_video} opengl"
  2378     fi
  2379 }
  2380 
  2381 dnl Check for Windows OpenGL
  2382 CheckWINDOWSGLES()
  2383 {
  2384     if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then
  2385 
  2386         AC_MSG_CHECKING(for EGL support)
  2387         video_opengl_egl=no
  2388         AC_TRY_COMPILE([
  2389          #include <EGL/egl.h>
  2390         ],[
  2391         ],[
  2392         video_opengl_egl=yes
  2393         ])
  2394         AC_MSG_RESULT($video_opengl_egl)
  2395         if test x$video_opengl_egl = xyes; then
  2396             AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  2397             AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ])
  2398             SUMMARY_video="${SUMMARY_video} opengl_es1"
  2399         fi
  2400        
  2401         AC_MSG_CHECKING(for OpenGL ES v2 headers)
  2402         video_opengles_v2=no
  2403         AC_TRY_COMPILE([
  2404          #include <GLES2/gl2.h>
  2405          #include <GLES2/gl2ext.h>
  2406         ],[
  2407         ],[
  2408         video_opengles_v2=yes
  2409         ])
  2410         AC_MSG_RESULT($video_opengles_v2)
  2411         if test x$video_opengles_v2 = xyes; then
  2412             AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  2413             AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ])
  2414             AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
  2415             SUMMARY_video="${SUMMARY_video} opengl_es2"
  2416         fi
  2417     fi
  2418 }
  2419 
  2420 dnl Check for Haiku OpenGL
  2421 CheckHaikuGL()
  2422 {
  2423     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  2424         AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  2425         AC_DEFINE(SDL_VIDEO_OPENGL_HAIKU, 1, [ ])
  2426         AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  2427         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL"
  2428         SUMMARY_video="${SUMMARY_video} opengl"
  2429     fi
  2430 }
  2431 
  2432 dnl Check for MacOS OpenGL
  2433 CheckMacGL()
  2434 {
  2435     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  2436         AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  2437         AC_DEFINE(SDL_VIDEO_OPENGL_CGL, 1, [ ])
  2438         AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  2439         SUMMARY_video="${SUMMARY_video} opengl"
  2440     fi
  2441 }
  2442 
  2443 dnl Check for MacOS OpenGLES
  2444 CheckMacGLES()
  2445 {
  2446     if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then
  2447         video_opengl_egl=yes
  2448         AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ])
  2449         video_opengles_v2=yes
  2450         AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ])
  2451         AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
  2452         SUMMARY_video="${SUMMARY_video} opengl_es2"
  2453     fi
  2454 }
  2455 
  2456 CheckEmscriptenGLES()
  2457 {
  2458     if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then
  2459         AC_MSG_CHECKING(for EGL support)
  2460         video_opengl_egl=no
  2461         AC_TRY_COMPILE([
  2462          #include <EGL/egl.h>
  2463         ],[
  2464         ],[
  2465         video_opengl_egl=yes
  2466         ])
  2467         AC_MSG_RESULT($video_opengl_egl)
  2468         if test x$video_opengl_egl = xyes; then
  2469             AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ])
  2470         fi
  2471 
  2472         AC_MSG_CHECKING(for OpenGL ES v2 headers)
  2473         video_opengles_v2=no
  2474         AC_TRY_COMPILE([
  2475          #include <GLES2/gl2.h>
  2476          #include <GLES2/gl2ext.h>
  2477         ],[
  2478         ],[
  2479         video_opengles_v2=yes
  2480         ])
  2481         AC_MSG_RESULT($video_opengles_v2)
  2482         if test x$video_opengles_v2 = xyes; then
  2483             AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ])
  2484             AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
  2485             SUMMARY_video="${SUMMARY_video} opengl_es2"
  2486         fi
  2487     fi
  2488 }
  2489 
  2490 dnl Check to see if Vulkan support is desired
  2491 AC_ARG_ENABLE(video-vulkan,
  2492 AS_HELP_STRING([--enable-video-vulkan], [include Vulkan support [[default=yes]]]),
  2493               , enable_video_vulkan=yes)
  2494 
  2495 dnl Find Vulkan Header
  2496 CheckVulkan()
  2497 {
  2498     if test x$enable_video = xyes -a x$enable_video_vulkan = xyes; then
  2499         case "$host" in
  2500             *-*-android*)
  2501                 AC_TRY_COMPILE([
  2502                   #if defined(__ARM_ARCH) && __ARM_ARCH < 7
  2503                   #error Vulkan doesn't work on this configuration
  2504                   #endif
  2505                 ],[
  2506                 ],[
  2507                 ],[
  2508                     enable_video_vulkan=no
  2509                 ])
  2510                 ;;
  2511             *-*-darwin*)
  2512                 save_CFLAGS="$CFLAGS"
  2513                 dnl Work around that we don't have Objective-C support in autoconf
  2514                 CFLAGS="$CFLAGS -x objective-c"
  2515                 AC_TRY_COMPILE([
  2516                   #include <Cocoa/Cocoa.h>
  2517                   #include <Metal/Metal.h>
  2518                   #include <QuartzCore/CAMetalLayer.h>
  2519 
  2520                   #if !TARGET_CPU_X86_64
  2521                   #error Vulkan doesn't work on this configuration
  2522                   #endif
  2523                 ],[
  2524                 ],[
  2525                 ],[
  2526                     enable_video_vulkan=no
  2527                 ])
  2528                 CFLAGS="$save_CFLAGS"
  2529                 ;;
  2530             *)
  2531                 ;;
  2532         esac
  2533         if test x$enable_video_vulkan = xno; then
  2534             # For reasons I am totally unable to see, I get an undefined macro error if
  2535             # I put this in the AC_TRY_COMPILE.
  2536             AC_MSG_WARN([Vulkan does not work on this configuration.])
  2537         fi
  2538     fi
  2539     if test x$enable_video_vulkan = xyes; then
  2540         AC_DEFINE(SDL_VIDEO_VULKAN, 1, [ ])
  2541         SUMMARY_video="${SUMMARY_video} vulkan"
  2542     fi
  2543 }
  2544 
  2545 dnl See if we can use the new unified event interface in Linux 2.4
  2546 CheckInputEvents()
  2547 {
  2548     dnl Check for Linux 2.4 unified input event interface support
  2549         AC_MSG_CHECKING(for Linux 2.4 unified input interface)
  2550         use_input_events=no
  2551         AC_TRY_COMPILE([
  2552           #include <linux/input.h>
  2553         ],[
  2554           #ifndef EVIOCGNAME
  2555           #error EVIOCGNAME() ioctl not available
  2556           #endif
  2557         ],[
  2558         use_input_events=yes
  2559         ])
  2560         AC_MSG_RESULT($use_input_events)
  2561         if test x$use_input_events = xyes; then
  2562             AC_DEFINE(SDL_INPUT_LINUXEV, 1, [ ])
  2563             SUMMARY_input="${SUMMARY_input} linuxev"
  2564         fi
  2565 }
  2566 
  2567 dnl See if we can use the kernel kd.h header
  2568 CheckInputKD()
  2569 {
  2570 
  2571     AC_MSG_CHECKING(for Linux kd.h)
  2572     use_input_kd=no
  2573     AC_TRY_COMPILE([
  2574       #include <linux/kd.h>
  2575       #include <linux/keyboard.h>
  2576     ],[
  2577         struct kbentry kbe;
  2578         kbe.kb_table = KG_CTRL;
  2579         ioctl(0, KDGKBENT, &kbe);
  2580     ],[
  2581     use_input_kd=yes
  2582     ])
  2583     AC_MSG_RESULT($use_input_kd)
  2584     if test x$use_input_kd = xyes; then
  2585         AC_DEFINE(SDL_INPUT_LINUXKD, 1, [ ])
  2586         SUMMARY_input="${SUMMARY_input} linuxkd"
  2587     fi
  2588 }
  2589 
  2590 dnl See if the platform offers libudev for device enumeration and hotplugging.
  2591 CheckLibUDev()
  2592 {
  2593     AC_ARG_ENABLE(libudev,
  2594 AS_HELP_STRING([--enable-libudev], [enable libudev support [[default=yes]]]),
  2595                         , enable_libudev=yes)
  2596     if test x$enable_libudev = xyes; then
  2597         AC_CHECK_HEADER(libudev.h,
  2598                         have_libudev_h_hdr=yes,
  2599                         have_libudev_h_hdr=no)
  2600         if test x$have_libudev_h_hdr = xyes; then
  2601             AC_DEFINE(HAVE_LIBUDEV_H, 1, [ ])
  2602 
  2603             udev_lib=[`find_lib "libudev.so.*" "" | sed 's/.*\/\(.*\)/\1/; q'`]
  2604             if test x$udev_lib != x; then
  2605                 echo "-- dynamic udev -> $udev_lib"
  2606                 AC_DEFINE_UNQUOTED(SDL_UDEV_DYNAMIC, "$udev_lib", [ ])
  2607             fi
  2608         fi
  2609     fi
  2610 }
  2611 
  2612 dnl See if the platform offers libdbus for various IPC techniques.
  2613 CheckDBus()
  2614 {
  2615     AC_ARG_ENABLE(dbus,
  2616 AS_HELP_STRING([--enable-dbus], [enable D-Bus support [[default=yes]]]),
  2617                         , enable_dbus=yes)
  2618     if test x$enable_dbus = xyes; then
  2619         PKG_CHECK_MODULES([DBUS], [dbus-1], have_dbus=yes, have_dbus=no)
  2620         save_CFLAGS="$CFLAGS"
  2621         CFLAGS="$save_CFLAGS $DBUS_CFLAGS"
  2622         AC_CHECK_HEADER(dbus/dbus.h,
  2623                         have_dbus_dbus_h_hdr=yes,
  2624                         have_dbus_dbus_h_hdr=no)
  2625         CFLAGS="$save_CFLAGS"
  2626         if test x$have_dbus_dbus_h_hdr = xyes; then
  2627             AC_DEFINE(HAVE_DBUS_DBUS_H, 1, [ ])
  2628             EXTRA_CFLAGS="$EXTRA_CFLAGS $DBUS_CFLAGS"
  2629             SOURCES="$SOURCES $srcdir/src/core/linux/SDL_dbus.c"
  2630         fi
  2631     fi
  2632 }
  2633 
  2634 dnl See if the platform wanna IME support.
  2635 CheckIME()
  2636 {
  2637     AC_ARG_ENABLE(ime,
  2638 AS_HELP_STRING([--enable-ime], [enable IME support [[default=yes]]]),
  2639                   , enable_ime=yes)
  2640     if test x$enable_ime = xyes; then
  2641         AC_DEFINE(SDL_USE_IME, 1, [ ])
  2642         SOURCES="$SOURCES $srcdir/src/core/linux/SDL_ime.c"
  2643     fi
  2644 }
  2645 
  2646 dnl See if the platform has libibus IME support.
  2647 CheckIBus()
  2648 {
  2649     AC_ARG_ENABLE(ibus,
  2650 AS_HELP_STRING([--enable-ibus], [enable IBus support [[default=yes]]]),
  2651                   , enable_ibus=yes)
  2652     if test x$enable_ibus = xyes; then
  2653         PKG_CHECK_MODULES([IBUS], [ibus-1.0], have_ibus=yes, have_ibus=no)
  2654         save_CFLAGS="$CFLAGS"
  2655         CFLAGS="$save_CFLAGS $IBUS_CFLAGS"
  2656         AC_CHECK_HEADER(ibus-1.0/ibus.h,
  2657                         have_ibus_ibus_h_hdr=yes,
  2658                         have_ibus_ibus_h_hdr=no)
  2659         AC_CHECK_HEADER(sys/inotify.h,
  2660                         have_inotify_inotify_h_hdr=yes,
  2661                         have_inotify_inotify_h_hdr=no)
  2662         CFLAGS="$save_CFLAGS"
  2663         if test x$have_ibus_ibus_h_hdr = xyes; then
  2664             if test x$enable_ime != xyes; then
  2665                 AC_MSG_WARN([IME support is required for IBus.])
  2666                 have_ibus_ibus_h_hdr=no
  2667             elif test x$enable_dbus != xyes; then
  2668                 AC_MSG_WARN([DBus support is required for IBus.])
  2669                 have_ibus_ibus_h_hdr=no
  2670             elif test x$have_inotify_inotify_h_hdr != xyes; then
  2671                 AC_MSG_WARN([INotify support is required for IBus.])
  2672                 have_ibus_ibus_h_hdr=no
  2673             else
  2674                 AC_DEFINE(HAVE_IBUS_IBUS_H, 1, [ ])
  2675                 EXTRA_CFLAGS="$EXTRA_CFLAGS $IBUS_CFLAGS"
  2676                 SOURCES="$SOURCES $srcdir/src/core/linux/SDL_ibus.c"
  2677             fi
  2678         fi
  2679     fi
  2680 }
  2681 
  2682 dnl See if the platform has fcitx IME support.
  2683 CheckFcitx()
  2684 {
  2685     AC_ARG_ENABLE(fcitx,
  2686 AS_HELP_STRING([--enable-fcitx], [enable fcitx support [[default=yes]]]),
  2687                   , enable_fcitx=yes)
  2688     if test x$enable_fcitx = xyes; then
  2689         PKG_CHECK_MODULES([FCITX], [fcitx], have_fcitx=yes, have_fcitx=no)
  2690         CFLAGS="$CFLAGS $FCITX_CFLAGS"
  2691         AC_CHECK_HEADER(fcitx/frontend.h,
  2692                         have_fcitx_frontend_h_hdr=yes,
  2693                         have_fcitx_frontend_h_hdr=no)
  2694         CFLAGS="$save_CFLAGS"
  2695         if test x$have_fcitx_frontend_h_hdr = xyes; then
  2696             if test x$enable_ime != xyes; then
  2697                 AC_MSG_WARN([IME support is required for fcitx.])
  2698                 have_fcitx_frontend_h_hdr=no
  2699             elif test x$enable_dbus != xyes; then
  2700                 AC_MSG_WARN([DBus support is required for fcitx.])
  2701                 have_fcitx_frontend_h_hdr=no
  2702             else
  2703                 AC_DEFINE(HAVE_FCITX_FRONTEND_H, 1, [ ])
  2704                 EXTRA_CFLAGS="$EXTRA_CFLAGS $FCITX_CFLAGS"
  2705                 SOURCES="$SOURCES $srcdir/src/core/linux/SDL_fcitx.c"
  2706             fi
  2707         fi
  2708     fi
  2709 }
  2710 
  2711 dnl See if we can use the Touchscreen input library
  2712 CheckTslib()
  2713 {
  2714     AC_ARG_ENABLE(input-tslib,
  2715 AS_HELP_STRING([--enable-input-tslib], [use the Touchscreen library for input [[default=yes]]]),
  2716                   , enable_input_tslib=yes)
  2717     if test x$enable_input_tslib = xyes; then
  2718         AC_MSG_CHECKING(for Touchscreen library support)
  2719         enable_input_tslib=no
  2720         AC_TRY_COMPILE([
  2721           #include "tslib.h"
  2722         ],[
  2723         ],[
  2724         enable_input_tslib=yes
  2725         ])
  2726         AC_MSG_RESULT($enable_input_tslib)
  2727         if test x$enable_input_tslib = xyes; then
  2728             AC_DEFINE(SDL_INPUT_TSLIB, 1, [ ])
  2729             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lts"
  2730             SUMMARY_input="${SUMMARY_input} ts"
  2731         fi
  2732     fi
  2733 }
  2734 
  2735 dnl See what type of thread model to use on Linux and Solaris
  2736 CheckPTHREAD()
  2737 {
  2738     dnl Check for pthread support
  2739     AC_ARG_ENABLE(pthreads,
  2740 AS_HELP_STRING([--enable-pthreads], [use POSIX threads for multi-threading [[default=yes]]]),
  2741                   , enable_pthreads=yes)
  2742     dnl This is used on Linux for glibc binary compatibility (Doh!)
  2743     AC_ARG_ENABLE(pthread-sem,
  2744 AS_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [[default=yes]]]),
  2745                   , enable_pthread_sem=yes)
  2746     case "$host" in
  2747          *-*-android*)
  2748             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  2749             pthread_lib=""
  2750             ;;
  2751         *-*-linux*|*-*-uclinux*)
  2752             pthread_cflags="-D_REENTRANT"
  2753             pthread_lib="-lpthread"
  2754             ;;
  2755         *-*-bsdi*)
  2756             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  2757             pthread_lib=""
  2758             ;;
  2759         *-*-darwin*)
  2760             pthread_cflags="-D_THREAD_SAFE"
  2761 # causes Carbon.p complaints?
  2762 #            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  2763             ;;
  2764         *-*-freebsd*|*-*-dragonfly*)
  2765             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  2766             pthread_lib="-pthread"
  2767             ;;
  2768         *-*-netbsd*)
  2769             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  2770             pthread_lib="-lpthread"
  2771             ;;
  2772         *-*-openbsd*)
  2773             pthread_cflags="-D_REENTRANT"
  2774             pthread_lib="-pthread"
  2775             ;;
  2776         *-*-solaris2.9)
  2777             # From Solaris 9+, posix4's preferred name is rt.
  2778             pthread_cflags="-D_REENTRANT"
  2779             pthread_lib="-lpthread -lrt"
  2780             ;;
  2781         *-*-solaris2.10)
  2782             # Solaris 10+ merged pthread into libc.
  2783             pthread_cflags="-D_REENTRANT"
  2784             pthread_lib="-lrt"
  2785             ;;
  2786         *-*-solaris*)
  2787             # Solaris 11+ merged rt into libc.
  2788             pthread_cflags="-D_REENTRANT"
  2789             pthread_lib=""
  2790             ;;
  2791         *-*-sysv5*)
  2792             pthread_cflags="-D_REENTRANT -Kthread"
  2793             pthread_lib=""
  2794             ;;
  2795         *-*-aix*)
  2796             pthread_cflags="-D_REENTRANT -mthreads"
  2797             pthread_lib="-lpthread"
  2798             ;;
  2799         *-*-hpux11*)
  2800             pthread_cflags="-D_REENTRANT"
  2801             pthread_lib="-L/usr/lib -lpthread"
  2802             ;;
  2803         *-*-haiku*)
  2804             pthread_cflags="-D_REENTRANT"
  2805             pthread_lib=""
  2806             ;;
  2807         *-*-nto*)
  2808             pthread_cflags="-D_REENTRANT"
  2809             pthread_lib=""
  2810             ;;
  2811         *)
  2812             pthread_cflags="-D_REENTRANT"
  2813             pthread_lib="-lpthread"
  2814             ;;
  2815     esac
  2816     if test x$enable_threads = xyes -a x$enable_pthreads = xyes; then
  2817         # Save the original compiler flags and libraries
  2818         ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
  2819         # Add the pthread compiler flags and libraries
  2820         CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
  2821         # Check to see if we have pthread support on this system
  2822         AC_MSG_CHECKING(for pthreads)
  2823         use_pthreads=no
  2824         AC_TRY_LINK([
  2825          #include <pthread.h>
  2826         ],[
  2827          pthread_attr_t type;
  2828          pthread_attr_init(&type);
  2829         ],[
  2830         use_pthreads=yes
  2831         ])
  2832         AC_MSG_RESULT($use_pthreads)
  2833         # Restore the compiler flags and libraries
  2834         CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
  2835 
  2836         # Do futher testing if we have pthread support...
  2837         if test x$use_pthreads = xyes; then
  2838             AC_DEFINE(SDL_THREAD_PTHREAD, 1, [ ])
  2839             EXTRA_CFLAGS="$EXTRA_CFLAGS $pthread_cflags"
  2840             EXTRA_LDFLAGS="$EXTRA_LDFLAGS $pthread_lib"
  2841             SDL_CFLAGS="$SDL_CFLAGS $pthread_cflags"
  2842 
  2843             # Save the original compiler flags and libraries
  2844             ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
  2845             # Add the pthread compiler flags and libraries
  2846             CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
  2847 
  2848             # Check to see if recursive mutexes are available
  2849             AC_MSG_CHECKING(for recursive mutexes)
  2850             has_recursive_mutexes=no
  2851             if test x$has_recursive_mutexes = xno; then
  2852                 AC_TRY_LINK([
  2853                   #define _GNU_SOURCE 1
  2854                   #include <pthread.h>
  2855                 ],[
  2856                   pthread_mutexattr_t attr;
  2857                   pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
  2858                 ],[
  2859                 has_recursive_mutexes=yes
  2860                 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX, 1, [ ])
  2861                 ])
  2862             fi
  2863             if test x$has_recursive_mutexes = xno; then
  2864                 AC_TRY_LINK([
  2865                   #define _GNU_SOURCE 1
  2866                   #include <pthread.h>
  2867                 ],[
  2868                   pthread_mutexattr_t attr;
  2869                   pthread_mutexattr_setkind_np(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
  2870                 ],[
  2871                 has_recursive_mutexes=yes
  2872                 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP, 1, [ ])
  2873                 ])
  2874             fi
  2875             AC_MSG_RESULT($has_recursive_mutexes)
  2876 
  2877             # Check to see if pthread semaphore support is missing
  2878             if test x$enable_pthread_sem = xyes; then
  2879                 AC_MSG_CHECKING(for pthread semaphores)
  2880                 have_pthread_sem=no
  2881                 AC_TRY_COMPILE([
  2882                   #include <pthread.h>
  2883                   #include <semaphore.h>
  2884                 ],[
  2885                 ],[
  2886                 have_pthread_sem=yes
  2887                 ])
  2888                 AC_MSG_RESULT($have_pthread_sem)
  2889             fi
  2890             if test x$have_pthread_sem = xyes; then
  2891                 AC_MSG_CHECKING(for sem_timedwait)
  2892                 have_sem_timedwait=no
  2893                 AC_TRY_LINK([
  2894                   #include <pthread.h>
  2895                   #include <semaphore.h>
  2896                 ],[
  2897                   sem_timedwait(NULL, NULL);
  2898                 ],[
  2899                 have_sem_timedwait=yes
  2900                 AC_DEFINE([HAVE_SEM_TIMEDWAIT], 1, [ ])
  2901                 ])
  2902                 AC_MSG_RESULT($have_sem_timedwait)
  2903             fi
  2904 
  2905             AC_CHECK_HEADER(pthread_np.h, have_pthread_np_h=yes, have_pthread_np_h=no, [ #include <pthread.h> ])
  2906             if test x$have_pthread_np_h = xyes; then
  2907                 AC_DEFINE(HAVE_PTHREAD_NP_H, 1, [ ])
  2908             fi
  2909 
  2910             # Check to see if pthread naming is available
  2911             AC_MSG_CHECKING(for pthread_setname_np)
  2912             AC_TRY_LINK_FUNC(pthread_setname_np, [
  2913               has_pthread_setname_np=yes
  2914               AC_DEFINE(HAVE_PTHREAD_SETNAME_NP, 1, [ ])
  2915             ],[
  2916               has_pthread_setname_np=no
  2917             ])
  2918             AC_MSG_RESULT($has_pthread_setname_np)
  2919 
  2920             AC_MSG_CHECKING(for pthread_set_name_np)
  2921             AC_TRY_LINK_FUNC(pthread_set_name_np, [
  2922               has_pthread_set_name_np=yes
  2923               AC_DEFINE(HAVE_PTHREAD_SET_NAME_NP, 1, [ ])
  2924             ],[
  2925               has_pthread_set_name_np=no
  2926             ])
  2927             AC_MSG_RESULT($has_pthread_set_name_np)
  2928 
  2929             # Restore the compiler flags and libraries
  2930             CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
  2931 
  2932             # Basic thread creation functions
  2933             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_systhread.c"
  2934 
  2935             # Semaphores
  2936             # We can fake these with mutexes and condition variables if necessary
  2937             if test x$have_pthread_sem = xyes; then
  2938                 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syssem.c"
  2939             else
  2940                 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syssem.c"
  2941             fi
  2942 
  2943             # Mutexes
  2944             # We can fake these with semaphores if necessary
  2945             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_sysmutex.c"
  2946 
  2947             # Condition variables
  2948             # We can fake these with semaphores and mutexes if necessary
  2949             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syscond.c"
  2950 
  2951             # Thread local storage
  2952             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_systls.c"
  2953 
  2954             have_threads=yes
  2955         fi
  2956     fi
  2957 }
  2958 
  2959 dnl Determine whether the compiler can produce Windows executables
  2960 CheckWINDOWS()
  2961 {
  2962     AC_MSG_CHECKING(Windows compiler)
  2963     have_win32_gcc=no
  2964     AC_TRY_COMPILE([
  2965      #include <windows.h>
  2966     ],[
  2967     ],[
  2968     have_win32_gcc=yes
  2969     ])
  2970     AC_MSG_RESULT($have_win32_gcc)
  2971     if test x$have_win32_gcc != xyes; then
  2972        AC_MSG_ERROR([
  2973 *** Your compiler ($CC) does not produce Windows executables!
  2974        ])
  2975     fi
  2976 
  2977     AC_MSG_CHECKING(Windows CE)
  2978     have_wince=no
  2979     AC_TRY_COMPILE([
  2980 #if !defined(_WIN32_WCE) && !defined(__MINGW32CE__)
  2981 #error This is not Windows CE
  2982 #endif
  2983     ],[
  2984     ],[
  2985     have_wince=yes
  2986        AC_MSG_ERROR([
  2987 *** Sorry, Windows CE is no longer supported.
  2988        ])
  2989     ])
  2990     AC_MSG_RESULT($have_wince)
  2991 
  2992     # This fixes Windows stack alignment with newer GCC
  2993     CheckStackBoundary
  2994 }
  2995 
  2996 dnl Find the DirectX includes and libraries
  2997 CheckDIRECTX()
  2998 {
  2999     AC_ARG_ENABLE(directx,
  3000 AS_HELP_STRING([--enable-directx], [use DirectX for Windows audio/video [[default=yes]]]),
  3001                   , enable_directx=yes)
  3002     if test x$enable_directx = xyes; then
  3003         AC_CHECK_HEADER(d3d9.h, have_d3d=yes)
  3004         AC_CHECK_HEADER(d3d11_1.h, have_d3d11=yes)
  3005         AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
  3006         AC_CHECK_HEADER(dsound.h, have_dsound=yes)
  3007         AC_CHECK_HEADER(dinput.h, have_dinput=yes)
  3008         AC_CHECK_HEADER(dxgi.h, have_dxgi=yes)
  3009         AC_CHECK_HEADER(xinput.h, have_xinput=yes)
  3010         AC_TRY_COMPILE([
  3011 #include <windows.h>
  3012 #include <xinput.h>
  3013 XINPUT_GAMEPAD_EX x1;
  3014         ],[],[have_xinput_gamepadex=yes])
  3015         AC_TRY_COMPILE([
  3016 #include <windows.h>
  3017 #include <xinput.h>
  3018 XINPUT_STATE_EX s1;
  3019         ],[],[have_xinput_stateex=yes])
  3020 
  3021         if test x$have_ddraw = xyes; then
  3022             AC_DEFINE(HAVE_DDRAW_H, 1, [ ])
  3023         fi
  3024         if test x$have_dinput = xyes; then
  3025             AC_DEFINE(HAVE_DINPUT_H, 1, [ ])
  3026         fi
  3027         if test x$have_dsound = xyes; then
  3028             AC_DEFINE(HAVE_DSOUND_H, 1, [ ])
  3029         fi
  3030         if test x$have_dxgi = xyes; then
  3031             AC_DEFINE(HAVE_DXGI_H, 1, [ ])
  3032         fi
  3033         if test x$have_xinput = xyes; then
  3034             AC_DEFINE(HAVE_XINPUT_H, 1, [ ])
  3035         fi
  3036         if test x$have_xinput_gamepadex = xyes; then
  3037             AC_DEFINE(HAVE_XINPUT_GAMEPAD_EX, 1, [ ])
  3038         fi
  3039         if test x$have_xinput_stateex = xyes; then
  3040             AC_DEFINE(HAVE_XINPUT_STATE_EX, 1, [ ])
  3041         fi
  3042 
  3043         # FIXME: latest Cygwin finds dinput headers, but we die on other win32 headers.
  3044         # FIXME:  ...so force it off for now.
  3045         case "$host" in
  3046             *-*-cygwin*)
  3047             have_dinput=false
  3048             ;;
  3049         esac
  3050     fi
  3051 
  3052     AC_CHECK_HEADER(mmdeviceapi.h, have_wasapi=yes)
  3053     if test x$have_wasapi = xyes; then
  3054         AC_DEFINE(HAVE_MMDEVICEAPI_H,1,[])
  3055     fi
  3056     AC_CHECK_HEADER(audioclient.h,,have_wasapi=no)
  3057     if test x$have_wasapi = xyes; then
  3058         AC_DEFINE(HAVE_AUDIOCLIENT_H,1,[])
  3059     fi
  3060 
  3061     AC_ARG_ENABLE(wasapi,
  3062 AS_HELP_STRING([--enable-wasapi], [use the Windows WASAPI audio driver [[default=yes]]]),
  3063                                 , enable_wasapi=yes)
  3064 }
  3065 
  3066 dnl Check for the dlfcn.h interface for dynamically loading objects
  3067 CheckDLOPEN()
  3068 {
  3069     AC_ARG_ENABLE(sdl-dlopen,
  3070 AS_HELP_STRING([--enable-sdl-dlopen], [use dlopen for shared object loading [[default=yes]]]),
  3071                   , enable_sdl_dlopen=yes)
  3072     if test x$enable_sdl_dlopen = xyes; then
  3073         AC_MSG_CHECKING(for dlopen)
  3074         have_dlopen=no
  3075         AC_TRY_COMPILE([
  3076          #include <dlfcn.h>
  3077         ],[
  3078          void *handle = dlopen("", RTLD_NOW);
  3079          const char *loaderror = (char *) dlerror();
  3080         ],[
  3081         have_dlopen=yes
  3082         ])
  3083         AC_MSG_RESULT($have_dlopen)
  3084 
  3085         if test x$have_dlopen = xyes; then
  3086             AC_CHECK_LIB(c, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS",
  3087                AC_CHECK_LIB(dl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldl",
  3088                   AC_CHECK_LIB(ltdl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lltdl")))
  3089             AC_DEFINE(SDL_LOADSO_DLOPEN, 1, [ ])
  3090             SOURCES="$SOURCES $srcdir/src/loadso/dlopen/*.c"
  3091             have_loadso=yes
  3092         fi
  3093     fi
  3094 }
  3095 
  3096 dnl Check for the usbhid(3) library on *BSD
  3097 CheckUSBHID()
  3098 {
  3099     case "$host" in
  3100         *-*-*bsd*)
  3101             if test x$enable_joystick = xyes; then
  3102                 AC_CHECK_LIB(usbhid, hid_init, have_libusbhid=yes)
  3103                 if test x$have_libusbhid = xyes; then
  3104                     AC_CHECK_HEADER(usbhid.h, [USB_CFLAGS="-DHAVE_USBHID_H"])
  3105                     AC_CHECK_HEADER(libusbhid.h, [USB_CFLAGS="-DHAVE_LIBUSBHID_H"])
  3106                     USB_LIBS="$USB_LIBS -lusbhid"
  3107                 else
  3108                     AC_CHECK_HEADER(usb.h, [USB_CFLAGS="-DHAVE_USB_H"])
  3109                     AC_CHECK_HEADER(libusb.h, [USB_CFLAGS="-DHAVE_LIBUSB_H"])
  3110                     AC_CHECK_LIB(usb, hid_init, [USB_LIBS="$USB_LIBS -lusb"])
  3111                 fi
  3112                 
  3113                 save_CFLAGS="$CFLAGS"
  3114                 CFLAGS="$CFLAGS $USB_CFLAGS"
  3115 
  3116                 AC_MSG_CHECKING(for usbhid)
  3117                 have_usbhid=no
  3118                 AC_TRY_COMPILE([
  3119                   #include <sys/types.h>
  3120                   #if defined(HAVE_USB_H)
  3121                   #include <usb.h>
  3122                   #endif
  3123                   #ifdef __DragonFly__
  3124                   # include <bus/usb/usb.h>
  3125                   # include <bus/usb/usbhid.h>
  3126                   #else
  3127                   # include <dev/usb/usb.h>
  3128                   # include <dev/usb/usbhid.h>
  3129                   #endif
  3130                   #if defined(HAVE_USBHID_H)
  3131                   #include <usbhid.h>
  3132                   #elif defined(HAVE_LIBUSB_H)
  3133                   #include <libusb.h>
  3134                   #elif defined(HAVE_LIBUSBHID_H)
  3135                   #include <libusbhid.h>
  3136                   #endif
  3137                 ],[
  3138                   struct report_desc *repdesc;
  3139                   struct usb_ctl_report *repbuf;
  3140                   hid_kind_t hidkind;
  3141                 ],[
  3142                 have_usbhid=yes
  3143                 ])
  3144                 AC_MSG_RESULT($have_usbhid)
  3145 
  3146                 if test x$have_usbhid = xyes; then
  3147                     AC_MSG_CHECKING(for ucr_data member of usb_ctl_report)
  3148                     have_usbhid_ucr_data=no
  3149                     AC_TRY_COMPILE([
  3150                       #include <sys/types.h>
  3151                       #if defined(HAVE_USB_H)
  3152                       #include <usb.h>
  3153                       #endif
  3154                       #ifdef __DragonFly__
  3155                       # include <bus/usb/usb.h>
  3156                       # include <bus/usb/usbhid.h>
  3157                       #else
  3158                       # include <dev/usb/usb.h>
  3159                       # include <dev/usb/usbhid.h>
  3160                       #endif
  3161                       #if defined(HAVE_USBHID_H)
  3162                       #include <usbhid.h>
  3163                       #elif defined(HAVE_LIBUSB_H)
  3164                       #include <libusb.h>
  3165                       #elif defined(HAVE_LIBUSBHID_H)
  3166                       #include <libusbhid.h>
  3167                       #endif
  3168                     ],[
  3169                       struct usb_ctl_report buf;
  3170                       if (buf.ucr_data) { }
  3171                     ],[
  3172                     have_usbhid_ucr_data=yes
  3173                     ])
  3174                     if test x$have_usbhid_ucr_data = xyes; then
  3175                         USB_CFLAGS="$USB_CFLAGS -DUSBHID_UCR_DATA"
  3176                     fi
  3177                     AC_MSG_RESULT($have_usbhid_ucr_data)
  3178                     
  3179                     AC_MSG_CHECKING(for new usbhid API)
  3180                     have_usbhid_new=no
  3181                     AC_TRY_COMPILE([
  3182                       #include <sys/types.h>
  3183                       #if defined(HAVE_USB_H)
  3184                       #include <usb.h>
  3185                       #endif
  3186                       #ifdef __DragonFly__
  3187                       #include <bus/usb/usb.h>
  3188                       #include <bus/usb/usbhid.h>
  3189                       #else
  3190                       #include <dev/usb/usb.h>
  3191                       #include <dev/usb/usbhid.h>
  3192                       #endif
  3193                       #if defined(HAVE_USBHID_H)
  3194                       #include <usbhid.h>
  3195                       #elif defined(HAVE_LIBUSB_H)
  3196                       #include <libusb.h>
  3197                       #elif defined(HAVE_LIBUSBHID_H)
  3198                       #include <libusbhid.h>
  3199                       #endif
  3200                     ],[
  3201                       report_desc_t d;
  3202                       hid_start_parse(d, 1, 1);
  3203                     ],[
  3204                     have_usbhid_new=yes
  3205                     ])
  3206                     if test x$have_usbhid_new = xyes; then
  3207                         USB_CFLAGS="$USB_CFLAGS -DUSBHID_NEW"
  3208                     fi
  3209                     AC_MSG_RESULT($have_usbhid_new)
  3210 
  3211                     AC_MSG_CHECKING(for struct joystick in machine/joystick.h)
  3212                     have_machine_joystick=no
  3213                     AC_TRY_COMPILE([
  3214                       #include <machine/joystick.h>
  3215                     ],[
  3216                       struct joystick t;
  3217                     ],[
  3218                     have_machine_joystick=yes
  3219                     ])
  3220                     if test x$have_machine_joystick = xyes; then
  3221                         AC_DEFINE(SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H, 1, [ ])
  3222                     fi
  3223                     AC_MSG_RESULT($have_machine_joystick)
  3224 
  3225                     AC_DEFINE(SDL_JOYSTICK_USBHID, 1, [ ])
  3226                     SOURCES="$SOURCES $srcdir/src/joystick/bsd/*.c"
  3227                     EXTRA_CFLAGS="$EXTRA_CFLAGS $USB_CFLAGS"
  3228                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS $USB_LIBS"
  3229                     have_joystick=yes
  3230                 fi
  3231                 CFLAGS="$save_CFLAGS"
  3232             fi
  3233         ;;
  3234     esac
  3235 }
  3236 
  3237 dnl Check for HIDAPI joystick drivers
  3238 CheckHIDAPI()
  3239 {
  3240     # The hidraw support doesn't catch Xbox, PS4 and Nintendo controllers,
  3241     # so we'll just use libusb when it's available.
  3242     case "$host" in
  3243         # libusb does not support iOS
  3244         arm*-apple-darwin* | *-ios-* )
  3245             skiplibusb=yes
  3246             ;;
  3247         # On the other hand, *BSD specifically uses libusb only
  3248         *-*-*bsd* )
  3249             onlylibusb=yes
  3250             ;;
  3251     esac
  3252 
  3253     AC_ARG_ENABLE(hidapi,
  3254 AS_HELP_STRING([--enable-hidapi], [use HIDAPI for low level joystick drivers [[default=no]]]),
  3255                   , enable_hidapi=no)
  3256     if test x$enable_joystick = xyes -a x$enable_hidapi = xyes; then
  3257         if test x$skiplibusb = xyes; then
  3258             hidapi_support=yes
  3259         else
  3260             PKG_CHECK_MODULES([LIBUSB], [libusb-1.0], have_libusb=yes, have_libusb=no)
  3261             save_CFLAGS="$CFLAGS"
  3262             CFLAGS="$save_CFLAGS $LIBUSB_CFLAGS"
  3263             AC_CHECK_HEADER(libusb.h, have_libusb_h=yes)
  3264             CFLAGS="$save_CFLAGS"
  3265             if test x$have_libusb_h = xyes; then
  3266                 hidapi_support=yes
  3267             elif test x$onlylibusb = xyes; then
  3268                 hidapi_support=no
  3269             else
  3270                 hidapi_support=yes
  3271             fi
  3272         fi
  3273 
  3274         if test x$hidapi_support = xyes; then
  3275             AC_DEFINE(SDL_JOYSTICK_HIDAPI, 1, [ ])
  3276             EXTRA_CFLAGS="$EXTRA_CFLAGS -I$srcdir/src/hidapi/hidapi"
  3277             SOURCES="$SOURCES $srcdir/src/joystick/hidapi/*.c"
  3278 
  3279             if test x$have_libusb_h = xyes; then
  3280                 EXTRA_CFLAGS="$EXTRA_CFLAGS $LIBUSB_CFLAGS"
  3281                 if test x$onlylibusb = xyes; then
  3282                     SOURCES="$SOURCES $srcdir/src/hidapi/libusb/hid.c"
  3283                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS $LIBUSB_LIBS"
  3284                 else
  3285                     if test x$have_loadso != xyes; then
  3286                         AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic libusb loading])
  3287                     fi
  3288                     SOURCES="$SOURCES $srcdir/src/hidapi/SDL_hidapi.c"
  3289                     # libusb is loaded dynamically, so don't add it to LDFLAGS
  3290                     libusb_lib=""
  3291                     case "$host" in
  3292                         *-*-darwin* )
  3293                             libusb_lib="libusb-1.0.0.dylib"
  3294                             ;;
  3295                         *-*-cygwin* | *-*-mingw32* )
  3296                             libusb_lib="libusb-1.0.dll"
  3297                             ;;
  3298                     esac
  3299                     if test x$libusb_lib = x; then
  3300                         libusb_lib=[`find_lib "libusb-1.0.so.*" "" | sed 's/.*\/\(.*\)/\1/; q'`]
  3301                     fi
  3302                     AC_DEFINE_UNQUOTED(SDL_LIBUSB_DYNAMIC, "$libusb_lib", [ ])
  3303                 fi
  3304             else
  3305                 case "$host" in
  3306                 *-*-cygwin* | *-*-mingw32* )
  3307                     SOURCES="$SOURCES $srcdir/src/hidapi/windows/hid.c"
  3308                     ;;
  3309                 *-*-darwin* )
  3310                     SOURCES="$SOURCES $srcdir/src/hidapi/mac/hid.c"
  3311                     ;;
  3312                 esac
  3313             fi
  3314         fi
  3315 
  3316         AC_MSG_CHECKING(for hidapi support)
  3317         AC_MSG_RESULT($hidapi_support)
  3318     fi
  3319 }
  3320 
  3321 dnl Check for clock_gettime()
  3322 CheckClockGettime()
  3323 {
  3324     AC_ARG_ENABLE(clock_gettime,
  3325 AS_HELP_STRING([--enable-clock_gettime], [use clock_gettime() instead of gettimeofday() on UNIX [[default=yes]]]),
  3326                   , enable_clock_gettime=yes)
  3327     if test x$enable_clock_gettime = xyes; then
  3328         AC_CHECK_LIB(rt, clock_gettime, have_clock_gettime=yes)
  3329         if test x$have_clock_gettime = xyes; then
  3330             AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [ ])
  3331             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lrt"
  3332         else
  3333             AC_CHECK_LIB(c, clock_gettime, have_clock_gettime=yes)
  3334             if test x$have_clock_gettime = xyes; then
  3335                AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [ ])
  3336                EXTRA_LDFLAGS="$EXTRA_LDFLAGS"
  3337             fi
  3338         fi
  3339     fi
  3340 }
  3341 
  3342 dnl Check for a valid linux/version.h
  3343 CheckLinuxVersion()
  3344 {
  3345     AC_CHECK_HEADER(linux/version.h, have_linux_version_h=yes)
  3346     if test x$have_linux_version_h = xyes; then
  3347         EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_LINUX_VERSION_H"
  3348     fi
  3349 }
  3350 
  3351 dnl Check if we want to use RPATH
  3352 CheckRPATH()
  3353 {
  3354     AC_ARG_ENABLE(rpath,
  3355 AS_HELP_STRING([--enable-rpath], [use an rpath when linking SDL [[default=yes]]]),
  3356                   , enable_rpath=yes)
  3357 }
  3358 
  3359 dnl Check if we want to use custom signals to fake iOS/Android's backgrounding
  3360 dnl  events. These could be useful if you're building a custom embedded
  3361 dnl  environment, etc, but most people don't need this.
  3362 CheckEventSignals()
  3363 {
  3364     AC_ARG_ENABLE(backgrounding-signal,
  3365 AS_HELP_STRING([--enable-backgrounding-signal], [number to use for magic backgrounding signal or 'no' [[default=no]]]),
  3366                   , enable_backgrounding_signal=no)
  3367     if test x$enable_backgrounding_signal != xno; then
  3368         EXTRA_CFLAGS="$EXTRA_CFLAGS -DSDL_BACKGROUNDING_SIGNAL=$enable_backgrounding_signal"
  3369     fi
  3370 
  3371     AC_ARG_ENABLE(foregrounding-signal,
  3372 AS_HELP_STRING([--enable-foregrounding-signal], [number to use for magic foregrounding signal or 'no' [[default=no]]]),
  3373                   , enable_foregrounding_signal=no)
  3374     if test x$enable_foregrounding_signal != xno; then
  3375         EXTRA_CFLAGS="$EXTRA_CFLAGS -DSDL_FOREGROUNDING_SIGNAL=$enable_foregrounding_signal"
  3376     fi
  3377 }
  3378 
  3379 
  3380 
  3381 dnl Do this on all platforms, before everything else (other things might want to override it).
  3382 CheckWarnAll
  3383 CheckNoStrictAliasing
  3384 
  3385 dnl Do this for every platform, but for some it doesn't mean anything, but better to catch it here anyhow.
  3386 CheckEventSignals
  3387 
  3388 dnl Set up the configuration based on the host platform!
  3389 case "$host" in
  3390     *-*-linux*|*-*-uclinux*|*-*-gnu*|*-*-k*bsd*-gnu|*-*-bsdi*|*-*-freebsd*|*-*-dragonfly*|*-*-netbsd*|*-*-openbsd*|*-*-sysv5*|*-*-solaris*|*-*-hpux*|*-*-aix*|*-*-minix*|*-*-nto*)
  3391         case "$host" in
  3392             *-*-android*)
  3393                 # Android
  3394                 ARCH=android
  3395                 ANDROID_CFLAGS="-DGL_GLEXT_PROTOTYPES"
  3396                 CFLAGS="$CFLAGS $ANDROID_CFLAGS"
  3397                 SDL_CFLAGS="$SDL_CFLAGS $ANDROID_CFLAGS"
  3398                 EXTRA_CFLAGS="$EXTRA_CFLAGS $ANDROID_CFLAGS"
  3399                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldl -lGLESv1_CM -lGLESv2 -llog -landroid"
  3400                 SDLMAIN_SOURCES="$srcdir/src/main/android/*.c"
  3401 
  3402                 if test x$enable_video = xyes; then
  3403                     SOURCES="$SOURCES $srcdir/src/core/android/*.c $srcdir/src/video/android/*.c"
  3404                     # FIXME: confdefs? Not AC_DEFINE?
  3405                     $as_echo "#define SDL_VIDEO_DRIVER_ANDROID 1" >>confdefs.h
  3406                     SUMMARY_video="${SUMMARY_video} android"
  3407                 fi
  3408                 ;;
  3409             *-*-linux*)         ARCH=linux ;;
  3410             *-*-uclinux*)       ARCH=linux ;;
  3411             *-*-kfreebsd*-gnu)  ARCH=kfreebsd-gnu ;;
  3412             *-*-knetbsd*-gnu)   ARCH=knetbsd-gnu ;;
  3413             *-*-kopenbsd*-gnu)  ARCH=kopenbsd-gnu ;;
  3414             *-*-gnu*)           ARCH=gnu ;; # must be last of the gnu variants
  3415             *-*-bsdi*)          ARCH=bsdi ;;
  3416             *-*-freebsd*)       ARCH=freebsd ;;
  3417             *-*-dragonfly*)     ARCH=freebsd ;;
  3418             *-*-netbsd*)        ARCH=netbsd ;;
  3419             *-*-openbsd*)       ARCH=openbsd ;;
  3420             *-*-sysv5*)         ARCH=sysv5 ;;
  3421             *-*-solaris*)       ARCH=solaris ;;
  3422             *-*-hpux*)          ARCH=hpux ;;
  3423             *-*-aix*)           ARCH=aix ;;
  3424             *-*-minix*)         ARCH=minix ;;
  3425             *-*-nto*)           ARCH=nto
  3426                 CheckQNXVideo
  3427                 ;;
  3428         esac
  3429         CheckVisibilityHidden
  3430         CheckDeclarationAfterStatement
  3431         CheckDummyVideo
  3432         CheckDiskAudio
  3433         CheckDummyAudio
  3434         CheckDLOPEN
  3435         CheckARM
  3436         CheckOSS
  3437         CheckALSA
  3438         CheckPulseAudio
  3439         CheckJACK
  3440         CheckARTSC
  3441         CheckESD
  3442         CheckNAS
  3443         CheckSNDIO
  3444         CheckFusionSound
  3445         CheckLibSampleRate
  3446         # Need to check for Raspberry PI first and add platform specific compiler flags, otherwise the test for GLES fails!
  3447         CheckRPI
  3448         CheckX11
  3449         CheckDirectFB
  3450         CheckKMSDRM
  3451         CheckOpenGLX11
  3452         CheckOpenGLESX11
  3453         CheckVulkan
  3454         CheckWayland
  3455         CheckInputEvents
  3456         CheckLibUDev
  3457         CheckDBus
  3458         CheckIME
  3459         CheckIBus
  3460         CheckFcitx
  3461         case $ARCH in
  3462           linux)
  3463               CheckInputKD
  3464           ;;
  3465         esac
  3466         CheckTslib
  3467         CheckUSBHID
  3468         CheckHIDAPI
  3469         CheckPTHREAD
  3470         CheckClockGettime
  3471         CheckLinuxVersion
  3472         CheckRPATH
  3473         CheckVivanteVideo
  3474 
  3475         # Set up files for the audio library
  3476         if test x$enable_audio = xyes; then
  3477           case $ARCH in
  3478             sysv5|solaris|hpux)
  3479                 AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO, 1, [ ])
  3480                 SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
  3481                 SUMMARY_audio="${SUMMARY_audio} sun"
  3482                 have_audio=yes
  3483             ;;
  3484             netbsd)  # Don't use this on OpenBSD, it's busted.
  3485                 AC_DEFINE(SDL_AUDIO_DRIVER_NETBSD, 1, [ ])
  3486                 SOURCES="$SOURCES $srcdir/src/audio/netbsd/*.c"
  3487                 SUMMARY_audio="${SUMMARY_audio} netbsd"
  3488                 have_audio=yes
  3489             ;;
  3490             aix)
  3491                 AC_DEFINE(SDL_AUDIO_DRIVER_PAUDIO, 1, [ ])
  3492                 SOURCES="$SOURCES $srcdir/src/audio/paudio/*.c"
  3493                 SUMMARY_audio="${SUMMARY_audio} paudio"
  3494                 have_audio=yes
  3495             ;;
  3496             android)
  3497                 AC_DEFINE(SDL_AUDIO_DRIVER_ANDROID, 1, [ ])
  3498                 SOURCES="$SOURCES $srcdir/src/audio/android/*.c"
  3499                 SUMMARY_audio="${SUMMARY_audio} android"
  3500                 have_audio=yes
  3501             ;;
  3502             nto)
  3503                 CheckQNXAudio
  3504             ;;
  3505           esac
  3506         fi
  3507         # Set up files for the joystick library
  3508         if test x$enable_joystick = xyes; then
  3509           case $ARCH in
  3510             linux)
  3511                 AC_DEFINE(SDL_JOYSTICK_LINUX, 1, [ ])
  3512                 SOURCES="$SOURCES $srcdir/src/joystick/linux/*.c"
  3513                 SOURCES="$SOURCES $srcdir/src/joystick/steam/*.c"
  3514                 have_joystick=yes
  3515             ;;
  3516             android)
  3517                 AC_DEFINE(SDL_JOYSTICK_ANDROID, 1, [ ])
  3518                 SOURCES="$SOURCES $srcdir/src/joystick/android/*.c"
  3519                 SOURCES="$SOURCES $srcdir/src/joystick/steam/*.c"
  3520                 have_joystick=yes
  3521             ;;
  3522           esac
  3523         fi
  3524         # Set up files for the haptic library
  3525         if test x$enable_haptic = xyes; then
  3526           case $ARCH in
  3527             linux)
  3528                 if test x$use_input_events = xyes; then
  3529                     AC_DEFINE(SDL_HAPTIC_LINUX, 1, [ ])
  3530                     SOURCES="$SOURCES $srcdir/src/haptic/linux/*.c"
  3531                     have_haptic=yes
  3532                 fi
  3533             ;;
  3534             android)
  3535                 AC_DEFINE(SDL_HAPTIC_ANDROID, 1, [ ])
  3536                 SOURCES="$SOURCES $srcdir/src/haptic/android/*.c"
  3537                 have_haptic=yes
  3538             ;;
  3539           esac
  3540         fi
  3541         # Set up files for the sensor library
  3542         if test x$enable_sensor = xyes; then
  3543           case $ARCH in
  3544             android)
  3545                 AC_DEFINE(SDL_SENSOR_ANDROID, 1, [ ])
  3546                 SOURCES="$SOURCES $srcdir/src/sensor/android/*.c"
  3547                 have_sensor=yes
  3548             ;;
  3549           esac
  3550         fi
  3551         # Set up files for the power library
  3552         if test x$enable_power = xyes; then
  3553              case $ARCH in
  3554                linux)
  3555                    AC_DEFINE(SDL_POWER_LINUX, 1, [ ])
  3556                    SOURCES="$SOURCES $srcdir/src/power/linux/*.c"
  3557                    have_power=yes
  3558                ;;
  3559                android)
  3560                    AC_DEFINE(SDL_POWER_ANDROID, 1, [ ])
  3561                    SOURCES="$SOURCES $srcdir/src/power/android/*.c"
  3562                    have_power=yes
  3563                ;;
  3564              esac
  3565         fi
  3566         # Set up files for the filesystem library
  3567         if test x$enable_filesystem = xyes; then
  3568              case $ARCH in
  3569                android)
  3570                    AC_DEFINE(SDL_FILESYSTEM_ANDROID, 1, [ ])
  3571                    SOURCES="$SOURCES $srcdir/src/filesystem/android/*.c"
  3572                    have_filesystem=yes
  3573                ;;
  3574                *)
  3575                    AC_DEFINE(SDL_FILESYSTEM_UNIX, 1, [ ])
  3576                    SOURCES="$SOURCES $srcdir/src/filesystem/unix/*.c"
  3577                    have_filesystem=yes
  3578                ;;
  3579              esac
  3580         fi
  3581         # Set up files for the timer library
  3582         if test x$enable_timers = xyes; then
  3583             AC_DEFINE(SDL_TIMER_UNIX, 1, [ ])
  3584             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  3585             have_timers=yes
  3586         fi
  3587         # Set up files for udev hotplugging support
  3588         if test x$enable_libudev = xyes && test x$have_libudev_h_hdr = xyes; then
  3589             SOURCES="$SOURCES $srcdir/src/core/linux/SDL_udev.c"               
  3590         fi
  3591         # Set up files for evdev input
  3592         if test x$use_input_events = xyes; then
  3593             SOURCES="$SOURCES $srcdir/src/core/linux/SDL_evdev*.c"
  3594         fi       
  3595         # Set up other core UNIX files
  3596         SOURCES="$SOURCES $srcdir/src/core/linux/SDL_threadprio.c"
  3597         SOURCES="$SOURCES $srcdir/src/core/unix/*.c"
  3598         ;;
  3599     *-*-cygwin* | *-*-mingw32*)
  3600         ARCH=win32
  3601         if test "$build" != "$host"; then # cross-compiling
  3602             # Default cross-compile location
  3603             ac_default_prefix=/usr/local/cross-tools/$host
  3604         else
  3605             # Look for the location of the tools and install there
  3606             if test "$BUILD_PREFIX" != ""; then
  3607                 ac_default_prefix=$BUILD_PREFIX
  3608             fi
  3609         fi
  3610         CheckDeclarationAfterStatement
  3611         CheckDummyVideo
  3612         CheckDiskAudio
  3613         CheckDummyAudio
  3614         CheckWINDOWS
  3615         CheckWINDOWSGL
  3616         CheckWINDOWSGLES
  3617         CheckVulkan
  3618         CheckDIRECTX
  3619         CheckHIDAPI
  3620 
  3621         # Set up the core platform files
  3622         SOURCES="$SOURCES $srcdir/src/core/windows/*.c"
  3623 
  3624         # Set up files for the video library
  3625         if test x$enable_video = xyes; then
  3626             AC_DEFINE(SDL_VIDEO_DRIVER_WINDOWS, 1, [ ])
  3627             SOURCES="$SOURCES $srcdir/src/video/windows/*.c"
  3628             have_video=yes
  3629             AC_ARG_ENABLE(render-d3d,
  3630 AS_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[default=yes]]]),
  3631                                 , enable_render_d3d=yes)
  3632             if test x$enable_render_d3d = xyes -a x$have_d3d = xyes; then
  3633                 AC_DEFINE(SDL_VIDEO_RENDER_D3D, 1, [ ])
  3634                 SUMMARY_video="${SUMMARY_video} d3d9"
  3635             fi
  3636             if test x$enable_render_d3d = xyes -a x$have_d3d11 = xyes; then
  3637                 AC_DEFINE(SDL_VIDEO_RENDER_D3D11, 1, [ ])
  3638                 SUMMARY_video="${SUMMARY_video} d3d11"
  3639             fi
  3640         fi
  3641         # Set up files for the audio library
  3642         if test x$enable_audio = xyes; then
  3643             AC_DEFINE(SDL_AUDIO_DRIVER_WINMM, 1, [ ])
  3644             SUMMARY_audio="${SUMMARY_audio} winmm"
  3645             SOURCES="$SOURCES $srcdir/src/audio/winmm/*.c"
  3646             if test x$have_dsound = xyes; then
  3647                 AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND, 1, [ ])
  3648                 SUMMARY_audio="${SUMMARY_audio} directsound"
  3649                 SOURCES="$SOURCES $srcdir/src/audio/directsound/*.c"
  3650             fi
  3651             if test x$have_wasapi = xyes -a x$enable_wasapi = xyes; then
  3652                 AC_DEFINE(SDL_AUDIO_DRIVER_WASAPI, 1, [ ])
  3653                 SUMMARY_audio="${SUMMARY_audio} wasapi"
  3654                 SOURCES="$SOURCES $srcdir/src/audio/wasapi/*.c"
  3655             fi
  3656             have_audio=yes
  3657         fi
  3658         # Set up files for the joystick library
  3659         if test x$enable_joystick = xyes; then
  3660             if test x$have_dinput = xyes -o x$have_xinput = xyes; then
  3661                 if test x$have_xinput = xyes; then
  3662                     AC_DEFINE(SDL_JOYSTICK_XINPUT, 1, [ ])
  3663                 fi
  3664                 if test x$have_dinput = xyes; then
  3665                     AC_DEFINE(SDL_JOYSTICK_DINPUT, 1, [ ])
  3666                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldinput8 -ldxguid -ldxerr8"
  3667                 fi
  3668             else
  3669                 AC_DEFINE(SDL_JOYSTICK_WINMM, 1, [ ])
  3670             fi
  3671             SOURCES="$SOURCES $srcdir/src/joystick/windows/*.c"
  3672             have_joystick=yes
  3673         fi
  3674         if test x$enable_haptic = xyes; then
  3675             if test x$have_dinput = xyes -o x$have_xinput = xyes; then
  3676                 if test x$have_xinput = xyes; then
  3677                     AC_DEFINE(SDL_HAPTIC_XINPUT, 1, [ ])
  3678                 fi
  3679                 if test x$have_dinput = xyes; then
  3680                     AC_DEFINE(SDL_HAPTIC_DINPUT, 1, [ ])
  3681                 fi
  3682                 SOURCES="$SOURCES $srcdir/src/haptic/windows/*.c"
  3683                 have_haptic=yes
  3684             fi
  3685         fi
  3686         if test x$enable_power = xyes; then
  3687             AC_DEFINE(SDL_POWER_WINDOWS, 1, [ ])
  3688             SOURCES="$SOURCES $srcdir/src/power/windows/SDL_syspower.c"
  3689             have_power=yes
  3690         fi
  3691         if test x$enable_filesystem = xyes; then
  3692             AC_DEFINE(SDL_FILESYSTEM_WINDOWS, 1, [ ])
  3693             SOURCES="$SOURCES $srcdir/src/filesystem/windows/SDL_sysfilesystem.c"
  3694             have_filesystem=yes
  3695         fi
  3696         # Set up files for the thread library
  3697         if test x$enable_threads = xyes; then
  3698             AC_DEFINE(SDL_THREAD_WINDOWS, 1, [ ])
  3699             SOURCES="$SOURCES $srcdir/src/thread/windows/*.c"
  3700             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
  3701             have_threads=yes
  3702         fi
  3703         # Set up files for the timer library
  3704         if test x$enable_timers = xyes; then
  3705             AC_DEFINE(SDL_TIMER_WINDOWS, 1, [ ])
  3706             SOURCES="$SOURCES $srcdir/src/timer/windows/*.c"
  3707             have_timers=yes
  3708         fi
  3709         # Set up files for the shared object loading library
  3710         if test x$enable_loadso = xyes; then
  3711             AC_DEFINE(SDL_LOADSO_WINDOWS, 1, [ ])
  3712             SOURCES="$SOURCES $srcdir/src/loadso/windows/*.c"
  3713             have_loadso=yes
  3714         fi
  3715         # Set up the system libraries we need
  3716         if test -f /lib/w32api/libuuid.a; then
  3717             LIBUUID=/lib/w32api/libuuid.a
  3718         else
  3719             LIBUUID=-luuid
  3720         fi
  3721         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lsetupapi -lversion $LIBUUID -static-libgcc"
  3722         # The Windows platform requires special setup
  3723         VERSION_SOURCES="$srcdir/src/main/windows/*.rc"
  3724         SDLMAIN_SOURCES="$srcdir/src/main/windows/*.c"
  3725         SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
  3726         SDL_LIBS="-lSDL2main $SDL_LIBS -mwindows"
  3727 
  3728         # Check to see if this is a mingw or cygwin build
  3729         have_mingw32=
  3730         AC_CHECK_LIB(mingw32, main, [have_mingw32=yes])
  3731         if test x$have_mingw32 = xyes; then
  3732             SDL_LIBS="-lmingw32 $SDL_LIBS"
  3733         else
  3734             SDL_LIBS="-lcygwin $SDL_LIBS"
  3735         fi
  3736         ;;
  3737 
  3738     dnl BeOS support removed after SDL 2.0.1. Haiku still works.  --ryan.
  3739     *-*-beos*)
  3740         AC_MSG_ERROR([
  3741 *** BeOS support has been removed as of SDL 2.0.2.
  3742         ])
  3743         ;;
  3744 
  3745     *-*-haiku*)
  3746         ARCH=haiku
  3747         ac_default_prefix=/boot/system
  3748         CheckDummyVideo
  3749         CheckDiskAudio
  3750         CheckDummyAudio
  3751         CheckDLOPEN
  3752         CheckHaikuVideo
  3753         CheckHaikuGL
  3754         CheckPTHREAD
  3755 
  3756         # Set up files for the audio library
  3757         if test x$enable_audio = xyes; then
  3758             AC_DEFINE(SDL_AUDIO_DRIVER_HAIKU, 1, [ ])
  3759             SOURCES="$SOURCES $srcdir/src/audio/haiku/*.cc"
  3760             SUMMARY_audio="${SUMMARY_audio} haiku"
  3761             have_audio=yes
  3762         fi
  3763         # Set up files for the joystick library
  3764         if test x$enable_joystick = xyes; then
  3765             AC_DEFINE(SDL_JOYSTICK_HAIKU, 1, [ ])
  3766             SOURCES="$SOURCES $srcdir/src/joystick/haiku/*.cc"
  3767             have_joystick=yes
  3768         fi
  3769         # Set up files for the timer library
  3770         if test x$enable_timers = xyes; then
  3771             AC_DEFINE(SDL_TIMER_HAIKU, 1, [ ])
  3772             SOURCES="$SOURCES $srcdir/src/timer/haiku/*.c"
  3773             have_timers=yes
  3774         fi
  3775         # Set up files for the system power library
  3776         if test x$enable_power = xyes; then
  3777             AC_DEFINE(SDL_POWER_HAIKU, 1, [ ])
  3778             SOURCES="$SOURCES $srcdir/src/power/haiku/*.c"
  3779             have_power=yes
  3780         fi
  3781         # Set up files for the system filesystem library
  3782         if test x$enable_filesystem = xyes; then
  3783             AC_DEFINE(SDL_FILESYSTEM_HAIKU, 1, [ ])
  3784             SOURCES="$SOURCES $srcdir/src/filesystem/haiku/*.cc"
  3785             have_filesystem=yes
  3786         fi
  3787         # The Haiku platform requires special setup.
  3788         SOURCES="$srcdir/src/main/haiku/*.cc $SOURCES"
  3789         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding"
  3790         # Haiku's x86 spins use libstdc++.r4.so (for binary compat?), but
  3791         #  other spins, like x86-64, use a more standard "libstdc++.so.*"
  3792         AC_CHECK_FILE("/boot/system/lib/libstdc++.r4.so", EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lstdc++.r4", EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lstdc++")
  3793         ;;
  3794     arm*-apple-darwin*|*-ios-*)
  3795         ARCH=ios
  3796 
  3797         CheckVisibilityHidden
  3798         CheckDeclarationAfterStatement
  3799         CheckDummyVideo
  3800         CheckDiskAudio
  3801         CheckDummyAudio
  3802         CheckDLOPEN
  3803         CheckMETAL
  3804         CheckVulkan
  3805         CheckPTHREAD
  3806 
  3807         # Set up files for the audio library
  3808         if test x$enable_audio = xyes; then
  3809             AC_DEFINE(SDL_AUDIO_DRIVER_COREAUDIO, 1, [ ])
  3810             SOURCES="$SOURCES $srcdir/src/audio/coreaudio/*.m"
  3811             SUMMARY_audio="${SUMMARY_audio} coreaudio"
  3812             have_audio=yes
  3813         fi
  3814         # Set up files for the joystick library
  3815         if test x$enable_joystick = xyes; then
  3816             AC_DEFINE(SDL_JOYSTICK_MFI, 1, [ ])
  3817             SOURCES="$SOURCES $srcdir/src/joystick/iphoneos/*.m"
  3818             SOURCES="$SOURCES $srcdir/src/joystick/steam/*.c"
  3819             have_joystick=yes
  3820         fi
  3821         # Set up files for the haptic library
  3822         #if test x$enable_haptic = xyes; then
  3823         #    SOURCES="$SOURCES $srcdir/src/haptic/darwin/*.c"
  3824         #    have_haptic=yes
  3825         #    EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,ForceFeedback"
  3826         #fi
  3827         # Set up files for the power library
  3828         if test x$enable_power = xyes; then
  3829             AC_DEFINE(SDL_POWER_UIKIT, 1, [ ])
  3830             SOURCES="$SOURCES $srcdir/src/power/uikit/*.m"
  3831             have_power=yes
  3832         fi
  3833         # Set up files for the filesystem library
  3834         if test x$enable_filesystem = xyes; then
  3835             SOURCES="$SOURCES $srcdir/src/filesystem/cocoa/*.m"
  3836             have_filesystem=yes
  3837         fi
  3838         # Set up additional files for the file library
  3839         if test x$enable_file = xyes; then
  3840             AC_DEFINE(SDL_FILESYSTEM_COCOA, 1, [ ])
  3841             SOURCES="$SOURCES $srcdir/src/file/cocoa/*.m"
  3842         fi
  3843         # Set up files for the timer library
  3844         if test x$enable_timers = xyes; then
  3845             AC_DEFINE(SDL_TIMER_UNIX, 1, [ ])
  3846             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  3847             have_timers=yes
  3848         fi
  3849         # Set up other core UNIX files
  3850         SOURCES="$SOURCES $srcdir/src/core/unix/*.c"
  3851         # The iOS platform requires special setup.
  3852         AC_DEFINE(SDL_VIDEO_DRIVER_UIKIT, 1, [ ])
  3853         AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ])
  3854         AC_DEFINE(SDL_VIDEO_OPENGL_ES, 1, [ ])
  3855         AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES, 1, [ ])
  3856         AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
  3857         SOURCES="$SOURCES $srcdir/src/video/uikit/*.m"
  3858         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm -liconv -lobjc"
  3859         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AVFoundation"
  3860         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AudioToolbox"
  3861         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreAudio"
  3862         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreGraphics"
  3863         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreMotion"
  3864         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Foundation"
  3865         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,GameController"
  3866         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,OpenGLES"
  3867         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,QuartzCore"
  3868         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,UIKit"
  3869 
  3870         if test x$enable_video_metal = xyes -o x$enable_video_vulkan = xyes; then
  3871             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Metal"
  3872         fi
  3873         ;;
  3874     *-*-darwin* )
  3875         # This could be either full "Mac OS X", or plain "Darwin" which is
  3876         # just the OS X kernel sans upper layers like Carbon and Cocoa.
  3877         # Next line is broken, and a few files below require Mac OS X (full)
  3878         ARCH=macosx
  3879 
  3880         # Mac OS X builds with both the Carbon and OSX APIs at the moment
  3881         EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_CARBON"
  3882         EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_OSX"
  3883 
  3884         CheckVisibilityHidden
  3885         CheckDeclarationAfterStatement
  3886         CheckDummyVideo
  3887         CheckDiskAudio
  3888         CheckDummyAudio
  3889         CheckDLOPEN
  3890         CheckCOCOA
  3891         CheckMETAL
  3892         CheckX11
  3893         CheckMacGL
  3894         CheckMacGLES
  3895         CheckOpenGLX11
  3896         CheckVulkan
  3897         CheckPTHREAD
  3898         CheckHIDAPI
  3899 
  3900         # Set up files for the audio library
  3901         if test x$enable_audio = xyes; then
  3902             AC_DEFINE(SDL_AUDIO_DRIVER_COREAUDIO, 1, [ ])
  3903             SOURCES="$SOURCES $srcdir/src/audio/coreaudio/*.m"
  3904             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox"
  3905             SUMMARY_audio="${SUMMARY_audio} coreaudio"
  3906             have_audio=yes
  3907         fi
  3908         # Set up files for the joystick library
  3909         if test x$enable_joystick = xyes; then
  3910             AC_DEFINE(SDL_JOYSTICK_IOKIT, 1, [ ])
  3911             SOURCES="$SOURCES $srcdir/src/joystick/darwin/*.c"
  3912             have_joystick=yes
  3913         fi
  3914         # Set up files for the haptic library
  3915         if test x$enable_haptic = xyes; then
  3916             AC_DEFINE(SDL_HAPTIC_IOKIT, 1, [ ])
  3917             SOURCES="$SOURCES $srcdir/src/haptic/darwin/*.c"
  3918             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,ForceFeedback"
  3919             have_haptic=yes
  3920         fi
  3921         # Set up files for the power library
  3922         if test x$enable_power = xyes; then
  3923             AC_DEFINE(SDL_POWER_MACOSX, 1, [ ])
  3924             SOURCES="$SOURCES $srcdir/src/power/macosx/*.c"
  3925             have_power=yes
  3926         fi
  3927         # Set up files for the filesystem library
  3928         if test x$enable_filesystem = xyes; then
  3929             AC_DEFINE(SDL_FILESYSTEM_COCOA, 1, [ ])
  3930             SOURCES="$SOURCES $srcdir/src/filesystem/cocoa/*.m"
  3931             have_filesystem=yes
  3932         fi
  3933         # Set up files for the timer library
  3934         if test x$enable_timers = xyes; then
  3935             AC_DEFINE(SDL_TIMER_UNIX, 1, [ ])
  3936             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  3937             have_timers=yes
  3938         fi
  3939         # Set up additional files for the file library
  3940         if test x$enable_file = xyes; then
  3941             SOURCES="$SOURCES $srcdir/src/file/cocoa/*.m"
  3942         fi
  3943         # Set up other core UNIX files
  3944         SOURCES="$SOURCES $srcdir/src/core/unix/*.c"
  3945         # The Mac OS X platform requires special setup.
  3946         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lobjc"
  3947         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreVideo"
  3948         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Cocoa"
  3949         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Carbon"
  3950         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,IOKit"
  3951 
  3952         if test x$enable_video_metal = xyes -o x$enable_video_vulkan = xyes; then
  3953             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-weak_framework,QuartzCore -Wl,-weak_framework,Metal"
  3954         fi
  3955         ;;
  3956     *-nacl|*-pnacl)
  3957         ARCH=nacl
  3958         CheckNativeClient
  3959         CheckDummyAudio
  3960         CheckDummyVideo
  3961         CheckInputEvents
  3962         CheckPTHREAD
  3963 
  3964         # Set up files for the timer library
  3965         if test x$enable_timers = xyes; then
  3966             AC_DEFINE(SDL_TIMER_UNIX, 1, [ ])
  3967             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  3968             have_timers=yes
  3969         fi
  3970         
  3971         if test x$enable_filesystem = xyes; then
  3972             AC_DEFINE(SDL_FILESYSTEM_NACL, 1, [ ])
  3973             SOURCES="$SOURCES $srcdir/src/filesystem/nacl/*.c"
  3974             have_filesystem=yes
  3975         fi
  3976         ;;
  3977     *-*-emscripten* )
  3978         if test x$enable_video = xyes; then
  3979             AC_DEFINE(SDL_VIDEO_DRIVER_EMSCRIPTEN, 1, [ ])
  3980             SOURCES="$SOURCES $srcdir/src/video/emscripten/*.c"
  3981             have_video=yes
  3982             SUMMARY_video="${SUMMARY_video} emscripten"
  3983         fi
  3984 
  3985         if test x$enable_audio = xyes; then
  3986             AC_DEFINE(SDL_AUDIO_DRIVER_EMSCRIPTEN, 1, [ ])
  3987             SOURCES="$SOURCES $srcdir/src/audio/emscripten/*.c"
  3988             have_audio=yes
  3989             SUMMARY_audio="${SUMMARY_audio} emscripten"
  3990         fi
  3991 
  3992         CheckVisibilityHidden
  3993         CheckDeclarationAfterStatement
  3994         CheckDummyVideo
  3995         CheckDiskAudio
  3996         CheckDummyAudio
  3997         CheckDLOPEN
  3998         CheckClockGettime
  3999         CheckEmscriptenGLES
  4000 
  4001          # Set up files for the power library
  4002         if test x$enable_power = xyes; then
  4003             AC_DEFINE(SDL_POWER_EMSCRIPTEN, 1, [ ])
  4004             SOURCES="$SOURCES $srcdir/src/power/emscripten/*.c"
  4005             have_power=yes
  4006         fi
  4007         
  4008         # Set up files for the power library
  4009         if test x$enable_joystick = xyes; then
  4010             AC_DEFINE(SDL_JOYSTICK_EMSCRIPTEN, 1, [ ])
  4011             SOURCES="$SOURCES $srcdir/src/joystick/emscripten/*.c"
  4012             have_joystick=yes
  4013         fi
  4014 
  4015         # Set up files for the filesystem library
  4016         if test x$enable_filesystem = xyes; then
  4017             AC_DEFINE(SDL_FILESYSTEM_EMSCRIPTEN, 1, [ ])
  4018             SOURCES="$SOURCES $srcdir/src/filesystem/emscripten/*.c"
  4019             have_filesystem=yes
  4020         fi
  4021         # Set up files for the timer library
  4022         if test x$enable_timers = xyes; then
  4023             AC_DEFINE(SDL_TIMER_UNIX, 1, [ ])
  4024             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  4025             have_timers=yes
  4026         fi
  4027         ;;
  4028     *)
  4029         AC_MSG_ERROR([
  4030 *** Unsupported host:  Please add to configure.ac
  4031         ])
  4032         ;;
  4033 esac
  4034 
  4035 # Check whether to install sdl2-config
  4036 AC_MSG_CHECKING(whether to install sdl2-config)
  4037 AC_ARG_ENABLE([sdl2-config],
  4038     AS_HELP_STRING([--enable-sdl2-config], [Install sdl2-config [default=yes]]),
  4039     [case "${enableval}" in
  4040         yes) enable_sdl2_config="TRUE" ;;
  4041         no) enable_sdl2_config="FALSE" ;;
  4042         *) AC_MSG_ERROR([bad value '${enableval}' for --enable-sdl2-config]) ;;
  4043     esac], [enable_sdl2_config="TRUE"])
  4044 if test "$enable_sdl2_config" = "TRUE"; then
  4045     AC_MSG_RESULT(yes)
  4046 else
  4047     AC_MSG_RESULT(no)
  4048 fi
  4049 AC_SUBST([INSTALL_SDL2_CONFIG], [$enable_sdl2_config])
  4050 
  4051 # Verify that we have all the platform specific files we need
  4052 
  4053 if test x$have_joystick != xyes; then
  4054     if test x$enable_joystick = xyes; then
  4055         AC_DEFINE(SDL_JOYSTICK_DUMMY, 1, [ ])
  4056     fi
  4057     SOURCES="$SOURCES $srcdir/src/joystick/dummy/*.c"
  4058 fi
  4059 if test x$have_haptic != xyes; then
  4060     if test x$enable_haptic = xyes; then
  4061         AC_DEFINE(SDL_HAPTIC_DUMMY, 1, [ ])
  4062     fi
  4063     SOURCES="$SOURCES $srcdir/src/haptic/dummy/*.c"
  4064 fi
  4065 if test x$have_sensor != xyes; then
  4066     if test x$enable_sensor = xyes; then
  4067         AC_DEFINE(SDL_SENSOR_DUMMY, 1, [ ])
  4068     fi
  4069     SOURCES="$SOURCES $srcdir/src/sensor/dummy/*.c"
  4070 fi
  4071 if test x$have_threads != xyes; then
  4072     if test x$enable_threads = xyes; then
  4073         AC_DEFINE(SDL_THREADS_DISABLED, 1, [ ])
  4074     fi
  4075     SOURCES="$SOURCES $srcdir/src/thread/generic/*.c"
  4076 fi
  4077 if test x$have_timers != xyes; then
  4078     if test x$enable_timers = xyes; then
  4079         AC_DEFINE(SDL_TIMERS_DISABLED, 1, [ ])
  4080     fi
  4081     SOURCES="$SOURCES $srcdir/src/timer/dummy/*.c"
  4082 fi
  4083 if test x$have_filesystem != xyes; then
  4084     if test x$enable_filesystem = xyes; then
  4085         AC_DEFINE(SDL_FILESYSTEM_DISABLED, 1, [ ])
  4086     fi
  4087     SOURCES="$SOURCES $srcdir/src/filesystem/dummy/*.c"
  4088 fi
  4089 if test x$have_loadso != xyes; then
  4090     if test x$enable_loadso = xyes; then
  4091         AC_DEFINE(SDL_LOADSO_DISABLED, 1, [ ])
  4092     fi
  4093     SOURCES="$SOURCES $srcdir/src/loadso/dummy/*.c"
  4094 fi
  4095 if test x$SDLMAIN_SOURCES = x; then
  4096     SDLMAIN_SOURCES="$srcdir/src/main/dummy/*.c"
  4097 fi
  4098 SDLTEST_SOURCES="$srcdir/src/test/*.c"
  4099 
  4100 if test x$video_wayland = xyes; then
  4101     WAYLAND_PROTOCOLS=`cd $srcdir/wayland-protocols ; for p in *.xml ; do echo -n "\$p" |sed 's,\\.xml\$, ,g' ; done`
  4102     WAYLAND_PROTOCOLS_SOURCES=`for p in $WAYLAND_PROTOCOLS ; do echo -n "\\$(gen)/\$p-protocol.c " ; done`
  4103     WAYLAND_PROTOCOLS_HEADERS=`for p in $WAYLAND_PROTOCOLS ; do echo -n "\\$(gen)/\$p-client-protocol.h " ; done`
  4104     GEN_SOURCES="$GEN_SOURCES $WAYLAND_PROTOCOLS_SOURCES"
  4105     GEN_HEADERS="$GEN_HEADERS $WAYLAND_PROTOCOLS_HEADERS"
  4106 
  4107     WAYLAND_PROTOCOLS_DEPENDS=`for p in $WAYLAND_PROTOCOLS ; do\
  4108         echo ;\
  4109         echo "\\$(gen)/\$p-client-protocol.h: \\$(srcdir)/wayland-protocols/\$p.xml" ;\
  4110         echo "	@\\$(SHELL) \\$(auxdir)/mkinstalldirs \\$(gen)" ;\
  4111         echo "	\\$(RUN_CMD_GEN)\\$(WAYLAND_SCANNER) client-header \\$< \\$@" ;\
  4112         echo ;\
  4113         echo "\\$(gen)/\$p-protocol.c: \\$(srcdir)/wayland-protocols/\$p.xml" ;\
  4114         echo "	@\\$(SHELL) \\$(auxdir)/mkinstalldirs \\$(gen)" ;\
  4115         echo "	\\$(RUN_CMD_GEN)\\$(WAYLAND_SCANNER) code \\$< \\$@" ;\
  4116         echo ;\
  4117         echo "\\$(objects)/\$p-protocol.lo: \\$(gen)/\$p-protocol.c \\$(gen)/\$p-client-protocol.h" ;\
  4118         echo "	\\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@" ;\
  4119         done ;\
  4120         echo ;\
  4121         for s in $WAYLAND_SOURCES ; do echo -n "\$s:" ; for p in $WAYLAND_PROTOCOLS ; do echo -n " \\$(gen)/\$p-client-protocol.h" ; done ; echo ; done ; echo`
  4122 fi
  4123 
  4124 OBJECTS=`echo $SOURCES`
  4125 DEPENDS=`echo $SOURCES | tr ' ' '\n'`
  4126 for EXT in asm cc m c S; do
  4127     OBJECTS=`echo "$OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.'$EXT',$(objects)/\1.lo,g'`
  4128     DEPENDS=`echo "$DEPENDS" | sed "s,^\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.$EXT\\$,\\\\
  4129 \\$(objects)/\\2.lo: \\1/\\2.$EXT \\$(objects)/.created\\\\
  4130 	\\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
  4131 done
  4132 
  4133 GEN_OBJECTS=`echo "$GEN_SOURCES" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'`
  4134 
  4135 VERSION_OBJECTS=`echo $VERSION_SOURCES`
  4136 VERSION_DEPENDS=`echo $VERSION_SOURCES`
  4137 VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'`
  4138 VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.rc,\\\\
  4139 \\$(objects)/\\2.o: \\1/\\2.rc\\\\
  4140 	\\$(WINDRES) \\$< \\$@,g"`
  4141 
  4142 SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
  4143 SDLMAIN_DEPENDS=`echo $SDLMAIN_SOURCES`
  4144 SDLMAIN_OBJECTS=`echo "$SDLMAIN_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'`
  4145 SDLMAIN_DEPENDS=`echo "$SDLMAIN_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\
  4146 \\$(objects)/\\2.lo: \\1/\\2.c \\$(objects)/.created\\\\
  4147 	\\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
  4148 
  4149 SDLTEST_OBJECTS=`echo $SDLTEST_SOURCES`
  4150 SDLTEST_DEPENDS=`echo $SDLTEST_SOURCES`
  4151 SDLTEST_OBJECTS=`echo "$SDLTEST_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'`
  4152 SDLTEST_DEPENDS=`echo "$SDLTEST_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\
  4153 \\$(objects)/\\2.lo: \\1/\\2.c \\$(objects)/.created\\\\
  4154 	\\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
  4155 
  4156 # Set runtime shared library paths as needed
  4157 
  4158 if test "x$enable_rpath" = "xyes"; then
  4159   if test $ARCH = bsdi -o $ARCH = freebsd -o $ARCH = linux -o $ARCH = netbsd; then
  4160     SDL_RLD_FLAGS="-Wl,-rpath,\${libdir}"
  4161 
  4162     AC_MSG_CHECKING(for linker option --enable-new-dtags)
  4163     have_enable_new_dtags=no
  4164     save_LDFLAGS="$LDFLAGS"
  4165     LDFLAGS="$LDFLAGS -Wl,--enable-new-dtags"
  4166     AC_TRY_LINK([
  4167     ],[
  4168     ],[
  4169     have_enable_new_dtags=yes
  4170     SDL_RLD_FLAGS="$SDL_RLD_FLAGS -Wl,--enable-new-dtags"
  4171     ])
  4172     LDFLAGS="$save_LDFLAGS"
  4173     AC_MSG_RESULT($have_enable_new_dtags)
  4174   fi
  4175   if test $ARCH = solaris; then
  4176     SDL_RLD_FLAGS="-R\${libdir}"
  4177   fi
  4178 else
  4179   SDL_RLD_FLAGS=""
  4180 fi
  4181 
  4182 SDL_STATIC_LIBS="$SDL_LIBS $EXTRA_LDFLAGS"
  4183 
  4184 dnl Expand the cflags and libraries needed by apps using SDL
  4185 AC_SUBST(SDL_CFLAGS)
  4186 AC_SUBST(SDL_LIBS)
  4187 AC_SUBST(SDL_STATIC_LIBS)
  4188 AC_SUBST(SDL_RLD_FLAGS)
  4189 if test x$enable_shared = xyes; then
  4190     ENABLE_SHARED_TRUE=
  4191     ENABLE_SHARED_FALSE="#"
  4192 else
  4193     ENABLE_SHARED_TRUE="#"
  4194     ENABLE_SHARED_FALSE=
  4195 fi
  4196 if test x$enable_static = xyes; then
  4197     ENABLE_STATIC_TRUE=
  4198     ENABLE_STATIC_FALSE="#"
  4199 else
  4200     ENABLE_STATIC_TRUE="#"
  4201     ENABLE_STATIC_FALSE=
  4202 fi
  4203 AC_SUBST(ENABLE_SHARED_TRUE)
  4204 AC_SUBST(ENABLE_SHARED_FALSE)
  4205 AC_SUBST(ENABLE_STATIC_TRUE)
  4206 AC_SUBST(ENABLE_STATIC_FALSE)
  4207 
  4208 dnl Expand the sources and objects needed to build the library
  4209 AC_SUBST(ac_aux_dir)
  4210 AC_SUBST(INCLUDE)
  4211 AC_SUBST(OBJECTS)
  4212 AC_SUBST(GEN_HEADERS)
  4213 AC_SUBST(GEN_OBJECTS)
  4214 AC_SUBST(VERSION_OBJECTS)
  4215 AC_SUBST(SDLMAIN_OBJECTS)
  4216 AC_SUBST(SDLTEST_OBJECTS)
  4217 AC_SUBST(BUILD_CFLAGS)
  4218 AC_SUBST(EXTRA_CFLAGS)
  4219 AC_SUBST(BUILD_LDFLAGS)
  4220 AC_SUBST(EXTRA_LDFLAGS)
  4221 AC_SUBST(WINDRES)
  4222 AC_SUBST(WAYLAND_SCANNER)
  4223 
  4224 cat >Makefile.rules <<__EOF__
  4225 
  4226 # Build rules for objects
  4227 -include \$(OBJECTS:.lo=.d)
  4228 
  4229 # Special dependency for SDL.c, since it depends on SDL_revision.h
  4230 $srcdir/src/SDL.c: update-revision
  4231 $DEPENDS
  4232 $VERSION_DEPENDS
  4233 $SDLMAIN_DEPENDS
  4234 $SDLTEST_DEPENDS
  4235 $WAYLAND_PROTOCOLS_DEPENDS
  4236 __EOF__
  4237 
  4238 AC_CONFIG_FILES([
  4239     Makefile:Makefile.in:Makefile.rules sdl2-config sdl2-config.cmake SDL2.spec sdl2.pc
  4240 ])
  4241 AC_CONFIG_COMMANDS([sdl2_config],[chmod a+x sdl2-config])
  4242 
  4243 SUMMARY="SDL2 Configure Summary:\n"
  4244 if test x$enable_shared = xyes; then
  4245     SUMMARY="${SUMMARY}Building Shared Libraries\n"
  4246 fi
  4247 if test x$enable_static = xyes; then
  4248     SUMMARY="${SUMMARY}Building Static Libraries\n"
  4249 fi
  4250 SUMMARY="${SUMMARY}Enabled modules :${SUMMARY_modules}\n"
  4251 SUMMARY="${SUMMARY}Assembly Math   :${SUMMARY_math}\n" 
  4252 SUMMARY="${SUMMARY}Audio drivers   :${SUMMARY_audio}\n"
  4253 SUMMARY="${SUMMARY}Video drivers   :${SUMMARY_video}\n"
  4254 if test x$have_x = xyes; then
  4255     SUMMARY="${SUMMARY}X11 libraries   :${SUMMARY_video_x11}\n"
  4256 fi
  4257 SUMMARY="${SUMMARY}Input drivers   :${SUMMARY_input}\n"
  4258 if test x$have_samplerate_h_hdr = xyes; then
  4259     SUMMARY="${SUMMARY}Using libsamplerate : YES\n"
  4260 else
  4261     SUMMARY="${SUMMARY}Using libsamplerate : NO\n"
  4262 fi
  4263 if test x$have_libudev_h_hdr = xyes; then
  4264     SUMMARY="${SUMMARY}Using libudev       : YES\n"
  4265 else
  4266     SUMMARY="${SUMMARY}Using libudev       : NO\n"
  4267 fi
  4268 if test x$have_dbus_dbus_h_hdr = xyes; then
  4269     SUMMARY="${SUMMARY}Using dbus          : YES\n"
  4270 else
  4271     SUMMARY="${SUMMARY}Using dbus          : NO\n"
  4272 fi
  4273 if test x$enable_ime = xyes; then
  4274     SUMMARY="${SUMMARY}Using ime           : YES\n"
  4275 else
  4276     SUMMARY="${SUMMARY}Using ime           : NO\n"
  4277 fi
  4278 if test x$have_ibus_ibus_h_hdr = xyes; then
  4279     SUMMARY="${SUMMARY}Using ibus          : YES\n"
  4280 else
  4281     SUMMARY="${SUMMARY}Using ibus          : NO\n"
  4282 fi
  4283 if test x$have_fcitx_frontend_h_hdr = xyes; then
  4284     SUMMARY="${SUMMARY}Using fcitx         : YES\n"
  4285 else
  4286     SUMMARY="${SUMMARY}Using fcitx         : NO\n"
  4287 fi
  4288 AC_CONFIG_COMMANDS([summary], [echo -en "$SUMMARY"], [SUMMARY="$SUMMARY"])
  4289 
  4290 AC_OUTPUT