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