configure.in
author Sam Lantinga <slouken@libsdl.org>
Wed, 02 Aug 2017 10:22:48 -0700
changeset 11175 cbc6a8a5b701
parent 11138 c936a84f05ba
child 11205 ab9d4689a439
permissions -rw-r--r--
Fixed bug 3690 - SDL2 KMS/DRM render context support

Manuel

The attached patch adds support for KMS/DRM context graphics.

It builds with no problem on X86_64 GNU/Linux systems, provided the needed libraries are present, and on ARM GNU/Linux systems that have KMS/DRM support and a GLES2 implementation.
Tested on Raspberry Pi: KMS/DRM is what the Raspberry Pi will use as default in the near future, once the propietary DispmanX API by Broadcom is overtaken by open graphics stack, it's possible to boot current Raspbian system in KMS mode by adding "dtoverlay=vc4-kms-v3d" to config.txt on Raspbian's boot partition.
X86 systems use KMS right away in every current GNU/Linux system.

Simple build instructions:

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