configure.in
author Sam Lantinga <slouken@libsdl.org>
Sat, 09 Sep 2017 08:36:37 -0700
changeset 11480 e7a79b236dc0
parent 11472 f31b73040ea3
child 11532 4af4e3986438
permissions -rw-r--r--
Fixed bug 3760 - RWops doesn't check for integer overflow when stdio_fseek only supports 32 bits

Simon Hug

When RWops seeks with fseek or fseeko it uses the types long or off_t which can be 32 bits on some platforms. stdio_seek does not check if the 64-bit integer for the offset fits into a 32-bit integer. Offsets equal or larger than 2 GiB will have implementation-defined behavior and failure states would be very confusing to debug.

The attached patch adds range checking by using the macros from limits.h for long type and some bit shifting for off_t because POSIX couldn't be bothered to specify min and max macros.

It also defines HAVE_FSEEKI64 in SDL_config_windows.h so that the Windows function gets picked up automatically with the default config.

And there's an additional error message for when ftell fails.
slouken@0
     1
dnl Process this file with autoconf to produce a configure script.
slouken@7222
     2
AC_INIT(README.txt)
slouken@6235
     3
AC_CONFIG_HEADER(include/SDL_config.h)
slouken@6086
     4
AC_CONFIG_AUX_DIR(build-scripts)
icculus@5548
     5
AC_CONFIG_MACRO_DIR([acinclude])
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@6250
    13
# Edit include/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@6250
    21
SDL_MAJOR_VERSION=2
slouken@6250
    22
SDL_MINOR_VERSION=0
slouken@11326
    23
SDL_MICRO_VERSION=6
slouken@10595
    24
SDL_INTERFACE_AGE=0
slouken@11326
    25
SDL_BINARY_AGE=6
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
icculus@5888
    58
AC_CHECK_TOOL(WINDRES, [windres], [:])
slouken@3332
    59
slouken@7379
    60
dnl Make sure that srcdir is a full pathname
slouken@7573
    61
case "$host" in
slouken@7573
    62
    *-*-mingw32*)
slouken@7573
    63
        # Except on msys, where make can't handle full pathnames (bug 1972)
slouken@7573
    64
        ;;
slouken@7573
    65
    *)
slouken@7573
    66
        srcdir=`cd $srcdir && pwd`
slouken@7573
    67
        ;;
slouken@7573
    68
esac
slouken@7379
    69
slouken@1389
    70
dnl Set up the compiler and linker flags
slouken@11427
    71
INCLUDE="-I$srcdir/include -idirafter $srcdir/src/video/khronos"
slouken@1373
    72
if test x$srcdir != x.; then
slouken@1571
    73
    INCLUDE="-Iinclude $INCLUDE"
slouken@6217
    74
elif test -d .hg; then
slouken@6217
    75
    AC_MSG_ERROR([
slouken@6217
    76
*** When building from Mercurial you should configure and build in a
slouken@6235
    77
    separate directory so you don't clobber SDL_config.h, SDL_revision.h
slouken@6217
    78
])
slouken@1373
    79
fi
slouken@7498
    80
BASE_CFLAGS=""
slouken@7498
    81
BASE_LDFLAGS=""
slouken@1550
    82
case "$host" in
slouken@1389
    83
    *-*-cygwin*)
slouken@1389
    84
        # We build SDL on cygwin without the UNIX emulation layer
slouken@7498
    85
        save_CFLAGS="$CFLAGS"
slouken@7498
    86
        have_no_cygwin=no
slouken@7498
    87
        AC_MSG_CHECKING(for GCC -mno-cygwin option)
slouken@7498
    88
        CFLAGS="$save_CFLAGS -mno-cygwin"
slouken@7498
    89
slouken@7498
    90
        AC_TRY_COMPILE([
slouken@7498
    91
        ],[
slouken@7498
    92
        ],[
slouken@7498
    93
        have_no_cygwin=yes
slouken@7498
    94
        ])
slouken@7498
    95
        AC_MSG_RESULT($have_no_cygwin)
slouken@7498
    96
        CFLAGS="$save_CFLAGS"
slouken@7498
    97
slouken@7498
    98
        if test x$have_no_cygwin = xyes; then
slouken@7498
    99
            BASE_CFLAGS="-mno-cygwin"
slouken@7498
   100
            BASE_LDFLAGS="-mno-cygwin"
slouken@7498
   101
        fi
slouken@7498
   102
        BASE_CFLAGS="$BASE_CFLAGS -I/usr/include/mingw"
slouken@1389
   103
        ;;
slouken@1389
   104
esac
slouken@5030
   105
# Uncomment the following line if you want to force SDL and applications
slouken@5030
   106
# built with it to be compiled for a particular architecture.
slouken@5030
   107
#AX_GCC_ARCHFLAG([no], [BASE_CFLAGS="$BASE_CFLAGS $ax_cv_gcc_archflag]")
slouken@6235
   108
BUILD_CFLAGS="$CFLAGS $CPPFLAGS -DUSING_GENERATED_CONFIG_H"
slouken@6250
   109
# The default optimization for SDL is -O3 (Bug #31)
slouken@6378
   110
if test "x$orig_CFLAGS" = x; then
slouken@3382
   111
    BUILD_CFLAGS=`echo $BUILD_CFLAGS | sed 's/-O2/-O3/'`
slouken@3382
   112
fi
slouken@1521
   113
EXTRA_CFLAGS="$INCLUDE $BASE_CFLAGS"
slouken@1521
   114
BUILD_LDFLAGS="$LDFLAGS"
slouken@1521
   115
EXTRA_LDFLAGS="$BASE_LDFLAGS"
slouken@2163
   116
## These are common directories to find software packages
slouken@2163
   117
#for path in /usr/freeware /usr/pkg /usr/X11R6 /usr/local; do
slouken@1823
   118
#    if test -d $path/include; then
slouken@1823
   119
#        EXTRA_CFLAGS="$EXTRA_CFLAGS -I$path/include"
slouken@1823
   120
#    fi
slouken@1823
   121
#    if test -d $path/lib; then
slouken@1823
   122
#        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -L$path/lib"
slouken@1823
   123
#    fi
slouken@1823
   124
#done
slouken@1521
   125
SDL_CFLAGS="$BASE_CFLAGS"
slouken@6250
   126
SDL_LIBS="-lSDL2 $BASE_LDFLAGS"
slouken@1521
   127
CPPFLAGS="$CPPFLAGS $EXTRA_CFLAGS"
slouken@1521
   128
CFLAGS="$CFLAGS $EXTRA_CFLAGS"
slouken@1521
   129
LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS"
slouken@1373
   130
slouken@3391
   131
dnl set this to use on systems that use lib64 instead of lib
slouken@3391
   132
base_libdir=`echo \${libdir} | sed 's/.*\/\(.*\)/\1/; q'`
slouken@3391
   133
slouken@3391
   134
dnl Function to find a library in the compiler search path
slouken@3391
   135
find_lib()
slouken@3391
   136
{
slouken@3391
   137
    gcc_bin_path=[`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
slouken@3391
   138
    gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
slouken@3391
   139
    env_lib_path=[`echo $LIBS $LDFLAGS $* | sed 's/-L[ ]*//g'`]
slouken@3391
   140
    if test "$cross_compiling" = yes; then
slouken@3391
   141
        host_lib_path=""
slouken@3391
   142
    else
slouken@3391
   143
        host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
slouken@3391
   144
    fi
slouken@9252
   145
    for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do
slouken@7300
   146
        lib=[`ls -- $path/$1 2>/dev/null | sed -e '/\.so\..*\./d' -e 's,.*/,,' | sort | tail -1`]
slouken@3391
   147
        if test x$lib != x; then
slouken@3391
   148
            echo $lib
slouken@3391
   149
            return
slouken@3391
   150
        fi
slouken@3391
   151
    done
slouken@3391
   152
}
slouken@3391
   153
slouken@1353
   154
dnl Check for compiler characteristics
slouken@1341
   155
AC_C_CONST
slouken@1341
   156
AC_C_INLINE
slouken@1353
   157
AC_C_VOLATILE
slouken@1353
   158
slouken@3647
   159
dnl See whether we want assertions for debugging/sanity checking SDL itself.
slouken@3647
   160
AC_ARG_ENABLE(assertions,
slouken@3647
   161
AC_HELP_STRING([--enable-assertions],
slouken@3654
   162
               [Enable internal sanity checks (auto/disabled/release/enabled/paranoid) [[default=auto]]]),
slouken@3654
   163
              , enable_assertions=auto)
slouken@3654
   164
case "$enable_assertions" in
slouken@3654
   165
    auto) # Use optimization settings to determine assertion level
slouken@3654
   166
        ;;
slouken@3654
   167
    disabled)
icculus@5548
   168
        AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 0, [ ])
slouken@3654
   169
        ;;
slouken@3654
   170
    release)
icculus@5548
   171
        AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 1, [ ])
slouken@3654
   172
        ;;
slouken@3654
   173
    enabled)
icculus@5548
   174
        AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 2, [ ])
slouken@3654
   175
        ;;
slouken@3654
   176
    paranoid)
icculus@5548
   177
        AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 3, [ ])
slouken@3654
   178
        ;;
slouken@3654
   179
    *)
slouken@3654
   180
        AC_MSG_ERROR([*** unknown assertion level. stop.])
slouken@3654
   181
        ;;
slouken@3654
   182
esac
slouken@3647
   183
slouken@3354
   184
dnl See whether we can use gcc style dependency tracking
slouken@3354
   185
AC_ARG_ENABLE(dependency-tracking,
slouken@3354
   186
AC_HELP_STRING([--enable-dependency-tracking],
slouken@3354
   187
               [Use gcc -MMD -MT dependency tracking [[default=yes]]]),
slouken@3354
   188
              , enable_dependency_tracking=yes)
slouken@3354
   189
if test x$enable_dependency_tracking = xyes; then
slouken@3354
   190
    have_gcc_mmd_mt=no
slouken@3354
   191
    AC_MSG_CHECKING(for GCC -MMD -MT option)
slouken@3354
   192
    AC_TRY_COMPILE([
slouken@3354
   193
    #if !defined(__GNUC__) || __GNUC__ < 3
slouken@3354
   194
    #error Dependency tracking requires GCC 3.0 or newer
slouken@3354
   195
    #endif
slouken@3354
   196
    ],[
slouken@3354
   197
    ],[
slouken@3354
   198
    have_gcc_mmd_mt=yes
slouken@3354
   199
    ])
slouken@3354
   200
    AC_MSG_RESULT($have_gcc_mmd_mt)
slouken@3354
   201
slouken@3354
   202
    if test x$have_gcc_mmd_mt = xyes; then
slouken@3354
   203
        DEPENDENCY_TRACKING_OPTIONS="-MMD -MT \$@"
slouken@3354
   204
    fi
slouken@3354
   205
fi
slouken@5004
   206
icculus@7988
   207
AC_MSG_CHECKING(for linker option --no-undefined)
icculus@7988
   208
have_no_undefined=no
icculus@8003
   209
case "$host" in
icculus@8003
   210
    dnl Skip this on platforms where it is just simply busted.
icculus@8003
   211
    *-*-openbsd*)
icculus@8003
   212
        ;;
icculus@8003
   213
icculus@8003
   214
    *)
icculus@8003
   215
        save_LDFLAGS="$LDFLAGS"
icculus@8003
   216
        LDFLAGS="$LDFLAGS -Wl,--no-undefined"
icculus@8003
   217
        AC_TRY_LINK([
icculus@8003
   218
        ],[
icculus@8003
   219
        ],[
icculus@8003
   220
        have_no_undefined=yes
icculus@8003
   221
        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,--no-undefined"
icculus@8003
   222
        ])
icculus@8003
   223
        LDFLAGS="$save_LDFLAGS"
icculus@8003
   224
        ;;
icculus@8003
   225
esac
icculus@7988
   226
AC_MSG_RESULT($have_no_undefined)
slouken@6577
   227
slouken@1361
   228
dnl See whether we are allowed to use the system C library
slouken@1361
   229
AC_ARG_ENABLE(libc,
slouken@1637
   230
AC_HELP_STRING([--enable-libc], [Use the system C library [[default=yes]]]),
slouken@1361
   231
              , enable_libc=yes)
slouken@1361
   232
if test x$enable_libc = xyes; then
icculus@5548
   233
    AC_DEFINE(HAVE_LIBC, 1, [ ])
slouken@1353
   234
slouken@1361
   235
    dnl Check for C library headers
slouken@1361
   236
    AC_HEADER_STDC
slouken@11480
   237
    AC_CHECK_HEADERS(sys/types.h stdio.h stdlib.h stddef.h stdarg.h malloc.h memory.h string.h strings.h wchar.h inttypes.h stdint.h limits.h ctype.h math.h float.h iconv.h signal.h)
slouken@1361
   238
slouken@1361
   239
    dnl Check for typedefs, structures, etc.
slouken@1361
   240
    AC_TYPE_SIZE_T
slouken@1361
   241
slouken@3012
   242
    dnl Check for defines
slouken@3012
   243
    AC_CHECK_DEFINE(M_PI, math.h)
slouken@3012
   244
slouken@1361
   245
    dnl Checks for library functions.
icculus@2079
   246
    case "$host" in
icculus@2079
   247
    *-*-cygwin* | *-*-mingw32*)
icculus@2079
   248
        ;;
icculus@2079
   249
    *)
icculus@2079
   250
        AC_FUNC_ALLOCA
icculus@2079
   251
        ;;
icculus@2079
   252
    esac
icculus@2079
   253
slouken@1361
   254
    AC_FUNC_MEMCMP
slouken@1361
   255
    if test x$ac_cv_func_memcmp_working = xyes; then
icculus@5548
   256
        AC_DEFINE(HAVE_MEMCMP, 1, [ ])
slouken@1361
   257
    fi
slouken@1361
   258
    AC_FUNC_STRTOD
slouken@1361
   259
    if test x$ac_cv_func_strtod = xyes; then
icculus@5548
   260
        AC_DEFINE(HAVE_STRTOD, 1, [ ])
slouken@1361
   261
    fi
slouken@3405
   262
    AC_CHECK_FUNC(mprotect,
slouken@3405
   263
        AC_TRY_COMPILE([
slouken@3405
   264
          #include <sys/types.h>
slouken@3405
   265
          #include <sys/mman.h>
slouken@3405
   266
        ],[
slouken@3405
   267
        ],[
icculus@5548
   268
        AC_DEFINE(HAVE_MPROTECT, 1, [ ])
slouken@3405
   269
        ]),
slouken@3405
   270
    )
slouken@11337
   271
    AC_CHECK_FUNCS(malloc calloc realloc free getenv setenv putenv unsetenv qsort abs bcopy memset memcpy memmove wcslen wcscmp 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 vsscanf vsnprintf fopen64 fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname getauxval poll)
slouken@1373
   272
slouken@3014
   273
    AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"])
slouken@9080
   274
    AC_CHECK_FUNCS(atan atan2 acos asin ceil copysign cos cosf fabs floor log pow scalbn sin sinf sqrt sqrtf tan tanf)
slouken@3014
   275
slouken@5040
   276
    AC_CHECK_LIB(iconv, iconv_open, [LIBS="$LIBS -liconv"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -liconv"])
slouken@3014
   277
    AC_CHECK_FUNCS(iconv)
icculus@5577
   278
slouken@11245
   279
    AC_CHECK_MEMBER(struct sigaction.sa_sigaction,[AC_DEFINE([HAVE_SA_SIGACTION], 1, [ ])], ,[#include <signal.h>])
slouken@1361
   280
fi
slouken@1361
   281
urkle@7554
   282
dnl AC_CHECK_SIZEOF(void*)
slouken@1341
   283
slouken@5004
   284
dnl See whether we can use gcc atomic operations on this architecture
slouken@5004
   285
AC_ARG_ENABLE(gcc-atomics,
slouken@5004
   286
AC_HELP_STRING([--enable-gcc-atomics],
slouken@5004
   287
               [Use gcc builtin atomics [[default=yes]]]),
slouken@5004
   288
              , enable_gcc_atomics=yes)
slouken@5004
   289
if test x$enable_gcc_atomics = xyes; then
slouken@5004
   290
    have_gcc_atomics=no
slouken@5004
   291
    AC_MSG_CHECKING(for GCC builtin atomic operations)
slouken@5004
   292
    AC_TRY_LINK([
slouken@5004
   293
    ],[
slouken@5004
   294
    int a;
slouken@5004
   295
    void *x, *y, *z;
slouken@5004
   296
    __sync_lock_test_and_set(&a, 4);
slouken@5095
   297
    __sync_lock_test_and_set(&x, y);
slouken@5004
   298
    __sync_fetch_and_add(&a, 1);
slouken@5004
   299
    __sync_bool_compare_and_swap(&a, 5, 10);
slouken@5004
   300
    __sync_bool_compare_and_swap(&x, y, z);
slouken@5004
   301
    ],[
slouken@5004
   302
    have_gcc_atomics=yes
slouken@5004
   303
    ])
slouken@5004
   304
    AC_MSG_RESULT($have_gcc_atomics)
slouken@5004
   305
slouken@5068
   306
    if test x$have_gcc_atomics = xyes; then
icculus@5548
   307
        AC_DEFINE(HAVE_GCC_ATOMICS, 1, [ ])
slouken@5071
   308
    else
slouken@5071
   309
        # See if we have the minimum operation needed for GCC atomics
slouken@5071
   310
        AC_TRY_LINK([
slouken@5071
   311
        ],[
slouken@5071
   312
        int a;
slouken@5071
   313
        __sync_lock_test_and_set(&a, 1);
slouken@5095
   314
        __sync_lock_release(&a);
slouken@5071
   315
        ],[
slouken@5071
   316
        have_gcc_sync_lock_test_and_set=yes
slouken@5071
   317
        ])
slouken@5071
   318
        if test x$have_gcc_sync_lock_test_and_set = xyes; then
icculus@5548
   319
            AC_DEFINE(HAVE_GCC_SYNC_LOCK_TEST_AND_SET, 1, [ ])
slouken@5071
   320
        fi
slouken@5069
   321
    fi
slouken@5004
   322
fi
slouken@5004
   323
slouken@1361
   324
# Standard C sources
slouken@1361
   325
SOURCES="$SOURCES $srcdir/src/*.c"
slouken@5154
   326
SOURCES="$SOURCES $srcdir/src/atomic/*.c"
slouken@1361
   327
SOURCES="$SOURCES $srcdir/src/audio/*.c"
slouken@1361
   328
SOURCES="$SOURCES $srcdir/src/cpuinfo/*.c"
icculus@8094
   329
SOURCES="$SOURCES $srcdir/src/dynapi/*.c"
slouken@1361
   330
SOURCES="$SOURCES $srcdir/src/events/*.c"
slouken@1361
   331
SOURCES="$SOURCES $srcdir/src/file/*.c"
slouken@7307
   332
SOURCES="$SOURCES $srcdir/src/haptic/*.c"
slouken@7307
   333
SOURCES="$SOURCES $srcdir/src/joystick/*.c"
slouken@6594
   334
SOURCES="$SOURCES $srcdir/src/libm/*.c"
slouken@7307
   335
SOURCES="$SOURCES $srcdir/src/power/*.c"
icculus@7667
   336
#SOURCES="$SOURCES $srcdir/src/filesystem/*.c"
slouken@5154
   337
SOURCES="$SOURCES $srcdir/src/render/*.c"
slouken@5154
   338
SOURCES="$SOURCES $srcdir/src/render/*/*.c"
slouken@1361
   339
SOURCES="$SOURCES $srcdir/src/stdlib/*.c"
slouken@1361
   340
SOURCES="$SOURCES $srcdir/src/thread/*.c"
slouken@1361
   341
SOURCES="$SOURCES $srcdir/src/timer/*.c"
slouken@1361
   342
SOURCES="$SOURCES $srcdir/src/video/*.c"
slouken@1361
   343
slouken@0
   344
dnl Enable/disable various subsystems of the SDL library
slouken@0
   345
bob@3199
   346
AC_ARG_ENABLE(atomic,
bob@3199
   347
AC_HELP_STRING([--enable-atomic], [Enable the atomic operations subsystem [[default=yes]]]),
bob@3199
   348
              , enable_atomic=yes)
bob@3199
   349
if test x$enable_atomic != xyes; then
icculus@5548
   350
    AC_DEFINE(SDL_ATOMIC_DISABLED, 1, [ ])
urkle@8124
   351
else
urkle@8124
   352
    SUMMARY_modules="${SUMMARY_modules} atomic"
bob@3199
   353
fi
slouken@0
   354
AC_ARG_ENABLE(audio,
slouken@1637
   355
AC_HELP_STRING([--enable-audio], [Enable the audio subsystem [[default=yes]]]),
slouken@0
   356
              , enable_audio=yes)
slouken@1361
   357
if test x$enable_audio != xyes; then
icculus@5548
   358
    AC_DEFINE(SDL_AUDIO_DISABLED, 1, [ ])
urkle@8124
   359
else
urkle@8124
   360
    SUMMARY_modules="${SUMMARY_modules} audio"
slouken@0
   361
fi
slouken@0
   362
AC_ARG_ENABLE(video,
slouken@1637
   363
AC_HELP_STRING([--enable-video], [Enable the video subsystem [[default=yes]]]),
slouken@0
   364
              , enable_video=yes)
slouken@1361
   365
if test x$enable_video != xyes; then
icculus@5548
   366
    AC_DEFINE(SDL_VIDEO_DISABLED, 1, [ ])
urkle@8124
   367
else
urkle@8124
   368
    SUMMARY_modules="${SUMMARY_modules} video"
slouken@0
   369
fi
slouken@5226
   370
AC_ARG_ENABLE(render,
slouken@5226
   371
AC_HELP_STRING([--enable-render], [Enable the render subsystem [[default=yes]]]),
slouken@5226
   372
              , enable_render=yes)
slouken@5226
   373
if test x$enable_render != xyes; then
icculus@5548
   374
    AC_DEFINE(SDL_RENDER_DISABLED, 1, [ ])
urkle@8124
   375
else
urkle@8124
   376
    SUMMARY_modules="${SUMMARY_modules} render"
slouken@5226
   377
fi
slouken@0
   378
AC_ARG_ENABLE(events,
slouken@1637
   379
AC_HELP_STRING([--enable-events], [Enable the events subsystem [[default=yes]]]),
slouken@0
   380
              , enable_events=yes)
slouken@1361
   381
if test x$enable_events != xyes; then
icculus@5548
   382
    AC_DEFINE(SDL_EVENTS_DISABLED, 1, [ ])
urkle@8124
   383
else
urkle@8124
   384
    SUMMARY_modules="${SUMMARY_modules} events"
slouken@0
   385
fi
slouken@0
   386
AC_ARG_ENABLE(joystick,
slouken@1637
   387
AC_HELP_STRING([--enable-joystick], [Enable the joystick subsystem [[default=yes]]]),
slouken@0
   388
              , enable_joystick=yes)
slouken@1361
   389
if test x$enable_joystick != xyes; then
icculus@5548
   390
    AC_DEFINE(SDL_JOYSTICK_DISABLED, 1, [ ])
urkle@8124
   391
else
urkle@8124
   392
    SUMMARY_modules="${SUMMARY_modules} joystick"
slouken@0
   393
fi
slouken@2713
   394
AC_ARG_ENABLE(haptic,
slouken@2713
   395
AC_HELP_STRING([--enable-haptic], [Enable the haptic (force feedback) subsystem [[default=yes]]]),
slouken@2713
   396
              , enable_haptic=yes)
slouken@2713
   397
if test x$enable_haptic != xyes; then
icculus@5548
   398
    AC_DEFINE(SDL_HAPTIC_DISABLED, 1, [ ])
urkle@8124
   399
else
urkle@8124
   400
    SUMMARY_modules="${SUMMARY_modules} haptic"
slouken@2713
   401
fi
icculus@3170
   402
AC_ARG_ENABLE(power,
icculus@3170
   403
AC_HELP_STRING([--enable-power], [Enable the power subsystem [[default=yes]]]),
icculus@3170
   404
              , enable_power=yes)
icculus@3170
   405
if test x$enable_power != xyes; then
icculus@5548
   406
    AC_DEFINE(SDL_POWER_DISABLED, 1, [ ])
urkle@8124
   407
else
urkle@8124
   408
    SUMMARY_modules="${SUMMARY_modules} power"
icculus@3170
   409
fi
icculus@7667
   410
AC_ARG_ENABLE(filesystem,
icculus@7667
   411
AC_HELP_STRING([--enable-filesystem], [Enable the filesystem subsystem [[default=yes]]]),
icculus@7667
   412
              , enable_filesystem=yes)
icculus@7667
   413
if test x$enable_filesystem != xyes; then
icculus@7667
   414
    AC_DEFINE(SDL_FILESYSTEM_DISABLED, 1, [ ])
urkle@8124
   415
else
urkle@8124
   416
    SUMMARY_modules="${SUMMARY_modules} filesystem"
icculus@7667
   417
fi
slouken@0
   418
AC_ARG_ENABLE(threads,
slouken@1637
   419
AC_HELP_STRING([--enable-threads], [Enable the threading subsystem [[default=yes]]]),
slouken@0
   420
              , enable_threads=yes)
slouken@0
   421
if test x$enable_threads != xyes; then
icculus@5548
   422
    AC_DEFINE(SDL_THREADS_DISABLED, 1, [ ])
urkle@8124
   423
else
urkle@8124
   424
    SUMMARY_modules="${SUMMARY_modules} threads"
slouken@0
   425
fi
slouken@0
   426
AC_ARG_ENABLE(timers,
slouken@1637
   427
AC_HELP_STRING([--enable-timers], [Enable the timer subsystem [[default=yes]]]),
slouken@0
   428
              , enable_timers=yes)
slouken@1361
   429
if test x$enable_timers != xyes; then
icculus@5548
   430
    AC_DEFINE(SDL_TIMERS_DISABLED, 1, [ ])
urkle@8124
   431
else
urkle@8124
   432
    SUMMARY_modules="${SUMMARY_modules} timers"
slouken@0
   433
fi
slouken@0
   434
AC_ARG_ENABLE(file,
slouken@1637
   435
AC_HELP_STRING([--enable-file], [Enable the file subsystem [[default=yes]]]),
slouken@0
   436
              , enable_file=yes)
slouken@1361
   437
if test x$enable_file != xyes; then
icculus@5548
   438
    AC_DEFINE(SDL_FILE_DISABLED, 1, [ ])
urkle@8124
   439
else
urkle@8124
   440
    SUMMARY_modules="${SUMMARY_modules} file"
slouken@1361
   441
fi
slouken@1361
   442
AC_ARG_ENABLE(loadso,
slouken@1637
   443
AC_HELP_STRING([--enable-loadso], [Enable the shared object loading subsystem [[default=yes]]]),
slouken@1361
   444
              , enable_loadso=yes)
slouken@1361
   445
if test x$enable_loadso != xyes; then
icculus@5548
   446
    AC_DEFINE(SDL_LOADSO_DISABLED, 1, [ ])
urkle@8124
   447
else
urkle@8124
   448
    SUMMARY_modules="${SUMMARY_modules} loadso"
slouken@0
   449
fi
slouken@740
   450
AC_ARG_ENABLE(cpuinfo,
slouken@1637
   451
AC_HELP_STRING([--enable-cpuinfo], [Enable the cpuinfo subsystem [[default=yes]]]),
slouken@740
   452
              , enable_cpuinfo=yes)
slouken@1361
   453
if test x$enable_cpuinfo != xyes; then
icculus@5548
   454
    AC_DEFINE(SDL_CPUINFO_DISABLED, 1, [ ])
urkle@8124
   455
else
urkle@8124
   456
    SUMMARY_modules="${SUMMARY_modules} cpuinfo"
slouken@5225
   457
fi
slouken@1402
   458
AC_ARG_ENABLE(assembly,
slouken@1637
   459
AC_HELP_STRING([--enable-assembly], [Enable assembly routines [[default=yes]]]),
slouken@1402
   460
              , enable_assembly=yes)
slouken@1402
   461
if test x$enable_assembly = xyes; then
urkle@8124
   462
    SUMMARY_modules="${SUMMARY_modules} assembly"
urkle@8124
   463
icculus@5548
   464
    AC_DEFINE(SDL_ASSEMBLY_ROUTINES, 1, [ ])
slouken@2247
   465
slouken@2856
   466
    # Make sure that we don't generate floating point code that would
slouken@2856
   467
    # cause illegal instruction exceptions on older processors
slouken@2856
   468
    case "$host" in
slouken@2856
   469
        *-*-darwin*)
slouken@2856
   470
            # Don't need to worry about Apple hardware, it's all SSE capable
slouken@2856
   471
            default_ssemath=yes
slouken@2856
   472
            ;;
slouken@2856
   473
        *64-*-*)
slouken@2856
   474
            # x86 64-bit architectures all have SSE instructions
slouken@2856
   475
            default_ssemath=yes
slouken@2856
   476
            ;;
slouken@3392
   477
        *)
slouken@2856
   478
            default_ssemath=no
slouken@2856
   479
            ;;
slouken@2856
   480
    esac
slouken@2856
   481
    AC_ARG_ENABLE(ssemath,
icculus@10847
   482
AC_HELP_STRING([--enable-ssemath], [Allow GCC to use SSE floating point math [[default=maybe]]]),
slouken@2856
   483
                  , enable_ssemath=$default_ssemath)
slouken@2856
   484
    if test x$enable_ssemath = xno; then
icculus@10847
   485
        if test x$have_gcc_sse = xyes -o x$have_gcc_sse2 = xyes -o x$have_gcc_sse3 = xyes; then
slouken@2856
   486
            EXTRA_CFLAGS="$EXTRA_CFLAGS -mfpmath=387"
slouken@2856
   487
        fi
slouken@2856
   488
    fi
slouken@2856
   489
slouken@2247
   490
    dnl Check for various instruction support
slouken@2247
   491
    AC_ARG_ENABLE(mmx,
slouken@2247
   492
AC_HELP_STRING([--enable-mmx], [use MMX assembly routines [[default=yes]]]),
slouken@2247
   493
                  , enable_mmx=yes)
slouken@2247
   494
    if test x$enable_mmx = xyes; then
slouken@2247
   495
        save_CFLAGS="$CFLAGS"
slouken@2247
   496
        have_gcc_mmx=no
slouken@2247
   497
        AC_MSG_CHECKING(for GCC -mmmx option)
slouken@2247
   498
        mmx_CFLAGS="-mmmx"
slouken@2247
   499
        CFLAGS="$save_CFLAGS $mmx_CFLAGS"
slouken@2247
   500
slouken@2247
   501
        AC_TRY_COMPILE([
slouken@4426
   502
        #ifdef __MINGW32__
slouken@4426
   503
        #include <_mingw.h>
slouken@4426
   504
        #ifdef __MINGW64_VERSION_MAJOR
slouken@4426
   505
        #include <intrin.h>
slouken@4426
   506
        #else
slouken@2247
   507
        #include <mmintrin.h>
slouken@4426
   508
        #endif
slouken@4426
   509
        #else
slouken@4426
   510
        #include <mmintrin.h>
slouken@4426
   511
        #endif
slouken@2261
   512
        #ifndef __MMX__
slouken@2261
   513
        #error Assembler CPP flag not enabled
slouken@2261
   514
        #endif
slouken@2247
   515
        ],[
slouken@2247
   516
        ],[
slouken@2247
   517
        have_gcc_mmx=yes
slouken@2247
   518
        ])
slouken@2247
   519
        AC_MSG_RESULT($have_gcc_mmx)
slouken@2290
   520
        CFLAGS="$save_CFLAGS"
slouken@2247
   521
slouken@2247
   522
        if test x$have_gcc_mmx = xyes; then
slouken@2247
   523
            EXTRA_CFLAGS="$EXTRA_CFLAGS $mmx_CFLAGS"
urkle@8124
   524
            SUMMARY_math="${SUMMARY_math} mmx"
slouken@2247
   525
        fi
slouken@2247
   526
    fi
slouken@2247
   527
slouken@5389
   528
    AC_ARG_ENABLE(3dnow,
slouken@6444
   529
AC_HELP_STRING([--enable-3dnow], [use 3DNow! assembly routines [[default=yes]]]),
slouken@5389
   530
                  , enable_3dnow=yes)
slouken@5389
   531
    if test x$enable_3dnow = xyes; then
slouken@5389
   532
        save_CFLAGS="$CFLAGS"
slouken@5389
   533
        have_gcc_3dnow=no
slouken@5389
   534
        AC_MSG_CHECKING(for GCC -m3dnow option)
slouken@5389
   535
        amd3dnow_CFLAGS="-m3dnow"
slouken@5389
   536
        CFLAGS="$save_CFLAGS $amd3dnow_CFLAGS"
slouken@5389
   537
slouken@6443
   538
        AC_TRY_LINK([
slouken@5389
   539
        #include <mm3dnow.h>
slouken@5389
   540
        #ifndef __3dNOW__
slouken@5389
   541
        #error Assembler CPP flag not enabled
slouken@5389
   542
        #endif
slouken@5389
   543
        ],[
slouken@6443
   544
        void *p = 0;
slouken@6443
   545
        _m_prefetch(p);
slouken@5389
   546
        ],[
slouken@5389
   547
        have_gcc_3dnow=yes
slouken@5389
   548
        ])
slouken@5389
   549
        AC_MSG_RESULT($have_gcc_3dnow)
slouken@5389
   550
        CFLAGS="$save_CFLAGS"
slouken@5389
   551
slouken@5389
   552
        if test x$have_gcc_3dnow = xyes; then
slouken@5389
   553
            EXTRA_CFLAGS="$EXTRA_CFLAGS $amd3dnow_CFLAGS"
urkle@8124
   554
            SUMMARY_math="${SUMMARY_math} 3dnow"
slouken@5389
   555
        fi
slouken@5389
   556
    fi
slouken@5389
   557
slouken@2247
   558
    AC_ARG_ENABLE(sse,
slouken@2247
   559
AC_HELP_STRING([--enable-sse], [use SSE assembly routines [[default=yes]]]),
slouken@2247
   560
                  , enable_sse=yes)
slouken@2247
   561
    if test x$enable_sse = xyes; then
slouken@2247
   562
        save_CFLAGS="$CFLAGS"
slouken@2247
   563
        have_gcc_sse=no
slouken@2247
   564
        AC_MSG_CHECKING(for GCC -msse option)
slouken@2247
   565
        sse_CFLAGS="-msse"
slouken@2247
   566
        CFLAGS="$save_CFLAGS $sse_CFLAGS"
slouken@2247
   567
slouken@2247
   568
        AC_TRY_COMPILE([
slouken@4426
   569
        #ifdef __MINGW32__
slouken@4426
   570
        #include <_mingw.h>
slouken@4426
   571
        #ifdef __MINGW64_VERSION_MAJOR
slouken@4426
   572
        #include <intrin.h>
slouken@4426
   573
        #else
slouken@2247
   574
        #include <xmmintrin.h>
slouken@4426
   575
        #endif
slouken@4426
   576
        #else
slouken@4426
   577
        #include <xmmintrin.h>
slouken@4426
   578
        #endif
slouken@2261
   579
        #ifndef __SSE__
slouken@2261
   580
        #error Assembler CPP flag not enabled
slouken@2261
   581
        #endif
slouken@2247
   582
        ],[
slouken@2247
   583
        ],[
slouken@2247
   584
        have_gcc_sse=yes
slouken@2247
   585
        ])
slouken@2247
   586
        AC_MSG_RESULT($have_gcc_sse)
slouken@2290
   587
        CFLAGS="$save_CFLAGS"
slouken@2247
   588
slouken@2247
   589
        if test x$have_gcc_sse = xyes; then
slouken@2247
   590
            EXTRA_CFLAGS="$EXTRA_CFLAGS $sse_CFLAGS"
urkle@8124
   591
            SUMMARY_math="${SUMMARY_math} sse"
slouken@2247
   592
        fi
slouken@2247
   593
    fi
slouken@2247
   594
slouken@2264
   595
    AC_ARG_ENABLE(sse2,
icculus@10835
   596
AC_HELP_STRING([--enable-sse2], [use SSE2 assembly routines [[default=maybe]]]),
slouken@2856
   597
                  , enable_sse2=$default_ssemath)
slouken@2264
   598
    if test x$enable_sse2 = xyes; then
slouken@2264
   599
        save_CFLAGS="$CFLAGS"
slouken@2264
   600
        have_gcc_sse2=no
slouken@2264
   601
        AC_MSG_CHECKING(for GCC -msse2 option)
slouken@2264
   602
        sse2_CFLAGS="-msse2"
slouken@2264
   603
        CFLAGS="$save_CFLAGS $sse2_CFLAGS"
slouken@2264
   604
slouken@2264
   605
        AC_TRY_COMPILE([
slouken@4426
   606
        #ifdef __MINGW32__
slouken@4426
   607
        #include <_mingw.h>
slouken@4426
   608
        #ifdef __MINGW64_VERSION_MAJOR
slouken@4426
   609
        #include <intrin.h>
slouken@4426
   610
        #else
slouken@2264
   611
        #include <emmintrin.h>
slouken@4426
   612
        #endif
slouken@4426
   613
        #else
slouken@4426
   614
        #include <emmintrin.h>
slouken@4426
   615
        #endif
slouken@2264
   616
        #ifndef __SSE2__
slouken@2264
   617
        #error Assembler CPP flag not enabled
slouken@2264
   618
        #endif
slouken@2264
   619
        ],[
slouken@2264
   620
        ],[
slouken@2264
   621
        have_gcc_sse2=yes
slouken@2264
   622
        ])
slouken@2264
   623
        AC_MSG_RESULT($have_gcc_sse2)
slouken@2290
   624
        CFLAGS="$save_CFLAGS"
slouken@2264
   625
slouken@2264
   626
        if test x$have_gcc_sse2 = xyes; then
slouken@2264
   627
            EXTRA_CFLAGS="$EXTRA_CFLAGS $sse2_CFLAGS"
urkle@8124
   628
            SUMMARY_math="${SUMMARY_math} sse2"
slouken@2264
   629
        fi
slouken@2264
   630
    fi
slouken@5389
   631
icculus@10835
   632
    AC_ARG_ENABLE(sse3,
icculus@10835
   633
AC_HELP_STRING([--enable-sse3], [use SSE3 assembly routines [[default=maybe]]]),
icculus@10835
   634
                  , enable_sse3=$default_ssemath)
icculus@10835
   635
    if test x$enable_sse3 = xyes; then
icculus@10835
   636
        save_CFLAGS="$CFLAGS"
icculus@10835
   637
        have_gcc_sse3=no
icculus@10835
   638
        AC_MSG_CHECKING(for GCC -msse3 option)
icculus@10835
   639
        sse3_CFLAGS="-msse3"
icculus@10835
   640
        CFLAGS="$save_CFLAGS $sse3_CFLAGS"
icculus@10835
   641
icculus@10835
   642
        AC_TRY_COMPILE([
icculus@10835
   643
        #ifdef __MINGW32__
icculus@10835
   644
        #include <_mingw.h>
icculus@10835
   645
        #ifdef __MINGW64_VERSION_MAJOR
icculus@10835
   646
        #include <intrin.h>
icculus@10835
   647
        #else
icculus@10835
   648
        #include <pmmintrin.h>
icculus@10835
   649
        #endif
icculus@10835
   650
        #else
icculus@10835
   651
        #include <pmmintrin.h>
icculus@10835
   652
        #endif
icculus@10835
   653
        #ifndef __SSE2__
icculus@10835
   654
        #error Assembler CPP flag not enabled
icculus@10835
   655
        #endif
icculus@10835
   656
        ],[
icculus@10835
   657
        ],[
icculus@10835
   658
        have_gcc_sse3=yes
icculus@10835
   659
        ])
icculus@10835
   660
        AC_MSG_RESULT($have_gcc_sse3)
icculus@10835
   661
        CFLAGS="$save_CFLAGS"
icculus@10835
   662
icculus@10835
   663
        if test x$have_gcc_sse3 = xyes; then
icculus@10835
   664
            EXTRA_CFLAGS="$EXTRA_CFLAGS $sse3_CFLAGS"
icculus@10835
   665
            SUMMARY_math="${SUMMARY_math} sse3"
icculus@10835
   666
        fi
icculus@10835
   667
    fi
icculus@10835
   668
slouken@5389
   669
    AC_ARG_ENABLE(altivec,
slouken@5389
   670
AC_HELP_STRING([--enable-altivec], [use Altivec assembly routines [[default=yes]]]),
slouken@5389
   671
                  , enable_altivec=yes)
slouken@5389
   672
    if test x$enable_altivec = xyes; then
slouken@5389
   673
        save_CFLAGS="$CFLAGS"
slouken@5389
   674
        have_gcc_altivec=no
slouken@5389
   675
        have_altivec_h_hdr=no
slouken@5389
   676
        altivec_CFLAGS="-maltivec"
slouken@5389
   677
        CFLAGS="$save_CFLAGS $altivec_CFLAGS"
slouken@5389
   678
slouken@5389
   679
        AC_MSG_CHECKING(for Altivec with GCC altivec.h and -maltivec option)
slouken@5389
   680
        AC_TRY_COMPILE([
slouken@5389
   681
        #include <altivec.h>
slouken@5389
   682
        vector unsigned int vzero() {
slouken@5389
   683
            return vec_splat_u32(0);
slouken@5389
   684
        }
slouken@5389
   685
        ],[
slouken@5389
   686
        ],[
slouken@5389
   687
        have_gcc_altivec=yes
slouken@5389
   688
        have_altivec_h_hdr=yes
slouken@5389
   689
        ])
slouken@5389
   690
        AC_MSG_RESULT($have_gcc_altivec)
slouken@5389
   691
slouken@5389
   692
        if test x$have_gcc_altivec = xno; then
slouken@5389
   693
            AC_MSG_CHECKING(for Altivec with GCC -maltivec option)
slouken@5389
   694
            AC_TRY_COMPILE([
slouken@5389
   695
            vector unsigned int vzero() {
slouken@5389
   696
                return vec_splat_u32(0);
slouken@5389
   697
            }
slouken@5389
   698
            ],[
slouken@5389
   699
            ],[
slouken@5389
   700
            have_gcc_altivec=yes
slouken@5389
   701
            ])
slouken@5389
   702
            AC_MSG_RESULT($have_gcc_altivec)
slouken@5389
   703
        fi
slouken@5389
   704
slouken@5389
   705
        if test x$have_gcc_altivec = xno; then
slouken@5389
   706
            AC_MSG_CHECKING(for Altivec with GCC altivec.h and -faltivec option)
slouken@5389
   707
            altivec_CFLAGS="-faltivec"
slouken@5389
   708
            CFLAGS="$save_CFLAGS $altivec_CFLAGS"
slouken@5389
   709
            AC_TRY_COMPILE([
slouken@5389
   710
            #include <altivec.h>
slouken@5389
   711
            vector unsigned int vzero() {
slouken@5389
   712
                return vec_splat_u32(0);
slouken@5389
   713
            }
slouken@5389
   714
            ],[
slouken@5389
   715
            ],[
slouken@5389
   716
            have_gcc_altivec=yes
slouken@5389
   717
            have_altivec_h_hdr=yes
slouken@5389
   718
            ])
slouken@5389
   719
            AC_MSG_RESULT($have_gcc_altivec)
slouken@5389
   720
        fi
slouken@5389
   721
slouken@5389
   722
        if test x$have_gcc_altivec = xno; then
slouken@5389
   723
            AC_MSG_CHECKING(for Altivec with GCC -faltivec option)
slouken@5389
   724
            AC_TRY_COMPILE([
slouken@5389
   725
            vector unsigned int vzero() {
slouken@5389
   726
                return vec_splat_u32(0);
slouken@5389
   727
            }
slouken@5389
   728
            ],[
slouken@5389
   729
            ],[
slouken@5389
   730
            have_gcc_altivec=yes
slouken@5389
   731
            ])
slouken@5389
   732
            AC_MSG_RESULT($have_gcc_altivec)
slouken@5389
   733
        fi
slouken@5389
   734
        CFLAGS="$save_CFLAGS"
slouken@5389
   735
slouken@5389
   736
        if test x$have_gcc_altivec = xyes; then
icculus@5548
   737
            AC_DEFINE(SDL_ALTIVEC_BLITTERS, 1, [ ])
slouken@5389
   738
            if test x$have_altivec_h_hdr = xyes; then
icculus@5548
   739
              AC_DEFINE(HAVE_ALTIVEC_H, 1, [ ])
slouken@5389
   740
            fi
slouken@5389
   741
            EXTRA_CFLAGS="$EXTRA_CFLAGS $altivec_CFLAGS"
urkle@8124
   742
            SUMMARY_math="${SUMMARY_math} altivec"
slouken@5389
   743
        fi
slouken@5389
   744
    fi
slouken@740
   745
fi
slouken@0
   746
slouken@0
   747
dnl See if the OSS audio interface is supported
slouken@0
   748
CheckOSS()
slouken@0
   749
{
slouken@0
   750
    AC_ARG_ENABLE(oss,
icculus@7380
   751
AC_HELP_STRING([--enable-oss], [support the OSS audio API [[default=maybe]]]),
icculus@7380
   752
                  , enable_oss=maybe)
icculus@7380
   753
icculus@7380
   754
    # OpenBSD "has" OSS, but it's not really for app use. They want you to
icculus@7380
   755
    #  use sndio instead. So on there, we default to disabled. You can force
icculus@7380
   756
    #  it on if you really want, though.
icculus@7380
   757
    if test x$enable_oss = xmaybe; then
icculus@7380
   758
        enable_oss=yes
icculus@7380
   759
        case "$host" in
icculus@7380
   760
            *-*-openbsd*)
icculus@7380
   761
                enable_oss=no;;
slouken@7391
   762
        esac
icculus@7380
   763
    fi
icculus@7380
   764
slouken@0
   765
    if test x$enable_audio = xyes -a x$enable_oss = xyes; then
slouken@0
   766
        AC_MSG_CHECKING(for OSS audio support)
slouken@0
   767
        have_oss=no
slouken@94
   768
        if test x$have_oss != xyes; then
slouken@94
   769
            AC_TRY_COMPILE([
slouken@94
   770
              #include <sys/soundcard.h>
slouken@94
   771
            ],[
slouken@94
   772
              int arg = SNDCTL_DSP_SETFRAGMENT;
slouken@94
   773
            ],[
slouken@94
   774
            have_oss=yes
slouken@94
   775
            ])
slouken@94
   776
        fi
slouken@94
   777
        if test x$have_oss != xyes; then
slouken@94
   778
            AC_TRY_COMPILE([
slouken@94
   779
              #include <soundcard.h>
slouken@94
   780
            ],[
slouken@94
   781
              int arg = SNDCTL_DSP_SETFRAGMENT;
slouken@94
   782
            ],[
slouken@94
   783
            have_oss=yes
icculus@5548
   784
            AC_DEFINE(SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H, 1, [ ])
slouken@94
   785
            ])
slouken@94
   786
        fi
slouken@0
   787
        AC_MSG_RESULT($have_oss)
slouken@0
   788
        if test x$have_oss = xyes; then
urkle@8124
   789
            SUMMARY_audio="${SUMMARY_audio} oss"
icculus@5548
   790
            AC_DEFINE(SDL_AUDIO_DRIVER_OSS, 1, [ ])
slouken@1361
   791
            SOURCES="$SOURCES $srcdir/src/audio/dsp/*.c"
slouken@1361
   792
            have_audio=yes
slouken@1361
   793
slouken@1565
   794
            # We may need to link with ossaudio emulation library
slouken@1550
   795
            case "$host" in
slouken@1383
   796
                *-*-openbsd*|*-*-netbsd*)
slouken@1521
   797
                    EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lossaudio";;
slouken@1361
   798
            esac
slouken@0
   799
        fi
slouken@0
   800
    fi
slouken@0
   801
}
slouken@0
   802
slouken@0
   803
dnl See if the ALSA audio interface is supported
slouken@0
   804
CheckALSA()
slouken@0
   805
{
slouken@0
   806
    AC_ARG_ENABLE(alsa,
slouken@1637
   807
AC_HELP_STRING([--enable-alsa], [support the ALSA audio API [[default=yes]]]),
slouken@0
   808
                  , enable_alsa=yes)
slouken@0
   809
    if test x$enable_audio = xyes -a x$enable_alsa = xyes; then
slouken@10490
   810
        AM_PATH_ALSA(1.0.11, have_alsa=yes, have_alsa=no)
slouken@1009
   811
        # Restore all flags from before the ALSA detection runs
slouken@1009
   812
        CFLAGS="$alsa_save_CFLAGS"
slouken@1009
   813
        LDFLAGS="$alsa_save_LDFLAGS"
slouken@1009
   814
        LIBS="$alsa_save_LIBS"
slouken@354
   815
        if test x$have_alsa = xyes; then
slouken@865
   816
            AC_ARG_ENABLE(alsa-shared,
slouken@1637
   817
AC_HELP_STRING([--enable-alsa-shared], [dynamically load ALSA audio support [[default=yes]]]),
slouken@1361
   818
                          , enable_alsa_shared=yes)
slouken@3391
   819
            alsa_lib=[`find_lib "libasound.so.*" "$ALSA_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@1361
   820
icculus@5548
   821
            AC_DEFINE(SDL_AUDIO_DRIVER_ALSA, 1, [ ])
slouken@1361
   822
            SOURCES="$SOURCES $srcdir/src/audio/alsa/*.c"
slouken@1521
   823
            EXTRA_CFLAGS="$EXTRA_CFLAGS $ALSA_CFLAGS"
slouken@1361
   824
            if test x$have_loadso != xyes && \
slouken@1361
   825
               test x$enable_alsa_shared = xyes; then
slouken@1467
   826
                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ALSA loading])
slouken@1361
   827
            fi
slouken@1361
   828
            if test x$have_loadso = xyes && \
slouken@1361
   829
               test x$enable_alsa_shared = xyes && test x$alsa_lib != x; then
slouken@3392
   830
                echo "-- dynamic libasound -> $alsa_lib"
icculus@5548
   831
                AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ALSA_DYNAMIC, "$alsa_lib", [ ])
urkle@8124
   832
                SUMMARY_audio="${SUMMARY_audio} alsa(dynamic)"
slouken@1361
   833
            else
slouken@1521
   834
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ALSA_LIBS"
urkle@8124
   835
                SUMMARY_audio="${SUMMARY_audio} alsa"
slouken@1361
   836
            fi
slouken@1361
   837
            have_audio=yes
slouken@1361
   838
        fi
slouken@1361
   839
    fi
slouken@0
   840
}
slouken@0
   841
icculus@11081
   842
dnl Find JACK Audio
icculus@11081
   843
CheckJACK()
icculus@11081
   844
{
icculus@11081
   845
    AC_ARG_ENABLE(jack,
icculus@11081
   846
AC_HELP_STRING([--enable-jack], [use JACK audio [[default=yes]]]),
icculus@11081
   847
                  , enable_jack=yes)
icculus@11081
   848
    if test x$enable_audio = xyes -a x$enable_jack = xyes; then
icculus@11081
   849
        audio_jack=no
icculus@11081
   850
icculus@11081
   851
        JACK_REQUIRED_VERSION=0.125
icculus@11081
   852
icculus@11081
   853
        AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
icculus@11081
   854
        AC_MSG_CHECKING(for JACK $JACK_REQUIRED_VERSION support)
icculus@11081
   855
        if test x$PKG_CONFIG != xno; then
icculus@11081
   856
        if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $JACK_REQUIRED_VERSION jack; then
icculus@11081
   857
                JACK_CFLAGS=`$PKG_CONFIG --cflags jack`
icculus@11081
   858
                JACK_LIBS=`$PKG_CONFIG --libs jack`
icculus@11081
   859
                audio_jack=yes
icculus@11081
   860
            fi
icculus@11081
   861
        fi
icculus@11081
   862
        AC_MSG_RESULT($audio_jack)
icculus@11081
   863
icculus@11081
   864
        if test x$audio_jack = xyes; then
icculus@11081
   865
            AC_ARG_ENABLE(jack-shared,
icculus@11081
   866
AC_HELP_STRING([--enable-jack-shared], [dynamically load JACK audio support [[default=yes]]]),
icculus@11081
   867
                          , enable_jack_shared=yes)
icculus@11081
   868
            jack_lib=[`find_lib "libjack.so.*" "$JACK_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
icculus@11081
   869
icculus@11081
   870
            AC_DEFINE(SDL_AUDIO_DRIVER_JACK, 1, [ ])
icculus@11081
   871
            SOURCES="$SOURCES $srcdir/src/audio/jack/*.c"
icculus@11081
   872
            EXTRA_CFLAGS="$EXTRA_CFLAGS $JACK_CFLAGS"
icculus@11081
   873
            if test x$have_loadso != xyes && \
icculus@11081
   874
               test x$enable_jack_shared = xyes; then
icculus@11081
   875
                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic JACK audio loading])
icculus@11081
   876
            fi
icculus@11081
   877
            if test x$have_loadso = xyes && \
icculus@11081
   878
               test x$enable_jack_shared = xyes && test x$jack_lib != x; then
icculus@11081
   879
                echo "-- dynamic libjack -> $jack_lib"
icculus@11081
   880
                AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_JACK_DYNAMIC, "$jack_lib", [ ])
icculus@11081
   881
                SUMMARY_audio="${SUMMARY_audio} jack(dynamic)"
icculus@11081
   882
icculus@11081
   883
                case "$host" in
icculus@11081
   884
                    # On Solaris, jack must be linked deferred explicitly
icculus@11081
   885
                    # to prevent undefined symbol failures.
icculus@11081
   886
                    *-*-solaris*)
icculus@11081
   887
                        JACK_LIBS=`echo $JACK_LIBS | sed 's/\-l/-Wl,-l/g'`
icculus@11081
   888
                        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-zdeferred $JACK_LIBS -Wl,-znodeferred"
icculus@11081
   889
                esac
icculus@11081
   890
            else
icculus@11081
   891
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $JACK_LIBS"
icculus@11081
   892
                SUMMARY_audio="${SUMMARY_audio} jack"
icculus@11081
   893
            fi
icculus@11081
   894
            have_audio=yes
icculus@11081
   895
        fi
icculus@11081
   896
    fi
icculus@11081
   897
}
icculus@11081
   898
slouken@0
   899
dnl Find the ESD includes and libraries
slouken@0
   900
CheckESD()
slouken@0
   901
{
slouken@0
   902
    AC_ARG_ENABLE(esd,
slouken@1637
   903
AC_HELP_STRING([--enable-esd], [support the Enlightened Sound Daemon [[default=yes]]]),
slouken@0
   904
                  , enable_esd=yes)
slouken@0
   905
    if test x$enable_audio = xyes -a x$enable_esd = xyes; then
slouken@948
   906
        AM_PATH_ESD(0.2.8, have_esd=yes, have_esd=no)
slouken@948
   907
        if test x$have_esd = xyes; then
slouken@294
   908
            AC_ARG_ENABLE(esd-shared,
slouken@1637
   909
AC_HELP_STRING([--enable-esd-shared], [dynamically load ESD audio support [[default=yes]]]),
slouken@678
   910
                          , enable_esd_shared=yes)
slouken@3391
   911
            esd_lib=[`find_lib "libesd.so.*" "$ESD_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@1467
   912
icculus@5548
   913
            AC_DEFINE(SDL_AUDIO_DRIVER_ESD, 1, [ ])
slouken@1467
   914
            SOURCES="$SOURCES $srcdir/src/audio/esd/*.c"
slouken@1521
   915
            EXTRA_CFLAGS="$EXTRA_CFLAGS $ESD_CFLAGS"
icculus@1173
   916
            if test x$have_loadso != xyes && \
slouken@296
   917
               test x$enable_esd_shared = xyes; then
slouken@1467
   918
                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ESD loading])
slouken@296
   919
            fi
icculus@1173
   920
            if test x$have_loadso = xyes && \
slouken@294
   921
               test x$enable_esd_shared = xyes && test x$esd_lib != x; then
slouken@3392
   922
                echo "-- dynamic libesd -> $esd_lib"
icculus@5548
   923
                AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ESD_DYNAMIC, "$esd_lib", [ ])
urkle@8124
   924
                SUMMARY_audio="${SUMMARY_audio} esd(dynamic)"
slouken@1467
   925
            else
slouken@1521
   926
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ESD_LIBS"
urkle@8124
   927
                SUMMARY_audio="${SUMMARY_audio} esd"
slouken@294
   928
            fi
slouken@1361
   929
            have_audio=yes
slouken@294
   930
        fi
slouken@0
   931
    fi
slouken@0
   932
}
slouken@0
   933
icculus@2271
   934
dnl Find PulseAudio
icculus@2271
   935
CheckPulseAudio()
icculus@2271
   936
{
icculus@2271
   937
    AC_ARG_ENABLE(pulseaudio,
icculus@2271
   938
AC_HELP_STRING([--enable-pulseaudio], [use PulseAudio [[default=yes]]]),
icculus@2271
   939
                  , enable_pulseaudio=yes)
icculus@2271
   940
    if test x$enable_audio = xyes -a x$enable_pulseaudio = xyes; then
icculus@2271
   941
        audio_pulseaudio=no
icculus@2271
   942
icculus@2271
   943
        PULSEAUDIO_REQUIRED_VERSION=0.9
icculus@2271
   944
icculus@2271
   945
        AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
icculus@2271
   946
        AC_MSG_CHECKING(for PulseAudio $PULSEAUDIO_REQUIRED_VERSION support)
icculus@2271
   947
        if test x$PKG_CONFIG != xno; then
icculus@2271
   948
        if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $PULSEAUDIO_REQUIRED_VERSION libpulse-simple; then
icculus@2271
   949
                PULSEAUDIO_CFLAGS=`$PKG_CONFIG --cflags libpulse-simple`
icculus@2271
   950
                PULSEAUDIO_LIBS=`$PKG_CONFIG --libs libpulse-simple`
icculus@2271
   951
                audio_pulseaudio=yes
slouken@3391
   952
            fi
icculus@2271
   953
        fi
icculus@2271
   954
        AC_MSG_RESULT($audio_pulseaudio)
icculus@2271
   955
icculus@2271
   956
        if test x$audio_pulseaudio = xyes; then
icculus@2271
   957
            AC_ARG_ENABLE(pulseaudio-shared,
icculus@2271
   958
AC_HELP_STRING([--enable-pulseaudio-shared], [dynamically load PulseAudio support [[default=yes]]]),
icculus@2271
   959
                          , enable_pulseaudio_shared=yes)
slouken@3391
   960
            pulseaudio_lib=[`find_lib "libpulse-simple.so.*" "$PULSEAUDIO_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
icculus@2271
   961
icculus@5548
   962
            AC_DEFINE(SDL_AUDIO_DRIVER_PULSEAUDIO, 1, [ ])
icculus@2271
   963
            SOURCES="$SOURCES $srcdir/src/audio/pulseaudio/*.c"
icculus@2271
   964
            EXTRA_CFLAGS="$EXTRA_CFLAGS $PULSEAUDIO_CFLAGS"
icculus@2271
   965
            if test x$have_loadso != xyes && \
icculus@2271
   966
               test x$enable_pulseaudio_shared = xyes; then
icculus@2271
   967
                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic PulseAudio loading])
icculus@2271
   968
            fi
icculus@2271
   969
            if test x$have_loadso = xyes && \
icculus@2271
   970
               test x$enable_pulseaudio_shared = xyes && test x$pulseaudio_lib != x; then
slouken@3392
   971
                echo "-- dynamic libpulse-simple -> $pulseaudio_lib"
icculus@5548
   972
                AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC, "$pulseaudio_lib", [ ])
urkle@8124
   973
                SUMMARY_audio="${SUMMARY_audio} pulse(dynamic)"
eviltypeguy@6967
   974
eviltypeguy@6967
   975
                case "$host" in
eviltypeguy@6967
   976
                    # On Solaris, pulseaudio must be linked deferred explicitly
eviltypeguy@6967
   977
                    # to prevent undefined symbol failures.
eviltypeguy@6967
   978
                    *-*-solaris*)
eviltypeguy@6967
   979
                        PULSEAUDIO_LIBS=`echo $PULSEAUDIO_LIBS | sed 's/\-l/-Wl,-l/g'`
eviltypeguy@6967
   980
                        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-zdeferred $PULSEAUDIO_LIBS -Wl,-znodeferred"
eviltypeguy@6967
   981
                esac
icculus@2271
   982
            else
icculus@2271
   983
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PULSEAUDIO_LIBS"
urkle@8124
   984
                SUMMARY_audio="${SUMMARY_audio} pulse"
icculus@2271
   985
            fi
icculus@2271
   986
            have_audio=yes
icculus@2271
   987
        fi
icculus@2271
   988
    fi
icculus@2271
   989
}
icculus@2271
   990
slouken@0
   991
CheckARTSC()
slouken@0
   992
{
slouken@0
   993
    AC_ARG_ENABLE(arts,
slouken@1637
   994
AC_HELP_STRING([--enable-arts], [support the Analog Real Time Synthesizer [[default=yes]]]),
slouken@0
   995
                  , enable_arts=yes)
slouken@0
   996
    if test x$enable_audio = xyes -a x$enable_arts = xyes; then
slouken@1361
   997
        AC_PATH_PROG(ARTSCONFIG, artsc-config)
slouken@1361
   998
        if test x$ARTSCONFIG = x -o x$ARTSCONFIG = x'"$ARTSCONFIG"'; then
slouken@0
   999
            : # arts isn't installed
slouken@0
  1000
        else
slouken@1361
  1001
            ARTS_CFLAGS=`$ARTSCONFIG --cflags`
slouken@1361
  1002
            ARTS_LIBS=`$ARTSCONFIG --libs`
slouken@0
  1003
            AC_MSG_CHECKING(for aRts development environment)
slouken@0
  1004
            audio_arts=no
slouken@0
  1005
            save_CFLAGS="$CFLAGS"
slouken@1361
  1006
            CFLAGS="$CFLAGS $ARTS_CFLAGS"
slouken@0
  1007
            AC_TRY_COMPILE([
slouken@0
  1008
             #include <artsc.h>
slouken@0
  1009
            ],[
slouken@0
  1010
             arts_stream_t stream;
slouken@0
  1011
            ],[
slouken@0
  1012
            audio_arts=yes
slouken@0
  1013
            ])
slouken@0
  1014
            CFLAGS="$save_CFLAGS"
slouken@0
  1015
            AC_MSG_RESULT($audio_arts)
slouken@0
  1016
            if test x$audio_arts = xyes; then
slouken@294
  1017
                AC_ARG_ENABLE(arts-shared,
slouken@1637
  1018
AC_HELP_STRING([--enable-arts-shared], [dynamically load aRts audio support [[default=yes]]]),
slouken@678
  1019
                              , enable_arts_shared=yes)
slouken@3391
  1020
                arts_lib=[`find_lib "libartsc.so.*" "$ARTS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@1467
  1021
icculus@5548
  1022
                AC_DEFINE(SDL_AUDIO_DRIVER_ARTS, 1, [ ])
slouken@1467
  1023
                SOURCES="$SOURCES $srcdir/src/audio/arts/*.c"
slouken@1521
  1024
                EXTRA_CFLAGS="$EXTRA_CFLAGS $ARTS_CFLAGS"
icculus@1173
  1025
                if test x$have_loadso != xyes && \
slouken@296
  1026
                   test x$enable_arts_shared = xyes; then
slouken@1467
  1027
                    AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ARTS loading])
slouken@296
  1028
                fi
icculus@1173
  1029
                if test x$have_loadso = xyes && \
slouken@294
  1030
                   test x$enable_arts_shared = xyes && test x$arts_lib != x; then
slouken@3392
  1031
                    echo "-- dynamic libartsc -> $arts_lib"
icculus@5548
  1032
                    AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ARTS_DYNAMIC, "$arts_lib", [ ])
urkle@8124
  1033
                    SUMMARY_audio="${SUMMARY_audio} arts(dynamic)"
slouken@1467
  1034
                else
slouken@1521
  1035
                    EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ARTS_LIBS"
urkle@8124
  1036
                    SUMMARY_audio="${SUMMARY_audio} arts"
slouken@294
  1037
                fi
slouken@1361
  1038
                have_audio=yes
slouken@0
  1039
            fi
slouken@0
  1040
        fi
slouken@0
  1041
    fi
slouken@0
  1042
}
slouken@0
  1043
slouken@0
  1044
dnl See if the NAS audio interface is supported
slouken@0
  1045
CheckNAS()
slouken@0
  1046
{
slouken@0
  1047
    AC_ARG_ENABLE(nas,
slouken@1637
  1048
AC_HELP_STRING([--enable-nas], [support the NAS audio API [[default=yes]]]),
slouken@41
  1049
                  , enable_nas=yes)
slouken@0
  1050
    if test x$enable_audio = xyes -a x$enable_nas = xyes; then
icculus@2049
  1051
        AC_CHECK_HEADER(audio/audiolib.h, have_nas_hdr=yes)
icculus@2049
  1052
        AC_CHECK_LIB(audio, AuOpenServer, have_nas_lib=yes)
icculus@2049
  1053
slouken@41
  1054
        AC_MSG_CHECKING(for NAS audio support)
slouken@41
  1055
        have_nas=no
icculus@2049
  1056
icculus@2049
  1057
        if test x$have_nas_hdr = xyes -a x$have_nas_lib = xyes; then
icculus@2049
  1058
            have_nas=yes
icculus@2049
  1059
            NAS_LIBS="-laudio"
icculus@2049
  1060
icculus@2049
  1061
        elif test -r /usr/X11R6/include/audio/audiolib.h; then
slouken@41
  1062
            have_nas=yes
slouken@1361
  1063
            NAS_CFLAGS="-I/usr/X11R6/include/"
slouken@1520
  1064
            NAS_LIBS="-L/usr/X11R6/lib -laudio -lXt"
slouken@605
  1065
slouken@41
  1066
        fi
icculus@2049
  1067
slouken@605
  1068
        AC_MSG_RESULT($have_nas)
icculus@2049
  1069
slouken@1361
  1070
        if test x$have_nas = xyes; then
icculus@2049
  1071
            AC_ARG_ENABLE(nas-shared,
icculus@2049
  1072
AC_HELP_STRING([--enable-nas-shared], [dynamically load NAS audio support [[default=yes]]]),
icculus@2049
  1073
                          , enable_nas_shared=yes)
slouken@3391
  1074
            nas_lib=[`find_lib "libaudio.so.*" "$NAS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
icculus@2049
  1075
icculus@2049
  1076
            if test x$have_loadso != xyes && \
icculus@2049
  1077
               test x$enable_nas_shared = xyes; then
icculus@2049
  1078
                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic NAS loading])
icculus@2049
  1079
            fi
icculus@2049
  1080
            if test x$have_loadso = xyes && \
slouken@2163
  1081
               test x$enable_nas_shared = xyes && test x$nas_lib != x; then
slouken@3392
  1082
                echo "-- dynamic libaudio -> $nas_lib"
icculus@5548
  1083
                AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_NAS_DYNAMIC, "$nas_lib", [ ])
urkle@8124
  1084
                SUMMARY_audio="${SUMMARY_audio} nas(dynamic)"
icculus@2049
  1085
            else
icculus@2049
  1086
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $NAS_LIBS"
urkle@8124
  1087
                SUMMARY_audio="${SUMMARY_audio} nas"
icculus@2049
  1088
            fi
icculus@2049
  1089
icculus@5548
  1090
            AC_DEFINE(SDL_AUDIO_DRIVER_NAS, 1, [ ])
slouken@1361
  1091
            SOURCES="$SOURCES $srcdir/src/audio/nas/*.c"
slouken@1521
  1092
            EXTRA_CFLAGS="$EXTRA_CFLAGS $NAS_CFLAGS"
slouken@1361
  1093
            have_audio=yes
slouken@1361
  1094
        fi
slouken@0
  1095
    fi
slouken@0
  1096
}
slouken@0
  1097
icculus@7367
  1098
dnl See if the sndio audio interface is supported
icculus@7367
  1099
CheckSNDIO()
icculus@7367
  1100
{
icculus@7367
  1101
    AC_ARG_ENABLE(sndio,
icculus@7367
  1102
AC_HELP_STRING([--enable-sndio], [support the sndio audio API [[default=yes]]]),
icculus@7367
  1103
                  , enable_sndio=yes)
icculus@7367
  1104
    if test x$enable_audio = xyes -a x$enable_sndio = xyes; then
icculus@7367
  1105
        AC_CHECK_HEADER(sndio.h, have_sndio_hdr=yes)
icculus@7367
  1106
        AC_CHECK_LIB(sndio, sio_open, have_sndio_lib=yes)
icculus@7367
  1107
icculus@7367
  1108
        AC_MSG_CHECKING(for sndio audio support)
icculus@7367
  1109
        have_sndio=no
icculus@7367
  1110
icculus@7367
  1111
        if test x$have_sndio_hdr = xyes -a x$have_sndio_lib = xyes; then
icculus@7367
  1112
            have_sndio=yes
icculus@7367
  1113
            SNDIO_LIBS="-lsndio"
icculus@7367
  1114
        fi
icculus@7367
  1115
icculus@7367
  1116
        AC_MSG_RESULT($have_sndio)
icculus@7367
  1117
icculus@7367
  1118
        if test x$have_sndio = xyes; then
icculus@7367
  1119
            AC_ARG_ENABLE(sndio-shared,
icculus@7367
  1120
AC_HELP_STRING([--enable-sndio-shared], [dynamically load sndio audio support [[default=yes]]]),
icculus@7367
  1121
                          , enable_sndio_shared=yes)
icculus@7367
  1122
            sndio_lib=[`find_lib "libsndio.so.*" "$SNDIO_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
icculus@7367
  1123
icculus@7367
  1124
            if test x$have_loadso != xyes && \
icculus@7367
  1125
               test x$enable_sndio_shared = xyes; then
icculus@7367
  1126
                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic sndio loading])
icculus@7367
  1127
            fi
icculus@7367
  1128
            if test x$have_loadso = xyes && \
icculus@7367
  1129
               test x$enable_sndio_shared = xyes && test x$sndio_lib != x; then
icculus@7367
  1130
                echo "-- dynamic libsndio -> $sndio_lib"
icculus@7367
  1131
                AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_SNDIO_DYNAMIC, "$sndio_lib", [ ])
urkle@8124
  1132
                SUMMARY_audio="${SUMMARY_audio} sndio(dynamic)"
icculus@7367
  1133
            else
icculus@7367
  1134
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $SNDIO_LIBS"
urkle@8124
  1135
                SUMMARY_audio="${SUMMARY_audio} sndio"
icculus@7367
  1136
            fi
icculus@7367
  1137
icculus@7367
  1138
            AC_DEFINE(SDL_AUDIO_DRIVER_SNDIO, 1, [ ])
icculus@7367
  1139
            SOURCES="$SOURCES $srcdir/src/audio/sndio/*.c"
icculus@7367
  1140
            EXTRA_CFLAGS="$EXTRA_CFLAGS $SNDIO_CFLAGS"
icculus@7367
  1141
            have_audio=yes
icculus@7367
  1142
        fi
icculus@7367
  1143
    fi
icculus@7367
  1144
}
icculus@7367
  1145
slouken@10777
  1146
dnl Find FusionSound
slouken@10777
  1147
CheckFusionSound()
slouken@10777
  1148
{
slouken@10777
  1149
    AC_ARG_ENABLE(fusionsound,
slouken@10777
  1150
AC_HELP_STRING([--enable-fusionsound], [use FusionSound audio driver [[default=no]]]),
slouken@10777
  1151
                  , enable_fusionsound=no)
slouken@10777
  1152
    if test x$enable_audio = xyes -a x$enable_fusionsound = xyes; then
slouken@10777
  1153
        fusionsound=no
slouken@10777
  1154
slouken@10777
  1155
        FUSIONSOUND_REQUIRED_VERSION=1.1.1
slouken@10777
  1156
slouken@10777
  1157
        AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
slouken@10777
  1158
        AC_MSG_CHECKING(for FusionSound $FUSIONSOUND_REQUIRED_VERSION support)
slouken@10777
  1159
        if test x$PKG_CONFIG != xno; then
slouken@10777
  1160
            if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $FUSIONSOUND_REQUIRED_VERSION fusionsound; then
slouken@10777
  1161
                FUSIONSOUND_CFLAGS=`$PKG_CONFIG --cflags fusionsound`
slouken@10777
  1162
                FUSIONSOUND_LIBS=`$PKG_CONFIG --libs fusionsound`
slouken@10777
  1163
                fusionsound=yes
slouken@10777
  1164
            fi
slouken@10777
  1165
        fi
slouken@10777
  1166
        AC_MSG_RESULT($fusionsound)
slouken@10777
  1167
slouken@10777
  1168
        if test x$fusionsound = xyes; then
slouken@10777
  1169
            AC_DEFINE(SDL_AUDIO_DRIVER_FUSIONSOUND, 1, [ ])
slouken@10777
  1170
            SOURCES="$SOURCES $srcdir/src/audio/fusionsound/*.c"
slouken@10777
  1171
            EXTRA_CFLAGS="$EXTRA_CFLAGS $FUSIONSOUND_CFLAGS"
slouken@10777
  1172
            
slouken@10777
  1173
            AC_ARG_ENABLE(fusionsound-shared,
slouken@10777
  1174
AC_HELP_STRING([--enable-fusionsound-shared], [dynamically load fusionsound audio support [[default=yes]]]),
slouken@10777
  1175
                          , enable_fusionsound_shared=yes)
slouken@10777
  1176
            fusionsound_shared=no
slouken@10777
  1177
            AC_MSG_CHECKING(for FusionSound dynamic loading support)
slouken@10777
  1178
            if test x$have_loadso != xyes && \
slouken@10777
  1179
               test x$enable_fusionsound_shared = xyes; then
slouken@10777
  1180
                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic fusionsound loading])
slouken@10777
  1181
            fi
slouken@10777
  1182
            if test x$have_loadso = xyes && \
slouken@10777
  1183
               test x$enable_fusionsound_shared = xyes; then
slouken@10777
  1184
                AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC, "libfusionsound.so", [ ])
slouken@10777
  1185
                fusionsound_shared=yes
slouken@10777
  1186
                SUMMARY_audio="${SUMMARY_audio} fusionsound(dynamic)"
slouken@10777
  1187
            else
slouken@10777
  1188
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $FUSIONSOUND_LIBS"
slouken@10777
  1189
                SUMMARY_audio="${SUMMARY_audio} fusionsound"
slouken@10777
  1190
            fi
slouken@10777
  1191
            AC_MSG_RESULT($fusionsound_shared)
slouken@10777
  1192
            
slouken@10777
  1193
            have_audio=yes
slouken@10777
  1194
        fi
slouken@10777
  1195
    fi
slouken@10777
  1196
}
slouken@10777
  1197
slouken@68
  1198
dnl rcg07142001 See if the user wants the disk writer audio driver...
slouken@68
  1199
CheckDiskAudio()
slouken@68
  1200
{
slouken@68
  1201
    AC_ARG_ENABLE(diskaudio,
slouken@1637
  1202
AC_HELP_STRING([--enable-diskaudio], [support the disk writer audio driver [[default=yes]]]),
slouken@86
  1203
                  , enable_diskaudio=yes)
slouken@68
  1204
    if test x$enable_audio = xyes -a x$enable_diskaudio = xyes; then
icculus@5548
  1205
        AC_DEFINE(SDL_AUDIO_DRIVER_DISK, 1, [ ])
slouken@1361
  1206
        SOURCES="$SOURCES $srcdir/src/audio/disk/*.c"
urkle@8124
  1207
        SUMMARY_audio="${SUMMARY_audio} disk"
slouken@68
  1208
    fi
slouken@68
  1209
}
slouken@68
  1210
icculus@1532
  1211
dnl rcg03142006 See if the user wants the dummy audio driver...
icculus@1532
  1212
CheckDummyAudio()
icculus@1532
  1213
{
icculus@1532
  1214
    AC_ARG_ENABLE(dummyaudio,
slouken@1637
  1215
AC_HELP_STRING([--enable-dummyaudio], [support the dummy audio driver [[default=yes]]]),
icculus@1532
  1216
                  , enable_dummyaudio=yes)
icculus@1532
  1217
    if test x$enable_audio = xyes -a x$enable_dummyaudio = xyes; then
icculus@5548
  1218
        AC_DEFINE(SDL_AUDIO_DRIVER_DUMMY, 1, [ ])
icculus@1532
  1219
        SOURCES="$SOURCES $srcdir/src/audio/dummy/*.c"
urkle@8124
  1220
        SUMMARY_audio="${SUMMARY_audio} dummy"
icculus@1532
  1221
    fi
icculus@1532
  1222
}
icculus@1532
  1223
slouken@10777
  1224
dnl See if libsamplerate is available
slouken@10777
  1225
CheckLibSampleRate()
slouken@10777
  1226
{
slouken@10777
  1227
    AC_ARG_ENABLE(libsamplerate,
slouken@10777
  1228
AC_HELP_STRING([--enable-libsamplerate], [use libsamplerate for audio rate conversion [[default=yes]]]),
slouken@10777
  1229
                  , enable_libsamplerate=yes)
slouken@10777
  1230
    if test x$enable_libsamplerate = xyes; then
slouken@10777
  1231
        AC_CHECK_HEADER(samplerate.h,
slouken@10777
  1232
                        have_samplerate_h_hdr=yes,
slouken@10777
  1233
                        have_samplerate_h_hdr=no)
slouken@10777
  1234
        if test x$have_samplerate_h_hdr = xyes; then
slouken@10777
  1235
            AC_DEFINE(HAVE_LIBSAMPLERATE_H, 1, [ ])
slouken@10777
  1236
slouken@10777
  1237
            AC_ARG_ENABLE(libsamplerate-shared,
slouken@10777
  1238
AC_HELP_STRING([--enable-libsamplerate-shared], [dynamically load libsamplerate [[default=yes]]]),
slouken@10777
  1239
                          , enable_libsamplerate_shared=yes)
slouken@10777
  1240
slouken@10787
  1241
            samplerate_lib=[`find_lib "libsamplerate.so.*" "" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@10787
  1242
slouken@10787
  1243
            if test x$have_loadso != xyes && \
slouken@10787
  1244
               test x$enable_libsamplerate_shared = xyes; then
slouken@10787
  1245
                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic libsamplerate loading])
slouken@10787
  1246
            fi
slouken@10787
  1247
            if test x$have_loadso = xyes && \
slouken@10787
  1248
               test x$enable_libsamplerate_shared = xyes && test x$samplerate_lib != x; then
slouken@10787
  1249
                echo "-- dynamic libsamplerate -> $samplerate_lib"
slouken@10787
  1250
                AC_DEFINE_UNQUOTED(SDL_LIBSAMPLERATE_DYNAMIC, "$samplerate_lib", [ ])
slouken@10787
  1251
            else
slouken@10787
  1252
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lsamplerate"
slouken@10777
  1253
            fi
slouken@10777
  1254
        fi
slouken@10777
  1255
    fi
slouken@10777
  1256
}
slouken@10777
  1257
icculus@1573
  1258
dnl See if GCC's -fvisibility=hidden is supported (gcc4 and later, usually).
icculus@1573
  1259
dnl  Details of this flag are here: http://gcc.gnu.org/wiki/Visibility
icculus@1573
  1260
CheckVisibilityHidden()
icculus@1573
  1261
{
icculus@1573
  1262
    AC_MSG_CHECKING(for GCC -fvisibility=hidden option)
icculus@1573
  1263
    have_gcc_fvisibility=no
icculus@1573
  1264
icculus@1573
  1265
    visibility_CFLAGS="-fvisibility=hidden"
icculus@1573
  1266
    save_CFLAGS="$CFLAGS"
slouken@2292
  1267
    CFLAGS="$save_CFLAGS $visibility_CFLAGS -Werror"
icculus@1573
  1268
    AC_TRY_COMPILE([
slouken@1745
  1269
    #if !defined(__GNUC__) || __GNUC__ < 4
slouken@1745
  1270
    #error SDL only uses visibility attributes in GCC 4 or newer
slouken@1745
  1271
    #endif
icculus@1573
  1272
    ],[
icculus@1573
  1273
    ],[
icculus@1573
  1274
    have_gcc_fvisibility=yes
icculus@1573
  1275
    ])
icculus@1573
  1276
    AC_MSG_RESULT($have_gcc_fvisibility)
icculus@1573
  1277
    CFLAGS="$save_CFLAGS"
icculus@1573
  1278
icculus@1573
  1279
    if test x$have_gcc_fvisibility = xyes; then
slouken@1574
  1280
        EXTRA_CFLAGS="$EXTRA_CFLAGS $visibility_CFLAGS"
icculus@1573
  1281
    fi
icculus@1573
  1282
}
icculus@1573
  1283
slouken@6116
  1284
dnl See if GCC's -mpreferred-stack-boundary is supported.
slouken@6116
  1285
dnl  Reference: http://bugzilla.libsdl.org/show_bug.cgi?id=1296
slouken@6116
  1286
CheckStackBoundary()
slouken@6116
  1287
{
slouken@6116
  1288
    AC_MSG_CHECKING(for GCC -mpreferred-stack-boundary option)
slouken@6116
  1289
    have_gcc_preferred_stack_boundary=no
slouken@6116
  1290
slouken@6116
  1291
    save_CFLAGS="$CFLAGS"
slouken@6116
  1292
    CFLAGS="$save_CFLAGS -mpreferred-stack-boundary=2"
slouken@6116
  1293
    AC_TRY_COMPILE([
slouken@6116
  1294
    int x = 0;
slouken@6116
  1295
    ],[
slouken@6116
  1296
    ],[
slouken@6116
  1297
    have_gcc_preferred_stack_boundary=yes
slouken@6116
  1298
    ])
slouken@6116
  1299
    AC_MSG_RESULT($have_gcc_preferred_stack_boundary)
slouken@6116
  1300
    CFLAGS="$save_CFLAGS"
slouken@6116
  1301
slouken@6116
  1302
    if test x$have_gcc_preferred_stack_boundary = xyes; then
slouken@6116
  1303
        EXTRA_CFLAGS="$EXTRA_CFLAGS -mpreferred-stack-boundary=2"
slouken@6116
  1304
    fi
slouken@6116
  1305
}
slouken@6116
  1306
icculus@10009
  1307
dnl See if GCC's -Wdeclaration-after-statement is supported.
icculus@10009
  1308
dnl  This lets us catch things that would fail on a C89 compiler when using
icculus@10009
  1309
dnl  a modern GCC.
icculus@10009
  1310
CheckDeclarationAfterStatement()
icculus@10009
  1311
{
icculus@10009
  1312
    AC_MSG_CHECKING(for GCC -Wdeclaration-after-statement option)
icculus@10009
  1313
    have_gcc_declaration_after_statement=no
icculus@10009
  1314
icculus@10009
  1315
    save_CFLAGS="$CFLAGS"
icculus@10009
  1316
    CFLAGS="$save_CFLAGS -Wdeclaration-after-statement -Werror=declaration-after-statement"
icculus@10009
  1317
    AC_TRY_COMPILE([
icculus@10009
  1318
    int x = 0;
icculus@10009
  1319
    ],[
icculus@10009
  1320
    ],[
icculus@10009
  1321
    have_gcc_declaration_after_statement=yes
icculus@10009
  1322
    ])
icculus@10009
  1323
    AC_MSG_RESULT($have_gcc_declaration_after_statement)
icculus@10009
  1324
    CFLAGS="$save_CFLAGS"
icculus@10009
  1325
icculus@10009
  1326
    if test x$have_gcc_declaration_after_statement = xyes; then
icculus@10009
  1327
        EXTRA_CFLAGS="$EXTRA_CFLAGS -Wdeclaration-after-statement -Werror=declaration-after-statement"
icculus@10009
  1328
    fi
icculus@10009
  1329
}
icculus@10009
  1330
icculus@5975
  1331
dnl See if GCC's -Wall is supported.
icculus@5975
  1332
CheckWarnAll()
icculus@5975
  1333
{
icculus@5975
  1334
    AC_MSG_CHECKING(for GCC -Wall option)
icculus@5975
  1335
    have_gcc_Wall=no
icculus@5975
  1336
icculus@5975
  1337
    save_CFLAGS="$CFLAGS"
icculus@5975
  1338
    CFLAGS="$save_CFLAGS -Wall"
icculus@5975
  1339
    AC_TRY_COMPILE([
icculus@5975
  1340
    int x = 0;
icculus@5975
  1341
    ],[
icculus@5975
  1342
    ],[
icculus@5975
  1343
    have_gcc_Wall=yes
icculus@5975
  1344
    ])
icculus@5975
  1345
    AC_MSG_RESULT($have_gcc_Wall)
icculus@5975
  1346
    CFLAGS="$save_CFLAGS"
icculus@5975
  1347
icculus@5975
  1348
    if test x$have_gcc_Wall = xyes; then
icculus@5975
  1349
        EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
icculus@5989
  1350
icculus@5989
  1351
        dnl Haiku headers use multicharacter constants all over the place. Ignore these warnings when using -Wall.
icculus@5989
  1352
        AC_MSG_CHECKING(for necessary GCC -Wno-multichar option)
icculus@5989
  1353
        need_gcc_Wno_multichar=no
icculus@5989
  1354
        case "$host" in
icculus@7981
  1355
            *-*-haiku*)
icculus@5989
  1356
                need_gcc_Wno_multichar=yes
icculus@5989
  1357
                ;;
icculus@5989
  1358
        esac
icculus@5989
  1359
        AC_MSG_RESULT($need_gcc_Wno_multichar)
icculus@5989
  1360
        if test x$need_gcc_Wno_multichar = xyes; then
icculus@5989
  1361
            EXTRA_CFLAGS="$EXTRA_CFLAGS -Wno-multichar"
icculus@5989
  1362
        fi
icculus@5975
  1363
    fi
icculus@5975
  1364
}
icculus@5975
  1365
gabomdq@8062
  1366
dnl Check for Wayland
gabomdq@8062
  1367
CheckWayland()
gabomdq@8062
  1368
{
gabomdq@8062
  1369
    AC_ARG_ENABLE(video-wayland,
gabomdq@8062
  1370
AC_HELP_STRING([--enable-video-wayland], [use Wayland video driver [[default=yes]]]),
brandon@8680
  1371
                  ,enable_video_wayland=yes)
gabomdq@8062
  1372
gabomdq@8082
  1373
    AC_ARG_ENABLE(video-wayland-qt-touch,
gabomdq@8082
  1374
AC_HELP_STRING([--enable-video-wayland-qt-touch], [QtWayland server support for Wayland video driver [[default=yes]]]),
gabomdq@8082
  1375
                  ,enable_video_wayland_qt_touch=yes)
gabomdq@8082
  1376
gabomdq@8062
  1377
    if test x$enable_video = xyes -a x$enable_video_wayland = xyes; then
gabomdq@8062
  1378
        AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
gabomdq@8062
  1379
        AC_MSG_CHECKING(for Wayland support)
gabomdq@8062
  1380
        video_wayland=no
gabomdq@8774
  1381
        if  test x$PKG_CONFIG != xno && \
gabomdq@8774
  1382
            test x$video_opengl_egl = xyes && \
gabomdq@8774
  1383
            test x$video_opengles_v2 = xyes; then
slouken@10304
  1384
            if $PKG_CONFIG --exists wayland-client wayland-scanner wayland-protocols wayland-egl wayland-cursor egl xkbcommon ; then
gabomdq@8104
  1385
                WAYLAND_CFLAGS=`$PKG_CONFIG --cflags wayland-client wayland-egl wayland-cursor xkbcommon`
gabomdq@8104
  1386
                WAYLAND_LIBS=`$PKG_CONFIG --libs wayland-client wayland-egl wayland-cursor xkbcommon`
jadahl@10303
  1387
                WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`
jadahl@10303
  1388
                WAYLAND_CORE_PROTOCOL_DIR=`$PKG_CONFIG --variable=pkgdatadir wayland-client`
slouken@10304
  1389
                WAYLAND_PROTOCOLS_DIR=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols`
gabomdq@8062
  1390
                video_wayland=yes
gabomdq@8062
  1391
            fi
gabomdq@8062
  1392
        fi
gabomdq@8062
  1393
        AC_MSG_RESULT($video_wayland)
gabomdq@8062
  1394
gabomdq@8062
  1395
        if test x$video_wayland = xyes; then
gabomdq@8062
  1396
            AC_DEFINE(SDL_VIDEO_DRIVER_WAYLAND, 1, [ ])
gabomdq@8082
  1397
            if test x$enable_video_wayland_qt_touch = xyes; then
gabomdq@8082
  1398
                AC_DEFINE(SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH, 1, [ ])
gabomdq@8082
  1399
            fi
slouken@10304
  1400
slouken@10304
  1401
            WAYLAND_PROTOCOLS_UNSTABLE="relative-pointer-unstable-v1 pointer-constraints-unstable-v1"
slouken@10304
  1402
gabomdq@8062
  1403
            SOURCES="$SOURCES $srcdir/src/video/wayland/*.c"
jadahl@10303
  1404
            EXTRA_CFLAGS="$EXTRA_CFLAGS $WAYLAND_CFLAGS -I\$(gen)"
gabomdq@8104
  1405
            AC_ARG_ENABLE(wayland-shared,
gabomdq@8104
  1406
AC_HELP_STRING([--enable-wayland-shared], [dynamically load Wayland support [[default=maybe]]]),
gabomdq@8104
  1407
                          , enable_wayland_shared=maybe)
gabomdq@8104
  1408
gabomdq@8104
  1409
            dnl FIXME: Do BSD and OS X need special cases?
gabomdq@8104
  1410
            case "$host" in
gabomdq@8104
  1411
                *)
gabomdq@8104
  1412
                    wayland_client_lib=[`find_lib "libwayland-client.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
gabomdq@8104
  1413
                    wayland_egl_lib=[`find_lib "libwayland-egl.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
gabomdq@8104
  1414
                    if test x$wayland_egl_lib = x; then
gabomdq@8104
  1415
                        dnl This works in Ubuntu 13.10, maybe others
gabomdq@8104
  1416
                        wayland_egl_lib=[`find_lib "mesa-egl/libwayland-egl.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
gabomdq@8104
  1417
                    fi
gabomdq@8104
  1418
                    wayland_cursor_lib=[`find_lib "libwayland-cursor.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
gabomdq@8104
  1419
                    xkbcommon_lib=[`find_lib "libxkbcommon.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
gabomdq@8104
  1420
                    ;;
gabomdq@8104
  1421
            esac
gabomdq@8104
  1422
gabomdq@8104
  1423
            if test x$enable_wayland_shared = xmaybe; then
gabomdq@8104
  1424
                enable_wayland_shared=yes
gabomdq@8104
  1425
            fi
gabomdq@8104
  1426
            if test x$have_loadso != xyes && \
gabomdq@8104
  1427
               test x$enable_wayland_shared = xyes; then
icculus@8159
  1428
                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic Wayland loading])
gabomdq@8104
  1429
                enable_wayland_shared=no
gabomdq@8104
  1430
            fi
gabomdq@8104
  1431
            if test x$have_loadso = xyes && \
gabomdq@8104
  1432
               test x$enable_wayland_shared = xyes && \
gabomdq@8104
  1433
               test x$wayland_client_lib != x && \
gabomdq@8104
  1434
               test x$wayland_egl_lib != x && \
gabomdq@8104
  1435
               test x$wayland_cursor_lib != x && \
gabomdq@8104
  1436
               test x$xkbcommon_lib != x; then
gabomdq@8104
  1437
                echo "-- dynamic libwayland-client -> $wayland_client_lib"
gabomdq@8104
  1438
                echo "-- dynamic libwayland-egl -> $wayland_egl_lib"
gabomdq@8104
  1439
                echo "-- dynamic libwayland-cursor -> $wayland_cursor_lib"
icculus@8159
  1440
                echo "-- dynamic libxkbcommon -> $xkbcommon_lib"
gabomdq@8104
  1441
                AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC, "$wayland_client_lib", [ ])
gabomdq@8104
  1442
                AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL, "$wayland_egl_lib", [ ])
gabomdq@8104
  1443
                AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR, "$wayland_cursor_lib", [ ])
gabomdq@8104
  1444
                AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON, "$xkbcommon_lib", [ ])
urkle@8124
  1445
                SUMMARY_video="${SUMMARY_video} wayland(dynamic)"
gabomdq@8104
  1446
            else
gabomdq@8104
  1447
                enable_wayland_shared=no
gabomdq@8104
  1448
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $WAYLAND_LIBS"
urkle@8124
  1449
                SUMMARY_video="${SUMMARY_video} wayland"
gabomdq@8104
  1450
            fi
gabomdq@8062
  1451
            have_video=yes
gabomdq@8062
  1452
        fi
gabomdq@8062
  1453
    fi
gabomdq@8062
  1454
}
icculus@1573
  1455
icculus@8159
  1456
dnl Check for Mir
icculus@8159
  1457
CheckMir()
icculus@8159
  1458
{
icculus@8159
  1459
    AC_ARG_ENABLE(video-mir,
icculus@8159
  1460
AC_HELP_STRING([--enable-video-mir], [use Mir video driver [[default=yes]]]),
brandon@8680
  1461
                  ,enable_video_mir=yes)
icculus@8159
  1462
icculus@8159
  1463
    if test x$enable_video = xyes -a x$enable_video_mir = xyes; then
icculus@8159
  1464
        AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
icculus@8159
  1465
        AC_MSG_CHECKING(for Mir support)
icculus@8159
  1466
        video_mir=no
icculus@8159
  1467
        if test x$PKG_CONFIG != xno; then
icculus@8159
  1468
            if $PKG_CONFIG --exists mirclient egl xkbcommon ; then
icculus@8159
  1469
                MIR_CFLAGS=`$PKG_CONFIG --cflags mirclient egl xkbcommon`
icculus@8159
  1470
                MIR_LIBS=`$PKG_CONFIG --libs mirclient egl xkbcommon`
gabomdq@8774
  1471
                save_CFLAGS="$CFLAGS"
gabomdq@8774
  1472
                CFLAGS="$save_CFLAGS $MIR_CFLAGS"
bschaefer@10089
  1473
brandon@10921
  1474
                dnl This will disable Mir if >= v0.26 is not available
gabomdq@8774
  1475
                AC_TRY_COMPILE([
gabomdq@8774
  1476
                #include <mir_toolkit/mir_client_library.h>
gabomdq@8774
  1477
                ],[
brandon@10921
  1478
                    MirWindowAttrib attrib = mir_window_attrib_state
gabomdq@8774
  1479
                ],[
icculus@8159
  1480
                video_mir=yes
gabomdq@8774
  1481
                ])
gabomdq@8774
  1482
                CFLAGS="$save_CFLAGS"
icculus@8159
  1483
            fi
icculus@8159
  1484
        fi
icculus@8159
  1485
        AC_MSG_RESULT($video_mir)
icculus@8159
  1486
icculus@8159
  1487
        if test x$video_mir = xyes; then
icculus@8159
  1488
            AC_DEFINE(SDL_VIDEO_DRIVER_MIR, 1, [ ])
icculus@8159
  1489
            SOURCES="$SOURCES $srcdir/src/video/mir/*.c"
icculus@8159
  1490
            EXTRA_CFLAGS="$EXTRA_CFLAGS $MIR_CFLAGS"
icculus@8159
  1491
            AC_ARG_ENABLE(mir-shared,
icculus@8159
  1492
AC_HELP_STRING([--enable-mir-shared], [dynamically load Mir support [[default=maybe]]]),
icculus@8159
  1493
                          , enable_mir_shared=maybe)
icculus@8159
  1494
icculus@8159
  1495
            dnl FIXME: Do BSD and OS X need special cases?
icculus@8159
  1496
            case "$host" in
icculus@8159
  1497
                *)
icculus@8159
  1498
                    mirclient_lib=[`find_lib "libmirclient.so.*" "$MIR_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
icculus@8159
  1499
                    xkbcommon_lib=[`find_lib "libxkbcommon.so.*" "$MIR_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
icculus@8159
  1500
                    ;;
icculus@8159
  1501
            esac
icculus@8159
  1502
icculus@8159
  1503
            if test x$enable_mir_shared = xmaybe; then
icculus@8159
  1504
                enable_mir_shared=yes
icculus@8159
  1505
            fi
icculus@8159
  1506
            if test x$have_loadso != xyes && \
icculus@8159
  1507
               test x$enable_mir_shared = xyes; then
icculus@8159
  1508
                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic Mir loading])
icculus@8159
  1509
                enable_mir_shared=no
icculus@8159
  1510
            fi
icculus@8159
  1511
            if test x$have_loadso = xyes && \
icculus@8159
  1512
               test x$enable_mir_shared = xyes && \
icculus@8159
  1513
               test x$mirclient_lib != x && \
icculus@8159
  1514
               test x$xkbcommon_lib != x; then
icculus@8159
  1515
                echo "-- dynamic libmirclient -> $mirclient_lib"
icculus@8159
  1516
                echo "-- dynamic libxkbcommon -> $xkbcommon_lib"
icculus@8159
  1517
                AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_MIR_DYNAMIC, "$mirclient_lib", [ ])
icculus@8159
  1518
                AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_MIR_DYNAMIC_XKBCOMMON, "$xkbcommon_lib", [ ])
icculus@8159
  1519
                SUMMARY_video="${SUMMARY_video} mir(dynamic)"
icculus@8159
  1520
            else
icculus@8159
  1521
                enable_mir_shared=no
icculus@8159
  1522
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $MIR_LIBS"
icculus@8159
  1523
                SUMMARY_video="${SUMMARY_video} mir"
icculus@8159
  1524
            fi
icculus@8159
  1525
            have_video=yes
icculus@8159
  1526
        fi
icculus@8159
  1527
    fi
icculus@8159
  1528
}
icculus@8159
  1529
gabomdq@8833
  1530
dnl Check for Native Client stuff
gabomdq@8833
  1531
CheckNativeClient()
gabomdq@8833
  1532
{
gabomdq@8833
  1533
        AC_TRY_COMPILE([
gabomdq@8833
  1534
          #if !defined(__native_client__)
gabomdq@8833
  1535
          #error "NO NACL"
gabomdq@8833
  1536
          #endif
gabomdq@8833
  1537
        ],[
gabomdq@8833
  1538
        ],[
icculus@10984
  1539
        AC_DEFINE(SDL_VIDEO_DRIVER_NACL, 1, [ ])
icculus@10984
  1540
        AC_DEFINE(SDL_AUDIO_DRIVER_NACL, 1, [ ])
gabomdq@8833
  1541
        AC_DEFINE(HAVE_POW, 1, [ ])
gabomdq@8833
  1542
        AC_DEFINE(HAVE_OPENGLES2, 1, [ ])
gabomdq@8833
  1543
        AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ])
gabomdq@8833
  1544
        AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
gabomdq@8833
  1545
gabomdq@8833
  1546
        SDL_LIBS="-lppapi_simple -lppapi_gles2 $SDL_LIBS"
gabomdq@8833
  1547
gabomdq@8833
  1548
        SDLMAIN_SOURCES="$srcdir/src/main/nacl/*.c"
gabomdq@8833
  1549
        SOURCES="$SOURCES $srcdir/src/audio/nacl/*.c"
gabomdq@8833
  1550
        SUMMARY_audio="${SUMMARY_audio} nacl"
gabomdq@8833
  1551
        SOURCES="$SOURCES $srcdir/src/video/nacl/*.c"
gabomdq@8833
  1552
        SUMMARY_video="${SUMMARY_video} nacl opengles2"
gabomdq@8833
  1553
        ])
gabomdq@8833
  1554
}
gabomdq@8833
  1555
icculus@8159
  1556
slouken@11472
  1557
CheckRPI()
slouken@11472
  1558
{
slouken@11472
  1559
    AC_ARG_ENABLE(video-rpi,
slouken@11472
  1560
AC_HELP_STRING([--enable-video-rpi], [use Raspberry Pi video driver [[default=yes]]]),
slouken@11472
  1561
                  , enable_video_rpi=yes)
slouken@11472
  1562
    if test x$enable_video = xyes -a x$enable_video_rpi = xyes; then
slouken@11472
  1563
        if test x$ARCH = xnetbsd; then
slouken@11472
  1564
            RPI_CFLAGS="-I/usr/pkg/include -I/usr/pkg/include/interface/vcos/pthreads -I/usr/pkg/include/interface/vmcs_host/linux"
slouken@11472
  1565
            RPI_LDFLAGS="-Wl,-R/usr/pkg/lib -L/usr/pkg/lib -lbcm_host"
slouken@11472
  1566
        else
slouken@11472
  1567
            RPI_CFLAGS="-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux"
slouken@11472
  1568
            RPI_LDFLAGS="-L/opt/vc/lib -lbcm_host"
slouken@11472
  1569
        fi
slouken@11472
  1570
slouken@11472
  1571
        # Save the original compiler flags and libraries
slouken@11472
  1572
        ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
slouken@11472
  1573
slouken@11472
  1574
        # Add the Raspberry Pi compiler flags and libraries
slouken@11472
  1575
        CFLAGS="$CFLAGS $RPI_CFLAGS"; LIBS="$LIBS $RPI_LDFLAGS"
slouken@11472
  1576
slouken@11472
  1577
        AC_MSG_CHECKING(for Raspberry Pi)
slouken@11472
  1578
        have_video_rpi=no
slouken@11472
  1579
        AC_TRY_LINK([
slouken@11472
  1580
          #include <bcm_host.h>
slouken@11472
  1581
        ],[
slouken@11472
  1582
          bcm_host_init();
slouken@11472
  1583
        ],[
slouken@11472
  1584
        have_video_rpi=yes
slouken@11472
  1585
        ],[
slouken@11472
  1586
        ])
slouken@11472
  1587
        AC_MSG_RESULT($have_video_rpi)
slouken@11472
  1588
slouken@11472
  1589
        # Restore the compiler flags and libraries
slouken@11472
  1590
        CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
slouken@11472
  1591
        
slouken@11472
  1592
        if test x$have_video_rpi = xyes; then
slouken@11472
  1593
            CFLAGS="$CFLAGS $RPI_CFLAGS"
slouken@11472
  1594
            SDL_CFLAGS="$SDL_CFLAGS $RPI_CFLAGS"
slouken@11472
  1595
            EXTRA_CFLAGS="$EXTRA_CFLAGS $RPI_CFLAGS"
slouken@11472
  1596
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS $RPI_LDFLAGS"
slouken@11472
  1597
            SOURCES="$SOURCES $srcdir/src/video/raspberry/*.c"
slouken@11472
  1598
            AC_DEFINE(SDL_VIDEO_DRIVER_RPI, 1, [ ])
slouken@11472
  1599
            SUMMARY_video="${SUMMARY_video} rpi"
slouken@11472
  1600
        fi
slouken@11472
  1601
    fi
slouken@11472
  1602
}
slouken@11472
  1603
slouken@0
  1604
dnl Find the X11 include and library directories
slouken@0
  1605
CheckX11()
slouken@0
  1606
{
slouken@0
  1607
    AC_ARG_ENABLE(video-x11,
slouken@1637
  1608
AC_HELP_STRING([--enable-video-x11], [use X11 video driver [[default=yes]]]),
slouken@0
  1609
                  , enable_video_x11=yes)
slouken@0
  1610
    if test x$enable_video = xyes -a x$enable_video_x11 = xyes; then
slouken@1806
  1611
        case "$host" in
slouken@1807
  1612
            *-*-darwin*)
slouken@1807
  1613
                # This isn't necessary for X11, but fixes GLX detection
slouken@6445
  1614
                if test "x$x_includes" = xNONE && \
slouken@6445
  1615
                   test "x$x_libraries" = xNONE && \
slouken@6445
  1616
                   test -d /usr/X11R6/include && \
slouken@6445
  1617
                   test -d /usr/X11R6/lib; then
slouken@1806
  1618
                    x_includes="/usr/X11R6/include"
slouken@1806
  1619
                    x_libraries="/usr/X11R6/lib"
slouken@1806
  1620
                fi
slouken@1806
  1621
                ;;
slouken@1806
  1622
        esac
slouken@0
  1623
        AC_PATH_X
slouken@0
  1624
        AC_PATH_XTRA
slouken@0
  1625
        if test x$have_x = xyes; then
icculus@1168
  1626
            AC_ARG_ENABLE(x11-shared,
slouken@1879
  1627
AC_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=maybe]]]),
slouken@1879
  1628
                          , enable_x11_shared=maybe)
icculus@1168
  1629
slouken@1550
  1630
            case "$host" in
slouken@5471
  1631
                *-*-darwin*)
icculus@1174
  1632
                    x11_lib='/usr/X11R6/lib/libX11.6.dylib'
icculus@1174
  1633
                    x11ext_lib='/usr/X11R6/lib/libXext.6.dylib'
slouken@5471
  1634
                    xcursor_lib='/usr/X11R6/lib/libXcursor.1.dylib'
slouken@5408
  1635
                    xinerama_lib='/usr/X11R6/lib/libXinerama.1.dylib'
slouken@5408
  1636
                    xinput_lib='/usr/X11R6/lib/libXi.6.dylib'
slouken@5408
  1637
                    xrandr_lib='/usr/X11R6/lib/libXrandr.2.dylib'
slouken@1592
  1638
                    xrender_lib='/usr/X11R6/lib/libXrender.1.dylib'
slouken@5408
  1639
                    xss_lib='/usr/X11R6/lib/libXss.1.dylib'
slouken@5408
  1640
                    xvidmode_lib='/usr/X11R6/lib/libXxf86vm.1.dylib'
icculus@1174
  1641
                    ;;
slouken@6365
  1642
                *-*-openbsd*)
slouken@6365
  1643
                    x11_lib='libX11.so'
slouken@6365
  1644
                    x11ext_lib='libXext.so'
icculus@6385
  1645
                    xcursor_lib='libXcursor.so'
icculus@6385
  1646
                    xinerama_lib='libXinerama.so'
icculus@6385
  1647
                    xinput_lib='libXi.so'
icculus@6385
  1648
                    xrandr_lib='libXrandr.so'
slouken@6365
  1649
                    xrender_lib='libXrender.so'
icculus@6385
  1650
                    xss_lib='libXss.so'
icculus@6385
  1651
                    xvidmode_lib='libXxf86vm.so'
slouken@6365
  1652
                    ;;
icculus@1174
  1653
                *)
slouken@3391
  1654
                    x11_lib=[`find_lib "libX11.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@3391
  1655
                    x11ext_lib=[`find_lib "libXext.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@5471
  1656
                    xcursor_lib=[`find_lib "libXcursor.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@5408
  1657
                    xinerama_lib=[`find_lib "libXinerama.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@5408
  1658
                    xinput_lib=[`find_lib "libXi.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@5408
  1659
                    xrandr_lib=[`find_lib "libXrandr.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@3391
  1660
                    xrender_lib=[`find_lib "libXrender.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@3391
  1661
                    xss_lib=[`find_lib "libXss.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@5408
  1662
                    xvidmode_lib=[`find_lib "libXxf86vm.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
icculus@1174
  1663
                    ;;
icculus@1174
  1664
            esac
icculus@1168
  1665
slouken@1361
  1666
            if test x$ac_cv_func_shmat != xyes; then
slouken@1361
  1667
                X_CFLAGS="$X_CFLAGS -DNO_SHARED_MEMORY"
slouken@1361
  1668
            fi
slouken@1799
  1669
            CFLAGS="$CFLAGS $X_CFLAGS"
slouken@1799
  1670
            LDFLAGS="$LDFLAGS $X_LIBS"
slouken@1468
  1671
slouken@7433
  1672
            AC_CHECK_HEADER(X11/extensions/Xext.h,
slouken@7433
  1673
                            have_xext_h_hdr=yes,
slouken@7433
  1674
                            have_xext_h_hdr=no,
slouken@7433
  1675
                            [#include <X11/Xlib.h>
slouken@7433
  1676
                             #include <X11/Xproto.h>
slouken@7433
  1677
                            ])
slouken@7433
  1678
            if test x$have_xext_h_hdr != xyes; then
slouken@7433
  1679
               AC_MSG_ERROR([
slouken@7433
  1680
*** Missing Xext.h, maybe you need to install the libxext-dev package?
slouken@7433
  1681
               ])
slouken@7433
  1682
            fi
slouken@7433
  1683
icculus@5548
  1684
            AC_DEFINE(SDL_VIDEO_DRIVER_X11, 1, [ ])
slouken@1468
  1685
            SOURCES="$SOURCES $srcdir/src/video/x11/*.c"
slouken@1521
  1686
            EXTRA_CFLAGS="$EXTRA_CFLAGS $X_CFLAGS"
slouken@1879
  1687
slouken@7494
  1688
            # Needed so SDL applications can include SDL_syswm.h
slouken@7494
  1689
            SDL_CFLAGS="$SDL_CFLAGS $X_CFLAGS"
slouken@7494
  1690
slouken@1879
  1691
            if test x$enable_x11_shared = xmaybe; then
icculus@8016
  1692
                enable_x11_shared=yes
slouken@1879
  1693
            fi
icculus@1173
  1694
            if test x$have_loadso != xyes && \
icculus@1168
  1695
               test x$enable_x11_shared = xyes; then
slouken@1467
  1696
                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic X11 loading])
icculus@1875
  1697
                enable_x11_shared=no
icculus@1168
  1698
            fi
icculus@1173
  1699
            if test x$have_loadso = xyes && \
icculus@1170
  1700
               test x$enable_x11_shared = xyes && test x$x11_lib != x && test x$x11ext_lib != x; then
icculus@1174
  1701
                echo "-- dynamic libX11 -> $x11_lib"
icculus@1174
  1702
                echo "-- dynamic libX11ext -> $x11ext_lib"
icculus@5548
  1703
                AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC, "$x11_lib", [ ])
icculus@5548
  1704
                AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT, "$x11ext_lib", [ ])
urkle@8124
  1705
                SUMMARY_video="${SUMMARY_video} x11(dynamic)"
icculus@1168
  1706
            else
icculus@1589
  1707
                enable_x11_shared=no
icculus@2763
  1708
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $X_LIBS -lX11 -lXext"
urkle@8124
  1709
                SUMMARY_video="${SUMMARY_video} x11"
icculus@1168
  1710
            fi
slouken@1361
  1711
            have_video=yes
slouken@0
  1712
slouken@6313
  1713
            AC_MSG_CHECKING(for const parameter to XextAddDisplay)
slouken@6313
  1714
            have_const_param_XextAddDisplay=no
slouken@6313
  1715
            AC_TRY_COMPILE([
slouken@6313
  1716
              #include <X11/Xlib.h>
slouken@6313
  1717
              #include <X11/Xproto.h>
slouken@6313
  1718
              #include <X11/extensions/Xext.h>
slouken@6313
  1719
              #include <X11/extensions/extutil.h>
gabomdq@6327
  1720
              extern XExtDisplayInfo* XextAddDisplay(XExtensionInfo* a,Display* b,_Xconst char* c,XExtensionHooks* d,int e,XPointer f);
slouken@6313
  1721
            ],[
slouken@6313
  1722
            ],[
slouken@6313
  1723
            have_const_param_XextAddDisplay=yes
icculus@10984
  1724
            AC_DEFINE([SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY], 1, [ ])
slouken@6313
  1725
            ])
slouken@6313
  1726
            AC_MSG_RESULT($have_const_param_XextAddDisplay)
slouken@6313
  1727
slouken@6362
  1728
            dnl AC_CHECK_LIB(X11, XGetEventData, AC_DEFINE(SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS, 1, [Have XGenericEvent]))
slouken@6362
  1729
            AC_MSG_CHECKING([for XGenericEvent])
slouken@6362
  1730
            have_XGenericEvent=no
slouken@6362
  1731
            AC_TRY_COMPILE([
slouken@6362
  1732
              	#include <X11/Xlib.h>
slouken@6362
  1733
            ],[
slouken@6362
  1734
Display *display;
slouken@6362
  1735
XEvent event;
slouken@6362
  1736
XGenericEventCookie *cookie = &event.xcookie;
slouken@6362
  1737
XNextEvent(display, &event);
slouken@6362
  1738
XGetEventData(display, cookie);
slouken@6362
  1739
XFreeEventData(display, cookie);
slouken@6362
  1740
            ],[
slouken@6362
  1741
                have_XGenericEvent=yes
icculus@10984
  1742
                AC_DEFINE([SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS], 1, [ ])
slouken@6362
  1743
            ])
slouken@6362
  1744
            AC_MSG_RESULT($have_XGenericEvent)
slouken@6362
  1745
dimitris@6318
  1746
            AC_CHECK_LIB(X11, XkbKeycodeToKeysym, AC_DEFINE(SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM, 1, [Have XkbKeycodeToKeysym]))
slouken@6311
  1747
slouken@5471
  1748
            AC_ARG_ENABLE(video-x11-xcursor,
slouken@5471
  1749
AC_HELP_STRING([--enable-video-x11-xcursor], [enable X11 Xcursor support [[default=yes]]]),
slouken@5471
  1750
                            , enable_video_x11_xcursor=yes)
slouken@5471
  1751
            if test x$enable_video_x11_xcursor = xyes; then
slouken@5471
  1752
                definitely_enable_video_x11_xcursor=no
slouken@5471
  1753
                AC_CHECK_HEADER(X11/Xcursor/Xcursor.h,
slouken@5471
  1754
                                have_xcursor_h_hdr=yes,
slouken@5471
  1755
                                have_xcursor_h_hdr=no,
slouken@5471
  1756
                                [#include <X11/Xlib.h>
slouken@5471
  1757
                                ])
slouken@5471
  1758
                if test x$have_xcursor_h_hdr = xyes; then
slouken@5471
  1759
                    if test x$enable_x11_shared = xyes && test x$xcursor_lib != x ; then
slouken@5471
  1760
                        echo "-- dynamic libXcursor -> $xcursor_lib"
icculus@5548
  1761
                        AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR, "$xcursor_lib", [ ])
slouken@5471
  1762
                        definitely_enable_video_x11_xcursor=yes
slouken@5471
  1763
                    else
slouken@5471
  1764
                        AC_CHECK_LIB(Xcursor, XcursorImageCreate, have_xcursor_lib=yes)
slouken@5471
  1765
                        if test x$have_xcursor_lib = xyes ; then
slouken@5471
  1766
                            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXcursor"
slouken@5471
  1767
                            definitely_enable_video_x11_xcursor=yes
slouken@5471
  1768
                        fi
slouken@5471
  1769
                    fi
slouken@5471
  1770
                fi
slouken@5471
  1771
            fi
slouken@5471
  1772
            if test x$definitely_enable_video_x11_xcursor = xyes; then
icculus@5548
  1773
                AC_DEFINE(SDL_VIDEO_DRIVER_X11_XCURSOR, 1, [ ])
urkle@8124
  1774
                SUMMARY_video_x11="${SUMMARY_video_x11} xcursor"
slouken@5471
  1775
            fi
icculus@9657
  1776
            AC_ARG_ENABLE(video-x11-xdbe,
icculus@9657
  1777
AC_HELP_STRING([--enable-video-x11-xdbe], [enable X11 Xdbe support [[default=yes]]]),
icculus@9657
  1778
                            , enable_video_x11_xdbe=yes)
icculus@9657
  1779
            if test x$enable_video_x11_xdbe = xyes; then
icculus@9657
  1780
                AC_CHECK_HEADER(X11/extensions/Xdbe.h,
icculus@9657
  1781
                                have_dbe_h_hdr=yes,
icculus@9657
  1782
                                have_dbe_h_hdr=no,
icculus@9657
  1783
                                [#include <X11/Xlib.h>
icculus@9657
  1784
                                ])
icculus@9657
  1785
                if test x$have_dbe_h_hdr = xyes; then
icculus@9657
  1786
                    AC_DEFINE(SDL_VIDEO_DRIVER_X11_XDBE, 1, [ ])
icculus@9657
  1787
                    SUMMARY_video_x11="${SUMMARY_video_x11} xdbe"
icculus@9657
  1788
                fi
icculus@9657
  1789
            fi
slouken@227
  1790
            AC_ARG_ENABLE(video-x11-xinerama,
slouken@1637
  1791
AC_HELP_STRING([--enable-video-x11-xinerama], [enable X11 Xinerama support [[default=yes]]]),
slouken@227
  1792
                            , enable_video_x11_xinerama=yes)
slouken@227
  1793
            if test x$enable_video_x11_xinerama = xyes; then
slouken@5408
  1794
                definitely_enable_video_x11_xinerama=no
slouken@5408
  1795
                AC_CHECK_HEADER(X11/extensions/Xinerama.h,
slouken@5408
  1796
                                have_xinerama_h_hdr=yes,
slouken@5408
  1797
                                have_xinerama_h_hdr=no,
icculus@4793
  1798
                                [#include <X11/Xlib.h>
icculus@4793
  1799
                                ])
slouken@5408
  1800
                if test x$have_xinerama_h_hdr = xyes; then
slouken@5408
  1801
                    if test x$enable_x11_shared = xyes && test x$xinerama_lib != x ; then
slouken@5408
  1802
                        echo "-- dynamic libXinerama -> $xinerama_lib"
icculus@5548
  1803
                        AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA, "$xinerama_lib", [ ])
slouken@5408
  1804
                        definitely_enable_video_x11_xinerama=yes
slouken@5408
  1805
                    else
slouken@5408
  1806
                        AC_CHECK_LIB(Xinerama, XineramaQueryExtension, have_xinerama_lib=yes)
slouken@5408
  1807
                        if test x$have_xinerama_lib = xyes ; then
slouken@5408
  1808
                            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXinerama"
slouken@5408
  1809
                            definitely_enable_video_x11_xinerama=yes
slouken@5408
  1810
                        fi
slouken@5408
  1811
                    fi
icculus@4793
  1812
                fi
icculus@4793
  1813
            fi
slouken@5408
  1814
            if test x$definitely_enable_video_x11_xinerama = xyes; then
icculus@5548
  1815
                AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINERAMA, 1, [ ])
urkle@8124
  1816
                SUMMARY_video_x11="${SUMMARY_video_x11} xinerama"
slouken@5408
  1817
            fi
slouken@5408
  1818
            AC_ARG_ENABLE(video-x11-xinput,
slouken@5408
  1819
AC_HELP_STRING([--enable-video-x11-xinput], [enable X11 XInput extension for manymouse, tablets, etc [[default=yes]]]),
slouken@5408
  1820
                            , enable_video_x11_xinput=yes)
slouken@5408
  1821
            if test x$enable_video_x11_xinput = xyes; then
slouken@5408
  1822
                definitely_enable_video_x11_xinput=no
slouken@6311
  1823
                AC_CHECK_HEADER(X11/extensions/XInput2.h,
slouken@5408
  1824
                                have_xinput_h_hdr=yes,
slouken@5408
  1825
                                have_xinput_h_hdr=no,
slouken@5408
  1826
                                [#include <X11/Xlib.h>
slouken@5408
  1827
                                ])
slouken@5408
  1828
                if test x$have_xinput_h_hdr = xyes; then
slouken@5408
  1829
                    if test x$enable_x11_shared = xyes && test x$xinput_lib != x ; then
slouken@5408
  1830
                        echo "-- dynamic libXi -> $xinput_lib"
slouken@6311
  1831
                        AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2, "$xinput_lib", [ ])
slouken@5408
  1832
                        definitely_enable_video_x11_xinput=yes
slouken@5408
  1833
                    else
slouken@5408
  1834
                        AC_CHECK_LIB(Xi, XOpenDevice, have_xinput_lib=yes)
slouken@5408
  1835
                        if test x$have_xinput_lib = xyes ; then
slouken@5408
  1836
                            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXi"
slouken@5408
  1837
                            definitely_enable_video_x11_xinput=yes
slouken@5408
  1838
                        fi
slouken@5408
  1839
                    fi
slouken@5408
  1840
                fi
slouken@5408
  1841
            fi
slouken@5408
  1842
            if test x$definitely_enable_video_x11_xinput = xyes; then
urkle@8124
  1843
                SUMMARY_video_x11="${SUMMARY_video_x11} xinput2"
slouken@6311
  1844
                AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINPUT2, 1, [ ])
dimitris@6316
  1845
                AC_MSG_CHECKING(for xinput2 multitouch)
dimitris@6316
  1846
            	have_xinput2_multitouch=no
dimitris@6316
  1847
            	AC_TRY_COMPILE([
dimitris@6316
  1848
              		#include <X11/Xlib.h>
dimitris@6316
  1849
             		#include <X11/Xproto.h>
dimitris@6316
  1850
			#include <X11/extensions/XInput2.h>
dimitris@6316
  1851
            	],[
gabomdq@6340
  1852
int event_type = XI_TouchBegin;
gabomdq@6340
  1853
XITouchClassInfo *t;
dimitris@6316
  1854
            	],[
dimitris@6316
  1855
            	have_xinput2_multitouch=yes
icculus@10985
  1856
            	AC_DEFINE([SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH], 1, [])
urkle@8124
  1857
                SUMMARY_video_x11="${SUMMARY_video_x11} xinput2_multitouch"
dimitris@6316
  1858
            	])
dimitris@6316
  1859
            	AC_MSG_RESULT($have_xinput2_multitouch)
slouken@5408
  1860
            fi
icculus@1589
  1861
            AC_ARG_ENABLE(video-x11-xrandr,
slouken@1637
  1862
AC_HELP_STRING([--enable-video-x11-xrandr], [enable X11 Xrandr extension for fullscreen [[default=yes]]]),
icculus@1589
  1863
                            , enable_video_x11_xrandr=yes)
icculus@1589
  1864
            if test x$enable_video_x11_xrandr = xyes; then
gabomdq@8146
  1865
                dnl XRRScreenResources is only present in Xrandr >= 1.2, we use that as a test.
icculus@1589
  1866
                definitely_enable_video_x11_xrandr=no
gabomdq@8146
  1867
                have_xrandr_h_hdr=no
gabomdq@8146
  1868
                AC_TRY_COMPILE([
gabomdq@8146
  1869
                #include <X11/Xlib.h>
gabomdq@8146
  1870
                #include <X11/extensions/Xrandr.h>
gabomdq@8146
  1871
                ],[
gabomdq@8146
  1872
                XRRScreenResources *res = NULL;
gabomdq@8146
  1873
                ],[
gabomdq@8146
  1874
                have_xrandr_h_hdr=yes
gabomdq@8146
  1875
                ])
icculus@1589
  1876
                if test x$have_xrandr_h_hdr = xyes; then
icculus@1589
  1877
                    if test x$enable_x11_shared = xyes && test x$xrandr_lib != x ; then
icculus@1589
  1878
                        echo "-- dynamic libXrandr -> $xrandr_lib"
icculus@5548
  1879
                        AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR, "$xrandr_lib", [ ])
icculus@1589
  1880
                        definitely_enable_video_x11_xrandr=yes
icculus@1589
  1881
                    else
icculus@1589
  1882
                        AC_CHECK_LIB(Xrandr, XRRQueryExtension, have_xrandr_lib=yes)
sunnysachanandani@4577
  1883
                        if test x$have_xrandr_lib = xyes ; then
sunnysachanandani@4577
  1884
                            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXrandr"
icculus@1589
  1885
                            definitely_enable_video_x11_xrandr=yes
icculus@1589
  1886
                        fi
icculus@1589
  1887
                    fi
icculus@1589
  1888
                fi
icculus@1589
  1889
            fi
icculus@1589
  1890
            if test x$definitely_enable_video_x11_xrandr = xyes; then
icculus@5548
  1891
                AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR, 1, [ ])
urkle@8124
  1892
                SUMMARY_video_x11="${SUMMARY_video_x11} xrandr"
icculus@1589
  1893
            fi
slouken@3025
  1894
            AC_ARG_ENABLE(video-x11-scrnsaver,
slouken@3025
  1895
AC_HELP_STRING([--enable-video-x11-scrnsaver], [enable X11 screensaver extension [[default=yes]]]),
slouken@3025
  1896
                            , enable_video_x11_scrnsaver=yes)
slouken@3025
  1897
            if test x$enable_video_x11_scrnsaver = xyes; then
slouken@3025
  1898
                AC_CHECK_HEADER(X11/extensions/scrnsaver.h,
slouken@3025
  1899
                                have_scrnsaver_h_hdr=yes,
slouken@3025
  1900
                                have_scrnsaver_h_hdr=no,
slouken@1783
  1901
                                [#include <X11/Xlib.h>
slouken@1783
  1902
                                ])
slouken@3025
  1903
                if test x$have_scrnsaver_h_hdr = xyes; then
slouken@3025
  1904
                    if test x$enable_x11_shared = xyes && test x$xss_lib != x ; then
slouken@3025
  1905
                        echo "-- dynamic libXss -> $xss_lib"
icculus@5548
  1906
                        AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS, "$xss_lib", [ ])
slouken@3025
  1907
                        definitely_enable_video_x11_scrnsaver=yes
slouken@3025
  1908
                    else
slouken@3025
  1909
                        AC_CHECK_LIB(Xss, XScreenSaverSuspend, have_xss_lib=yes)
slouken@3025
  1910
                        if test x$have_xss_lib = xyes ; then
slouken@3025
  1911
                            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXss"
slouken@3025
  1912
                            definitely_enable_video_x11_scrnsaver=yes
slouken@3025
  1913
                        fi
slouken@3025
  1914
                    fi
slouken@1783
  1915
                fi
slouken@1783
  1916
            fi
slouken@3025
  1917
            if test x$definitely_enable_video_x11_scrnsaver = xyes; then
icculus@5548
  1918
                AC_DEFINE(SDL_VIDEO_DRIVER_X11_XSCRNSAVER, 1, [ ])
urkle@8124
  1919
                SUMMARY_video_x11="${SUMMARY_video_x11} xscrnsaver"
slouken@5408
  1920
            fi
slouken@5408
  1921
            AC_ARG_ENABLE(video-x11-xshape,
slouken@5408
  1922
AC_HELP_STRING([--enable-video-x11-xshape], [enable X11 XShape support [[default=yes]]]),
slouken@5408
  1923
                            , enable_video_x11_xshape=yes)
slouken@5408
  1924
            if test x$enable_video_x11_xshape = xyes; then
slouken@5408
  1925
                AC_CHECK_HEADER(X11/extensions/shape.h,
slouken@5408
  1926
                                have_shape_h_hdr=yes,
slouken@5408
  1927
                                have_shape_h_hdr=no,
slouken@5408
  1928
                                [#include <X11/Xlib.h>
slouken@5408
  1929
                                ])
slouken@5408
  1930
                if test x$have_shape_h_hdr = xyes; then
icculus@5548
  1931
                    AC_DEFINE(SDL_VIDEO_DRIVER_X11_XSHAPE, 1, [ ])
urkle@8124
  1932
                    SUMMARY_video_x11="${SUMMARY_video_x11} xshape"
slouken@5408
  1933
                fi
slouken@5408
  1934
            fi
slouken@5408
  1935
            AC_ARG_ENABLE(video-x11-vm,
slouken@5408
  1936
AC_HELP_STRING([--enable-video-x11-vm], [use X11 VM extension for fullscreen [[default=yes]]]),
slouken@5408
  1937
                            , enable_video_x11_vm=yes)
slouken@5408
  1938
            if test x$enable_video_x11_vm = xyes; then
slouken@5408
  1939
                definitely_enable_video_x11_vm=no
slouken@5408
  1940
                AC_CHECK_HEADER(X11/extensions/xf86vmode.h,
slouken@5408
  1941
                                have_vm_h_hdr=yes,
slouken@5408
  1942
                                have_vm_h_hdr=no,
slouken@5408
  1943
                                [#include <X11/Xlib.h>
slouken@5408
  1944
                                ])
slouken@5408
  1945
                if test x$have_vm_h_hdr = xyes; then
slouken@5408
  1946
                    if test x$enable_x11_shared = xyes && test x$xvidmode_lib != x ; then
slouken@5408
  1947
                        echo "-- dynamic libXxf86vm -> $xvidmode_lib"
icculus@5548
  1948
                        AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE, "$xvidmode_lib", [ ])
slouken@5408
  1949
                        definitely_enable_video_x11_vm=yes
slouken@5408
  1950
                    else
slouken@5408
  1951
                        AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryVersion, have_vm_lib=yes)
slouken@5408
  1952
                        if test x$have_vm_lib = xyes ; then
slouken@5408
  1953
                            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXxf86vm"
slouken@5408
  1954
                            definitely_enable_video_x11_vm=yes
slouken@5408
  1955
                        fi
slouken@5408
  1956
                    fi
slouken@5408
  1957
                fi
slouken@5408
  1958
            fi
slouken@5408
  1959
            if test x$definitely_enable_video_x11_vm = xyes; then
icculus@5548
  1960
                AC_DEFINE(SDL_VIDEO_DRIVER_X11_XVIDMODE, 1, [ ])
urkle@8124
  1961
                SUMMARY_video_x11="${SUMMARY_video_x11} xvidmode"
slouken@3025
  1962
            fi
slouken@0
  1963
        fi
slouken@0
  1964
    fi
slouken@0
  1965
}
slouken@279
  1966
slouken@9164
  1967
dnl Set up the Vivante video driver if enabled
slouken@9164
  1968
CheckVivanteVideo()
denis@9127
  1969
{
slouken@9164
  1970
    AC_ARG_ENABLE(video-vivante,
slouken@9164
  1971
AC_HELP_STRING([--enable-video-vivante], [use Vivante EGL video driver [[default=yes]]]),
slouken@9164
  1972
                  , enable_video_vivante=yes)
slouken@9164
  1973
    if test x$enable_video = xyes -a x$enable_video_vivante = xyes; then
slouken@9164
  1974
        AC_MSG_CHECKING(for Vivante VDK API)
slouken@9164
  1975
        have_vivante_vdk=no
denis@9127
  1976
        AC_TRY_COMPILE([
slouken@9164
  1977
          #define LINUX
slouken@9164
  1978
          #define EGL_API_FB
slouken@9164
  1979
          #include <gc_vdk.h>
slouken@9164
  1980
        ],[
slouken@9164
  1981
        ],[
slouken@9164
  1982
        have_vivante_vdk=yes
slouken@9164
  1983
        ])
slouken@9164
  1984
        AC_MSG_RESULT($have_vivante_vdk)
slouken@9164
  1985
slouken@9164
  1986
        AC_MSG_CHECKING(for Vivante FB API)
slouken@9164
  1987
        have_vivante_egl=no
slouken@9164
  1988
        AC_TRY_COMPILE([
slouken@9164
  1989
          #define LINUX
denis@9127
  1990
          #define EGL_API_FB
denis@9127
  1991
          #include <EGL/eglvivante.h>
denis@9127
  1992
        ],[
denis@9127
  1993
        ],[
slouken@9164
  1994
        have_vivante_egl=yes
denis@9127
  1995
        ])
slouken@9164
  1996
        AC_MSG_RESULT($have_vivante_egl)
slouken@9164
  1997
slouken@9164
  1998
        if test x$have_vivante_vdk = xyes -o x$have_vivante_egl = xyes; then
slouken@9164
  1999
            AC_DEFINE(SDL_VIDEO_DRIVER_VIVANTE, 1, [ ])
slouken@9164
  2000
            EXTRA_CFLAGS="$EXTRA_CFLAGS -DLINUX -DEGL_API_FB"
slouken@9164
  2001
            if test x$have_vivante_vdk = xyes; then
slouken@9164
  2002
                AC_DEFINE(SDL_VIDEO_DRIVER_VIVANTE_VDK, 1, [ ])
slouken@9164
  2003
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lVDK"
slouken@9164
  2004
            fi
slouken@9164
  2005
            SOURCES="$SOURCES $srcdir/src/video/vivante/*.c"
slouken@9164
  2006
            SUMMARY_video="${SUMMARY_video} vivante"
denis@9127
  2007
            have_video=yes
denis@9127
  2008
        fi
denis@9127
  2009
    fi
denis@9127
  2010
}
denis@9127
  2011
icculus@7981
  2012
dnl Set up the Haiku video driver if enabled
icculus@7981
  2013
CheckHaikuVideo()
slouken@1361
  2014
{
slouken@1361
  2015
    if test x$enable_video = xyes; then
icculus@7981
  2016
        AC_DEFINE(SDL_VIDEO_DRIVER_HAIKU, 1, [ ])
icculus@7981
  2017
        SOURCES="$SOURCES $srcdir/src/video/haiku/*.cc"
slouken@1361
  2018
        have_video=yes
urkle@8124
  2019
        SUMMARY_video="${SUMMARY_video} haiku"
slouken@1361
  2020
    fi
slouken@1361
  2021
}
slouken@1361
  2022
slouken@1931
  2023
dnl Set up the Cocoa video driver for Mac OS X (but not Darwin)
slouken@1361
  2024
CheckCOCOA()
slouken@1361
  2025
{
slouken@1361
  2026
    AC_ARG_ENABLE(video-cocoa,
slouken@1931
  2027
AC_HELP_STRING([--enable-video-cocoa], [use Cocoa video driver [[default=yes]]]),
slouken@1361
  2028
                  , enable_video_cocoa=yes)
slouken@1361
  2029
    if test x$enable_video = xyes -a x$enable_video_cocoa = xyes; then
slouken@1361
  2030
        save_CFLAGS="$CFLAGS"
slouken@11408
  2031
        dnl Work around that we don't have Objective-C support in autoconf
slouken@1361
  2032
        CFLAGS="$CFLAGS -x objective-c"
slouken@1361
  2033
        AC_MSG_CHECKING(for Cocoa framework)
slouken@1361
  2034
        have_cocoa=no
slouken@1361
  2035
        AC_TRY_COMPILE([
slouken@1361
  2036
          #import <Cocoa/Cocoa.h>
slouken@1361
  2037
        ],[
slouken@1361
  2038
        ],[
slouken@1361
  2039
        have_cocoa=yes
slouken@1361
  2040
        ])
slouken@1361
  2041
        AC_MSG_RESULT($have_cocoa)
slouken@1361
  2042
        CFLAGS="$save_CFLAGS"
slouken@1361
  2043
        if test x$have_cocoa = xyes; then
icculus@5548
  2044
            AC_DEFINE(SDL_VIDEO_DRIVER_COCOA, 1, [ ])
slouken@1931
  2045
            SOURCES="$SOURCES $srcdir/src/video/cocoa/*.m"
urkle@8124
  2046
            SUMMARY_video="${SUMMARY_video} cocoa"
slouken@1361
  2047
            have_video=yes
slouken@1361
  2048
        fi
slouken@1361
  2049
    fi
slouken@1361
  2050
}
slouken@1361
  2051
slouken@167
  2052
dnl Find DirectFB
slouken@167
  2053
CheckDirectFB()
slouken@167
  2054
{
slouken@167
  2055
    AC_ARG_ENABLE(video-directfb,
slouken@2314
  2056
AC_HELP_STRING([--enable-video-directfb], [use DirectFB video driver [[default=no]]]),
slouken@2314
  2057
                  , enable_video_directfb=no)
slouken@167
  2058
    if test x$enable_video = xyes -a x$enable_video_directfb = xyes; then
slouken@167
  2059
        video_directfb=no
slouken@167
  2060
slouken@2998
  2061
        DIRECTFB_REQUIRED_VERSION=1.0.0
slouken@5199
  2062
        AC_PATH_PROGS(DIRECTFBCONFIG, directfb-config, no, [$prefix/bin:$PATH])
slouken@1602
  2063
        if test x$DIRECTFBCONFIG = xno; then
slouken@1588
  2064
            AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
slouken@1602
  2065
            if test x$PKG_CONFIG != xno; then
slouken@1602
  2066
                if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb; then
slouken@1588
  2067
                    DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags directfb`
slouken@1588
  2068
                    DIRECTFB_LIBS=`$PKG_CONFIG --libs directfb`
slouken@2998
  2069
                    DIRECTFB_PREFIX=`$PKG_CONFIG --variable=prefix directfb`
slouken@1588
  2070
                    video_directfb=yes
slouken@1588
  2071
                fi
slouken@1588
  2072
            fi
slouken@167
  2073
        else
slouken@1588
  2074
            set -- `echo $DIRECTFB_REQUIRED_VERSION | sed 's/\./ /g'`
slouken@1588
  2075
            NEED_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
slouken@6986
  2076
            set -- `$DIRECTFBCONFIG --version | sed 's/\./ /g'`
slouken@1588
  2077
            HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
slouken@1588
  2078
            if test $HAVE_VERSION -ge $NEED_VERSION; then
slouken@1588
  2079
                DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags`
slouken@1588
  2080
                DIRECTFB_LIBS=`$DIRECTFBCONFIG --libs`
slouken@2998
  2081
                DIRECTFB_PREFIX=`$DIRECTFBCONFIG --prefix`
slouken@167
  2082
                video_directfb=yes
slouken@167
  2083
            fi
slouken@167
  2084
        fi
slouken@3351
  2085
        if test x$video_directfb = xyes; then
slouken@3351
  2086
            # SuSE 11.1 installs directfb-config without directfb-devel
couriersud@3639
  2087
            save_CPPFLAGS="$CPPFLAGS"
couriersud@3639
  2088
            CPPFLAGS="$CPPFLAGS $DIRECTFB_CFLAGS"
slouken@3351
  2089
            AC_CHECK_HEADER(directfb.h, have_directfb_hdr=yes, have_directfb_hdr=no)
couriersud@3639
  2090
            CPPFLAGS="$save_CPPFLAGS"
slouken@3351
  2091
            video_directfb=$have_directfb_hdr
slouken@3351
  2092
        fi
slouken@3351
  2093
        AC_MSG_CHECKING(for DirectFB $DIRECTFB_REQUIRED_VERSION support)
slouken@3351
  2094
        AC_MSG_RESULT($video_directfb)
slouken@167
  2095
slouken@167
  2096
        if test x$video_directfb = xyes; then
slouken@2998
  2097
            AC_ARG_ENABLE(directfb-shared,
slouken@2998
  2098
AC_HELP_STRING([--enable-directfb-shared], [dynamically load directfb support [[default=yes]]]),
slouken@2998
  2099
                              , enable_directfb_shared=yes)
slouken@2998
  2100
icculus@5548
  2101
            AC_DEFINE(SDL_VIDEO_DRIVER_DIRECTFB, 1, [ ])
icculus@5548
  2102
            AC_DEFINE(SDL_VIDEO_RENDER_DIRECTFB, 1, [ ])
slouken@1361
  2103
            SOURCES="$SOURCES $srcdir/src/video/directfb/*.c"
slouken@1521
  2104
            EXTRA_CFLAGS="$EXTRA_CFLAGS $DIRECTFB_CFLAGS"
slouken@2998
  2105
slouken@3392
  2106
            AC_MSG_CHECKING(for directfb dynamic loading support)
slouken@3392
  2107
            directfb_shared=no
philipp@11090
  2108
            directfb_lib=[`find_lib "libdirectfb*.so.*" "$DIRECTFB_LIBS"`]
slouken@5199
  2109
            # | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@5199
  2110
AC_MSG_WARN("directfb $directfb_lib")
slouken@2998
  2111
            if test x$have_loadso != xyes && \
slouken@2998
  2112
               test x$enable_directfb_shared = xyes; then
slouken@2998
  2113
                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic directfb loading])
slouken@2998
  2114
            fi
slouken@2998
  2115
            if test x$have_loadso = xyes && \
slouken@2998
  2116
               test x$enable_directfb_shared = xyes && test x$directfb_lib != x; then
slouken@3392
  2117
                directfb_shared=yes
slouken@3392
  2118
                echo "-- $directfb_lib_spec -> $directfb_lib"
icculus@5548
  2119
                AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC, "$directfb_lib", [ ])
urkle@8124
  2120
                SUMMARY_video="${SUMMARY_video} directfb(dynamic)"
slouken@2998
  2121
            else
slouken@3392
  2122
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $DIRECTFB_LIBS"
urkle@8124
  2123
                SUMMARY_video="${SUMMARY_video} directfb"
slouken@2998
  2124
            fi
slouken@3392
  2125
            AC_MSG_RESULT($directfb_shared)
brandon@8703
  2126
            SDL_CFLAGS="$SDL_CFLAGS $DIRECTFB_CFLAGS"
slouken@1361
  2127
            have_video=yes
slouken@167
  2128
        fi
slouken@167
  2129
    fi
slouken@167
  2130
}
slouken@167
  2131
slouken@11175
  2132
dnl Find KMSDRM
slouken@11175
  2133
CheckKMSDRM()
slouken@11175
  2134
{
slouken@11175
  2135
    AC_ARG_ENABLE(video-kmsdrm,
slouken@11175
  2136
AC_HELP_STRING([--enable-video-kmsdrm], [use KMSDRM video driver [[default=no]]]),
slouken@11175
  2137
                  , enable_video_kmsdrm=no)
slouken@11175
  2138
slouken@11175
  2139
    if test x$enable_video = xyes -a x$enable_video_kmsdrm = xyes; then
slouken@11175
  2140
        video_kmsdrm=no
slouken@11175
  2141
        libdrm_avail=no
slouken@11175
  2142
        libgbm_avail=no
slouken@11175
  2143
slouken@11175
  2144
        LIBDRM_REQUIRED_VERSION=2.4.46
slouken@11175
  2145
        LIBGBM_REQUIRED_VERSION=9.0.0
slouken@11175
  2146
slouken@11175
  2147
        AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
slouken@11175
  2148
        if test x$PKG_CONFIG != xno; then
slouken@11175
  2149
            if $PKG_CONFIG --atleast-pkgconfig-version 0.7; then
slouken@11175
  2150
                if $PKG_CONFIG --atleast-version $LIBDRM_REQUIRED_VERSION libdrm; then
slouken@11175
  2151
                    LIBDRM_CFLAGS=`$PKG_CONFIG --cflags libdrm`
slouken@11175
  2152
                    LIBDRM_LIBS=`$PKG_CONFIG --libs libdrm`
slouken@11175
  2153
                    LIBDRM_PREFIX=`$PKG_CONFIG --variable=prefix libdrm`
slouken@11175
  2154
                    libdrm_avail=yes
slouken@11175
  2155
                fi
slouken@11175
  2156
                if $PKG_CONFIG --atleast-version $LIBGBM_REQUIRED_VERSION gbm; then
slouken@11175
  2157
                    LIBGBM_CFLAGS=`$PKG_CONFIG --cflags gbm`
slouken@11175
  2158
                    LIBGBM_LIBS=`$PKG_CONFIG --libs gbm`
slouken@11175
  2159
                    LIBGBM_PREFIX=`$PKG_CONFIG --variable=prefix gbm`
slouken@11175
  2160
                    libgbm_avail=yes
slouken@11175
  2161
                fi
slouken@11175
  2162
                if test x$libdrm_avail = xyes -a x$libgbm_avail = xyes; then
slouken@11175
  2163
                    video_kmsdrm=yes
slouken@11175
  2164
                fi
slouken@11175
  2165
 
slouken@11175
  2166
                AC_MSG_CHECKING(for libdrm $LIBDRM_REQUIRED_VERSION library for kmsdrm support)
slouken@11175
  2167
                AC_MSG_RESULT($libdrm_avail)
slouken@11175
  2168
                AC_MSG_CHECKING(for libgbm $LIBGBM_REQUIRED_VERSION library for kmsdrm support)
slouken@11175
  2169
                AC_MSG_RESULT($libgbm_avail)
slouken@11175
  2170
slouken@11175
  2171
                if test x$video_kmsdrm = xyes; then
slouken@11175
  2172
                    AC_ARG_ENABLE(kmsdrm-shared,
slouken@11175
  2173
AC_HELP_STRING([--enable-kmsdrm-shared], [dynamically load kmsdrm support [[default=yes]]]),
slouken@11175
  2174
                              , enable_kmsdrm_shared=yes)
slouken@11175
  2175
slouken@11175
  2176
                    AC_DEFINE(SDL_VIDEO_DRIVER_KMSDRM, 1, [ ])
slouken@11175
  2177
                    SOURCES="$SOURCES $srcdir/src/video/kmsdrm/*.c"
slouken@11175
  2178
                    EXTRA_CFLAGS="$EXTRA_CFLAGS $LIBDRM_CFLAGS $LIBGBM_CFLAGS"
slouken@11175
  2179
slouken@11175
  2180
                    AC_MSG_CHECKING(for kmsdrm dynamic loading support)
slouken@11175
  2181
                    kmsdrm_shared=no
slouken@11175
  2182
                    drm_lib=[`find_lib "libdrm.so.*" "$DRM_LIBS"`]
slouken@11175
  2183
                    gbm_lib=[`find_lib "libgbm.so.*" "$DRM_LIBS"`]
slouken@11175
  2184
                    if test x$have_loadso != xyes && \
slouken@11175
  2185
                       test x$enable_kmsdrm_shared = xyes; then
slouken@11175
  2186
                        AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic kmsdrm loading])
slouken@11175
  2187
                    fi
slouken@11175
  2188
                    if test x$have_loadso = xyes && \
slouken@11175
  2189
                       test x$enable_kmsdrm_shared = xyes && test x$drm_lib != x && test x$gbm_lib != x; then
slouken@11175
  2190
                        kmsdrm_shared=yes
slouken@11175
  2191
                        AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC, "$drm_lib", [ ])
slouken@11175
  2192
                        AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM, "$gbm_lib", [ ])
slouken@11175
  2193
                        AC_DEFINE_UNQUOTED(HAVE_KMSDRM_SHARED, "TRUE", [ ])
slouken@11175
  2194
                        SUMMARY_video="${SUMMARY_video} kmsdrm(dynamic)"
slouken@11175
  2195
                    else
slouken@11175
  2196
                        EXTRA_LDFLAGS="$EXTRA_LDFLAGS $LIBDRM_LIBS $LIBGBM_LIBS"
slouken@11175
  2197
                        SUMMARY_video="${SUMMARY_video} kmsdrm"
slouken@11175
  2198
                    fi
slouken@11175
  2199
                    AC_MSG_RESULT($kmsdrm_shared)
slouken@11175
  2200
                    have_video=yes
slouken@11175
  2201
                fi
slouken@11175
  2202
            fi
slouken@11175
  2203
        fi
slouken@11175
  2204
    fi
slouken@11175
  2205
}
slouken@11175
  2206
slouken@1
  2207
dnl rcg04172001 Set up the Null video driver.
slouken@1
  2208
CheckDummyVideo()
slouken@1
  2209
{
slouken@1
  2210
    AC_ARG_ENABLE(video-dummy,
slouken@1637
  2211
AC_HELP_STRING([--enable-video-dummy], [use dummy video driver [[default=yes]]]),
slouken@86
  2212
                  , enable_video_dummy=yes)
slouken@1
  2213
    if test x$enable_video_dummy = xyes; then
icculus@5548
  2214
        AC_DEFINE(SDL_VIDEO_DRIVER_DUMMY, 1, [ ])
slouken@1361
  2215
        SOURCES="$SOURCES $srcdir/src/video/dummy/*.c"
slouken@1361
  2216
        have_video=yes
urkle@8124
  2217
        SUMMARY_video="${SUMMARY_video} dummy"
slouken@1
  2218
    fi
slouken@1
  2219
}
slouken@1
  2220
icculus@11119
  2221
dnl Set up the QNX video driver if enabled
icculus@11119
  2222
CheckQNXVideo()
icculus@11119
  2223
{
icculus@11119
  2224
    if test x$enable_video = xyes; then
icculus@11119
  2225
        AC_DEFINE(SDL_VIDEO_DRIVER_QNX, 1, [ ])
icculus@11119
  2226
        SOURCES="$SOURCES $srcdir/src/video/qnx/*.c"
icculus@11119
  2227
        have_video=yes
icculus@11119
  2228
        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lscreen -lEGL -lGLESv2"
icculus@11119
  2229
        SUMMARY_video="${SUMMARY_video} qnx"
icculus@11119
  2230
    fi
icculus@11119
  2231
}
icculus@11119
  2232
icculus@11119
  2233
dnl Set up the QNX audio driver if enabled
icculus@11119
  2234
CheckQNXAudio()
icculus@11119
  2235
{
icculus@11119
  2236
    if test x$enable_audio = xyes; then
icculus@11119
  2237
        AC_DEFINE(SDL_AUDIO_DRIVER_QSA, 1, [ ])
icculus@11119
  2238
        SOURCES="$SOURCES $srcdir/src/audio/qsa/*.c"
philipp@11121
  2239
        have_audio=yes
icculus@11119
  2240
        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lasound"
icculus@11119
  2241
        SUMMARY_audio="${SUMMARY_audio} qsa"
icculus@11119
  2242
    fi
icculus@11119
  2243
}
icculus@11119
  2244
slouken@0
  2245
dnl Check to see if OpenGL support is desired
slouken@0
  2246
AC_ARG_ENABLE(video-opengl,
slouken@1952
  2247
AC_HELP_STRING([--enable-video-opengl], [include OpenGL support [[default=yes]]]),
slouken@0
  2248
              , enable_video_opengl=yes)
slouken@0
  2249
slouken@0
  2250
dnl Find OpenGL
icculus@1191
  2251
CheckOpenGLX11()
slouken@0
  2252
{
slouken@0
  2253
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
slouken@0
  2254
        AC_MSG_CHECKING(for OpenGL (GLX) support)
slouken@0
  2255
        video_opengl=no
slouken@0
  2256
        AC_TRY_COMPILE([
slouken@0
  2257
         #include <GL/gl.h>
slouken@0
  2258
         #include <GL/glx.h>
slouken@0
  2259
        ],[
slouken@0
  2260
        ],[
slouken@0
  2261
        video_opengl=yes
slouken@0
  2262
        ])
slouken@0
  2263
        AC_MSG_RESULT($video_opengl)
slouken@0
  2264
        if test x$video_opengl = xyes; then
icculus@5548
  2265
            AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
icculus@5548
  2266
            AC_DEFINE(SDL_VIDEO_OPENGL_GLX, 1, [ ])
icculus@5548
  2267
            AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
urkle@8124
  2268
            SUMMARY_video="${SUMMARY_video} opengl"
slouken@0
  2269
        fi
slouken@0
  2270
    fi
slouken@0
  2271
}
slouken@0
  2272
slouken@6188
  2273
dnl Check to see if OpenGL ES support is desired
slouken@6188
  2274
AC_ARG_ENABLE(video-opengles,
slouken@6188
  2275
AC_HELP_STRING([--enable-video-opengles], [include OpenGL ES support [[default=yes]]]),
slouken@6188
  2276
              , enable_video_opengles=yes)
slouken@9155
  2277
AC_ARG_ENABLE(video-opengles1,
slouken@9155
  2278
AC_HELP_STRING([--enable-video-opengles1], [include OpenGL ES 1.1 support [[default=yes]]]),
slouken@9155
  2279
              , enable_video_opengles1=yes)
slouken@9155
  2280
AC_ARG_ENABLE(video-opengles2,
slouken@9155
  2281
AC_HELP_STRING([--enable-video-opengles2], [include OpenGL ES 2.0 support [[default=yes]]]),
slouken@9155
  2282
              , enable_video_opengles2=yes)
slouken@6188
  2283
slouken@6188
  2284
dnl Find OpenGL ES
slouken@6188
  2285
CheckOpenGLESX11()
slouken@6188
  2286
{
slouken@6188
  2287
    if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then
gabomdq@7659
  2288
        AC_MSG_CHECKING(for EGL support)
gabomdq@7659
  2289
        video_opengl_egl=no
slouken@6188
  2290
        AC_TRY_COMPILE([
slouken@9164
  2291
          #define LINUX
slouken@9164
  2292
          #define EGL_API_FB
slouken@9164
  2293
          #include <EGL/egl.h>
slouken@9164
  2294
          #include <EGL/eglext.h>
slouken@6188
  2295
        ],[
slouken@6188
  2296
        ],[
gabomdq@7659
  2297
        video_opengl_egl=yes
slouken@6188
  2298
        ])
gabomdq@7659
  2299
        AC_MSG_RESULT($video_opengl_egl)
gabomdq@7659
  2300
        if test x$video_opengl_egl = xyes; then
gabomdq@7659
  2301
            AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ])
gabomdq@7659
  2302
        fi
gabomdq@7659
  2303
            
slouken@9155
  2304
        if test x$enable_video_opengles1 = xyes; then
slouken@9155
  2305
            AC_MSG_CHECKING(for OpenGL ES v1 headers)
slouken@9155
  2306
            video_opengles_v1=no
slouken@9155
  2307
            AC_TRY_COMPILE([
slouken@9155
  2308
             #include <GLES/gl.h>
slouken@9155
  2309
             #include <GLES/glext.h>
slouken@9155
  2310
            ],[
slouken@9155
  2311
            ],[
slouken@9155
  2312
            video_opengles_v1=yes
slouken@9155
  2313
            ])
slouken@9155
  2314
            AC_MSG_RESULT($video_opengles_v1)
slouken@9155
  2315
            if test x$video_opengles_v1 = xyes; then
slouken@9155
  2316
                AC_DEFINE(SDL_VIDEO_OPENGL_ES, 1, [ ])
slouken@9155
  2317
                AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES, 1, [ ])
slouken@9155
  2318
                SUMMARY_video="${SUMMARY_video} opengl_es1"
slouken@9155
  2319
            fi
gabomdq@7659
  2320
        fi
gabomdq@7659
  2321
        
slouken@9155
  2322
        if test x$enable_video_opengles2 = xyes; then
slouken@9155
  2323
            AC_MSG_CHECKING(for OpenGL ES v2 headers)
slouken@9155
  2324
            video_opengles_v2=no
slouken@9155
  2325
            AC_TRY_COMPILE([
slouken@9155
  2326
             #include <GLES2/gl2.h>
slouken@9155
  2327
             #include <GLES2/gl2ext.h>
slouken@9155
  2328
            ],[
slouken@9155
  2329
            ],[
slouken@9155
  2330
            video_opengles_v2=yes
slouken@9155
  2331
            ])
slouken@9155
  2332
            AC_MSG_RESULT($video_opengles_v2)
slouken@9155
  2333
            if test x$video_opengles_v2 = xyes; then
slouken@9155
  2334
                AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ])
slouken@9155
  2335
                AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
slouken@9155
  2336
                SUMMARY_video="${SUMMARY_video} opengl_es2"
slouken@9155
  2337
            fi
slouken@6188
  2338
        fi
slouken@6188
  2339
    fi
slouken@6188
  2340
}
slouken@6188
  2341
slouken@5062
  2342
dnl Check for Windows OpenGL
slouken@5062
  2343
CheckWINDOWSGL()
slouken@1361
  2344
{
slouken@1361
  2345
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
icculus@5548
  2346
        AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
icculus@5548
  2347
        AC_DEFINE(SDL_VIDEO_OPENGL_WGL, 1, [ ])
icculus@5548
  2348
        AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
urkle@8124
  2349
        SUMMARY_video="${SUMMARY_video} opengl"
slouken@1361
  2350
    fi
slouken@1361
  2351
}
slouken@1361
  2352
gabomdq@8022
  2353
dnl Check for Windows OpenGL
gabomdq@8022
  2354
CheckWINDOWSGLES()
gabomdq@8022
  2355
{
gabomdq@8022
  2356
    if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then
gabomdq@8022
  2357
gabomdq@8022
  2358
        AC_MSG_CHECKING(for EGL support)
gabomdq@8022
  2359
        video_opengl_egl=no
gabomdq@8022
  2360
        AC_TRY_COMPILE([
gabomdq@8022
  2361
         #include <EGL/egl.h>
gabomdq@8022
  2362
        ],[
gabomdq@8022
  2363
        ],[
gabomdq@8022
  2364
        video_opengl_egl=yes
gabomdq@8022
  2365
        ])
gabomdq@8022
  2366
        AC_MSG_RESULT($video_opengl_egl)
gabomdq@8022
  2367
        if test x$video_opengl_egl = xyes; then
gabomdq@8022
  2368
            AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
gabomdq@8022
  2369
            AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ])
urkle@8124
  2370
            SUMMARY_video="${SUMMARY_video} opengl_es1"
gabomdq@8022
  2371
        fi
gabomdq@8022
  2372
       
gabomdq@8022
  2373
        AC_MSG_CHECKING(for OpenGL ES v2 headers)
gabomdq@8022
  2374
        video_opengles_v2=no
gabomdq@8022
  2375
        AC_TRY_COMPILE([
gabomdq@8022
  2376
         #include <GLES2/gl2.h>
gabomdq@8022
  2377
         #include <GLES2/gl2ext.h>
gabomdq@8022
  2378
        ],[
gabomdq@8022
  2379
        ],[
gabomdq@8022
  2380
        video_opengles_v2=yes
gabomdq@8022
  2381
        ])
gabomdq@8022
  2382
        AC_MSG_RESULT($video_opengles_v2)
gabomdq@8022
  2383
        if test x$video_opengles_v2 = xyes; then
gabomdq@8022
  2384
            AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
gabomdq@8022
  2385
            AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ])
gabomdq@8022
  2386
            AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
urkle@8124
  2387
            SUMMARY_video="${SUMMARY_video} opengl_es2"
gabomdq@8022
  2388
        fi
gabomdq@8022
  2389
    fi
gabomdq@8022
  2390
}
gabomdq@8022
  2391
icculus@7981
  2392
dnl Check for Haiku OpenGL
icculus@7981
  2393
CheckHaikuGL()
slouken@0
  2394
{
slouken@0
  2395
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
icculus@5548
  2396
        AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
icculus@7981
  2397
        AC_DEFINE(SDL_VIDEO_OPENGL_HAIKU, 1, [ ])
icculus@5548
  2398
        AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
slouken@1521
  2399
        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL"
urkle@8124
  2400
        SUMMARY_video="${SUMMARY_video} opengl"
slouken@0
  2401
    fi
slouken@0
  2402
}
slouken@0
  2403
slouken@0
  2404
dnl Check for MacOS OpenGL
slouken@0
  2405
CheckMacGL()
slouken@0
  2406
{
slouken@0
  2407
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
icculus@5548
  2408
        AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
icculus@5548
  2409
        AC_DEFINE(SDL_VIDEO_OPENGL_CGL, 1, [ ])
icculus@5548
  2410
        AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
urkle@8124
  2411
        SUMMARY_video="${SUMMARY_video} opengl"
slouken@0
  2412
    fi
slouken@0
  2413
}
slouken@0
  2414
icculus@9278
  2415
CheckEmscriptenGLES()
icculus@9278
  2416
{
icculus@9278
  2417
    if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then
icculus@9278
  2418
        AC_MSG_CHECKING(for EGL support)
icculus@9278
  2419
        video_opengl_egl=no
icculus@9278
  2420
        AC_TRY_COMPILE([
icculus@9278
  2421
         #include <EGL/egl.h>
icculus@9278
  2422
        ],[
icculus@9278
  2423
        ],[
icculus@9278
  2424
        video_opengl_egl=yes
icculus@9278
  2425
        ])
icculus@9278
  2426
        AC_MSG_RESULT($video_opengl_egl)
icculus@9278
  2427
        if test x$video_opengl_egl = xyes; then
icculus@9278
  2428
            AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ])
icculus@9278
  2429
        fi
icculus@9278
  2430
icculus@9278
  2431
        AC_MSG_CHECKING(for OpenGL ES v2 headers)
icculus@9278
  2432
        video_opengles_v2=no
icculus@9278
  2433
        AC_TRY_COMPILE([
icculus@9278
  2434
         #include <GLES2/gl2.h>
icculus@9278
  2435
         #include <GLES2/gl2ext.h>
icculus@9278
  2436
        ],[
icculus@9278
  2437
        ],[
icculus@9278
  2438
        video_opengles_v2=yes
icculus@9278
  2439
        ])
icculus@9278
  2440
        AC_MSG_RESULT($video_opengles_v2)
icculus@9278
  2441
        if test x$video_opengles_v2 = xyes; then
icculus@9278
  2442
            AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ])
icculus@9278
  2443
            AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
icculus@9278
  2444
            SUMMARY_video="${SUMMARY_video} opengl_es2"
icculus@9278
  2445
        fi
icculus@9278
  2446
    fi
icculus@9278
  2447
}
icculus@9278
  2448
slouken@11408
  2449
dnl Check to see if Vulkan support is desired
icculus@11365
  2450
AC_ARG_ENABLE(video-vulkan,
slouken@11381
  2451
AC_HELP_STRING([--enable-video-vulkan], [include Vulkan support [[default=yes]]]),
icculus@11365
  2452
              , enable_video_vulkan=yes)
icculus@11365
  2453
icculus@11365
  2454
dnl Find Vulkan Header
icculus@11365
  2455
CheckVulkan()
icculus@11365
  2456
{
icculus@11365
  2457
    if test x$enable_video = xyes -a x$enable_video_vulkan = xyes; then
icculus@11365
  2458
        case "$host" in
icculus@11365
  2459
            *-*-androideabi*)
icculus@11365
  2460
                AC_TRY_COMPILE([
slouken@11408
  2461
                  #if defined(__ARM_ARCH) && __ARM_ARCH < 7
icculus@11365
  2462
                  #error Vulkan doesn't work on this configuration
icculus@11365
  2463
                  #endif
slouken@11408
  2464
                ],[
slouken@11408
  2465
                ],[
icculus@11365
  2466
                ],[
icculus@11365
  2467
                    enable_video_vulkan=no
slouken@11408
  2468
                ])
slouken@11408
  2469
                ;;
slouken@11408
  2470
            *-*-darwin*)
slouken@11408
  2471
                save_CFLAGS="$CFLAGS"
slouken@11408
  2472
                dnl Work around that we don't have Objective-C support in autoconf
slouken@11408
  2473
                CFLAGS="$CFLAGS -x objective-c"
slouken@11408
  2474
                AC_TRY_COMPILE([
slouken@11408
  2475
                  #include <Cocoa/Cocoa.h>
slouken@11408
  2476
                  #include <Metal/Metal.h>
slouken@11408
  2477
                  #include <QuartzCore/CAMetalLayer.h>
slouken@11408
  2478
slouken@11408
  2479
                  #if !TARGET_CPU_X86_64
slouken@11408
  2480
                  #error Vulkan doesn't work on this configuration
slouken@11408
  2481
                  #endif
icculus@11365
  2482
                ],[
slouken@11408
  2483
                ],[
slouken@11408
  2484
                ],[
slouken@11408
  2485
                    enable_video_vulkan=no
icculus@11365
  2486
                ])
slouken@11408
  2487
                CFLAGS="$save_CFLAGS"
icculus@11365
  2488
                ;;
icculus@11365
  2489
            *)
icculus@11365
  2490
                ;;
icculus@11365
  2491
        esac
icculus@11365
  2492
        if test x$enable_video_vulkan = xno; then
icculus@11365
  2493
            # For reasons I am totally unable to see, I get an undefined macro error if
icculus@11365
  2494
            # I put this in the AC_TRY_COMPILE.
slouken@11408
  2495
            AC_MSG_WARN([Vulkan does not work on this configuration.])
icculus@11365
  2496
        fi
icculus@11365
  2497
    fi
icculus@11367
  2498
    if test x$enable_video_vulkan = xyes; then
slouken@11381
  2499
        AC_DEFINE(SDL_VIDEO_VULKAN, 1, [ ])
icculus@11365
  2500
        SUMMARY_video="${SUMMARY_video} vulkan"
icculus@11365
  2501
    fi
icculus@11365
  2502
}
icculus@11365
  2503
slouken@0
  2504
dnl See if we can use the new unified event interface in Linux 2.4
slouken@0
  2505
CheckInputEvents()
slouken@0
  2506
{
slouken@0
  2507
    dnl Check for Linux 2.4 unified input event interface support
slouken@0
  2508
        AC_MSG_CHECKING(for Linux 2.4 unified input interface)
slouken@0
  2509
        use_input_events=no
slouken@0
  2510
        AC_TRY_COMPILE([
slouken@0
  2511
          #include <linux/input.h>
slouken@0
  2512
        ],[
slouken@0
  2513
          #ifndef EVIOCGNAME
slouken@0
  2514
          #error EVIOCGNAME() ioctl not available
slouken@0
  2515
          #endif
slouken@0
  2516
        ],[
slouken@0
  2517
        use_input_events=yes
slouken@0
  2518
        ])
slouken@0
  2519
        AC_MSG_RESULT($use_input_events)
slouken@0
  2520
        if test x$use_input_events = xyes; then
icculus@5548
  2521
            AC_DEFINE(SDL_INPUT_LINUXEV, 1, [ ])
urkle@8124
  2522
            SUMMARY_input="${SUMMARY_input} linuxev"
slouken@0
  2523
        fi
slouken@0
  2524
}
slouken@0
  2525
gabomdq@7778
  2526
dnl See if we can use the kernel kd.h header
gabomdq@7778
  2527
CheckInputKD()
gabomdq@7778
  2528
{
gabomdq@7778
  2529
gabomdq@7778
  2530
    AC_MSG_CHECKING(for Linux kd.h)
gabomdq@7778
  2531
    use_input_kd=no
gabomdq@7778
  2532
    AC_TRY_COMPILE([
gabomdq@7778
  2533
      #include <linux/kd.h>
gabomdq@7778
  2534
      #include <linux/keyboard.h>
gabomdq@7778
  2535
    ],[
gabomdq@7778
  2536
        struct kbentry kbe;
gabomdq@7778
  2537
        kbe.kb_table = KG_CTRL;
gabomdq@7778
  2538
        ioctl(0, KDGKBENT, &kbe);
gabomdq@7778
  2539
    ],[
gabomdq@7778
  2540
    use_input_kd=yes
gabomdq@7778
  2541
    ])
gabomdq@7778
  2542
    AC_MSG_RESULT($use_input_kd)
gabomdq@7778
  2543
    if test x$use_input_kd = xyes; then
gabomdq@7778
  2544
        AC_DEFINE(SDL_INPUT_LINUXKD, 1, [ ])
urkle@8124
  2545
        SUMMARY_input="${SUMMARY_input} linuxkd"
gabomdq@7778
  2546
    fi
gabomdq@7778
  2547
}
gabomdq@7778
  2548
icculus@6734
  2549
dnl See if the platform offers libudev for device enumeration and hotplugging.
icculus@6734
  2550
CheckLibUDev()
icculus@6734
  2551
{
icculus@6734
  2552
    AC_ARG_ENABLE(libudev,
icculus@6734
  2553
AC_HELP_STRING([--enable-libudev], [enable libudev support [[default=yes]]]),
icculus@6734
  2554
                        , enable_libudev=yes)
icculus@6734
  2555
    if test x$enable_libudev = xyes; then
icculus@6734
  2556
        AC_CHECK_HEADER(libudev.h,
icculus@6734
  2557
                        have_libudev_h_hdr=yes,
icculus@6734
  2558
                        have_libudev_h_hdr=no)
icculus@6734
  2559
        if test x$have_libudev_h_hdr = xyes; then
icculus@6734
  2560
            AC_DEFINE(HAVE_LIBUDEV_H, 1, [ ])
slouken@10660
  2561
slouken@10660
  2562
            udev_lib=[`find_lib "libudev.so.*" "" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@10660
  2563
            if test x$udev_lib != x; then
slouken@10660
  2564
                echo "-- dynamic udev -> $udev_lib"
slouken@10660
  2565
                AC_DEFINE_UNQUOTED(SDL_UDEV_DYNAMIC, "$udev_lib", [ ])
slouken@10660
  2566
            fi
icculus@6734
  2567
        fi
icculus@6734
  2568
    fi
icculus@6734
  2569
}
icculus@6734
  2570
icculus@6774
  2571
dnl See if the platform offers libdbus for various IPC techniques.
icculus@6774
  2572
CheckDBus()
icculus@6774
  2573
{
icculus@6774
  2574
    AC_ARG_ENABLE(dbus,
icculus@6774
  2575
AC_HELP_STRING([--enable-dbus], [enable D-Bus support [[default=yes]]]),
icculus@6774
  2576
                        , enable_dbus=yes)
icculus@6774
  2577
    if test x$enable_dbus = xyes; then
icculus@6774
  2578
        AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
icculus@6774
  2579
        if test x$PKG_CONFIG != xno; then
icculus@6774
  2580
            DBUS_CFLAGS=`$PKG_CONFIG --cflags dbus-1`
icculus@6774
  2581
            save_CFLAGS="$CFLAGS"
icculus@6774
  2582
            CFLAGS="$save_CFLAGS $DBUS_CFLAGS"
icculus@6774
  2583
            AC_CHECK_HEADER(dbus/dbus.h,
icculus@6774
  2584
                            have_dbus_dbus_h_hdr=yes,
icculus@6774
  2585
                            have_dbus_dbus_h_hdr=no)
icculus@6774
  2586
            CFLAGS="$save_CFLAGS"
icculus@6774
  2587
            if test x$have_dbus_dbus_h_hdr = xyes; then
icculus@6774
  2588
                AC_DEFINE(HAVE_DBUS_DBUS_H, 1, [ ])
icculus@6774
  2589
                EXTRA_CFLAGS="$EXTRA_CFLAGS $DBUS_CFLAGS"
alex@8889
  2590
                SOURCES="$SOURCES $srcdir/src/core/linux/SDL_dbus.c"
alex@8889
  2591
            fi
alex@8889
  2592
        fi
alex@8889
  2593
    fi
alex@8889
  2594
}
alex@8889
  2595
slouken@10496
  2596
dnl See if the platform wanna IME support.
slouken@10496
  2597
CheckIME()
slouken@10496
  2598
{
slouken@10496
  2599
    AC_ARG_ENABLE(ime,
slouken@10496
  2600
AC_HELP_STRING([--enable-ime], [enable IME support [[default=yes]]]),
slouken@10496
  2601
                  , enable_ime=yes)
slouken@10496
  2602
    if test x$enable_ime = xyes; then
slouken@10496
  2603
        AC_DEFINE(SDL_USE_IME, 1, [ ])
slouken@10496
  2604
            SOURCES="$SOURCES $srcdir/src/core/linux/SDL_ime.c"
slouken@10496
  2605
    fi
slouken@10496
  2606
}
slouken@10496
  2607
alex@8889
  2608
dnl See if the platform has libibus IME support.
alex@8889
  2609
CheckIBus()
alex@8889
  2610
{
alex@8889
  2611
    AC_ARG_ENABLE(ibus,
alex@8889
  2612
AC_HELP_STRING([--enable-ibus], [enable IBus support [[default=yes]]]),
alex@8889
  2613
                  , enable_ibus=yes)
alex@8889
  2614
    if test x$enable_ibus = xyes; then
alex@8889
  2615
        AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
alex@8889
  2616
        if test x$PKG_CONFIG != xno; then
alex@8889
  2617
            IBUS_CFLAGS=`$PKG_CONFIG --cflags ibus-1.0`
alex@8889
  2618
            save_CFLAGS="$CFLAGS"
alex@8889
  2619
            CFLAGS="$save_CFLAGS $IBUS_CFLAGS"
alex@8889
  2620
            AC_CHECK_HEADER(ibus-1.0/ibus.h,
alex@8889
  2621
                            have_ibus_ibus_h_hdr=yes,
alex@8889
  2622
                            have_ibus_ibus_h_hdr=no)
alex@8889
  2623
            AC_CHECK_HEADER(sys/inotify.h,
alex@8889
  2624
                            have_inotify_inotify_h_hdr=yes,
alex@8889
  2625
                            have_inotify_inotify_h_hdr=no)
alex@8889
  2626
            CFLAGS="$save_CFLAGS"
alex@8889
  2627
            if test x$have_ibus_ibus_h_hdr = xyes; then
slouken@10496
  2628
                if test x$enable_ime != xyes; then
slouken@10496
  2629
                    AC_MSG_WARN([IME support is required for IBus.])
slouken@10496
  2630
                    have_ibus_ibus_h_hdr=no
slouken@10496
  2631
                elif test x$enable_dbus != xyes; then
alex@8889
  2632
                    AC_MSG_WARN([DBus support is required for IBus.])
alex@8889
  2633
                    have_ibus_ibus_h_hdr=no
alex@8889
  2634
                elif test x$have_inotify_inotify_h_hdr != xyes; then
alex@8889
  2635
                    AC_MSG_WARN([INotify support is required for IBus.])
alex@8889
  2636
                    have_ibus_ibus_h_hdr=no
alex@8889
  2637
                else
alex@8889
  2638
                    AC_DEFINE(HAVE_IBUS_IBUS_H, 1, [ ])
alex@8889
  2639
                    EXTRA_CFLAGS="$EXTRA_CFLAGS $IBUS_CFLAGS"
alex@8889
  2640
                    SOURCES="$SOURCES $srcdir/src/core/linux/SDL_ibus.c"
alex@8889
  2641
               fi
icculus@6774
  2642
            fi
icculus@6774
  2643
        fi
icculus@6774
  2644
    fi
icculus@6774
  2645
}
icculus@6774
  2646
slouken@10496
  2647
dnl See if the platform has fcitx IME support.
slouken@10496
  2648
CheckFcitx()
slouken@10496
  2649
{
slouken@10496
  2650
    AC_ARG_ENABLE(fcitx,
slouken@10496
  2651
AC_HELP_STRING([--enable-fcitx], [enable fcitx support [[default=yes]]]),
slouken@10496
  2652
                  , enable_fcitx=yes)
slouken@10496
  2653
    if test x$enable_fcitx = xyes; then
slouken@10496
  2654
        AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
slouken@10496
  2655
        if test x$PKG_CONFIG != xno; then
slouken@10496
  2656
            FCITX_CFLAGS=`$PKG_CONFIG --cflags fcitx`
slouken@10496
  2657
            CFLAGS="$CFLAGS $FCITX_CFLAGS"
slouken@10496
  2658
            AC_CHECK_HEADER(fcitx/frontend.h,
slouken@10496
  2659
                            have_fcitx_frontend_h_hdr=yes,
slouken@10496
  2660
                            have_fcitx_frontend_h_hdr=no)
slouken@10496
  2661
            CFLAGS="$save_CFLAGS"
slouken@10496
  2662
            if test x$have_fcitx_frontend_h_hdr = xyes; then
slouken@10496
  2663
                if test x$enable_ime != xyes; then
slouken@10496
  2664
                    AC_MSG_WARN([IME support is required for fcitx.])
slouken@10496
  2665
                    have_fcitx_frontend_h_hdr=no
slouken@10496
  2666
                elif test x$enable_dbus != xyes; then
slouken@10496
  2667
                    AC_MSG_WARN([DBus support is required for fcitx.])
slouken@10496
  2668
                    have_fcitx_frontend_h_hdr=no
slouken@10496
  2669
                else
slouken@10496
  2670
                    AC_DEFINE(HAVE_FCITX_FRONTEND_H, 1, [ ])
slouken@10496
  2671
                    EXTRA_CFLAGS="$EXTRA_CFLAGS $FCITX_CFLAGS"
slouken@10496
  2672
                    SOURCES="$SOURCES $srcdir/src/core/linux/SDL_fcitx.c"
slouken@10496
  2673
               fi
slouken@10496
  2674
            fi
slouken@10496
  2675
        fi
slouken@10496
  2676
    fi
slouken@10496
  2677