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