configure.in
author Gabriel Jacobo <gabomdq@gmail.com>
Thu, 21 Jun 2012 14:01:47 -0300
changeset 6340 eadb3790009f
parent 6329 77dcb8c486e9
child 6362 562a9fe60603
permissions -rw-r--r--
Fixes #1524, improved xinput2 test
     1 dnl Process this file with autoconf to produce a configure script.
     2 AC_INIT(README)
     3 AC_CONFIG_HEADER(include/SDL_config.h)
     4 AC_GNU_SOURCE
     5 AC_CONFIG_AUX_DIR(build-scripts)
     6 AC_CONFIG_MACRO_DIR([acinclude])
     7 
     8 dnl Save the CFLAGS to see whether they were passed in or generated
     9 orig_CFLAGS="$CFLAGS"
    10 
    11 dnl Set various version strings - taken gratefully from the GTk sources
    12 #
    13 # Making releases:
    14 # Edit include/SDL_version.h and change the version, then:
    15 #   SDL_MICRO_VERSION += 1;
    16 #   SDL_INTERFACE_AGE += 1;
    17 #   SDL_BINARY_AGE += 1;
    18 # if any functions have been added, set SDL_INTERFACE_AGE to 0.
    19 # if backwards compatibility has been broken,
    20 # set SDL_BINARY_AGE and SDL_INTERFACE_AGE to 0.
    21 #
    22 SDL_MAJOR_VERSION=2
    23 SDL_MINOR_VERSION=0
    24 SDL_MICRO_VERSION=0
    25 SDL_INTERFACE_AGE=0
    26 SDL_BINARY_AGE=0
    27 SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
    28 
    29 AC_SUBST(SDL_MAJOR_VERSION)
    30 AC_SUBST(SDL_MINOR_VERSION)
    31 AC_SUBST(SDL_MICRO_VERSION)
    32 AC_SUBST(SDL_INTERFACE_AGE)
    33 AC_SUBST(SDL_BINARY_AGE)
    34 AC_SUBST(SDL_VERSION)
    35 
    36 # libtool versioning
    37 LT_INIT([win32-dll])
    38 
    39 LT_RELEASE=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION
    40 LT_CURRENT=`expr $SDL_MICRO_VERSION - $SDL_INTERFACE_AGE`
    41 LT_REVISION=$SDL_INTERFACE_AGE
    42 LT_AGE=`expr $SDL_BINARY_AGE - $SDL_INTERFACE_AGE`
    43 m4_pattern_allow([^LT_])
    44 
    45 AC_SUBST(LT_RELEASE)
    46 AC_SUBST(LT_CURRENT)
    47 AC_SUBST(LT_REVISION)
    48 AC_SUBST(LT_AGE)
    49 
    50 dnl Detect the canonical build and host environments
    51 dnl AC_CANONICAL_HOST
    52 
    53 dnl Check for tools
    54 AC_PROG_LIBTOOL
    55 AC_PROG_CC
    56 AC_PROG_CXX
    57 AC_PROG_INSTALL
    58 AC_PROG_MAKE_SET
    59 AC_CHECK_TOOL(WINDRES, [windres], [:])
    60 
    61 dnl Set up the compiler and linker flags
    62 INCLUDE="-I$srcdir/include"
    63 if test x$srcdir != x.; then
    64     INCLUDE="-Iinclude $INCLUDE"
    65 elif test -d .hg; then
    66     AC_MSG_ERROR([
    67 *** When building from Mercurial you should configure and build in a
    68     separate directory so you don't clobber SDL_config.h, SDL_revision.h
    69 ])
    70 fi
    71 case "$host" in
    72     *-*-cygwin*)
    73         # We build SDL on cygwin without the UNIX emulation layer
    74         BASE_CFLAGS="-I/usr/include/mingw -mno-cygwin"
    75         BASE_LDFLAGS="-mno-cygwin"
    76         ;;
    77     *)
    78         BASE_CFLAGS=""
    79         BASE_LDFLAGS=""
    80         ;;
    81 esac
    82 # Uncomment the following line if you want to force SDL and applications
    83 # built with it to be compiled for a particular architecture.
    84 #AX_GCC_ARCHFLAG([no], [BASE_CFLAGS="$BASE_CFLAGS $ax_cv_gcc_archflag]")
    85 BUILD_CFLAGS="$CFLAGS $CPPFLAGS -DUSING_GENERATED_CONFIG_H"
    86 # The default optimization for SDL is -O3 (Bug #31)
    87 if test x$orig_CFLAGS = x; then
    88     BUILD_CFLAGS=`echo $BUILD_CFLAGS | sed 's/-O2/-O3/'`
    89 fi
    90 EXTRA_CFLAGS="$INCLUDE $BASE_CFLAGS"
    91 BUILD_LDFLAGS="$LDFLAGS"
    92 EXTRA_LDFLAGS="$BASE_LDFLAGS"
    93 ## These are common directories to find software packages
    94 #for path in /usr/freeware /usr/pkg /usr/X11R6 /usr/local; do
    95 #    if test -d $path/include; then
    96 #        EXTRA_CFLAGS="$EXTRA_CFLAGS -I$path/include"
    97 #    fi
    98 #    if test -d $path/lib; then
    99 #        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -L$path/lib"
   100 #    fi
   101 #done
   102 SDL_CFLAGS="$BASE_CFLAGS"
   103 SDL_LIBS="-lSDL2 $BASE_LDFLAGS"
   104 CPPFLAGS="$CPPFLAGS $EXTRA_CFLAGS"
   105 CFLAGS="$CFLAGS $EXTRA_CFLAGS"
   106 LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS"
   107 
   108 dnl set this to use on systems that use lib64 instead of lib
   109 base_libdir=`echo \${libdir} | sed 's/.*\/\(.*\)/\1/; q'`
   110 
   111 dnl Function to find a library in the compiler search path
   112 find_lib()
   113 {
   114     gcc_bin_path=[`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
   115     gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
   116     env_lib_path=[`echo $LIBS $LDFLAGS $* | sed 's/-L[ ]*//g'`]
   117     if test "$cross_compiling" = yes; then
   118         host_lib_path=""
   119     else
   120         host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
   121     fi
   122     for path in $gcc_bin_path $gcc_lib_path $env_lib_path $host_lib_path; do
   123         lib=[`ls -- $path/$1 2>/dev/null | sort | sed 's/.*\/\(.*\)/\1/; q'`]
   124         if test x$lib != x; then
   125             echo $lib
   126             return
   127         fi
   128     done
   129 }
   130 
   131 dnl Check for compiler characteristics
   132 AC_C_CONST
   133 AC_C_INLINE
   134 AC_C_VOLATILE
   135 
   136 dnl See whether we want assertions for debugging/sanity checking SDL itself.
   137 AC_ARG_ENABLE(assertions,
   138 AC_HELP_STRING([--enable-assertions],
   139                [Enable internal sanity checks (auto/disabled/release/enabled/paranoid) [[default=auto]]]),
   140               , enable_assertions=auto)
   141 case "$enable_assertions" in
   142     auto) # Use optimization settings to determine assertion level
   143         ;;
   144     disabled)
   145         AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 0, [ ])
   146         ;;
   147     release)
   148         AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 1, [ ])
   149         ;;
   150     enabled)
   151         AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 2, [ ])
   152         ;;
   153     paranoid)
   154         AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 3, [ ])
   155         ;;
   156     *)
   157         AC_MSG_ERROR([*** unknown assertion level. stop.])
   158         ;;
   159 esac
   160 
   161 dnl See whether we can use gcc style dependency tracking
   162 AC_ARG_ENABLE(dependency-tracking,
   163 AC_HELP_STRING([--enable-dependency-tracking],
   164                [Use gcc -MMD -MT dependency tracking [[default=yes]]]),
   165               , enable_dependency_tracking=yes)
   166 if test x$enable_dependency_tracking = xyes; then
   167     have_gcc_mmd_mt=no
   168     AC_MSG_CHECKING(for GCC -MMD -MT option)
   169     AC_TRY_COMPILE([
   170     #if !defined(__GNUC__) || __GNUC__ < 3
   171     #error Dependency tracking requires GCC 3.0 or newer
   172     #endif
   173     ],[
   174     ],[
   175     have_gcc_mmd_mt=yes
   176     ])
   177     AC_MSG_RESULT($have_gcc_mmd_mt)
   178 
   179     if test x$have_gcc_mmd_mt = xyes; then
   180         DEPENDENCY_TRACKING_OPTIONS="-MMD -MT \$@"
   181     fi
   182 fi
   183 
   184 dnl See whether we are allowed to use the system C library
   185 AC_ARG_ENABLE(libc,
   186 AC_HELP_STRING([--enable-libc], [Use the system C library [[default=yes]]]),
   187               , enable_libc=yes)
   188 if test x$enable_libc = xyes; then
   189     AC_DEFINE(HAVE_LIBC, 1, [ ])
   190 
   191     dnl Check for C library headers
   192     AC_HEADER_STDC
   193     AC_CHECK_HEADERS(sys/types.h stdio.h stdlib.h stddef.h stdarg.h malloc.h memory.h string.h strings.h inttypes.h stdint.h ctype.h math.h iconv.h signal.h)
   194 
   195     dnl Check for typedefs, structures, etc.
   196     AC_TYPE_SIZE_T
   197 
   198     dnl Check for defines
   199     AC_CHECK_DEFINE(M_PI, math.h)
   200 
   201     dnl Checks for library functions.
   202     case "$host" in
   203     *-*-cygwin* | *-*-mingw32*)
   204         ;;
   205     *)
   206         AC_FUNC_ALLOCA
   207         ;;
   208     esac
   209 
   210     AC_FUNC_MEMCMP
   211     if test x$ac_cv_func_memcmp_working = xyes; then
   212         AC_DEFINE(HAVE_MEMCMP, 1, [ ])
   213     fi
   214     AC_FUNC_STRTOD
   215     if test x$ac_cv_func_strtod = xyes; then
   216         AC_DEFINE(HAVE_STRTOD, 1, [ ])
   217     fi
   218     AC_CHECK_FUNC(mprotect,
   219         AC_TRY_COMPILE([
   220           #include <sys/types.h>
   221           #include <sys/mman.h>
   222         ],[
   223         ],[
   224         AC_DEFINE(HAVE_MPROTECT, 1, [ ])
   225         ]),
   226     )
   227     AC_CHECK_FUNCS(malloc calloc realloc free getenv setenv putenv unsetenv qsort abs bcopy memset memcpy memmove strlen strlcpy strlcat strdup _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp sscanf snprintf vsnprintf sigaction setjmp nanosleep sysconf sysctlbyname)
   228 
   229     AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"])
   230     AC_CHECK_FUNCS(atan atan2 ceil copysign cos cosf fabs floor log pow scalbn sin sinf sqrt)
   231 
   232     AC_CHECK_LIB(iconv, iconv_open, [LIBS="$LIBS -liconv"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -liconv"])
   233     AC_CHECK_FUNCS(iconv)
   234 
   235     AC_CHECK_MEMBER(struct sigaction.sa_sigaction,[AC_DEFINE(HAVE_SA_SIGACTION)], ,[#include <signal.h>])
   236 fi
   237 
   238 AC_CHECK_SIZEOF(void*)
   239 
   240 dnl See whether we can use gcc atomic operations on this architecture
   241 AC_ARG_ENABLE(gcc-atomics,
   242 AC_HELP_STRING([--enable-gcc-atomics],
   243                [Use gcc builtin atomics [[default=yes]]]),
   244               , enable_gcc_atomics=yes)
   245 if test x$enable_gcc_atomics = xyes; then
   246     have_gcc_atomics=no
   247     AC_MSG_CHECKING(for GCC builtin atomic operations)
   248     AC_TRY_LINK([
   249     ],[
   250     int a;
   251     void *x, *y, *z;
   252     __sync_lock_test_and_set(&a, 4);
   253     __sync_lock_test_and_set(&x, y);
   254     __sync_fetch_and_add(&a, 1);
   255     __sync_bool_compare_and_swap(&a, 5, 10);
   256     __sync_bool_compare_and_swap(&x, y, z);
   257     ],[
   258     have_gcc_atomics=yes
   259     ])
   260     AC_MSG_RESULT($have_gcc_atomics)
   261 
   262     if test x$have_gcc_atomics = xyes; then
   263         AC_DEFINE(HAVE_GCC_ATOMICS, 1, [ ])
   264     else
   265         # See if we have the minimum operation needed for GCC atomics
   266         AC_TRY_LINK([
   267         ],[
   268         int a;
   269         __sync_lock_test_and_set(&a, 1);
   270         __sync_lock_release(&a);
   271         ],[
   272         have_gcc_sync_lock_test_and_set=yes
   273         ])
   274         if test x$have_gcc_sync_lock_test_and_set = xyes; then
   275             AC_DEFINE(HAVE_GCC_SYNC_LOCK_TEST_AND_SET, 1, [ ])
   276         fi
   277     fi
   278 fi
   279 
   280 # Standard C sources
   281 SOURCES="$SOURCES $srcdir/src/*.c"
   282 SOURCES="$SOURCES $srcdir/src/atomic/*.c"
   283 SOURCES="$SOURCES $srcdir/src/audio/*.c"
   284 SOURCES="$SOURCES $srcdir/src/cpuinfo/*.c"
   285 SOURCES="$SOURCES $srcdir/src/events/*.c"
   286 SOURCES="$SOURCES $srcdir/src/file/*.c"
   287 SOURCES="$SOURCES $srcdir/src/render/*.c"
   288 SOURCES="$SOURCES $srcdir/src/render/*/*.c"
   289 SOURCES="$SOURCES $srcdir/src/stdlib/*.c"
   290 SOURCES="$SOURCES $srcdir/src/thread/*.c"
   291 SOURCES="$SOURCES $srcdir/src/timer/*.c"
   292 SOURCES="$SOURCES $srcdir/src/video/*.c"
   293 
   294 dnl Enable/disable various subsystems of the SDL library
   295 
   296 AC_ARG_ENABLE(atomic,
   297 AC_HELP_STRING([--enable-atomic], [Enable the atomic operations subsystem [[default=yes]]]),
   298               , enable_atomic=yes)
   299 if test x$enable_atomic != xyes; then
   300     AC_DEFINE(SDL_ATOMIC_DISABLED, 1, [ ])
   301 fi
   302 AC_ARG_ENABLE(audio,
   303 AC_HELP_STRING([--enable-audio], [Enable the audio subsystem [[default=yes]]]),
   304               , enable_audio=yes)
   305 if test x$enable_audio != xyes; then
   306     AC_DEFINE(SDL_AUDIO_DISABLED, 1, [ ])
   307 fi
   308 AC_ARG_ENABLE(video,
   309 AC_HELP_STRING([--enable-video], [Enable the video subsystem [[default=yes]]]),
   310               , enable_video=yes)
   311 if test x$enable_video != xyes; then
   312     AC_DEFINE(SDL_VIDEO_DISABLED, 1, [ ])
   313 fi
   314 AC_ARG_ENABLE(render,
   315 AC_HELP_STRING([--enable-render], [Enable the render subsystem [[default=yes]]]),
   316               , enable_render=yes)
   317 if test x$enable_render != xyes; then
   318     AC_DEFINE(SDL_RENDER_DISABLED, 1, [ ])
   319 fi
   320 AC_ARG_ENABLE(events,
   321 AC_HELP_STRING([--enable-events], [Enable the events subsystem [[default=yes]]]),
   322               , enable_events=yes)
   323 if test x$enable_events != xyes; then
   324     AC_DEFINE(SDL_EVENTS_DISABLED, 1, [ ])
   325 fi
   326 AC_ARG_ENABLE(joystick,
   327 AC_HELP_STRING([--enable-joystick], [Enable the joystick subsystem [[default=yes]]]),
   328               , enable_joystick=yes)
   329 if test x$enable_joystick != xyes; then
   330     AC_DEFINE(SDL_JOYSTICK_DISABLED, 1, [ ])
   331 else
   332     SOURCES="$SOURCES $srcdir/src/joystick/*.c"
   333 fi
   334 AC_ARG_ENABLE(haptic,
   335 AC_HELP_STRING([--enable-haptic], [Enable the haptic (force feedback) subsystem [[default=yes]]]),
   336               , enable_haptic=yes)
   337 if test x$enable_haptic != xyes; then
   338     AC_DEFINE(SDL_HAPTIC_DISABLED, 1, [ ])
   339 else
   340     SOURCES="$SOURCES $srcdir/src/haptic/*.c"
   341 fi
   342 AC_ARG_ENABLE(power,
   343 AC_HELP_STRING([--enable-power], [Enable the power subsystem [[default=yes]]]),
   344               , enable_power=yes)
   345 if test x$enable_power != xyes; then
   346     AC_DEFINE(SDL_POWER_DISABLED, 1, [ ])
   347 else
   348     SOURCES="$SOURCES $srcdir/src/power/*.c"
   349 fi
   350 AC_ARG_ENABLE(threads,
   351 AC_HELP_STRING([--enable-threads], [Enable the threading subsystem [[default=yes]]]),
   352               , enable_threads=yes)
   353 if test x$enable_threads != xyes; then
   354     AC_DEFINE(SDL_THREADS_DISABLED, 1, [ ])
   355 fi
   356 AC_ARG_ENABLE(timers,
   357 AC_HELP_STRING([--enable-timers], [Enable the timer subsystem [[default=yes]]]),
   358               , enable_timers=yes)
   359 if test x$enable_timers != xyes; then
   360     AC_DEFINE(SDL_TIMERS_DISABLED, 1, [ ])
   361 fi
   362 AC_ARG_ENABLE(file,
   363 AC_HELP_STRING([--enable-file], [Enable the file subsystem [[default=yes]]]),
   364               , enable_file=yes)
   365 if test x$enable_file != xyes; then
   366     AC_DEFINE(SDL_FILE_DISABLED, 1, [ ])
   367 fi
   368 AC_ARG_ENABLE(loadso,
   369 AC_HELP_STRING([--enable-loadso], [Enable the shared object loading subsystem [[default=yes]]]),
   370               , enable_loadso=yes)
   371 if test x$enable_loadso != xyes; then
   372     AC_DEFINE(SDL_LOADSO_DISABLED, 1, [ ])
   373 fi
   374 AC_ARG_ENABLE(cpuinfo,
   375 AC_HELP_STRING([--enable-cpuinfo], [Enable the cpuinfo subsystem [[default=yes]]]),
   376               , enable_cpuinfo=yes)
   377 if test x$enable_cpuinfo != xyes; then
   378     AC_DEFINE(SDL_CPUINFO_DISABLED, 1, [ ])
   379 fi
   380 AC_ARG_ENABLE(atomic,
   381 AC_HELP_STRING([--enable-atomic], [Enable the atomic operations [[default=yes]]]),
   382               , enable_atomic=yes)
   383 if test x$enable_atomic != xyes; then
   384     AC_DEFINE(SDL_ATOMIC_DISABLED, 1, [ ])
   385 fi
   386 AC_ARG_ENABLE(assembly,
   387 AC_HELP_STRING([--enable-assembly], [Enable assembly routines [[default=yes]]]),
   388               , enable_assembly=yes)
   389 if test x$enable_assembly = xyes; then
   390     AC_DEFINE(SDL_ASSEMBLY_ROUTINES, 1, [ ])
   391 
   392     # Make sure that we don't generate floating point code that would
   393     # cause illegal instruction exceptions on older processors
   394     case "$host" in
   395         *-*-darwin*)
   396             # Don't need to worry about Apple hardware, it's all SSE capable
   397             default_ssemath=yes
   398             ;;
   399         *64-*-*)
   400             # x86 64-bit architectures all have SSE instructions
   401             default_ssemath=yes
   402             ;;
   403         *)
   404             default_ssemath=no
   405             ;;
   406     esac
   407     AC_ARG_ENABLE(ssemath,
   408 AC_HELP_STRING([--enable-ssemath], [Allow GCC to use SSE floating point math [[default=no]]]),
   409                   , enable_ssemath=$default_ssemath)
   410     if test x$enable_ssemath = xno; then
   411         if test x$have_gcc_sse = xyes -o x$have_gcc_sse2 = xyes; then
   412             EXTRA_CFLAGS="$EXTRA_CFLAGS -mfpmath=387"
   413         fi
   414     fi
   415 
   416     dnl Check for various instruction support
   417     AC_ARG_ENABLE(mmx,
   418 AC_HELP_STRING([--enable-mmx], [use MMX assembly routines [[default=yes]]]),
   419                   , enable_mmx=yes)
   420     if test x$enable_mmx = xyes; then
   421         save_CFLAGS="$CFLAGS"
   422         have_gcc_mmx=no
   423         AC_MSG_CHECKING(for GCC -mmmx option)
   424         mmx_CFLAGS="-mmmx"
   425         CFLAGS="$save_CFLAGS $mmx_CFLAGS"
   426 
   427         AC_TRY_COMPILE([
   428         #ifdef __MINGW32__
   429         #include <_mingw.h>
   430         #ifdef __MINGW64_VERSION_MAJOR
   431         #include <intrin.h>
   432         #else
   433         #include <mmintrin.h>
   434         #endif
   435         #else
   436         #include <mmintrin.h>
   437         #endif
   438         #ifndef __MMX__
   439         #error Assembler CPP flag not enabled
   440         #endif
   441         ],[
   442         ],[
   443         have_gcc_mmx=yes
   444         ])
   445         AC_MSG_RESULT($have_gcc_mmx)
   446         CFLAGS="$save_CFLAGS"
   447 
   448         if test x$have_gcc_mmx = xyes; then
   449             EXTRA_CFLAGS="$EXTRA_CFLAGS $mmx_CFLAGS"
   450         fi
   451     fi
   452 
   453     AC_ARG_ENABLE(3dnow,
   454 AC_HELP_STRING([--enable-3dnow], [use MMX assembly routines [[default=yes]]]),
   455                   , enable_3dnow=yes)
   456     if test x$enable_3dnow = xyes; then
   457         save_CFLAGS="$CFLAGS"
   458         have_gcc_3dnow=no
   459         AC_MSG_CHECKING(for GCC -m3dnow option)
   460         amd3dnow_CFLAGS="-m3dnow"
   461         CFLAGS="$save_CFLAGS $amd3dnow_CFLAGS"
   462 
   463         AC_TRY_COMPILE([
   464         #include <mm3dnow.h>
   465         #ifndef __3dNOW__
   466         #error Assembler CPP flag not enabled
   467         #endif
   468         ],[
   469         ],[
   470         have_gcc_3dnow=yes
   471         ])
   472         AC_MSG_RESULT($have_gcc_3dnow)
   473         CFLAGS="$save_CFLAGS"
   474 
   475         if test x$have_gcc_3dnow = xyes; then
   476             EXTRA_CFLAGS="$EXTRA_CFLAGS $amd3dnow_CFLAGS"
   477         fi
   478     fi
   479 
   480     AC_ARG_ENABLE(sse,
   481 AC_HELP_STRING([--enable-sse], [use SSE assembly routines [[default=yes]]]),
   482                   , enable_sse=yes)
   483     if test x$enable_sse = xyes; then
   484         save_CFLAGS="$CFLAGS"
   485         have_gcc_sse=no
   486         AC_MSG_CHECKING(for GCC -msse option)
   487         sse_CFLAGS="-msse"
   488         CFLAGS="$save_CFLAGS $sse_CFLAGS"
   489 
   490         AC_TRY_COMPILE([
   491         #ifdef __MINGW32__
   492         #include <_mingw.h>
   493         #ifdef __MINGW64_VERSION_MAJOR
   494         #include <intrin.h>
   495         #else
   496         #include <xmmintrin.h>
   497         #endif
   498         #else
   499         #include <xmmintrin.h>
   500         #endif
   501         #ifndef __SSE__
   502         #error Assembler CPP flag not enabled
   503         #endif
   504         ],[
   505         ],[
   506         have_gcc_sse=yes
   507         ])
   508         AC_MSG_RESULT($have_gcc_sse)
   509         CFLAGS="$save_CFLAGS"
   510 
   511         if test x$have_gcc_sse = xyes; then
   512             EXTRA_CFLAGS="$EXTRA_CFLAGS $sse_CFLAGS"
   513         fi
   514     fi
   515 
   516     AC_ARG_ENABLE(sse2,
   517 AC_HELP_STRING([--enable-sse2], [use SSE2 assembly routines [[default=no]]]),
   518                   , enable_sse2=$default_ssemath)
   519     if test x$enable_sse2 = xyes; then
   520         save_CFLAGS="$CFLAGS"
   521         have_gcc_sse2=no
   522         AC_MSG_CHECKING(for GCC -msse2 option)
   523         sse2_CFLAGS="-msse2"
   524         CFLAGS="$save_CFLAGS $sse2_CFLAGS"
   525 
   526         AC_TRY_COMPILE([
   527         #ifdef __MINGW32__
   528         #include <_mingw.h>
   529         #ifdef __MINGW64_VERSION_MAJOR
   530         #include <intrin.h>
   531         #else
   532         #include <emmintrin.h>
   533         #endif
   534         #else
   535         #include <emmintrin.h>
   536         #endif
   537         #ifndef __SSE2__
   538         #error Assembler CPP flag not enabled
   539         #endif
   540         ],[
   541         ],[
   542         have_gcc_sse2=yes
   543         ])
   544         AC_MSG_RESULT($have_gcc_sse2)
   545         CFLAGS="$save_CFLAGS"
   546 
   547         if test x$have_gcc_sse2 = xyes; then
   548             EXTRA_CFLAGS="$EXTRA_CFLAGS $sse2_CFLAGS"
   549         fi
   550     fi
   551 
   552     AC_ARG_ENABLE(altivec,
   553 AC_HELP_STRING([--enable-altivec], [use Altivec assembly routines [[default=yes]]]),
   554                   , enable_altivec=yes)
   555     if test x$enable_altivec = xyes; then
   556         save_CFLAGS="$CFLAGS"
   557         have_gcc_altivec=no
   558         have_altivec_h_hdr=no
   559         altivec_CFLAGS="-maltivec"
   560         CFLAGS="$save_CFLAGS $altivec_CFLAGS"
   561 
   562         AC_MSG_CHECKING(for Altivec with GCC altivec.h and -maltivec option)
   563         AC_TRY_COMPILE([
   564         #include <altivec.h>
   565         vector unsigned int vzero() {
   566             return vec_splat_u32(0);
   567         }
   568         ],[
   569         ],[
   570         have_gcc_altivec=yes
   571         have_altivec_h_hdr=yes
   572         ])
   573         AC_MSG_RESULT($have_gcc_altivec)
   574 
   575         if test x$have_gcc_altivec = xno; then
   576             AC_MSG_CHECKING(for Altivec with GCC -maltivec option)
   577             AC_TRY_COMPILE([
   578             vector unsigned int vzero() {
   579                 return vec_splat_u32(0);
   580             }
   581             ],[
   582             ],[
   583             have_gcc_altivec=yes
   584             ])
   585             AC_MSG_RESULT($have_gcc_altivec)
   586         fi
   587 
   588         if test x$have_gcc_altivec = xno; then
   589             AC_MSG_CHECKING(for Altivec with GCC altivec.h and -faltivec option)
   590             altivec_CFLAGS="-faltivec"
   591             CFLAGS="$save_CFLAGS $altivec_CFLAGS"
   592             AC_TRY_COMPILE([
   593             #include <altivec.h>
   594             vector unsigned int vzero() {
   595                 return vec_splat_u32(0);
   596             }
   597             ],[
   598             ],[
   599             have_gcc_altivec=yes
   600             have_altivec_h_hdr=yes
   601             ])
   602             AC_MSG_RESULT($have_gcc_altivec)
   603         fi
   604 
   605         if test x$have_gcc_altivec = xno; then
   606             AC_MSG_CHECKING(for Altivec with GCC -faltivec option)
   607             AC_TRY_COMPILE([
   608             vector unsigned int vzero() {
   609                 return vec_splat_u32(0);
   610             }
   611             ],[
   612             ],[
   613             have_gcc_altivec=yes
   614             ])
   615             AC_MSG_RESULT($have_gcc_altivec)
   616         fi
   617         CFLAGS="$save_CFLAGS"
   618 
   619         if test x$have_gcc_altivec = xyes; then
   620             AC_DEFINE(SDL_ALTIVEC_BLITTERS, 1, [ ])
   621             if test x$have_altivec_h_hdr = xyes; then
   622               AC_DEFINE(HAVE_ALTIVEC_H, 1, [ ])
   623             fi
   624             EXTRA_CFLAGS="$EXTRA_CFLAGS $altivec_CFLAGS"
   625         fi
   626     fi
   627 fi
   628 
   629 dnl See if the OSS audio interface is supported
   630 CheckOSS()
   631 {
   632     AC_ARG_ENABLE(oss,
   633 AC_HELP_STRING([--enable-oss], [support the OSS audio API [[default=yes]]]),
   634                   , enable_oss=yes)
   635     if test x$enable_audio = xyes -a x$enable_oss = xyes; then
   636         AC_MSG_CHECKING(for OSS audio support)
   637         have_oss=no
   638         if test x$have_oss != xyes; then
   639             AC_TRY_COMPILE([
   640               #include <sys/soundcard.h>
   641             ],[
   642               int arg = SNDCTL_DSP_SETFRAGMENT;
   643             ],[
   644             have_oss=yes
   645             ])
   646         fi
   647         if test x$have_oss != xyes; then
   648             AC_TRY_COMPILE([
   649               #include <soundcard.h>
   650             ],[
   651               int arg = SNDCTL_DSP_SETFRAGMENT;
   652             ],[
   653             have_oss=yes
   654             AC_DEFINE(SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H, 1, [ ])
   655             ])
   656         fi
   657         AC_MSG_RESULT($have_oss)
   658         if test x$have_oss = xyes; then
   659             AC_DEFINE(SDL_AUDIO_DRIVER_OSS, 1, [ ])
   660             SOURCES="$SOURCES $srcdir/src/audio/dsp/*.c"
   661             have_audio=yes
   662 
   663             # We may need to link with ossaudio emulation library
   664             case "$host" in
   665                 *-*-openbsd*|*-*-netbsd*)
   666                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lossaudio";;
   667             esac
   668         fi
   669     fi
   670 }
   671 
   672 dnl See if the ALSA audio interface is supported
   673 CheckALSA()
   674 {
   675     AC_ARG_ENABLE(alsa,
   676 AC_HELP_STRING([--enable-alsa], [support the ALSA audio API [[default=yes]]]),
   677                   , enable_alsa=yes)
   678     if test x$enable_audio = xyes -a x$enable_alsa = xyes; then
   679         AM_PATH_ALSA(0.9.0, have_alsa=yes, have_alsa=no)
   680         # Restore all flags from before the ALSA detection runs
   681         CFLAGS="$alsa_save_CFLAGS"
   682         LDFLAGS="$alsa_save_LDFLAGS"
   683         LIBS="$alsa_save_LIBS"
   684         if test x$have_alsa = xyes; then
   685             AC_ARG_ENABLE(alsa-shared,
   686 AC_HELP_STRING([--enable-alsa-shared], [dynamically load ALSA audio support [[default=yes]]]),
   687                           , enable_alsa_shared=yes)
   688             alsa_lib=[`find_lib "libasound.so.*" "$ALSA_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   689 
   690             AC_DEFINE(SDL_AUDIO_DRIVER_ALSA, 1, [ ])
   691             SOURCES="$SOURCES $srcdir/src/audio/alsa/*.c"
   692             EXTRA_CFLAGS="$EXTRA_CFLAGS $ALSA_CFLAGS"
   693             if test x$have_loadso != xyes && \
   694                test x$enable_alsa_shared = xyes; then
   695                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ALSA loading])
   696             fi
   697             if test x$have_loadso = xyes && \
   698                test x$enable_alsa_shared = xyes && test x$alsa_lib != x; then
   699                 echo "-- dynamic libasound -> $alsa_lib"
   700                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ALSA_DYNAMIC, "$alsa_lib", [ ])
   701             else
   702                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ALSA_LIBS"
   703             fi
   704             have_audio=yes
   705         fi
   706     fi
   707 }
   708 
   709 dnl Find the ESD includes and libraries
   710 CheckESD()
   711 {
   712     AC_ARG_ENABLE(esd,
   713 AC_HELP_STRING([--enable-esd], [support the Enlightened Sound Daemon [[default=yes]]]),
   714                   , enable_esd=yes)
   715     if test x$enable_audio = xyes -a x$enable_esd = xyes; then
   716         AM_PATH_ESD(0.2.8, have_esd=yes, have_esd=no)
   717         if test x$have_esd = xyes; then
   718             AC_ARG_ENABLE(esd-shared,
   719 AC_HELP_STRING([--enable-esd-shared], [dynamically load ESD audio support [[default=yes]]]),
   720                           , enable_esd_shared=yes)
   721             esd_lib=[`find_lib "libesd.so.*" "$ESD_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   722 
   723             AC_DEFINE(SDL_AUDIO_DRIVER_ESD, 1, [ ])
   724             SOURCES="$SOURCES $srcdir/src/audio/esd/*.c"
   725             EXTRA_CFLAGS="$EXTRA_CFLAGS $ESD_CFLAGS"
   726             if test x$have_loadso != xyes && \
   727                test x$enable_esd_shared = xyes; then
   728                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ESD loading])
   729             fi
   730             if test x$have_loadso = xyes && \
   731                test x$enable_esd_shared = xyes && test x$esd_lib != x; then
   732                 echo "-- dynamic libesd -> $esd_lib"
   733                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ESD_DYNAMIC, "$esd_lib", [ ])
   734             else
   735                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ESD_LIBS"
   736             fi
   737             have_audio=yes
   738         fi
   739     fi
   740 }
   741 
   742 dnl Find PulseAudio
   743 CheckPulseAudio()
   744 {
   745     AC_ARG_ENABLE(pulseaudio,
   746 AC_HELP_STRING([--enable-pulseaudio], [use PulseAudio [[default=yes]]]),
   747                   , enable_pulseaudio=yes)
   748     if test x$enable_audio = xyes -a x$enable_pulseaudio = xyes; then
   749         audio_pulseaudio=no
   750 
   751         PULSEAUDIO_REQUIRED_VERSION=0.9
   752 
   753         AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
   754         AC_MSG_CHECKING(for PulseAudio $PULSEAUDIO_REQUIRED_VERSION support)
   755         if test x$PKG_CONFIG != xno; then
   756         if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $PULSEAUDIO_REQUIRED_VERSION libpulse-simple; then
   757                 PULSEAUDIO_CFLAGS=`$PKG_CONFIG --cflags libpulse-simple`
   758                 PULSEAUDIO_LIBS=`$PKG_CONFIG --libs libpulse-simple`
   759                 audio_pulseaudio=yes
   760             fi
   761         fi
   762         AC_MSG_RESULT($audio_pulseaudio)
   763 
   764         if test x$audio_pulseaudio = xyes; then
   765             AC_ARG_ENABLE(pulseaudio-shared,
   766 AC_HELP_STRING([--enable-pulseaudio-shared], [dynamically load PulseAudio support [[default=yes]]]),
   767                           , enable_pulseaudio_shared=yes)
   768             pulseaudio_lib=[`find_lib "libpulse-simple.so.*" "$PULSEAUDIO_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   769 
   770             AC_DEFINE(SDL_AUDIO_DRIVER_PULSEAUDIO, 1, [ ])
   771             SOURCES="$SOURCES $srcdir/src/audio/pulseaudio/*.c"
   772             EXTRA_CFLAGS="$EXTRA_CFLAGS $PULSEAUDIO_CFLAGS"
   773             if test x$have_loadso != xyes && \
   774                test x$enable_pulseaudio_shared = xyes; then
   775                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic PulseAudio loading])
   776             fi
   777             if test x$have_loadso = xyes && \
   778                test x$enable_pulseaudio_shared = xyes && test x$pulseaudio_lib != x; then
   779                 echo "-- dynamic libpulse-simple -> $pulseaudio_lib"
   780                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC, "$pulseaudio_lib", [ ])
   781             else
   782                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PULSEAUDIO_LIBS"
   783             fi
   784             have_audio=yes
   785         fi
   786     fi
   787 }
   788 
   789 CheckARTSC()
   790 {
   791     AC_ARG_ENABLE(arts,
   792 AC_HELP_STRING([--enable-arts], [support the Analog Real Time Synthesizer [[default=yes]]]),
   793                   , enable_arts=yes)
   794     if test x$enable_audio = xyes -a x$enable_arts = xyes; then
   795         AC_PATH_PROG(ARTSCONFIG, artsc-config)
   796         if test x$ARTSCONFIG = x -o x$ARTSCONFIG = x'"$ARTSCONFIG"'; then
   797             : # arts isn't installed
   798         else
   799             ARTS_CFLAGS=`$ARTSCONFIG --cflags`
   800             ARTS_LIBS=`$ARTSCONFIG --libs`
   801             AC_MSG_CHECKING(for aRts development environment)
   802             audio_arts=no
   803             save_CFLAGS="$CFLAGS"
   804             CFLAGS="$CFLAGS $ARTS_CFLAGS"
   805             AC_TRY_COMPILE([
   806              #include <artsc.h>
   807             ],[
   808              arts_stream_t stream;
   809             ],[
   810             audio_arts=yes
   811             ])
   812             CFLAGS="$save_CFLAGS"
   813             AC_MSG_RESULT($audio_arts)
   814             if test x$audio_arts = xyes; then
   815                 AC_ARG_ENABLE(arts-shared,
   816 AC_HELP_STRING([--enable-arts-shared], [dynamically load aRts audio support [[default=yes]]]),
   817                               , enable_arts_shared=yes)
   818                 arts_lib=[`find_lib "libartsc.so.*" "$ARTS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   819 
   820                 AC_DEFINE(SDL_AUDIO_DRIVER_ARTS, 1, [ ])
   821                 SOURCES="$SOURCES $srcdir/src/audio/arts/*.c"
   822                 EXTRA_CFLAGS="$EXTRA_CFLAGS $ARTS_CFLAGS"
   823                 if test x$have_loadso != xyes && \
   824                    test x$enable_arts_shared = xyes; then
   825                     AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ARTS loading])
   826                 fi
   827                 if test x$have_loadso = xyes && \
   828                    test x$enable_arts_shared = xyes && test x$arts_lib != x; then
   829                     echo "-- dynamic libartsc -> $arts_lib"
   830                     AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ARTS_DYNAMIC, "$arts_lib", [ ])
   831                 else
   832                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ARTS_LIBS"
   833                 fi
   834                 have_audio=yes
   835             fi
   836         fi
   837     fi
   838 }
   839 
   840 dnl See if the NAS audio interface is supported
   841 CheckNAS()
   842 {
   843     AC_ARG_ENABLE(nas,
   844 AC_HELP_STRING([--enable-nas], [support the NAS audio API [[default=yes]]]),
   845                   , enable_nas=yes)
   846     if test x$enable_audio = xyes -a x$enable_nas = xyes; then
   847         AC_CHECK_HEADER(audio/audiolib.h, have_nas_hdr=yes)
   848         AC_CHECK_LIB(audio, AuOpenServer, have_nas_lib=yes)
   849 
   850         AC_MSG_CHECKING(for NAS audio support)
   851         have_nas=no
   852 
   853         if test x$have_nas_hdr = xyes -a x$have_nas_lib = xyes; then
   854             have_nas=yes
   855             NAS_LIBS="-laudio"
   856 
   857         elif test -r /usr/X11R6/include/audio/audiolib.h; then
   858             have_nas=yes
   859             NAS_CFLAGS="-I/usr/X11R6/include/"
   860             NAS_LIBS="-L/usr/X11R6/lib -laudio -lXt"
   861 
   862         fi
   863 
   864         AC_MSG_RESULT($have_nas)
   865 
   866         if test x$have_nas = xyes; then
   867             AC_ARG_ENABLE(nas-shared,
   868 AC_HELP_STRING([--enable-nas-shared], [dynamically load NAS audio support [[default=yes]]]),
   869                           , enable_nas_shared=yes)
   870             nas_lib=[`find_lib "libaudio.so.*" "$NAS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
   871 
   872             if test x$have_loadso != xyes && \
   873                test x$enable_nas_shared = xyes; then
   874                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic NAS loading])
   875             fi
   876             if test x$have_loadso = xyes && \
   877                test x$enable_nas_shared = xyes && test x$nas_lib != x; then
   878                 echo "-- dynamic libaudio -> $nas_lib"
   879                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_NAS_DYNAMIC, "$nas_lib", [ ])
   880             else
   881                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $NAS_LIBS"
   882             fi
   883 
   884             AC_DEFINE(SDL_AUDIO_DRIVER_NAS, 1, [ ])
   885             SOURCES="$SOURCES $srcdir/src/audio/nas/*.c"
   886             EXTRA_CFLAGS="$EXTRA_CFLAGS $NAS_CFLAGS"
   887             have_audio=yes
   888         fi
   889     fi
   890 }
   891 
   892 dnl rcg07142001 See if the user wants the disk writer audio driver...
   893 CheckDiskAudio()
   894 {
   895     AC_ARG_ENABLE(diskaudio,
   896 AC_HELP_STRING([--enable-diskaudio], [support the disk writer audio driver [[default=yes]]]),
   897                   , enable_diskaudio=yes)
   898     if test x$enable_audio = xyes -a x$enable_diskaudio = xyes; then
   899         AC_DEFINE(SDL_AUDIO_DRIVER_DISK, 1, [ ])
   900         SOURCES="$SOURCES $srcdir/src/audio/disk/*.c"
   901     fi
   902 }
   903 
   904 dnl rcg03142006 See if the user wants the dummy audio driver...
   905 CheckDummyAudio()
   906 {
   907     AC_ARG_ENABLE(dummyaudio,
   908 AC_HELP_STRING([--enable-dummyaudio], [support the dummy audio driver [[default=yes]]]),
   909                   , enable_dummyaudio=yes)
   910     if test x$enable_audio = xyes -a x$enable_dummyaudio = xyes; then
   911         AC_DEFINE(SDL_AUDIO_DRIVER_DUMMY, 1, [ ])
   912         SOURCES="$SOURCES $srcdir/src/audio/dummy/*.c"
   913     fi
   914 }
   915 
   916 dnl See if GCC's -fvisibility=hidden is supported (gcc4 and later, usually).
   917 dnl  Details of this flag are here: http://gcc.gnu.org/wiki/Visibility
   918 CheckVisibilityHidden()
   919 {
   920     AC_MSG_CHECKING(for GCC -fvisibility=hidden option)
   921     have_gcc_fvisibility=no
   922 
   923     visibility_CFLAGS="-fvisibility=hidden"
   924     save_CFLAGS="$CFLAGS"
   925     CFLAGS="$save_CFLAGS $visibility_CFLAGS -Werror"
   926     AC_TRY_COMPILE([
   927     #if !defined(__GNUC__) || __GNUC__ < 4
   928     #error SDL only uses visibility attributes in GCC 4 or newer
   929     #endif
   930     ],[
   931     ],[
   932     have_gcc_fvisibility=yes
   933     ])
   934     AC_MSG_RESULT($have_gcc_fvisibility)
   935     CFLAGS="$save_CFLAGS"
   936 
   937     if test x$have_gcc_fvisibility = xyes; then
   938         EXTRA_CFLAGS="$EXTRA_CFLAGS $visibility_CFLAGS"
   939     fi
   940 }
   941 
   942 dnl See if GCC's -mpreferred-stack-boundary is supported.
   943 dnl  Reference: http://bugzilla.libsdl.org/show_bug.cgi?id=1296
   944 CheckStackBoundary()
   945 {
   946     AC_MSG_CHECKING(for GCC -mpreferred-stack-boundary option)
   947     have_gcc_preferred_stack_boundary=no
   948 
   949     save_CFLAGS="$CFLAGS"
   950     CFLAGS="$save_CFLAGS -mpreferred-stack-boundary=2"
   951     AC_TRY_COMPILE([
   952     int x = 0;
   953     ],[
   954     ],[
   955     have_gcc_preferred_stack_boundary=yes
   956     ])
   957     AC_MSG_RESULT($have_gcc_preferred_stack_boundary)
   958     CFLAGS="$save_CFLAGS"
   959 
   960     if test x$have_gcc_preferred_stack_boundary = xyes; then
   961         EXTRA_CFLAGS="$EXTRA_CFLAGS -mpreferred-stack-boundary=2"
   962     fi
   963 }
   964 
   965 
   966 dnl See if GCC's -Wall is supported.
   967 CheckWarnAll()
   968 {
   969     AC_MSG_CHECKING(for GCC -Wall option)
   970     have_gcc_Wall=no
   971 
   972     save_CFLAGS="$CFLAGS"
   973     CFLAGS="$save_CFLAGS -Wall"
   974     AC_TRY_COMPILE([
   975     int x = 0;
   976     ],[
   977     ],[
   978     have_gcc_Wall=yes
   979     ])
   980     AC_MSG_RESULT($have_gcc_Wall)
   981     CFLAGS="$save_CFLAGS"
   982 
   983     if test x$have_gcc_Wall = xyes; then
   984         EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
   985 
   986         dnl Haiku headers use multicharacter constants all over the place. Ignore these warnings when using -Wall.
   987         AC_MSG_CHECKING(for necessary GCC -Wno-multichar option)
   988         need_gcc_Wno_multichar=no
   989         case "$host" in
   990             *-*-beos* | *-*-haiku*)
   991                 need_gcc_Wno_multichar=yes
   992                 ;;
   993         esac
   994         AC_MSG_RESULT($need_gcc_Wno_multichar)
   995         if test x$need_gcc_Wno_multichar = xyes; then
   996             EXTRA_CFLAGS="$EXTRA_CFLAGS -Wno-multichar"
   997         fi
   998     fi
   999 }
  1000 
  1001 
  1002 dnl Find the X11 include and library directories
  1003 CheckX11()
  1004 {
  1005 
  1006 
  1007     AC_ARG_ENABLE(video-x11,
  1008 AC_HELP_STRING([--enable-video-x11], [use X11 video driver [[default=yes]]]),
  1009                   , enable_video_x11=yes)
  1010     if test x$enable_video = xyes -a x$enable_video_x11 = xyes; then
  1011         case "$host" in
  1012             *-*-darwin*)
  1013                 # This isn't necessary for X11, but fixes GLX detection
  1014                 if test "x$x_includes" = xNONE && test "x$x_libraries" = xNONE; then
  1015                     x_includes="/usr/X11R6/include"
  1016                     x_libraries="/usr/X11R6/lib"
  1017                 fi
  1018                 ;;
  1019         esac
  1020         AC_PATH_X
  1021         AC_PATH_XTRA
  1022         if test x$have_x = xyes; then
  1023             # Only allow dynamically loaded X11 if the X11 function pointers
  1024             # will not end up in the global namespace, which causes problems
  1025             # with other libraries calling X11 functions.
  1026             x11_symbols_private=$have_gcc_fvisibility
  1027 
  1028             AC_ARG_ENABLE(x11-shared,
  1029 AC_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=maybe]]]),
  1030                           , enable_x11_shared=maybe)
  1031 
  1032             case "$host" in
  1033                 *-*-darwin*)
  1034                     x11_symbols_private=yes
  1035                     x11_lib='/usr/X11R6/lib/libX11.6.dylib'
  1036                     x11ext_lib='/usr/X11R6/lib/libXext.6.dylib'
  1037                     xcursor_lib='/usr/X11R6/lib/libXcursor.1.dylib'
  1038                     xinerama_lib='/usr/X11R6/lib/libXinerama.1.dylib'
  1039                     xinput_lib='/usr/X11R6/lib/libXi.6.dylib'
  1040                     xrandr_lib='/usr/X11R6/lib/libXrandr.2.dylib'
  1041                     xrender_lib='/usr/X11R6/lib/libXrender.1.dylib'
  1042                     xss_lib='/usr/X11R6/lib/libXss.1.dylib'
  1043                     xvidmode_lib='/usr/X11R6/lib/libXxf86vm.1.dylib'
  1044                     ;;
  1045                 *)
  1046                     x11_lib=[`find_lib "libX11.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1047                     x11ext_lib=[`find_lib "libXext.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1048                     xcursor_lib=[`find_lib "libXcursor.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1049                     xinerama_lib=[`find_lib "libXinerama.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1050                     xinput_lib=[`find_lib "libXi.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1051                     xrandr_lib=[`find_lib "libXrandr.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1052                     xrender_lib=[`find_lib "libXrender.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1053                     xss_lib=[`find_lib "libXss.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1054                     xvidmode_lib=[`find_lib "libXxf86vm.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1055                     ;;
  1056             esac
  1057 
  1058             if test x$ac_cv_func_shmat != xyes; then
  1059                 X_CFLAGS="$X_CFLAGS -DNO_SHARED_MEMORY"
  1060             fi
  1061             CFLAGS="$CFLAGS $X_CFLAGS"
  1062             LDFLAGS="$LDFLAGS $X_LIBS"
  1063 
  1064             AC_DEFINE(SDL_VIDEO_DRIVER_X11, 1, [ ])
  1065             SOURCES="$SOURCES $srcdir/src/video/x11/*.c"
  1066             EXTRA_CFLAGS="$EXTRA_CFLAGS $X_CFLAGS"
  1067 
  1068             if test x$enable_x11_shared = xmaybe; then
  1069                 enable_x11_shared=$x11_symbols_private
  1070             fi
  1071             if test x$have_loadso != xyes && \
  1072                test x$enable_x11_shared = xyes; then
  1073                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic X11 loading])
  1074                 enable_x11_shared=no
  1075             fi
  1076             if test x$x11_symbols_private != xyes && \
  1077                test x$enable_x11_shared = xyes; then
  1078                 AC_MSG_WARN([You must have gcc4 (-fvisibility=hidden) for dynamic X11 loading])
  1079                 enable_x11_shared=no
  1080             fi
  1081 
  1082             if test x$have_loadso = xyes && \
  1083                test x$enable_x11_shared = xyes && test x$x11_lib != x && test x$x11ext_lib != x; then
  1084                 echo "-- dynamic libX11 -> $x11_lib"
  1085                 echo "-- dynamic libX11ext -> $x11ext_lib"
  1086                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC, "$x11_lib", [ ])
  1087                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT, "$x11ext_lib", [ ])
  1088             else
  1089                 enable_x11_shared=no
  1090                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $X_LIBS -lX11 -lXext"
  1091             fi
  1092             have_video=yes
  1093 
  1094             AC_MSG_CHECKING(for const parameter to XextAddDisplay)
  1095             have_const_param_XextAddDisplay=no
  1096             AC_TRY_COMPILE([
  1097               #include <X11/Xlib.h>
  1098               #include <X11/Xproto.h>
  1099               #include <X11/extensions/Xext.h>
  1100               #include <X11/extensions/extutil.h>
  1101               extern XExtDisplayInfo* XextAddDisplay(XExtensionInfo* a,Display* b,_Xconst char* c,XExtensionHooks* d,int e,XPointer f);
  1102             ],[
  1103             ],[
  1104             have_const_param_XextAddDisplay=yes
  1105             AC_DEFINE(SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY)
  1106             ])
  1107             AC_MSG_RESULT($have_const_param_XextAddDisplay)
  1108 
  1109             AC_CHECK_LIB(X11, XGetEventData, AC_DEFINE(SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS, 1, [Have XGenericEvent]))
  1110             AC_CHECK_LIB(X11, XkbKeycodeToKeysym, AC_DEFINE(SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM, 1, [Have XkbKeycodeToKeysym]))
  1111 
  1112             AC_ARG_ENABLE(video-x11-xcursor,
  1113 AC_HELP_STRING([--enable-video-x11-xcursor], [enable X11 Xcursor support [[default=yes]]]),
  1114                             , enable_video_x11_xcursor=yes)
  1115             if test x$enable_video_x11_xcursor = xyes; then
  1116                 definitely_enable_video_x11_xcursor=no
  1117                 AC_CHECK_HEADER(X11/Xcursor/Xcursor.h,
  1118                                 have_xcursor_h_hdr=yes,
  1119                                 have_xcursor_h_hdr=no,
  1120                                 [#include <X11/Xlib.h>
  1121                                 ])
  1122                 if test x$have_xcursor_h_hdr = xyes; then
  1123                     if test x$enable_x11_shared = xyes && test x$xcursor_lib != x ; then
  1124                         echo "-- dynamic libXcursor -> $xcursor_lib"
  1125                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR, "$xcursor_lib", [ ])
  1126                         definitely_enable_video_x11_xcursor=yes
  1127                     else
  1128                         AC_CHECK_LIB(Xcursor, XcursorImageCreate, have_xcursor_lib=yes)
  1129                         if test x$have_xcursor_lib = xyes ; then
  1130                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXcursor"
  1131                             definitely_enable_video_x11_xcursor=yes
  1132                         fi
  1133                     fi
  1134                 fi
  1135             fi
  1136             if test x$definitely_enable_video_x11_xcursor = xyes; then
  1137                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XCURSOR, 1, [ ])
  1138             fi
  1139             AC_ARG_ENABLE(video-x11-xinerama,
  1140 AC_HELP_STRING([--enable-video-x11-xinerama], [enable X11 Xinerama support [[default=yes]]]),
  1141                             , enable_video_x11_xinerama=yes)
  1142             if test x$enable_video_x11_xinerama = xyes; then
  1143                 definitely_enable_video_x11_xinerama=no
  1144                 AC_CHECK_HEADER(X11/extensions/Xinerama.h,
  1145                                 have_xinerama_h_hdr=yes,
  1146                                 have_xinerama_h_hdr=no,
  1147                                 [#include <X11/Xlib.h>
  1148                                 ])
  1149                 if test x$have_xinerama_h_hdr = xyes; then
  1150                     if test x$enable_x11_shared = xyes && test x$xinerama_lib != x ; then
  1151                         echo "-- dynamic libXinerama -> $xinerama_lib"
  1152                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA, "$xinerama_lib", [ ])
  1153                         definitely_enable_video_x11_xinerama=yes
  1154                     else
  1155                         AC_CHECK_LIB(Xinerama, XineramaQueryExtension, have_xinerama_lib=yes)
  1156                         if test x$have_xinerama_lib = xyes ; then
  1157                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXinerama"
  1158                             definitely_enable_video_x11_xinerama=yes
  1159                         fi
  1160                     fi
  1161                 fi
  1162             fi
  1163             if test x$definitely_enable_video_x11_xinerama = xyes; then
  1164                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINERAMA, 1, [ ])
  1165             fi
  1166             AC_ARG_ENABLE(video-x11-xinput,
  1167 AC_HELP_STRING([--enable-video-x11-xinput], [enable X11 XInput extension for manymouse, tablets, etc [[default=yes]]]),
  1168                             , enable_video_x11_xinput=yes)
  1169             if test x$enable_video_x11_xinput = xyes; then
  1170                 definitely_enable_video_x11_xinput=no
  1171                 AC_CHECK_HEADER(X11/extensions/XInput2.h,
  1172                                 have_xinput_h_hdr=yes,
  1173                                 have_xinput_h_hdr=no,
  1174                                 [#include <X11/Xlib.h>
  1175                                 ])
  1176                 if test x$have_xinput_h_hdr = xyes; then
  1177                     if test x$enable_x11_shared = xyes && test x$xinput_lib != x ; then
  1178                         echo "-- dynamic libXi -> $xinput_lib"
  1179                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2, "$xinput_lib", [ ])
  1180                         definitely_enable_video_x11_xinput=yes
  1181                     else
  1182                         AC_CHECK_LIB(Xi, XOpenDevice, have_xinput_lib=yes)
  1183                         if test x$have_xinput_lib = xyes ; then
  1184                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXi"
  1185                             definitely_enable_video_x11_xinput=yes
  1186                         fi
  1187                     fi
  1188                 fi
  1189             fi
  1190             if test x$definitely_enable_video_x11_xinput = xyes; then
  1191                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINPUT2, 1, [ ])
  1192                 AC_MSG_CHECKING(for xinput2 multitouch)
  1193             	have_xinput2_multitouch=no
  1194             	AC_TRY_COMPILE([
  1195               		#include <X11/Xlib.h>
  1196              		#include <X11/Xproto.h>
  1197 			#include <X11/extensions/XInput2.h>
  1198             	],[
  1199 int event_type = XI_TouchBegin;
  1200 XITouchClassInfo *t;
  1201 Status 
  1202 XIAllowTouchEvents(Display *a,int b,unsigned int c,Window d,int f)
  1203 {
  1204     return (Status)0;
  1205 }
  1206             	],[
  1207             	have_xinput2_multitouch=yes
  1208             	AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH)
  1209             	])
  1210             	AC_MSG_RESULT($have_xinput2_multitouch)
  1211             fi
  1212             AC_ARG_ENABLE(video-x11-xrandr,
  1213 AC_HELP_STRING([--enable-video-x11-xrandr], [enable X11 Xrandr extension for fullscreen [[default=yes]]]),
  1214                             , enable_video_x11_xrandr=yes)
  1215             if test x$enable_video_x11_xrandr = xyes; then
  1216                 definitely_enable_video_x11_xrandr=no
  1217                 AC_CHECK_HEADER(X11/extensions/Xrandr.h,
  1218                                 have_xrandr_h_hdr=yes,
  1219                                 have_xrandr_h_hdr=no,
  1220                                 [#include <X11/Xlib.h>
  1221                                 ])
  1222                 if test x$have_xrandr_h_hdr = xyes; then
  1223                     if test x$enable_x11_shared = xyes && test x$xrandr_lib != x ; then
  1224                         echo "-- dynamic libXrandr -> $xrandr_lib"
  1225                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR, "$xrandr_lib", [ ])
  1226                         definitely_enable_video_x11_xrandr=yes
  1227                     else
  1228                         AC_CHECK_LIB(Xrandr, XRRQueryExtension, have_xrandr_lib=yes)
  1229                         if test x$have_xrandr_lib = xyes ; then
  1230                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXrandr"
  1231                             definitely_enable_video_x11_xrandr=yes
  1232                         fi
  1233                     fi
  1234                 fi
  1235             fi
  1236             if test x$definitely_enable_video_x11_xrandr = xyes; then
  1237                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR, 1, [ ])
  1238             fi
  1239             AC_ARG_ENABLE(video-x11-scrnsaver,
  1240 AC_HELP_STRING([--enable-video-x11-scrnsaver], [enable X11 screensaver extension [[default=yes]]]),
  1241                             , enable_video_x11_scrnsaver=yes)
  1242             if test x$enable_video_x11_scrnsaver = xyes; then
  1243                 AC_CHECK_HEADER(X11/extensions/scrnsaver.h,
  1244                                 have_scrnsaver_h_hdr=yes,
  1245                                 have_scrnsaver_h_hdr=no,
  1246                                 [#include <X11/Xlib.h>
  1247                                 ])
  1248                 if test x$have_scrnsaver_h_hdr = xyes; then
  1249                     if test x$enable_x11_shared = xyes && test x$xss_lib != x ; then
  1250                         echo "-- dynamic libXss -> $xss_lib"
  1251                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS, "$xss_lib", [ ])
  1252                         definitely_enable_video_x11_scrnsaver=yes
  1253                     else
  1254                         AC_CHECK_LIB(Xss, XScreenSaverSuspend, have_xss_lib=yes)
  1255                         if test x$have_xss_lib = xyes ; then
  1256                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXss"
  1257                             definitely_enable_video_x11_scrnsaver=yes
  1258                         fi
  1259                     fi
  1260                 fi
  1261             fi
  1262             if test x$definitely_enable_video_x11_scrnsaver = xyes; then
  1263                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XSCRNSAVER, 1, [ ])
  1264             fi
  1265             AC_ARG_ENABLE(video-x11-xshape,
  1266 AC_HELP_STRING([--enable-video-x11-xshape], [enable X11 XShape support [[default=yes]]]),
  1267                             , enable_video_x11_xshape=yes)
  1268             if test x$enable_video_x11_xshape = xyes; then
  1269                 AC_CHECK_HEADER(X11/extensions/shape.h,
  1270                                 have_shape_h_hdr=yes,
  1271                                 have_shape_h_hdr=no,
  1272                                 [#include <X11/Xlib.h>
  1273                                 ])
  1274                 if test x$have_shape_h_hdr = xyes; then
  1275                     AC_DEFINE(SDL_VIDEO_DRIVER_X11_XSHAPE, 1, [ ])
  1276                 fi
  1277             fi
  1278             AC_ARG_ENABLE(video-x11-vm,
  1279 AC_HELP_STRING([--enable-video-x11-vm], [use X11 VM extension for fullscreen [[default=yes]]]),
  1280                             , enable_video_x11_vm=yes)
  1281             if test x$enable_video_x11_vm = xyes; then
  1282                 definitely_enable_video_x11_vm=no
  1283                 AC_CHECK_HEADER(X11/extensions/xf86vmode.h,
  1284                                 have_vm_h_hdr=yes,
  1285                                 have_vm_h_hdr=no,
  1286                                 [#include <X11/Xlib.h>
  1287                                 ])
  1288                 if test x$have_vm_h_hdr = xyes; then
  1289                     if test x$enable_x11_shared = xyes && test x$xvidmode_lib != x ; then
  1290                         echo "-- dynamic libXxf86vm -> $xvidmode_lib"
  1291                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE, "$xvidmode_lib", [ ])
  1292                         definitely_enable_video_x11_vm=yes
  1293                     else
  1294                         AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryVersion, have_vm_lib=yes)
  1295                         if test x$have_vm_lib = xyes ; then
  1296                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXxf86vm"
  1297                             definitely_enable_video_x11_vm=yes
  1298                         fi
  1299                     fi
  1300                 fi
  1301             fi
  1302             if test x$definitely_enable_video_x11_vm = xyes; then
  1303                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XVIDMODE, 1, [ ])
  1304             fi
  1305         fi
  1306     fi
  1307 }
  1308 
  1309 dnl Set up the BWindow video driver if enabled
  1310 CheckBWINDOW()
  1311 {
  1312     if test x$enable_video = xyes; then
  1313         AC_DEFINE(SDL_VIDEO_DRIVER_BWINDOW, 1, [ ])
  1314         SOURCES="$SOURCES $srcdir/src/video/bwindow/*.cc"
  1315         have_video=yes
  1316     fi
  1317 }
  1318 
  1319 dnl Set up the Cocoa video driver for Mac OS X (but not Darwin)
  1320 CheckCOCOA()
  1321 {
  1322     AC_ARG_ENABLE(video-cocoa,
  1323 AC_HELP_STRING([--enable-video-cocoa], [use Cocoa video driver [[default=yes]]]),
  1324                   , enable_video_cocoa=yes)
  1325     if test x$enable_video = xyes -a x$enable_video_cocoa = xyes; then
  1326         save_CFLAGS="$CFLAGS"
  1327         dnl work around that we don't have Objective-C support in autoconf
  1328         CFLAGS="$CFLAGS -x objective-c"
  1329         AC_MSG_CHECKING(for Cocoa framework)
  1330         have_cocoa=no
  1331         AC_TRY_COMPILE([
  1332           #import <Cocoa/Cocoa.h>
  1333         ],[
  1334         ],[
  1335         have_cocoa=yes
  1336         ])
  1337         AC_MSG_RESULT($have_cocoa)
  1338         CFLAGS="$save_CFLAGS"
  1339         if test x$have_cocoa = xyes; then
  1340             AC_DEFINE(SDL_VIDEO_DRIVER_COCOA, 1, [ ])
  1341             SOURCES="$SOURCES $srcdir/src/video/cocoa/*.m"
  1342             have_video=yes
  1343         fi
  1344     fi
  1345 }
  1346 
  1347 dnl Find DirectFB
  1348 CheckDirectFB()
  1349 {
  1350     AC_ARG_ENABLE(video-directfb,
  1351 AC_HELP_STRING([--enable-video-directfb], [use DirectFB video driver [[default=no]]]),
  1352                   , enable_video_directfb=no)
  1353     if test x$enable_video = xyes -a x$enable_video_directfb = xyes; then
  1354         video_directfb=no
  1355 
  1356         DIRECTFB_REQUIRED_VERSION=1.0.0
  1357         AC_PATH_PROGS(DIRECTFBCONFIG, directfb-config, no, [$prefix/bin:$PATH])
  1358         if test x$DIRECTFBCONFIG = xno; then
  1359             AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
  1360             if test x$PKG_CONFIG != xno; then
  1361                 if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb; then
  1362                     DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags directfb`
  1363                     DIRECTFB_LIBS=`$PKG_CONFIG --libs directfb`
  1364                     DIRECTFB_PREFIX=`$PKG_CONFIG --variable=prefix directfb`
  1365                     video_directfb=yes
  1366                 fi
  1367             fi
  1368         else
  1369             set -- `echo $DIRECTFB_REQUIRED_VERSION | sed 's/\./ /g'`
  1370             NEED_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
  1371             set -- `directfb-config --version | sed 's/\./ /g'`
  1372             HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
  1373             if test $HAVE_VERSION -ge $NEED_VERSION; then
  1374                 DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags`
  1375                 DIRECTFB_LIBS=`$DIRECTFBCONFIG --libs`
  1376                 DIRECTFB_PREFIX=`$DIRECTFBCONFIG --prefix`
  1377                 video_directfb=yes
  1378             fi
  1379         fi
  1380         if test x$video_directfb = xyes; then
  1381             # SuSE 11.1 installs directfb-config without directfb-devel
  1382             save_CPPFLAGS="$CPPFLAGS"
  1383             CPPFLAGS="$CPPFLAGS $DIRECTFB_CFLAGS"
  1384             AC_CHECK_HEADER(directfb.h, have_directfb_hdr=yes, have_directfb_hdr=no)
  1385             CPPFLAGS="$save_CPPFLAGS"
  1386             video_directfb=$have_directfb_hdr
  1387         fi
  1388         AC_MSG_CHECKING(for DirectFB $DIRECTFB_REQUIRED_VERSION support)
  1389         AC_MSG_RESULT($video_directfb)
  1390 
  1391         if test x$video_directfb = xyes; then
  1392             AC_ARG_ENABLE(directfb-shared,
  1393 AC_HELP_STRING([--enable-directfb-shared], [dynamically load directfb support [[default=yes]]]),
  1394                               , enable_directfb_shared=yes)
  1395 
  1396             AC_DEFINE(SDL_VIDEO_DRIVER_DIRECTFB, 1, [ ])
  1397             AC_DEFINE(SDL_VIDEO_RENDER_DIRECTFB, 1, [ ])
  1398             SOURCES="$SOURCES $srcdir/src/video/directfb/*.c"
  1399             EXTRA_CFLAGS="$EXTRA_CFLAGS $DIRECTFB_CFLAGS"
  1400 
  1401             AC_MSG_CHECKING(for directfb dynamic loading support)
  1402             directfb_shared=no
  1403             directfb_lib=[`find_lib "libdirectfb.so.*" "$DIRECTFB_LIBS"`]
  1404             # | sed 's/.*\/\(.*\)/\1/; q'`]
  1405 AC_MSG_WARN("directfb $directfb_lib")
  1406             if test x$have_loadso != xyes && \
  1407                test x$enable_directfb_shared = xyes; then
  1408                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic directfb loading])
  1409             fi
  1410             if test x$have_loadso = xyes && \
  1411                test x$enable_directfb_shared = xyes && test x$directfb_lib != x; then
  1412                 directfb_shared=yes
  1413                 echo "-- $directfb_lib_spec -> $directfb_lib"
  1414                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC, "$directfb_lib", [ ])
  1415             else
  1416                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $DIRECTFB_LIBS"
  1417             fi
  1418             AC_MSG_RESULT($directfb_shared)
  1419             have_video=yes
  1420         fi
  1421     fi
  1422 }
  1423 
  1424 dnl Find FusionSound
  1425 CheckFusionSound()
  1426 {
  1427     AC_ARG_ENABLE(fusionsound,
  1428 AC_HELP_STRING([--enable-fusionsound], [use FusionSound audio driver [[default=no]]]),
  1429                   , enable_fusionsound=no)
  1430     if test x$enable_audio = xyes -a x$enable_fusionsound = xyes; then
  1431         fusionsound=no
  1432 
  1433         FUSIONSOUND_REQUIRED_VERSION=1.1.1
  1434 
  1435         AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
  1436         AC_MSG_CHECKING(for FusionSound $FUSIONSOUND_REQUIRED_VERSION support)
  1437         if test x$PKG_CONFIG != xno; then
  1438             if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $FUSIONSOUND_REQUIRED_VERSION fusionsound; then
  1439                 FUSIONSOUND_CFLAGS=`$PKG_CONFIG --cflags fusionsound`
  1440                 FUSIONSOUND_LIBS=`$PKG_CONFIG --libs fusionsound`
  1441                 fusionsound=yes
  1442             fi
  1443         fi
  1444         AC_MSG_RESULT($fusionsound)
  1445 
  1446         if test x$fusionsound = xyes; then
  1447             AC_DEFINE(SDL_AUDIO_DRIVER_FUSIONSOUND, 1, [ ])
  1448             SOURCES="$SOURCES $srcdir/src/audio/fusionsound/*.c"
  1449             EXTRA_CFLAGS="$EXTRA_CFLAGS $FUSIONSOUND_CFLAGS"
  1450             
  1451             AC_ARG_ENABLE(fusionsound-shared,
  1452 AC_HELP_STRING([--enable-fusionsound-shared], [dynamically load fusionsound audio support [[default=yes]]]),
  1453                           , enable_fusionsound_shared=yes)
  1454             fusionsound_shared=no
  1455             AC_MSG_CHECKING(for FusionSound dynamic loading support)
  1456             if test x$have_loadso != xyes && \
  1457                test x$enable_fusionsound_shared = xyes; then
  1458                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic fusionsound loading])
  1459             fi
  1460             if test x$have_loadso = xyes && \
  1461                test x$enable_fusionsound_shared = xyes; then
  1462                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC, "libfusionsound.so", [ ])
  1463                 fusionsound_shared=yes
  1464             else
  1465                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $FUSIONSOUND_LIBS"
  1466             fi
  1467             AC_MSG_RESULT($fusionsound_shared)
  1468             
  1469             have_audio=yes
  1470         fi
  1471     fi
  1472 }
  1473 
  1474 dnl rcg04172001 Set up the Null video driver.
  1475 CheckDummyVideo()
  1476 {
  1477     AC_ARG_ENABLE(video-dummy,
  1478 AC_HELP_STRING([--enable-video-dummy], [use dummy video driver [[default=yes]]]),
  1479                   , enable_video_dummy=yes)
  1480     if test x$enable_video_dummy = xyes; then
  1481         AC_DEFINE(SDL_VIDEO_DRIVER_DUMMY, 1, [ ])
  1482         SOURCES="$SOURCES $srcdir/src/video/dummy/*.c"
  1483         have_video=yes
  1484     fi
  1485 }
  1486 
  1487 dnl Check to see if OpenGL support is desired
  1488 AC_ARG_ENABLE(video-opengl,
  1489 AC_HELP_STRING([--enable-video-opengl], [include OpenGL support [[default=yes]]]),
  1490               , enable_video_opengl=yes)
  1491 
  1492 dnl Find OpenGL
  1493 CheckOpenGLX11()
  1494 {
  1495     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1496         AC_MSG_CHECKING(for OpenGL (GLX) support)
  1497         video_opengl=no
  1498         AC_TRY_COMPILE([
  1499          #include <GL/gl.h>
  1500          #include <GL/glx.h>
  1501         ],[
  1502         ],[
  1503         video_opengl=yes
  1504         ])
  1505         AC_MSG_RESULT($video_opengl)
  1506         if test x$video_opengl = xyes; then
  1507             AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1508             AC_DEFINE(SDL_VIDEO_OPENGL_GLX, 1, [ ])
  1509             AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  1510         fi
  1511     fi
  1512 }
  1513 
  1514 dnl Check to see if OpenGL ES support is desired
  1515 AC_ARG_ENABLE(video-opengles,
  1516 AC_HELP_STRING([--enable-video-opengles], [include OpenGL ES support [[default=yes]]]),
  1517               , enable_video_opengles=yes)
  1518 
  1519 dnl Find OpenGL ES
  1520 CheckOpenGLESX11()
  1521 {
  1522     if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then
  1523         AC_MSG_CHECKING(for OpenGL ES (EGL) support)
  1524         video_opengles=no
  1525         AC_TRY_COMPILE([
  1526          #include <EGL/egl.h>
  1527         ],[
  1528         ],[
  1529         video_opengles=yes
  1530         ])
  1531         AC_MSG_RESULT($video_opengles)
  1532         if test x$video_opengles = xyes; then
  1533             AC_MSG_CHECKING(for OpenGL ES v1 headers)
  1534             video_opengles_v1=no
  1535             AC_TRY_COMPILE([
  1536              #include <GLES/gl.h>
  1537              #include <GLES/glext.h>
  1538             ],[
  1539             ],[
  1540             video_opengles_v1=yes
  1541             ])
  1542             AC_MSG_RESULT($video_opengles_v1)
  1543             if test x$video_opengles_v1 = xyes; then
  1544                 AC_DEFINE(SDL_VIDEO_OPENGL_ES, 1, [ ])
  1545                 AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES, 1, [ ])
  1546             fi
  1547             AC_MSG_CHECKING(for OpenGL ES v2 headers)
  1548             video_opengles_v2=no
  1549             AC_TRY_COMPILE([
  1550              #include <GLES2/gl2.h>
  1551              #include <GLES2/gl2ext.h>
  1552             ],[
  1553             ],[
  1554             video_opengles_v2=yes
  1555             ])
  1556             AC_MSG_RESULT($video_opengles_v2)
  1557             if test x$video_opengles_v2 = xyes; then
  1558                 AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ])
  1559                 AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
  1560             fi
  1561         fi
  1562     fi
  1563 }
  1564 
  1565 dnl Check for Windows OpenGL
  1566 CheckWINDOWSGL()
  1567 {
  1568     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1569         AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1570         AC_DEFINE(SDL_VIDEO_OPENGL_WGL, 1, [ ])
  1571         AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  1572     fi
  1573 }
  1574 
  1575 dnl Check for BeOS OpenGL
  1576 CheckBeGL()
  1577 {
  1578     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1579         AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1580         AC_DEFINE(SDL_VIDEO_OPENGL_BGL, 1, [ ])
  1581         AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  1582         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL"
  1583     fi
  1584 }
  1585 
  1586 dnl Check for MacOS OpenGL
  1587 CheckMacGL()
  1588 {
  1589     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1590         AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
  1591         AC_DEFINE(SDL_VIDEO_OPENGL_CGL, 1, [ ])
  1592         AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
  1593         case "$host" in
  1594             *-*-darwin*)
  1595                 if test x$enable_video_cocoa = xyes; then
  1596                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,OpenGL"
  1597                 fi
  1598         esac
  1599     fi
  1600 }
  1601 
  1602 dnl See if we can use the new unified event interface in Linux 2.4
  1603 CheckInputEvents()
  1604 {
  1605     dnl Check for Linux 2.4 unified input event interface support
  1606     AC_ARG_ENABLE(input-events,
  1607 AC_HELP_STRING([--enable-input-events], [use Linux 2.4 unified input interface [[default=yes]]]),
  1608                   , enable_input_events=yes)
  1609     if test x$enable_input_events = xyes; then
  1610         AC_MSG_CHECKING(for Linux 2.4 unified input interface)
  1611         use_input_events=no
  1612         AC_TRY_COMPILE([
  1613           #include <linux/input.h>
  1614         ],[
  1615           #ifndef EVIOCGNAME
  1616           #error EVIOCGNAME() ioctl not available
  1617           #endif
  1618         ],[
  1619         use_input_events=yes
  1620         ])
  1621         AC_MSG_RESULT($use_input_events)
  1622         if test x$use_input_events = xyes; then
  1623             AC_DEFINE(SDL_INPUT_LINUXEV, 1, [ ])
  1624         fi
  1625     fi
  1626 }
  1627 
  1628 dnl See if we can use the Touchscreen input library
  1629 CheckTslib()
  1630 {
  1631     AC_ARG_ENABLE(input-tslib,
  1632 AC_HELP_STRING([--enable-input-tslib], [use the Touchscreen library for input [[default=yes]]]),
  1633                   , enable_input_tslib=yes)
  1634     if test x$enable_input_tslib = xyes; then
  1635         AC_MSG_CHECKING(for Touchscreen library support)
  1636         enable_input_tslib=no
  1637         AC_TRY_COMPILE([
  1638           #include "tslib.h"
  1639         ],[
  1640         ],[
  1641         enable_input_tslib=yes
  1642         ])
  1643         AC_MSG_RESULT($enable_input_tslib)
  1644         if test x$enable_input_tslib = xyes; then
  1645             AC_DEFINE(SDL_INPUT_TSLIB, 1, [ ])
  1646             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lts"
  1647         fi
  1648     fi
  1649 }
  1650 
  1651 dnl See what type of thread model to use on Linux and Solaris
  1652 CheckPTHREAD()
  1653 {
  1654     dnl Check for pthread support
  1655     AC_ARG_ENABLE(pthreads,
  1656 AC_HELP_STRING([--enable-pthreads], [use POSIX threads for multi-threading [[default=yes]]]),
  1657                   , enable_pthreads=yes)
  1658     dnl This is used on Linux for glibc binary compatibility (Doh!)
  1659     AC_ARG_ENABLE(pthread-sem,
  1660 AC_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [[default=yes]]]),
  1661                   , enable_pthread_sem=yes)
  1662     case "$host" in
  1663         *-*-linux*|*-*-uclinux*)
  1664             pthread_cflags="-D_REENTRANT"
  1665             pthread_lib="-lpthread"
  1666             ;;
  1667         *-*-bsdi*)
  1668             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  1669             pthread_lib=""
  1670             ;;
  1671         *-*-darwin*)
  1672             pthread_cflags="-D_THREAD_SAFE"
  1673 # causes Carbon.p complaints?
  1674 #            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  1675             ;;
  1676         *-*-freebsd*|*-*-dragonfly*)
  1677             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  1678             pthread_lib="-pthread"
  1679             ;;
  1680         *-*-netbsd*)
  1681             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  1682             pthread_lib="-lpthread"
  1683             ;;
  1684         *-*-openbsd*)
  1685             pthread_cflags="-D_REENTRANT"
  1686             pthread_lib="-pthread"
  1687             ;;
  1688         *-*-solaris*)
  1689             pthread_cflags="-D_REENTRANT"
  1690             pthread_lib="-lpthread -lposix4"
  1691             ;;
  1692         *-*-sysv5*)
  1693             pthread_cflags="-D_REENTRANT -Kthread"
  1694             pthread_lib=""
  1695             ;;
  1696         *-*-aix*)
  1697             pthread_cflags="-D_REENTRANT -mthreads"
  1698             pthread_lib="-lpthread"
  1699             ;;
  1700         *-*-hpux11*)
  1701             pthread_cflags="-D_REENTRANT"
  1702             pthread_lib="-L/usr/lib -lpthread"
  1703             ;;
  1704         *)
  1705             pthread_cflags="-D_REENTRANT"
  1706             pthread_lib="-lpthread"
  1707             ;;
  1708     esac
  1709     if test x$enable_threads = xyes -a x$enable_pthreads = xyes; then
  1710         # Save the original compiler flags and libraries
  1711         ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
  1712         # Add the pthread compiler flags and libraries
  1713         CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
  1714         # Check to see if we have pthread support on this system
  1715         AC_MSG_CHECKING(for pthreads)
  1716         use_pthreads=no
  1717         AC_TRY_LINK([
  1718          #include <pthread.h>
  1719         ],[
  1720          pthread_attr_t type;
  1721          pthread_attr_init(&type);
  1722         ],[
  1723         use_pthreads=yes
  1724         ])
  1725         AC_MSG_RESULT($use_pthreads)
  1726         # Restore the compiler flags and libraries
  1727         CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
  1728 
  1729         # Do futher testing if we have pthread support...
  1730         if test x$use_pthreads = xyes; then
  1731             AC_DEFINE(SDL_THREAD_PTHREAD, 1, [ ])
  1732             EXTRA_CFLAGS="$EXTRA_CFLAGS $pthread_cflags"
  1733             EXTRA_LDFLAGS="$EXTRA_LDFLAGS $pthread_lib"
  1734             SDL_CFLAGS="$SDL_CFLAGS $pthread_cflags"
  1735             SDL_LIBS="$SDL_LIBS $pthread_lib"
  1736 
  1737             # Save the original compiler flags and libraries
  1738             ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
  1739             # Add the pthread compiler flags and libraries
  1740             CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
  1741 
  1742             # Check to see if recursive mutexes are available
  1743             AC_MSG_CHECKING(for recursive mutexes)
  1744             has_recursive_mutexes=no
  1745             if test x$has_recursive_mutexes = xno; then
  1746                 AC_TRY_COMPILE([
  1747                   #include <pthread.h>
  1748                 ],[
  1749                   pthread_mutexattr_t attr;
  1750                   pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
  1751                 ],[
  1752                 has_recursive_mutexes=yes
  1753                 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX, 1, [ ])
  1754                 ])
  1755             fi
  1756             if test x$has_recursive_mutexes = xno; then
  1757                 AC_TRY_COMPILE([
  1758                   #include <pthread.h>
  1759                 ],[
  1760                   pthread_mutexattr_t attr;
  1761                   pthread_mutexattr_setkind_np(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
  1762                 ],[
  1763                 has_recursive_mutexes=yes
  1764                 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP, 1, [ ])
  1765                 ])
  1766             fi
  1767             AC_MSG_RESULT($has_recursive_mutexes)
  1768 
  1769             # Check to see if pthread semaphore support is missing
  1770             if test x$enable_pthread_sem = xyes; then
  1771                 AC_MSG_CHECKING(for pthread semaphores)
  1772                 have_pthread_sem=no
  1773                 AC_TRY_COMPILE([
  1774                   #include <pthread.h>
  1775                   #include <semaphore.h>
  1776                 ],[
  1777                 ],[
  1778                 have_pthread_sem=yes
  1779                 ])
  1780                 AC_MSG_RESULT($have_pthread_sem)
  1781             fi
  1782             if test x$have_pthread_sem = xyes; then
  1783                 AC_MSG_CHECKING(for sem_timedwait)
  1784                 have_sem_timedwait=no
  1785                 AC_TRY_LINK([
  1786                   #include <pthread.h>
  1787                   #include <semaphore.h>
  1788                 ],[
  1789                   sem_timedwait(NULL, NULL);
  1790                 ],[
  1791                 have_sem_timedwait=yes
  1792                 AC_DEFINE(HAVE_SEM_TIMEDWAIT)
  1793                 ])
  1794                 AC_MSG_RESULT($have_sem_timedwait)
  1795             fi
  1796 
  1797             AC_MSG_CHECKING(for pthread_spin_trylock)
  1798             AC_TRY_LINK_FUNC(pthread_spin_trylock, [
  1799               has_pthread_spin_trylock=yes
  1800               AC_DEFINE(HAVE_PTHREAD_SPINLOCK, 1, [ ])
  1801             ],[
  1802               has_pthread_spin_trylock=no
  1803             ])
  1804             AC_MSG_RESULT($has_pthread_spin_trylock)
  1805 
  1806             AC_CHECK_HEADER(pthread_np.h, have_pthread_np_h=yes)
  1807             if test x$have_pthread_np_h = xyes; then
  1808                 AC_DEFINE(HAVE_PTHREAD_NP_H, 1, [ ])
  1809             fi
  1810 
  1811             # Check to see if pthread naming is available
  1812             AC_MSG_CHECKING(for pthread_setname_np)
  1813             AC_TRY_LINK_FUNC(pthread_setname_np, [
  1814               has_pthread_setname_np=yes
  1815               AC_DEFINE(HAVE_PTHREAD_SETNAME_NP, 1, [ ])
  1816             ],[
  1817               has_pthread_setname_np=no
  1818             ])
  1819             AC_MSG_RESULT($has_pthread_setname_np)
  1820 
  1821             AC_MSG_CHECKING(for pthread_set_name_np)
  1822             AC_TRY_LINK_FUNC(pthread_set_name_np, [
  1823               has_pthread_set_name_np=yes
  1824               AC_DEFINE(HAVE_PTHREAD_SET_NAME_NP, 1, [ ])
  1825             ],[
  1826               has_pthread_set_name_np=no
  1827             ])
  1828             AC_MSG_RESULT($has_pthread_set_name_np)
  1829 
  1830             # Restore the compiler flags and libraries
  1831             CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
  1832 
  1833             # Basic thread creation functions
  1834             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_systhread.c"
  1835 
  1836             # Semaphores
  1837             # We can fake these with mutexes and condition variables if necessary
  1838             if test x$have_pthread_sem = xyes; then
  1839                 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syssem.c"
  1840             else
  1841                 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syssem.c"
  1842             fi
  1843 
  1844             # Mutexes
  1845             # We can fake these with semaphores if necessary
  1846             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_sysmutex.c"
  1847 
  1848             # Condition variables
  1849             # We can fake these with semaphores and mutexes if necessary
  1850             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syscond.c"
  1851 
  1852             have_threads=yes
  1853         fi
  1854     fi
  1855 }
  1856 
  1857 dnl Determine whether the compiler can produce Windows executables
  1858 CheckWINDOWS()
  1859 {
  1860     AC_MSG_CHECKING(Windows compiler)
  1861     have_win32_gcc=no
  1862     AC_TRY_COMPILE([
  1863      #include <windows.h>
  1864     ],[
  1865     ],[
  1866     have_win32_gcc=yes
  1867     ])
  1868     AC_MSG_RESULT($have_win32_gcc)
  1869     if test x$have_win32_gcc != xyes; then
  1870        AC_MSG_ERROR([
  1871 *** Your compiler ($CC) does not produce Windows executables!
  1872        ])
  1873     fi
  1874 
  1875     AC_MSG_CHECKING(Windows CE)
  1876     have_wince=no
  1877     AC_TRY_COMPILE([
  1878 #if !defined(_WIN32_WCE) && !defined(__MINGW32CE__)
  1879 #error This is not Windows CE
  1880 #endif
  1881     ],[
  1882     ],[
  1883     have_wince=yes
  1884     ])
  1885     AC_MSG_RESULT($have_wince)
  1886 
  1887     # This fixes Windows stack alignment with newer GCC
  1888     CheckStackBoundary
  1889 }
  1890 
  1891 dnl Find the DirectX includes and libraries
  1892 CheckDIRECTX()
  1893 {
  1894     AC_ARG_ENABLE(directx,
  1895 AC_HELP_STRING([--enable-directx], [use DirectX for Windows audio/video [[default=yes]]]),
  1896                   , enable_directx=yes)
  1897     if test x$enable_directx = xyes; then
  1898         AC_CHECK_HEADER(d3d9.h, have_d3d=yes)
  1899         AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
  1900         AC_CHECK_HEADER(dsound.h, have_dsound=yes)
  1901         AC_CHECK_HEADER(dinput.h, have_dinput=yes)
  1902         AC_CHECK_HEADER(xaudio2.h, have_xaudio2=yes)
  1903     fi
  1904 }
  1905 
  1906 dnl Check for the dlfcn.h interface for dynamically loading objects
  1907 CheckDLOPEN()
  1908 {
  1909     AC_ARG_ENABLE(sdl-dlopen,
  1910 AC_HELP_STRING([--enable-sdl-dlopen], [use dlopen for shared object loading [[default=yes]]]),
  1911                   , enable_sdl_dlopen=yes)
  1912     if test x$enable_sdl_dlopen = xyes; then
  1913         AC_MSG_CHECKING(for dlopen)
  1914         have_dlopen=no
  1915         AC_TRY_COMPILE([
  1916          #include <dlfcn.h>
  1917         ],[
  1918          #if defined(MAC_OS_X_VERSION_MIN_REQUIRED) && MAC_OS_X_VERSION_MIN_REQUIRED <= 1020
  1919          #error Use dlcompat for Mac OS X 10.2 compatibility
  1920          #endif
  1921         ],[
  1922         have_dlopen=yes
  1923         ])
  1924         AC_MSG_RESULT($have_dlopen)
  1925 
  1926         if test x$have_dlopen = xyes; then
  1927             AC_CHECK_LIB(c, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS",
  1928                AC_CHECK_LIB(dl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldl",
  1929                   AC_CHECK_LIB(ltdl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lltdl")))
  1930             AC_DEFINE(SDL_LOADSO_DLOPEN, 1, [ ])
  1931             SOURCES="$SOURCES $srcdir/src/loadso/dlopen/*.c"
  1932             have_loadso=yes
  1933         fi
  1934     fi
  1935 }
  1936 
  1937 dnl Check for the usbhid(3) library on *BSD
  1938 CheckUSBHID()
  1939 {
  1940     if test x$enable_joystick = xyes; then
  1941         AC_CHECK_LIB(usbhid, hid_init, have_libusbhid=yes)
  1942         if test x$have_libusbhid = xyes; then
  1943             AC_CHECK_HEADER(usbhid.h, [USB_CFLAGS="-DHAVE_USBHID_H"])
  1944             AC_CHECK_HEADER(libusbhid.h, [USB_CFLAGS="-DHAVE_LIBUSBHID_H"])
  1945             USB_LIBS="$USB_LIBS -lusbhid"
  1946         else
  1947             AC_CHECK_HEADER(usb.h, [USB_CFLAGS="-DHAVE_USB_H"])
  1948             AC_CHECK_HEADER(libusb.h, [USB_CFLAGS="-DHAVE_LIBUSB_H"])
  1949             AC_CHECK_LIB(usb, hid_init, [USB_LIBS="$USB_LIBS -lusb"])
  1950         fi
  1951             
  1952         save_CFLAGS="$CFLAGS"
  1953         CFLAGS="$CFLAGS $USB_CFLAGS"
  1954 
  1955         AC_MSG_CHECKING(for usbhid)
  1956         have_usbhid=no
  1957         AC_TRY_COMPILE([
  1958           #include <sys/types.h>
  1959           #if defined(HAVE_USB_H)
  1960           #include <usb.h>
  1961           #endif
  1962           #ifdef __DragonFly__
  1963           # include <bus/usb/usb.h>
  1964           # include <bus/usb/usbhid.h>
  1965           #else
  1966           # include <dev/usb/usb.h>
  1967           # include <dev/usb/usbhid.h>
  1968           #endif
  1969           #if defined(HAVE_USBHID_H)
  1970           #include <usbhid.h>
  1971           #elif defined(HAVE_LIBUSB_H)
  1972           #include <libusb.h>
  1973           #elif defined(HAVE_LIBUSBHID_H)
  1974           #include <libusbhid.h>
  1975           #endif
  1976         ],[
  1977           struct report_desc *repdesc;
  1978           struct usb_ctl_report *repbuf;
  1979           hid_kind_t hidkind;
  1980         ],[
  1981         have_usbhid=yes
  1982         ])
  1983         AC_MSG_RESULT($have_usbhid)
  1984 
  1985         if test x$have_usbhid = xyes; then
  1986             AC_MSG_CHECKING(for ucr_data member of usb_ctl_report)
  1987             have_usbhid_ucr_data=no
  1988             AC_TRY_COMPILE([
  1989               #include <sys/types.h>
  1990               #if defined(HAVE_USB_H)
  1991               #include <usb.h>
  1992               #endif
  1993               #ifdef __DragonFly__
  1994               # include <bus/usb/usb.h>
  1995               # include <bus/usb/usbhid.h>
  1996               #else
  1997               # include <dev/usb/usb.h>
  1998               # include <dev/usb/usbhid.h>
  1999               #endif
  2000               #if defined(HAVE_USBHID_H)
  2001               #include <usbhid.h>
  2002               #elif defined(HAVE_LIBUSB_H)
  2003               #include <libusb.h>
  2004               #elif defined(HAVE_LIBUSBHID_H)
  2005               #include <libusbhid.h>
  2006               #endif
  2007             ],[
  2008               struct usb_ctl_report buf;
  2009               if (buf.ucr_data) { }
  2010             ],[
  2011             have_usbhid_ucr_data=yes
  2012             ])
  2013             if test x$have_usbhid_ucr_data = xyes; then
  2014                 USB_CFLAGS="$USB_CFLAGS -DUSBHID_UCR_DATA"
  2015             fi
  2016             AC_MSG_RESULT($have_usbhid_ucr_data)
  2017             
  2018             AC_MSG_CHECKING(for new usbhid API)
  2019             have_usbhid_new=no
  2020             AC_TRY_COMPILE([
  2021               #include <sys/types.h>
  2022               #if defined(HAVE_USB_H)
  2023               #include <usb.h>
  2024               #endif
  2025               #ifdef __DragonFly__
  2026               #include <bus/usb/usb.h>
  2027               #include <bus/usb/usbhid.h>
  2028               #else
  2029               #include <dev/usb/usb.h>
  2030               #include <dev/usb/usbhid.h>
  2031               #endif
  2032               #if defined(HAVE_USBHID_H)
  2033               #include <usbhid.h>
  2034               #elif defined(HAVE_LIBUSB_H)
  2035               #include <libusb.h>
  2036               #elif defined(HAVE_LIBUSBHID_H)
  2037               #include <libusbhid.h>
  2038               #endif
  2039             ],[
  2040               report_desc_t d;
  2041               hid_start_parse(d, 1, 1);
  2042             ],[
  2043             have_usbhid_new=yes
  2044             ])
  2045             if test x$have_usbhid_new = xyes; then
  2046                 USB_CFLAGS="$USB_CFLAGS -DUSBHID_NEW"
  2047             fi
  2048             AC_MSG_RESULT($have_usbhid_new)
  2049 
  2050             AC_MSG_CHECKING(for struct joystick in machine/joystick.h)
  2051             have_machine_joystick=no
  2052             AC_TRY_COMPILE([
  2053               #include <machine/joystick.h>
  2054             ],[
  2055               struct joystick t;
  2056             ],[
  2057             have_machine_joystick=yes
  2058             ])
  2059             if test x$have_machine_joystick = xyes; then
  2060                 AC_DEFINE(SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H, 1, [ ])
  2061             fi
  2062             AC_MSG_RESULT($have_machine_joystick)
  2063 
  2064             AC_DEFINE(SDL_JOYSTICK_USBHID, 1, [ ])
  2065             SOURCES="$SOURCES $srcdir/src/joystick/bsd/*.c"
  2066             EXTRA_CFLAGS="$EXTRA_CFLAGS $USB_CFLAGS"
  2067             EXTRA_LDFLAGS="$EXTRA_LDFLAGS $USB_LIBS"
  2068             have_joystick=yes
  2069         fi
  2070         CFLAGS="$save_CFLAGS"
  2071     fi
  2072 }
  2073 
  2074 dnl Check for clock_gettime()
  2075 CheckClockGettime()
  2076 {
  2077     AC_ARG_ENABLE(clock_gettime,
  2078 AC_HELP_STRING([--enable-clock_gettime], [use clock_gettime() instead of gettimeofday() on UNIX [[default=no]]]),
  2079                   , enable_clock_gettime=no)
  2080     if test x$enable_clock_gettime = xyes; then
  2081         AC_CHECK_LIB(rt, clock_gettime, have_clock_gettime=yes)
  2082         if test x$have_clock_gettime = xyes; then
  2083             AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [ ])
  2084             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lrt"
  2085         else
  2086             AC_CHECK_LIB(c, clock_gettime, have_clock_gettime=yes)
  2087             if test x$have_clock_gettime = xyes; then
  2088                AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [ ])
  2089                EXTRA_LDFLAGS="$EXTRA_LDFLAGS"
  2090             fi
  2091         fi
  2092     fi
  2093 }
  2094 
  2095 dnl Check for a valid linux/version.h
  2096 CheckLinuxVersion()
  2097 {
  2098     AC_CHECK_HEADER(linux/version.h, have_linux_version_h=yes)
  2099     if test x$have_linux_version_h = xyes; then
  2100         EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_LINUX_VERSION_H"
  2101     fi
  2102 }
  2103 
  2104 dnl Check if we want to use RPATH
  2105 CheckRPATH()
  2106 {
  2107     AC_ARG_ENABLE(rpath,
  2108 AC_HELP_STRING([--enable-rpath], [use an rpath when linking SDL [[default=yes]]]),
  2109                   , enable_rpath=yes)
  2110 }
  2111 
  2112 dnl Set up the configuration based on the host platform!
  2113 case "$host" in
  2114     *-*-linux*|*-*-uclinux*|*-*-gnu*|*-*-k*bsd*-gnu|*-*-bsdi*|*-*-freebsd*|*-*-dragonfly*|*-*-netbsd*|*-*-openbsd*|*-*-sysv5*|*-*-solaris*|*-*-hpux*|*-*-aix*|*-*-minix*)
  2115         case "$host" in
  2116             *-*-linux*)         ARCH=linux ;;
  2117             *-*-uclinux*)       ARCH=linux ;;
  2118             *-*-kfreebsd*-gnu)  ARCH=kfreebsd-gnu ;;
  2119             *-*-knetbsd*-gnu)   ARCH=knetbsd-gnu ;;
  2120             *-*-kopenbsd*-gnu)  ARCH=kopenbsd-gnu ;;
  2121             *-*-gnu*)           ARCH=gnu ;; # must be last of the gnu variants
  2122             *-*-bsdi*)          ARCH=bsdi ;;
  2123             *-*-freebsd*)       ARCH=freebsd ;;
  2124             *-*-dragonfly*)     ARCH=freebsd ;;
  2125             *-*-netbsd*)        ARCH=netbsd ;;
  2126             *-*-openbsd*)       ARCH=openbsd ;;
  2127             *-*-sysv5*)         ARCH=sysv5 ;;
  2128             *-*-solaris*)       ARCH=solaris ;;
  2129             *-*-hpux*)          ARCH=hpux ;;
  2130             *-*-aix*)           ARCH=aix ;;
  2131             *-*-minix*)         ARCH=minix ;;
  2132         esac
  2133         CheckVisibilityHidden
  2134         CheckDummyVideo
  2135         CheckDiskAudio
  2136         CheckDummyAudio
  2137         CheckDLOPEN
  2138         CheckOSS
  2139         CheckALSA
  2140         CheckPulseAudio
  2141         CheckARTSC
  2142         CheckESD
  2143         CheckNAS
  2144         CheckX11
  2145         CheckDirectFB
  2146         CheckFusionSound
  2147         CheckOpenGLX11
  2148         CheckOpenGLESX11
  2149         CheckInputEvents
  2150         CheckTslib
  2151         CheckUSBHID
  2152         CheckPTHREAD
  2153         CheckClockGettime
  2154         CheckLinuxVersion
  2155         CheckRPATH
  2156         # Set up files for the audio library
  2157         if test x$enable_audio = xyes; then
  2158           case $ARCH in
  2159             sysv5|solaris|hpux)
  2160                 AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO, 1, [ ])
  2161                 SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
  2162                 have_audio=yes
  2163             ;;
  2164             netbsd|openbsd)
  2165                 AC_DEFINE(SDL_AUDIO_DRIVER_BSD, 1, [ ])
  2166                 SOURCES="$SOURCES $srcdir/src/audio/bsd/*.c"
  2167                 have_audio=yes
  2168             ;;
  2169             aix)
  2170                 AC_DEFINE(SDL_AUDIO_DRIVER_PAUDIO, 1, [ ])
  2171                 SOURCES="$SOURCES $srcdir/src/audio/paudio/*.c"
  2172                 have_audio=yes
  2173             ;;
  2174           esac
  2175         fi
  2176         # Set up files for the joystick library
  2177         if test x$enable_joystick = xyes; then
  2178           case $ARCH in
  2179             linux)
  2180                 AC_DEFINE(SDL_JOYSTICK_LINUX, 1, [ ])
  2181                 SOURCES="$SOURCES $srcdir/src/joystick/linux/*.c"
  2182                 have_joystick=yes
  2183             ;;
  2184           esac
  2185         fi
  2186         # Set up files for the haptic library
  2187         if test x$enable_haptic = xyes; then
  2188            if test x$use_input_events = xyes; then
  2189              case $ARCH in
  2190                linux)
  2191                    AC_DEFINE(SDL_HAPTIC_LINUX, 1, [ ])
  2192                    SOURCES="$SOURCES $srcdir/src/haptic/linux/*.c"
  2193                    have_haptic=yes
  2194                ;;
  2195              esac
  2196            fi
  2197         fi
  2198         # Set up files for the power library
  2199         if test x$enable_power = xyes; then
  2200              case $ARCH in
  2201                linux)
  2202                    AC_DEFINE(SDL_POWER_LINUX, 1, [ ])
  2203                    SOURCES="$SOURCES $srcdir/src/power/linux/*.c"
  2204                    have_power=yes
  2205                ;;
  2206              esac
  2207         fi
  2208         # Set up files for the timer library
  2209         if test x$enable_timers = xyes; then
  2210             AC_DEFINE(SDL_TIMER_UNIX, 1, [ ])
  2211             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  2212             have_timers=yes
  2213         fi
  2214         ;;
  2215     *-wince* | *-mingw32ce)
  2216         ARCH=win32
  2217         CheckDummyVideo
  2218         CheckDiskAudio
  2219         CheckDummyAudio
  2220         CheckWINDOWS
  2221         if test x$enable_video = xyes; then
  2222             AC_DEFINE(SDL_VIDEO_DRIVER_WINDOWS, 1, [ ])
  2223             SOURCES="$SOURCES $srcdir/src/video/windows/*.c"
  2224             have_video=yes
  2225             AC_ARG_ENABLE(render-d3d,
  2226 AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[default=yes]]]),
  2227                                 , enable_render_d3d=yes)
  2228             enable_render_d3d=no
  2229             if test x$enable_render_d3d = xyes -a x$have_d3d = xyes; then
  2230                 AC_DEFINE(SDL_VIDEO_RENDER_D3D, 1, [ ])
  2231             fi
  2232         fi
  2233         # Set up files for the audio library
  2234         if test x$enable_audio = xyes; then
  2235             AC_DEFINE(SDL_AUDIO_DRIVER_WINMM, 1, [ ])
  2236             SOURCES="$SOURCES $srcdir/src/audio/winmm/*.c"
  2237             if test x$have_dsound = xyes; then
  2238                 AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND, 1, [ ])
  2239                 SOURCES="$SOURCES $srcdir/src/audio/directsound/*.c"
  2240             fi
  2241             if test x$have_xaudio2 = xyes; then
  2242                 AC_DEFINE(SDL_AUDIO_DRIVER_XAUDIO2, 1, [ ])
  2243                 SOURCES="$SOURCES $srcdir/src/audio/xaudio2/*.c"
  2244             fi
  2245             have_audio=yes
  2246         fi
  2247         # Set up dummy files for the joystick for now
  2248         if test x$enable_joystick = xyes; then
  2249             AC_DEFINE(SDL_JOYSTICK_DUMMY, 1, [ ])
  2250             SOURCES="$SOURCES $srcdir/src/joystick/dummy/*.c"
  2251             have_joystick=yes
  2252         fi
  2253         # Set up files for the thread library
  2254         if test x$enable_threads = xyes; then
  2255             AC_DEFINE(SDL_THREAD_WINDOWS, 1, [ ])
  2256             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_sysmutex.c"
  2257             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_syssem.c"
  2258             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_systhread.c"
  2259             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
  2260             have_threads=yes
  2261         fi
  2262         # Set up files for the timer library
  2263         if test x$enable_timers = xyes; then
  2264             AC_DEFINE(SDL_TIMER_WINCE, 1, [ ])
  2265             SOURCES="$SOURCES $srcdir/src/timer/wince/*.c"
  2266             have_timers=yes
  2267         fi
  2268         # Set up files for the shared object loading library
  2269         if test x$enable_loadso = xyes; then
  2270             AC_DEFINE(SDL_LOADSO_WINDOWS, 1, [ ])
  2271             SOURCES="$SOURCES $srcdir/src/loadso/windows/*.c"
  2272             have_loadso=yes
  2273         fi
  2274         # Set up the system libraries we need
  2275         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lcoredll -lcommctrl -lmmtimer"
  2276 
  2277 	# mingw32ce library
  2278 	case "$host" in
  2279     	    *-mingw32ce)
  2280     		EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lmingwex"
  2281     		;;
  2282     	    *)
  2283         	;;
  2284 	esac
  2285 
  2286         # The Windows platform requires special setup
  2287         SDLMAIN_SOURCES="$srcdir/src/main/windows/*.c"
  2288         EXTRA_CFLAGS="$EXTRA_CFLAGS -Dmain=SDL_main -D_WIN32_WCE=0x420"
  2289         EXTRA_LDFLAGS="-lSDL2main $EXTRA_LDFLAGS"
  2290         ;;
  2291     *-*-cygwin* | *-*-mingw32*)
  2292         ARCH=win32
  2293         if test "$build" != "$host"; then # cross-compiling
  2294             # Default cross-compile location
  2295             ac_default_prefix=/usr/local/cross-tools/$host
  2296         else
  2297             # Look for the location of the tools and install there
  2298             if test "$BUILD_PREFIX" != ""; then
  2299                 ac_default_prefix=$BUILD_PREFIX
  2300             fi
  2301         fi
  2302         CheckDummyVideo
  2303         CheckDiskAudio
  2304         CheckDummyAudio
  2305         CheckWINDOWS
  2306         CheckWINDOWSGL
  2307         CheckDIRECTX
  2308 
  2309         # Set up the core platform files
  2310         SOURCES="$SOURCES $srcdir/src/core/windows/*.c"
  2311 
  2312         # Set up files for the video library
  2313         if test x$enable_video = xyes; then
  2314             AC_DEFINE(SDL_VIDEO_DRIVER_WINDOWS, 1, [ ])
  2315             SOURCES="$SOURCES $srcdir/src/video/windows/*.c"
  2316             have_video=yes
  2317             AC_ARG_ENABLE(render-d3d,
  2318 AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[default=yes]]]),
  2319                                 , enable_render_d3d=yes)
  2320             if test x$enable_render_d3d = xyes -a x$have_d3d = xyes; then
  2321                 AC_DEFINE(SDL_VIDEO_RENDER_D3D, 1, [ ])
  2322             fi
  2323         fi
  2324         # Set up files for the audio library
  2325         if test x$enable_audio = xyes; then
  2326             AC_DEFINE(SDL_AUDIO_DRIVER_WINMM, 1, [ ])
  2327             SOURCES="$SOURCES $srcdir/src/audio/winmm/*.c"
  2328             if test x$have_dsound = xyes; then
  2329                 AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND, 1, [ ])
  2330                 SOURCES="$SOURCES $srcdir/src/audio/directsound/*.c"
  2331             fi
  2332             if test x$have_xaudio2 = xyes; then
  2333                 AC_DEFINE(SDL_AUDIO_DRIVER_XAUDIO2, 1, [ ])
  2334                 SOURCES="$SOURCES $srcdir/src/audio/xaudio2/*.c"
  2335             fi
  2336             have_audio=yes
  2337         fi
  2338         # Set up files for the joystick library
  2339         if test x$enable_joystick = xyes; then
  2340             if test x$have_dinput = xyes; then
  2341                 AC_DEFINE(SDL_JOYSTICK_DINPUT, 1, [ ])
  2342                 SOURCES="$SOURCES $srcdir/src/joystick/windows/SDL_dxjoystick.c"
  2343                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldinput8 -ldxguid -ldxerr8"
  2344             else
  2345                 AC_DEFINE(SDL_JOYSTICK_WINMM, 1, [ ])
  2346                 SOURCES="$SOURCES $srcdir/src/joystick/windows/SDL_mmjoystick.c"
  2347             fi
  2348             have_joystick=yes
  2349         fi
  2350         if test x$enable_haptic = xyes; then
  2351             if test x$have_dinput = xyes; then
  2352                 AC_DEFINE(SDL_HAPTIC_DINPUT, 1, [ ])
  2353                 SOURCES="$SOURCES $srcdir/src/haptic/windows/SDL_syshaptic.c"
  2354                 have_haptic=yes
  2355             fi
  2356         fi
  2357         if test x$enable_power = xyes; then
  2358             AC_DEFINE(SDL_POWER_WINDOWS, 1, [ ])
  2359             SOURCES="$SOURCES $srcdir/src/power/windows/SDL_syspower.c"
  2360             have_power=yes
  2361         fi
  2362         # Set up files for the thread library
  2363         if test x$enable_threads = xyes; then
  2364             AC_DEFINE(SDL_THREAD_WINDOWS, 1, [ ])
  2365             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_sysmutex.c"
  2366             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_syssem.c"
  2367             SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_systhread.c"
  2368             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
  2369             have_threads=yes
  2370         fi
  2371         # Set up files for the timer library
  2372         if test x$enable_timers = xyes; then
  2373             AC_DEFINE(SDL_TIMER_WINDOWS, 1, [ ])
  2374             SOURCES="$SOURCES $srcdir/src/timer/windows/*.c"
  2375             have_timers=yes
  2376         fi
  2377         # Set up files for the shared object loading library
  2378         if test x$enable_loadso = xyes; then
  2379             AC_DEFINE(SDL_LOADSO_WINDOWS, 1, [ ])
  2380             SOURCES="$SOURCES $srcdir/src/loadso/windows/*.c"
  2381             have_loadso=yes
  2382         fi
  2383         # Set up the system libraries we need
  2384         # SDL is unicode, and unicows emulates this on Windows 98/ME
  2385         # You can get this here: http://libunicows.sourceforge.net/
  2386         #EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lunicows"
  2387         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lversion -luuid"
  2388         # The Windows platform requires special setup
  2389         VERSION_SOURCES="$srcdir/src/main/windows/*.rc"
  2390         SDLMAIN_SOURCES="$srcdir/src/main/windows/*.c"
  2391         SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
  2392         SDL_LIBS="-lmingw32 -lSDL2main $SDL_LIBS -mwindows"
  2393         ;;
  2394     *-*-beos* | *-*-haiku*)
  2395         ARCH=beos
  2396         ac_default_prefix=/boot/develop/tools/gnupro
  2397         CheckDummyVideo
  2398         CheckDiskAudio
  2399         CheckDummyAudio
  2400         CheckBWINDOW
  2401         CheckBeGL
  2402         # Set up files for the audio library
  2403         if test x$enable_audio = xyes; then
  2404             AC_DEFINE(SDL_AUDIO_DRIVER_BEOSAUDIO, 1, [ ])
  2405             SOURCES="$SOURCES $srcdir/src/audio/baudio/*.cc"
  2406             have_audio=yes
  2407         fi
  2408         # Set up files for the joystick library
  2409         if test x$enable_joystick = xyes; then
  2410             AC_DEFINE(SDL_JOYSTICK_BEOS, 1, [ ])
  2411             SOURCES="$SOURCES $srcdir/src/joystick/beos/*.cc"
  2412             have_joystick=yes
  2413         fi
  2414         # Set up files for the thread library
  2415         if test x$enable_threads = xyes; then
  2416             AC_DEFINE(SDL_THREAD_BEOS, 1, [ ])
  2417             SOURCES="$SOURCES $srcdir/src/thread/beos/*.c"
  2418             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_sysmutex.c"
  2419             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
  2420             have_threads=yes
  2421         fi
  2422         # Set up files for the timer library
  2423         if test x$enable_timers = xyes; then
  2424             AC_DEFINE(SDL_TIMER_BEOS, 1, [ ])
  2425             SOURCES="$SOURCES $srcdir/src/timer/beos/*.c"
  2426             have_timers=yes
  2427         fi
  2428         # Set up files for the shared object loading library
  2429         if test x$enable_loadso = xyes; then
  2430             AC_DEFINE(SDL_LOADSO_BEOS, 1, [ ])
  2431             SOURCES="$SOURCES $srcdir/src/loadso/beos/*.c"
  2432             have_loadso=yes
  2433         fi
  2434         # Set up files for the system power library
  2435         if test x$enable_power = xyes; then
  2436             AC_DEFINE(SDL_POWER_BEOS, 1, [ ])
  2437             SOURCES="$SOURCES $srcdir/src/power/beos/*.c"
  2438             have_power=yes
  2439         fi
  2440         # The BeOS platform requires special setup.
  2441         SOURCES="$srcdir/src/main/beos/*.cc $SOURCES"
  2442         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding"
  2443         ;;
  2444     arm*-apple-darwin*)
  2445         # iOS - We are not writing anything to confdefs.h because you have to replace
  2446         # SDL_config.h for SDL_config_iphoneos.h anyway
  2447         ARCH=ios
  2448 
  2449         CheckVisibilityHidden
  2450         CheckDummyVideo
  2451         CheckDiskAudio
  2452         CheckDummyAudio
  2453         CheckDLOPEN
  2454         CheckCOCOA
  2455         CheckPTHREAD
  2456 
  2457 
  2458         # Set up files for the audio library
  2459         if test x$enable_audio = xyes; then
  2460             SOURCES="$SOURCES $srcdir/src/audio/coreaudio/*.c"
  2461             have_audio=yes
  2462         fi
  2463         # Set up files for the joystick library
  2464         if test x$enable_joystick = xyes; then
  2465             SOURCES="$SOURCES $srcdir/src/joystick/iphoneos/*.m"
  2466             have_joystick=yes
  2467         fi
  2468         # Set up files for the haptic library
  2469         #if test x$enable_haptic = xyes; then
  2470         #    SOURCES="$SOURCES $srcdir/src/haptic/darwin/*.c"
  2471         #    have_haptic=yes
  2472         #    EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,ForceFeedback"
  2473         #fi
  2474         # Set up files for the power library
  2475         if test x$enable_power = xyes; then
  2476             SOURCES="$SOURCES $srcdir/src/power/uikit/*.m"
  2477             have_power=yes
  2478         fi
  2479         # Set up files for the timer library
  2480         if test x$enable_timers = xyes; then
  2481             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  2482             have_timers=yes
  2483         fi
  2484         # Set up additional files for the file library
  2485         if test x$enable_file = xyes; then
  2486             SOURCES="$SOURCES $srcdir/src/file/cocoa/*.m"
  2487         fi
  2488         # The iOS platform requires special setup.
  2489         SOURCES="$SOURCES $srcdir/src/video/uikit/*.m"
  2490         SOURCES="$SOURCES $srcdir/src/video/uikit/*.c"
  2491         ;;
  2492     *-*-darwin* )
  2493         # This could be either full "Mac OS X", or plain "Darwin" which is
  2494         # just the OS X kernel sans upper layers like Carbon and Cocoa.
  2495         # Next line is broken, and a few files below require Mac OS X (full)
  2496         ARCH=macosx
  2497 
  2498         # Mac OS X builds with both the Carbon and OSX APIs at the moment
  2499         EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_CARBON"
  2500         EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_OSX"
  2501 
  2502         CheckVisibilityHidden
  2503         CheckDummyVideo
  2504         CheckDiskAudio
  2505         CheckDummyAudio
  2506         CheckDLOPEN
  2507         CheckCOCOA
  2508         CheckX11
  2509         CheckMacGL
  2510         CheckOpenGLX11
  2511         CheckPTHREAD
  2512 
  2513         # Good optimization on Mac OS X, yes...
  2514         EXTRA_CFLAGS="$EXTRA_CFLAGS -falign-loops=16"
  2515 
  2516         # Need this or things might misbuild on a G3.
  2517         EXTRA_CFLAGS="$EXTRA_CFLAGS -force_cpusubtype_ALL"
  2518 
  2519         # Set up files for the audio library
  2520         if test x$enable_audio = xyes; then
  2521             AC_DEFINE(SDL_AUDIO_DRIVER_COREAUDIO, 1, [ ])
  2522             SOURCES="$SOURCES $srcdir/src/audio/coreaudio/*.c"
  2523             have_audio=yes
  2524         fi
  2525         # Set up files for the joystick library
  2526         if test x$enable_joystick = xyes; then
  2527             AC_DEFINE(SDL_JOYSTICK_IOKIT, 1, [ ])
  2528             SOURCES="$SOURCES $srcdir/src/joystick/darwin/*.c"
  2529             have_joystick=yes
  2530         fi
  2531         # Set up files for the haptic library
  2532         if test x$enable_haptic = xyes; then
  2533             AC_DEFINE(SDL_HAPTIC_IOKIT, 1, [ ])
  2534             SOURCES="$SOURCES $srcdir/src/haptic/darwin/*.c"
  2535             have_haptic=yes
  2536             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,ForceFeedback"
  2537         fi
  2538         # Set up files for the power library
  2539         if test x$enable_power = xyes; then
  2540             AC_DEFINE(SDL_POWER_MACOSX, 1, [ ])
  2541             SOURCES="$SOURCES $srcdir/src/power/macosx/*.c"
  2542             have_power=yes
  2543         fi
  2544         # Set up files for the timer library
  2545         if test x$enable_timers = xyes; then
  2546             AC_DEFINE(SDL_TIMER_UNIX, 1, [ ])
  2547             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  2548             have_timers=yes
  2549         fi
  2550         # Set up additional files for the file library
  2551         if test x$enable_file = xyes; then
  2552             SOURCES="$SOURCES $srcdir/src/file/cocoa/*.m"
  2553         fi
  2554         # The Mac OS X platform requires special setup.
  2555         EXTRA_CFLAGS="$EXTRA_CFLAGS -fpascal-strings"
  2556         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lobjc"
  2557         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Cocoa"
  2558         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Carbon"
  2559         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,IOKit"
  2560         # If audio is used, add the AudioUnit framework
  2561         if test x$enable_audio = xyes; then
  2562             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit"
  2563         fi
  2564         ;;
  2565     *)
  2566         AC_MSG_ERROR([
  2567 *** Unsupported host:  Please add to configure.in
  2568         ])
  2569         ;;
  2570 esac
  2571 
  2572 dnl Do this on all platforms, after everything else.
  2573 CheckWarnAll
  2574 
  2575 # Verify that we have all the platform specific files we need
  2576 
  2577 if test x$have_joystick != xyes; then
  2578     if test x$enable_joystick = xyes; then
  2579         AC_DEFINE(SDL_JOYSTICK_DISABLED, 1, [ ])
  2580     fi
  2581     SOURCES="$SOURCES $srcdir/src/joystick/dummy/*.c"
  2582 fi
  2583 if test x$have_haptic != xyes; then
  2584     if test x$enable_haptic = xyes; then
  2585         AC_DEFINE(SDL_HAPTIC_DISABLED, 1, [ ])
  2586     fi
  2587     SOURCES="$SOURCES $srcdir/src/haptic/dummy/*.c"
  2588 fi
  2589 if test x$have_threads != xyes; then
  2590     if test x$enable_threads = xyes; then
  2591         AC_DEFINE(SDL_THREADS_DISABLED, 1, [ ])
  2592     fi
  2593     SOURCES="$SOURCES $srcdir/src/thread/generic/*.c"
  2594 fi
  2595 if test x$have_timers != xyes; then
  2596     if test x$enable_timers = xyes; then
  2597         AC_DEFINE(SDL_TIMERS_DISABLED, 1, [ ])
  2598     fi
  2599     SOURCES="$SOURCES $srcdir/src/timer/dummy/*.c"
  2600 fi
  2601 if test x$have_loadso != xyes; then
  2602     if test x$enable_loadso = xyes; then
  2603         AC_DEFINE(SDL_LOADSO_DISABLED, 1, [ ])
  2604     fi
  2605     SOURCES="$SOURCES $srcdir/src/loadso/dummy/*.c"
  2606 fi
  2607 if test x$SDLMAIN_SOURCES = x; then
  2608     SDLMAIN_SOURCES="$srcdir/src/main/dummy/*.c"
  2609 fi
  2610 
  2611 OBJECTS=`echo $SOURCES`
  2612 DEPENDS=`echo $SOURCES | tr ' ' '\n'`
  2613 for EXT in asm cc m c S; do
  2614     OBJECTS=`echo "$OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.'$EXT',$(objects)/\1.lo,g'`
  2615     DEPENDS=`echo "$DEPENDS" | sed "s,^\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.$EXT\\$,\\\\
  2616 \\$(objects)/\\2.lo: \\1/\\2.$EXT\\\\
  2617 	\\$(LIBTOOL) --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
  2618 done
  2619 
  2620 VERSION_OBJECTS=`echo $VERSION_SOURCES`
  2621 VERSION_DEPENDS=`echo $VERSION_SOURCES`
  2622 VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'`
  2623 VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.rc,\\\\
  2624 \\$(objects)/\\2.o: \\1/\\2.rc\\\\
  2625 	\\$(WINDRES) \\$< \\$@,g"`
  2626 
  2627 SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
  2628 SDLMAIN_DEPENDS=`echo $SDLMAIN_SOURCES`
  2629 SDLMAIN_OBJECTS=`echo "$SDLMAIN_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.o,g'`
  2630 SDLMAIN_DEPENDS=`echo "$SDLMAIN_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\
  2631 \\$(objects)/\\2.o: \\1/\\2.c\\\\
  2632 	\\$(LIBTOOL) --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
  2633 
  2634 # Set runtime shared library paths as needed
  2635 
  2636 if test "x$enable_rpath" = "xyes"; then
  2637   if test $ARCH = bsdi -o $ARCH = freebsd -o $ARCH = linux -o $ARCH = netbsd; then
  2638     SDL_RLD_FLAGS="-Wl,-rpath,\${libdir}"
  2639   fi
  2640   if test $ARCH = solaris; then
  2641     SDL_RLD_FLAGS="-R\${libdir}"
  2642   fi
  2643 else
  2644   SDL_RLD_FLAGS=""
  2645 fi
  2646 
  2647 SDL_STATIC_LIBS="$SDL_LIBS $EXTRA_LDFLAGS"
  2648 
  2649 dnl Expand the cflags and libraries needed by apps using SDL
  2650 AC_SUBST(SDL_CFLAGS)
  2651 AC_SUBST(SDL_LIBS)
  2652 AC_SUBST(SDL_STATIC_LIBS)
  2653 AC_SUBST(SDL_RLD_FLAGS)
  2654 if test x$enable_shared = xyes; then
  2655     ENABLE_SHARED_TRUE=
  2656     ENABLE_SHARED_FALSE="#"
  2657 else
  2658     ENABLE_SHARED_TRUE="#"
  2659     ENABLE_SHARED_FALSE=
  2660 fi
  2661 if test x$enable_static = xyes; then
  2662     ENABLE_STATIC_TRUE=
  2663     ENABLE_STATIC_FALSE="#"
  2664 else
  2665     ENABLE_STATIC_TRUE="#"
  2666     ENABLE_STATIC_FALSE=
  2667 fi
  2668 AC_SUBST(ENABLE_SHARED_TRUE)
  2669 AC_SUBST(ENABLE_SHARED_FALSE)
  2670 AC_SUBST(ENABLE_STATIC_TRUE)
  2671 AC_SUBST(ENABLE_STATIC_FALSE)
  2672 
  2673 dnl Expand the sources and objects needed to build the library
  2674 AC_SUBST(ac_aux_dir)
  2675 AC_SUBST(INCLUDE)
  2676 AC_SUBST(OBJECTS)
  2677 AC_SUBST(VERSION_OBJECTS)
  2678 AC_SUBST(SDLMAIN_OBJECTS)
  2679 AC_SUBST(BUILD_CFLAGS)
  2680 AC_SUBST(EXTRA_CFLAGS)
  2681 AC_SUBST(BUILD_LDFLAGS)
  2682 AC_SUBST(EXTRA_LDFLAGS)
  2683 AC_SUBST(WINDRES)
  2684 
  2685 cat >Makefile.rules <<__EOF__
  2686 
  2687 # Build rules for objects
  2688 -include \$(OBJECTS:.lo=.d)
  2689 
  2690 # Special dependency for SDL.c, since it depends on SDL_revision.h
  2691 $srcdir/src/SDL.c: update-revision
  2692 $DEPENDS
  2693 $VERSION_DEPENDS
  2694 $SDLMAIN_DEPENDS
  2695 __EOF__
  2696 
  2697 AC_CONFIG_FILES([
  2698     Makefile:Makefile.in:Makefile.rules sdl2-config SDL2.spec sdl2.pc
  2699 ])
  2700 AC_OUTPUT