configure.in
author Ryan C. Gordon <icculus@icculus.org>
Sat, 05 Nov 2005 19:53:37 +0000
changeset 1168 045f186426e1
parent 1162 2651158f59b8
child 1170 bb1a52a8d3d6
permissions -rw-r--r--
Dynamically load X11 libraries like we currently do for alsa, esd, etc. This allows you to run an SDL program on a system without Xlib, since it'll just report the x11 target unavailable at runtime.

dnl Process this file with autoconf to produce a configure script.
AC_INIT(README)

dnl Set various version strings - taken gratefully from the GTk sources
#
# Making releases:
# Edit include/SDL/SDL_version.h and change the version, then:
#   SDL_MICRO_VERSION += 1;
#   SDL_INTERFACE_AGE += 1;
#   SDL_BINARY_AGE += 1;
# if any functions have been added, set SDL_INTERFACE_AGE to 0.
# if backwards compatibility has been broken,
# set SDL_BINARY_AGE and SDL_INTERFACE_AGE to 0.
#
SDL_MAJOR_VERSION=1
SDL_MINOR_VERSION=2
SDL_MICRO_VERSION=9
SDL_INTERFACE_AGE=2
SDL_BINARY_AGE=9
SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION

AC_SUBST(SDL_MAJOR_VERSION)
AC_SUBST(SDL_MINOR_VERSION)
AC_SUBST(SDL_MICRO_VERSION)
AC_SUBST(SDL_INTERFACE_AGE)
AC_SUBST(SDL_BINARY_AGE)
AC_SUBST(SDL_VERSION)

# libtool versioning
LT_RELEASE=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION
LT_CURRENT=`expr $SDL_MICRO_VERSION - $SDL_INTERFACE_AGE`
LT_REVISION=$SDL_INTERFACE_AGE
LT_AGE=`expr $SDL_BINARY_AGE - $SDL_INTERFACE_AGE`

AC_SUBST(LT_RELEASE)
AC_SUBST(LT_CURRENT)
AC_SUBST(LT_REVISION)
AC_SUBST(LT_AGE)

dnl Detect the canonical host and target build environment
AC_CANONICAL_SYSTEM

dnl Setup for automake
AM_INIT_AUTOMAKE(SDL, $SDL_VERSION)

dnl Check for tools

AC_LIBTOOL_WIN32_DLL
AM_PROG_LIBTOOL
AC_PROG_MAKE_SET
AC_PROG_CC
AC_C_INLINE
AC_C_CONST
AC_PROG_CXX
AC_PROG_INSTALL
AC_FUNC_ALLOCA
ASFLAGS=""
AC_SUBST(ASFLAGS)
CCAS="$CC"
AC_SUBST(CCAS)
CCASFLAGS=""
AC_SUBST(CCASFLAGS)
AM_CONDITIONAL([am__fastdepOBJC], false)

dnl The alpha architecture needs special flags for binary portability
case "$target" in
    alpha*-*-linux*)
        if test x$ac_cv_prog_gcc = xyes; then
            CFLAGS="$CFLAGS -mcpu=ev4 -Wa,-mall"
        fi
        ;;
esac

dnl Add compiler-specific optimization flags

dnl See if the user wants aggressive optimizations of the code
AC_ARG_ENABLE(debug,
[  --enable-debug          Disable aggressive optimizations [default=yes]],
              , enable_debug=yes)
if test x$enable_debug != xyes; then
    if test x$ac_cv_prog_gcc = xyes; then
        CFLAGS="$CFLAGS -fexpensive-optimizations"
        # Ack! This breaks the MMX YV12 conversion on gcc 2.95.2
        # CFLAGS="$CFLAGS -fomit-frame-pointer"
    fi
    case "$target" in
        i486-*-*)
            if test x$ac_cv_prog_gcc = xyes; then
                CFLAGS="$CFLAGS -march=i486"
            fi
            ;;
        i?86-*-*)
            if test x$ac_cv_prog_gcc = xyes; then
                CFLAGS="$CFLAGS -march=pentium -mcpu=pentiumpro"
            fi
            ;;
        *-*-osf*)
            if test x$ac_cv_prog_gcc != xyes; then
                CFLAGS="-g3 -fast -arch host"
            fi
            ;;
    esac
fi

dnl Add verbose warnings by default, and allow ANSI compliance checking
AC_ARG_ENABLE(strict-ansi,
[  --enable-strict-ansi    Enable strict ANSI compliance build [default=no]],
              , enable_strict_ansi=no)
if test x$ac_cv_prog_gcc = xyes; then
    CFLAGS="$CFLAGS -Wall"
    if test x$enable_strict_ansi = xyes; then
        CFLAGS="$CFLAGS -ansi -pedantic -D_XOPEN_SOURCE"
    fi
fi

dnl Initialize the compiler and linker flags for SDL applications

SDL_CFLAGS=""
SDL_LIBS="-lSDL"

dnl Add the math library for the new gamma correction support

case "$target" in
    *-*-cygwin* | *-*-mingw32*)
        MATHLIB=""
        ;;
    *-*-beos*)
        MATHLIB=""
        ;;
    *-*-darwin*)
        MATHLIB=""
        ;;
    *)
        MATHLIB="-lm"
        ;;
esac
SYSTEM_LIBS="$SYSTEM_LIBS $MATHLIB"

dnl Enable/disable various subsystems of the SDL library

AC_ARG_ENABLE(audio,
[  --enable-audio          Enable the audio subsystem [default=yes]],
              , enable_audio=yes)
if test x$enable_audio = xyes; then
    SDL_EXTRADIRS="$SDL_EXTRADIRS audio"
    SDL_EXTRALIBS="$SDL_EXTRALIBS audio/libaudio.la"
else
    CFLAGS="$CFLAGS -DDISABLE_AUDIO"
fi
AC_ARG_ENABLE(video,
[  --enable-video          Enable the video subsystem [default=yes]],
              , enable_video=yes)
if test x$enable_video = xyes; then
    SDL_EXTRADIRS="$SDL_EXTRADIRS video"
    SDL_EXTRALIBS="$SDL_EXTRALIBS video/libvideo.la"
else
    CFLAGS="$CFLAGS -DDISABLE_VIDEO"
fi
AC_ARG_ENABLE(events,
[  --enable-events         Enable the events subsystem [default=yes]],
              , enable_events=yes)
if test x$enable_video = xyes -a x$enable_events = xyes; then
    SDL_EXTRADIRS="$SDL_EXTRADIRS events"
    SDL_EXTRALIBS="$SDL_EXTRALIBS events/libevents.la"
else
    CFLAGS="$CFLAGS -DDISABLE_EVENTS"
fi
AC_ARG_ENABLE(joystick,
[  --enable-joystick       Enable the joystick subsystem [default=yes]],
              , enable_joystick=yes)
if test x$enable_joystick = xyes; then
    SDL_EXTRADIRS="$SDL_EXTRADIRS joystick"
    SDL_EXTRALIBS="$SDL_EXTRALIBS joystick/libjoystick.la"
else
    CFLAGS="$CFLAGS -DDISABLE_JOYSTICK"
fi
AC_ARG_ENABLE(cdrom,
[  --enable-cdrom          Enable the cdrom subsystem [default=yes]],
              , enable_cdrom=yes)
if test x$enable_cdrom = xyes; then
    SDL_EXTRADIRS="$SDL_EXTRADIRS cdrom"
    SDL_EXTRALIBS="$SDL_EXTRALIBS cdrom/libcdrom.la"
else
    CFLAGS="$CFLAGS -DDISABLE_CDROM"
fi
AC_ARG_ENABLE(threads,
[  --enable-threads        Enable the threading subsystem [default=yes]],
              , enable_threads=yes)
SDL_EXTRADIRS="$SDL_EXTRADIRS thread"
SDL_EXTRALIBS="$SDL_EXTRALIBS thread/libthread.la"
if test x$enable_threads != xyes; then
    CFLAGS="$CFLAGS -DDISABLE_THREADS"
    COPY_ARCH_SRC(src/thread, generic, SDL_systhread.c)
    COPY_ARCH_SRC(src/thread, generic, SDL_systhread_c.h)
    COPY_ARCH_SRC(src/thread, generic, SDL_sysmutex.c)
    COPY_ARCH_SRC(src/thread, generic, SDL_sysmutex_c.h)
    COPY_ARCH_SRC(src/thread, generic, SDL_syssem.c)
    COPY_ARCH_SRC(src/thread, generic, SDL_syssem_c.h)
    COPY_ARCH_SRC(src/thread, generic, SDL_syscond.c)
    COPY_ARCH_SRC(src/thread, generic, SDL_syscond_c.h)
fi
AC_ARG_ENABLE(timers,
[  --enable-timers         Enable the timer subsystem [default=yes]],
              , enable_timers=yes)
if test x$enable_timers = xyes; then
    SDL_EXTRADIRS="$SDL_EXTRADIRS timer"
    SDL_EXTRALIBS="$SDL_EXTRALIBS timer/libtimer.la"
else
    CFLAGS="$CFLAGS -DDISABLE_TIMERS"
fi
AC_ARG_ENABLE(endian,
[  --enable-endian         Enable the endian subsystem [default=yes]],
              , enable_endian=yes)
if test x$enable_endian = xyes; then
    SDL_EXTRADIRS="$SDL_EXTRADIRS endian"
    SDL_EXTRALIBS="$SDL_EXTRALIBS endian/libendian.la"
else
    CFLAGS="$CFLAGS -DDISABLE_ENDIAN"
fi
AC_ARG_ENABLE(file,
[  --enable-file           Enable the file subsystem [default=yes]],
              , enable_file=yes)
if test x$enable_file = xyes; then
    SDL_EXTRADIRS="$SDL_EXTRADIRS file"
    SDL_EXTRALIBS="$SDL_EXTRALIBS file/libfile.la"
else
    CFLAGS="$CFLAGS -DDISABLE_FILE"
fi
AC_ARG_ENABLE(cpuinfo,
[  --enable-cpuinfo        Enable the cpuinfo subsystem [default=yes]],
              , enable_cpuinfo=yes)
if test x$enable_cpuinfo = xyes; then
    SDL_EXTRADIRS="$SDL_EXTRADIRS cpuinfo"
    SDL_EXTRALIBS="$SDL_EXTRALIBS cpuinfo/libcpuinfo.la"
else
    CFLAGS="$CFLAGS -DDISABLE_CPUINFO"
fi

dnl See if the OSS audio interface is supported
CheckOSS()
{
    AC_ARG_ENABLE(oss,
[  --enable-oss            support the OSS audio API [default=yes]],
                  , enable_oss=yes)
    if test x$enable_audio = xyes -a x$enable_oss = xyes; then
        AC_MSG_CHECKING(for OSS audio support)
        have_oss=no
        if test x$have_oss != xyes; then
            AC_TRY_COMPILE([
              #include <sys/soundcard.h>
            ],[
              int arg = SNDCTL_DSP_SETFRAGMENT;
            ],[
            have_oss=yes
            ])
        fi
        if test x$have_oss != xyes; then
            AC_TRY_COMPILE([
              #include <soundcard.h>
            ],[
              int arg = SNDCTL_DSP_SETFRAGMENT;
            ],[
            have_oss=yes
            CFLAGS="$CFLAGS -DOSS_USE_SOUNDCARD_H"
            ])
        fi
        AC_MSG_RESULT($have_oss)
        if test x$have_oss = xyes; then
            CFLAGS="$CFLAGS -DOSS_SUPPORT"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS dsp"
            AUDIO_DRIVERS="$AUDIO_DRIVERS dsp/libaudio_dsp.la"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS dma"
            AUDIO_DRIVERS="$AUDIO_DRIVERS dma/libaudio_dma.la"
        fi
    fi
}

dnl See if the ALSA audio interface is supported
CheckALSA()
{
    AC_ARG_ENABLE(alsa,
[  --enable-alsa           support the ALSA audio API [default=yes]],
                  , enable_alsa=yes)
    if test x$enable_audio = xyes -a x$enable_alsa = xyes; then
        AM_PATH_ALSA(0.9.0, have_alsa=yes, have_alsa=no)
        # Restore all flags from before the ALSA detection runs
        CFLAGS="$alsa_save_CFLAGS"
        LDFLAGS="$alsa_save_LDFLAGS"
        LIBS="$alsa_save_LIBS"
        if test x$have_alsa = xyes; then
            AC_ARG_ENABLE(alsa-shared,
[  --enable-alsa-shared     dynamically load ALSA audio support [default=yes]],
                          , enable_alsa_shared=yes)
            if test "x`echo $ALSA_LIBS | grep -- -L`" = "x"; then
                if test "x`ls /lib/libasound.so.* 2> /dev/null`" != "x"; then
                    ALSA_LIBS="-L/lib $ALSA_LIBS"
                elif test "x`ls /usr/lib/libasound.so.* 2> /dev/null`" != "x"; then
                    ALSA_LIBS="-L/usr/lib $ALSA_LIBS"
                elif test "x`ls /usr/local/lib/libasound.so.* 2> /dev/null`" != "x"; then
                    ALSA_LIBS="-L/usr/local/lib $ALSA_LIBS"
                fi
            fi
            alsa_lib_spec=`echo $ALSA_LIBS | sed 's/.*-L\([[^ ]]*\).*/\1\/libasound.so.*/'`
            alsa_lib=`ls $alsa_lib_spec | sed 's/.*\/\(.*\)/\1/; q'`
            echo "-- $alsa_lib_spec -> $alsa_lib"

            if test x$use_dlopen != xyes && \
               test x$enable_alsa_shared = xyes; then
                AC_MSG_ERROR([You must have dlopen() support and use the --enable-dlopen option])
            fi
            if test x$use_dlopen = xyes && \
               test x$enable_alsa_shared = xyes && test x$alsa_lib != x; then
                CFLAGS="$CFLAGS -DALSA_SUPPORT -DALSA_DYNAMIC=\$(alsa_lib) $ALSA_CFLAGS"
                AC_SUBST(alsa_lib)

                use_dlvsym=no
                AC_CHECK_LIB(dl, dlvsym, [use_dlvsym=yes])
                if test x$use_dlvsym = xyes; then
                    CFLAGS="$CFLAGS -DUSE_DLVSYM"
                fi
            else
                CFLAGS="$CFLAGS -DALSA_SUPPORT $ALSA_CFLAGS"
                SYSTEM_LIBS="$SYSTEM_LIBS $ALSA_LIBS"
            fi
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS alsa"
            AUDIO_DRIVERS="$AUDIO_DRIVERS alsa/libaudio_alsa.la"
        fi
    fi
}

dnl Check whether we want to use IRIX 6.5+ native audio or not
CheckDMEDIA()
{
    if test x$enable_audio = xyes; then
        AC_MSG_CHECKING(for dmedia audio support)
        have_dmedia=no
        AC_TRY_COMPILE([
          #include <dmedia/audio.h>
        ],[
          ALport audio_port;
        ],[
        have_dmedia=yes
        ])
        AC_MSG_RESULT($have_dmedia)
        # Set up files for the audio library
        if test x$have_dmedia = xyes; then
            CFLAGS="$CFLAGS -DDMEDIA_SUPPORT"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS dmedia"
            AUDIO_DRIVERS="$AUDIO_DRIVERS dmedia/libaudio_dmedia.la"
            SYSTEM_LIBS="$SYSTEM_LIBS -laudio"
        fi
    fi
}

dnl Find the ESD includes and libraries
CheckESD()
{
    AC_ARG_ENABLE(esd,
[  --enable-esd            support the Enlightened Sound Daemon [default=yes]],
                  , enable_esd=yes)
    if test x$enable_audio = xyes -a x$enable_esd = xyes; then
        AM_PATH_ESD(0.2.8, have_esd=yes, have_esd=no)
        if test x$have_esd = xyes; then
            AC_ARG_ENABLE(esd-shared,
[  --enable-esd-shared     dynamically load ESD audio support [default=yes]],
                          , enable_esd_shared=yes)
            esd_lib_spec=`echo $ESD_LIBS | sed 's/.*-L\([[^ ]]*\).*/\1\/libesd.so.*/'`
            esd_lib=`ls $esd_lib_spec | sed 's/.*\/\(.*\)/\1/; q'`
            echo "-- $esd_lib_spec -> $esd_lib"
            if test x$use_dlopen != xyes && \
               test x$enable_esd_shared = xyes; then
                AC_MSG_ERROR([You must have dlopen() support and use the --enable-dlopen option])
            fi
            if test x$use_dlopen = xyes && \
               test x$enable_esd_shared = xyes && test x$esd_lib != x; then
                CFLAGS="$CFLAGS -DESD_SUPPORT -DESD_DYNAMIC=\$(esd_lib) $ESD_CFLAGS"
                AC_SUBST(esd_lib)
            else
                CFLAGS="$CFLAGS -DESD_SUPPORT $ESD_CFLAGS"
                SYSTEM_LIBS="$SYSTEM_LIBS $ESD_LIBS"
            fi
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS esd"
            AUDIO_DRIVERS="$AUDIO_DRIVERS esd/libaudio_esd.la"
        fi
    fi
}

CheckARTSC()
{
    AC_ARG_ENABLE(arts,
[  --enable-arts           support the Analog Real Time Synthesizer [default=yes]],
                  , enable_arts=yes)
    if test x$enable_audio = xyes -a x$enable_arts = xyes; then
        AC_PATH_PROG(ARTSCCONFIG, artsc-config)
        if test x$ARTSCCONFIG = x -o x$ARTSCCONFIG = x'"$ARTSCCONFIG"'; then
            : # arts isn't installed
        else
            ARTSC_CFLAGS=`$ARTSCCONFIG --cflags`
            ARTSC_LIBS=`$ARTSCCONFIG --libs`
            ARTSC_PREFIX=`$ARTSCCONFIG --arts-prefix`
            AC_MSG_CHECKING(for aRts development environment)
            audio_arts=no
            save_CFLAGS="$CFLAGS"
            CFLAGS="$CFLAGS $ARTSC_CFLAGS"
            AC_TRY_COMPILE([
             #include <artsc.h>
            ],[
             arts_stream_t stream;
            ],[
            audio_arts=yes
            ])
            CFLAGS="$save_CFLAGS"
            AC_MSG_RESULT($audio_arts)
            if test x$audio_arts = xyes; then
                AC_ARG_ENABLE(arts-shared,
[  --enable-arts-shared    dynamically load aRts audio support [default=yes]],
                              , enable_arts_shared=yes)
                arts_lib_spec="$ARTSC_PREFIX/lib/libartsc.so.*"
                arts_lib=`ls $arts_lib_spec | sed 's/.*\/\(.*\)/\1/; q'`
                echo "-- $arts_lib_spec -> $arts_lib"
                if test x$use_dlopen != xyes && \
                   test x$enable_arts_shared = xyes; then
                    AC_MSG_ERROR([You must have dlopen() support and use the --enable-dlopen option])
                fi
                if test x$use_dlopen = xyes && \
                   test x$enable_arts_shared = xyes && test x$arts_lib != x; then
                    CFLAGS="$CFLAGS -DARTSC_SUPPORT -DARTSC_DYNAMIC=\$(arts_lib) $ARTSC_CFLAGS"
                    AC_SUBST(arts_lib)
                else
                    CFLAGS="$CFLAGS -DARTSC_SUPPORT $ARTSC_CFLAGS"
                    SYSTEM_LIBS="$SYSTEM_LIBS $ARTSC_LIBS"
                fi
                AUDIO_SUBDIRS="$AUDIO_SUBDIRS arts"
                AUDIO_DRIVERS="$AUDIO_DRIVERS arts/libaudio_arts.la"
            fi
        fi
    fi
}

dnl See if the NAS audio interface is supported
CheckNAS()
{
    AC_ARG_ENABLE(nas,
[  --enable-nas            support the NAS audio API [default=yes]],
                  , enable_nas=yes)
    if test x$enable_audio = xyes -a x$enable_nas = xyes; then
        AC_MSG_CHECKING(for NAS audio support)
        have_nas=no
        if test -r /usr/X11R6/include/audio/audiolib.h; then
            have_nas=yes
            CFLAGS="$CFLAGS -DNAS_SUPPORT -I/usr/X11R6/include/"
            SYSTEM_LIBS="$SYSTEM_LIBS -laudio -lXt"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS nas"
            AUDIO_DRIVERS="$AUDIO_DRIVERS nas/libaudio_nas.la"

        dnl On IRIX, the NAS includes are in a different directory,
        dnl and libnas must be explicitly linked in

        elif test -r /usr/freeware/include/nas/audiolib.h; then
            have_nas=yes
            CFLAGS="$CFLAGS -DNAS_SUPPORT"
            SYSTEM_LIBS="$SYSTEM_LIBS -lnas -lXt"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS nas"
            AUDIO_DRIVERS="$AUDIO_DRIVERS nas/libaudio_nas.la"
        fi
        AC_MSG_RESULT($have_nas)
    fi
}

dnl rcg07142001 See if the user wants the disk writer audio driver...
CheckDiskAudio()
{
    AC_ARG_ENABLE(diskaudio,
[  --enable-diskaudio      support the disk writer audio driver [default=yes]],
                  , enable_diskaudio=yes)
    if test x$enable_audio = xyes -a x$enable_diskaudio = xyes; then
        CFLAGS="$CFLAGS -DDISKAUD_SUPPORT"
        AUDIO_SUBDIRS="$AUDIO_SUBDIRS disk"
        AUDIO_DRIVERS="$AUDIO_DRIVERS disk/libaudio_disk.la"
    fi
}

dnl Set up the Atari Audio driver
CheckAtariAudio()
{
    AC_ARG_ENABLE(mintaudio,
[  --enable-mintaudio      support Atari audio driver [default=yes]],
                  , enable_mintaudio=yes)
    if test x$enable_audio = xyes -a x$enable_mintaudio = xyes; then
        mintaudio=no
        AC_CHECK_HEADER(mint/falcon.h, have_mint_falcon_hdr=yes)
        if test x$have_mint_falcon_hdr = xyes; then
            mintaudio=yes
            CFLAGS="$CFLAGS -DMINTAUDIO_SUPPORT"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS mint"
            AUDIO_DRIVERS="$AUDIO_DRIVERS mint/libaudio_mintaudio.la"
        fi
    fi
}

dnl See if we can use x86 assembly blitters
# NASM is available from: http://nasm.octium.net/
CheckNASM()
{
    dnl Make sure we are running on an x86 platform
    case $target in
        i?86*)
            ;;
        *)
        # Nope, bail early.
            return
            ;;
    esac
    dnl Check for NASM (for assembly blit routines)
    AC_ARG_ENABLE(nasm,
[  --enable-nasm           use nasm assembly blitters on x86 [default=yes]],
                  , enable_nasm=yes)
    if test x$enable_video = xyes -a x$enable_nasm = xyes; then
        AC_PATH_PROG(NASM, nasm)
        if test x$NASM = x -o x$NASM = x'"$NASM"'; then
            : # nasm isn't installed
        else
            CFLAGS="$CFLAGS -DUSE_ASMBLIT -I$srcdir/hermes"
            case $ARCH in
              win32)
                  NASMFLAGS="-f win32"
                  ;;
              openbsd)
                  NASMFLAGS="-f aoutb"
                  ;;
              *)
                  NASMFLAGS="-f elf"
                  ;;
            esac
            AC_SUBST(NASMFLAGS)
            CFLAGS="$CFLAGS -I\$(top_srcdir)/src/hermes"
            SDL_EXTRADIRS="$SDL_EXTRADIRS hermes"
            SDL_EXTRALIBS="$SDL_EXTRALIBS hermes/libhermes.la"
            use_nasm=yes
            
            case "$target" in
                # this line is needed for QNX, because it's not defined the __ELF__
                *-*-qnx*) CFLAGS="$CFLAGS -D__ELF__"
                          ;;

            esac

        fi
    fi
}

dnl Do the iPod thing
CheckIPod()
{
    AC_ARG_ENABLE(ipod,
[  --enable-ipod          configure SDL to work with iPodLinux [default=yes on arm-elf]],
	, enable_ipod=yes)

    if test x$enable_ipod = xyes; then
	CFLAGS="$CFLAGS -DENABLE_IPOD -DIPOD"
	VIDEO_SUBDIRS="$VIDEO_SUBDIRS ipod"
	VIDEO_DRIVERS="$VIDEO_DRIVERS ipod/libvideo_ipod.la"
    fi
}	

dnl Find the nanox include and library directories
CheckNANOX()
{
    AC_ARG_ENABLE(video-nanox,
        [  --enable-video-nanox use nanox video driver [default=no]],
        , enable_video_nanox=no)
    AC_ARG_ENABLE(nanox-debug,  
        [  --enable-nanox-debug print debug messages [default=no]],
        , enable_nanox_debug=no)
    AC_ARG_ENABLE(nanox-share-memory,  
        [  --enable-nanox-share-memory use share memory [default=no]],
        , enable_nanox_share_memory=no)
    AC_ARG_ENABLE(nanox_direct_fb, 
        [  --enable-nanox-direct-fb use direct framebuffer access [default=no]],
        , enable_nanox_direct_fb=no)

    if test x$enable_video = xyes -a x$enable_video_nanox = xyes; then
        if test x$enable_nanox_debug = xyes; then
            CFLAGS="$CFLAGS -DENABLE_NANOX_DEBUG"
        fi

        if test x$enable_nanox_share_memory = xyes; then
            CFLAGS="$CFLAGS -DNANOX_SHARE_MEMORY"
        fi

        if test x$enable_nanox_direct_fb = xyes; then
            CFLAGS="$CFLAGS -DENABLE_NANOX_DIRECT_FB"
        fi

        CFLAGS="$CFLAGS $X_CFLAGS -DENABLE_NANOX"
        SYSTEM_LIBS="$SYSTEM_LIBS -lnano-X"
        VIDEO_SUBDIRS="$VIDEO_SUBDIRS nanox"
        VIDEO_DRIVERS="$VIDEO_DRIVERS nanox/libvideo_nanox.la"
    fi
}

dnl Find the X11 include and library directories
CheckX11()
{
    AC_ARG_ENABLE(video-x11,
[  --enable-video-x11      use X11 video driver [default=yes]],
                  , enable_video_x11=yes)
    if test x$enable_video = xyes -a x$enable_video_x11 = xyes; then
        AC_PATH_X
        AC_PATH_XTRA
        if test x$have_x = xyes; then
            AC_ARG_ENABLE(x11-shared,
[  --enable-x11-shared     dynamically load X11 support [default=yes]],
                          , enable_x11_shared=yes)

            dnl !!! FIXME: make this work?
            dnl x11_lib_spec=`echo $X11_LIBS | sed 's/.*-L\([[^ ]]*\).*/\1\/libX11.so.*/'`
            dnl x11_lib=`ls $x11_lib_spec | sed 's/.*\/\(.*\)/\1/; q'`
            dnl echo "-- $x11_lib_spec -> $x11_lib"
            dnl x11ext_lib_spec=`echo $X11EXT_LIBS | sed 's/.*-L\([[^ ]]*\).*/\1\/libXext.so.*/'`
            dnl x11ext_lib=`ls $x11ext_lib_spec | sed 's/.*\/\(.*\)/\1/; q'`
            dnl echo "-- $x11ext_lib_spec -> $x11ext_lib"

            x11_lib_spec='/usr/X11R6/lib/libX11.so.*'
            x11_lib='libX11.so.6'
            echo "-- $x11_lib_spec -> $x11_lib"
            x11ext_lib_spec='/usr/X11R6/lib/libXext.so.*'
            x11_lib='libXext.so.6'
            echo "-- $x11ext_lib_spec -> $x11_lib"

            if test x$use_dlopen != xyes && \
               test x$enable_x11_shared = xyes; then
                AC_MSG_ERROR([You must have dlopen() support and use the --enable-dlopen option])
            fi

            if test x$use_dlopen = xyes && \
               test x$enable_x11_shared = xyes && test x$x11_lib != x; then
                CFLAGS="$CFLAGS $X_CFLAGS -DENABLE_X11 -DXTHREADS -DX11_DYNAMIC=\$(x11_lib) -DX11EXT_DYNAMIC=\$(x11ext_lib) -I$srcdir/include -I$srcdir/src/video"
                SYSTEM_LIBS="$SYSTEM_LIBS $X_LIBS"
                AC_SUBST(x11_lib)
                AC_SUBST(x11ext_lib)
            else
                CFLAGS="$CFLAGS $X_CFLAGS -DENABLE_X11 -DXTHREADS -I$srcdir/include -I$srcdir/src/video"
                SYSTEM_LIBS="$SYSTEM_LIBS $X_LIBS -lX11 -lXext"
            fi

            if test x$ac_cv_func_shmat != xyes; then
                CFLAGS="$CFLAGS -DNO_SHARED_MEMORY"
            fi

            VIDEO_SUBDIRS="$VIDEO_SUBDIRS x11"
            VIDEO_DRIVERS="$VIDEO_DRIVERS x11/libvideo_x11.la"

            AC_ARG_ENABLE(video-x11-vm,
[  --enable-video-x11-vm   use X11 VM extension for fullscreen [default=yes]],
                          , enable_video_x11_vm=yes)
            if test x$enable_video_x11_vm = xyes; then
                AC_MSG_CHECKING(for XFree86 VidMode 1.0 support)
                video_x11_vm=no
                AC_TRY_COMPILE([
                 #include <X11/Xlib.h>
                 #include <XFree86/extensions/xf86vmode.h>
                ],[
                ],[
                video_x11_vm=yes
                ])
                AC_MSG_RESULT($video_x11_vm)
                if test x$video_x11_vm = xyes; then
                    CFLAGS="$CFLAGS -DXFREE86_VM"
                    VIDEO_SUBDIRS="$VIDEO_SUBDIRS XFree86/Xxf86vm"
                    VIDEO_DRIVERS="$VIDEO_DRIVERS XFree86/Xxf86vm/libXFree86_Xxf86vm.la"
                    AC_MSG_CHECKING(for XFree86 VidMode gamma support)
                    video_x11_vmgamma=no
                    AC_TRY_COMPILE([
                     #include <X11/Xlib.h>
                     #include <XFree86/extensions/xf86vmode.h>
                    ],[
                     SDL_NAME(XF86VidModeGamma) gamma;
                    ],[
                    video_x11_vmgamma=yes
                    ])
                    AC_MSG_RESULT($video_x11_vmgamma)
                    if test x$video_x11_vmgamma = xyes; then
                        CFLAGS="$CFLAGS -DXFREE86_VMGAMMA"
                    fi
                fi
            fi
            AC_ARG_ENABLE(dga,
[  --enable-dga            allow use of X11 DGA code [default=yes]],
                          , enable_dga=yes)
            AC_ARG_ENABLE(video-x11-dgamouse,
[  --enable-video-x11-dgamouse  use X11 DGA for mouse events [default=yes]],
                          , enable_video_x11_dgamouse=yes)
            if test x$enable_dga = xyes; then
                AC_MSG_CHECKING(for XFree86 DGA 1.0 support)
                video_x11_dga=no
                AC_TRY_COMPILE([
                 #include <X11/Xlib.h>
                 #include <XFree86/extensions/xf86dga.h>
                ],[
                ],[
                video_x11_dga=yes
                ])
                AC_MSG_RESULT($video_x11_dga)
                if test x$video_x11_dga = xyes; then
                    CFLAGS="$CFLAGS -DXFREE86_DGAMOUSE"
                    if test x$enable_video_x11_dgamouse = xyes; then
                        CFLAGS="$CFLAGS -DDEFAULT_DGAMOUSE"
                    fi
                    VIDEO_SUBDIRS="$VIDEO_SUBDIRS XFree86/Xxf86dga"
                    VIDEO_DRIVERS="$VIDEO_DRIVERS XFree86/Xxf86dga/libXFree86_Xxf86dga.la"
                fi
            fi
            AC_ARG_ENABLE(video-x11-xv,
[  --enable-video-x11-xv   use X11 XvImage extension for video [default=yes]],
                          , enable_video_x11_xv=yes)
            if test x$enable_video_x11_xv = xyes; then
                AC_MSG_CHECKING(for XFree86 XvImage support)
                video_x11_xv=no
                AC_TRY_COMPILE([
                 #include <X11/Xlib.h>
                 #include <sys/ipc.h>
                 #include <sys/shm.h>
                 #include <X11/extensions/XShm.h>
                 #include <XFree86/extensions/Xvlib.h>
                ],[
                 SDL_NAME(XvImage) *image;
                ],[
                video_x11_xv=yes
                ])
                AC_MSG_RESULT($video_x11_xv)
                if test x$video_x11_xv = xyes; then
                    CFLAGS="$CFLAGS -DXFREE86_XV"
                    VIDEO_SUBDIRS="$VIDEO_SUBDIRS XFree86/Xv"
                    VIDEO_DRIVERS="$VIDEO_DRIVERS XFree86/Xv/libXFree86_Xv.la"
                fi
            fi
            AC_ARG_ENABLE(video-x11-xinerama,
[  --enable-video-x11-xinerama   enable X11 Xinerama support [default=yes]],
                            , enable_video_x11_xinerama=yes)
            if test x$enable_video_x11_xinerama = xyes; then
                AC_MSG_CHECKING(for X11 Xinerama support)
                video_x11_xinerama=no
                AC_TRY_COMPILE([
                 #include <X11/Xlib.h>
                 #include <XFree86/extensions/Xinerama.h>
                ],[
                 SDL_NAME(XineramaScreenInfo) *xinerama;
                ],[
                video_x11_xinerama=yes
                ])
                AC_MSG_RESULT($video_x11_xinerama)
                if test x$video_x11_xinerama = xyes; then
                    CFLAGS="$CFLAGS -DHAVE_XINERAMA"
                    VIDEO_SUBDIRS="$VIDEO_SUBDIRS XFree86/Xinerama"
                    VIDEO_DRIVERS="$VIDEO_DRIVERS XFree86/Xinerama/libXFree86_Xinerama.la"
                fi
            fi
            AC_ARG_ENABLE(video-x11-xme,
[  --enable-video-x11-xme  enable Xi Graphics XME for fullscreen [default=yes]],
                            , enable_video_x11_xme=yes)
            if test x$enable_video_x11_xme = xyes; then
                AC_MSG_CHECKING(for Xi Graphics XiGMiscExtension support)
                video_x11_xme=no
                AC_TRY_COMPILE([
                 #include <X11/Xlib.h>
                 #include <X11/extensions/xme.h>
                ],[
                 XiGMiscResolutionInfo *resolutions;
                ],[
                video_x11_xme=yes
                ])
                AC_MSG_RESULT($video_x11_xme)
                if test x$video_x11_xme = xyes; then
                    CFLAGS="$CFLAGS -DHAVE_XIGXME"
                    SYSTEM_LIBS="$SYSTEM_LIBS -lxme"
                fi
            fi
        fi
    fi
}


dnl Check for X11 on Mac OS X / Darwin
CheckMacX11()
{
    AC_ARG_ENABLE(video-x11,
[  --enable-video-x11      use X11 video driver [default=no]],
                  , enable_video_x11=no)
    if test x$enable_video = xyes -a x$enable_video_x11 = xyes; then
        AC_PATH_X
        AC_PATH_XTRA
        if test x$have_x = xyes; then
            CFLAGS="$CFLAGS $X_CFLAGS -DENABLE_X11 -DXTHREADS -I$srcdir/include -I$srcdir/src/video"
            if test x$ac_cv_func_shmat != xyes; then
                CFLAGS="$CFLAGS -DNO_SHARED_MEMORY"
            fi
            SYSTEM_LIBS="$SYSTEM_LIBS $X_LIBS -lX11 -lXext"
            VIDEO_SUBDIRS="$VIDEO_SUBDIRS x11"
            VIDEO_DRIVERS="$VIDEO_DRIVERS x11/libvideo_x11.la"
        fi
    fi
}

dnl Find the X11 DGA 2.0 include and library directories
CheckDGA()
{
    AC_ARG_ENABLE(video-dga,
[  --enable-video-dga      use DGA 2.0 video driver [default=yes]],
                  , enable_video_dga=yes)
    if test x$video_x11_dga = xyes -a x$enable_video_dga = xyes; then
        save_CFLAGS="$CFLAGS"; CFLAGS="$CFLAGS -Isrc/video"
        AC_MSG_CHECKING(for XFree86 DGA 2.0 support)
        video_x11_dga2=no
        AC_TRY_COMPILE([
         #include <X11/Xlib.h>
         #include <XFree86/extensions/xf86dga.h>
        ],[
         SDL_NAME(XDGAEvent) xevent;
        ],[
        video_x11_dga2=yes
        ])
        AC_MSG_RESULT($video_x11_dga2)
        if test x$video_x11_dga2 = xyes; then
            CFLAGS="$CFLAGS -DENABLE_DGA"
            VIDEO_SUBDIRS="$VIDEO_SUBDIRS dga"
            VIDEO_DRIVERS="$VIDEO_DRIVERS dga/libvideo_dga.la"
        fi
    fi
}

CheckPHOTON()
{
    AC_ARG_ENABLE(video-photon,
[  --enable-video-photon   use QNX Photon video driver [default=yes]],
                  , enable_video_photon=yes)
    if test x$enable_video = xyes -a x$enable_video_photon = xyes; then
        AC_MSG_CHECKING(for QNX Photon support)
        video_photon=no
        AC_TRY_COMPILE([
          #include <Ph.h>
          #include <Pt.h>
          #include <photon/Pg.h>
          #include <photon/PdDirect.h>
        ],[
         PgDisplaySettings_t *visual;
        ],[
        video_photon=yes
        ])
        AC_MSG_RESULT($video_photon)
        if test x$video_photon = xyes; then
            CFLAGS="$CFLAGS -DENABLE_PHOTON"
            SYSTEM_LIBS="$SYSTEM_LIBS -lph"
            VIDEO_SUBDIRS="$VIDEO_SUBDIRS photon"
            VIDEO_DRIVERS="$VIDEO_DRIVERS photon/libvideo_photon.la"
            CheckOpenGLQNX
        fi
    fi
}

dnl Find the framebuffer console includes
CheckFBCON()
{
    AC_ARG_ENABLE(video-fbcon,
[  --enable-video-fbcon    use framebuffer console video driver [default=yes]],
                  , enable_video_fbcon=yes)
    if test x$enable_video = xyes -a x$enable_video_fbcon = xyes; then
        AC_MSG_CHECKING(for framebuffer console support)
        video_fbcon=no
        AC_TRY_COMPILE([
         #include <linux/fb.h>
         #include <linux/kd.h>
         #include <linux/keyboard.h>
        ],[
        ],[
        video_fbcon=yes
        ])
        AC_MSG_RESULT($video_fbcon)
        if test x$video_fbcon = xyes; then
            CFLAGS="$CFLAGS -DENABLE_FBCON"
            VIDEO_SUBDIRS="$VIDEO_SUBDIRS fbcon"
            VIDEO_DRIVERS="$VIDEO_DRIVERS fbcon/libvideo_fbcon.la"
        fi
    fi
}

dnl Find DirectFB
CheckDirectFB()
{
    AC_ARG_ENABLE(video-directfb,
[  --enable-video-directfb use DirectFB video driver [default=no]],
                  , enable_video_directfb=no)
    if test x$enable_video = xyes -a x$enable_video_directfb = xyes; then
        video_directfb=no

        AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
        if test x$PKG_CONFIG = xno ; then
            AC_MSG_WARN([*** pkg-config is required to build the DirectFB video driver.])
        else
            AC_MSG_CHECKING(for DirectFB support)

            if ! $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then
                AC_MSG_ERROR([*** pkg-config too old; version 0.7 or better required.])
            fi

            DIRECTFB_REQUIRED_VERSION=0.9.15

            if $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb ; then
                DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags directfb`
                DIRECTFB_LIBS=`$PKG_CONFIG --libs directfb`
                video_directfb=yes
            fi
        fi

        AC_MSG_RESULT($video_directfb)
        if test x$video_directfb = xyes; then
            CFLAGS="$CFLAGS -DENABLE_DIRECTFB"
            VIDEO_SUBDIRS="$VIDEO_SUBDIRS directfb"
            VIDEO_DRIVERS="$VIDEO_DRIVERS directfb/libvideo_directfb.la"

            AC_SUBST(DIRECTFB_CFLAGS)
            AC_SUBST(DIRECTFB_LIBS)
        fi
    fi
}

dnl See if we're running on PlayStation 2 hardware
CheckPS2GS()
{
    AC_ARG_ENABLE(video-ps2gs,
[  --enable-video-ps2gs    use PlayStation 2 GS video driver [default=yes]],
                  , enable_video_ps2gs=yes)
    if test x$enable_video = xyes -a x$enable_video_ps2gs = xyes; then
        AC_MSG_CHECKING(for PlayStation 2 GS support)
        video_ps2gs=no
        AC_TRY_COMPILE([
         #include <linux/ps2/dev.h>
         #include <linux/ps2/gs.h>
        ],[
        ],[
        video_ps2gs=yes
        ])
        AC_MSG_RESULT($video_ps2gs)
        if test x$video_ps2gs = xyes; then
            CFLAGS="$CFLAGS -DENABLE_PS2GS"
            VIDEO_SUBDIRS="$VIDEO_SUBDIRS ps2gs"
            VIDEO_DRIVERS="$VIDEO_DRIVERS ps2gs/libvideo_ps2gs.la"
        fi
    fi
}

dnl Find the GGI includes
CheckGGI()
{
    AC_ARG_ENABLE(video-ggi,
[  --enable-video-ggi      use GGI video driver [default=no]],
                  , enable_video_ggi=no)
    if test x$enable_video = xyes -a x$enable_video_ggi = xyes; then
        AC_MSG_CHECKING(for GGI support)
        video_ggi=no
        AC_TRY_COMPILE([
         #include <ggi/ggi.h>
         #include <ggi/gii.h>
        ],[
        ],[
        video_ggi=yes
        ])
        AC_MSG_RESULT($video_ggi)
        if test x$video_ggi = xyes; then
            CFLAGS="$CFLAGS $X_CFLAGS -DENABLE_GGI"
            SYSTEM_LIBS="$SYSTEM_LIBS -lggi -lgii -lgg"

            VIDEO_SUBDIRS="$VIDEO_SUBDIRS ggi"
            VIDEO_DRIVERS="$VIDEO_DRIVERS ggi/libvideo_ggi.la"
        fi
    fi
}

dnl Find the SVGAlib includes and libraries
CheckSVGA()
{
    AC_ARG_ENABLE(video-svga,
[  --enable-video-svga     use SVGAlib video driver [default=no]],
                  , enable_video_svga=no)
    if test x$enable_video = xyes -a x$enable_video_svga = xyes; then
        AC_MSG_CHECKING(for SVGAlib (1.4.0+) support)
        video_svga=no
        AC_TRY_COMPILE([
         #include <vga.h>
         #include <vgamouse.h>
         #include <vgakeyboard.h>
        ],[
         if ( SCANCODE_RIGHTWIN && SCANCODE_LEFTWIN ) {
             exit(0);
         }
        ],[
        video_svga=yes
        ])
        AC_MSG_RESULT($video_svga)
        if test x$video_svga = xyes; then
            CFLAGS="$CFLAGS -DENABLE_SVGALIB"
            SYSTEM_LIBS="$SYSTEM_LIBS -lvga"

            VIDEO_SUBDIRS="$VIDEO_SUBDIRS svga"
            VIDEO_DRIVERS="$VIDEO_DRIVERS svga/libvideo_svga.la"
        fi
    fi
}

dnl Find the VGL includes and libraries
CheckVGL()
{
    AC_ARG_ENABLE(video-vgl,
[  --enable-video-vgl      use VGL video driver [default=no]],
                  , enable_video_vgl=no)
    if test x$enable_video = xyes -a x$enable_video_vgl = xyes; then
        AC_MSG_CHECKING(for libVGL support)
        video_vgl=no
        AC_TRY_COMPILE([
         #include <sys/fbio.h>
         #include <sys/consio.h>
         #include <sys/kbio.h>
         #include <vgl.h>
        ],[
         VGLBitmap bitmap;
         exit(bitmap.Bitmap);
        ],[
        video_vgl=yes
        ])
        AC_MSG_RESULT($video_vgl)
        if test x$video_vgl = xyes; then
            CFLAGS="$CFLAGS -DENABLE_VGL"
            SYSTEM_LIBS="$SYSTEM_LIBS -lvgl"

            VIDEO_SUBDIRS="$VIDEO_SUBDIRS vgl"
            VIDEO_DRIVERS="$VIDEO_DRIVERS vgl/libvideo_vgl.la"
        fi
    fi
}

dnl Find the AAlib includes
CheckAAlib()
{
    AC_ARG_ENABLE(video-aalib,
[  --enable-video-aalib    use AAlib video driver [default=no]],
                  , enable_video_aalib=no)
    if test x$enable_video = xyes -a x$enable_video_aalib = xyes; then
        AC_MSG_CHECKING(for AAlib support)
        video_aalib=no
        AC_TRY_COMPILE([
         #include <aalib.h>
        ],[
        ],[
        video_aalib=yes
        ])
        AC_MSG_RESULT($video_aalib)
        if test x$video_aalib = xyes; then
            CFLAGS="$CFLAGS -DENABLE_AALIB"
            SYSTEM_LIBS="$SYSTEM_LIBS -laa"

            VIDEO_SUBDIRS="$VIDEO_SUBDIRS aalib"
            VIDEO_DRIVERS="$VIDEO_DRIVERS aalib/libvideo_aa.la"
        fi
    fi
}

dnl Set up the Atari Xbios driver
CheckAtariXbiosVideo()
{
    AC_ARG_ENABLE(xbios,
[  --enable-video-xbios    use Atari Xbios video driver [default=yes]],
                  , enable_video_xbios=yes)
    video_xbios=no
    if test x$enable_video = xyes -a x$enable_video_xbios = xyes; then
        video_xbios=yes
        CFLAGS="$CFLAGS -DENABLE_XBIOS"
        VIDEO_SUBDIRS="$VIDEO_SUBDIRS xbios"
        VIDEO_DRIVERS="$VIDEO_DRIVERS xbios/libvideo_xbios.la"
    fi
}

dnl Set up the Atari Gem driver
CheckAtariGemVideo()
{
    AC_ARG_ENABLE(gem,
[  --enable-video-gem      use Atari Gem video driver [default=yes]],
                  , enable_video_gem=yes)
    if test x$enable_video = xyes -a x$enable_video_gem = xyes; then
        video_gem=no
        AC_CHECK_HEADER(gem.h, have_gem_hdr=yes)
        AC_CHECK_LIB(gem, appl_init, have_gem_lib=yes)
        if test x$have_gem_hdr = xyes -a x$have_gem_lib = xyes; then
            video_gem=yes
            CFLAGS="$CFLAGS -DENABLE_GEM"
            SYSTEM_LIBS="$SYSTEM_LIBS -lgem"
            VIDEO_SUBDIRS="$VIDEO_SUBDIRS gem"
            VIDEO_DRIVERS="$VIDEO_DRIVERS gem/libvideo_gem.la"
        fi
    fi
}

dnl Set up the Atari Bios keyboard driver
CheckAtariBiosEvent()
{
    CFLAGS="$CFLAGS -I\$(top_srcdir)/src/video/ataricommon"
    VIDEO_SUBDIRS="$VIDEO_SUBDIRS ataricommon"
    VIDEO_DRIVERS="$VIDEO_DRIVERS ataricommon/libvideo_ataricommon.la"
}

dnl rcg04172001 Set up the Null video driver.
CheckDummyVideo()
{
    AC_ARG_ENABLE(video-dummy,
[  --enable-video-dummy    use dummy video driver [default=yes]],
                  , enable_video_dummy=yes)
    if test x$enable_video_dummy = xyes; then
      CFLAGS="$CFLAGS -DENABLE_DUMMYVIDEO"
      VIDEO_SUBDIRS="$VIDEO_SUBDIRS dummy"
      VIDEO_DRIVERS="$VIDEO_DRIVERS dummy/libvideo_null.la"
    fi
}

dnl Check to see if OpenGL support is desired
AC_ARG_ENABLE(video-opengl,
[  --enable-video-opengl   include OpenGL context creation [default=yes]],
              , enable_video_opengl=yes)

dnl Find OpenGL
CheckOpenGL()
{
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
        AC_MSG_CHECKING(for OpenGL (GLX) support)
        video_opengl=no
        AC_TRY_COMPILE([
         #include <GL/gl.h>
         #include <GL/glx.h>
         #include <dlfcn.h> /* For loading extensions */
        ],[
        ],[
        video_opengl=yes
        ])
        AC_MSG_RESULT($video_opengl)
        if test x$video_opengl = xyes; then
            CFLAGS="$CFLAGS -DHAVE_OPENGL"
            if test x$use_dlopen != xyes; then
                AC_CHECK_LIB(dl, dlopen, SYSTEM_LIBS="$SYSTEM_LIBS -ldl")
            fi
        fi
    fi
}

dnl Find QNX RtP OpenGL
CheckOpenGLQNX()
{
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
        AC_MSG_CHECKING(for OpenGL (Photon) support)
        video_opengl=no
        AC_TRY_COMPILE([
         #include <GL/gl.h>
        ],[
        ],[
        video_opengl=yes
        ])
        AC_MSG_RESULT($video_opengl)
        if test x$video_opengl = xyes; then
            CFLAGS="$CFLAGS -DHAVE_OPENGL"
            SYSTEM_LIBS="$SYSTEM_LIBS -lGL"
            if test x$use_dlopen != xyes; then
                AC_CHECK_LIB(c, dlopen, SYSTEM_LIBS="$SYSTEM_LIBS", AC_CHECK_LIB(ltdl, dlopen, SYSTEM_LIBS="$SYSTEM_LIBS -lltdl"))
            fi
        fi
    fi
}

dnl Check for BeOS OpenGL
CheckBeGL()
{
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
        CFLAGS="$CFLAGS -DHAVE_OPENGL"
        SYSTEM_LIBS="$SYSTEM_LIBS -lGL"
    fi
}

dnl Check for MacOS OpenGL
CheckMacGL()
{
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
        CFLAGS="$CFLAGS -DHAVE_OPENGL"
        case "$target" in
            *-*-darwin*)
                SYSTEM_LIBS="$SYSTEM_LIBS -framework OpenGL"
                # The following is probably not available in Darwin:
                SYSTEM_LIBS="$SYSTEM_LIBS -framework AGL"
        esac
    fi
}

dnl Check for Mesa offscreen rendering
CheckAtariOSMesa()
{
    if test "x$enable_video" = "xyes" -a "x$enable_video_opengl" = "xyes"; then
        AC_CHECK_HEADER(GL/osmesa.h, have_osmesa_hdr=yes)
        AC_CHECK_LIB(OSMesa, OSMesaCreateContext, have_osmesa_lib=yes, have_osmesa_lib=no, -lm)

        # Static linking to -lOSMesa
        AC_PATH_PROG(OSMESA_CONFIG, osmesa-config, no)
        if test "x$OSMESA_CONFIG" = "xno" -o "x$enable_atari_ldg" = "xno"; then
            # -lOSMesa is really the static library
            if test "x$have_osmesa_hdr" = "xyes" -a "x$have_osmesa_lib" = "xyes"; then
    	        CFLAGS="$CFLAGS -DHAVE_OPENGL"
		    	SYSTEM_LIBS="$SYSTEM_LIBS -lOSMesa"
            fi
        else
            # -lOSMesa is a loader for OSMesa.ldg
            OSMESA_CFLAGS=`$OSMESA_CONFIG --cflags`
            OSMESA_LIBS=`$OSMESA_CONFIG --libs`
            CFLAGS="$CFLAGS -DHAVE_OPENGL $OSMESA_CFLAGS"
            SYSTEM_LIBS="$SYSTEM_LIBS $OSMESA_LIBS"
        fi

        AC_ARG_ENABLE(osmesa-shared,
[  --enable-osmesa-shared  dynamically load OSMesa OpenGL support [default=yes]],
                              , enable_osmesa_shared=yes)
        if test "x$enable_osmesa_shared" = "xyes" -a "x$enable_atari_ldg" = "xyes"; then
            # Dynamic linking
            if test "x$have_osmesa_hdr" = "xyes"; then
                CFLAGS="$CFLAGS -DENABLE_OSMESA_SHARED"
            fi
		fi
    fi
}

dnl See if we can use the new unified event interface in Linux 2.4
CheckInputEvents()
{
    dnl Check for Linux 2.4 unified input event interface support
    AC_ARG_ENABLE(input-events,
[  --enable-input-events   use Linux 2.4 unified input interface [default=yes]],
                  , enable_input_events=yes)
    if test x$enable_input_events = xyes; then
        AC_MSG_CHECKING(for Linux 2.4 unified input interface)
        use_input_events=no
        AC_TRY_COMPILE([
          #include <linux/input.h>
        ],[
          #ifndef EVIOCGNAME
          #error EVIOCGNAME() ioctl not available
          #endif
        ],[
        use_input_events=yes
        ])
        AC_MSG_RESULT($use_input_events)
        if test x$use_input_events = xyes; then
            CFLAGS="$CFLAGS -DUSE_INPUT_EVENTS"
        fi
    fi
}

dnl See if we can use GNU pth library for threads
CheckPTH()
{
    dnl Check for pth support
    AC_ARG_ENABLE(pth,
[  --enable-pth            use GNU pth library for multi-threading [default=yes]],
                  , enable_pth=yes)
    if test x$enable_threads = xyes -a x$enable_pth = xyes; then
        AC_PATH_PROG(PTH_CONFIG, pth-config, no)
        if test "$PTH_CONFIG" = "no"; then
            use_pth=no
        else
            PTH_CFLAGS=`$PTH_CONFIG --cflags`
            PTH_LIBS=`$PTH_CONFIG --libs --all`
            SDL_CFLAGS="$SDL_CFLAGS $PTH_CFLAGS"
            SDL_LIBS="$SDL_LIBS $PTH_LIBS"
            CFLAGS="$CFLAGS -DENABLE_PTH"
            use_pth=yes
        fi
        AC_MSG_CHECKING(pth)
        if test "x$use_pth" = xyes; then
            AC_MSG_RESULT(yes)
        else
            AC_MSG_RESULT(no)
        fi
    fi
}

dnl See what type of thread model to use on Linux and Solaris
CheckPTHREAD()
{
    dnl Check for pthread support
    AC_ARG_ENABLE(pthreads,
[  --enable-pthreads       use POSIX threads for multi-threading [default=yes]],
                  , enable_pthreads=yes)
    dnl This is used on Linux for glibc binary compatibility (Doh!)
    AC_ARG_ENABLE(pthread-sem,
[  --enable-pthread-sem    use pthread semaphores [default=yes]],
                  , enable_pthread_sem=yes)
    case "$target" in
        *-*-bsdi*)
            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
            pthread_lib=""
            ;;
        *-*-darwin*)
            pthread_cflags="-D_THREAD_SAFE"
# causes Carbon.p complaints?
#            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
            ;;
        *-*-freebsd*)
            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
            pthread_lib="-pthread"
            ;;
        *-*-netbsd*)
            pthread_cflags="-I/usr/pkg/include -D_REENTRANT"
            pthread_lib="-L/usr/pkg/lib -lpthread -lsem"
            ;;
        *-*-openbsd*)
            pthread_cflags="-D_REENTRANT"
            pthread_lib="-pthread"
            ;;
        *-*-solaris*)
            pthread_cflags="-D_REENTRANT"
            pthread_lib="-lpthread -lposix4"
            ;;
        *-*-sysv5*)
            pthread_cflags="-D_REENTRANT -Kthread"
            pthread_lib=""
            ;;
        *-*-irix*)
            pthread_cflags="-D_SGI_MP_SOURCE"
            pthread_lib="-lpthread"
            ;;
        *-*-aix*)
            pthread_cflags="-D_REENTRANT -mthreads"
            pthread_lib="-lpthread"
            ;;
        *-*-hpux11*)
            pthread_cflags="-D_REENTRANT"
            pthread_lib="-L/usr/lib -lpthread"
            ;;
        *-*-qnx*)
            pthread_cflags=""
            pthread_lib=""
            ;;
        *-*-osf*)
            pthread_cflags="-D_REENTRANT"
            if test x$ac_cv_prog_gcc = xyes; then
                pthread_lib="-lpthread -lrt"
            else
                pthread_lib="-lpthread -lexc -lrt"
            fi
            ;;
        *)
            pthread_cflags="-D_REENTRANT"
            pthread_lib="-lpthread"
            ;;
    esac
    if test x$enable_threads = xyes -a x$enable_pthreads = xyes -a x$enable_ipod != xyes; then
        # Save the original compiler flags and libraries
        ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
        # Add the pthread compiler flags and libraries
        CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
        # Check to see if we have pthread support on this system
        AC_MSG_CHECKING(for pthreads)
        use_pthreads=no
        AC_TRY_LINK([
         #include <pthread.h>
        ],[
         pthread_attr_t type;
         pthread_attr_init(&type);
        ],[
        use_pthreads=yes
        ])
        AC_MSG_RESULT($use_pthreads)
        # Restore the compiler flags and libraries
        CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
        # Do futher testing if we have pthread support...
        if test x$use_pthreads = xyes; then
            CFLAGS="$CFLAGS $pthread_cflags -DSDL_USE_PTHREADS"
            LIBS="$LIBS $pthread_lib"
            SDL_CFLAGS="$SDL_CFLAGS $pthread_cflags"
            SDL_LIBS="$SDL_LIBS $pthread_lib"

            # Check to see if recursive mutexes are available
            AC_MSG_CHECKING(for recursive mutexes)
            has_recursive_mutexes=no
            AC_TRY_LINK([
              #include <pthread.h>
            ],[
              pthread_mutexattr_t attr;
              #if defined(linux) && !(defined(__arm__) && defined(QWS))
              pthread_mutexattr_setkind_np(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
              #else
              pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
              #endif
            ],[
            has_recursive_mutexes=yes
            ])
            # Some systems have broken recursive mutex implementations
            case "$target" in
                *-*-darwin*)
                    has_recursive_mutexes=no
                    ;;
                *-*-solaris*)
                    has_recursive_mutexes=no
                    ;;
            esac
            AC_MSG_RESULT($has_recursive_mutexes)
            if test x$has_recursive_mutexes != xyes; then
                CFLAGS="$CFLAGS -DPTHREAD_NO_RECURSIVE_MUTEX"
            fi

            # Check to see if pthread semaphore support is missing
            if test x$enable_pthread_sem = xyes; then
                AC_MSG_CHECKING(for pthread semaphores)
                have_pthread_sem=no
                AC_TRY_COMPILE([
                  #include <pthread.h>
                  #include <semaphore.h>
                ],[
                ],[
                have_pthread_sem=yes
                ])
                AC_MSG_RESULT($have_pthread_sem)
            fi

            # Check to see if this is broken glibc 2.0 pthreads
            case "$target" in
                *-*-linux*)
                    AC_MSG_CHECKING(for broken glibc 2.0 pthreads)
                    glibc20_pthreads=no
                    AC_TRY_COMPILE([
                      #include <features.h>
                      #if (__GLIBC__ == 2) && (__GLIBC_MINOR__ == 0)
                      #warning Working around a bug in glibc 2.0 pthreads
                      #else
                      #error pthread implementation okay
                      #endif /* glibc 2.0 */
                    ],[
                    ],[
                    glibc20_pthreads=yes
                    ])
                    AC_MSG_RESULT($glibc20_pthreads)
            esac
        fi
    fi

    AC_MSG_CHECKING(whether semun is defined in /usr/include/sys/sem.h)
    have_semun=no
    AC_TRY_COMPILE([
      #include <sys/types.h>
      #include <sys/sem.h>
    ],[
      union semun t;
    ],[
    have_semun=yes
    ])
    AC_MSG_RESULT($have_semun)
    if test x$have_semun = xyes; then
        CFLAGS="$CFLAGS -DHAVE_SEMUN"
    fi

    # See if we can use GNU Pth or clone() on Linux directly
    if test x$enable_threads = xyes -a x$use_pthreads != xyes; then
        CheckPTH
        if test x$use_pth != xyes; then
            case "$target" in
                *-*-linux*)
                    use_clone=yes
                    ;;
            esac
        fi
    fi
}

# Note that we need to have either semaphores or to have mutexes and
# condition variables to implement all thread synchronization primitives
CopyUnixThreadSource()
{
    if test x$use_pthreads = xyes -o x$use_clone = xyes; then
        # Basic thread creation functions
        COPY_ARCH_SRC(src/thread, linux, SDL_systhread.c)
        COPY_ARCH_SRC(src/thread, linux, SDL_systhread_c.h)

        # Semaphores
        # We can fake these with mutexes and condition variables if necessary
        if test x$use_pthreads = xyes -a x$have_pthread_sem != xyes; then
            COPY_ARCH_SRC(src/thread, generic, SDL_syssem.c)
        else
            COPY_ARCH_SRC(src/thread, linux, SDL_syssem.c)
        fi
        COPY_ARCH_SRC(src/thread, generic, SDL_syssem_c.h)

        # Mutexes
        # We can fake these with semaphores if necessary
        case "$target" in
            *-*-bsdi*)
                COPY_ARCH_SRC(src/thread, bsdi, SDL_syssem.c)
                COPY_ARCH_SRC(src/thread, generic, SDL_syssem_c.h)
                COPY_ARCH_SRC(src/thread, linux, SDL_sysmutex.c)
                COPY_ARCH_SRC(src/thread, linux, SDL_sysmutex_c.h)
                ;;
            *)
                if test x$glibc20_pthreads = xyes; then
                    COPY_ARCH_SRC(src/thread, generic, SDL_sysmutex.c)
                    COPY_ARCH_SRC(src/thread, generic, SDL_sysmutex_c.h)
                else
                    COPY_ARCH_SRC(src/thread, linux, SDL_sysmutex.c)
                    COPY_ARCH_SRC(src/thread, linux, SDL_sysmutex_c.h)
                fi
                ;;
        esac

        # Condition variables
        # We can fake these with semaphores and mutexes if necessary
        if test x$glibc20_pthreads = xyes -o x$has_recursive_mutexes != xyes; then
            COPY_ARCH_SRC(src/thread, generic, SDL_syscond.c)
        else
            COPY_ARCH_SRC(src/thread, linux, SDL_syscond.c)
        fi
        COPY_ARCH_SRC(src/thread, generic, SDL_syscond_c.h)

    elif test x$use_pth = xyes; then
        COPY_ARCH_SRC(src/thread, pth, SDL_systhread.c)
        COPY_ARCH_SRC(src/thread, pth, SDL_systhread_c.h)
        COPY_ARCH_SRC(src/thread, pth, SDL_sysmutex.c)
        COPY_ARCH_SRC(src/thread, pth, SDL_sysmutex_c.h)
        COPY_ARCH_SRC(src/thread, pth, SDL_syscond.c)
        COPY_ARCH_SRC(src/thread, pth, SDL_syscond_c.h)
        COPY_ARCH_SRC(src/thread, generic, SDL_syssem.c)
        COPY_ARCH_SRC(src/thread, generic, SDL_syssem_c.h)
    else
       AC_MSG_ERROR([
*** No thread support detected
       ])
    fi
}

dnl See if we can use sigaction() instead of signal()
CheckSIGACTION()
{
    dnl Check for sigaction support
    AC_ARG_ENABLE(sigaction,
[  --enable-sigaction      use sigaction instead of signal [default=yes]],
                  , enable_sigaction=yes)
    if test x$enable_sigaction = xyes; then
        AC_MSG_CHECKING(sigaction)
        have_sigaction=no
        AC_TRY_COMPILE([
         #include <signal.h>
        ],[
         struct sigaction junk;
         sigaction(0, &junk, &junk);
        ],[
        have_sigaction=yes
        ])
        AC_MSG_RESULT($have_sigaction)
        if test x$have_sigaction = xyes; then
            CFLAGS="$CFLAGS -DHAVE_SIGACTION"
        fi
    fi
}

dnl Determine whether the compiler can produce Win32 executables
CheckWIN32()
{
    AC_MSG_CHECKING(Win32 compiler)
    have_win32_gcc=no
    AC_TRY_COMPILE([
     #include <windows.h>
    ],[
    ],[
    have_win32_gcc=yes
    ])
    AC_MSG_RESULT($have_win32_gcc)
    if test x$have_win32_gcc != xyes; then
       AC_MSG_ERROR([
*** Your compiler ($CC) does not produce Win32 executables!
       ])
    fi

    dnl See if the user wants to redirect standard output to files
    AC_ARG_ENABLE(stdio-redirect,
[  --enable-stdio-redirect Redirect STDIO to files on Win32 [default=yes]],
                  , enable_stdio_redirect=yes)
    if test x$enable_stdio_redirect != xyes; then
        CFLAGS="$CFLAGS -DNO_STDIO_REDIRECT"
    fi
}

dnl Find the DirectX includes and libraries
CheckDIRECTX()
{
    AC_ARG_ENABLE(directx,
[  --enable-directx        use DirectX for Win32 audio/video [default=yes]],
                  , enable_directx=yes)
    if test x$enable_directx = xyes; then
        AC_MSG_CHECKING(for DirectX headers and libraries)
        use_directx=no
        tmp_cflags=$CFLAGS
        CFLAGS="$CFLAGS -I$srcdir"
        AC_TRY_COMPILE([
         #include "src/video/windx5/directx.h"
        ],[
        ],[
        use_directx=yes
        ])
        CFLAGS=$tmp_cflags
        AC_MSG_RESULT($use_directx)
    fi

    CFLAGS="$CFLAGS -I\$(top_srcdir)/src/video/wincommon"
    SYSTEM_LIBS="$SYSTEM_LIBS -luser32 -lgdi32 -lwinmm"
    VIDEO_SUBDIRS="$VIDEO_SUBDIRS wincommon"
    VIDEO_DRIVERS="$VIDEO_DRIVERS wincommon/libvideo_wincommon.la"
    # Enable the DIB driver
    CFLAGS="$CFLAGS -DENABLE_WINDIB"
    VIDEO_SUBDIRS="$VIDEO_SUBDIRS windib"
    VIDEO_DRIVERS="$VIDEO_DRIVERS windib/libvideo_windib.la"
    # See if we should enable the DirectX driver
    if test x$use_directx = xyes; then
        CFLAGS="$CFLAGS -DENABLE_DIRECTX"
        SYSTEM_LIBS="$SYSTEM_LIBS -ldxguid"
        VIDEO_SUBDIRS="$VIDEO_SUBDIRS windx5"
        VIDEO_DRIVERS="$VIDEO_DRIVERS windx5/libvideo_windx5.la"
    fi
}

dnl Set up the BWindow video driver on BeOS
CheckBWINDOW()
{
    CFLAGS="$CFLAGS -DENABLE_BWINDOW"
    VIDEO_SUBDIRS="$VIDEO_SUBDIRS bwindow"
    VIDEO_DRIVERS="$VIDEO_DRIVERS bwindow/libvideo_bwindow.la"
}

dnl Set up the QTopia video driver if enabled
CheckQtopia()
{
    AC_ARG_ENABLE(video-qtopia,
[  --enable-video-qtopia   use Qtopia video driver [default=no]],
                  , enable_video_qtopia=no)
    if test x$enable_video = xyes -a x$enable_video_qtopia = xyes; then
        AC_MSG_CHECKING(for Qtopia support)
        video_qtopia=no
        AC_LANG_CPLUSPLUS
        OLD_CXX="$CXXFLAGS"
        CXXFLAGS="-DQT_QWS_EBX -fno-rtti -fno-exceptions -DQT_QWS_CUSTOM -DQWS -I${QPEDIR}/include -I${QTDIR}/include/ -DNO_DEBUG"
        AC_TRY_COMPILE([
         #include <qpe/qpeapplication.h>
        ],[
        ],[
        video_qtopia=yes
        ])
        CXXFLAGS="$OLD_CXX"
        AC_MSG_RESULT($video_qtopia)
        if test x$video_qtopia = xyes; then
            CFLAGS="$CFLAGS -DENABLE_QTOPIA -DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -I${QPEDIR}/include -I${QTDIR}/include/ -DNO_DEBUG -fno-rtti -fno-exceptions"
            SDL_LIBS="$SDL_LIBS -L${QPEDIR}/lib -L${QTDIR}/lib/ -lqpe -lqte"
            SDL_CFLAGS="$SDL_CFLAGS -DQWS"	  
            VIDEO_SUBDIRS="$VIDEO_SUBDIRS qtopia"
            VIDEO_DRIVERS="$VIDEO_DRIVERS qtopia/libvideo_qtopia.la"
        else
	AC_MSG_ERROR([
*** Failed to find Qtopia includes. Make sure that the QTDIR and QPEDIR
*** environment variables are set correctly.])
        fi
        AC_LANG_C
    fi
}

dnl Set up the PicoGUI video driver if enabled
CheckPicoGUI()
{
    AC_ARG_ENABLE(video-picogui,
[  --enable-video-picogui  use PicoGUI video driver [default=no]],
                  , enable_video_picogui=no)
    if test x$enable_video = xyes -a x$enable_video_picogui = xyes; then
        AC_MSG_CHECKING(for PicoGUI support)
        video_picogui=no
        AC_TRY_COMPILE([
         #include <picogui.h>
        ],[
        ],[
        video_picogui=yes
        ])
        AC_MSG_RESULT($video_picogui)
        if test x$video_picogui = xyes; then
	    SDL_LIBS="$SDL_LIBS -lpgui"
            CFLAGS="$CFLAGS -DENABLE_PICOGUI"
            VIDEO_SUBDIRS="$VIDEO_SUBDIRS picogui"
            VIDEO_DRIVERS="$VIDEO_DRIVERS picogui/libvideo_picogui.la"
        fi
        AC_LANG_C
    fi
}

dnl Set up the Mac toolbox video driver for Mac OS 7-9
CheckTOOLBOX()
{
    CFLAGS="$CFLAGS -DENABLE_TOOLBOX -DENABLE_DRAWSPROCKET"
    VIDEO_SUBDIRS="$VIDEO_SUBDIRS maccommon"
    VIDEO_DRIVERS="$VIDEO_DRIVERS maccommon/libvideo_maccommon.la"
    VIDEO_SUBDIRS="$VIDEO_SUBDIRS macrom"
    VIDEO_DRIVERS="$VIDEO_DRIVERS macrom/libvideo_macrom.la"
    VIDEO_SUBDIRS="$VIDEO_SUBDIRS macdsp"
    VIDEO_DRIVERS="$VIDEO_DRIVERS macdsp/libvideo_macdsp.la"
}

dnl Set up the Carbon/QuickDraw video driver for Mac OS X (but not Darwin)
CheckCARBON()
{
    AC_ARG_ENABLE(video-carbon,
[  --enable-video-carbon   use Carbon/QuickDraw video driver [default=no]],
                  , enable_video_carbon=no)
  if test x$enable_video = xyes -a x$enable_video_carbon = xyes; then
    AC_MSG_CHECKING(for Carbon framework)
    have_carbon=no
    if test x$have_carbon != xyes; then
        AC_TRY_COMPILE([
          #include <Carbon/Carbon.h>
        ],[
        ],[
        have_carbon=yes
        ])
    fi
    AC_MSG_RESULT($have_carbon)
    if test x$have_carbon = xyes; then
    # "MACOSX" is not an official definition, but it's commonly
    # accepted as a way to differentiate between what runs on X
    # and what runs on older Macs - while in theory "Carbon" defns
    # are consistent between the two, in practice Carbon is still
    # changing. -sts Aug 2000
    mac_autoconf_target_workaround="MAC"
    CFLAGS="$CFLAGS -I/System/Library/Frameworks/Carbon.framework/Headers \
      -fpascal-strings -DENABLE_TOOLBOX -DMACOSX -DTARGET_API_${mac_autoconf_target_workaround}_CARBON=1 -I\$(top_srcdir)/src/video/maccommon -I\$(top_srcdir)/src/video/macrom -I\$(top_srcdir)/src/video/macdsp"
    VIDEO_SUBDIRS="$VIDEO_SUBDIRS maccommon"
    VIDEO_DRIVERS="$VIDEO_DRIVERS maccommon/libvideo_maccommon.la"
    VIDEO_SUBDIRS="$VIDEO_SUBDIRS macrom"
    VIDEO_DRIVERS="$VIDEO_DRIVERS macrom/libvideo_macrom.la"
    #VIDEO_SUBDIRS="$VIDEO_SUBDIRS macdsp"
    #VIDEO_DRIVERS="$VIDEO_DRIVERS macdsp/libvideo_macdsp.la"
    fi
  fi
}

dnl Set up the Cocoa/Quartz video driver for Mac OS X (but not Darwin)
CheckCOCOA()
{
    AC_ARG_ENABLE(video-cocoa,
[  --enable-video-cocoa    use Cocoa/Quartz video driver [default=yes]],
                  , enable_video_cocoa=yes)
  if test x$enable_video = xyes -a x$enable_video_cocoa = xyes; then
    old_CFLAGS="$CFLAGS"
    dnl work around that we don't have Objective-C support in autoconf
    CFLAGS="$CFLAGS -x objective-c"
    AC_MSG_CHECKING(for Cocoa framework)
    have_cocoa=no
    if test x$have_cocoa != xyes; then
        AC_TRY_COMPILE([
          #import <Cocoa/Cocoa.h>
        ],[
        ],[
        have_cocoa=yes
        ])
    fi
    AC_MSG_RESULT($have_cocoa)
    CFLAGS="$old_CFLAGS"
    if test x$have_cocoa = xyes; then
    # "MACOSX" is not an official definition, but it's commonly
    # accepted as a way to differentiate between what runs on X
    # and what runs on older Macs - while in theory "Carbon" defns
    # are consistent between the two, in practice Carbon is still
    # changing. -sts Aug 2000
    mac_autoconf_target_workaround="MAC"
    CFLAGS="$CFLAGS -I/System/Library/Frameworks/Carbon.framework/Headers \
      -I/System/Library/Frameworks/Cocoa.framework/Headers -fpascal-strings \
      -DENABLE_QUARTZ -DMACOSX -DTARGET_API_${mac_autoconf_target_workaround}_CARBON=1 -I\$(top_srcdir)/src/video/quartz"
    VIDEO_SUBDIRS="$VIDEO_SUBDIRS quartz"
    VIDEO_DRIVERS="$VIDEO_DRIVERS quartz/libvideo_quartz.la"
    fi
  fi
}

dnl Check for the dlfcn.h interface for dynamically loading objects
CheckDLOPEN()
{
    AC_ARG_ENABLE(sdl-dlopen,
[  --enable-sdl-dlopen     use dlopen for shared object loading [default=yes]],
                  , enable_sdl_dlopen=yes)
    if test x$enable_sdl_dlopen = xyes; then
        AC_MSG_CHECKING(for dlopen)
        use_dlopen=no
        AC_TRY_COMPILE([
         #include <dlfcn.h>
        ],[
        ],[
        use_dlopen=yes
        ])
        AC_MSG_RESULT($use_dlopen)

        if test x$use_dlopen = xyes; then
            CFLAGS="$CFLAGS -DUSE_DLOPEN"
            AC_CHECK_LIB(c, dlopen, SYSTEM_LIBS="$SYSTEM_LIBS",
               AC_CHECK_LIB(dl, dlopen, SYSTEM_LIBS="$SYSTEM_LIBS -ldl",
                  AC_CHECK_LIB(ltdl, dlopen, SYSTEM_LIBS="$SYSTEM_LIBS -lltdl")))
        fi
    fi
}

dnl Set up the Atari LDG (shared object loader)
CheckAtariLdg()
{
    AC_ARG_ENABLE(atari-ldg,
[  --enable-atari-ldg      use Atari LDG for shared object loading [default=yes]],
                  , enable_atari_ldg=yes)
    if test x$video_gem = xyes -a x$enable_atari_ldg = xyes; then
        AC_CHECK_HEADER(ldg.h, have_ldg_hdr=yes)
        AC_CHECK_LIB(ldg, ldg_open, have_ldg_lib=yes, have_ldg_lib=no, -lgem)
        if test x$have_ldg_hdr = xyes -a x$have_ldg_lib = xyes; then
            CFLAGS="$CFLAGS -DENABLE_LDG"
            SYSTEM_LIBS="$SYSTEM_LIBS -lldg -lgem"
        fi
    fi
}

dnl Check for the usbhid(3) library on *BSD
CheckUSBHID()
{
    if test x$enable_joystick = xyes; then
        have_libusbhid=no
        have_libusb=no
        AC_CHECK_LIB(usbhid, hid_init, have_libusbhid=yes)
        AC_CHECK_LIB(usb, hid_init, have_libusb=yes)
        if test x$have_libusbhid = xyes; then
            SYSTEM_LIBS="$SYSTEM_LIBS -lusbhid"
        fi
        if test x$have_libusb = xyes; then
            SYSTEM_LIBS="$SYSTEM_LIBS -lusb"
        fi

        AC_CHECK_HEADER(usb.h, have_usb_h=yes)
        AC_CHECK_HEADER(usbhid.h, have_usbhid_h=yes)
        AC_CHECK_HEADER(libusb.h, have_libusb_h=yes)
        AC_CHECK_HEADER(libusbhid.h, have_libusbhid_h=yes)
        if test x$have_usb_h = xyes; then
            CFLAGS="$CFLAGS -DHAVE_USB_H"
        fi
        if test x$have_usbhid_h = xyes; then
            CFLAGS="$CFLAGS -DHAVE_USBHID_H"
        fi
        if test x$have_libusb_h = xyes; then
            CFLAGS="$CFLAGS -DHAVE_LIBUSB_H"
        fi
        if test x$have_libusbhid_h = xyes; then
            CFLAGS="$CFLAGS -DHAVE_LIBUSBHID_H"
        fi

        AC_MSG_CHECKING(for usbhid)
        have_usbhid=no
        AC_TRY_COMPILE([
          #include <sys/types.h>
          #if defined(HAVE_USB_H)
          #include <usb.h>
          #endif
          #include <dev/usb/usb.h>
          #include <dev/usb/usbhid.h>
          #if defined(HAVE_USBHID_H)
          #include <usbhid.h>
          #elif defined(HAVE_LIBUSB_H)
          #include <libusb.h>
          #elif defined(HAVE_LIBUSBHID_H)
          #include <libusbhid.h>
          #endif
        ],[
          struct report_desc *repdesc;
          struct usb_ctl_report *repbuf;
          hid_kind_t hidkind;
        ],[
        have_usbhid=yes
        ])
        AC_MSG_RESULT($have_usbhid)

        if test x$have_usbhid = xyes; then
            AC_MSG_CHECKING(for ucr_data member of usb_ctl_report)
            have_usbhid_ucr_data=no
            AC_TRY_COMPILE([
              #include <sys/types.h>
              #if defined(HAVE_USB_H)
              #include <usb.h>
              #endif
              #include <dev/usb/usb.h>
              #include <dev/usb/usbhid.h>
              #if defined(HAVE_USBHID_H)
              #include <usbhid.h>
              #elif defined(HAVE_LIBUSB_H)
              #include <libusb.h>
              #elif defined(HAVE_LIBUSBHID_H)
              #include <libusbhid.h>
              #endif
            ],[
              struct usb_ctl_report buf;
              if (buf.ucr_data) { }
            ],[
            have_usbhid_ucr_data=yes
            ])
            if test x$have_usbhid_ucr_data = xyes; then
                CFLAGS="$CFLAGS -DUSBHID_UCR_DATA"
            fi
            AC_MSG_RESULT($have_usbhid_ucr_data)
            
	    AC_MSG_CHECKING(for new usbhid API)
            have_usbhid_new=no
            AC_TRY_COMPILE([
              #include <sys/types.h>
              #if defined(HAVE_USB_H)
              #include <usb.h>
              #endif
              #include <dev/usb/usb.h>
              #include <dev/usb/usbhid.h>
              #if defined(HAVE_USBHID_H)
              #include <usbhid.h>
              #elif defined(HAVE_LIBUSB_H)
              #include <libusb.h>
              #elif defined(HAVE_LIBUSBHID_H)
              #include <libusbhid.h>
              #endif
            ],[
              report_desc_t d;
	      hid_start_parse(d, 1, 1);
            ],[
            have_usbhid_new=yes
            ])
            if test x$have_usbhid_new = xyes; then
                CFLAGS="$CFLAGS -DUSBHID_NEW"
            fi
            AC_MSG_RESULT($have_usbhid_new)

            JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS bsd"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS bsd/libjoystick_bsd.la"
        fi
    fi
}

dnl Check for altivec instruction support using gas syntax
CheckAltivec()
{
    dnl FIXME: Theoretically, you might not have altivec.h, we should check
    dnl FIXME:  that seperately, but I think all major platforms have it
    dnl FIXME:  at the moment...  --ryan.

    save_CFLAGS="${CFLAGS}"
    have_gcc_altivec=no
    AC_MSG_CHECKING(for Altivec with GCC -maltivec option)
    CFLAGS="${save_CFLAGS} -DGCC_ALTIVEC -DUSE_ALTIVEC_BLITTERS -maltivec"
    AC_TRY_COMPILE([
    #include <altivec.h>
    vector unsigned int vzero() {
        return vec_splat_u32(0);
    }
    ],[
    ],[
    have_gcc_altivec=yes
    ])
    AC_MSG_RESULT($have_gcc_altivec)

    if test x$have_gcc_altivec = xno; then
        AC_MSG_CHECKING(for Altivec with GCC -faltivec option)
        CFLAGS="${CFLAGS} -DGCC_ALTIVEC -DUSE_ALTIVEC_BLITTERS -faltivec"
        AC_TRY_COMPILE([
        #include <altivec.h>
        vector unsigned int vzero() {
            return vec_splat_u32(0);
        }
        ],[
        ],[
        have_gcc_altivec=yes
        ])
        AC_MSG_RESULT($have_gcc_altivec)
    fi

    if test x$have_gcc_altivec = xno; then
        CFLAGS="${save_CFLAGS}"
    fi
}

dnl Check for a valid linux/version.h
CheckLinuxVersion()
{
    AC_CHECK_HEADER(linux/version.h, have_linux_version_h=yes)
    if test x$have_linux_version_h = xyes; then
        CFLAGS="$CFLAGS -DHAVE_LINUX_VERSION_H"
    fi
}

dnl Check if we want to use RPATH
CheckRPATH()
{
    AC_ARG_ENABLE(rpath,
[  --enable-rpath          use an rpath when linking SDL [default=yes]],
                  , enable_rpath=yes)
}

case "$target" in
    arm-*-elf*)
	ARCH=linux
	CheckDummyVideo
	CheckIPod
	# Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, linux, SDL_systimer.c)
        fi
	;;
    *-*-linux*|*-*-gnu*|*-*-k*bsd*-gnu)
        case "$target" in
          *-*-linux*) ARCH=linux ;;
          *-*-kfreebsd*-gnu) ARCH=kfreebsd-gnu ;;
          *-*-knetbsd*-gnu) ARCH=knetbsd-gnu ;;
          *-*-kopenbsd*-gnu) ARCH=kopenbsd-gnu ;;
          *-*-gnu*) ARCH=gnu ;; # must be last
        esac
        CheckDummyVideo
        CheckDiskAudio
        CheckDLOPEN
        CheckNASM
        CheckOSS
        CheckALSA
        CheckARTSC
        CheckESD
        CheckNAS
        CheckX11
        CheckNANOX
        CheckDGA
        CheckFBCON
        CheckDirectFB
        CheckPS2GS
        CheckGGI
        CheckSVGA
        CheckAAlib
        CheckQtopia
        CheckPicoGUI
        CheckOpenGL
        CheckInputEvents
        CheckPTHREAD
        CheckSIGACTION
        CheckAltivec
        CheckLinuxVersion
        CheckRPATH

        # Set up files for the main() stub
        if test "x$video_qtopia" = "xyes"; then
          SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
          SDL_LIBS="-lSDLmain $SDL_LIBS"
        fi
        # Set up files for the audio library
        # We use the OSS and ALSA API's, not the Sun audio API
        #if test x$enable_audio = xyes; then
        #    CFLAGS="$CFLAGS -DSUNAUDIO_SUPPORT"
        #    AUDIO_SUBDIRS="$AUDIO_SUBDIRS sun"
        #    AUDIO_DRIVERS="$AUDIO_DRIVERS sun/libaudio_sun.la"
        #fi
        # Set up files for the joystick library
        if test x$enable_joystick = xyes; then
	  case $ARCH in
	    linux)
              JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS linux"
              JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS linux/libjoystick_linux.la"
	    ;;
	    gnu)
              JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS dummy"
              JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS dummy/libjoystick_dummy.la"
	    ;;
	    k*bsd-gnu)
              JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS bsd"
              JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS bsd/libjoystick_bsd.la"
	    ;;
	  esac
        fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
	  case $ARCH in
	    linux)
              CDROM_SUBDIRS="$CDROM_SUBDIRS linux"
              CDROM_DRIVERS="$CDROM_DRIVERS linux/libcdrom_linux.la"
	    ;;
	    gnu)
              CDROM_SUBDIRS="$CDROM_SUBDIRS dummy"
              CDROM_DRIVERS="$CDROM_DRIVERS dummy/libcdrom_dummy.la"
	    ;;
	    kfreebsd-gnu)
              CDROM_SUBDIRS="$CDROM_SUBDIRS freebsd"
              CDROM_DRIVERS="$CDROM_DRIVERS freebsd/libcdrom_freebsd.la"
	    ;;
	    knetbsd-gnu|kopenbsd-gnu)
              CDROM_SUBDIRS="$CDROM_SUBDIRS openbsd"
              CDROM_DRIVERS="$CDROM_DRIVERS openbsd/libcdrom_openbsd.la"
	    ;;
	  esac
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            CopyUnixThreadSource
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, linux, SDL_systimer.c)
        fi
        ;;
    *-*-bsdi*)
        ARCH=bsdi
        CheckDummyVideo
        CheckDiskAudio
        CheckDLOPEN
        CheckNASM
        CheckOSS
        CheckARTSC
        CheckESD
        CheckNAS
        CheckX11
        CheckDGA
        CheckSVGA
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        CheckSIGACTION
        CheckRPATH
        # Set up files for the audio library
        # We use the OSS and ALSA API's, not the Sun audio API
        #if test x$enable_audio = xyes; then
        #    CFLAGS="$CFLAGS -DSUNAUDIO_SUPPORT"
        #    AUDIO_SUBDIRS="$AUDIO_SUBDIRS sun"
        #    AUDIO_DRIVERS="$AUDIO_DRIVERS sun/libaudio_sun.la"
        #fi
        # Set up files for the joystick library
        # (No joystick support yet)
        if test x$enable_joystick = xyes; then
            JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS dummy"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS dummy/libjoystick_dummy.la"
        fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS bsdi"
            CDROM_DRIVERS="$CDROM_DRIVERS bsdi/libcdrom_bsdi.la"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            CopyUnixThreadSource
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, linux, SDL_systimer.c)
        fi
        ;;
    *-*-freebsd*)
        ARCH=freebsd
        CheckDummyVideo
        CheckDiskAudio
        CheckDLOPEN
        CheckVGL
        CheckNASM
        CheckOSS
        CheckARTSC
        CheckESD
        CheckNAS
        CheckX11
        CheckDGA
        CheckSVGA
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        CheckSIGACTION
        CheckUSBHID
        CheckRPATH
        # Set up files for the audio library
        # We use the OSS and ALSA API's, not the Sun audio API
        #if test x$enable_audio = xyes; then
        #    CFLAGS="$CFLAGS -DSUNAUDIO_SUPPORT"
        #    AUDIO_SUBDIRS="$AUDIO_SUBDIRS sun"
        #    AUDIO_DRIVERS="$AUDIO_DRIVERS sun/libaudio_sun.la"
        #fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS freebsd"
            CDROM_DRIVERS="$CDROM_DRIVERS freebsd/libcdrom_freebsd.la"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            CopyUnixThreadSource
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, linux, SDL_systimer.c)
        fi
        ;;
    *-*-netbsd*)
        ARCH=netbsd
        CheckDummyVideo
        CheckDiskAudio
        CheckDLOPEN
        CheckNASM
        CheckOSS
        CheckARTSC
        CheckESD
        CheckNAS
        CheckX11
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        CheckSIGACTION
        CheckUSBHID
        CheckRPATH
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            CFLAGS="$CFLAGS -DSUNAUDIO_SUPPORT"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS sun"
            AUDIO_DRIVERS="$AUDIO_DRIVERS sun/libaudio_sun.la"
        fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS openbsd"
            CDROM_DRIVERS="$CDROM_DRIVERS openbsd/libcdrom_openbsd.la"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            if test x$use_pthreads = xyes; then
                CFLAGS="$CFLAGS -D_POSIX_THREAD_SYSCALL_SOFT=1"
            fi
            CopyUnixThreadSource
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, linux, SDL_systimer.c)
        fi
        # NetBSD does not define "unix"
        CFLAGS="$CFLAGS -Dunix"
        ;;
    *-*-openbsd*)
        ARCH=openbsd
        CheckDummyVideo
        CheckDiskAudio
        CheckDLOPEN
        CheckNASM
        CheckOSS
        CheckARTSC
        CheckESD
        CheckNAS
        CheckX11
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        CheckSIGACTION
        CheckUSBHID
        CheckRPATH
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            CFLAGS="$CFLAGS -DOPENBSD_AUDIO_SUPPORT"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS openbsd"
            AUDIO_DRIVERS="$AUDIO_DRIVERS openbsd/libaudio_openbsd.la"
        fi
        # OpenBSD needs linking with ossaudio emulation library
        if test x$have_oss = xyes; then
            SYSTEM_LIBS="$SYSTEM_LIBS -lossaudio"
        fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS openbsd"
            CDROM_DRIVERS="$CDROM_DRIVERS openbsd/libcdrom_openbsd.la"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            CopyUnixThreadSource
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, linux, SDL_systimer.c)
        fi
        # OpenBSD does not define "unix"
        CFLAGS="$CFLAGS -Dunix"
        ;;
    *-*-sysv5*)
        ARCH=sysv5
        CheckDummyVideo
        CheckDiskAudio
        CheckDLOPEN
        CheckNASM
        CheckOSS
        CheckARTSC
        CheckESD
        CheckNAS
        CheckX11
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        CheckSIGACTION
        CheckRPATH
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            CFLAGS="$CFLAGS -DSUNAUDIO_SUPPORT"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS sun"
            AUDIO_DRIVERS="$AUDIO_DRIVERS sun/libaudio_sun.la"
        fi
        # Set up files for the joystick library
        # (No joystick support yet)
        if test x$enable_joystick = xyes; then
            JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS dummy"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS dummy/libjoystick_dummy.la"
        fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS dummy"
            CDROM_DRIVERS="$CDROM_DRIVERS dummy/libcdrom_dummy.la"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            CopyUnixThreadSource
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, linux, SDL_systimer.c)
        fi
        ;;
    *-*-solaris*)
        ARCH=solaris
        CFLAGS="$CFLAGS -D__ELF__" # Fix for nasm on Solaris x86
        CheckDummyVideo
        CheckDiskAudio
        CheckDLOPEN
        CheckNASM
        CheckOSS
        CheckARTSC
        CheckESD
        CheckNAS
        CheckX11
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        CheckSIGACTION
        CheckRPATH
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            CFLAGS="$CFLAGS -DSUNAUDIO_SUPPORT"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS sun"
            AUDIO_DRIVERS="$AUDIO_DRIVERS sun/libaudio_sun.la"
        fi
        # Set up files for the joystick library
        # (No joystick support yet)
        if test x$enable_joystick = xyes; then
            JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS dummy"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS dummy/libjoystick_dummy.la"
        fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS linux"
            CDROM_DRIVERS="$CDROM_DRIVERS linux/libcdrom_linux.la"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            CopyUnixThreadSource
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, linux, SDL_systimer.c)
        fi
        ;;
    *-*-irix*)
        ARCH=irix
        CheckDummyVideo
        CheckDiskAudio
        CheckDLOPEN
        CheckDMEDIA
        CheckESD
        CheckNAS
        CheckX11
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        CheckSIGACTION
        # We use the dmedia audio API, not the Sun audio API
        #if test x$enable_audio = xyes; then
        #    CFLAGS="$CFLAGS -DSUNAUDIO_SUPPORT"
        #    AUDIO_SUBDIRS="$AUDIO_SUBDIRS sun"
        #    AUDIO_DRIVERS="$AUDIO_DRIVERS sun/libaudio_sun.la"
        #fi
        # Set up files for the joystick library
        # (No joystick support yet)
        if test x$enable_joystick = xyes; then
            JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS dummy"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS dummy/libjoystick_dummy.la"
        fi
        # Set up files for the cdrom library
        # (No CD-ROM support yet)
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS dummy"
            CDROM_DRIVERS="$CDROM_DRIVERS dummy/libcdrom_dummy.la"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            if test x$use_pthreads = xyes -o x$use_pth = xyes; then
                CopyUnixThreadSource
            else
                COPY_ARCH_SRC(src/thread, irix, SDL_systhread.c)
                COPY_ARCH_SRC(src/thread, irix, SDL_systhread_c.h)
                COPY_ARCH_SRC(src/thread, linux, SDL_sysmutex.c)
                COPY_ARCH_SRC(src/thread, linux, SDL_sysmutex_c.h)
                COPY_ARCH_SRC(src/thread, linux, SDL_syssem.c)
                COPY_ARCH_SRC(src/thread, generic, SDL_syssem_c.h)
                COPY_ARCH_SRC(src/thread, generic, SDL_syscond.c)
                COPY_ARCH_SRC(src/thread, generic, SDL_syscond_c.h)
            fi
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, linux, SDL_systimer.c)
        fi
        ;;
    *-*-hpux*)
        ARCH=hpux
        CheckDummyVideo
        CheckDiskAudio
        CheckDLOPEN
        CheckOSS
        CheckNAS
        CheckX11
        CheckGGI
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        CheckSIGACTION
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            CFLAGS="$CFLAGS -DSUNAUDIO_SUPPORT"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS sun"
            AUDIO_DRIVERS="$AUDIO_DRIVERS sun/libaudio_sun.la"
        fi
        # Set up files for the joystick library
        # (No joystick support yet)
        if test x$enable_joystick = xyes; then
            JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS dummy"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS dummy/libjoystick_dummy.la"
        fi
        # Set up files for the cdrom library
        # (No CD-ROM support yet)
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS dummy"
            CDROM_DRIVERS="$CDROM_DRIVERS dummy/libcdrom_dummy.la"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            CopyUnixThreadSource
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, linux, SDL_systimer.c)
        fi
        ;;
    *-*-aix*)
        ARCH=aix
        CheckDummyVideo
        CheckDiskAudio
        CheckDLOPEN
        CheckOSS
        CheckNAS
        CheckX11
        CheckGGI
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        CheckSIGACTION
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS paudio"
            AUDIO_DRIVERS="$AUDIO_DRIVERS paudio/libaudio_paudio.la"
        fi
        # Set up files for the joystick library
        # (No joystick support yet)
        if test x$enable_joystick = xyes; then
            JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS dummy"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS dummy/libjoystick_dummy.la"
        fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS aix"
            CDROM_DRIVERS="$CDROM_DRIVERS aix/libcdrom_aix.la"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            CopyUnixThreadSource
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, linux, SDL_systimer.c)
        fi
        ;;
    *-*-osf*)
        ARCH=osf
        CheckDummyVideo
        CheckDiskAudio
        CheckDLOPEN
        CheckNAS
        CheckX11
        CheckGGI
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        CheckSIGACTION
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            CFLAGS="$CFLAGS -I/usr/include/mme -DMMEAUDIO_SUPPORT"
            SYSTEM_LIBS="$SYSTEM_LIBS -lmme"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS mme"
            AUDIO_DRIVERS="$AUDIO_DRIVERS mme/libaudio_mme.la"
        fi
        # Set up files for the joystick library
        # (No joystick support yet)
        if test x$enable_joystick = xyes; then
            JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS dummy"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS dummy/libjoystick_dummy.la"
        fi
        # Set up files for the cdrom library
        # (No cdrom support yet)
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS osf"
            CDROM_DRIVERS="$CDROM_DRIVERS osf/libcdrom_osf.la"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            CopyUnixThreadSource
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, linux, SDL_systimer.c)
        fi
        ;;
    *-*-qnx*)
        ARCH=qnx
        CheckDummyVideo
        CheckDiskAudio
        # CheckNASM
        CheckDLOPEN
        CheckNAS
        CheckPHOTON
        CheckX11
        CheckOpenGL
        CheckPTHREAD
        CheckSIGACTION
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            CFLAGS="$CFLAGS -DQNXNTOAUDIO_SUPPORT"
            SYSTEM_LIBS="$SYSTEM_LIBS -lasound"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS nto"
            AUDIO_DRIVERS="$AUDIO_DRIVERS nto/libaudio_nto.la"
        fi
        # Set up files for the joystick library
        if test x$enable_joystick = xyes; then
        # (No joystick support yet)
            JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS dummy"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS dummy/libjoystick_dummy.la"
        fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS qnx"
            CDROM_DRIVERS="$CDROM_DRIVERS qnx/libcdrom_qnx.la"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            CopyUnixThreadSource
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, linux, SDL_systimer.c)
        fi
        ;;
    *-*-cygwin* | *-*-mingw32*)
        ARCH=win32
        if test "$build" != "$target"; then # cross-compiling
            # Default cross-compile location
            ac_default_prefix=/usr/local/cross-tools/i386-mingw32msvc
        else
            # Look for the location of the tools and install there
            if test "$BUILD_PREFIX" != ""; then
                ac_default_prefix=$BUILD_PREFIX
            fi
        fi
        CheckDummyVideo
        CheckDiskAudio
        CheckWIN32
        CheckDIRECTX
        CheckNASM
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS windib"
            AUDIO_DRIVERS="$AUDIO_DRIVERS windib/libaudio_windib.la"
            if test x$use_directx = xyes; then
                AUDIO_SUBDIRS="$AUDIO_SUBDIRS windx5"
                AUDIO_DRIVERS="$AUDIO_DRIVERS windx5/libaudio_windx5.la"
            fi
        fi
        # Set up files for the joystick library
        if test x$enable_joystick = xyes; then
            JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS win32"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS win32/libjoystick_winmm.la"
        fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS win32"
            CDROM_DRIVERS="$CDROM_DRIVERS win32/libcdrom_win32.la"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            COPY_ARCH_SRC(src/thread, win32, SDL_systhread.c)
            COPY_ARCH_SRC(src/thread, win32, SDL_systhread_c.h)
            COPY_ARCH_SRC(src/thread, win32, SDL_sysmutex.c)
            COPY_ARCH_SRC(src/thread, generic, SDL_sysmutex_c.h)
            COPY_ARCH_SRC(src/thread, win32, SDL_syssem.c)
            COPY_ARCH_SRC(src/thread, generic, SDL_syssem_c.h)
            COPY_ARCH_SRC(src/thread, generic, SDL_syscond.c)
            COPY_ARCH_SRC(src/thread, generic, SDL_syscond_c.h)
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, win32, SDL_systimer.c)
        fi
        # The Win32 platform requires special setup
        SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
        case "$target" in
            *-*-cygwin*)
                CFLAGS="$CFLAGS -I/usr/include/mingw -DWIN32 -Uunix -mno-cygwin"
                SDL_CFLAGS="$SDL_CFLAGS -I/usr/include/mingw -DWIN32 -Uunix -mno-cygwin"
                LIBS="$LIBS -mno-cygwin"
                SDL_LIBS="-lmingw32 -lSDLmain $SDL_LIBS -mwindows -mno-cygwin"
                ;;
            *-*-mingw32*)
                SDL_LIBS="-lmingw32 -lSDLmain $SDL_LIBS -mwindows"
                ;;
        esac
        ;;
    *-*-beos*)
        ARCH=beos
        ac_default_prefix=/boot/develop/tools/gnupro
        CheckDummyVideo
        CheckDiskAudio
        CheckNASM
        CheckBWINDOW
        CheckBeGL
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS baudio"
            AUDIO_DRIVERS="$AUDIO_DRIVERS baudio/libaudio_baudio.la"
        fi
        # Set up files for the joystick library
        if test x$enable_joystick = xyes; then
            JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS beos"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS beos/libjoystick_beos.la"
        fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS beos"
            CDROM_DRIVERS="$CDROM_DRIVERS beos/libcdrom_beos.la"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            COPY_ARCH_SRC(src/thread, beos, SDL_systhread.c)
            COPY_ARCH_SRC(src/thread, beos, SDL_systhread_c.h)
            COPY_ARCH_SRC(src/thread, generic, SDL_sysmutex.c)
            COPY_ARCH_SRC(src/thread, generic, SDL_sysmutex_c.h)
            COPY_ARCH_SRC(src/thread, beos, SDL_syssem.c)
            COPY_ARCH_SRC(src/thread, generic, SDL_syssem_c.h)
            COPY_ARCH_SRC(src/thread, generic, SDL_syscond.c)
            COPY_ARCH_SRC(src/thread, generic, SDL_syscond_c.h)
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, beos, SDL_systimer.c)
        fi
        # The BeOS platform requires special libraries
        SYSTEM_LIBS="$SYSTEM_LIBS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding"
        ;;
    *-*-macos*)
        # This would be used if cross-compiling to MacOS 9.  No way to
        # use it at present, but Apple is working on a X-to-9 compiler
        # for which this case would be handy.
        ARCH=macos
        CheckDummyVideo
        CheckDiskAudio
        CheckTOOLBOX
        CheckMacGL
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS macrom"
            AUDIO_DRIVERS="$AUDIO_DRIVERS macrom/libaudio_macrom.la"
        fi
        # Set up files for the joystick library
        if test x$enable_joystick = xyes; then
            JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS macos"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS macos/libjoystick_macos.la"
        fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS macos"
            CDROM_DRIVERS="$CDROM_DRIVERS macos/libcdrom_macos.la"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            COPY_ARCH_SRC(src/thread, macos, SDL_systhread.c)
            COPY_ARCH_SRC(src/thread, macos, SDL_systhread_c.h)
            COPY_ARCH_SRC(src/thread, generic, SDL_sysmutex.c)
            COPY_ARCH_SRC(src/thread, generic, SDL_sysmutex_c.h)
            COPY_ARCH_SRC(src/thread, macos, SDL_syssem.c)
            COPY_ARCH_SRC(src/thread, generic, SDL_syssem_c.h)
            COPY_ARCH_SRC(src/thread, generic, SDL_syscond.c)
            COPY_ARCH_SRC(src/thread, generic, SDL_syscond_c.h)
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, macos, SDL_systimer.c)
        fi
        # The MacOS platform requires special setup
        SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
        SDL_LIBS="-lSDLmain $SDL_LIBS"
        ;;
    *-*-darwin* )
        # This could be either full "Mac OS X", or plain "Darwin" which is
        # just the OS X kernel sans upper layers like Carbon and Cocoa.
        # Next line is broken, and a few files below require Mac OS X (full)
        ARCH=macosx
        CheckDummyVideo
        CheckDiskAudio
        CheckCOCOA
        CheckCARBON
        CheckMacX11
        CheckMacGL
        CheckPTHREAD
        CheckSIGACTION
        CheckAltivec
        # If either the audio or CD driver is used, add the AudioUnit framework
        if test x$enable_audio = xyes -o x$enable_cdrom = xyes; then
            SYSTEM_LIBS="$SYSTEM_LIBS -framework AudioToolbox -framework AudioUnit"
        fi
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS macosx"
            AUDIO_DRIVERS="$AUDIO_DRIVERS macosx/libaudio_macosx.la"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS macrom"
            AUDIO_DRIVERS="$AUDIO_DRIVERS macrom/libaudio_macrom.la"
        fi
        # Set up files for the joystick library
        if test x$enable_joystick = xyes; then
            JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS darwin"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS darwin/libjoystick_darwin.la"
            SYSTEM_LIBS="$SYSTEM_LIBS -framework IOKit"
        fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS macosx"
            CDROM_DRIVERS="$CDROM_DRIVERS macosx/libcdrom_macosx.la"
            SYSTEM_LIBS="$SYSTEM_LIBS -lstdc++"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            CopyUnixThreadSource
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, linux, SDL_systimer.c)
        fi
        # The MacOS X platform requires special setup.
        SDL_LIBS="-lSDLmain $SDL_LIBS"
        if test x$enable_video_cocoa = xyes; then
            SYSTEM_LIBS="$SYSTEM_LIBS -framework Cocoa"
        fi
        if test x$enable_video_carbon = xyes -o x$enable_video_cocoa = xyes; then
            # The Cocoa backend still needs Carbon, and the YUV code QuickTime
            SYSTEM_LIBS="$SYSTEM_LIBS -framework Carbon -framework QuickTime"
        fi
        #if test x$enable_video_carbon = xyes; then
        #    SYSTEM_LIBS="$SYSTEM_LIBS -framework DrawSprocket"
        #fi
        ;;
    *-*-mint*)
        ARCH=mint
        CheckDummyVideo
        CheckDiskAudio
        CheckAtariBiosEvent
        CheckAtariXbiosVideo
        CheckAtariGemVideo
        CheckAtariAudio
        CheckAtariLdg
		CheckAtariOSMesa
        CheckPTH
        # Set up files for the audio library
        if test x$enable_threads = xyes -a x$enable_pth = xyes; then
            if test x$enable_audio = xyes; then
                CFLAGS="$CFLAGS -DSUNAUDIO_SUPPORT"
                AUDIO_SUBDIRS="$AUDIO_SUBDIRS sun"
                AUDIO_DRIVERS="$AUDIO_DRIVERS sun/libaudio_sun.la"
            fi
        fi
        # Set up files for the joystick library
        if test x$enable_joystick = xyes; then
            JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS mint"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS mint/libjoystick_mint.la"
        fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS mint"
            CDROM_DRIVERS="$CDROM_DRIVERS mint/libcdrom_mint.la"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            CopyUnixThreadSource
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            if test x$enable_threads = xyes -a x$enable_pth = xyes; then
                COPY_ARCH_SRC(src/timer, linux, SDL_systimer.c)
            else
                COPY_ARCH_SRC(src/timer, mint, SDL_systimer.c)
            fi
        fi
        # MiNT does not define "unix"
        CFLAGS="$CFLAGS -Dunix"
        ;;
    *-riscos)
        ARCH=riscos
        # Set up files for the video library
        if test x$enable_video = xyes; then
            VIDEO_SUBDIRS="$VIDEO_SUBDIRS riscos"
            VIDEO_DRIVERS="$VIDEO_DRIVERS riscos/libvideo_riscos.la"
        fi
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            CFLAGS="$CFLAGS -DOSS_SUPPORT"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS dsp"
            AUDIO_DRIVERS="$AUDIO_DRIVERS dsp/libaudio_dsp.la"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS dma"
            AUDIO_DRIVERS="$AUDIO_DRIVERS dma/libaudio_dma.la"
        fi
        # Set up files for the joystick library
        if test x$enable_joystick = xyes; then
            JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS riscos"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS riscos/libjoystick_riscos.la"
        fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
            CDROM_SUBDIRS="$CDROM_SUBDIRS dummy"
            CDROM_DRIVERS="$CDROM_DRIVERS dummy/libcdrom_dummy.la"
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            COPY_ARCH_SRC(src/thread, riscos, SDL_systhread.c)
            COPY_ARCH_SRC(src/thread, riscos, SDL_systhread_c.h)
            COPY_ARCH_SRC(src/thread, riscos, SDL_sysmutex.c)
            COPY_ARCH_SRC(src/thread, riscos, SDL_sysmutex_c.h)
            COPY_ARCH_SRC(src/thread, riscos, SDL_syssem.c)
            COPY_ARCH_SRC(src/thread, generic, SDL_syssem_c.h)
            COPY_ARCH_SRC(src/thread, riscos, SDL_syscond.c)
            COPY_ARCH_SRC(src/thread, generic, SDL_syscond_c.h)
        else
            CFLAGS="$CFLAGS -DDISABLE_THREADS"
        fi
        # Set up files for the timer library
        if test x$enable_timers = xyes; then
            COPY_ARCH_SRC(src/timer, riscos, SDL_systimer.c)
        fi

        CFLAGS="$CFLAGS -DENABLE_RISCOS"

        SYSTEM_LIBS="$SYSTEM_LIBS -ljpeg -ltiff -lpng -lz"
        ;;
    *)
        AC_MSG_ERROR(Unsupported target:  Please add to configure.in)
        ;;
esac
AC_SUBST(ARCH)

# Set the conditional variables for this target
AM_CONDITIONAL(TARGET_LINUX, test $ARCH = linux)
AM_CONDITIONAL(TARGET_QTOPIA, test "x$video_qtopia" = "xyes")
AM_CONDITIONAL(TARGET_SOLARIS, test $ARCH = solaris)
AM_CONDITIONAL(TARGET_IRIX, test $ARCH = irix)
AM_CONDITIONAL(TARGET_BSDI, test $ARCH = bsdi)
AM_CONDITIONAL(TARGET_FREEBSD, test $ARCH = freebsd)
AM_CONDITIONAL(TARGET_NETBSD, test $ARCH = netbsd)
AM_CONDITIONAL(TARGET_OPENBSD, test $ARCH = openbsd)
AM_CONDITIONAL(TARGET_AIX, test $ARCH = aix)
AM_CONDITIONAL(TARGET_WIN32, test $ARCH = win32)
AM_CONDITIONAL(TARGET_BEOS, test $ARCH = beos)
AM_CONDITIONAL(TARGET_MACOS, test $ARCH = macos)
AM_CONDITIONAL(TARGET_MACOSX, test $ARCH = macosx)
AM_CONDITIONAL(TARGET_QNX, test $ARCH = qnx)
AM_CONDITIONAL(TARGET_MINT, test $ARCH = mint)
AM_CONDITIONAL(TARGET_IPOD, test x$enable_ipod = xyes)

# More automake conditionals
AM_CONDITIONAL(USE_DIRECTX, test x$use_directx = xyes)
AM_CONDITIONAL(USE_CLONE, test x$use_clone = xyes)
AM_CONDITIONAL(HAVE_NASM, test x$use_nasm = xyes)
AM_CONDITIONAL(USE_COCOA, test x$enable_video_cocoa = xyes)
AM_CONDITIONAL(USE_CARBON, test x$enable_video_carbon = xyes)

# Set conditional variables for shared and static library selection.
# These are not used in any Makefile.am but in sdl-config.in.
AM_CONDITIONAL([ENABLE_SHARED], [test "$enable_shared" = yes])
AM_CONDITIONAL([ENABLE_STATIC], [test "$enable_static" = yes])

# Set runtime shared library paths as needed

if test "x$enable_rpath" = "xyes"; then
  if test $ARCH = linux -o $ARCH = freebsd -o $ARCH = bsdi; then
    SDL_RLD_FLAGS="-Wl,-rpath,\${exec_prefix}/lib"
  fi
  if test $ARCH = solaris; then
    SDL_RLD_FLAGS="-R\${exec_prefix}/lib"
  fi
else
  SDL_RLD_FLAGS=""
fi

case "$ARCH" in
  openbsd | netbsd | bsdi)
    SHARED_SYSTEM_LIBS="$SYSTEM_LIBS"
    ;;
  qnx)
    SHARED_SYSTEM_LIBS="$SYSTEM_LIBS"
    ;;
  macosx)
    SHARED_SYSTEM_LIBS=""
    if test x$enable_video = xyes -a x$enable_video_cocoa = xyes; then
      SHARED_SYSTEM_LIBS="$SHARED_SYSTEM_LIBS -framework Cocoa"
    fi
    if test x$enable_video = xyes -a x$enable_video_carbon = xyes; then
      SHARED_SYSTEM_LIBS="$SHARED_SYSTEM_LIBS -framework Carbon"
    fi
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
      SHARED_SYSTEM_LIBS="$SHARED_SYSTEM_LIBS -framework OpenGL"
    fi
    ;;
  *)
    SHARED_SYSTEM_LIBS=""
    ;;
esac

case "$ARCH" in
  macosx)
    # Evil hack to allow static linking on Mac OS X
    SDL_STATIC_LIBS="\${exec_prefix}/lib/libSDLmain.a \${exec_prefix}/lib/libSDL.a"
    ;;
  *)
    SDL_STATIC_LIBS="$SDL_LIBS"
    ;;
esac


STATIC_SYSTEM_LIBS="$SYSTEM_LIBS"

dnl Output the video drivers we use
if test x$enable_video = xtrue; then
    if test "$VIDEO_SUBDIRS" = ""; then
        AC_MSG_ERROR(*** No video drivers are enabled!)
    fi
fi
AC_SUBST(AUDIO_SUBDIRS)
AC_SUBST(AUDIO_DRIVERS)
AC_SUBST(VIDEO_SUBDIRS)
AC_SUBST(VIDEO_DRIVERS)
AC_SUBST(JOYSTICK_SUBDIRS)
AC_SUBST(JOYSTICK_DRIVERS)
AC_SUBST(CDROM_SUBDIRS)
AC_SUBST(CDROM_DRIVERS)
AC_SUBST(SDL_EXTRADIRS)
AC_SUBST(SDL_EXTRALIBS)

dnl Expand the cflags and libraries needed by apps using SDL
AC_SUBST(SDL_CFLAGS)
AC_SUBST(SDL_LIBS)
AC_SUBST(SDL_STATIC_LIBS)
AC_SUBST(SDL_RLD_FLAGS)

dnl Expand the libraries needed for static and dynamic linking
AC_SUBST(STATIC_SYSTEM_LIBS)
AC_SUBST(SHARED_SYSTEM_LIBS)
AC_SUBST(SYSTEM_LIBS)

dnl Expand the include directories for building SDL
CFLAGS="$CFLAGS -I\$(top_srcdir)/include"
CFLAGS="$CFLAGS -I\$(top_srcdir)/include/SDL"
CFLAGS="$CFLAGS -I\$(top_srcdir)/src -I\$(top_srcdir)/src/main/$ARCH"
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/audio"
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/video"
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/video/XFree86/extensions"
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/events"
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/joystick"
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/cdrom"
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/thread"
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/timer"
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/endian"
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/file"
CFLAGS="$CFLAGS -I\$(top_builddir)/src/thread"
CXXFLAGS="$CFLAGS"


# Check for darwin at the very end and set up the Objective C compiler
# We do this here so that we get the full CFLAGS into OBJCFLAGS
case "$target" in
    *-*-darwin*)
        dnl AC_PROG_OBJC doesn't seem to exist, this is the SDL workaround
        AC_MSG_CHECKING(for an Objective-C compiler)
        OBJC="$CC"
        AC_SUBST(OBJC)
        OBJCFLAGS="$CFLAGS"
        AC_SUBST(OBJCFLAGS)
        dnl _AM_DEPENDENCIES(OBJC) doesn't work, so hard code OBJCDEPMODE here
        dnl _AM_DEPENDENCIES(OBJC)
        dnl Of course, hard coding doesn't work for some versions of automake
        OBJCDEPMODE="depmode=gcc"
        AC_SUBST(OBJCDEPMODE)
        dnl Trying this to satisfy everybody...
        AC_MSG_RESULT(not implemented yet)
        ;;
esac

# Finally create all the generated files
dnl Important: Any directory that you want to be in the distcheck should
dnl            have a file listed here, so that configure generates the
dnl            subdirectories on the build target.
AC_OUTPUT([
Makefile
docs/Makefile
docs/html/Makefile
docs/man3/Makefile
include/Makefile
src/Makefile
src/main/Makefile
src/main/macos/Makefile
src/main/macosx/Makefile
src/main/macosx/Info.plist
src/audio/Makefile
src/audio/alsa/Makefile
src/audio/arts/Makefile
src/audio/baudio/Makefile
src/audio/dc/Makefile
src/audio/disk/Makefile
src/audio/dma/Makefile
src/audio/dmedia/Makefile
src/audio/dsp/Makefile
src/audio/esd/Makefile
src/audio/macosx/Makefile
src/audio/macrom/Makefile
src/audio/mint/Makefile
src/audio/mme/Makefile
src/audio/nas/Makefile
src/audio/nto/Makefile
src/audio/openbsd/Makefile
src/audio/paudio/Makefile
src/audio/sun/Makefile
src/audio/ums/Makefile
src/audio/windib/Makefile
src/audio/windx5/Makefile
src/video/Makefile
src/video/aalib/Makefile
src/video/ataricommon/Makefile
src/video/bwindow/Makefile
src/video/cybergfx/Makefile
src/video/dc/Makefile
src/video/dga/Makefile
src/video/directfb/Makefile
src/video/dummy/Makefile
src/video/epoc/Makefile
src/video/fbcon/Makefile
src/video/gem/Makefile
src/video/ggi/Makefile
src/video/ipod/Makefile
src/video/maccommon/Makefile
src/video/macdsp/Makefile
src/video/macrom/Makefile
src/video/nanox/Makefile
src/video/photon/Makefile
src/video/picogui/Makefile
src/video/ps2gs/Makefile
src/video/qtopia/Makefile
src/video/quartz/Makefile
src/video/riscos/Makefile
src/video/svga/Makefile
src/video/vgl/Makefile
src/video/wincommon/Makefile
src/video/windib/Makefile
src/video/windx5/Makefile
src/video/x11/Makefile
src/video/xbios/Makefile
src/video/XFree86/Makefile
src/video/XFree86/extensions/Makefile
src/video/XFree86/Xinerama/Makefile
src/video/XFree86/Xv/Makefile
src/video/XFree86/Xxf86dga/Makefile
src/video/XFree86/Xxf86vm/Makefile
src/events/Makefile
src/joystick/Makefile
src/joystick/amigaos/Makefile
src/joystick/beos/Makefile
src/joystick/bsd/Makefile
src/joystick/darwin/Makefile
src/joystick/dc/Makefile
src/joystick/dummy/Makefile
src/joystick/linux/Makefile
src/joystick/macos/Makefile
src/joystick/mint/Makefile
src/joystick/riscos/Makefile
src/joystick/win32/Makefile
src/cdrom/Makefile
src/cdrom/aix/Makefile
src/cdrom/beos/Makefile
src/cdrom/dc/Makefile
src/cdrom/dummy/Makefile
src/cdrom/bsdi/Makefile
src/cdrom/freebsd/Makefile
src/cdrom/linux/Makefile
src/cdrom/macos/Makefile
src/cdrom/macosx/Makefile
src/cdrom/mint/Makefile
src/cdrom/openbsd/Makefile
src/cdrom/osf/Makefile
src/cdrom/qnx/Makefile
src/cdrom/win32/Makefile
src/thread/Makefile
src/timer/Makefile
src/endian/Makefile
src/file/Makefile
src/cpuinfo/Makefile
src/hermes/Makefile
sdl-config
SDL.spec
SDL.qpg
], [chmod +x sdl-config])