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