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