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