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