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