configure.in
author Sam Lantinga <slouken@libsdl.org>
Sun, 04 Aug 2013 09:37:27 -0700
changeset 7573 b76d8bfe9a2f
parent 7554 4b653ef6050d
child 7659 ac4ce59c40e7
permissions -rw-r--r--
Fixed bug 1972 - Changeset 7379 (b27c778a2bdb) breaks make process with msys+mingw (make 3.82.90)

Andreas

With the patch applied, make is not able to find the rule for Makefile.in anymore. Removing the patch resolves the issue.

The path is in fact correct (in my case: /c/external/SDL64/SDL). But it seems the windows build of GNU Make doesn't work well with pathnames in rules. Both the dependencies in "$(srcdir)/configure: $(srcdir)/configure.in" and "Makefile: $(srcdir)/Makefile.in" will cause rules not to be found when srcdir is defined.

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