view configure.in @ 2:836aaee3f39e

*** empty log message ***
author Sam Lantinga <slouken@lokigames.com>
date Thu, 26 Apr 2001 16:52:25 +0000
parents cf2af46e9e2a
children 735e5a8696d0
line wrap: on
line source

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=1
SDL_INTERFACE_AGE=1
SDL_BINARY_AGE=1
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 Setup for automake
AM_INIT_AUTOMAKE(SDL, $SDL_VERSION)

dnl Detect the canonical host and target build environment
AC_CANONICAL_HOST
AC_CANONICAL_TARGET

dnl Check for tools

AC_LIBTOOL_WIN32_DLL
AM_PROG_LIBTOOL
AC_PROG_MAKE_SET
AC_PROG_CC
AC_C_INLINE
AC_C_CONST
case "$target" in
    *-*-beos*)
        AC_PROG_CXX
        ;;
    *-*-aix*)
        AC_PROG_CXX
        ;;
    # This is stupid, but necessary on some versions of Linux (joysticks)
    *-*-linux*)
        AC_PROG_CXX
        ;;
esac
AC_PROG_INSTALL
AC_FUNC_ALLOCA

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=486"
            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

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
        AC_TRY_COMPILE([
          #ifdef linux
          #include <linux/soundcard.h>
          #endif
          #ifdef __FreeBSD__
          #include <machine/soundcard.h>
          #endif
          #ifdef __bsdi__
          #include <sys/soundcard.h>
          #endif
          #ifdef __OpenBSD__
          #include <soundcard.h>
          #endif
          #ifdef __USLC__
          #include <sys/soundcard.h>
          #endif
        ],[
	  int arg = SNDCTL_DSP_SETFRAGMENT;
        ],[
        have_oss=yes
        ])
        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
        have_alsa=no
        AC_CHECK_HEADER(sys/asoundlib.h, have_alsa_hdr=yes)
        AC_CHECK_LIB(asound, snd_pcm_open, have_alsa_lib=yes)
        if test x$have_alsa_hdr = xyes -a x$have_alsa_lib = xyes; then
            CFLAGS="$CFLAGS -DALSA_SUPPORT"
            SYSTEM_LIBS="$SYSTEM_LIBS -lasound"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS alsa"
            AUDIO_DRIVERS="$AUDIO_DRIVERS alsa/libaudio_alsa.la"
        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, [
            CFLAGS="$CFLAGS -DESD_SUPPORT $ESD_CFLAGS"
            SYSTEM_LIBS="$SYSTEM_LIBS $ESD_LIBS"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS esd"
            AUDIO_DRIVERS="$AUDIO_DRIVERS esd/libaudio_esd.la"
        ])
    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`
            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
                CFLAGS="$CFLAGS -DARTSC_SUPPORT $ARTSC_CFLAGS"
                SYSTEM_LIBS="$SYSTEM_LIBS $ARTSC_LIBS"
                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
	fi
	AC_MSG_RESULT($have_nas)
	if test x$have_nas = xyes; then
	    CFLAGS="$CFLAGS -DNAS_SUPPORT"
	    SYSTEM_LIBS="$SYSTEM_LIBS -laudio -lXt"
	    AUDIO_SUBDIRS="$AUDIO_SUBDIRS nas"
	    AUDIO_DRIVERS="$AUDIO_DRIVERS nas/libaudio_nas.la"
	fi
    fi
}

dnl See if we can use x86 assembly blitters
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"
                  ;;
              *)
                  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"
        fi
    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
            CFLAGS="$CFLAGS $X_CFLAGS -DENABLE_X11"
            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"

            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 <X11/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"
                    # Check for nasty XFree86 4.0/Glide hack
                    AC_ARG_ENABLE(xfree86_glidehack,
[  --enable-xfree86-glidehack Alternate vidmode lib for old Glide [default=no]],
                                  , enable_xfreeglidehack=no)
                    if test x$enable_xfree86_glidehack = xyes; then
                        ac_save_libs="$LIBS"
                        LIBS="$LIBS $X_LIBS -lX11 -lXext"
                        if test x$xfree86_glidehack = x; then
                            AC_CHECK_LIB(Xxf86vm, XF40VidModeQueryExtension, xfree86_glidehack=Xxf86vm)
                        fi
                        if test x$xfree86_glidehack = x; then
                            AC_CHECK_LIB(Xxf86vm40, XF40VidModeQueryExtension, xfree86_glidehack=Xxf86vm40)
                        fi
                        LIBS="$ac_save_libs"
                    fi
                    if test x$xfree86_glidehack != x; then
                        CFLAGS="$CFLAGS -DXFREE86_VM_DYNAMIC_HACK"
                        SYSTEM_LIBS="$SYSTEM_LIBS -l$xfree86_glidehack"
                    else
                        SYSTEM_LIBS="$SYSTEM_LIBS -lXxf86vm"
                    fi
                    AC_MSG_CHECKING(for XFree86 VidMode gamma support)
                    video_x11_vmgamma=no
                    AC_TRY_COMPILE([
                     #include <X11/Xlib.h>
                     #include <X11/extensions/xf86vmode.h>
                    ],[
                     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(video-x11-dgamouse,
[  --enable-video-x11-dgamouse  use X11 DGA for mouse events [default=yes]],
                          , enable_video_x11_dgamouse=yes)
            AC_MSG_CHECKING(for XFree86 DGA 1.0 support)
            video_x11_dga=no
            AC_TRY_COMPILE([
             #include <X11/Xlib.h>
             #include <X11/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
                SYSTEM_LIBS="$SYSTEM_LIBS -lXxf86dga"
            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 <X11/extensions/Xvlib.h>
                ],[
                 XvImage *image;
                ],[
                video_x11_xv=yes
                ])
                AC_MSG_RESULT($video_x11_xv)
                if test x$video_x11_xv = xyes; then
                    CFLAGS="$CFLAGS -DXFREE86_XV"
                    SYSTEM_LIBS="$SYSTEM_LIBS -lXv"
                fi
            fi
        fi
    fi
}
CheckPHOTON()
{
    AC_ARG_ENABLE(video-photon,
[  --enable-video-photon   use QNX Photonvideo 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
            SYSTEM_LIBS="$SYSTEM_LIBS -lph"
            VIDEO_SUBDIRS="$VIDEO_SUBDIRS photon"
            VIDEO_DRIVERS="$VIDEO_DRIVERS photon/libvideo_photon.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
        AC_MSG_CHECKING(for XFree86 DGA 2.0 support)
        video_x11_dga2=no
        AC_TRY_COMPILE([
         #include <X11/Xlib.h>
         #include <X11/extensions/xf86dga.h>
        ],[
         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
}

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 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 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 rcg04172001 Set up the Null video driver.
CheckDummyVideo()
{
    AC_ARG_ENABLE(video-dummy,
[  --enable-video-dummy   use dummy video driver [default=no]],
                  , enable_video_dummy=no)
    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"
            AC_CHECK_LIB(dl, dlopen, SYSTEM_LIBS="$SYSTEM_LIBS -ldl")
        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*)
                SDL_LIBS="$SDL_LIBS -framework OpenGL -framework AGL"
        esac
    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 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)
    ac_save_libs="$LIBS"
    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"
            ;;
        *-*-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"
            ;;
        *-*-qnx*)
            pthread_cflags=""
            pthread_lib=""
            ;;
        *)
            pthread_cflags="-D_REENTRANT"
            pthread_lib="-lpthread"
            ;;
    esac
    LIBS="$LIBS $pthread_lib"
    if test x$enable_threads = xyes -a x$enable_pthreads = xyes; then
        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)
        if test x$use_pthreads = xyes; then
            CFLAGS="$CFLAGS $pthread_cflags -DSDL_USE_PTHREADS"
            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;
              #ifdef linux
              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
                *-*-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 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
    LIBS="$ac_save_libs"

    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 clone() on Linux directly
    use_clone=no
    if test x$enable_threads = xyes -a x$use_pthreads != xyes; then
        case "$target" in
            *-*-linux*)
                use_clone=yes
                ;;
            *)
                CFLAGS="$CFLAGS -DFORK_HACK"
                ;;
        esac
    fi
    AM_CONDITIONAL(USE_CLONE, test x$use_clone = xyes)
}

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
        AC_TRY_COMPILE([
         #include "src/video/windx5/directx.h"
        ],[
        ],[
        use_directx=yes
        ])
        AC_MSG_RESULT($use_directx)
    fi
    AM_CONDITIONAL(USE_DIRECTX, test x$use_directx = xyes)

    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 Mac toolbox video driver for Mac OS 7-9
CheckTOOLBOX()
{
    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"
}

dnl Set up the Mac toolbox video driver for Mac OS X
CheckCARBON()
{
    # "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"
}

dnl Set up the kernel statistics library for Solaris
CheckKSTAT()
{
    CFLAGS="$CFLAGS -DHAVE_KSTAT"
    SYSTEM_LIBS="$SYSTEM_LIBS -lkstat"
}

case "$target" in
    *-*-linux*)
        ARCH=linux
        CheckDummyVideo
        CheckNASM
        CheckOSS
        CheckALSA
        CheckARTSC
        CheckESD
        CheckNAS
        CheckX11
        CheckDGA
        CheckFBCON
        CheckGGI
        CheckSVGA
        CheckAAlib
        CheckOpenGL
        CheckInputEvents
        CheckPTHREAD
        # Set up files for the main() stub
        COPY_ARCH_SRC(src/main, linux, SDL_main.c)
        # 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
        #    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
            JOYSTICK_SUBDIRS="$JOYSTICK_SUBDIRS linux"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS linux/libjoystick_linux.la"
        fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
            COPY_ARCH_SRC(src/cdrom, linux, SDL_syscdrom.c)
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            if test x$use_pthreads != xyes; then
                COPY_ARCH_SRC(src/thread, linux, clone.S)
            fi
            COPY_ARCH_SRC(src/thread, linux, SDL_systhread.c)
            COPY_ARCH_SRC(src/thread, linux, SDL_systhread_c.h)
            if test x$use_pthreads = xyes -a x$enable_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)
            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)
                COPY_ARCH_SRC(src/thread, generic, SDL_syscond.c)
                COPY_ARCH_SRC(src/thread, generic, SDL_syscond_c.h)
            else
                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_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
        ;;
    *-*-bsdi*)
        ARCH=bsdi
        CheckDummyVideo
        CheckNASM
        CheckOSS
        CheckNAS
        CheckX11
        CheckDGA
        CheckSVGA
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        # Set up files for the main() stub
        COPY_ARCH_SRC(src/main, linux, SDL_main.c)
        # 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
            COPY_ARCH_SRC(src/cdrom, dummy, SDL_syscdrom.c)
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            COPY_ARCH_SRC(src/thread, linux, SDL_systhread.c)
            COPY_ARCH_SRC(src/thread, linux, 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, generic, SDL_syssem.c)
            COPY_ARCH_SRC(src/thread, generic, SDL_syssem_c.h)
            COPY_ARCH_SRC(src/thread, linux, 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, linux, SDL_systimer.c)
        fi
        ;;
    *-*-freebsd*)
        ARCH=freebsd
        CheckDummyVideo
        CheckNASM
        CheckOSS
        CheckARTSC
        CheckESD
        CheckNAS
        CheckX11
        CheckDGA
        CheckSVGA
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        # Set up files for the main() stub
        COPY_ARCH_SRC(src/main, linux, SDL_main.c)
        # 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
        #    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
            COPY_ARCH_SRC(src/cdrom, freebsd, SDL_syscdrom.c)
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            COPY_ARCH_SRC(src/thread, linux, SDL_systhread.c)
            COPY_ARCH_SRC(src/thread, linux, SDL_systhread_c.h)
            COPY_ARCH_SRC(src/thread, linux, SDL_sysmutex.c)
            COPY_ARCH_SRC(src/thread, linux, SDL_sysmutex_c.h)
            if test x$use_pthreads = xyes -a x$enable_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)
            COPY_ARCH_SRC(src/thread, linux, 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, linux, SDL_systimer.c)
        fi
        ;;
    *-*-netbsd*)
        ARCH=netbsd
        CheckDummyVideo
        CheckNASM
        CheckOSS
        CheckARTSC
        CheckESD
        CheckNAS
        CheckX11
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        # Set up files for the main() stub
        COPY_ARCH_SRC(src/main, linux, SDL_main.c)
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            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
            COPY_ARCH_SRC(src/cdrom, openbsd, SDL_syscdrom.c)
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            COPY_ARCH_SRC(src/thread, linux, SDL_systhread.c)
            COPY_ARCH_SRC(src/thread, linux, SDL_systhread_c.h)
            COPY_ARCH_SRC(src/thread, linux, SDL_sysmutex.c)
            COPY_ARCH_SRC(src/thread, linux, SDL_sysmutex_c.h)
	    if test x$use_pthreads = xyes -a x$enable_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)
            COPY_ARCH_SRC(src/thread, linux, 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, linux, SDL_systimer.c)
        fi
        # NetBSD does not define "unix"
        CFLAGS="$CFLAGS -Dunix"
        ;;
    *-*-openbsd*)
        ARCH=openbsd
        CFLAGS="$CFLAGS -Dunix"
        CheckDummyVideo
        CheckNASM
        CheckOSS
        CheckARTSC
        CheckESD
        CheckNAS
        CheckX11
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        # Set up files for the main() stub
        COPY_ARCH_SRC(src/main, linux, SDL_main.c)
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            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
            COPY_ARCH_SRC(src/cdrom, openbsd, SDL_syscdrom.c)
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            COPY_ARCH_SRC(src/thread, linux, SDL_systhread.c)
            COPY_ARCH_SRC(src/thread, linux, SDL_systhread_c.h)
            COPY_ARCH_SRC(src/thread, linux, SDL_sysmutex.c)
            COPY_ARCH_SRC(src/thread, linux, SDL_sysmutex_c.h)
            if test x$use_pthreads = xyes -a x$enable_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)
            COPY_ARCH_SRC(src/thread, linux, 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, linux, SDL_systimer.c)
        fi
        ;;
    *-*-sysv5*)
        ARCH=sysv5
        CheckDummyVideo
        CheckNASM
        CheckOSS
        CheckARTSC
        CheckESD
        CheckNAS
        CheckX11
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        CheckKSTAT
        # Set up files for the main() stub
        COPY_ARCH_SRC(src/main, linux, SDL_main.c)
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            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
            COPY_ARCH_SRC(src/cdrom, dummy, SDL_syscdrom.c)
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            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
        # 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
        CheckNASM
        CheckARTSC
        CheckESD
        CheckNAS
        CheckX11
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        CheckKSTAT
        # Set up files for the main() stub
        COPY_ARCH_SRC(src/main, linux, SDL_main.c)
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            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
            COPY_ARCH_SRC(src/cdrom, linux, SDL_syscdrom.c)
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            COPY_ARCH_SRC(src/thread, linux, SDL_systhread.c)
            COPY_ARCH_SRC(src/thread, linux, 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
        # 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
        CheckNAS
        CheckX11
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        # Set up files for the main() stub
        COPY_ARCH_SRC(src/main, linux, SDL_main.c)
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS dmedia"
            AUDIO_DRIVERS="$AUDIO_DRIVERS dmedia/libaudio_dmedia.la"
            LIBS="$LIBS -laudio"
        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
            COPY_ARCH_SRC(src/cdrom, dummy, SDL_syscdrom.c)
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            if test x$use_pthreads = xyes; then
                COPY_ARCH_SRC(src/thread, linux, SDL_systhread.c)
                COPY_ARCH_SRC(src/thread, linux, SDL_systhread_c.h)
                COPY_ARCH_SRC(src/thread, linux, SDL_sysmutex.c)
                COPY_ARCH_SRC(src/thread, linux, SDL_sysmutex_c.h)
                if test x$enable_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)
                COPY_ARCH_SRC(src/thread, linux, SDL_syscond.c)
                COPY_ARCH_SRC(src/thread, generic, SDL_syscond_c.h)
            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
        CheckNAS
        CheckX11
        CheckGGI
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        # Set up files for the main() stub
        COPY_ARCH_SRC(src/main, linux, SDL_main.c)
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            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
            COPY_ARCH_SRC(src/cdrom, dummy, SDL_syscdrom.c)
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            COPY_ARCH_SRC(src/thread, linux, SDL_systhread.c)
            COPY_ARCH_SRC(src/thread, linux, 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, linux, 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, linux, SDL_systimer.c)
        fi
        ;;
    *-*-aix*)
        ARCH=aix
        CheckDummyVideo
        CheckNAS
        CheckX11
        CheckGGI
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        # Set up files for the main() stub
        COPY_ARCH_SRC(src/main, linux, SDL_main.c)
        # 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
            COPY_ARCH_SRC(src/cdrom, aix, SDL_syscdrom.c)
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            COPY_ARCH_SRC(src/thread, linux, SDL_systhread.c)
            COPY_ARCH_SRC(src/thread, linux, 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, linux, 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, linux, SDL_systimer.c)
        fi
        ;;
    *-*-osf*)
        ARCH=osf
        CheckDummyVideo
        CheckNAS
        CheckX11
        CheckGGI
        CheckAAlib
        CheckOpenGL
        CheckPTHREAD
        # Set up files for the main() stub
        COPY_ARCH_SRC(src/main, linux, SDL_main.c)
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            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 cdrom support yet)
        if test x$enable_cdrom = xyes; then
            COPY_ARCH_SRC(src/cdrom, dummy, SDL_syscdrom.c)
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            COPY_ARCH_SRC(src/thread, linux, SDL_systhread.c)
            COPY_ARCH_SRC(src/thread, linux, 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, generic, SDL_syssem.c)
            COPY_ARCH_SRC(src/thread, generic, SDL_syssem_c.h)
            COPY_ARCH_SRC(src/thread, linux, 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, linux, SDL_systimer.c)
        fi
        ;;
    *-*-qnx*)
        ARCH=qnx
        CheckDummyVideo
        CheckNAS
        CheckPHOTON
        CheckX11
        CheckOpenGL
        CheckPTHREAD
        # Set up files for the main() stub
        COPY_ARCH_SRC(src/main, linux, SDL_main.c)
        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            CFLAGS="$CFLAGS -DALSA_SUPPORT"
            SYSTEM_LIBS="$SYSTEM_LIBS -lasound"
            AUDIO_SUBDIRS="$AUDIO_SUBDIRS nto"
            AUDIO_DRIVERS="$AUDIO_DRIVERS nto/libaudio_nto.la"
            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
        # (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
            COPY_ARCH_SRC(src/cdrom, qnx, SDL_syscdrom.c)
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            COPY_ARCH_SRC(src/thread, linux, SDL_systhread.c)
            COPY_ARCH_SRC(src/thread, linux, 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, linux, 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, 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 [ "$BUILD_PREFIX" != "" ]; then
                ac_default_prefix=$BUILD_PREFIX
            fi
        fi
        CheckDummyVideo
        CheckWIN32
        CheckDIRECTX
        CheckNASM
        # Set up files for the main() stub
        COPY_ARCH_SRC(src/main, win32, SDL_main.c)
        # 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
            COPY_ARCH_SRC(src/cdrom, win32, SDL_syscdrom.c)
        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"
                SDL_CFLAGS="$SDL_CFLAGS -I/usr/include/mingw -DWIN32 -Uunix"
                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
        CheckNASM
        CheckBWINDOW
        CheckBeGL
        # Set up files for the main() stub
        COPY_ARCH_SRC(src/main, linux, SDL_main.c)
        COPY_ARCH_SRC(src/main, beos, SDL_BeApp.cc)
        COPY_ARCH_SRC(src/main, beos, SDL_BeApp.h)
        # 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
            COPY_ARCH_SRC(src/cdrom, beos, SDL_syscdrom.c)
        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
        CheckTOOLBOX
        CheckMacGL
        # Set up files for the main() stub
        COPY_ARCH_SRC(src/main, macos, SDL_main.c)
        # 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
            COPY_ARCH_SRC(src/cdrom, macos, SDL_syscdrom.c)
        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* )
        # Strictly speaking, we want "Mac OS X", not "Darwin", which is
        # just the OS X kernel sans upper layers like Carbon.  But
        # config.guess comes back with "darwin", so go with the flow.
        ARCH=macos
        CheckDummyVideo
        CheckCARBON
        CheckMacGL
        CheckPTHREAD
        # Set up files for the main() stub
        # COPY_ARCH_SRC(src/main, macos, SDL_main.c)
        COPY_ARCH_SRC(src/main, linux, SDL_main.c)
        # 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 dummy"
            JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS dummy/libjoystick_dummy.la"
        fi
        # Set up files for the cdrom library
        if test x$enable_cdrom = xyes; then
            COPY_ARCH_SRC(src/cdrom, dummy, SDL_syscdrom.c)
        fi
        # Set up files for the thread library
        if test x$enable_threads = xyes; then
            COPY_ARCH_SRC(src/thread, linux, SDL_systhread.c)
            COPY_ARCH_SRC(src/thread, linux, SDL_systhread_c.h)
            COPY_ARCH_SRC(src/thread, linux, SDL_sysmutex.c)
            COPY_ARCH_SRC(src/thread, linux, SDL_sysmutex_c.h)
            if test x$use_pthreads = xyes -a x$enable_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)
            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, linux, SDL_systimer.c)
        fi
        # The MacOS X platform requires special setup
        SDL_CFLAGS="$SDL_CFLAGS -F/System/Library/Frameworks/Carbon.framework"
        SDL_LIBS="$SDL_LIBS -framework Carbon"
        ;;
    *)
        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_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_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)

# 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 $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

if test $ARCH = openbsd; then
  SDL_RLD_FLAGS="-Wl,-R\${exec_prefix}/lib -Wl,-R\${X11BASE}/lib"
fi

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(SDL_EXTRADIRS)
AC_SUBST(SDL_EXTRALIBS)
AC_SUBST(SYSTEM_LIBS)

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

dnl Expand the libraries needed for static linking
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/$ARCH"
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/main"
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/audio"
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/video"
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"
CXXFLAGS="$CFLAGS"

# 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/audio/Makefile
src/audio/alsa/Makefile
src/audio/arts/Makefile
src/audio/baudio/Makefile
src/audio/dma/Makefile
src/audio/dmedia/Makefile
src/audio/dsp/Makefile
src/audio/esd/Makefile
src/audio/macrom/Makefile
src/audio/nas/Makefile
src/audio/nto/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/cybergfx/Makefile
src/video/x11/Makefile
src/video/dga/Makefile
src/video/fbcon/Makefile
src/video/ggi/Makefile
src/video/maccommon/Makefile
src/video/macdsp/Makefile
src/video/macrom/Makefile
src/video/svga/Makefile
src/video/aalib/Makefile
src/video/wincommon/Makefile
src/video/windib/Makefile
src/video/windx5/Makefile
src/video/bwindow/Makefile
src/video/photon/Makefile
src/video/dummy/Makefile
src/events/Makefile
src/joystick/Makefile
src/joystick/beos/Makefile
src/joystick/dummy/Makefile
src/joystick/linux/Makefile
src/joystick/macos/Makefile
src/joystick/win32/Makefile
src/cdrom/Makefile
src/thread/Makefile
src/timer/Makefile
src/endian/Makefile
src/file/Makefile
src/hermes/Makefile
sdl-config
SDL.spec
], [chmod +x sdl-config])