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