configure.in
author Sam Lantinga <slouken@libsdl.org>
Fri, 30 Dec 2011 14:14:45 -0500
branchSDL-1.2
changeset 6130 987c365cc7bf
parent 6112 60dfd25009b0
child 6143 29811864f4cf
permissions -rw-r--r--
Fixed bug 938 - SDL fails to link in mingw+msys+libtool

Carlo Bramini 2010-01-27 10:06:17 PST
When building third party software powered by libtool (like xine-lib and
several others) under Mingw+MSys, libSDL fails to link.
I got this message when building SDL video out component of xine-lib:

*** Warning: linker path does not have real file for library -lmingw32.
*** I have the capability to make that library automatically link in when
*** you link to this library. But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libmingw32 and none of the candidates passed a file format test
*** using a file magic. Last file checked: /mingw/lib/libmingw32.a

Apparently there is no need to manually add -lmingw32 for making libSDL
working.
If this flag is removed, everything is built without troubles.
If it has been added for fixing a cross-compiler, perhaps if would be a better
idea to adjust its SPECS file in the same manner it has been done in the true
one used by mingw on Windows (I'm just guessing why it exists here).

There is also another message received on the console:

*** Warning: linker path does not have real file for library -lSDLmain.
*** I have the capability to make that library automatically link in when
*** you link to this library. But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libSDLmain and none of the candidates passed a file format test
*** using a file magic. Last file checked: /mingw/lib/libSDLmain.a

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