configure.in
author Sam Lantinga <slouken@libsdl.org>
Wed, 28 Jul 2010 22:24:13 -0700
changeset 4626 2cfd55c58cd9
parent 4625 1c562caa9123
child 4694 c24ba2cc9583
permissions -rw-r--r--
For consistency, swapped line order
     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                     xdamage_lib='/usr/X11R6/lib/libXdamage.1.dylib'
  1043                     xfixes_lib='/usr/X11R6/lib/libXfixes.3.dylib'
  1044                     ;;
  1045                 *-*-osf*)
  1046                     x11_lib='libX11.so'
  1047                     x11ext_lib='libXext.so'
  1048                     ;;
  1049                 *-*-irix*) # IRIX 6.5 requires that we use /usr/lib32
  1050                     x11_lib='libX11.so'
  1051                     x11ext_lib='libXext.so'
  1052                     ;;
  1053                 *)
  1054                     x11_lib=[`find_lib "libX11.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1055                     x11ext_lib=[`find_lib "libXext.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1056                     xrender_lib=[`find_lib "libXrender.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1057                     xrandr_lib=[`find_lib "libXrandr.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1058                     xinput_lib=[`find_lib "libXi.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1059                     xss_lib=[`find_lib "libXss.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1060                     xdamage_lib=[`find_lib "libXdamage.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1061                     xfixes_lib=[`find_lib "libXfixes.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
  1062                     ;;
  1063             esac
  1064 
  1065             if test x$ac_cv_func_shmat != xyes; then
  1066                 X_CFLAGS="$X_CFLAGS -DNO_SHARED_MEMORY"
  1067             fi
  1068             CFLAGS="$CFLAGS $X_CFLAGS"
  1069             LDFLAGS="$LDFLAGS $X_LIBS"
  1070 
  1071             AC_DEFINE(SDL_VIDEO_DRIVER_X11)
  1072             SOURCES="$SOURCES $srcdir/src/video/x11/*.c"
  1073             SOURCES="$SOURCES $srcdir/src/video/Xext/XmuStdCmap/*.c"
  1074             EXTRA_CFLAGS="$EXTRA_CFLAGS $X_CFLAGS"
  1075 
  1076             if test x$enable_x11_shared = xmaybe; then
  1077                 enable_x11_shared=$x11_symbols_private
  1078             fi
  1079             if test x$have_loadso != xyes && \
  1080                test x$enable_x11_shared = xyes; then
  1081                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic X11 loading])
  1082                 enable_x11_shared=no
  1083             fi
  1084             if test x$x11_symbols_private != xyes && \
  1085                test x$enable_x11_shared = xyes; then
  1086                 AC_MSG_WARN([You must have gcc4 (-fvisibility=hidden) for dynamic X11 loading])
  1087                 enable_x11_shared=no
  1088             fi
  1089 
  1090             if test x$have_loadso = xyes && \
  1091                test x$enable_x11_shared = xyes && test x$x11_lib != x && test x$x11ext_lib != x; then
  1092                 echo "-- dynamic libX11 -> $x11_lib"
  1093                 echo "-- dynamic libX11ext -> $x11ext_lib"
  1094                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC, "$x11_lib")
  1095                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT, "$x11ext_lib")
  1096             else
  1097                 enable_x11_shared=no
  1098                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $X_LIBS -lX11 -lXext"
  1099             fi
  1100             have_video=yes
  1101 
  1102             AC_ARG_ENABLE(video-x11-vm,
  1103 AC_HELP_STRING([--enable-video-x11-vm], [use X11 VM extension for fullscreen [[default=yes]]]),
  1104                           , enable_video_x11_vm=yes)
  1105             if test x$enable_video_x11_vm = xyes; then
  1106                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_VIDMODE)
  1107                 SOURCES="$SOURCES $srcdir/src/video/Xext/Xxf86vm/*.c"
  1108             fi
  1109             AC_ARG_ENABLE(video-x11-xv,
  1110 AC_HELP_STRING([--enable-video-x11-xv], [use X11 XvImage extension for video [[default=yes]]]),
  1111                           , enable_video_x11_xv=yes)
  1112             if test x$enable_video_x11_xv = xyes; then
  1113                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XV)
  1114                 SOURCES="$SOURCES $srcdir/src/video/Xext/Xv/*.c"
  1115             fi
  1116             AC_ARG_ENABLE(video-x11-xinerama,
  1117 AC_HELP_STRING([--enable-video-x11-xinerama], [enable X11 Xinerama support [[default=yes]]]),
  1118                             , enable_video_x11_xinerama=yes)
  1119             if test x$enable_video_x11_xinerama = xyes; then
  1120                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINERAMA)
  1121                 SOURCES="$SOURCES $srcdir/src/video/Xext/Xinerama/*.c"
  1122             fi
  1123             AC_ARG_ENABLE(video-x11-xrandr,
  1124 AC_HELP_STRING([--enable-video-x11-xrandr], [enable X11 Xrandr extension for fullscreen [[default=yes]]]),
  1125                             , enable_video_x11_xrandr=yes)
  1126             if test x$enable_video_x11_xrandr = xyes; then
  1127                 definitely_enable_video_x11_xrandr=no
  1128                 AC_CHECK_HEADER(X11/extensions/Xrandr.h,
  1129                                 have_xrandr_h_hdr=yes,
  1130                                 have_xrandr_h_hdr=no,
  1131                                 [#include <X11/Xlib.h>
  1132                                 ])
  1133                 if test x$have_xrandr_h_hdr = xyes; then
  1134                     if test x$enable_x11_shared = xyes && test x$xrandr_lib != x ; then
  1135                         echo "-- dynamic libXrandr -> $xrandr_lib"
  1136                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR, "$xrandr_lib")
  1137                         definitely_enable_video_x11_xrandr=yes
  1138                     else
  1139                         AC_CHECK_LIB(Xrandr, XRRQueryExtension, have_xrandr_lib=yes)
  1140                         if test x$have_xrandr_lib = xyes ; then
  1141                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXrandr"
  1142                             definitely_enable_video_x11_xrandr=yes
  1143                         fi
  1144                     fi
  1145                 fi
  1146             fi
  1147             if test x$definitely_enable_video_x11_xrandr = xyes; then
  1148                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR)
  1149             fi
  1150             AC_ARG_ENABLE(video-x11-xinput,
  1151 AC_HELP_STRING([--enable-video-x11-xinput], [enable X11 XInput extension for manymouse, tablets, etc [[default=yes]]]),
  1152                             , enable_video_x11_xinput=yes)
  1153             if test x$enable_video_x11_xinput = xyes; then
  1154                 definitely_enable_video_x11_xinput=no
  1155                 AC_CHECK_HEADER(X11/extensions/XInput.h,
  1156                                 have_xinput_h_hdr=yes,
  1157                                 have_xinput_h_hdr=no,
  1158                                 [#include <X11/Xlib.h>
  1159                                 ])
  1160                 if test x$have_xinput_h_hdr = xyes; then
  1161                     if test x$enable_x11_shared = xyes && test x$xinput_lib != x ; then
  1162                         echo "-- dynamic libXi -> $xinput_lib"
  1163                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT, "$xinput_lib")
  1164                         definitely_enable_video_x11_xinput=yes
  1165                     else
  1166                         AC_CHECK_LIB(Xi, XOpenDevice, have_xinput_lib=yes)
  1167                         if test x$have_xinput_lib = xyes ; then
  1168                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXi"
  1169                             definitely_enable_video_x11_xinput=yes
  1170                         fi
  1171                     fi
  1172                 fi
  1173             fi
  1174             if test x$definitely_enable_video_x11_xinput = xyes; then
  1175                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINPUT)
  1176             fi
  1177             AC_ARG_ENABLE(video-x11-scrnsaver,
  1178 AC_HELP_STRING([--enable-video-x11-scrnsaver], [enable X11 screensaver extension [[default=yes]]]),
  1179                             , enable_video_x11_scrnsaver=yes)
  1180             if test x$enable_video_x11_scrnsaver = xyes; then
  1181                 AC_CHECK_HEADER(X11/extensions/scrnsaver.h,
  1182                                 have_scrnsaver_h_hdr=yes,
  1183                                 have_scrnsaver_h_hdr=no,
  1184                                 [#include <X11/Xlib.h>
  1185                                 ])
  1186                 if test x$have_scrnsaver_h_hdr = xyes; then
  1187                     if test x$enable_x11_shared = xyes && test x$xss_lib != x ; then
  1188                         echo "-- dynamic libXss -> $xss_lib"
  1189                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS, "$xss_lib")
  1190                         definitely_enable_video_x11_scrnsaver=yes
  1191                     else
  1192                         AC_CHECK_LIB(Xss, XScreenSaverSuspend, have_xss_lib=yes)
  1193                         if test x$have_xss_lib = xyes ; then
  1194                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXss"
  1195                             definitely_enable_video_x11_scrnsaver=yes
  1196                         fi
  1197                     fi
  1198                 fi
  1199             fi
  1200             if test x$definitely_enable_video_x11_scrnsaver = xyes; then
  1201                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_SCRNSAVER)
  1202             fi
  1203             AC_ARG_ENABLE(video-x11-xrender,
  1204 AC_HELP_STRING([--enable-video-x11-xrender], [enable X11 Xrender extension [[default=yes]]]),
  1205                             , enable_video_x11_xrender=yes)
  1206             if test x$enable_video_x11_xrender = xyes; then
  1207                 AC_CHECK_HEADER(X11/extensions/Xrender.h,
  1208                                 have_xrender_h_hdr=yes,
  1209                                 have_xrender_h_hdr=no,
  1210                                 [#include <X11/Xlib.h>
  1211                                 ])
  1212                 if test x$have_xrender_h_hdr = xyes; then
  1213                     if test x$enable_x11_shared = xyes && test x$xrender_lib != x ; then
  1214                         echo "-- dynamic libXrender -> $xrender_lib"
  1215                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XRENDER, "$xrender_lib")
  1216                         definitely_enable_video_x11_xrender=yes
  1217                     else
  1218                         AC_CHECK_LIB(Xrender, XRenderQueryExtension, have_xrender_lib=yes)
  1219                         if test x$have_xrender_lib = xyes ; then
  1220                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXrender"
  1221                             definitely_enable_video_x11_xrender=yes
  1222                         fi
  1223                     fi
  1224                 fi
  1225             fi
  1226             if test x$definitely_enable_video_x11_xrender = xyes; then
  1227                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRENDER)
  1228             fi
  1229             AC_ARG_ENABLE(video-x11-xdamage-xfixes,
  1230 AC_HELP_STRING([--enable-video-x11-xdamage-xfixes], [enable X11 Xdamage and Xfixes extensions [[default=yes]]]),
  1231                             , enable_video_x11_xdamage=yes)
  1232             if test x$enable_video_x11_xdamage = xyes && test x$definitely_enable_video_x11_xrender = xyes ; then
  1233                 AC_CHECK_HEADER(X11/extensions/Xdamage.h,
  1234                                 have_xdamage_h_hdr=yes,
  1235                                 have_xdamage_h_hdr=no,
  1236                                 [#include <X11/Xlib.h>
  1237                                 ])
  1238                 AC_CHECK_HEADER(X11/extensions/Xfixes.h,
  1239                                 have_xfixes_h_hdr=yes,
  1240                                 have_xfixes_h_hdr=no,
  1241                                 [#include <X11/Xlib.h>
  1242                                 ])
  1243                 if test x$have_xdamage_h_hdr = xyes && test x$have_xfixes_h_hdr = xyes ; then
  1244                     if test x$enable_x11_shared = xyes && test x$xdamage_lib != x && test x$xfixes_lib != x ; then
  1245                         echo "-- dynamic libXdamage -> $xdamage_lib"
  1246                         echo "-- dynamic libXfixes -> $xfixes_lib"
  1247                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XDAMAGE, "$xdamage_lib")
  1248                         AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XFIXES, "$xfixes_lib")
  1249                         definitely_enable_video_x11_xdamage=yes
  1250                         definitely_enable_video_x11_xfixes=yes
  1251                     else
  1252                         AC_CHECK_LIB(Xdamage, XDamageQueryExtension, have_xdamage_lib=yes)
  1253                         AC_CHECK_LIB(Xfixes, XFixesQueryExtension, have_xfixes_lib=yes)
  1254                         if test x$have_xdamage_lib = xyes && test x$have_xfixes_lib = xyes ; then
  1255                             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXdamage -lXfixes"
  1256                             definitely_enable_video_x11_xdamage=yes
  1257                             definitely_enable_video_x11_xfixes=yes
  1258                         fi
  1259                     fi
  1260                 fi
  1261             fi
  1262             if test x$definitely_enable_video_x11_xdamage = xyes && test x$definitely_enable_video_x11_xfixes = xyes ; then
  1263                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XDAMAGE)
  1264                 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XFIXES)
  1265             fi
  1266             AC_ARG_ENABLE(render-x11,
  1267 AC_HELP_STRING([--enable-render-x11], [enable the X11 render driver [[default=yes]]]),
  1268                                 , enable_render_x11=yes)
  1269             if test x$enable_render_x11 = xyes; then
  1270                 AC_DEFINE(SDL_VIDEO_RENDER_X11)
  1271             fi
  1272         fi
  1273     fi
  1274 }
  1275 
  1276 dnl Check for QNX photon video driver
  1277 CheckPHOTON()
  1278 {
  1279     AC_ARG_ENABLE(video-photon,
  1280 AC_HELP_STRING([--enable-video-photon], [use QNX Photon video driver [[default=yes]]]),
  1281                   , enable_video_photon=yes)
  1282     if test x$enable_video = xyes -a x$enable_video_photon = xyes; then
  1283         AC_MSG_CHECKING(for QNX Photon support)
  1284         video_photon=no
  1285         AC_TRY_COMPILE([
  1286           #include <Ph.h>
  1287           #include <Pt.h>
  1288           #include <photon/Pg.h>
  1289           #include <photon/PdDirect.h>
  1290         ],[
  1291          PgDisplaySettings_t *visual;
  1292         ],[
  1293         video_photon=yes
  1294         ])
  1295         AC_MSG_RESULT($video_photon)
  1296         if test x$video_photon = xyes; then
  1297             AC_DEFINE(SDL_VIDEO_DRIVER_PHOTON)
  1298             SOURCES="$SOURCES $srcdir/src/video/photon/*.c"
  1299             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lph -lphrender"
  1300             have_video=yes
  1301 
  1302             CheckOpenGLQNX
  1303         fi
  1304     fi
  1305 }
  1306 
  1307 dnl Check for QNX photon video driver
  1308 CheckQNXGF()
  1309 {
  1310     AC_ARG_ENABLE(video-qnxgf,
  1311                   AC_HELP_STRING([--enable-video-qnxgf], [use QNX GF video driver [[default=yes]]]),
  1312                   , enable_video_qnxgf=yes)
  1313     if test x$enable_video = xyes -a x$enable_video_qnxgf = xyes; then
  1314         AC_MSG_CHECKING(for QNX GF support)
  1315         video_qnxgf=no
  1316         AC_TRY_COMPILE([
  1317           #include <gf/gf.h>
  1318           #include <gf/gf3d.h>
  1319         ],[
  1320          gf_3d_config_info_t* gfinfo;
  1321         ],[
  1322         video_qnxgf=yes
  1323         ])
  1324         AC_MSG_RESULT($video_qnxgf)
  1325         if test x$video_qnxgf = xyes; then
  1326             AC_DEFINE(SDL_VIDEO_DRIVER_QNXGF)
  1327             SOURCES="$SOURCES $srcdir/src/video/qnxgf/*.c"
  1328             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lgf"
  1329 
  1330             # Add HIDDI library for HID support using GF
  1331             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lhiddi"
  1332 
  1333             have_video=yes
  1334 
  1335             CheckOpenGLESQNX
  1336         fi
  1337     fi
  1338 }
  1339 
  1340 dnl Set up the BWindow video driver if enabled
  1341 CheckBWINDOW()
  1342 {
  1343     if test x$enable_video = xyes; then
  1344         AC_DEFINE(SDL_VIDEO_DRIVER_BWINDOW)
  1345         SOURCES="$SOURCES $srcdir/src/video/bwindow/*.cc"
  1346         have_video=yes
  1347     fi
  1348 }
  1349 
  1350 dnl Set up the Cocoa video driver for Mac OS X (but not Darwin)
  1351 CheckCOCOA()
  1352 {
  1353     AC_ARG_ENABLE(video-cocoa,
  1354 AC_HELP_STRING([--enable-video-cocoa], [use Cocoa video driver [[default=yes]]]),
  1355                   , enable_video_cocoa=yes)
  1356     if test x$enable_video = xyes -a x$enable_video_cocoa = xyes; then
  1357         save_CFLAGS="$CFLAGS"
  1358         dnl work around that we don't have Objective-C support in autoconf
  1359         CFLAGS="$CFLAGS -x objective-c"
  1360         AC_MSG_CHECKING(for Cocoa framework)
  1361         have_cocoa=no
  1362         AC_TRY_COMPILE([
  1363           #import <Cocoa/Cocoa.h>
  1364         ],[
  1365         ],[
  1366         have_cocoa=yes
  1367         ])
  1368         AC_MSG_RESULT($have_cocoa)
  1369         CFLAGS="$save_CFLAGS"
  1370         if test x$have_cocoa = xyes; then
  1371             AC_DEFINE(SDL_VIDEO_DRIVER_COCOA)
  1372             SOURCES="$SOURCES $srcdir/src/video/cocoa/*.m"
  1373             have_video=yes
  1374         fi
  1375     fi
  1376 }
  1377 
  1378 dnl Find the framebuffer console includes
  1379 CheckFBCON()
  1380 {
  1381     AC_ARG_ENABLE(video-fbcon,
  1382 AC_HELP_STRING([--enable-video-fbcon], [use framebuffer console video driver [[default=no]]]),
  1383                   , enable_video_fbcon=no)
  1384     if test x$enable_video = xyes -a x$enable_video_fbcon = xyes; then
  1385         AC_MSG_CHECKING(for framebuffer console support)
  1386         video_fbcon=no
  1387         AC_TRY_COMPILE([
  1388          #include <linux/fb.h>
  1389          #include <linux/kd.h>
  1390          #include <linux/keyboard.h>
  1391         ],[
  1392         ],[
  1393         video_fbcon=yes
  1394         ])
  1395         AC_MSG_RESULT($video_fbcon)
  1396         if test x$video_fbcon = xyes; then
  1397             AC_CHECK_FUNCS(getpagesize)
  1398             AC_DEFINE(SDL_VIDEO_DRIVER_FBCON)
  1399             SOURCES="$SOURCES $srcdir/src/video/fbcon/*.c"
  1400             have_video=yes
  1401         fi
  1402     fi
  1403 }
  1404 
  1405 dnl Find DirectFB
  1406 CheckDirectFB()
  1407 {
  1408     AC_ARG_ENABLE(video-directfb,
  1409 AC_HELP_STRING([--enable-video-directfb], [use DirectFB video driver [[default=no]]]),
  1410                   , enable_video_directfb=no)
  1411     if test x$enable_video = xyes -a x$enable_video_directfb = xyes; then
  1412         video_directfb=no
  1413 
  1414         DIRECTFB_REQUIRED_VERSION=1.0.0
  1415 
  1416         AC_PATH_PROG(DIRECTFBCONFIG, directfb-config, no)
  1417         if test x$DIRECTFBCONFIG = xno; then
  1418             AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
  1419             if test x$PKG_CONFIG != xno; then
  1420                 if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb; then
  1421                     DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags directfb`
  1422                     DIRECTFB_LIBS=`$PKG_CONFIG --libs directfb`
  1423                     DIRECTFB_PREFIX=`$PKG_CONFIG --variable=prefix directfb`
  1424                     video_directfb=yes
  1425                 fi
  1426             fi
  1427         else
  1428             set -- `echo $DIRECTFB_REQUIRED_VERSION | sed 's/\./ /g'`
  1429             NEED_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
  1430             set -- `directfb-config --version | sed 's/\./ /g'`
  1431             HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
  1432             if test $HAVE_VERSION -ge $NEED_VERSION; then
  1433                 DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags`
  1434                 DIRECTFB_LIBS=`$DIRECTFBCONFIG --libs`
  1435                 DIRECTFB_PREFIX=`$DIRECTFBCONFIG --prefix`
  1436                 video_directfb=yes
  1437             fi
  1438         fi
  1439         if test x$video_directfb = xyes; then
  1440             # SuSE 11.1 installs directfb-config without directfb-devel
  1441             save_CPPFLAGS="$CPPFLAGS"
  1442             CPPFLAGS="$CPPFLAGS $DIRECTFB_CFLAGS"
  1443             AC_CHECK_HEADER(directfb.h, have_directfb_hdr=yes, have_directfb_hdr=no)
  1444             CPPFLAGS="$save_CPPFLAGS"
  1445             video_directfb=$have_directfb_hdr
  1446         fi
  1447         AC_MSG_CHECKING(for DirectFB $DIRECTFB_REQUIRED_VERSION support)
  1448         AC_MSG_RESULT($video_directfb)
  1449 
  1450         if test x$video_directfb = xyes; then
  1451             AC_ARG_ENABLE(directfb-shared,
  1452 AC_HELP_STRING([--enable-directfb-shared], [dynamically load directfb support [[default=yes]]]),
  1453                               , enable_directfb_shared=yes)
  1454 
  1455             AC_DEFINE(SDL_VIDEO_DRIVER_DIRECTFB)
  1456             SOURCES="$SOURCES $srcdir/src/video/directfb/*.c"
  1457             EXTRA_CFLAGS="$EXTRA_CFLAGS $DIRECTFB_CFLAGS"
  1458 
  1459             AC_MSG_CHECKING(for directfb dynamic loading support)
  1460             directfb_shared=no
  1461             directfb_lib=[`find_lib "libdirectfb.so.*" "$DIRECTFB_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
  1462 
  1463             if test x$have_loadso != xyes && \
  1464                test x$enable_directfb_shared = xyes; then
  1465                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic directfb loading])
  1466             fi
  1467             if test x$have_loadso = xyes && \
  1468                test x$enable_directfb_shared = xyes && test x$directfb_lib != x; then
  1469                 directfb_shared=yes
  1470                 echo "-- $directfb_lib_spec -> $directfb_lib"
  1471                 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC, "$directfb_lib")
  1472             else
  1473                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $DIRECTFB_LIBS"
  1474             fi
  1475             AC_MSG_RESULT($directfb_shared)
  1476             have_video=yes
  1477         fi
  1478     fi
  1479 }
  1480 
  1481 dnl Find FusionSound
  1482 CheckFusionSound()
  1483 {
  1484     AC_ARG_ENABLE(fusionsound,
  1485 AC_HELP_STRING([--enable-fusionsound], [use FusionSound audio driver [[default=no]]]),
  1486                   , enable_fusionsound=no)
  1487     if test x$enable_audio = xyes -a x$enable_fusionsound = xyes; then
  1488         fusionsound=no
  1489 
  1490         FUSIONSOUND_REQUIRED_VERSION=1.1.1
  1491 
  1492         AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
  1493         AC_MSG_CHECKING(for FusionSound $FUSIONSOUND_REQUIRED_VERSION support)
  1494         if test x$PKG_CONFIG != xno; then
  1495             if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $FUSIONSOUND_REQUIRED_VERSION fusionsound; then
  1496                 FUSIONSOUND_CFLAGS=`$PKG_CONFIG --cflags fusionsound`
  1497                 FUSIONSOUND_LIBS=`$PKG_CONFIG --libs fusionsound`
  1498                 fusionsound=yes
  1499             fi
  1500         fi
  1501         AC_MSG_RESULT($fusionsound)
  1502 
  1503         if test x$fusionsound = xyes; then
  1504             AC_DEFINE(SDL_AUDIO_DRIVER_FUSIONSOUND)
  1505             SOURCES="$SOURCES $srcdir/src/audio/fusionsound/*.c"
  1506             EXTRA_CFLAGS="$EXTRA_CFLAGS $FUSIONSOUND_CFLAGS"
  1507             
  1508             AC_ARG_ENABLE(fusionsound-shared,
  1509 AC_HELP_STRING([--enable-fusionsound-shared], [dynamically load fusionsound audio support [[default=yes]]]),
  1510                           , enable_fusionsound_shared=yes)
  1511             fusionsound_shared=no
  1512             AC_MSG_CHECKING(for FusionSound dynamic loading support)
  1513             if test x$have_loadso != xyes && \
  1514                test x$enable_fusionsound_shared = xyes; then
  1515                 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic fusionsound loading])
  1516             fi
  1517             if test x$have_loadso = xyes && \
  1518                test x$enable_fusionsound_shared = xyes; then
  1519                 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC, "libfusionsound.so")
  1520                 fusionsound_shared=yes
  1521             else
  1522                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $FUSIONSOUND_LIBS"
  1523             fi
  1524             AC_MSG_RESULT($fusionsound_shared)
  1525             
  1526             have_audio=yes
  1527         fi
  1528     fi
  1529 }
  1530 
  1531 dnl See if we're running on PlayStation 3 Cell hardware
  1532 CheckPS3()
  1533 {
  1534   AC_ARG_ENABLE(video-ps3,
  1535                 AC_HELP_STRING([--enable-video-ps3], [use PlayStation 3 Cell driver [[default=yes]]]),
  1536                 , enable_video_ps3=yes)
  1537   if test x$enable_video = xyes -a x$enable_video_ps3 = xyes; then 
  1538     video_ps3=no
  1539     AC_CHECK_HEADER([linux/fb.h])
  1540     AC_CHECK_HEADER([asm/ps3fb.h], [have_ps3fb_hdr=yes], [],
  1541             [#ifndef _LINUX_TYPES_H
  1542                 #include <linux/types.h>
  1543             #endif])
  1544     AC_CHECK_HEADER([libspe2.h], have_libspe2_hdr=yes)
  1545     AC_CHECK_LIB([spe2], spe_context_create, have_spe2_lib=yes)
  1546 
  1547     AC_CHECK_PROGS(SPU_GCC, [spu-gcc])
  1548     AC_CHECK_PROGS(EMBEDSPU, [embedspu])
  1549 
  1550     have_spu_libs=yes
  1551     AC_CHECK_LIB([fb_writer_spu], [main], [], [have_spu_libs=no])
  1552     AC_CHECK_LIB([yuv2rgb_spu], [main], [], [have_spu_libs=no])
  1553     AC_CHECK_LIB([bilin_scaler_spu], [main], [], [have_spu_libs=no])
  1554     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
  1555         AC_DEFINE(SDL_VIDEO_DRIVER_PS3)
  1556         video_ps3=yes
  1557         have_video=yes
  1558         SOURCES="$SOURCES $srcdir/src/video/ps3/*.c"
  1559         EXTRA_CFLAGS="$EXTRA_CFLAGS -I/opt/cell/sdk/usr/include"
  1560         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -L/opt/cell/sdk/usr/lib -lspe2 -lfb_writer_spu -lyuv2rgb_spu -lbilin_scaler_spu"
  1561 
  1562         if test x$have_spu_libs = xno; then 
  1563               AC_MSG_WARN([ps3libs missing, please run make ps3libs])
  1564         fi
  1565     fi
  1566     AC_MSG_CHECKING([for PlayStation 3 Cell support])
  1567     AC_MSG_RESULT([$video_ps3])
  1568   fi
  1569 }
  1570 
  1571 dnl Find the SVGAlib includes and libraries
  1572 CheckSVGA()
  1573 {
  1574     AC_ARG_ENABLE(video-svga,
  1575 AC_HELP_STRING([--enable-video-svga], [use SVGAlib video driver [[default=no]]]),
  1576                   , enable_video_svga=no)
  1577     if test x$enable_video = xyes -a x$enable_video_svga = xyes; then
  1578         AC_MSG_CHECKING(for SVGAlib (1.4.0+) support)
  1579         video_svga=no
  1580         AC_TRY_COMPILE([
  1581          #include <vga.h>
  1582          #include <vgamouse.h>
  1583          #include <vgakeyboard.h>
  1584         ],[
  1585          if ( SCANCODE_RIGHTWIN && SCANCODE_LEFTWIN ) {
  1586              exit(0);
  1587          }
  1588         ],[
  1589         video_svga=yes
  1590         ])
  1591         AC_MSG_RESULT($video_svga)
  1592         if test x$video_svga = xyes; then
  1593             AC_DEFINE(SDL_VIDEO_DRIVER_SVGALIB)
  1594             SOURCES="$SOURCES $srcdir/src/video/svga/*.c"
  1595             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lvga"
  1596             have_video=yes
  1597         fi
  1598     fi
  1599 }
  1600 
  1601 dnl rcg04172001 Set up the Null video driver.
  1602 CheckDummyVideo()
  1603 {
  1604     AC_ARG_ENABLE(video-dummy,
  1605 AC_HELP_STRING([--enable-video-dummy], [use dummy video driver [[default=yes]]]),
  1606                   , enable_video_dummy=yes)
  1607     if test x$enable_video_dummy = xyes; then
  1608         AC_DEFINE(SDL_VIDEO_DRIVER_DUMMY)
  1609         SOURCES="$SOURCES $srcdir/src/video/dummy/*.c"
  1610         have_video=yes
  1611     fi
  1612 }
  1613 
  1614 dnl Check to see if OpenGL support is desired
  1615 AC_ARG_ENABLE(video-opengl,
  1616 AC_HELP_STRING([--enable-video-opengl], [include OpenGL support [[default=yes]]]),
  1617               , enable_video_opengl=yes)
  1618 
  1619 dnl Find OpenGL
  1620 CheckOpenGLX11()
  1621 {
  1622     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1623         AC_MSG_CHECKING(for OpenGL (GLX) support)
  1624         video_opengl=no
  1625         AC_TRY_COMPILE([
  1626          #include <GL/gl.h>
  1627          #include <GL/glx.h>
  1628          #include <GL/glu.h>
  1629         ],[
  1630         ],[
  1631         video_opengl=yes
  1632         ])
  1633         AC_MSG_RESULT($video_opengl)
  1634         if test x$video_opengl = xyes; then
  1635             AC_DEFINE(SDL_VIDEO_OPENGL)
  1636             AC_DEFINE(SDL_VIDEO_OPENGL_GLX)
  1637             AC_DEFINE(SDL_VIDEO_RENDER_OGL)
  1638         fi
  1639     fi
  1640 }
  1641 
  1642 dnl Find QNX 6.x Software OpenGL
  1643 CheckOpenGLQNX()
  1644 {
  1645     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1646         AC_MSG_CHECKING(for QNX 6.x Photon OpenGL support)
  1647         video_opengl=no
  1648         AC_TRY_COMPILE([
  1649          #include <GL/gl.h>
  1650         ],[
  1651         ],[
  1652         video_opengl=yes
  1653         ])
  1654         AC_MSG_RESULT($video_opengl)
  1655         if test x$video_opengl = xyes; then
  1656             AC_DEFINE(SDL_VIDEO_OPENGL)
  1657             AC_DEFINE(SDL_VIDEO_RENDER_OGL)
  1658             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL"
  1659         fi
  1660     fi
  1661 }
  1662 
  1663 dnl Find QNX 6.3 and above OpenGL ES implementation
  1664 CheckOpenGLESQNX()
  1665 {
  1666     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1667         AC_MSG_CHECKING(for QNX OpenGL ES (CM) support)
  1668         video_opengl=no
  1669         AC_TRY_COMPILE([
  1670          #include <GLES/egl.h>
  1671         ],[
  1672         ],[
  1673         video_opengl=yes
  1674         ])
  1675         AC_MSG_RESULT($video_opengl)
  1676         if test x$video_opengl = xyes; then
  1677             AC_DEFINE(SDL_VIDEO_OPENGL_ES)
  1678             AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES)
  1679             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGLES_CM"
  1680         else
  1681             AC_MSG_CHECKING(for QNX OpenGL ES (CL) support)
  1682             video_opengl=no
  1683             AC_TRY_COMPILE([
  1684              #define COMMON_LITE
  1685              #include <GLES/egl.h>
  1686             ],[
  1687             ],[
  1688             video_opengl=yes
  1689             ])
  1690             AC_MSG_RESULT($video_opengl)
  1691             if test x$video_opengl = xyes; then
  1692                 AC_DEFINE(SDL_VIDEO_OPENGL_ES)
  1693                 AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES)
  1694                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGLES_CLS"
  1695             fi
  1696         fi
  1697     fi
  1698 }
  1699 
  1700 
  1701 dnl Check for Win32 OpenGL
  1702 CheckWIN32GL()
  1703 {
  1704     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1705         AC_DEFINE(SDL_VIDEO_OPENGL)
  1706         AC_DEFINE(SDL_VIDEO_OPENGL_WGL)
  1707         AC_DEFINE(SDL_VIDEO_RENDER_OGL)
  1708     fi
  1709 }
  1710 
  1711 dnl Check for BeOS OpenGL
  1712 CheckBeGL()
  1713 {
  1714     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1715         AC_DEFINE(SDL_VIDEO_OPENGL)
  1716         AC_DEFINE(SDL_VIDEO_OPENGL_BGL)
  1717         AC_DEFINE(SDL_VIDEO_RENDER_OGL)
  1718         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL"
  1719     fi
  1720 }
  1721 
  1722 dnl Check for MacOS OpenGL
  1723 CheckMacGL()
  1724 {
  1725     if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
  1726         AC_DEFINE(SDL_VIDEO_OPENGL)
  1727         AC_DEFINE(SDL_VIDEO_OPENGL_CGL)
  1728         AC_DEFINE(SDL_VIDEO_RENDER_OGL)
  1729         case "$host" in
  1730             *-*-darwin*)
  1731                 if test x$enable_video_cocoa = xyes; then
  1732                     EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,OpenGL"
  1733                 fi
  1734         esac
  1735     fi
  1736 }
  1737 
  1738 dnl See if we can use the new unified event interface in Linux 2.4
  1739 CheckInputEvents()
  1740 {
  1741     dnl Check for Linux 2.4 unified input event interface support
  1742     AC_ARG_ENABLE(input-events,
  1743 AC_HELP_STRING([--enable-input-events], [use Linux 2.4 unified input interface [[default=yes]]]),
  1744                   , enable_input_events=yes)
  1745     if test x$enable_input_events = xyes; then
  1746         AC_MSG_CHECKING(for Linux 2.4 unified input interface)
  1747         use_input_events=no
  1748         AC_TRY_COMPILE([
  1749           #include <linux/input.h>
  1750         ],[
  1751           #ifndef EVIOCGNAME
  1752           #error EVIOCGNAME() ioctl not available
  1753           #endif
  1754         ],[
  1755         use_input_events=yes
  1756         ])
  1757         AC_MSG_RESULT($use_input_events)
  1758         if test x$use_input_events = xyes; then
  1759             AC_DEFINE(SDL_INPUT_LINUXEV)
  1760         fi
  1761     fi
  1762 }
  1763 
  1764 dnl See if we can use the Touchscreen input library
  1765 CheckTslib()
  1766 {
  1767     AC_ARG_ENABLE(input-tslib,
  1768 AC_HELP_STRING([--enable-input-tslib], [use the Touchscreen library for input [[default=yes]]]),
  1769                   , enable_input_tslib=yes)
  1770     if test x$enable_input_tslib = xyes; then
  1771         AC_MSG_CHECKING(for Touchscreen library support)
  1772         enable_input_tslib=no
  1773         AC_TRY_COMPILE([
  1774           #include "tslib.h"
  1775         ],[
  1776         ],[
  1777         enable_input_tslib=yes
  1778         ])
  1779         AC_MSG_RESULT($enable_input_tslib)
  1780         if test x$enable_input_tslib = xyes; then
  1781             AC_DEFINE(SDL_INPUT_TSLIB)
  1782             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lts"
  1783         fi
  1784     fi
  1785 }
  1786 
  1787 dnl See what type of thread model to use on Linux and Solaris
  1788 CheckPTHREAD()
  1789 {
  1790     dnl Check for pthread support
  1791     AC_ARG_ENABLE(pthreads,
  1792 AC_HELP_STRING([--enable-pthreads], [use POSIX threads for multi-threading [[default=yes]]]),
  1793                   , enable_pthreads=yes)
  1794     dnl This is used on Linux for glibc binary compatibility (Doh!)
  1795     AC_ARG_ENABLE(pthread-sem,
  1796 AC_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [[default=yes]]]),
  1797                   , enable_pthread_sem=yes)
  1798     case "$host" in
  1799         *-*-linux*|*-*-uclinux*)
  1800             pthread_cflags="-D_REENTRANT"
  1801             pthread_lib="-lpthread"
  1802             ;;
  1803         *-*-bsdi*)
  1804             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  1805             pthread_lib=""
  1806             ;;
  1807         *-*-darwin*)
  1808             pthread_cflags="-D_THREAD_SAFE"
  1809 # causes Carbon.p complaints?
  1810 #            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  1811             ;;
  1812         *-*-freebsd*|*-*-dragonfly*)
  1813             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  1814             pthread_lib="-pthread"
  1815             ;;
  1816         *-*-netbsd*)
  1817             pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
  1818             pthread_lib="-lpthread"
  1819             ;;
  1820         *-*-openbsd*)
  1821             pthread_cflags="-D_REENTRANT"
  1822             pthread_lib="-pthread"
  1823             ;;
  1824         *-*-solaris*)
  1825             pthread_cflags="-D_REENTRANT"
  1826             pthread_lib="-lpthread -lposix4"
  1827             ;;
  1828         *-*-sysv5*)
  1829             pthread_cflags="-D_REENTRANT -Kthread"
  1830             pthread_lib=""
  1831             ;;
  1832         *-*-irix*)
  1833             pthread_cflags="-D_SGI_MP_SOURCE"
  1834             pthread_lib="-lpthread"
  1835             ;;
  1836         *-*-aix*)
  1837             pthread_cflags="-D_REENTRANT -mthreads"
  1838             pthread_lib="-lpthread"
  1839             ;;
  1840         *-*-hpux11*)
  1841             pthread_cflags="-D_REENTRANT"
  1842             pthread_lib="-L/usr/lib -lpthread"
  1843             ;;
  1844         *-*-qnx*)
  1845             pthread_cflags=""
  1846             pthread_lib=""
  1847             ;;
  1848         *-*-osf*)
  1849             pthread_cflags="-D_REENTRANT"
  1850             if test x$ac_cv_prog_gcc = xyes; then
  1851                 pthread_lib="-lpthread -lrt"
  1852             else
  1853                 pthread_lib="-lpthread -lexc -lrt"
  1854             fi
  1855             ;;
  1856         *)
  1857             pthread_cflags="-D_REENTRANT"
  1858             pthread_lib="-lpthread"
  1859             ;;
  1860     esac
  1861     if test x$enable_threads = xyes -a x$enable_pthreads = xyes; then
  1862         # Save the original compiler flags and libraries
  1863         ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
  1864         # Add the pthread compiler flags and libraries
  1865         CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
  1866         # Check to see if we have pthread support on this system
  1867         AC_MSG_CHECKING(for pthreads)
  1868         use_pthreads=no
  1869         AC_TRY_LINK([
  1870          #include <pthread.h>
  1871         ],[
  1872          pthread_attr_t type;
  1873          pthread_attr_init(&type);
  1874         ],[
  1875         use_pthreads=yes
  1876         ])
  1877         AC_MSG_RESULT($use_pthreads)
  1878         # Restore the compiler flags and libraries
  1879         CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
  1880 
  1881         # Do futher testing if we have pthread support...
  1882         if test x$use_pthreads = xyes; then
  1883             AC_DEFINE(SDL_THREAD_PTHREAD)
  1884             EXTRA_CFLAGS="$EXTRA_CFLAGS $pthread_cflags"
  1885             EXTRA_LDFLAGS="$EXTRA_LDFLAGS $pthread_lib"
  1886             SDL_CFLAGS="$SDL_CFLAGS $pthread_cflags"
  1887             SDL_LIBS="$SDL_LIBS $pthread_lib"
  1888 
  1889             # Save the original compiler flags and libraries
  1890             ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
  1891             # Add the pthread compiler flags and libraries
  1892             CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
  1893 
  1894             # Check to see if recursive mutexes are available
  1895             AC_MSG_CHECKING(for recursive mutexes)
  1896             has_recursive_mutexes=no
  1897             if test x$has_recursive_mutexes = xno; then
  1898                 AC_TRY_COMPILE([
  1899                   #include <pthread.h>
  1900                 ],[
  1901                   pthread_mutexattr_t attr;
  1902                   pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
  1903                 ],[
  1904                 has_recursive_mutexes=yes
  1905                 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX)
  1906                 ])
  1907             fi
  1908             if test x$has_recursive_mutexes = xno; then
  1909                 AC_TRY_COMPILE([
  1910                   #include <pthread.h>
  1911                 ],[
  1912                   pthread_mutexattr_t attr;
  1913                   pthread_mutexattr_setkind_np(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
  1914                 ],[
  1915                 has_recursive_mutexes=yes
  1916                 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP)
  1917                 ])
  1918             fi
  1919             AC_MSG_RESULT($has_recursive_mutexes)
  1920 
  1921             # Check to see if pthread semaphore support is missing
  1922             if test x$enable_pthread_sem = xyes; then
  1923                 AC_MSG_CHECKING(for pthread semaphores)
  1924                 have_pthread_sem=no
  1925                 AC_TRY_COMPILE([
  1926                   #include <pthread.h>
  1927                   #include <semaphore.h>
  1928                 ],[
  1929                 ],[
  1930                 have_pthread_sem=yes
  1931                 ])
  1932                 AC_MSG_RESULT($have_pthread_sem)
  1933             fi
  1934 
  1935             # Restore the compiler flags and libraries
  1936             CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
  1937 
  1938             # Basic thread creation functions
  1939             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_systhread.c"
  1940 
  1941             # Semaphores
  1942             # We can fake these with mutexes and condition variables if necessary
  1943             if test x$have_pthread_sem = xyes; then
  1944                 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syssem.c"
  1945             else
  1946                 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syssem.c"
  1947             fi
  1948 
  1949             # Mutexes
  1950             # We can fake these with semaphores if necessary
  1951             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_sysmutex.c"
  1952 
  1953             # Condition variables
  1954             # We can fake these with semaphores and mutexes if necessary
  1955             SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syscond.c"
  1956 
  1957             have_threads=yes
  1958         fi
  1959     fi
  1960 }
  1961 
  1962 dnl Determine whether the compiler can produce Win32 executables
  1963 CheckWIN32()
  1964 {
  1965     AC_MSG_CHECKING(Win32 compiler)
  1966     have_win32_gcc=no
  1967     AC_TRY_COMPILE([
  1968      #include <windows.h>
  1969     ],[
  1970     ],[
  1971     have_win32_gcc=yes
  1972     ])
  1973     AC_MSG_RESULT($have_win32_gcc)
  1974     if test x$have_win32_gcc != xyes; then
  1975        AC_MSG_ERROR([
  1976 *** Your compiler ($CC) does not produce Win32 executables!
  1977        ])
  1978     fi
  1979 
  1980     AC_MSG_CHECKING(Windows CE)
  1981     have_wince=no
  1982     AC_TRY_COMPILE([
  1983 #if !defined(_WIN32_WCE) && !defined(__MINGW32CE__)
  1984 #error This is not Windows CE
  1985 #endif
  1986     ],[
  1987     ],[
  1988     have_wince=yes
  1989     ])
  1990     AC_MSG_RESULT($have_wince)
  1991 
  1992     dnl See if the user wants to redirect standard output to files
  1993     AC_ARG_ENABLE(stdio-redirect,
  1994 AC_HELP_STRING([--enable-stdio-redirect], [Redirect STDIO to files on Win32 [[default=yes]]]),
  1995                   , enable_stdio_redirect=yes)
  1996     if test x$enable_stdio_redirect != xyes; then
  1997         EXTRA_CFLAGS="$EXTRA_CFLAGS -DNO_STDIO_REDIRECT"
  1998     fi
  1999 }
  2000 
  2001 dnl Find the DirectX includes and libraries
  2002 CheckDIRECTX()
  2003 {
  2004     AC_ARG_ENABLE(directx,
  2005 AC_HELP_STRING([--enable-directx], [use DirectX for Win32 audio/video [[default=yes]]]),
  2006                   , enable_directx=yes)
  2007     if test x$enable_directx = xyes; then
  2008         AC_CHECK_HEADER(d3d9.h, have_d3d=yes)
  2009         AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
  2010         AC_CHECK_HEADER(dsound.h, have_dsound=yes)
  2011         AC_CHECK_HEADER(dinput.h, have_dinput=yes)
  2012     fi
  2013 }
  2014 
  2015 dnl Check for the dlfcn.h interface for dynamically loading objects
  2016 CheckDLOPEN()
  2017 {
  2018     AC_ARG_ENABLE(sdl-dlopen,
  2019 AC_HELP_STRING([--enable-sdl-dlopen], [use dlopen for shared object loading [[default=yes]]]),
  2020                   , enable_sdl_dlopen=yes)
  2021     if test x$enable_sdl_dlopen = xyes; then
  2022         AC_MSG_CHECKING(for dlopen)
  2023         have_dlopen=no
  2024         AC_TRY_COMPILE([
  2025          #include <dlfcn.h>
  2026         ],[
  2027          #if defined(MAC_OS_X_VERSION_MIN_REQUIRED) && MAC_OS_X_VERSION_MIN_REQUIRED <= 1020
  2028          #error Use dlcompat for Mac OS X 10.2 compatibility
  2029          #endif
  2030         ],[
  2031         have_dlopen=yes
  2032         ])
  2033         AC_MSG_RESULT($have_dlopen)
  2034 
  2035         if test x$have_dlopen = xyes; then
  2036             AC_CHECK_LIB(c, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS",
  2037                AC_CHECK_LIB(dl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldl",
  2038                   AC_CHECK_LIB(ltdl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lltdl")))
  2039             AC_DEFINE(SDL_LOADSO_DLOPEN)
  2040             SOURCES="$SOURCES $srcdir/src/loadso/dlopen/*.c"
  2041             have_loadso=yes
  2042         fi
  2043     fi
  2044 }
  2045 
  2046 dnl Check for the usbhid(3) library on *BSD
  2047 CheckUSBHID()
  2048 {
  2049     if test x$enable_joystick = xyes; then
  2050         AC_CHECK_LIB(usbhid, hid_init, have_libusbhid=yes)
  2051         if test x$have_libusbhid = xyes; then
  2052             AC_CHECK_HEADER(usbhid.h, [USB_CFLAGS="-DHAVE_USBHID_H"])
  2053             AC_CHECK_HEADER(libusbhid.h, [USB_CFLAGS="-DHAVE_LIBUSBHID_H"])
  2054             USB_LIBS="$USB_LIBS -lusbhid"
  2055         else
  2056             AC_CHECK_HEADER(usb.h, [USB_CFLAGS="-DHAVE_USB_H"])
  2057             AC_CHECK_HEADER(libusb.h, [USB_CFLAGS="-DHAVE_LIBUSB_H"])
  2058             AC_CHECK_LIB(usb, hid_init, [USB_LIBS="$USB_LIBS -lusb"])
  2059         fi
  2060             
  2061         save_CFLAGS="$CFLAGS"
  2062         CFLAGS="$CFLAGS $USB_CFLAGS"
  2063 
  2064         AC_MSG_CHECKING(for usbhid)
  2065         have_usbhid=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           struct report_desc *repdesc;
  2087           struct usb_ctl_report *repbuf;
  2088           hid_kind_t hidkind;
  2089         ],[
  2090         have_usbhid=yes
  2091         ])
  2092         AC_MSG_RESULT($have_usbhid)
  2093 
  2094         if test x$have_usbhid = xyes; then
  2095             AC_MSG_CHECKING(for ucr_data member of usb_ctl_report)
  2096             have_usbhid_ucr_data=no
  2097             AC_TRY_COMPILE([
  2098               #include <sys/types.h>
  2099               #if defined(HAVE_USB_H)
  2100               #include <usb.h>
  2101               #endif
  2102               #ifdef __DragonFly__
  2103               # include <bus/usb/usb.h>
  2104               # include <bus/usb/usbhid.h>
  2105               #else
  2106               # include <dev/usb/usb.h>
  2107               # include <dev/usb/usbhid.h>
  2108               #endif
  2109               #if defined(HAVE_USBHID_H)
  2110               #include <usbhid.h>
  2111               #elif defined(HAVE_LIBUSB_H)
  2112               #include <libusb.h>
  2113               #elif defined(HAVE_LIBUSBHID_H)
  2114               #include <libusbhid.h>
  2115               #endif
  2116             ],[
  2117               struct usb_ctl_report buf;
  2118               if (buf.ucr_data) { }
  2119             ],[
  2120             have_usbhid_ucr_data=yes
  2121             ])
  2122             if test x$have_usbhid_ucr_data = xyes; then
  2123                 USB_CFLAGS="$USB_CFLAGS -DUSBHID_UCR_DATA"
  2124             fi
  2125             AC_MSG_RESULT($have_usbhid_ucr_data)
  2126             
  2127             AC_MSG_CHECKING(for new usbhid API)
  2128             have_usbhid_new=no
  2129             AC_TRY_COMPILE([
  2130               #include <sys/types.h>
  2131               #if defined(HAVE_USB_H)
  2132               #include <usb.h>
  2133               #endif
  2134               #ifdef __DragonFly__
  2135               #include <bus/usb/usb.h>
  2136               #include <bus/usb/usbhid.h>
  2137               #else
  2138               #include <dev/usb/usb.h>
  2139               #include <dev/usb/usbhid.h>
  2140               #endif
  2141               #if defined(HAVE_USBHID_H)
  2142               #include <usbhid.h>
  2143               #elif defined(HAVE_LIBUSB_H)
  2144               #include <libusb.h>
  2145               #elif defined(HAVE_LIBUSBHID_H)
  2146               #include <libusbhid.h>
  2147               #endif
  2148             ],[
  2149               report_desc_t d;
  2150               hid_start_parse(d, 1, 1);
  2151             ],[
  2152             have_usbhid_new=yes
  2153             ])
  2154             if test x$have_usbhid_new = xyes; then
  2155                 USB_CFLAGS="$USB_CFLAGS -DUSBHID_NEW"
  2156             fi
  2157             AC_MSG_RESULT($have_usbhid_new)
  2158 
  2159             AC_MSG_CHECKING(for struct joystick in machine/joystick.h)
  2160             have_machine_joystick=no
  2161             AC_TRY_COMPILE([
  2162               #include <machine/joystick.h>
  2163             ],[
  2164               struct joystick t;
  2165             ],[
  2166             have_machine_joystick=yes
  2167             ])
  2168             if test x$have_machine_joystick = xyes; then
  2169                 AC_DEFINE(SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H)
  2170             fi
  2171             AC_MSG_RESULT($have_machine_joystick)
  2172 
  2173             AC_DEFINE(SDL_JOYSTICK_USBHID)
  2174             SOURCES="$SOURCES $srcdir/src/joystick/bsd/*.c"
  2175             EXTRA_CFLAGS="$EXTRA_CFLAGS $USB_CFLAGS"
  2176             EXTRA_LDFLAGS="$EXTRA_LDFLAGS $USB_LIBS"
  2177             have_joystick=yes
  2178         fi
  2179         CFLAGS="$save_CFLAGS"
  2180     fi
  2181 }
  2182 
  2183 dnl Check for clock_gettime()
  2184 CheckClockGettime()
  2185 {
  2186     AC_ARG_ENABLE(clock_gettime,
  2187 AC_HELP_STRING([--enable-clock_gettime], [use clock_gettime() instead of gettimeofday() on UNIX [[default=no]]]),
  2188                   , enable_clock_gettime=no)
  2189     if test x$enable_clock_gettime = xyes; then
  2190         AC_CHECK_LIB(rt, clock_gettime, have_clock_gettime=yes)
  2191         if test x$have_clock_gettime = xyes; then
  2192             AC_DEFINE(HAVE_CLOCK_GETTIME)
  2193             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lrt"
  2194         else
  2195             AC_CHECK_LIB(c, clock_gettime, have_clock_gettime=yes)
  2196             if test x$have_clock_gettime = xyes; then
  2197                AC_DEFINE(HAVE_CLOCK_GETTIME)
  2198                EXTRA_LDFLAGS="$EXTRA_LDFLAGS"
  2199             fi
  2200         fi
  2201     fi
  2202 }
  2203 
  2204 dnl Check for a valid linux/version.h
  2205 CheckLinuxVersion()
  2206 {
  2207     AC_CHECK_HEADER(linux/version.h, have_linux_version_h=yes)
  2208     if test x$have_linux_version_h = xyes; then
  2209         EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_LINUX_VERSION_H"
  2210     fi
  2211 }
  2212 
  2213 dnl Check if we want to use RPATH
  2214 CheckRPATH()
  2215 {
  2216     AC_ARG_ENABLE(rpath,
  2217 AC_HELP_STRING([--enable-rpath], [use an rpath when linking SDL [[default=yes]]]),
  2218                   , enable_rpath=yes)
  2219 }
  2220 
  2221 dnl Set up the configuration based on the host platform!
  2222 case "$host" in
  2223     *-*-linux*|*-*-uclinux*|*-*-gnu*|*-*-k*bsd*-gnu|*-*-bsdi*|*-*-freebsd*|*-*-dragonfly*|*-*-netbsd*|*-*-openbsd*|*-*-sysv5*|*-*-solaris*|*-*-hpux*|*-*-irix*|*-*-aix*|*-*-osf*|*-*-minix*)
  2224         case "$host" in
  2225             *-*-linux*)         ARCH=linux ;;
  2226             *-*-uclinux*)       ARCH=linux ;;
  2227             *-*-kfreebsd*-gnu)  ARCH=kfreebsd-gnu ;;
  2228             *-*-knetbsd*-gnu)   ARCH=knetbsd-gnu ;;
  2229             *-*-kopenbsd*-gnu)  ARCH=kopenbsd-gnu ;;
  2230             *-*-gnu*)           ARCH=gnu ;; # must be last of the gnu variants
  2231             *-*-bsdi*)          ARCH=bsdi ;;
  2232             *-*-freebsd*)       ARCH=freebsd ;;
  2233             *-*-dragonfly*)     ARCH=freebsd ;;
  2234             *-*-netbsd*)        ARCH=netbsd ;;
  2235             *-*-openbsd*)       ARCH=openbsd ;;
  2236             *-*-sysv5*)         ARCH=sysv5 ;;
  2237             *-*-solaris*)       ARCH=solaris ;;
  2238             *-*-hpux*)          ARCH=hpux ;;
  2239             *-*-irix*)          ARCH=irix ;;
  2240             *-*-aix*)           ARCH=aix ;;
  2241             *-*-osf*)           ARCH=osf ;;
  2242             *-*-minix*)         ARCH=minix ;;
  2243         esac
  2244         CheckVisibilityHidden
  2245         CheckDummyVideo
  2246         CheckDiskAudio
  2247         CheckDummyAudio
  2248         CheckDLOPEN
  2249         CheckOSS
  2250         CheckDMEDIA
  2251         CheckMME
  2252         CheckALSA
  2253         CheckPulseAudio
  2254         CheckARTSC
  2255         CheckESD
  2256         CheckNAS
  2257         CheckX11
  2258         CheckFBCON
  2259         CheckDirectFB
  2260         CheckFusionSound
  2261         CheckPS3
  2262         CheckSVGA
  2263         CheckOpenGLX11
  2264         CheckInputEvents
  2265         CheckTslib
  2266         CheckUSBHID
  2267         CheckPTHREAD
  2268         CheckClockGettime
  2269         CheckLinuxVersion
  2270         CheckRPATH
  2271         # Set up files for the audio library
  2272         if test x$enable_audio = xyes; then
  2273           case $ARCH in
  2274             sysv5|solaris|hpux)
  2275                 AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO)
  2276                 SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
  2277                 have_audio=yes
  2278             ;;
  2279             netbsd|openbsd)
  2280                 AC_DEFINE(SDL_AUDIO_DRIVER_BSD)
  2281                 SOURCES="$SOURCES $srcdir/src/audio/bsd/*.c"
  2282                 have_audio=yes
  2283             ;;
  2284             aix)
  2285                 AC_DEFINE(SDL_AUDIO_DRIVER_PAUDIO)
  2286                 SOURCES="$SOURCES $srcdir/src/audio/paudio/*.c"
  2287                 have_audio=yes
  2288             ;;
  2289           esac
  2290         fi
  2291         # Set up files for the atomic operations library
  2292         if test x$enable_atomic = xyes; then
  2293           case $ARCH in
  2294             linux)
  2295                 AC_DEFINE(SDL_ATOMIC_LINUX)
  2296                 SOURCES="$SOURCES $srcdir/src/atomic/linux/*.c"
  2297                 have_atomic=yes
  2298             ;;
  2299           esac
  2300         fi
  2301         # Set up files for the joystick library
  2302         if test x$enable_joystick = xyes; then
  2303           case $ARCH in
  2304             linux)
  2305                 AC_DEFINE(SDL_JOYSTICK_LINUX)
  2306                 SOURCES="$SOURCES $srcdir/src/joystick/linux/*.c"
  2307                 have_joystick=yes
  2308             ;;
  2309           esac
  2310         fi
  2311         # Set up files for the haptic library
  2312         if test x$enable_haptic = xyes; then
  2313            if test x$use_input_events = xyes; then
  2314              case $ARCH in
  2315                linux)
  2316                    AC_DEFINE(SDL_HAPTIC_LINUX)
  2317                    SOURCES="$SOURCES $srcdir/src/haptic/linux/*.c"
  2318                    have_haptic=yes
  2319                ;;
  2320              esac
  2321            fi
  2322         fi
  2323         # Set up files for the power library
  2324         if test x$enable_power = xyes; then
  2325              case $ARCH in
  2326                linux)
  2327                    AC_DEFINE(SDL_POWER_LINUX)
  2328                    SOURCES="$SOURCES $srcdir/src/power/linux/*.c"
  2329                    have_power=yes
  2330                ;;
  2331              esac
  2332         fi
  2333         # Set up files for the thread library
  2334         if test x$enable_threads = xyes -a x$use_pthreads != xyes -a x$use_pth != xyes -a x$ARCH = xirix; then
  2335             AC_DEFINE(SDL_THREAD_SPROC)
  2336             SOURCES="$SOURCES $srcdir/src/thread/irix/*.c"
  2337             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_sysmutex.c"
  2338             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
  2339             have_threads=yes
  2340         fi
  2341         # Set up files for the timer library
  2342         if test x$enable_timers = xyes; then
  2343             AC_DEFINE(SDL_TIMER_UNIX)
  2344             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  2345             have_timers=yes
  2346         fi
  2347         ;;
  2348     *-*-qnx*)
  2349 
  2350         EXTRA_CFLAGS="-I/usr/include $CFLAGS"
  2351         EXTRA_LDLAGS="-L/usr/lib $LDFLAGS"
  2352 
  2353         ARCH=qnx
  2354         CheckVisibilityHidden
  2355         CheckDummyVideo
  2356         CheckDiskAudio
  2357         CheckDummyAudio
  2358         CheckDLOPEN
  2359         CheckPulseAudio
  2360         CheckESD
  2361         CheckNAS
  2362         CheckPHOTON
  2363         CheckQNXGF
  2364         CheckX11
  2365         CheckOpenGLX11
  2366         CheckPTHREAD
  2367         CheckClockGettime
  2368 
  2369 
  2370         # Set up files for the audio library
  2371         if test x$enable_audio = xyes; then
  2372             AC_DEFINE(SDL_AUDIO_DRIVER_QSA)
  2373             SOURCES="$SOURCES $srcdir/src/audio/qsa/*.c"
  2374             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lasound"
  2375             have_audio=yes
  2376         fi
  2377         # Set up files for the timer library
  2378         if test x$enable_timers = xyes; then
  2379             AC_DEFINE(SDL_TIMER_UNIX)
  2380             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  2381             have_timers=yes
  2382         fi
  2383         # Setup files for the atomic operations
  2384         if test x$enable_atomic = xyes; then
  2385                 AC_DEFINE(SDL_ATOMIC_QNX)
  2386                 SOURCES="$SOURCES $srcdir/src/atomic/qnx/*.c"
  2387                 have_atomic=yes
  2388         fi
  2389         # Set up dummy files for the joystick for now
  2390         if test x$enable_joystick = xyes; then
  2391             AC_DEFINE(SDL_JOYSTICK_DUMMY)
  2392             SOURCES="$SOURCES $srcdir/src/joystick/dummy/*.c"
  2393             have_joystick=yes
  2394         fi
  2395         # Set up dummy files for the haptic for now
  2396         if test x$enable_haptic = xyes; then
  2397             AC_DEFINE(SDL_HAPTIC_DUMMY)
  2398             SOURCES="$SOURCES $srcdir/src/haptic/dummy/*.c"
  2399             have_haptic=yes
  2400         fi
  2401         ;;
  2402     *-wince* | *-mingw32ce)
  2403         ARCH=win32
  2404         CheckDummyVideo
  2405         CheckDiskAudio
  2406         CheckDummyAudio
  2407         CheckWIN32
  2408         if test x$enable_video = xyes; then
  2409             AC_DEFINE(SDL_VIDEO_DRIVER_WIN32)
  2410             SOURCES="$SOURCES $srcdir/src/video/win32/*.c"
  2411             have_video=yes
  2412             AC_ARG_ENABLE(render-gdi,
  2413 AC_HELP_STRING([--enable-render-gdi], [enable the GDI render driver [[default=yes]]]),
  2414                                 , enable_render_gdi=yes)
  2415             if test x$enable_render_gdi = xyes; then
  2416                 AC_DEFINE(SDL_VIDEO_RENDER_GDI)
  2417             fi
  2418             AC_ARG_ENABLE(render-gapi,
  2419 AC_HELP_STRING([--enable-render-gapi], [enable the GAPI/RAWFRAMEBUFFER render driver [[default=yes]]]),
  2420                                 , enable_render_gapi=yes)
  2421             if test x$enable_render_gapi = xyes -a x$have_wince = xyes; then
  2422                 AC_DEFINE(SDL_VIDEO_RENDER_GAPI)
  2423             fi
  2424             AC_ARG_ENABLE(render-ddraw,
  2425 AC_HELP_STRING([--enable-render-ddraw], [enable the Mobile DirectDraw render driver [[default=yes]]]),
  2426                                 , enable_render_ddraw=yes)
  2427             if test x$enable_render_ddraw = xyes -a x$have_wince = xyes -a x$have_ddraw = xyes; then
  2428                 AC_DEFINE(SDL_VIDEO_RENDER_DDRAW)
  2429             fi
  2430             AC_ARG_ENABLE(render-d3d,
  2431 AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[default=yes]]]),
  2432                                 , enable_render_d3d=yes)
  2433             enable_render_d3d=no
  2434             if test x$enable_render_d3d = xyes -a x$have_d3d = xyes; then
  2435                 AC_DEFINE(SDL_VIDEO_RENDER_D3D)
  2436             fi
  2437         fi
  2438         # Set up files for the audio library
  2439         if test x$enable_audio = xyes; then
  2440             AC_DEFINE(SDL_AUDIO_DRIVER_WINWAVEOUT)
  2441             SOURCES="$SOURCES $srcdir/src/audio/windib/*.c"
  2442             if test x$have_dsound = xyes; then
  2443                 AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND)
  2444                 SOURCES="$SOURCES $srcdir/src/audio/windx5/*.c"
  2445             fi
  2446             have_audio=yes
  2447         fi
  2448         # Set up files for the atomic operations library
  2449         if test x$enable_atomic = xyes; then
  2450             AC_DEFINE(SDL_ATOMIC_WIN32)
  2451             SOURCES="$SOURCES $srcdir/src/atomic/win32/*.c"
  2452             have_atomic=yes
  2453         fi
  2454         # Set up dummy files for the joystick for now
  2455         if test x$enable_joystick = xyes; then
  2456             AC_DEFINE(SDL_JOYSTICK_DUMMY)
  2457             SOURCES="$SOURCES $srcdir/src/joystick/dummy/*.c"
  2458             have_joystick=yes
  2459         fi
  2460         # Set up files for the thread library
  2461         if test x$enable_threads = xyes; then
  2462             AC_DEFINE(SDL_THREAD_WIN32)
  2463             SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_sysmutex.c"
  2464             SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_syssem.c"
  2465             SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_systhread.c"
  2466             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
  2467             have_threads=yes
  2468         fi
  2469         # Set up files for the timer library
  2470         if test x$enable_timers = xyes; then
  2471             AC_DEFINE(SDL_TIMER_WINCE)
  2472             SOURCES="$SOURCES $srcdir/src/timer/wince/*.c"
  2473             have_timers=yes
  2474         fi
  2475         # Set up files for the shared object loading library
  2476         if test x$enable_loadso = xyes; then
  2477             AC_DEFINE(SDL_LOADSO_WIN32)
  2478             SOURCES="$SOURCES $srcdir/src/loadso/win32/*.c"
  2479             have_loadso=yes
  2480         fi
  2481         # Set up the system libraries we need
  2482         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lcoredll -lcommctrl -lmmtimer"
  2483 
  2484 	# mingw32ce library
  2485 	case "$host" in
  2486     	    *-mingw32ce)
  2487     		EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lmingwex"
  2488     		;;
  2489     	    *)
  2490         	;;
  2491 	esac
  2492 
  2493         # The Win32 platform requires special setup
  2494         SDLMAIN_SOURCES="$srcdir/src/main/win32/*.c"
  2495         EXTRA_CFLAGS="$EXTRA_CFLAGS -Dmain=SDL_main -D_WIN32_WCE=0x420"
  2496         EXTRA_LDFLAGS="-lSDLmain $EXTRA_LDFLAGS"
  2497         ;;
  2498     *-*-cygwin* | *-*-mingw32*)
  2499         ARCH=win32
  2500         if test "$build" != "$host"; then # cross-compiling
  2501             # Default cross-compile location
  2502             ac_default_prefix=/usr/local/cross-tools/$host
  2503         else
  2504             # Look for the location of the tools and install there
  2505             if test "$BUILD_PREFIX" != ""; then
  2506                 ac_default_prefix=$BUILD_PREFIX
  2507             fi
  2508         fi
  2509         CheckDummyVideo
  2510         CheckDiskAudio
  2511         CheckDummyAudio
  2512         CheckWIN32
  2513         CheckWIN32GL
  2514         CheckDIRECTX
  2515         # Set up files for the video library
  2516         if test x$enable_video = xyes; then
  2517             AC_DEFINE(SDL_VIDEO_DRIVER_WIN32)
  2518             SOURCES="$SOURCES $srcdir/src/video/win32/*.c"
  2519             have_video=yes
  2520             AC_ARG_ENABLE(render-gdi,
  2521 AC_HELP_STRING([--enable-render-gdi], [enable the GDI render driver [[default=yes]]]),
  2522                                 , enable_render_gdi=yes)
  2523             if test x$enable_render_gdi = xyes; then
  2524                 AC_DEFINE(SDL_VIDEO_RENDER_GDI)
  2525             fi
  2526             AC_ARG_ENABLE(render-d3d,
  2527 AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[default=yes]]]),
  2528                                 , enable_render_d3d=yes)
  2529             if test x$enable_render_d3d = xyes -a x$have_d3d = xyes; then
  2530                 AC_DEFINE(SDL_VIDEO_RENDER_D3D)
  2531             fi
  2532         fi
  2533         # Set up files for the audio library
  2534         if test x$enable_audio = xyes; then
  2535             AC_DEFINE(SDL_AUDIO_DRIVER_WINWAVEOUT)
  2536             SOURCES="$SOURCES $srcdir/src/audio/windib/*.c"
  2537             if test x$have_dsound = xyes; then
  2538                 AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND)
  2539                 SOURCES="$SOURCES $srcdir/src/audio/windx5/*.c"
  2540             fi
  2541             have_audio=yes
  2542         fi
  2543         # Set up files for the atomic operations library
  2544         if test x$enable_atomic = xyes; then
  2545             AC_DEFINE(SDL_ATOMIC_WIN32)
  2546             SOURCES="$SOURCES $srcdir/src/atomic/win32/*.c"
  2547             have_atomic=yes
  2548         fi
  2549         # Set up files for the joystick library
  2550         if test x$enable_joystick = xyes; then
  2551             if test x$have_dinput = xyes; then
  2552                 AC_DEFINE(SDL_JOYSTICK_DINPUT)
  2553                 SOURCES="$SOURCES $srcdir/src/joystick/win32/SDL_dxjoystick.c"
  2554                 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldinput8 -ldxguid -ldxerr8 -lole32"
  2555             else
  2556                 AC_DEFINE(SDL_JOYSTICK_WINMM)
  2557                 SOURCES="$SOURCES $srcdir/src/joystick/win32/SDL_mmjoystick.c"
  2558             fi
  2559             have_joystick=yes
  2560         fi
  2561         if test x$enable_haptic = xyes; then
  2562             if test x$have_dinput = xyes; then
  2563                 AC_DEFINE(SDL_HAPTIC_DINPUT)
  2564                 SOURCES="$SOURCES $srcdir/src/haptic/win32/SDL_syshaptic.c"
  2565                 have_haptic=yes
  2566             fi
  2567         fi
  2568         if test x$enable_power = xyes; then
  2569             AC_DEFINE(SDL_POWER_WINDOWS)
  2570             SOURCES="$SOURCES $srcdir/src/power/windows/SDL_syspower.c"
  2571             have_power=yes
  2572         fi
  2573         # Set up files for the thread library
  2574         if test x$enable_threads = xyes; then
  2575             AC_DEFINE(SDL_THREAD_WIN32)
  2576             SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_sysmutex.c"
  2577             SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_syssem.c"
  2578             SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_systhread.c"
  2579             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
  2580             have_threads=yes
  2581         fi
  2582         # Set up files for the timer library
  2583         if test x$enable_timers = xyes; then
  2584             AC_DEFINE(SDL_TIMER_WIN32)
  2585             SOURCES="$SOURCES $srcdir/src/timer/win32/*.c"
  2586             have_timers=yes
  2587         fi
  2588         # Set up files for the shared object loading library
  2589         if test x$enable_loadso = xyes; then
  2590             AC_DEFINE(SDL_LOADSO_WIN32)
  2591             SOURCES="$SOURCES $srcdir/src/loadso/win32/*.c"
  2592             have_loadso=yes
  2593         fi
  2594         # Set up the system libraries we need
  2595         # SDL 1.3 is unicode, and unicows emulates this on Windows 98/ME
  2596         # You can get this here: http://libunicows.sourceforge.net/
  2597         #EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lunicows"
  2598         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -luser32 -lgdi32 -lmsimg32 -lwinmm"
  2599         # The Win32 platform requires special setup
  2600         VERSION_SOURCES="$srcdir/src/main/win32/*.rc"
  2601         SDLMAIN_SOURCES="$srcdir/src/main/win32/*.c"
  2602         SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
  2603         SDL_LIBS="-lmingw32 -lSDLmain $SDL_LIBS -mwindows"
  2604         ;;
  2605     *-*-beos* | *-*-haiku*)
  2606         ARCH=beos
  2607         ac_default_prefix=/boot/develop/tools/gnupro
  2608         CheckDummyVideo
  2609         CheckDiskAudio
  2610         CheckDummyAudio
  2611         CheckBWINDOW
  2612         CheckBeGL
  2613         # Set up files for the audio library
  2614         if test x$enable_audio = xyes; then
  2615             AC_DEFINE(SDL_AUDIO_DRIVER_BEOSAUDIO)
  2616             SOURCES="$SOURCES $srcdir/src/audio/baudio/*.cc"
  2617             have_audio=yes
  2618         fi
  2619         # Set up files for the joystick library
  2620         if test x$enable_joystick = xyes; then
  2621             AC_DEFINE(SDL_JOYSTICK_BEOS)
  2622             SOURCES="$SOURCES $srcdir/src/joystick/beos/*.cc"
  2623             have_joystick=yes
  2624         fi
  2625         # Set up files for the thread library
  2626         if test x$enable_threads = xyes; then
  2627             AC_DEFINE(SDL_THREAD_BEOS)
  2628             SOURCES="$SOURCES $srcdir/src/thread/beos/*.c"
  2629             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_sysmutex.c"
  2630             SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
  2631             have_threads=yes
  2632         fi
  2633         # Set up files for the timer library
  2634         if test x$enable_timers = xyes; then
  2635             AC_DEFINE(SDL_TIMER_BEOS)
  2636             SOURCES="$SOURCES $srcdir/src/timer/beos/*.c"
  2637             have_timers=yes
  2638         fi
  2639         # Set up files for the shared object loading library
  2640         if test x$enable_loadso = xyes; then
  2641             AC_DEFINE(SDL_LOADSO_BEOS)
  2642             SOURCES="$SOURCES $srcdir/src/loadso/beos/*.c"
  2643             have_loadso=yes
  2644         fi
  2645         # Set up files for the system power library
  2646         if test x$enable_power = xyes; then
  2647             AC_DEFINE(SDL_POWER_BEOS)
  2648             SOURCES="$SOURCES $srcdir/src/power/beos/*.c"
  2649             have_power=yes
  2650         fi
  2651         # The BeOS platform requires special setup.
  2652         SOURCES="$srcdir/src/main/beos/*.cc $SOURCES"
  2653         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding"
  2654         ;;
  2655     *-*-darwin* )
  2656         # This could be either full "Mac OS X", or plain "Darwin" which is
  2657         # just the OS X kernel sans upper layers like Carbon and Cocoa.
  2658         # Next line is broken, and a few files below require Mac OS X (full)
  2659         ARCH=macosx
  2660 
  2661         # Mac OS X builds with both the Carbon and OSX APIs at the moment
  2662         EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_CARBON"
  2663         EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_OSX"
  2664 
  2665         # HACK: Reset EXTRA_LDFLAGS; the only thing it contains at this point
  2666         # is -lm which is not needed under Mac OS X. But for some reasons it
  2667         # also tends to contain spurious -L switches, which we don't want to
  2668         # use here or in sdl-config. Hence we reset it.
  2669         EXTRA_LDFLAGS=""
  2670 
  2671         CheckVisibilityHidden
  2672         CheckDummyVideo
  2673         CheckDiskAudio
  2674         CheckDummyAudio
  2675         CheckDLOPEN
  2676 
  2677         # Set up files for the shared object loading library
  2678         # (this needs to be done before the dynamic X11 check)
  2679         if test x$enable_loadso = xyes -a x$have_dlopen != xyes; then
  2680             AC_DEFINE(SDL_LOADSO_DLCOMPAT)
  2681             SOURCES="$SOURCES $srcdir/src/loadso/macosx/*.c"
  2682             have_loadso=yes
  2683         fi
  2684 
  2685         CheckCOCOA
  2686         CheckX11
  2687         CheckMacGL
  2688         CheckOpenGLX11
  2689         CheckPTHREAD
  2690 
  2691         # Good optimization on Mac OS X, yes...
  2692         EXTRA_CFLAGS="$EXTRA_CFLAGS -falign-loops=16"
  2693 
  2694         # Need this or things might misbuild on a G3.
  2695         EXTRA_CFLAGS="$EXTRA_CFLAGS -force_cpusubtype_ALL"
  2696 
  2697         # Set up files for the audio library
  2698         if test x$enable_audio = xyes; then
  2699             AC_DEFINE(SDL_AUDIO_DRIVER_COREAUDIO)
  2700             SOURCES="$SOURCES $srcdir/src/audio/macosx/*.c"
  2701             have_audio=yes
  2702         fi
  2703         # Set up files for the atomic operations library
  2704         if test x$enable_atomic = xyes; then
  2705             AC_DEFINE(SDL_ATOMIC_MACOSX)
  2706             SOURCES="$SOURCES $srcdir/src/atomic/macosx/*.c"
  2707             have_atomic=yes
  2708         fi
  2709         # Set up files for the joystick library
  2710         if test x$enable_joystick = xyes; then
  2711             AC_DEFINE(SDL_JOYSTICK_IOKIT)
  2712             SOURCES="$SOURCES $srcdir/src/joystick/darwin/*.c"
  2713             have_joystick=yes
  2714         fi
  2715         # Set up files for the haptic library
  2716         if test x$enable_haptic = xyes; then
  2717             AC_DEFINE(SDL_HAPTIC_IOKIT)
  2718             SOURCES="$SOURCES $srcdir/src/haptic/darwin/*.c"
  2719             have_haptic=yes
  2720             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,ForceFeedback"
  2721         fi
  2722         # Set up files for the power library
  2723         if test x$enable_power = xyes; then
  2724             AC_DEFINE(SDL_POWER_MACOSX)
  2725             SOURCES="$SOURCES $srcdir/src/power/macosx/*.c"
  2726             have_power=yes
  2727         fi
  2728         # Set up files for the timer library
  2729         if test x$enable_timers = xyes; then
  2730             AC_DEFINE(SDL_TIMER_UNIX)
  2731             SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
  2732             have_timers=yes
  2733         fi
  2734         # Set up additional files for the file library
  2735         if test x$enable_file = xyes; then
  2736             SOURCES="$SOURCES $srcdir/src/file/cocoa/*.m"
  2737         fi
  2738         # The Mac OS X platform requires special setup.
  2739         EXTRA_CFLAGS="$EXTRA_CFLAGS -fpascal-strings"
  2740         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lobjc"
  2741         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Cocoa"
  2742         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Carbon"
  2743         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,IOKit"
  2744         # If audio is used, add the AudioUnit framework
  2745         if test x$enable_audio = xyes; then
  2746             EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit"
  2747         fi
  2748         ;;
  2749     *-riscos)
  2750         ARCH=riscos
  2751         CheckOSS
  2752         CheckPTHREAD
  2753         # Set up files for the video library
  2754         if test x$enable_video = xyes; then
  2755             AC_DEFINE(SDL_VIDEO_DRIVER_RISCOS)
  2756             SOURCES="$SOURCES $srcdir/src/video/riscos/*.c"
  2757             SOURCES="$SOURCES $srcdir/src/video/riscos/*.S"
  2758             have_video=yes
  2759         fi
  2760         # Set up files for the joystick library
  2761         if test x$enable_joystick = xyes; then
  2762             AC_DEFINE(SDL_JOYSTICK_RISCOS)
  2763             SOURCES="$SOURCES $srcdir/src/joystick/riscos/*.c"
  2764             have_joystick=yes
  2765         fi
  2766         # Set up files for the timer library
  2767         if test x$enable_timers = xyes; then
  2768             AC_DEFINE(SDL_TIMER_RISCOS)
  2769             SOURCES="$SOURCES $srcdir/src/timer/riscos/*.c"
  2770             have_timers=yes
  2771         fi
  2772         # The RISC OS platform requires special setup.
  2773         EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ljpeg -ltiff -lpng -lz"
  2774         ;;
  2775     *)
  2776         AC_MSG_ERROR([
  2777 *** Unsupported host:  Please add to configure.in
  2778         ])
  2779         ;;
  2780 esac
  2781 
  2782 # Verify that we have all the platform specific files we need
  2783 
  2784 if test x$have_joystick != xyes; then
  2785     if test x$enable_joystick = xyes; then
  2786         AC_DEFINE(SDL_JOYSTICK_DISABLED)
  2787     fi
  2788     SOURCES="$SOURCES $srcdir/src/joystick/dummy/*.c"
  2789 fi
  2790 if test x$have_haptic != xyes; then
  2791     if test x$enable_haptic = xyes; then
  2792         AC_DEFINE(SDL_HAPTIC_DISABLED)
  2793     fi
  2794     SOURCES="$SOURCES $srcdir/src/haptic/dummy/*.c"
  2795 fi
  2796 if test x$have_threads != xyes; then
  2797     if test x$enable_threads = xyes; then
  2798         AC_DEFINE(SDL_THREADS_DISABLED)
  2799     fi
  2800     SOURCES="$SOURCES $srcdir/src/thread/generic/*.c"
  2801 fi
  2802 if test x$have_timers != xyes; then
  2803     if test x$enable_timers = xyes; then
  2804         AC_DEFINE(SDL_TIMERS_DISABLED)
  2805     fi
  2806     SOURCES="$SOURCES $srcdir/src/timer/dummy/*.c"
  2807 fi
  2808 if test x$have_loadso != xyes; then
  2809     if test x$enable_loadso = xyes; then
  2810         AC_DEFINE(SDL_LOADSO_DISABLED)
  2811     fi
  2812     SOURCES="$SOURCES $srcdir/src/loadso/dummy/*.c"
  2813 fi
  2814 if test x$SDLMAIN_SOURCES = x; then
  2815     SDLMAIN_SOURCES="$srcdir/src/main/dummy/*.c"
  2816 fi
  2817 
  2818 OBJECTS=`echo $SOURCES`
  2819 DEPENDS=`echo $SOURCES`
  2820 for EXT in asm cc m c S; do
  2821     OBJECTS=`echo "$OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.'$EXT',$(objects)/\1.lo,g'`
  2822     DEPENDS=`echo "$DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.$EXT,\\\\
  2823 \\$(objects)/\\2.lo: \\1/\\2.$EXT\\\\
  2824 	\\$(LIBTOOL) --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
  2825 done
  2826 
  2827 VERSION_OBJECTS=`echo $VERSION_SOURCES`
  2828 VERSION_DEPENDS=`echo $VERSION_SOURCES`
  2829 VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'`
  2830 VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.rc,\\\\
  2831 \\$(objects)/\\2.o: \\1/\\2.rc\\\\
  2832 	\\$(WINDRES) \\$< \\$@,g"`
  2833 
  2834 SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
  2835 SDLMAIN_DEPENDS=`echo $SDLMAIN_SOURCES`
  2836 SDLMAIN_OBJECTS=`echo "$SDLMAIN_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.o,g'`
  2837 SDLMAIN_DEPENDS=`echo "$SDLMAIN_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\
  2838 \\$(objects)/\\2.o: \\1/\\2.c\\\\
  2839 	\\$(LIBTOOL) --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
  2840 
  2841 # Set runtime shared library paths as needed
  2842 
  2843 if test "x$enable_rpath" = "xyes"; then
  2844   if test $ARCH = bsdi -o $ARCH = freebsd -o $ARCH = irix -o $ARCH = linux -o $ARCH = netbsd; then
  2845     SDL_RLD_FLAGS="-Wl,-rpath,\${libdir}"
  2846   fi
  2847   if test $ARCH = solaris; then
  2848     SDL_RLD_FLAGS="-R\${libdir}"
  2849   fi
  2850 else
  2851   SDL_RLD_FLAGS=""
  2852 fi
  2853 
  2854 case "$ARCH" in
  2855   macosx)
  2856     # Evil hack to allow static linking on Mac OS X
  2857     SDL_STATIC_LIBS="\${libdir}/libSDL.a $EXTRA_LDFLAGS"
  2858     ;;
  2859   *)
  2860     SDL_STATIC_LIBS="$SDL_LIBS $EXTRA_LDFLAGS"
  2861     ;;
  2862 esac
  2863 
  2864 dnl Expand the cflags and libraries needed by apps using SDL
  2865 AC_SUBST(SDL_CFLAGS)
  2866 AC_SUBST(SDL_LIBS)
  2867 AC_SUBST(SDL_STATIC_LIBS)
  2868 AC_SUBST(SDL_RLD_FLAGS)
  2869 if test x$enable_shared = xyes; then
  2870     ENABLE_SHARED_TRUE=
  2871     ENABLE_SHARED_FALSE="#"
  2872 else
  2873     ENABLE_SHARED_TRUE="#"
  2874     ENABLE_SHARED_FALSE=
  2875 fi
  2876 if test x$enable_static = xyes; then
  2877     ENABLE_STATIC_TRUE=
  2878     ENABLE_STATIC_FALSE="#"
  2879 else
  2880     ENABLE_STATIC_TRUE="#"
  2881     ENABLE_STATIC_FALSE=
  2882 fi
  2883 AC_SUBST(ENABLE_SHARED_TRUE)
  2884 AC_SUBST(ENABLE_SHARED_FALSE)
  2885 AC_SUBST(ENABLE_STATIC_TRUE)
  2886 AC_SUBST(ENABLE_STATIC_FALSE)
  2887 
  2888 dnl Expand the sources and objects needed to build the library
  2889 AC_SUBST(ac_aux_dir)
  2890 AC_SUBST(INCLUDE)
  2891 AC_SUBST(OBJECTS)
  2892 AC_SUBST(DEPENDS)
  2893 AC_SUBST(VERSION_OBJECTS)
  2894 AC_SUBST(VERSION_DEPENDS)
  2895 AC_SUBST(SDLMAIN_OBJECTS)
  2896 AC_SUBST(SDLMAIN_DEPENDS)
  2897 AC_SUBST(BUILD_CFLAGS)
  2898 AC_SUBST(EXTRA_CFLAGS)
  2899 AC_SUBST(BUILD_LDFLAGS)
  2900 AC_SUBST(EXTRA_LDFLAGS)
  2901 AC_SUBST(WINDRES)
  2902 
  2903 AC_OUTPUT([
  2904     Makefile sdl-config SDL.spec sdl.pc
  2905 ])