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