Mercurial > sdl-ios-xcode
view configure.in @ 1353:7ba544e2888d
Started the process of improving configure support, and merging C types
and library support into a single header.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Thu, 09 Feb 2006 09:07:13 +0000 |
parents | c643342f3f33 |
children | 22f39393668a |
line wrap: on
line source
dnl Process this file with autoconf to produce a configure script. AC_INIT(README) AC_CONFIG_HEADER(include/SDL_config.h) AC_GNU_SOURCE 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=10 SDL_INTERFACE_AGE=3 SDL_BINARY_AGE=10 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 Disable autoheader AUTOHEADER=: dnl Check for tools AC_LIBTOOL_WIN32_DLL AM_PROG_LIBTOOL AC_PROG_MAKE_SET AC_PROG_CC AC_PROG_CXX AC_PROG_INSTALL 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 See whether we are allowed to use the system C library AC_ARG_ENABLE(libc, [ --enable-libc Use the system C library [default=yes]], , AC_DEFINE([HAVE_LIBC])) dnl Check for compiler characteristics AC_C_CONST AC_C_INLINE AC_C_VOLATILE dnl Check for header files AC_HEADER_STDC AC_CHECK_HEADERS(sys/types.h stdio.h stdlib.h stddef.h stdarg.h malloc.h memory.h string.h strings.h inttypes.h stdint.h ctype.h signal.h) dnl Check for typedefs, structures, etc. AC_TYPE_SIZE_T if test x$ac_cv_header_inttypes_h = xyes -o x$ac_cv_header_stdint_h = xyes; then AC_CHECK_TYPE(int64_t) if test x$ac_cv_type_int64_t = xyes; then AC_DEFINE(SDL_HAS_64BIT_TYPE) fi else AC_CHECK_SIZEOF(char, 1) AC_CHECK_SIZEOF(short, 2) AC_CHECK_SIZEOF(int, 4) AC_CHECK_SIZEOF(long, 4) AC_CHECK_SIZEOF(long long, 8) if test x$ac_cv_sizeof_char = x1; then AC_DEFINE(int8_t, signed char) AC_DEFINE(uint8_t, unsigned char) fi if test x$ac_cv_sizeof_short = x2; then AC_DEFINE(int16_t, signed short) AC_DEFINE(uint16_t, unsigned short) else if test x$ac_cv_sizeof_int = x2; then AC_DEFINE(int16_t, signed int) AC_DEFINE(uint16_t, unsigned int) fi fi if test x$ac_cv_sizeof_int = x4; then AC_DEFINE(int32_t, signed int) AC_DEFINE(uint32_t, unsigned int) else if test x$ac_cv_sizeof_long = x4; then AC_DEFINE(int32_t, signed long) AC_DEFINE(uint32_t, unsigned long) fi fi if test x$ac_cv_sizeof_long = x8; then AC_DEFINE(int64_t, signed long) AC_DEFINE(uint64_t, unsigned long) AC_DEFINE(SDL_HAS_64BIT_TYPE) else if test x$ac_cv_sizeof_long_long = x8; then AC_DEFINE(int64_t, signed long long) AC_DEFINE(uint64_t, unsigned long long) AC_DEFINE(SDL_HAS_64BIT_TYPE) fi fi AC_CHECK_TYPE(uintptr_t, unsigned long) fi dnl Checks for library functions. AC_FUNC_ALLOCA AC_FUNC_MEMCMP if test x$ac_cv_func_memcmp_working = xyes; then AC_DEFINE(HAVE_MEMCMP) fi AC_FUNC_STRTOD if test x$ac_cv_func_strtod = xyes; then AC_DEFINE(HAVE_STRTOD) fi AC_CHECK_FUNCS(malloc calloc realloc free getenv putenv unsetenv qsort abs bcopy memset memcpy memmove strlen strcpy strncpy strcat strncat strdup _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa _uitoa _ultoa strtol _i64toa _ui64toa strtoll atoi atof strcmp strncmp stricmp strcasecmp sscanf snprintf vsnprint) 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$have_loadso != xyes && \ test x$enable_alsa_shared = xyes; then AC_MSG_ERROR([You must have SDL_LoadObject() support]) fi if test x$have_loadso = 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$have_loadso != xyes && \ test x$enable_esd_shared = xyes; then AC_MSG_ERROR([You must have SDL_LoadObject() support]) fi if test x$have_loadso = 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$have_loadso != xyes && \ test x$enable_arts_shared = xyes; then AC_MSG_ERROR([You must have SDL_LoadObject() support]) fi if test x$have_loadso = 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: if a platform needs more than this, fill it in! case "$target" in *-*-darwin* ) x11_lib='/usr/X11R6/lib/libX11.6.dylib' x11ext_lib='/usr/X11R6/lib/libXext.6.dylib' ;; *-*-osf* ) x11_lib='libX11.so' x11ext_lib='libXext.so' ;; *) x11_lib='libX11.so.6' x11ext_lib='libXext.so.6' ;; esac if test x$have_loadso != xyes && \ test x$enable_x11_shared = xyes; then AC_MSG_ERROR([You must have SDL_LoadObject() support]) fi if test x$have_loadso = xyes && \ test x$enable_x11_shared = xyes && test x$x11_lib != x && test x$x11ext_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" echo "-- dynamic libX11 -> $x11_lib" echo "-- dynamic libX11ext -> $x11ext_lib" 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(dga, [ --enable-dga allow use of X11 DGA code [default=yes]], , enable_dga=yes) if test x$enable_dga = xyes; then VIDEO_SUBDIRS="$VIDEO_SUBDIRS Xext/Xxf86dga" VIDEO_DRIVERS="$VIDEO_DRIVERS Xext/Xxf86dga/libXext_Xxf86dga.la" fi AC_ARG_ENABLE(video-dga, [ --enable-video-dga use DGA 2.0 video driver [default=yes]], , enable_video_dga=yes) if test x$enable_dga = xyes -a x$enable_video_dga = xyes; then CFLAGS="$CFLAGS -DENABLE_DGA" VIDEO_SUBDIRS="$VIDEO_SUBDIRS dga" VIDEO_DRIVERS="$VIDEO_DRIVERS dga/libvideo_dga.la" fi 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 -a x$enable_video_x11_dgamouse = xyes; then CFLAGS="$CFLAGS -DXFREE86_DGAMOUSE -DDEFAULT_DGAMOUSE" fi 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 CFLAGS="$CFLAGS -DXFREE86_VM -DXFREE86_VMGAMMA" VIDEO_SUBDIRS="$VIDEO_SUBDIRS Xext/Xxf86vm" VIDEO_DRIVERS="$VIDEO_DRIVERS Xext/Xxf86vm/libXext_Xxf86vm.la" 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 CFLAGS="$CFLAGS -DXFREE86_XV" VIDEO_SUBDIRS="$VIDEO_SUBDIRS Xext/Xv" VIDEO_DRIVERS="$VIDEO_DRIVERS Xext/Xv/libXext_Xv.la" 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 CFLAGS="$CFLAGS -DHAVE_XINERAMA" VIDEO_SUBDIRS="$VIDEO_SUBDIRS Xext/Xinerama" VIDEO_DRIVERS="$VIDEO_DRIVERS Xext/Xinerama/libXext_Xinerama.la" 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 CFLAGS="$CFLAGS -DHAVE_XIGXME" VIDEO_SUBDIRS="$VIDEO_SUBDIRS Xext/XME" VIDEO_DRIVERS="$VIDEO_DRIVERS Xext/XME/libXME.la" fi 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 CheckOpenGLX11() { 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 -DHAVE_OPENGL_X11" if test x$have_loadso != 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$have_loadso != 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 the Touchscreen input library CheckTslib() { AC_ARG_ENABLE(input-tslib, [ --enable-input-tslib use the Touchscreen library for input [default=yes]], , enable_input_tslib=yes) if test x$enable_input_tslib = xyes; then AC_MSG_CHECKING(for Touchscreen library support) enable_input_tslib=no AC_TRY_COMPILE([ #include "tslib.h" ],[ ],[ enable_input_tslib=yes ]) AC_MSG_RESULT($enable_input_tslib) if test x$enable_input_tslib = xyes; then CFLAGS="$CFLAGS -DHAVE_TSLIB" SYSTEM_LIBS="$SYSTEM_LIBS -lts" 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 *-*-linux*) pthread_cflags="-D_REENTRANT -D_GNU_SOURCE" pthread_lib="-lpthread" ;; *-*-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/include -D_REENTRANT -D_THREAD_SAFE" pthread_lib="-L/usr/lib -lpthread" ;; *-*-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 if test x$has_recursive_mutexes = xno; then AC_TRY_COMPILE([ #include <pthread.h> ],[ pthread_mutexattr_t attr; pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); ],[ has_recursive_mutexes=yes CFLAGS="$CFLAGS -DPTHREAD_RECURSIVE_MUTEX" ]) fi if test x$has_recursive_mutexes = xno; then AC_TRY_COMPILE([ #include <pthread.h> ],[ pthread_mutexattr_t attr; pthread_mutexattr_setkind_np(&attr, PTHREAD_MUTEX_RECURSIVE_NP); ],[ has_recursive_mutexes=yes CFLAGS="$CFLAGS -DPTHREAD_RECURSIVE_MUTEX_NP" ]) fi AC_MSG_RESULT($has_recursive_mutexes) if test x$has_recursive_mutexes = xno; 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 wscons video driver if enabled CheckWscons() { AC_ARG_ENABLE(video-wscons, [ --enable-video-wscons use wscons video driver [default=no]], , enable_video_wscons=no) if test x$enable_video = xyes -a x$enable_video_wscons = xyes; then AC_MSG_CHECKING(for wscons support) video_wscons=no AC_LANG_C AC_TRY_COMPILE([ #include <sys/time.h> #include <dev/wscons/wsconsio.h> ],[ ],[ video_wscons=yes ]) AC_MSG_RESULT($video_wscons) if test x$video_wscons = xyes; then CFLAGS="$CFLAGS -DENABLE_WSCONS" VIDEO_SUBDIRS="$VIDEO_SUBDIRS wscons" VIDEO_DRIVERS="$VIDEO_DRIVERS wscons/libvideo_wscons.la" else AC_MSG_ERROR([ *** Failed to find wscons includes.]) 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) have_loadso=no AC_TRY_COMPILE([ #include <dlfcn.h> ],[ ],[ have_loadso=yes ]) AC_MSG_RESULT($have_loadso) if test x$have_loadso = 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 have_loadso=yes 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() { have_altivec_h_hdr=no AC_CHECK_HEADER(altivec.h, have_altivec_h_hdr=yes) 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" if test x$have_altivec_h_hdr = xyes; then 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) else AC_TRY_COMPILE([ 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 AC_MSG_CHECKING(for Altivec with GCC -faltivec option) CFLAGS="${save_CFLAGS} -DGCC_ALTIVEC -DUSE_ALTIVEC_BLITTERS -faltivec" if test x$have_altivec_h_hdr = xyes; then 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) else AC_TRY_COMPILE([ vector unsigned int vzero() { return vec_splat_u32(0); } ],[ ],[ have_gcc_altivec=yes ]) AC_MSG_RESULT($have_gcc_altivec) fi fi if test x$have_gcc_altivec = xno; then CFLAGS="${save_CFLAGS}" else if test x$have_altivec_h_hdr = xyes; then CFLAGS="${CFLAGS} -DHAVE_ALTIVEC_H" fi 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) } have_loadso=no 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 CheckFBCON CheckDirectFB CheckPS2GS CheckGGI CheckSVGA CheckAAlib CheckQtopia CheckPicoGUI CheckOpenGLX11 CheckInputEvents CheckTslib 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 CheckSVGA CheckAAlib CheckOpenGLX11 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 CheckSVGA CheckAAlib CheckOpenGLX11 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 CheckWscons CheckOpenGLX11 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 CheckOpenGLX11 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 CheckOpenGLX11 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 CheckOpenGLX11 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 CheckOpenGLX11 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 CheckOpenGLX11 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 CheckOpenGLX11 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 CheckOpenGLX11 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 # FIXME: If building without -lX11, you get the following messages. # Xlib: connection to ":0.0" refused by server # Xlib: XDM authorization key matches an existing client! # It only has to run xhost +localhost in a such case. #if test x$enable_x11_shared = xyes; then # SYSTEM_LIBS="$SYSTEM_LIBS -lX11" #fi ;; *-*-qnx*) ARCH=qnx CheckDummyVideo CheckDiskAudio # CheckNASM CheckDLOPEN CheckNAS CheckPHOTON CheckX11 CheckOpenGLX11 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 have_loadso=yes 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 have_loadso=yes 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 have_loadso=yes 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 have_loadso=yes CheckDummyVideo CheckDiskAudio CheckCOCOA CheckCARBON CheckX11 CheckMacGL CheckOpenGLX11 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" 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/Xext/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) _AM_DEPENDENCIES(OBJC) ;; 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/stdlib/Makefile 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/os2fslib/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/wscons/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/gapi/Makefile src/video/x11/Makefile src/video/xbios/Makefile src/video/Xext/Makefile src/video/Xext/extensions/Makefile src/video/Xext/Xinerama/Makefile src/video/Xext/Xv/Makefile src/video/Xext/Xxf86dga/Makefile src/video/Xext/Xxf86vm/Makefile src/video/Xext/XME/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])