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