configure.in
author Ryan C. Gordon <icculus@icculus.org>
Tue, 11 Dec 2012 12:07:06 -0500
changeset 6734 7fdaee2be782
parent 6729 fdaeea9e7567
child 6774 ad8522052ce6
permissions -rw-r--r--
Updated Linux joystick code to support hotplug, GUIDs, etc.

This uses libudev for hotplug, but it's optional, so we'll just try to find
some reasonable defaults without it (maybe an older Linux box or under
FreeBSD's Linux emulation?).
slouken@0
     1
dnl Process this file with autoconf to produce a configure script.
slouken@0
     2
AC_INIT(README)
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", [ ])
icculus@2271
   797
            else
icculus@2271
   798
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PULSEAUDIO_LIBS"
icculus@2271
   799
            fi
icculus@2271
   800
            have_audio=yes
icculus@2271
   801
        fi
icculus@2271
   802
    fi
icculus@2271
   803
}
icculus@2271
   804
slouken@0
   805
CheckARTSC()
slouken@0
   806
{
slouken@0
   807
    AC_ARG_ENABLE(arts,
slouken@1637
   808
AC_HELP_STRING([--enable-arts], [support the Analog Real Time Synthesizer [[default=yes]]]),
slouken@0
   809
                  , enable_arts=yes)
slouken@0
   810
    if test x$enable_audio = xyes -a x$enable_arts = xyes; then
slouken@1361
   811
        AC_PATH_PROG(ARTSCONFIG, artsc-config)
slouken@1361
   812
        if test x$ARTSCONFIG = x -o x$ARTSCONFIG = x'"$ARTSCONFIG"'; then
slouken@0
   813
            : # arts isn't installed
slouken@0
   814
        else
slouken@1361
   815
            ARTS_CFLAGS=`$ARTSCONFIG --cflags`
slouken@1361
   816
            ARTS_LIBS=`$ARTSCONFIG --libs`
slouken@0
   817
            AC_MSG_CHECKING(for aRts development environment)
slouken@0
   818
            audio_arts=no
slouken@0
   819
            save_CFLAGS="$CFLAGS"
slouken@1361
   820
            CFLAGS="$CFLAGS $ARTS_CFLAGS"
slouken@0
   821
            AC_TRY_COMPILE([
slouken@0
   822
             #include <artsc.h>
slouken@0
   823
            ],[
slouken@0
   824
             arts_stream_t stream;
slouken@0
   825
            ],[
slouken@0
   826
            audio_arts=yes
slouken@0
   827
            ])
slouken@0
   828
            CFLAGS="$save_CFLAGS"
slouken@0
   829
            AC_MSG_RESULT($audio_arts)
slouken@0
   830
            if test x$audio_arts = xyes; then
slouken@294
   831
                AC_ARG_ENABLE(arts-shared,
slouken@1637
   832
AC_HELP_STRING([--enable-arts-shared], [dynamically load aRts audio support [[default=yes]]]),
slouken@678
   833
                              , enable_arts_shared=yes)
slouken@3391
   834
                arts_lib=[`find_lib "libartsc.so.*" "$ARTS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@1467
   835
icculus@5548
   836
                AC_DEFINE(SDL_AUDIO_DRIVER_ARTS, 1, [ ])
slouken@1467
   837
                SOURCES="$SOURCES $srcdir/src/audio/arts/*.c"
slouken@1521
   838
                EXTRA_CFLAGS="$EXTRA_CFLAGS $ARTS_CFLAGS"
icculus@1173
   839
                if test x$have_loadso != xyes && \
slouken@296
   840
                   test x$enable_arts_shared = xyes; then
slouken@1467
   841
                    AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ARTS loading])
slouken@296
   842
                fi
icculus@1173
   843
                if test x$have_loadso = xyes && \
slouken@294
   844
                   test x$enable_arts_shared = xyes && test x$arts_lib != x; then
slouken@3392
   845
                    echo "-- dynamic libartsc -> $arts_lib"
icculus@5548
   846
                    AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ARTS_DYNAMIC, "$arts_lib", [ ])
slouken@1467
   847
                else
slouken@1521
   848
                    EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ARTS_LIBS"
slouken@294
   849
                fi
slouken@1361
   850
                have_audio=yes
slouken@0
   851
            fi
slouken@0
   852
        fi
slouken@0
   853
    fi
slouken@0
   854
}
slouken@0
   855
slouken@0
   856
dnl See if the NAS audio interface is supported
slouken@0
   857
CheckNAS()
slouken@0
   858
{
slouken@0
   859
    AC_ARG_ENABLE(nas,
slouken@1637
   860
AC_HELP_STRING([--enable-nas], [support the NAS audio API [[default=yes]]]),
slouken@41
   861
                  , enable_nas=yes)
slouken@0
   862
    if test x$enable_audio = xyes -a x$enable_nas = xyes; then
icculus@2049
   863
        AC_CHECK_HEADER(audio/audiolib.h, have_nas_hdr=yes)
icculus@2049
   864
        AC_CHECK_LIB(audio, AuOpenServer, have_nas_lib=yes)
icculus@2049
   865
slouken@41
   866
        AC_MSG_CHECKING(for NAS audio support)
slouken@41
   867
        have_nas=no
icculus@2049
   868
icculus@2049
   869
        if test x$have_nas_hdr = xyes -a x$have_nas_lib = xyes; then
icculus@2049
   870
            have_nas=yes
icculus@2049
   871
            NAS_LIBS="-laudio"
icculus@2049
   872
icculus@2049
   873
        elif test -r /usr/X11R6/include/audio/audiolib.h; then
slouken@41
   874
            have_nas=yes
slouken@1361
   875
            NAS_CFLAGS="-I/usr/X11R6/include/"
slouken@1520
   876
            NAS_LIBS="-L/usr/X11R6/lib -laudio -lXt"
slouken@605
   877
slouken@41
   878
        fi
icculus@2049
   879
slouken@605
   880
        AC_MSG_RESULT($have_nas)
icculus@2049
   881
slouken@1361
   882
        if test x$have_nas = xyes; then
icculus@2049
   883
            AC_ARG_ENABLE(nas-shared,
icculus@2049
   884
AC_HELP_STRING([--enable-nas-shared], [dynamically load NAS audio support [[default=yes]]]),
icculus@2049
   885
                          , enable_nas_shared=yes)
slouken@3391
   886
            nas_lib=[`find_lib "libaudio.so.*" "$NAS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
icculus@2049
   887
icculus@2049
   888
            if test x$have_loadso != xyes && \
icculus@2049
   889
               test x$enable_nas_shared = xyes; then
icculus@2049
   890
                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic NAS loading])
icculus@2049
   891
            fi
icculus@2049
   892
            if test x$have_loadso = xyes && \
slouken@2163
   893
               test x$enable_nas_shared = xyes && test x$nas_lib != x; then
slouken@3392
   894
                echo "-- dynamic libaudio -> $nas_lib"
icculus@5548
   895
                AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_NAS_DYNAMIC, "$nas_lib", [ ])
icculus@2049
   896
            else
icculus@2049
   897
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $NAS_LIBS"
icculus@2049
   898
            fi
icculus@2049
   899
icculus@5548
   900
            AC_DEFINE(SDL_AUDIO_DRIVER_NAS, 1, [ ])
slouken@1361
   901
            SOURCES="$SOURCES $srcdir/src/audio/nas/*.c"
slouken@1521
   902
            EXTRA_CFLAGS="$EXTRA_CFLAGS $NAS_CFLAGS"
slouken@1361
   903
            have_audio=yes
slouken@1361
   904
        fi
slouken@0
   905
    fi
slouken@0
   906
}
slouken@0
   907
slouken@68
   908
dnl rcg07142001 See if the user wants the disk writer audio driver...
slouken@68
   909
CheckDiskAudio()
slouken@68
   910
{
slouken@68
   911
    AC_ARG_ENABLE(diskaudio,
slouken@1637
   912
AC_HELP_STRING([--enable-diskaudio], [support the disk writer audio driver [[default=yes]]]),
slouken@86
   913
                  , enable_diskaudio=yes)
slouken@68
   914
    if test x$enable_audio = xyes -a x$enable_diskaudio = xyes; then
icculus@5548
   915
        AC_DEFINE(SDL_AUDIO_DRIVER_DISK, 1, [ ])
slouken@1361
   916
        SOURCES="$SOURCES $srcdir/src/audio/disk/*.c"
slouken@68
   917
    fi
slouken@68
   918
}
slouken@68
   919
icculus@1532
   920
dnl rcg03142006 See if the user wants the dummy audio driver...
icculus@1532
   921
CheckDummyAudio()
icculus@1532
   922
{
icculus@1532
   923
    AC_ARG_ENABLE(dummyaudio,
slouken@1637
   924
AC_HELP_STRING([--enable-dummyaudio], [support the dummy audio driver [[default=yes]]]),
icculus@1532
   925
                  , enable_dummyaudio=yes)
icculus@1532
   926
    if test x$enable_audio = xyes -a x$enable_dummyaudio = xyes; then
icculus@5548
   927
        AC_DEFINE(SDL_AUDIO_DRIVER_DUMMY, 1, [ ])
icculus@1532
   928
        SOURCES="$SOURCES $srcdir/src/audio/dummy/*.c"
icculus@1532
   929
    fi
icculus@1532
   930
}
icculus@1532
   931
icculus@1573
   932
dnl See if GCC's -fvisibility=hidden is supported (gcc4 and later, usually).
icculus@1573
   933
dnl  Details of this flag are here: http://gcc.gnu.org/wiki/Visibility
icculus@1573
   934
CheckVisibilityHidden()
icculus@1573
   935
{
icculus@1573
   936
    AC_MSG_CHECKING(for GCC -fvisibility=hidden option)
icculus@1573
   937
    have_gcc_fvisibility=no
icculus@1573
   938
icculus@1573
   939
    visibility_CFLAGS="-fvisibility=hidden"
icculus@1573
   940
    save_CFLAGS="$CFLAGS"
slouken@2292
   941
    CFLAGS="$save_CFLAGS $visibility_CFLAGS -Werror"
icculus@1573
   942
    AC_TRY_COMPILE([
slouken@1745
   943
    #if !defined(__GNUC__) || __GNUC__ < 4
slouken@1745
   944
    #error SDL only uses visibility attributes in GCC 4 or newer
slouken@1745
   945
    #endif
icculus@1573
   946
    ],[
icculus@1573
   947
    ],[
icculus@1573
   948
    have_gcc_fvisibility=yes
icculus@1573
   949
    ])
icculus@1573
   950
    AC_MSG_RESULT($have_gcc_fvisibility)
icculus@1573
   951
    CFLAGS="$save_CFLAGS"
icculus@1573
   952
icculus@1573
   953
    if test x$have_gcc_fvisibility = xyes; then
slouken@1574
   954
        EXTRA_CFLAGS="$EXTRA_CFLAGS $visibility_CFLAGS"
icculus@1573
   955
    fi
icculus@1573
   956
}
icculus@1573
   957
slouken@6116
   958
dnl See if GCC's -mpreferred-stack-boundary is supported.
slouken@6116
   959
dnl  Reference: http://bugzilla.libsdl.org/show_bug.cgi?id=1296
slouken@6116
   960
CheckStackBoundary()
slouken@6116
   961
{
slouken@6116
   962
    AC_MSG_CHECKING(for GCC -mpreferred-stack-boundary option)
slouken@6116
   963
    have_gcc_preferred_stack_boundary=no
slouken@6116
   964
slouken@6116
   965
    save_CFLAGS="$CFLAGS"
slouken@6116
   966
    CFLAGS="$save_CFLAGS -mpreferred-stack-boundary=2"
slouken@6116
   967
    AC_TRY_COMPILE([
slouken@6116
   968
    int x = 0;
slouken@6116
   969
    ],[
slouken@6116
   970
    ],[
slouken@6116
   971
    have_gcc_preferred_stack_boundary=yes
slouken@6116
   972
    ])
slouken@6116
   973
    AC_MSG_RESULT($have_gcc_preferred_stack_boundary)
slouken@6116
   974
    CFLAGS="$save_CFLAGS"
slouken@6116
   975
slouken@6116
   976
    if test x$have_gcc_preferred_stack_boundary = xyes; then
slouken@6116
   977
        EXTRA_CFLAGS="$EXTRA_CFLAGS -mpreferred-stack-boundary=2"
slouken@6116
   978
    fi
slouken@6116
   979
}
slouken@6116
   980
slouken@6116
   981
icculus@5975
   982
dnl See if GCC's -Wall is supported.
icculus@5975
   983
CheckWarnAll()
icculus@5975
   984
{
icculus@5975
   985
    AC_MSG_CHECKING(for GCC -Wall option)
icculus@5975
   986
    have_gcc_Wall=no
icculus@5975
   987
icculus@5975
   988
    save_CFLAGS="$CFLAGS"
icculus@5975
   989
    CFLAGS="$save_CFLAGS -Wall"
icculus@5975
   990
    AC_TRY_COMPILE([
icculus@5975
   991
    int x = 0;
icculus@5975
   992
    ],[
icculus@5975
   993
    ],[
icculus@5975
   994
    have_gcc_Wall=yes
icculus@5975
   995
    ])
icculus@5975
   996
    AC_MSG_RESULT($have_gcc_Wall)
icculus@5975
   997
    CFLAGS="$save_CFLAGS"
icculus@5975
   998
icculus@5975
   999
    if test x$have_gcc_Wall = xyes; then
icculus@5975
  1000
        EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
icculus@5989
  1001
icculus@5989
  1002
        dnl Haiku headers use multicharacter constants all over the place. Ignore these warnings when using -Wall.
icculus@5989
  1003
        AC_MSG_CHECKING(for necessary GCC -Wno-multichar option)
icculus@5989
  1004
        need_gcc_Wno_multichar=no
icculus@5989
  1005
        case "$host" in
icculus@5989
  1006
            *-*-beos* | *-*-haiku*)
icculus@5989
  1007
                need_gcc_Wno_multichar=yes
icculus@5989
  1008
                ;;
icculus@5989
  1009
        esac
icculus@5989
  1010
        AC_MSG_RESULT($need_gcc_Wno_multichar)
icculus@5989
  1011
        if test x$need_gcc_Wno_multichar = xyes; then
icculus@5989
  1012
            EXTRA_CFLAGS="$EXTRA_CFLAGS -Wno-multichar"
icculus@5989
  1013
        fi
icculus@5975
  1014
    fi
icculus@5975
  1015
}
icculus@5975
  1016
icculus@1573
  1017
slouken@0
  1018
dnl Find the X11 include and library directories
slouken@0
  1019
CheckX11()
slouken@0
  1020
{
jim@4681
  1021
jim@4681
  1022
slouken@0
  1023
    AC_ARG_ENABLE(video-x11,
slouken@1637
  1024
AC_HELP_STRING([--enable-video-x11], [use X11 video driver [[default=yes]]]),
slouken@0
  1025
                  , enable_video_x11=yes)
slouken@0
  1026
    if test x$enable_video = xyes -a x$enable_video_x11 = xyes; then
slouken@1806
  1027
        case "$host" in
slouken@1807
  1028
            *-*-darwin*)
slouken@1807
  1029
                # This isn't necessary for X11, but fixes GLX detection
slouken@6445
  1030
                if test "x$x_includes" = xNONE && \
slouken@6445
  1031
                   test "x$x_libraries" = xNONE && \
slouken@6445
  1032
                   test -d /usr/X11R6/include && \
slouken@6445
  1033
                   test -d /usr/X11R6/lib; then
slouken@1806
  1034
                    x_includes="/usr/X11R6/include"
slouken@1806
  1035
                    x_libraries="/usr/X11R6/lib"
slouken@1806
  1036
                fi
slouken@1806
  1037
                ;;
slouken@1806
  1038
        esac
slouken@0
  1039
        AC_PATH_X
slouken@0
  1040
        AC_PATH_XTRA
slouken@0
  1041
        if test x$have_x = xyes; then
slouken@1879
  1042
            # Only allow dynamically loaded X11 if the X11 function pointers
slouken@1879
  1043
            # will not end up in the global namespace, which causes problems
slouken@1879
  1044
            # with other libraries calling X11 functions.
slouken@1879
  1045
            x11_symbols_private=$have_gcc_fvisibility
slouken@1879
  1046
icculus@1168
  1047
            AC_ARG_ENABLE(x11-shared,
slouken@1879
  1048
AC_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=maybe]]]),
slouken@1879
  1049
                          , enable_x11_shared=maybe)
icculus@1168
  1050
slouken@1550
  1051
            case "$host" in
slouken@5471
  1052
                *-*-darwin*)
slouken@1879
  1053
                    x11_symbols_private=yes
icculus@1174
  1054
                    x11_lib='/usr/X11R6/lib/libX11.6.dylib'
icculus@1174
  1055
                    x11ext_lib='/usr/X11R6/lib/libXext.6.dylib'
slouken@5471
  1056
                    xcursor_lib='/usr/X11R6/lib/libXcursor.1.dylib'
slouken@5408
  1057
                    xinerama_lib='/usr/X11R6/lib/libXinerama.1.dylib'
slouken@5408
  1058
                    xinput_lib='/usr/X11R6/lib/libXi.6.dylib'
slouken@5408
  1059
                    xrandr_lib='/usr/X11R6/lib/libXrandr.2.dylib'
slouken@1592
  1060
                    xrender_lib='/usr/X11R6/lib/libXrender.1.dylib'
slouken@5408
  1061
                    xss_lib='/usr/X11R6/lib/libXss.1.dylib'
slouken@5408
  1062
                    xvidmode_lib='/usr/X11R6/lib/libXxf86vm.1.dylib'
icculus@1174
  1063
                    ;;
slouken@6365
  1064
                *-*-openbsd*)
slouken@6365
  1065
                    x11_lib='libX11.so'
slouken@6365
  1066
                    x11ext_lib='libXext.so'
icculus@6385
  1067
                    xcursor_lib='libXcursor.so'
icculus@6385
  1068
                    xinerama_lib='libXinerama.so'
icculus@6385
  1069
                    xinput_lib='libXi.so'
icculus@6385
  1070
                    xrandr_lib='libXrandr.so'
slouken@6365
  1071
                    xrender_lib='libXrender.so'
icculus@6385
  1072
                    xss_lib='libXss.so'
icculus@6385
  1073
                    xvidmode_lib='libXxf86vm.so'
slouken@6365
  1074
                    ;;
icculus@1174
  1075
                *)
slouken@3391
  1076
                    x11_lib=[`find_lib "libX11.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@3391
  1077
                    x11ext_lib=[`find_lib "libXext.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@5471
  1078
                    xcursor_lib=[`find_lib "libXcursor.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@5408
  1079
                    xinerama_lib=[`find_lib "libXinerama.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@5408
  1080
                    xinput_lib=[`find_lib "libXi.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@5408
  1081
                    xrandr_lib=[`find_lib "libXrandr.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@3391
  1082
                    xrender_lib=[`find_lib "libXrender.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@3391
  1083
                    xss_lib=[`find_lib "libXss.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@5408
  1084
                    xvidmode_lib=[`find_lib "libXxf86vm.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
icculus@1174
  1085
                    ;;
icculus@1174
  1086
            esac
icculus@1168
  1087
slouken@1361
  1088
            if test x$ac_cv_func_shmat != xyes; then
slouken@1361
  1089
                X_CFLAGS="$X_CFLAGS -DNO_SHARED_MEMORY"
slouken@1361
  1090
            fi
slouken@1799
  1091
            CFLAGS="$CFLAGS $X_CFLAGS"
slouken@1799
  1092
            LDFLAGS="$LDFLAGS $X_LIBS"
slouken@1468
  1093
icculus@5548
  1094
            AC_DEFINE(SDL_VIDEO_DRIVER_X11, 1, [ ])
slouken@1468
  1095
            SOURCES="$SOURCES $srcdir/src/video/x11/*.c"
slouken@1521
  1096
            EXTRA_CFLAGS="$EXTRA_CFLAGS $X_CFLAGS"
slouken@1879
  1097
slouken@1879
  1098
            if test x$enable_x11_shared = xmaybe; then
slouken@1879
  1099
                enable_x11_shared=$x11_symbols_private
slouken@1879
  1100
            fi
icculus@1173
  1101
            if test x$have_loadso != xyes && \
icculus@1168
  1102
               test x$enable_x11_shared = xyes; then
slouken@1467
  1103
                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic X11 loading])
icculus@1875
  1104
                enable_x11_shared=no
icculus@1168
  1105
            fi
slouken@1879
  1106
            if test x$x11_symbols_private != xyes && \
icculus@1875
  1107
               test x$enable_x11_shared = xyes; then
icculus@1875
  1108
                AC_MSG_WARN([You must have gcc4 (-fvisibility=hidden) for dynamic X11 loading])
icculus@1875
  1109
                enable_x11_shared=no
icculus@1875
  1110
            fi
icculus@1875
  1111
icculus@1173
  1112
            if test x$have_loadso = xyes && \
icculus@1170
  1113
               test x$enable_x11_shared = xyes && test x$x11_lib != x && test x$x11ext_lib != x; then
icculus@1174
  1114
                echo "-- dynamic libX11 -> $x11_lib"
icculus@1174
  1115
                echo "-- dynamic libX11ext -> $x11ext_lib"
icculus@5548
  1116
                AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC, "$x11_lib", [ ])
icculus@5548
  1117
                AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT, "$x11ext_lib", [ ])
icculus@1168
  1118
            else
icculus@1589
  1119
                enable_x11_shared=no
icculus@2763
  1120
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $X_LIBS -lX11 -lXext"
icculus@1168
  1121
            fi
slouken@1361
  1122
            have_video=yes
slouken@0
  1123
slouken@6313
  1124
            AC_MSG_CHECKING(for const parameter to XextAddDisplay)
slouken@6313
  1125
            have_const_param_XextAddDisplay=no
slouken@6313
  1126
            AC_TRY_COMPILE([
slouken@6313
  1127
              #include <X11/Xlib.h>
slouken@6313
  1128
              #include <X11/Xproto.h>
slouken@6313
  1129
              #include <X11/extensions/Xext.h>
slouken@6313
  1130
              #include <X11/extensions/extutil.h>
gabomdq@6327
  1131
              extern XExtDisplayInfo* XextAddDisplay(XExtensionInfo* a,Display* b,_Xconst char* c,XExtensionHooks* d,int e,XPointer f);
slouken@6313
  1132
            ],[
slouken@6313
  1133
            ],[
slouken@6313
  1134
            have_const_param_XextAddDisplay=yes
slouken@6313
  1135
            AC_DEFINE(SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY)
slouken@6313
  1136
            ])
slouken@6313
  1137
            AC_MSG_RESULT($have_const_param_XextAddDisplay)
slouken@6313
  1138
slouken@6362
  1139
            dnl AC_CHECK_LIB(X11, XGetEventData, AC_DEFINE(SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS, 1, [Have XGenericEvent]))
slouken@6362
  1140
            AC_MSG_CHECKING([for XGenericEvent])
slouken@6362
  1141
            have_XGenericEvent=no
slouken@6362
  1142
            AC_TRY_COMPILE([
slouken@6362
  1143
              	#include <X11/Xlib.h>
slouken@6362
  1144
            ],[
slouken@6362
  1145
Display *display;
slouken@6362
  1146
XEvent event;
slouken@6362
  1147
XGenericEventCookie *cookie = &event.xcookie;
slouken@6362
  1148
XNextEvent(display, &event);
slouken@6362
  1149
XGetEventData(display, cookie);
slouken@6362
  1150
XFreeEventData(display, cookie);
slouken@6362
  1151
            ],[
slouken@6362
  1152
                have_XGenericEvent=yes
slouken@6362
  1153
                AC_DEFINE(SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS)
slouken@6362
  1154
            ])
slouken@6362
  1155
            AC_MSG_RESULT($have_XGenericEvent)
slouken@6362
  1156
dimitris@6318
  1157
            AC_CHECK_LIB(X11, XkbKeycodeToKeysym, AC_DEFINE(SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM, 1, [Have XkbKeycodeToKeysym]))
slouken@6311
  1158
slouken@5471
  1159
            AC_ARG_ENABLE(video-x11-xcursor,
slouken@5471
  1160
AC_HELP_STRING([--enable-video-x11-xcursor], [enable X11 Xcursor support [[default=yes]]]),
slouken@5471
  1161
                            , enable_video_x11_xcursor=yes)
slouken@5471
  1162
            if test x$enable_video_x11_xcursor = xyes; then
slouken@5471
  1163
                definitely_enable_video_x11_xcursor=no
slouken@5471
  1164
                AC_CHECK_HEADER(X11/Xcursor/Xcursor.h,
slouken@5471
  1165
                                have_xcursor_h_hdr=yes,
slouken@5471
  1166
                                have_xcursor_h_hdr=no,
slouken@5471
  1167
                                [#include <X11/Xlib.h>
slouken@5471
  1168
                                ])
slouken@5471
  1169
                if test x$have_xcursor_h_hdr = xyes; then
slouken@5471
  1170
                    if test x$enable_x11_shared = xyes && test x$xcursor_lib != x ; then
slouken@5471
  1171
                        echo "-- dynamic libXcursor -> $xcursor_lib"
icculus@5548
  1172
                        AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR, "$xcursor_lib", [ ])
slouken@5471
  1173
                        definitely_enable_video_x11_xcursor=yes
slouken@5471
  1174
                    else
slouken@5471
  1175
                        AC_CHECK_LIB(Xcursor, XcursorImageCreate, have_xcursor_lib=yes)
slouken@5471
  1176
                        if test x$have_xcursor_lib = xyes ; then
slouken@5471
  1177
                            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXcursor"
slouken@5471
  1178
                            definitely_enable_video_x11_xcursor=yes
slouken@5471
  1179
                        fi
slouken@5471
  1180
                    fi
slouken@5471
  1181
                fi
slouken@5471
  1182
            fi
slouken@5471
  1183
            if test x$definitely_enable_video_x11_xcursor = xyes; then
icculus@5548
  1184
                AC_DEFINE(SDL_VIDEO_DRIVER_X11_XCURSOR, 1, [ ])
slouken@5471
  1185
            fi
slouken@227
  1186
            AC_ARG_ENABLE(video-x11-xinerama,
slouken@1637
  1187
AC_HELP_STRING([--enable-video-x11-xinerama], [enable X11 Xinerama support [[default=yes]]]),
slouken@227
  1188
                            , enable_video_x11_xinerama=yes)
slouken@227
  1189
            if test x$enable_video_x11_xinerama = xyes; then
slouken@5408
  1190
                definitely_enable_video_x11_xinerama=no
slouken@5408
  1191
                AC_CHECK_HEADER(X11/extensions/Xinerama.h,
slouken@5408
  1192
                                have_xinerama_h_hdr=yes,
slouken@5408
  1193
                                have_xinerama_h_hdr=no,
icculus@4793
  1194
                                [#include <X11/Xlib.h>
icculus@4793
  1195
                                ])
slouken@5408
  1196
                if test x$have_xinerama_h_hdr = xyes; then
slouken@5408
  1197
                    if test x$enable_x11_shared = xyes && test x$xinerama_lib != x ; then
slouken@5408
  1198
                        echo "-- dynamic libXinerama -> $xinerama_lib"
icculus@5548
  1199
                        AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA, "$xinerama_lib", [ ])
slouken@5408
  1200
                        definitely_enable_video_x11_xinerama=yes
slouken@5408
  1201
                    else
slouken@5408
  1202
                        AC_CHECK_LIB(Xinerama, XineramaQueryExtension, have_xinerama_lib=yes)
slouken@5408
  1203
                        if test x$have_xinerama_lib = xyes ; then
slouken@5408
  1204
                            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXinerama"
slouken@5408
  1205
                            definitely_enable_video_x11_xinerama=yes
slouken@5408
  1206
                        fi
slouken@5408
  1207
                    fi
icculus@4793
  1208
                fi
icculus@4793
  1209
            fi
slouken@5408
  1210
            if test x$definitely_enable_video_x11_xinerama = xyes; then
icculus@5548
  1211
                AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINERAMA, 1, [ ])
slouken@5408
  1212
            fi
slouken@5408
  1213
            AC_ARG_ENABLE(video-x11-xinput,
slouken@5408
  1214
AC_HELP_STRING([--enable-video-x11-xinput], [enable X11 XInput extension for manymouse, tablets, etc [[default=yes]]]),
slouken@5408
  1215
                            , enable_video_x11_xinput=yes)
slouken@5408
  1216
            if test x$enable_video_x11_xinput = xyes; then
slouken@5408
  1217
                definitely_enable_video_x11_xinput=no
slouken@6311
  1218
                AC_CHECK_HEADER(X11/extensions/XInput2.h,
slouken@5408
  1219
                                have_xinput_h_hdr=yes,
slouken@5408
  1220
                                have_xinput_h_hdr=no,
slouken@5408
  1221
                                [#include <X11/Xlib.h>
slouken@5408
  1222
                                ])
slouken@5408
  1223
                if test x$have_xinput_h_hdr = xyes; then
slouken@5408
  1224
                    if test x$enable_x11_shared = xyes && test x$xinput_lib != x ; then
slouken@5408
  1225
                        echo "-- dynamic libXi -> $xinput_lib"
slouken@6311
  1226
                        AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2, "$xinput_lib", [ ])
slouken@5408
  1227
                        definitely_enable_video_x11_xinput=yes
slouken@5408
  1228
                    else
slouken@5408
  1229
                        AC_CHECK_LIB(Xi, XOpenDevice, have_xinput_lib=yes)
slouken@5408
  1230
                        if test x$have_xinput_lib = xyes ; then
slouken@5408
  1231
                            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXi"
slouken@5408
  1232
                            definitely_enable_video_x11_xinput=yes
slouken@5408
  1233
                        fi
slouken@5408
  1234
                    fi
slouken@5408
  1235
                fi
slouken@5408
  1236
            fi
slouken@5408
  1237
            if test x$definitely_enable_video_x11_xinput = xyes; then
slouken@6311
  1238
                AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINPUT2, 1, [ ])
dimitris@6316
  1239
                AC_MSG_CHECKING(for xinput2 multitouch)
dimitris@6316
  1240
            	have_xinput2_multitouch=no
dimitris@6316
  1241
            	AC_TRY_COMPILE([
dimitris@6316
  1242
              		#include <X11/Xlib.h>
dimitris@6316
  1243
             		#include <X11/Xproto.h>
dimitris@6316
  1244
			#include <X11/extensions/XInput2.h>
dimitris@6316
  1245
            	],[
gabomdq@6340
  1246
int event_type = XI_TouchBegin;
gabomdq@6340
  1247
XITouchClassInfo *t;
dimitris@6316
  1248
Status 
dimitris@6316
  1249
XIAllowTouchEvents(Display *a,int b,unsigned int c,Window d,int f)
dimitris@6316
  1250
{
dimitris@6316
  1251
    return (Status)0;
dimitris@6316
  1252
}
dimitris@6316
  1253
            	],[
dimitris@6316
  1254
            	have_xinput2_multitouch=yes
dimitris@6316
  1255
            	AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH)
dimitris@6316
  1256
            	])
dimitris@6316
  1257
            	AC_MSG_RESULT($have_xinput2_multitouch)
slouken@5408
  1258
            fi
icculus@1589
  1259
            AC_ARG_ENABLE(video-x11-xrandr,
slouken@1637
  1260
AC_HELP_STRING([--enable-video-x11-xrandr], [enable X11 Xrandr extension for fullscreen [[default=yes]]]),
icculus@1589
  1261
                            , enable_video_x11_xrandr=yes)
icculus@1589
  1262
            if test x$enable_video_x11_xrandr = xyes; then
icculus@1589
  1263
                definitely_enable_video_x11_xrandr=no
icculus@1589
  1264
                AC_CHECK_HEADER(X11/extensions/Xrandr.h,
icculus@1589
  1265
                                have_xrandr_h_hdr=yes,
icculus@1589
  1266
                                have_xrandr_h_hdr=no,
icculus@1589
  1267
                                [#include <X11/Xlib.h>
icculus@1589
  1268
                                ])
icculus@1589
  1269
                if test x$have_xrandr_h_hdr = xyes; then
icculus@1589
  1270
                    if test x$enable_x11_shared = xyes && test x$xrandr_lib != x ; then
icculus@1589
  1271
                        echo "-- dynamic libXrandr -> $xrandr_lib"
icculus@5548
  1272
                        AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR, "$xrandr_lib", [ ])
icculus@1589
  1273
                        definitely_enable_video_x11_xrandr=yes
icculus@1589
  1274
                    else
icculus@1589
  1275
                        AC_CHECK_LIB(Xrandr, XRRQueryExtension, have_xrandr_lib=yes)
sunnysachanandani@4577
  1276
                        if test x$have_xrandr_lib = xyes ; then
sunnysachanandani@4577
  1277
                            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXrandr"
icculus@1589
  1278
                            definitely_enable_video_x11_xrandr=yes
icculus@1589
  1279
                        fi
icculus@1589
  1280
                    fi
icculus@1589
  1281
                fi
icculus@1589
  1282
            fi
icculus@1589
  1283
            if test x$definitely_enable_video_x11_xrandr = xyes; then
icculus@5548
  1284
                AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR, 1, [ ])
icculus@1589
  1285
            fi
slouken@3025
  1286
            AC_ARG_ENABLE(video-x11-scrnsaver,
slouken@3025
  1287
AC_HELP_STRING([--enable-video-x11-scrnsaver], [enable X11 screensaver extension [[default=yes]]]),
slouken@3025
  1288
                            , enable_video_x11_scrnsaver=yes)
slouken@3025
  1289
            if test x$enable_video_x11_scrnsaver = xyes; then
slouken@3025
  1290
                AC_CHECK_HEADER(X11/extensions/scrnsaver.h,
slouken@3025
  1291
                                have_scrnsaver_h_hdr=yes,
slouken@3025
  1292
                                have_scrnsaver_h_hdr=no,
slouken@1783
  1293
                                [#include <X11/Xlib.h>
slouken@1783
  1294
                                ])
slouken@3025
  1295
                if test x$have_scrnsaver_h_hdr = xyes; then
slouken@3025
  1296
                    if test x$enable_x11_shared = xyes && test x$xss_lib != x ; then
slouken@3025
  1297
                        echo "-- dynamic libXss -> $xss_lib"
icculus@5548
  1298
                        AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS, "$xss_lib", [ ])
slouken@3025
  1299
                        definitely_enable_video_x11_scrnsaver=yes
slouken@3025
  1300
                    else
slouken@3025
  1301
                        AC_CHECK_LIB(Xss, XScreenSaverSuspend, have_xss_lib=yes)
slouken@3025
  1302
                        if test x$have_xss_lib = xyes ; then
slouken@3025
  1303
                            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXss"
slouken@3025
  1304
                            definitely_enable_video_x11_scrnsaver=yes
slouken@3025
  1305
                        fi
slouken@3025
  1306
                    fi
slouken@1783
  1307
                fi
slouken@1783
  1308
            fi
slouken@3025
  1309
            if test x$definitely_enable_video_x11_scrnsaver = xyes; then
icculus@5548
  1310
                AC_DEFINE(SDL_VIDEO_DRIVER_X11_XSCRNSAVER, 1, [ ])
slouken@5408
  1311
            fi
slouken@5408
  1312
            AC_ARG_ENABLE(video-x11-xshape,
slouken@5408
  1313
AC_HELP_STRING([--enable-video-x11-xshape], [enable X11 XShape support [[default=yes]]]),
slouken@5408
  1314
                            , enable_video_x11_xshape=yes)
slouken@5408
  1315
            if test x$enable_video_x11_xshape = xyes; then
slouken@5408
  1316
                AC_CHECK_HEADER(X11/extensions/shape.h,
slouken@5408
  1317
                                have_shape_h_hdr=yes,
slouken@5408
  1318
                                have_shape_h_hdr=no,
slouken@5408
  1319
                                [#include <X11/Xlib.h>
slouken@5408
  1320
                                ])
slouken@5408
  1321
                if test x$have_shape_h_hdr = xyes; then
icculus@5548
  1322
                    AC_DEFINE(SDL_VIDEO_DRIVER_X11_XSHAPE, 1, [ ])
slouken@5408
  1323
                fi
slouken@5408
  1324
            fi
slouken@5408
  1325
            AC_ARG_ENABLE(video-x11-vm,
slouken@5408
  1326
AC_HELP_STRING([--enable-video-x11-vm], [use X11 VM extension for fullscreen [[default=yes]]]),
slouken@5408
  1327
                            , enable_video_x11_vm=yes)
slouken@5408
  1328
            if test x$enable_video_x11_vm = xyes; then
slouken@5408
  1329
                definitely_enable_video_x11_vm=no
slouken@5408
  1330
                AC_CHECK_HEADER(X11/extensions/xf86vmode.h,
slouken@5408
  1331
                                have_vm_h_hdr=yes,
slouken@5408
  1332
                                have_vm_h_hdr=no,
slouken@5408
  1333
                                [#include <X11/Xlib.h>
slouken@5408
  1334
                                ])
slouken@5408
  1335
                if test x$have_vm_h_hdr = xyes; then
slouken@5408
  1336
                    if test x$enable_x11_shared = xyes && test x$xvidmode_lib != x ; then
slouken@5408
  1337
                        echo "-- dynamic libXxf86vm -> $xvidmode_lib"
icculus@5548
  1338
                        AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE, "$xvidmode_lib", [ ])
slouken@5408
  1339
                        definitely_enable_video_x11_vm=yes
slouken@5408
  1340
                    else
slouken@5408
  1341
                        AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryVersion, have_vm_lib=yes)
slouken@5408
  1342
                        if test x$have_vm_lib = xyes ; then
slouken@5408
  1343
                            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXxf86vm"
slouken@5408
  1344
                            definitely_enable_video_x11_vm=yes
slouken@5408
  1345
                        fi
slouken@5408
  1346
                    fi
slouken@5408
  1347
                fi
slouken@5408
  1348
            fi
slouken@5408
  1349
            if test x$definitely_enable_video_x11_vm = xyes; then
icculus@5548
  1350
                AC_DEFINE(SDL_VIDEO_DRIVER_X11_XVIDMODE, 1, [ ])
slouken@3025
  1351
            fi
slouken@0
  1352
        fi
slouken@0
  1353
    fi
slouken@0
  1354
}
slouken@279
  1355
slouken@1361
  1356
dnl Set up the BWindow video driver if enabled
slouken@1361
  1357
CheckBWINDOW()
slouken@1361
  1358
{
slouken@1361
  1359
    if test x$enable_video = xyes; then
icculus@5548
  1360
        AC_DEFINE(SDL_VIDEO_DRIVER_BWINDOW, 1, [ ])
slouken@1361
  1361
        SOURCES="$SOURCES $srcdir/src/video/bwindow/*.cc"
slouken@1361
  1362
        have_video=yes
slouken@1361
  1363
    fi
slouken@1361
  1364
}
slouken@1361
  1365
slouken@1931
  1366
dnl Set up the Cocoa video driver for Mac OS X (but not Darwin)
slouken@1361
  1367
CheckCOCOA()
slouken@1361
  1368
{
slouken@1361
  1369
    AC_ARG_ENABLE(video-cocoa,
slouken@1931
  1370
AC_HELP_STRING([--enable-video-cocoa], [use Cocoa video driver [[default=yes]]]),
slouken@1361
  1371
                  , enable_video_cocoa=yes)
slouken@1361
  1372
    if test x$enable_video = xyes -a x$enable_video_cocoa = xyes; then
slouken@1361
  1373
        save_CFLAGS="$CFLAGS"
slouken@1361
  1374
        dnl work around that we don't have Objective-C support in autoconf
slouken@1361
  1375
        CFLAGS="$CFLAGS -x objective-c"
slouken@1361
  1376
        AC_MSG_CHECKING(for Cocoa framework)
slouken@1361
  1377
        have_cocoa=no
slouken@1361
  1378
        AC_TRY_COMPILE([
slouken@1361
  1379
          #import <Cocoa/Cocoa.h>
slouken@1361
  1380
        ],[
slouken@1361
  1381
        ],[
slouken@1361
  1382
        have_cocoa=yes
slouken@1361
  1383
        ])
slouken@1361
  1384
        AC_MSG_RESULT($have_cocoa)
slouken@1361
  1385
        CFLAGS="$save_CFLAGS"
slouken@1361
  1386
        if test x$have_cocoa = xyes; then
icculus@5548
  1387
            AC_DEFINE(SDL_VIDEO_DRIVER_COCOA, 1, [ ])
slouken@1931
  1388
            SOURCES="$SOURCES $srcdir/src/video/cocoa/*.m"
slouken@1361
  1389
            have_video=yes
slouken@1361
  1390
        fi
slouken@1361
  1391
    fi
slouken@1361
  1392
}
slouken@1361
  1393
slouken@167
  1394
dnl Find DirectFB
slouken@167
  1395
CheckDirectFB()
slouken@167
  1396
{
slouken@167
  1397
    AC_ARG_ENABLE(video-directfb,
slouken@2314
  1398
AC_HELP_STRING([--enable-video-directfb], [use DirectFB video driver [[default=no]]]),
slouken@2314
  1399
                  , enable_video_directfb=no)
slouken@167
  1400
    if test x$enable_video = xyes -a x$enable_video_directfb = xyes; then
slouken@167
  1401
        video_directfb=no
slouken@167
  1402
slouken@2998
  1403
        DIRECTFB_REQUIRED_VERSION=1.0.0
slouken@5199
  1404
        AC_PATH_PROGS(DIRECTFBCONFIG, directfb-config, no, [$prefix/bin:$PATH])
slouken@1602
  1405
        if test x$DIRECTFBCONFIG = xno; then
slouken@1588
  1406
            AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
slouken@1602
  1407
            if test x$PKG_CONFIG != xno; then
slouken@1602
  1408
                if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb; then
slouken@1588
  1409
                    DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags directfb`
slouken@1588
  1410
                    DIRECTFB_LIBS=`$PKG_CONFIG --libs directfb`
slouken@2998
  1411
                    DIRECTFB_PREFIX=`$PKG_CONFIG --variable=prefix directfb`
slouken@1588
  1412
                    video_directfb=yes
slouken@1588
  1413
                fi
slouken@1588
  1414
            fi
slouken@167
  1415
        else
slouken@1588
  1416
            set -- `echo $DIRECTFB_REQUIRED_VERSION | sed 's/\./ /g'`
slouken@1588
  1417
            NEED_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
slouken@1588
  1418
            set -- `directfb-config --version | sed 's/\./ /g'`
slouken@1588
  1419
            HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
slouken@1588
  1420
            if test $HAVE_VERSION -ge $NEED_VERSION; then
slouken@1588
  1421
                DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags`
slouken@1588
  1422
                DIRECTFB_LIBS=`$DIRECTFBCONFIG --libs`
slouken@2998
  1423
                DIRECTFB_PREFIX=`$DIRECTFBCONFIG --prefix`
slouken@167
  1424
                video_directfb=yes
slouken@167
  1425
            fi
slouken@167
  1426
        fi
slouken@3351
  1427
        if test x$video_directfb = xyes; then
slouken@3351
  1428
            # SuSE 11.1 installs directfb-config without directfb-devel
couriersud@3639
  1429
            save_CPPFLAGS="$CPPFLAGS"
couriersud@3639
  1430
            CPPFLAGS="$CPPFLAGS $DIRECTFB_CFLAGS"
slouken@3351
  1431
            AC_CHECK_HEADER(directfb.h, have_directfb_hdr=yes, have_directfb_hdr=no)
couriersud@3639
  1432
            CPPFLAGS="$save_CPPFLAGS"
slouken@3351
  1433
            video_directfb=$have_directfb_hdr
slouken@3351
  1434
        fi
slouken@3351
  1435
        AC_MSG_CHECKING(for DirectFB $DIRECTFB_REQUIRED_VERSION support)
slouken@3351
  1436
        AC_MSG_RESULT($video_directfb)
slouken@167
  1437
slouken@167
  1438
        if test x$video_directfb = xyes; then
slouken@2998
  1439
            AC_ARG_ENABLE(directfb-shared,
slouken@2998
  1440
AC_HELP_STRING([--enable-directfb-shared], [dynamically load directfb support [[default=yes]]]),
slouken@2998
  1441
                              , enable_directfb_shared=yes)
slouken@2998
  1442
icculus@5548
  1443
            AC_DEFINE(SDL_VIDEO_DRIVER_DIRECTFB, 1, [ ])
icculus@5548
  1444
            AC_DEFINE(SDL_VIDEO_RENDER_DIRECTFB, 1, [ ])
slouken@1361
  1445
            SOURCES="$SOURCES $srcdir/src/video/directfb/*.c"
slouken@1521
  1446
            EXTRA_CFLAGS="$EXTRA_CFLAGS $DIRECTFB_CFLAGS"
slouken@2998
  1447
slouken@3392
  1448
            AC_MSG_CHECKING(for directfb dynamic loading support)
slouken@3392
  1449
            directfb_shared=no
slouken@5199
  1450
            directfb_lib=[`find_lib "libdirectfb.so.*" "$DIRECTFB_LIBS"`]
slouken@5199
  1451
            # | sed 's/.*\/\(.*\)/\1/; q'`]
slouken@5199
  1452
AC_MSG_WARN("directfb $directfb_lib")
slouken@2998
  1453
            if test x$have_loadso != xyes && \
slouken@2998
  1454
               test x$enable_directfb_shared = xyes; then
slouken@2998
  1455
                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic directfb loading])
slouken@2998
  1456
            fi
slouken@2998
  1457
            if test x$have_loadso = xyes && \
slouken@2998
  1458
               test x$enable_directfb_shared = xyes && test x$directfb_lib != x; then
slouken@3392
  1459
                directfb_shared=yes
slouken@3392
  1460
                echo "-- $directfb_lib_spec -> $directfb_lib"
icculus@5548
  1461
                AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC, "$directfb_lib", [ ])
slouken@2998
  1462
            else
slouken@3392
  1463
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $DIRECTFB_LIBS"
slouken@2998
  1464
            fi
slouken@3392
  1465
            AC_MSG_RESULT($directfb_shared)
slouken@1361
  1466
            have_video=yes
slouken@167
  1467
        fi
slouken@167
  1468
    fi
slouken@167
  1469
}
slouken@167
  1470
slouken@2947
  1471
dnl Find FusionSound
slouken@2947
  1472
CheckFusionSound()
slouken@2947
  1473
{
slouken@2947
  1474
    AC_ARG_ENABLE(fusionsound,
slouken@2947
  1475
AC_HELP_STRING([--enable-fusionsound], [use FusionSound audio driver [[default=no]]]),
slouken@2947
  1476
                  , enable_fusionsound=no)
slouken@2947
  1477
    if test x$enable_audio = xyes -a x$enable_fusionsound = xyes; then
slouken@2947
  1478
        fusionsound=no
slouken@2947
  1479
slouken@2947
  1480
        FUSIONSOUND_REQUIRED_VERSION=1.1.1
slouken@2947
  1481
slouken@2947
  1482
        AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
slouken@2947
  1483
        AC_MSG_CHECKING(for FusionSound $FUSIONSOUND_REQUIRED_VERSION support)
slouken@2947
  1484
        if test x$PKG_CONFIG != xno; then
slouken@2947
  1485
            if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $FUSIONSOUND_REQUIRED_VERSION fusionsound; then
slouken@2947
  1486
                FUSIONSOUND_CFLAGS=`$PKG_CONFIG --cflags fusionsound`
slouken@2947
  1487
                FUSIONSOUND_LIBS=`$PKG_CONFIG --libs fusionsound`
slouken@2947
  1488
                fusionsound=yes
slouken@2947
  1489
            fi
slouken@2947
  1490
        fi
slouken@2947
  1491
        AC_MSG_RESULT($fusionsound)
slouken@2947
  1492
slouken@2947
  1493
        if test x$fusionsound = xyes; then
icculus@5548
  1494
            AC_DEFINE(SDL_AUDIO_DRIVER_FUSIONSOUND, 1, [ ])
slouken@2947
  1495
            SOURCES="$SOURCES $srcdir/src/audio/fusionsound/*.c"
slouken@2947
  1496
            EXTRA_CFLAGS="$EXTRA_CFLAGS $FUSIONSOUND_CFLAGS"
slouken@2947
  1497
            
slouken@2947
  1498
            AC_ARG_ENABLE(fusionsound-shared,
slouken@2947
  1499
AC_HELP_STRING([--enable-fusionsound-shared], [dynamically load fusionsound audio support [[default=yes]]]),
slouken@2947
  1500
                          , enable_fusionsound_shared=yes)
slouken@2947
  1501
            fusionsound_shared=no
slouken@3392
  1502
            AC_MSG_CHECKING(for FusionSound dynamic loading support)
slouken@2947
  1503
            if test x$have_loadso != xyes && \
slouken@2947
  1504
               test x$enable_fusionsound_shared = xyes; then
slouken@2947
  1505
                AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic fusionsound loading])
slouken@2947
  1506
            fi
slouken@2947
  1507
            if test x$have_loadso = xyes && \
slouken@2947
  1508
               test x$enable_fusionsound_shared = xyes; then
icculus@5548
  1509
                AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC, "libfusionsound.so", [ ])
slouken@3392
  1510
                fusionsound_shared=yes
slouken@2947
  1511
            else
slouken@3392
  1512
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS $FUSIONSOUND_LIBS"
slouken@2947
  1513
            fi
slouken@3392
  1514
            AC_MSG_RESULT($fusionsound_shared)
slouken@2947
  1515
            
slouken@2947
  1516
            have_audio=yes
slouken@2947
  1517
        fi
slouken@2947
  1518
    fi
slouken@2947
  1519
}
slouken@2947
  1520
slouken@1
  1521
dnl rcg04172001 Set up the Null video driver.
slouken@1
  1522
CheckDummyVideo()
slouken@1
  1523
{
slouken@1
  1524
    AC_ARG_ENABLE(video-dummy,
slouken@1637
  1525
AC_HELP_STRING([--enable-video-dummy], [use dummy video driver [[default=yes]]]),
slouken@86
  1526
                  , enable_video_dummy=yes)
slouken@1
  1527
    if test x$enable_video_dummy = xyes; then
icculus@5548
  1528
        AC_DEFINE(SDL_VIDEO_DRIVER_DUMMY, 1, [ ])
slouken@1361
  1529
        SOURCES="$SOURCES $srcdir/src/video/dummy/*.c"
slouken@1361
  1530
        have_video=yes
slouken@1
  1531
    fi
slouken@1
  1532
}
slouken@1
  1533
slouken@0
  1534
dnl Check to see if OpenGL support is desired
slouken@0
  1535
AC_ARG_ENABLE(video-opengl,
slouken@1952
  1536
AC_HELP_STRING([--enable-video-opengl], [include OpenGL support [[default=yes]]]),
slouken@0
  1537
              , enable_video_opengl=yes)
slouken@0
  1538
slouken@0
  1539
dnl Find OpenGL
icculus@1191
  1540
CheckOpenGLX11()
slouken@0
  1541
{
slouken@0
  1542
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
slouken@0
  1543
        AC_MSG_CHECKING(for OpenGL (GLX) support)
slouken@0
  1544
        video_opengl=no
slouken@0
  1545
        AC_TRY_COMPILE([
slouken@0
  1546
         #include <GL/gl.h>
slouken@0
  1547
         #include <GL/glx.h>
slouken@0
  1548
        ],[
slouken@0
  1549
        ],[
slouken@0
  1550
        video_opengl=yes
slouken@0
  1551
        ])
slouken@0
  1552
        AC_MSG_RESULT($video_opengl)
slouken@0
  1553
        if test x$video_opengl = xyes; then
icculus@5548
  1554
            AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
icculus@5548
  1555
            AC_DEFINE(SDL_VIDEO_OPENGL_GLX, 1, [ ])
icculus@5548
  1556
            AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
slouken@0
  1557
        fi
slouken@0
  1558
    fi
slouken@0
  1559
}
slouken@0
  1560
slouken@6188
  1561
dnl Check to see if OpenGL ES support is desired
slouken@6188
  1562
AC_ARG_ENABLE(video-opengles,
slouken@6188
  1563
AC_HELP_STRING([--enable-video-opengles], [include OpenGL ES support [[default=yes]]]),
slouken@6188
  1564
              , enable_video_opengles=yes)
slouken@6188
  1565
slouken@6188
  1566
dnl Find OpenGL ES
slouken@6188
  1567
CheckOpenGLESX11()
slouken@6188
  1568
{
slouken@6188
  1569
    if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then
slouken@6188
  1570
        AC_MSG_CHECKING(for OpenGL ES (EGL) support)
slouken@6188
  1571
        video_opengles=no
slouken@6188
  1572
        AC_TRY_COMPILE([
slouken@6188
  1573
         #include <EGL/egl.h>
slouken@6188
  1574
        ],[
slouken@6188
  1575
        ],[
slouken@6188
  1576
        video_opengles=yes
slouken@6188
  1577
        ])
slouken@6188
  1578
        AC_MSG_RESULT($video_opengles)
slouken@6188
  1579
        if test x$video_opengles = xyes; then
slouken@6188
  1580
            AC_MSG_CHECKING(for OpenGL ES v1 headers)
slouken@6188
  1581
            video_opengles_v1=no
slouken@6188
  1582
            AC_TRY_COMPILE([
slouken@6188
  1583
             #include <GLES/gl.h>
slouken@6188
  1584
             #include <GLES/glext.h>
slouken@6188
  1585
            ],[
slouken@6188
  1586
            ],[
slouken@6188
  1587
            video_opengles_v1=yes
slouken@6188
  1588
            ])
slouken@6188
  1589
            AC_MSG_RESULT($video_opengles_v1)
slouken@6188
  1590
            if test x$video_opengles_v1 = xyes; then
slouken@6188
  1591
                AC_DEFINE(SDL_VIDEO_OPENGL_ES, 1, [ ])
slouken@6188
  1592
                AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES, 1, [ ])
slouken@6188
  1593
            fi
slouken@6188
  1594
            AC_MSG_CHECKING(for OpenGL ES v2 headers)
slouken@6188
  1595
            video_opengles_v2=no
slouken@6188
  1596
            AC_TRY_COMPILE([
slouken@6188
  1597
             #include <GLES2/gl2.h>
slouken@6188
  1598
             #include <GLES2/gl2ext.h>
slouken@6188
  1599
            ],[
slouken@6188
  1600
            ],[
slouken@6188
  1601
            video_opengles_v2=yes
slouken@6188
  1602
            ])
slouken@6188
  1603
            AC_MSG_RESULT($video_opengles_v2)
slouken@6188
  1604
            if test x$video_opengles_v2 = xyes; then
slouken@6188
  1605
                AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ])
slouken@6188
  1606
                AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
slouken@6188
  1607
            fi
slouken@6188
  1608
        fi
slouken@6188
  1609
    fi
slouken@6188
  1610
}
slouken@6188
  1611
slouken@5062
  1612
dnl Check for Windows OpenGL
slouken@5062
  1613
CheckWINDOWSGL()
slouken@1361
  1614
{
slouken@1361
  1615
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
icculus@5548
  1616
        AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
icculus@5548
  1617
        AC_DEFINE(SDL_VIDEO_OPENGL_WGL, 1, [ ])
icculus@5548
  1618
        AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
slouken@1361
  1619
    fi
slouken@1361
  1620
}
slouken@1361
  1621
slouken@0
  1622
dnl Check for BeOS OpenGL
slouken@0
  1623
CheckBeGL()
slouken@0
  1624
{
slouken@0
  1625
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
icculus@5548
  1626
        AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
icculus@5548
  1627
        AC_DEFINE(SDL_VIDEO_OPENGL_BGL, 1, [ ])
icculus@5548
  1628
        AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
slouken@1521
  1629
        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL"
slouken@0
  1630
    fi
slouken@0
  1631
}
slouken@0
  1632
slouken@0
  1633
dnl Check for MacOS OpenGL
slouken@0
  1634
CheckMacGL()
slouken@0
  1635
{
slouken@0
  1636
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
icculus@5548
  1637
        AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ])
icculus@5548
  1638
        AC_DEFINE(SDL_VIDEO_OPENGL_CGL, 1, [ ])
icculus@5548
  1639
        AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ])
slouken@1550
  1640
        case "$host" in
slouken@0
  1641
            *-*-darwin*)
slouken@1625
  1642
                if test x$enable_video_cocoa = xyes; then
icculus@3623
  1643
                    EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,OpenGL"
slouken@1625
  1644
                fi
slouken@0
  1645
        esac
slouken@0
  1646
    fi
slouken@0
  1647
}
slouken@0
  1648
slouken@0
  1649
dnl See if we can use the new unified event interface in Linux 2.4
slouken@0
  1650
CheckInputEvents()
slouken@0
  1651
{
slouken@0
  1652
    dnl Check for Linux 2.4 unified input event interface support
slouken@0
  1653
        AC_MSG_CHECKING(for Linux 2.4 unified input interface)
slouken@0
  1654
        use_input_events=no
slouken@0
  1655
        AC_TRY_COMPILE([
slouken@0
  1656
          #include <linux/input.h>
slouken@0
  1657
        ],[
slouken@0
  1658
          #ifndef EVIOCGNAME
slouken@0
  1659
          #error EVIOCGNAME() ioctl not available
slouken@0
  1660
          #endif
slouken@0
  1661
        ],[
slouken@0
  1662
        use_input_events=yes
slouken@0
  1663
        ])
slouken@0
  1664
        AC_MSG_RESULT($use_input_events)
slouken@0
  1665
        if test x$use_input_events = xyes; then
icculus@5548
  1666
            AC_DEFINE(SDL_INPUT_LINUXEV, 1, [ ])
slouken@0
  1667
        fi
slouken@0
  1668
}
slouken@0
  1669
icculus@6734
  1670
dnl See if the platform offers libudev for device enumeration and hotplugging.
icculus@6734
  1671
CheckLibUDev()
icculus@6734
  1672
{
icculus@6734
  1673
    AC_ARG_ENABLE(libudev,
icculus@6734
  1674
AC_HELP_STRING([--enable-libudev], [enable libudev support [[default=yes]]]),
icculus@6734
  1675
                        , enable_libudev=yes)
icculus@6734
  1676
    if test x$enable_libudev = xyes; then
icculus@6734
  1677
        AC_CHECK_HEADER(libudev.h,
icculus@6734
  1678
                        have_libudev_h_hdr=yes,
icculus@6734
  1679
                        have_libudev_h_hdr=no)
icculus@6734
  1680
        if test x$have_libudev_h_hdr = xyes; then
icculus@6734
  1681
            AC_DEFINE(HAVE_LIBUDEV_H, 1, [ ])
icculus@6734
  1682
        fi
icculus@6734
  1683
    fi
icculus@6734
  1684
}
icculus@6734
  1685
icculus@1201
  1686
dnl See if we can use the Touchscreen input library
icculus@1201
  1687
CheckTslib()
icculus@1201
  1688
{
icculus@1201
  1689
    AC_ARG_ENABLE(input-tslib,
slouken@1637
  1690
AC_HELP_STRING([--enable-input-tslib], [use the Touchscreen library for input [[default=yes]]]),
icculus@1201
  1691
                  , enable_input_tslib=yes)
icculus@1201
  1692
    if test x$enable_input_tslib = xyes; then
icculus@1201
  1693
        AC_MSG_CHECKING(for Touchscreen library support)
icculus@1201
  1694
        enable_input_tslib=no
icculus@1201
  1695
        AC_TRY_COMPILE([
icculus@1201
  1696
          #include "tslib.h"
icculus@1201
  1697
        ],[
icculus@1201
  1698
        ],[
icculus@1201
  1699
        enable_input_tslib=yes
icculus@1201
  1700
        ])
icculus@1201
  1701
        AC_MSG_RESULT($enable_input_tslib)
icculus@1201
  1702
        if test x$enable_input_tslib = xyes; then
icculus@5548
  1703
            AC_DEFINE(SDL_INPUT_TSLIB, 1, [ ])
slouken@1521
  1704
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lts"
icculus@1201
  1705
        fi
icculus@1201
  1706
    fi
icculus@1201
  1707
}
icculus@1201
  1708
slouken@0
  1709
dnl See what type of thread model to use on Linux and Solaris
slouken@0
  1710
CheckPTHREAD()
slouken@0
  1711
{
slouken@0
  1712
    dnl Check for pthread support
slouken@0
  1713
    AC_ARG_ENABLE(pthreads,
slouken@1637
  1714
AC_HELP_STRING([--enable-pthreads], [use POSIX threads for multi-threading [[default=yes]]]),
slouken@0
  1715
                  , enable_pthreads=yes)
slouken@0
  1716
    dnl This is used on Linux for glibc binary compatibility (Doh!)
slouken@0
  1717
    AC_ARG_ENABLE(pthread-sem,
slouken@1637
  1718
AC_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [[default=yes]]]),
slouken@0
  1719
                  , enable_pthread_sem=yes)
slouken@1550
  1720
    case "$host" in
slouken@1820
  1721
        *-*-linux*|*-*-uclinux*)
slouken@1361
  1722
            pthread_cflags="-D_REENTRANT"
slouken@1324
  1723
            pthread_lib="-lpthread"
slouken@1324
  1724
            ;;
slouken@0
  1725
        *-*-bsdi*)
slouken@0
  1726
            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
slouken@0
  1727
            pthread_lib=""
slouken@0
  1728
            ;;
slouken@0
  1729
        *-*-darwin*)
slouken@0
  1730
            pthread_cflags="-D_THREAD_SAFE"
slouken@0
  1731
# causes Carbon.p complaints?
slouken@0
  1732
#            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
slouken@0
  1733
            ;;
slouken@1565
  1734
        *-*-freebsd*|*-*-dragonfly*)
slouken@0
  1735
            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
slouken@0
  1736
            pthread_lib="-pthread"
slouken@0
  1737
            ;;
slouken@43
  1738
        *-*-netbsd*)
slouken@1383
  1739
            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
slouken@2158
  1740
            pthread_lib="-lpthread"
slouken@43
  1741
            ;;
slouken@0
  1742
        *-*-openbsd*)
slouken@0
  1743
            pthread_cflags="-D_REENTRANT"
slouken@0
  1744
            pthread_lib="-pthread"
slouken@0
  1745
            ;;
slouken@0
  1746
        *-*-solaris*)
slouken@0
  1747
            pthread_cflags="-D_REENTRANT"
slouken@0
  1748
            pthread_lib="-lpthread -lposix4"
slouken@0
  1749
            ;;
slouken@0
  1750
        *-*-sysv5*)
slouken@0
  1751
            pthread_cflags="-D_REENTRANT -Kthread"
slouken@0
  1752
            pthread_lib=""
slouken@0
  1753
            ;;
slouken@0
  1754
        *-*-aix*)
slouken@0
  1755
            pthread_cflags="-D_REENTRANT -mthreads"
slouken@0
  1756
            pthread_lib="-lpthread"
slouken@0
  1757
            ;;
icculus@425
  1758
        *-*-hpux11*)
icculus@425
  1759
            pthread_cflags="-D_REENTRANT"
icculus@425
  1760
            pthread_lib="-L/usr/lib -lpthread"
icculus@425
  1761
            ;;
slouken@0
  1762
        *)
slouken@0
  1763
            pthread_cflags="-D_REENTRANT"
slouken@0
  1764
            pthread_lib="-lpthread"
slouken@0
  1765
            ;;
slouken@0
  1766
    esac
slouken@3268
  1767
    if test x$enable_threads = xyes -a x$enable_pthreads = xyes; then
slouken@415
  1768
        # Save the original compiler flags and libraries
slouken@415
  1769
        ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
slouken@415
  1770
        # Add the pthread compiler flags and libraries
slouken@415
  1771
        CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
slouken@415
  1772
        # Check to see if we have pthread support on this system
slouken@0
  1773
        AC_MSG_CHECKING(for pthreads)
slouken@0
  1774
        use_pthreads=no
slouken@0
  1775
        AC_TRY_LINK([
slouken@0
  1776
         #include <pthread.h>
slouken@0
  1777
        ],[
slouken@0
  1778
         pthread_attr_t type;
slouken@0
  1779
         pthread_attr_init(&type);
slouken@0
  1780
        ],[
slouken@0
  1781
        use_pthreads=yes
slouken@0
  1782
        ])
slouken@0
  1783
        AC_MSG_RESULT($use_pthreads)
slouken@415
  1784
        # Restore the compiler flags and libraries
slouken@415
  1785
        CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
slouken@1361
  1786
slouken@415
  1787
        # Do futher testing if we have pthread support...
slouken@0
  1788
        if test x$use_pthreads = xyes; then
icculus@5548
  1789
            AC_DEFINE(SDL_THREAD_PTHREAD, 1, [ ])
slouken@1521
  1790
            EXTRA_CFLAGS="$EXTRA_CFLAGS $pthread_cflags"
slouken@1521
  1791
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS $pthread_lib"
slouken@0
  1792
            SDL_CFLAGS="$SDL_CFLAGS $pthread_cflags"
slouken@0
  1793
            SDL_LIBS="$SDL_LIBS $pthread_lib"
slouken@0
  1794
slouken@1438
  1795
            # Save the original compiler flags and libraries
slouken@1438
  1796
            ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
slouken@1438
  1797
            # Add the pthread compiler flags and libraries
slouken@1438
  1798
            CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
slouken@1438
  1799
slouken@0
  1800
            # Check to see if recursive mutexes are available
slouken@0
  1801
            AC_MSG_CHECKING(for recursive mutexes)
slouken@0
  1802
            has_recursive_mutexes=no
slouken@1324
  1803
            if test x$has_recursive_mutexes = xno; then
slouken@1324
  1804
                AC_TRY_COMPILE([
slouken@1324
  1805
                  #include <pthread.h>
slouken@1324
  1806
                ],[
slouken@1324
  1807
                  pthread_mutexattr_t attr;
slouken@1324
  1808
                  pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
slouken@1324
  1809
                ],[
slouken@1324
  1810
                has_recursive_mutexes=yes
icculus@5548
  1811
                AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX, 1, [ ])
slouken@1324
  1812
                ])
slouken@1324
  1813
            fi
slouken@1324
  1814
            if test x$has_recursive_mutexes = xno; then
slouken@1324
  1815
                AC_TRY_COMPILE([
slouken@1324
  1816
                  #include <pthread.h>
slouken@1324
  1817
                ],[
slouken@1324
  1818
                  pthread_mutexattr_t attr;
slouken@1324
  1819
                  pthread_mutexattr_setkind_np(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
slouken@1324
  1820
                ],[
slouken@1324
  1821
                has_recursive_mutexes=yes
icculus@5548
  1822
                AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP, 1, [ ])
slouken@1324
  1823
                ])
slouken@1324
  1824
            fi
slouken@0
  1825
            AC_MSG_RESULT($has_recursive_mutexes)
slouken@0
  1826
slouken@94
  1827
            # Check to see if pthread semaphore support is missing
slouken@94
  1828
            if test x$enable_pthread_sem = xyes; then
slouken@94
  1829
                AC_MSG_CHECKING(for pthread semaphores)
slouken@94
  1830
                have_pthread_sem=no
slouken@94
  1831
                AC_TRY_COMPILE([
slouken@94
  1832
                  #include <pthread.h>
slouken@94
  1833
                  #include <semaphore.h>
slouken@94
  1834
                ],[
slouken@94
  1835
                ],[
slouken@94
  1836
                have_pthread_sem=yes
slouken@94
  1837
                ])
slouken@94
  1838
                AC_MSG_RESULT($have_pthread_sem)
slouken@94
  1839
            fi
slouken@6219
  1840
            if test x$have_pthread_sem = xyes; then
slouken@6219
  1841
                AC_MSG_CHECKING(for sem_timedwait)
slouken@6219
  1842
                have_sem_timedwait=no
slouken@6219
  1843
                AC_TRY_LINK([
slouken@6219
  1844
                  #include <pthread.h>
slouken@6219
  1845
                  #include <semaphore.h>
slouken@6219
  1846
                ],[
slouken@6219
  1847
                  sem_timedwait(NULL, NULL);
slouken@6219
  1848
                ],[
slouken@6219
  1849
                have_sem_timedwait=yes
slouken@6219
  1850
                AC_DEFINE(HAVE_SEM_TIMEDWAIT)
slouken@6219
  1851
                ])
slouken@6219
  1852
                AC_MSG_RESULT($have_sem_timedwait)
slouken@6219
  1853
            fi
slouken@94
  1854
icculus@5965
  1855
            AC_MSG_CHECKING(for pthread_spin_trylock)
icculus@5965
  1856
            AC_TRY_LINK_FUNC(pthread_spin_trylock, [
icculus@5965
  1857
              has_pthread_spin_trylock=yes
icculus@5965
  1858
              AC_DEFINE(HAVE_PTHREAD_SPINLOCK, 1, [ ])
icculus@5965
  1859
            ],[
icculus@5965
  1860
              has_pthread_spin_trylock=no
icculus@5965
  1861
            ])
icculus@5965
  1862
            AC_MSG_RESULT($has_pthread_spin_trylock)
icculus@5965
  1863
icculus@6374
  1864
            AC_CHECK_HEADER(pthread_np.h, have_pthread_np_h=yes, have_pthread_np_h=no, [ #include <pthread.h> ])
icculus@5969
  1865
            if test x$have_pthread_np_h = xyes; then
icculus@5969
  1866
                AC_DEFINE(HAVE_PTHREAD_NP_H, 1, [ ])
icculus@5969
  1867
            fi
icculus@5969
  1868
icculus@5969
  1869
            # Check to see if pthread naming is available
icculus@5969
  1870
            AC_MSG_CHECKING(for pthread_setname_np)
icculus@5969
  1871
            AC_TRY_LINK_FUNC(pthread_setname_np, [
icculus@5969
  1872
              has_pthread_setname_np=yes
icculus@5969
  1873
              AC_DEFINE(HAVE_PTHREAD_SETNAME_NP, 1, [ ])
icculus@5969
  1874
            ],[
icculus@5969
  1875
              has_pthread_setname_np=no
icculus@5969
  1876
            ])
icculus@5969
  1877
            AC_MSG_RESULT($has_pthread_setname_np)
icculus@5969
  1878
icculus@5969
  1879
            AC_MSG_CHECKING(for pthread_set_name_np)
icculus@5969
  1880
            AC_TRY_LINK_FUNC(pthread_set_name_np, [
icculus@5969
  1881
              has_pthread_set_name_np=yes
icculus@5969
  1882
              AC_DEFINE(HAVE_PTHREAD_SET_NAME_NP, 1, [ ])
icculus@5969
  1883
            ],[
icculus@5969
  1884
              has_pthread_set_name_np=no
icculus@5969
  1885
            ])
icculus@5969
  1886
            AC_MSG_RESULT($has_pthread_set_name_np)
icculus@5969
  1887
slouken@1438
  1888
            # Restore the compiler flags and libraries
slouken@1438
  1889
            CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
slouken@1438
  1890
slouken@1361
  1891
            # Basic thread creation functions
slouken@1361
  1892
            SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_systhread.c"
slouken@0
  1893
slouken@1361
  1894
            # Semaphores
slouken@1361
  1895
            # We can fake these with mutexes and condition variables if necessary
slouken@1361
  1896
            if test x$have_pthread_sem = xyes; then
slouken@1361
  1897
                SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syssem.c"
slouken@1361
  1898
            else
slouken@1361
  1899
                SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syssem.c"
slouken@1361
  1900
            fi
slouken@0
  1901
slouken@1361
  1902
            # Mutexes
slouken@1361
  1903
            # We can fake these with semaphores if necessary
slouken@1361
  1904
            SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_sysmutex.c"
slouken@0
  1905
slouken@1361
  1906
            # Condition variables
slouken@1361
  1907
            # We can fake these with semaphores and mutexes if necessary
slouken@1361
  1908
            SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syscond.c"
slouken@399
  1909
slouken@1361
  1910
            have_threads=yes
slouken@814
  1911
        fi
slouken@814
  1912
    fi
slouken@814
  1913
}
slouken@814
  1914
slouken@5062
  1915
dnl Determine whether the compiler can produce Windows executables
slouken@5062
  1916
CheckWINDOWS()
slouken@0
  1917
{
slouken@5062
  1918
    AC_MSG_CHECKING(Windows compiler)
slouken@0
  1919
    have_win32_gcc=no
slouken@0
  1920
    AC_TRY_COMPILE([
slouken@0
  1921
     #include <windows.h>
slouken@0
  1922
    ],[
slouken@0
  1923
    ],[
slouken@0
  1924
    have_win32_gcc=yes
slouken@0
  1925
    ])
slouken@0
  1926
    AC_MSG_RESULT($have_win32_gcc)
slouken@0
  1927
    if test x$have_win32_gcc != xyes; then
slouken@0
  1928
       AC_MSG_ERROR([
slouken@5062
  1929
*** Your compiler ($CC) does not produce Windows executables!
slouken@0
  1930
       ])
slouken@0
  1931
    fi
slouken@0
  1932
slouken@3168
  1933
    AC_MSG_CHECKING(Windows CE)
slouken@3168
  1934
    have_wince=no
slouken@3168
  1935
    AC_TRY_COMPILE([
slouken@4569
  1936
#if !defined(_WIN32_WCE) && !defined(__MINGW32CE__)
slouken@3168
  1937
#error This is not Windows CE
slouken@3168
  1938
#endif
slouken@3168
  1939
    ],[
slouken@3168
  1940
    ],[
slouken@3168
  1941
    have_wince=yes
icculus@6430
  1942
       AC_MSG_ERROR([
icculus@6430
  1943
*** Sorry, Windows CE is no longer supported.
icculus@6431
  1944
       ])
slouken@3168
  1945
    ])
slouken@3168
  1946
    AC_MSG_RESULT($have_wince)
slouken@6116
  1947
slouken@6116
  1948
    # This fixes Windows stack alignment with newer GCC
slouken@6116
  1949
    CheckStackBoundary
slouken@0
  1950
}
slouken@0
  1951
slouken@0
  1952
dnl Find the DirectX includes and libraries
slouken@0
  1953
CheckDIRECTX()
slouken@0
  1954
{
slouken@0
  1955
    AC_ARG_ENABLE(directx,
slouken@5062
  1956
AC_HELP_STRING([--enable-directx], [use DirectX for Windows audio/video [[default=yes]]]),
slouken@0
  1957
                  , enable_directx=yes)
slouken@0
  1958
    if test x$enable_directx = xyes; then
slouken@1895
  1959
        AC_CHECK_HEADER(d3d9.h, have_d3d=yes)
slouken@3168
  1960
        AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
slouken@1361
  1961
        AC_CHECK_HEADER(dsound.h, have_dsound=yes)
slouken@2714
  1962
        AC_CHECK_HEADER(dinput.h, have_dinput=yes)
icculus@5592
  1963
        AC_CHECK_HEADER(xaudio2.h, have_xaudio2=yes)
slouken@0
  1964
    fi
slouken@158
  1965
}
slouken@158
  1966
slouken@294
  1967
dnl Check for the dlfcn.h interface for dynamically loading objects
slouken@294
  1968
CheckDLOPEN()
slouken@294
  1969
{
slouken@731
  1970
    AC_ARG_ENABLE(sdl-dlopen,
slouken@1637
  1971
AC_HELP_STRING([--enable-sdl-dlopen], [use dlopen for shared object loading [[default=yes]]]),
slouken@731
  1972
                  , enable_sdl_dlopen=yes)
slouken@731
  1973
    if test x$enable_sdl_dlopen = xyes; then
slouken@294
  1974
        AC_MSG_CHECKING(for dlopen)
slouken@1361
  1975
        have_dlopen=no
slouken@294
  1976
        AC_TRY_COMPILE([
slouken@294
  1977
         #include <dlfcn.h>
slouken@294
  1978
        ],[
slouken@1638
  1979
         #if defined(MAC_OS_X_VERSION_MIN_REQUIRED) && MAC_OS_X_VERSION_MIN_REQUIRED <= 1020
slouken@1638
  1980
         #error Use dlcompat for Mac OS X 10.2 compatibility
slouken@1638
  1981
         #endif
slouken@294
  1982
        ],[
slouken@1361
  1983
        have_dlopen=yes
slouken@294
  1984
        ])
slouken@1361
  1985
        AC_MSG_RESULT($have_dlopen)
slouken@294
  1986
slouken@1361
  1987
        if test x$have_dlopen = xyes; then
slouken@1521
  1988
            AC_CHECK_LIB(c, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS",
slouken@1521
  1989
               AC_CHECK_LIB(dl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldl",
slouken@1521
  1990
                  AC_CHECK_LIB(ltdl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lltdl")))
icculus@5548
  1991
            AC_DEFINE(SDL_LOADSO_DLOPEN, 1, [ ])
slouken@1361
  1992
            SOURCES="$SOURCES $srcdir/src/loadso/dlopen/*.c"
slouken@1361
  1993
            have_loadso=yes
slouken@294
  1994
        fi
slouken@294
  1995
    fi
slouken@294
  1996
}
slouken@294
  1997
slouken@381
  1998
dnl Check for the usbhid(3) library on *BSD
slouken@381
  1999
CheckUSBHID()
slouken@381
  2000
{
slouken@381
  2001
    if test x$enable_joystick = xyes; then
slouken@1565
  2002
        AC_CHECK_LIB(usbhid, hid_init, have_libusbhid=yes)
slouken@1565
  2003
        if test x$have_libusbhid = xyes; then
slouken@1565
  2004
            AC_CHECK_HEADER(usbhid.h, [USB_CFLAGS="-DHAVE_USBHID_H"])
slouken@1565
  2005
            AC_CHECK_HEADER(libusbhid.h, [USB_CFLAGS="-DHAVE_LIBUSBHID_H"])
slouken@1565
  2006
            USB_LIBS="$USB_LIBS -lusbhid"
slouken@1565
  2007
        else
slouken@1565
  2008
            AC_CHECK_HEADER(usb.h, [USB_CFLAGS="-DHAVE_USB_H"])
slouken@1565
  2009
            AC_CHECK_HEADER(libusb.h, [USB_CFLAGS="-DHAVE_LIBUSB_H"])
slouken@1565
  2010
            AC_CHECK_LIB(usb, hid_init, [USB_LIBS="$USB_LIBS -lusb"])
slouken@1565
  2011
        fi
slouken@1361
  2012
            
slouken@1361
  2013
        save_CFLAGS="$CFLAGS"
slouken@1361
  2014
        CFLAGS="$CFLAGS $USB_CFLAGS"
slouken@381
  2015
slouken@381
  2016
        AC_MSG_CHECKING(for usbhid)
slouken@381
  2017
        have_usbhid=no
slouken@381
  2018
        AC_TRY_COMPILE([
slouken@404
  2019
          #include <sys/types.h>
slouken@403
  2020
          #if defined(HAVE_USB_H)
slouken@403
  2021
          #include <usb.h>
slouken@403
  2022
          #endif
slouken@1565
  2023
          #ifdef __DragonFly__
slouken@1565
  2024
          # include <bus/usb/usb.h>
slouken@1565
  2025
          # include <bus/usb/usbhid.h>
slouken@1565
  2026
          #else
slouken@1565
  2027
          # include <dev/usb/usb.h>
slouken@1565
  2028
          # include <dev/usb/usbhid.h>
slouken@1565
  2029
          #endif
slouken@381
  2030
          #if defined(HAVE_USBHID_H)
slouken@381
  2031
          #include <usbhid.h>
slouken@381
  2032
          #elif defined(HAVE_LIBUSB_H)
slouken@381
  2033
          #include <libusb.h>
slouken@381
  2034
          #elif defined(HAVE_LIBUSBHID_H)
slouken@381
  2035
          #include <libusbhid.h>
slouken@404
  2036
          #endif
slouken@381
  2037
        ],[
slouken@381
  2038
          struct report_desc *repdesc;
slouken@381
  2039
          struct usb_ctl_report *repbuf;
slouken@402
  2040
          hid_kind_t hidkind;
slouken@381
  2041
        ],[
slouken@381
  2042
        have_usbhid=yes
slouken@381
  2043
        ])
slouken@381
  2044
        AC_MSG_RESULT($have_usbhid)
slouken@381
  2045
slouken@381
  2046
        if test x$have_usbhid = xyes; then
slouken@381
  2047
            AC_MSG_CHECKING(for ucr_data member of usb_ctl_report)
slouken@381
  2048
            have_usbhid_ucr_data=no
slouken@381
  2049
            AC_TRY_COMPILE([
slouken@404
  2050
              #include <sys/types.h>
slouken@404
  2051
              #if defined(HAVE_USB_H)
slouken@404
  2052
              #include <usb.h>
slouken@404
  2053
              #endif
slouken@1565
  2054
              #ifdef __DragonFly__
slouken@1565
  2055
              # include <bus/usb/usb.h>
slouken@1565
  2056
              # include <bus/usb/usbhid.h>
slouken@1565
  2057
              #else
slouken@1565
  2058
              # include <dev/usb/usb.h>
slouken@1565
  2059
              # include <dev/usb/usbhid.h>
slouken@1565
  2060
              #endif
slouken@381
  2061
              #if defined(HAVE_USBHID_H)
slouken@381
  2062
              #include <usbhid.h>
slouken@381
  2063
              #elif defined(HAVE_LIBUSB_H)
slouken@381
  2064
              #include <libusb.h>
slouken@381
  2065
              #elif defined(HAVE_LIBUSBHID_H)
slouken@381
  2066
              #include <libusbhid.h>
slouken@381
  2067
              #endif
slouken@381
  2068
            ],[
slouken@381
  2069
              struct usb_ctl_report buf;
slouken@381
  2070
              if (buf.ucr_data) { }
slouken@381
  2071
            ],[
slouken@381
  2072
            have_usbhid_ucr_data=yes
slouken@381
  2073
            ])
slouken@381
  2074
            if test x$have_usbhid_ucr_data = xyes; then
slouken@1361
  2075
                USB_CFLAGS="$USB_CFLAGS -DUSBHID_UCR_DATA"
slouken@381
  2076
            fi
slouken@381
  2077
            AC_MSG_RESULT($have_usbhid_ucr_data)
slouken@407
  2078
            
slouken@1361
  2079
            AC_MSG_CHECKING(for new usbhid API)
slouken@407
  2080
            have_usbhid_new=no
slouken@407
  2081
            AC_TRY_COMPILE([
slouken@407
  2082
              #include <sys/types.h>
slouken@407
  2083
              #if defined(HAVE_USB_H)
slouken@407
  2084
              #include <usb.h>
slouken@407
  2085
              #endif
slouken@3392
  2086
              #ifdef __DragonFly__
slouken@2158
  2087
              #include <bus/usb/usb.h>
slouken@2158
  2088
              #include <bus/usb/usbhid.h>
slouken@3392
  2089
              #else
slouken@407
  2090
              #include <dev/usb/usb.h>
slouken@407
  2091
              #include <dev/usb/usbhid.h>
slouken@3392
  2092
              #endif
slouken@407
  2093
              #if defined(HAVE_USBHID_H)
slouken@407
  2094
              #include <usbhid.h>
slouken@407
  2095
              #elif defined(HAVE_LIBUSB_H)
slouken@407
  2096
              #include <libusb.h>
slouken@407
  2097
              #elif defined(HAVE_LIBUSBHID_H)
slouken@407
  2098
              #include <libusbhid.h>
slouken@407
  2099
              #endif
slouken@407
  2100
            ],[
slouken@407
  2101
              report_desc_t d;
slouken@1361
  2102
              hid_start_parse(d, 1, 1);
slouken@407
  2103
            ],[
slouken@407
  2104
            have_usbhid_new=yes
slouken@407
  2105
            ])
slouken@407
  2106
            if test x$have_usbhid_new = xyes; then
slouken@1361
  2107
                USB_CFLAGS="$USB_CFLAGS -DUSBHID_NEW"
slouken@407
  2108
            fi
slouken@407
  2109
            AC_MSG_RESULT($have_usbhid_new)
slouken@381
  2110
slouken@1565
  2111
            AC_MSG_CHECKING(for struct joystick in machine/joystick.h)
slouken@1565
  2112
            have_machine_joystick=no
slouken@1565
  2113
            AC_TRY_COMPILE([
slouken@1565
  2114
              #include <machine/joystick.h>
slouken@1565
  2115
            ],[
slouken@1565
  2116
              struct joystick t;
slouken@1565
  2117
            ],[
slouken@1565
  2118
            have_machine_joystick=yes
slouken@1565
  2119
            ])
slouken@1565
  2120
            if test x$have_machine_joystick = xyes; then
icculus@5548
  2121
                AC_DEFINE(SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H, 1, [ ])
slouken@1565
  2122
            fi
slouken@1565
  2123
            AC_MSG_RESULT($have_machine_joystick)
slouken@1565
  2124
icculus@5548
  2125
            AC_DEFINE(SDL_JOYSTICK_USBHID, 1, [ ])
slouken@1361
  2126
            SOURCES="$SOURCES $srcdir/src/joystick/bsd/*.c"
slouken@1521
  2127
            EXTRA_CFLAGS="$EXTRA_CFLAGS $USB_CFLAGS"
slouken@1521
  2128
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS $USB_LIBS"
slouken@1361
  2129
            have_joystick=yes
slouken@381
  2130
        fi
slouken@1361
  2131
        CFLAGS="$save_CFLAGS"
slouken@381
  2132
    fi
slouken@381
  2133
}
slouken@381
  2134
slouken@1361
  2135
dnl Check for clock_gettime()
slouken@1361
  2136
CheckClockGettime()
slouken@795
  2137
{
slouken@1361
  2138
    AC_ARG_ENABLE(clock_gettime,
slouken@1637
  2139
AC_HELP_STRING([--enable-clock_gettime], [use clock_gettime() instead of gettimeofday() on UNIX [[default=no]]]),
slouken@1361
  2140
                  , enable_clock_gettime=no)
slouken@1361
  2141
    if test x$enable_clock_gettime = xyes; then
slouken@1361
  2142
        AC_CHECK_LIB(rt, clock_gettime, have_clock_gettime=yes)
slouken@1361
  2143
        if test x$have_clock_gettime = xyes; then
icculus@5548
  2144
            AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [ ])
slouken@1521
  2145
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lrt"
slouken@3087
  2146
        else
slouken@3087
  2147
            AC_CHECK_LIB(c, clock_gettime, have_clock_gettime=yes)
slouken@3087
  2148
            if test x$have_clock_gettime = xyes; then
icculus@5548
  2149
               AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [ ])
slouken@3087
  2150
               EXTRA_LDFLAGS="$EXTRA_LDFLAGS"
slouken@3087
  2151
            fi
icculus@1175
  2152
        fi
slouken@795
  2153
    fi
slouken@795
  2154
}
slouken@795
  2155
slouken@1062
  2156
dnl Check for a valid linux/version.h
slouken@1062
  2157
CheckLinuxVersion()
slouken@1062
  2158
{
slouken@1062
  2159
    AC_CHECK_HEADER(linux/version.h, have_linux_version_h=yes)
slouken@1062
  2160
    if test x$have_linux_version_h = xyes; then
slouken@1521
  2161
        EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_LINUX_VERSION_H"
slouken@1062
  2162
    fi
slouken@1062
  2163
}
slouken@1062
  2164
slouken@1127
  2165
dnl Check if we want to use RPATH
slouken@1127
  2166
CheckRPATH()
slouken@1127
  2167
{
slouken@1127
  2168
    AC_ARG_ENABLE(rpath,
slouken@1637
  2169
AC_HELP_STRING([--enable-rpath], [use an rpath when linking SDL [[default=yes]]]),
slouken@1127
  2170
                  , enable_rpath=yes)
slouken@1127
  2171
}
slouken@1127
  2172
slouken@1550
  2173
dnl Set up the configuration based on the host platform!
slouken@1550
  2174
case "$host" in
slouken@5411
  2175
    *-*-linux*|*-*-uclinux*|*-*-gnu*|*-*-k*bsd*-gnu|*-*-bsdi*|*-*-freebsd*|*-*-dragonfly*|*-*-netbsd*|*-*-openbsd*|*-*-sysv5*|*-*-solaris*|*-*-hpux*|*-*-aix*|*-*-minix*)
slouken@1550
  2176
        case "$host" in
slouken@1361
  2177
            *-*-linux*)         ARCH=linux ;;
slouken@1820
  2178
            *-*-uclinux*)       ARCH=linux ;;
slouken@1361
  2179
            *-*-kfreebsd*-gnu)  ARCH=kfreebsd-gnu ;;
slouken@1361
  2180
            *-*-knetbsd*-gnu)   ARCH=knetbsd-gnu ;;
slouken@1361
  2181
            *-*-kopenbsd*-gnu)  ARCH=kopenbsd-gnu ;;
slouken@1361
  2182
            *-*-gnu*)           ARCH=gnu ;; # must be last of the gnu variants
slouken@1361
  2183
            *-*-bsdi*)          ARCH=bsdi ;;
slouken@1361
  2184
            *-*-freebsd*)       ARCH=freebsd ;;
slouken@1565
  2185
            *-*-dragonfly*)     ARCH=freebsd ;;
slouken@1361
  2186
            *-*-netbsd*)        ARCH=netbsd ;;
slouken@1361
  2187
            *-*-openbsd*)       ARCH=openbsd ;;
slouken@1361
  2188
            *-*-sysv5*)         ARCH=sysv5 ;;
slouken@1361
  2189
            *-*-solaris*)       ARCH=solaris ;;
slouken@1361
  2190
            *-*-hpux*)          ARCH=hpux ;;
slouken@1361
  2191
            *-*-aix*)           ARCH=aix ;;
slouken@2775
  2192
            *-*-minix*)         ARCH=minix ;;
slouken@795
  2193
        esac
icculus@1573
  2194
        CheckVisibilityHidden
slouken@1
  2195
        CheckDummyVideo
slouken@68
  2196
        CheckDiskAudio
icculus@1532
  2197
        CheckDummyAudio
slouken@371
  2198
        CheckDLOPEN
slouken@0
  2199
        CheckOSS
slouken@0
  2200
        CheckALSA
icculus@2271
  2201
        CheckPulseAudio
slouken@0
  2202
        CheckARTSC
slouken@0
  2203
        CheckESD
slouken@0
  2204
        CheckNAS
slouken@0
  2205
        CheckX11
slouken@167
  2206
        CheckDirectFB
slouken@2947
  2207
        CheckFusionSound
icculus@1191
  2208
        CheckOpenGLX11
slouken@6188
  2209
        CheckOpenGLESX11
icculus@6734
  2210
        CheckLibUDev
slouken@0
  2211
        CheckInputEvents
icculus@1201
  2212
        CheckTslib
slouken@1361
  2213
        CheckUSBHID
slouken@0
  2214
        CheckPTHREAD
slouken@1361
  2215
        CheckClockGettime
slouken@1062
  2216
        CheckLinuxVersion
slouken@1127
  2217
        CheckRPATH
slouken@1361
  2218
        # Set up files for the audio library
slouken@1361
  2219
        if test x$enable_audio = xyes; then
slouken@1361
  2220
          case $ARCH in
slouken@1565
  2221
            sysv5|solaris|hpux)
icculus@5548
  2222
                AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO, 1, [ ])
slouken@1361
  2223
                SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
slouken@1361
  2224
                have_audio=yes
slouken@1361
  2225
            ;;
slouken@1565
  2226
            netbsd|openbsd)
icculus@5548
  2227
                AC_DEFINE(SDL_AUDIO_DRIVER_BSD, 1, [ ])
slouken@1567
  2228
                SOURCES="$SOURCES $srcdir/src/audio/bsd/*.c"
slouken@1361
  2229
                have_audio=yes
slouken@1361
  2230
            ;;
slouken@1361
  2231
            aix)
icculus@5548
  2232
                AC_DEFINE(SDL_AUDIO_DRIVER_PAUDIO, 1, [ ])
slouken@1361
  2233
                SOURCES="$SOURCES $srcdir/src/audio/paudio/*.c"
slouken@1361
  2234
                have_audio=yes
slouken@1361
  2235
            ;;
slouken@1361
  2236
          esac
slouken@371
  2237
        fi
slouken@0
  2238
        # Set up files for the joystick library
slouken@0
  2239
        if test x$enable_joystick = xyes; then
slouken@1361
  2240
          case $ARCH in
slouken@1361
  2241
            linux)
icculus@5548
  2242
                AC_DEFINE(SDL_JOYSTICK_LINUX, 1, [ ])
slouken@1361
  2243
                SOURCES="$SOURCES $srcdir/src/joystick/linux/*.c"
slouken@1361
  2244
                have_joystick=yes
slouken@1361
  2245
            ;;
slouken@1361
  2246
          esac
slouken@0
  2247
        fi
slouken@2713
  2248
        # Set up files for the haptic library
slouken@2713
  2249
        if test x$enable_haptic = xyes; then
slouken@2713
  2250
           if test x$use_input_events = xyes; then
slouken@2713
  2251
             case $ARCH in
slouken@2713
  2252
               linux)
icculus@5548
  2253
                   AC_DEFINE(SDL_HAPTIC_LINUX, 1, [ ])
slouken@2713
  2254
                   SOURCES="$SOURCES $srcdir/src/haptic/linux/*.c"
slouken@2713
  2255
                   have_haptic=yes
slouken@2713
  2256
               ;;
slouken@2713
  2257
             esac
slouken@2713
  2258
           fi
slouken@2713
  2259
        fi
icculus@3170
  2260
        # Set up files for the power library
icculus@3170
  2261
        if test x$enable_power = xyes; then
icculus@3170
  2262
             case $ARCH in
icculus@3170
  2263
               linux)
icculus@5548
  2264
                   AC_DEFINE(SDL_POWER_LINUX, 1, [ ])
icculus@3170
  2265
                   SOURCES="$SOURCES $srcdir/src/power/linux/*.c"
icculus@3170
  2266
                   have_power=yes
icculus@3170
  2267
               ;;
icculus@3170
  2268
             esac
icculus@3170
  2269
        fi
slouken@0
  2270
        # Set up files for the timer library
slouken@0
  2271
        if test x$enable_timers = xyes; then
icculus@5548
  2272
            AC_DEFINE(SDL_TIMER_UNIX, 1, [ ])
slouken@1361
  2273
            SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
slouken@1361
  2274
            have_timers=yes
slouken@0
  2275
        fi
slouken@0
  2276
        ;;
slouken@0
  2277
    *-*-cygwin* | *-*-mingw32*)
slouken@0
  2278
        ARCH=win32
slouken@1550
  2279
        if test "$build" != "$host"; then # cross-compiling
slouken@0
  2280
            # Default cross-compile location
slouken@4476
  2281
            ac_default_prefix=/usr/local/cross-tools/$host
slouken@0
  2282
        else
slouken@0
  2283
            # Look for the location of the tools and install there
slouken@750
  2284
            if test "$BUILD_PREFIX" != ""; then
slouken@1
  2285
                ac_default_prefix=$BUILD_PREFIX
slouken@1
  2286
            fi
slouken@0
  2287
        fi
slouken@1
  2288
        CheckDummyVideo
slouken@68
  2289
        CheckDiskAudio
icculus@1532
  2290
        CheckDummyAudio
slouken@5062
  2291
        CheckWINDOWS
slouken@5062
  2292
        CheckWINDOWSGL
slouken@0
  2293
        CheckDIRECTX
slouken@5093
  2294
slouken@5093
  2295
        # Set up the core platform files
slouken@5093
  2296
        SOURCES="$SOURCES $srcdir/src/core/windows/*.c"
slouken@5093
  2297
slouken@1895
  2298
        # Set up files for the video library
slouken@1895
  2299
        if test x$enable_video = xyes; then
icculus@5548
  2300
            AC_DEFINE(SDL_VIDEO_DRIVER_WINDOWS, 1, [ ])
slouken@5062
  2301
            SOURCES="$SOURCES $srcdir/src/video/windows/*.c"
slouken@1895
  2302
            have_video=yes
slouken@1895
  2303
            AC_ARG_ENABLE(render-d3d,
slouken@1895
  2304
AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[default=yes]]]),
slouken@1895
  2305
                                , enable_render_d3d=yes)
slouken@1895
  2306
            if test x$enable_render_d3d = xyes -a x$have_d3d = xyes; then
icculus@5548
  2307
                AC_DEFINE(SDL_VIDEO_RENDER_D3D, 1, [ ])
slouken@1895
  2308
            fi
slouken@1895
  2309
        fi
slouken@0
  2310
        # Set up files for the audio library
slouken@0
  2311
        if test x$enable_audio = xyes; then
icculus@5588
  2312
            AC_DEFINE(SDL_AUDIO_DRIVER_WINMM, 1, [ ])
icculus@5588
  2313
            SOURCES="$SOURCES $srcdir/src/audio/winmm/*.c"
slouken@1895
  2314
            if test x$have_dsound = xyes; then
icculus@5548
  2315
                AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND, 1, [ ])
icculus@5587
  2316
                SOURCES="$SOURCES $srcdir/src/audio/directsound/*.c"
nathanheisey@5557
  2317
            fi
icculus@5592
  2318
            if test x$have_xaudio2 = xyes; then
icculus@5592
  2319
                AC_DEFINE(SDL_AUDIO_DRIVER_XAUDIO2, 1, [ ])
icculus@5592
  2320
                SOURCES="$SOURCES $srcdir/src/audio/xaudio2/*.c"
slouken@0
  2321
            fi
slouken@1361
  2322
            have_audio=yes
slouken@0
  2323
        fi
slouken@0
  2324
        # Set up files for the joystick library
slouken@0
  2325
        if test x$enable_joystick = xyes; then
slouken@1895
  2326
            if test x$have_dinput = xyes; then
icculus@5548
  2327
                AC_DEFINE(SDL_JOYSTICK_DINPUT, 1, [ ])
slouken@5062
  2328
                SOURCES="$SOURCES $srcdir/src/joystick/windows/SDL_dxjoystick.c"
slouken@4894
  2329
                EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldinput8 -ldxguid -ldxerr8"
slouken@1895
  2330
            else
icculus@5548
  2331
                AC_DEFINE(SDL_JOYSTICK_WINMM, 1, [ ])
slouken@5062
  2332
                SOURCES="$SOURCES $srcdir/src/joystick/windows/SDL_mmjoystick.c"
slouken@1895
  2333
            fi
slouken@1361
  2334
            have_joystick=yes
slouken@0
  2335
        fi
slouken@2713
  2336
        if test x$enable_haptic = xyes; then
slouken@2713
  2337
            if test x$have_dinput = xyes; then
icculus@5548
  2338
                AC_DEFINE(SDL_HAPTIC_DINPUT, 1, [ ])
slouken@5062
  2339
                SOURCES="$SOURCES $srcdir/src/haptic/windows/SDL_syshaptic.c"
slouken@2713
  2340
                have_haptic=yes
slouken@2713
  2341
            fi
slouken@2713
  2342
        fi
icculus@3170
  2343
        if test x$enable_power = xyes; then
icculus@5548
  2344
            AC_DEFINE(SDL_POWER_WINDOWS, 1, [ ])
icculus@3170
  2345
            SOURCES="$SOURCES $srcdir/src/power/windows/SDL_syspower.c"
icculus@3170
  2346
            have_power=yes
icculus@3170
  2347
        fi
slouken@0
  2348
        # Set up files for the thread library
slouken@0
  2349
        if test x$enable_threads = xyes; then
icculus@5548
  2350
            AC_DEFINE(SDL_THREAD_WINDOWS, 1, [ ])
slouken@5062
  2351
            SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_sysmutex.c"
slouken@5062
  2352
            SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_syssem.c"
slouken@5062
  2353
            SOURCES="$SOURCES $srcdir/src/thread/windows/SDL_systhread.c"
slouken@1361
  2354
            SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
slouken@1361
  2355
            have_threads=yes
slouken@0
  2356
        fi
slouken@0
  2357
        # Set up files for the timer library
slouken@0
  2358
        if test x$enable_timers = xyes; then
icculus@5548
  2359
            AC_DEFINE(SDL_TIMER_WINDOWS, 1, [ ])
slouken@5062
  2360
            SOURCES="$SOURCES $srcdir/src/timer/windows/*.c"
slouken@1361
  2361
            have_timers=yes
slouken@1361
  2362
        fi
slouken@1361
  2363
        # Set up files for the shared object loading library
slouken@1361
  2364
        if test x$enable_loadso = xyes; then
icculus@5548
  2365
            AC_DEFINE(SDL_LOADSO_WINDOWS, 1, [ ])
slouken@5062
  2366
            SOURCES="$SOURCES $srcdir/src/loadso/windows/*.c"
slouken@1361
  2367
            have_loadso=yes
slouken@1361
  2368
        fi
slouken@1361
  2369
        # Set up the system libraries we need
slouken@6250
  2370
        # SDL is unicode, and unicows emulates this on Windows 98/ME
slouken@3082
  2371
        # You can get this here: http://libunicows.sourceforge.net/
slouken@3082
  2372
        #EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lunicows"
slouken@5448
  2373
        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lversion -luuid"
slouken@5062
  2374
        # The Windows platform requires special setup
slouken@5062
  2375
        VERSION_SOURCES="$srcdir/src/main/windows/*.rc"
slouken@5062
  2376
        SDLMAIN_SOURCES="$srcdir/src/main/windows/*.c"
slouken@0
  2377
        SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
slouken@6250
  2378
        SDL_LIBS="-lmingw32 -lSDL2main $SDL_LIBS -mwindows"
slouken@0
  2379
        ;;
slouken@3292
  2380
    *-*-beos* | *-*-haiku*)
slouken@0
  2381
        ARCH=beos
slouken@0
  2382
        ac_default_prefix=/boot/develop/tools/gnupro
slouken@1
  2383
        CheckDummyVideo
slouken@68
  2384
        CheckDiskAudio
icculus@1532
  2385
        CheckDummyAudio
slouken@0
  2386
        CheckBWINDOW
slouken@0
  2387
        CheckBeGL
slouken@0
  2388
        # Set up files for the audio library
slouken@0
  2389
        if test x$enable_audio = xyes; then
icculus@5548
  2390
            AC_DEFINE(SDL_AUDIO_DRIVER_BEOSAUDIO, 1, [ ])
slouken@1361
  2391
            SOURCES="$SOURCES $srcdir/src/audio/baudio/*.cc"
slouken@1361
  2392
            have_audio=yes
slouken@0
  2393
        fi
slouken@0
  2394
        # Set up files for the joystick library
slouken@0
  2395
        if test x$enable_joystick = xyes; then
icculus@5548
  2396
            AC_DEFINE(SDL_JOYSTICK_BEOS, 1, [ ])
slouken@1361
  2397
            SOURCES="$SOURCES $srcdir/src/joystick/beos/*.cc"
slouken@1361
  2398
            have_joystick=yes
slouken@0
  2399
        fi
slouken@0
  2400
        # Set up files for the thread library
slouken@0
  2401
        if test x$enable_threads = xyes; then
icculus@5548
  2402
            AC_DEFINE(SDL_THREAD_BEOS, 1, [ ])
slouken@1361
  2403
            SOURCES="$SOURCES $srcdir/src/thread/beos/*.c"
slouken@1361
  2404
            SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_sysmutex.c"
slouken@1361
  2405
            SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
slouken@1361
  2406
            have_threads=yes
slouken@0
  2407
        fi
slouken@0
  2408
        # Set up files for the timer library
slouken@0
  2409
        if test x$enable_timers = xyes; then
icculus@5548
  2410
            AC_DEFINE(SDL_TIMER_BEOS, 1, [ ])
slouken@1361
  2411
            SOURCES="$SOURCES $srcdir/src/timer/beos/*.c"
slouken@1361
  2412
            have_timers=yes
slouken@1361
  2413
        fi
slouken@1361
  2414
        # Set up files for the shared object loading library
slouken@1361
  2415
        if test x$enable_loadso = xyes; then
icculus@5548
  2416
            AC_DEFINE(SDL_LOADSO_BEOS, 1, [ ])
slouken@1361
  2417
            SOURCES="$SOURCES $srcdir/src/loadso/beos/*.c"
slouken@1361
  2418
            have_loadso=yes
slouken@0
  2419
        fi
icculus@3173
  2420
        # Set up files for the system power library
icculus@3173
  2421
        if test x$enable_power = xyes; then
icculus@5548
  2422
            AC_DEFINE(SDL_POWER_BEOS, 1, [ ])
icculus@3173
  2423
            SOURCES="$SOURCES $srcdir/src/power/beos/*.c"
icculus@3173
  2424
            have_power=yes
icculus@3173
  2425
        fi
slouken@1367
  2426
        # The BeOS platform requires special setup.
slouken@1367
  2427
        SOURCES="$srcdir/src/main/beos/*.cc $SOURCES"
slouken@1521
  2428
        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding"
slouken@0
  2429
        ;;
slouken@6329
  2430
    arm*-apple-darwin*)
slouken@6329
  2431
        # iOS - We are not writing anything to confdefs.h because you have to replace
slouken@6329
  2432
        # SDL_config.h for SDL_config_iphoneos.h anyway
slouken@6329
  2433
        ARCH=ios
slouken@6329
  2434
slouken@6329
  2435
        CheckVisibilityHidden
slouken@6329
  2436
        CheckDummyVideo
slouken@6329
  2437
        CheckDiskAudio
slouken@6329
  2438
        CheckDummyAudio
slouken@6329
  2439
        CheckDLOPEN
slouken@6329
  2440
        CheckCOCOA
slouken@6329
  2441
        CheckPTHREAD
slouken@6329
  2442
slouken@6329
  2443
slouken@6329
  2444
        # Set up files for the audio library
slouken@6329
  2445
        if test x$enable_audio = xyes; then
slouken@6329
  2446
            SOURCES="$SOURCES $srcdir/src/audio/coreaudio/*.c"
slouken@6329
  2447
            have_audio=yes
slouken@6329
  2448
        fi
slouken@6329
  2449
        # Set up files for the joystick library
slouken@6329
  2450
        if test x$enable_joystick = xyes; then
slouken@6329
  2451
            SOURCES="$SOURCES $srcdir/src/joystick/iphoneos/*.m"
slouken@6329
  2452
            have_joystick=yes
slouken@6329
  2453
        fi
slouken@6329
  2454
        # Set up files for the haptic library
slouken@6329
  2455
        #if test x$enable_haptic = xyes; then
slouken@6329
  2456
        #    SOURCES="$SOURCES $srcdir/src/haptic/darwin/*.c"
slouken@6329
  2457
        #    have_haptic=yes
slouken@6329
  2458
        #    EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,ForceFeedback"
slouken@6329
  2459
        #fi
slouken@6329
  2460
        # Set up files for the power library
slouken@6329
  2461
        if test x$enable_power = xyes; then
slouken@6329
  2462
            SOURCES="$SOURCES $srcdir/src/power/uikit/*.m"
slouken@6329
  2463
            have_power=yes
slouken@6329
  2464
        fi
slouken@6329
  2465
        # Set up files for the timer library
slouken@6329
  2466
        if test x$enable_timers = xyes; then
slouken@6329
  2467
            SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
slouken@6329
  2468
            have_timers=yes
slouken@6329
  2469
        fi
slouken@6329
  2470
        # Set up additional files for the file library
slouken@6329
  2471
        if test x$enable_file = xyes; then
slouken@6329
  2472
            SOURCES="$SOURCES $srcdir/src/file/cocoa/*.m"
slouken@6329
  2473
        fi
slouken@6329
  2474
        # The iOS platform requires special setup.
slouken@6329
  2475
        SOURCES="$SOURCES $srcdir/src/video/uikit/*.m"
slouken@6329
  2476
        SOURCES="$SOURCES $srcdir/src/video/uikit/*.c"
slouken@6329
  2477
        ;;
slouken@0
  2478
    *-*-darwin* )
icculus@1133
  2479
        # This could be either full "Mac OS X", or plain "Darwin" which is
slouken@158
  2480
        # just the OS X kernel sans upper layers like Carbon and Cocoa.
icculus@1133
  2481
        # Next line is broken, and a few files below require Mac OS X (full)
slouken@158
  2482
        ARCH=macosx
slouken@1624
  2483
slouken@1628
  2484
        # Mac OS X builds with both the Carbon and OSX APIs at the moment
slouken@1638
  2485
        EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_CARBON"
slouken@1638
  2486
        EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_OSX"
slouken@1628
  2487
slouken@1742
  2488
        CheckVisibilityHidden
slouken@1
  2489
        CheckDummyVideo
slouken@68
  2490
        CheckDiskAudio
icculus@1532
  2491
        CheckDummyAudio
slouken@1638
  2492
        CheckDLOPEN
icculus@1133
  2493
        CheckCOCOA
icculus@1174
  2494
        CheckX11
slouken@0
  2495
        CheckMacGL
icculus@1191
  2496
        CheckOpenGLX11
slouken@0
  2497
        CheckPTHREAD
icculus@1445
  2498
slouken@2238
  2499
        # Good optimization on Mac OS X, yes...
slouken@2238
  2500
        EXTRA_CFLAGS="$EXTRA_CFLAGS -falign-loops=16"
slouken@2238
  2501
icculus@1445
  2502
        # Need this or things might misbuild on a G3.
slouken@1521
  2503
        EXTRA_CFLAGS="$EXTRA_CFLAGS -force_cpusubtype_ALL"
icculus@1445
  2504
slouken@0
  2505
        # Set up files for the audio library
slouken@0
  2506
        if test x$enable_audio = xyes; then
icculus@5548
  2507
            AC_DEFINE(SDL_AUDIO_DRIVER_COREAUDIO, 1, [ ])
icculus@5596
  2508
            SOURCES="$SOURCES $srcdir/src/audio/coreaudio/*.c"
slouken@1361
  2509
            have_audio=yes
slouken@0
  2510
        fi
slouken@0
  2511
        # Set up files for the joystick library
slouken@0
  2512
        if test x$enable_joystick = xyes; then
icculus@5548
  2513
            AC_DEFINE(SDL_JOYSTICK_IOKIT, 1, [ ])
slouken@1361
  2514
            SOURCES="$SOURCES $srcdir/src/joystick/darwin/*.c"
slouken@1361
  2515
            have_joystick=yes
slouken@0
  2516
        fi
slouken@2713
  2517
        # Set up files for the haptic library
slouken@2713
  2518
        if test x$enable_haptic = xyes; then
icculus@5548
  2519
            AC_DEFINE(SDL_HAPTIC_IOKIT, 1, [ ])
slouken@2713
  2520
            SOURCES="$SOURCES $srcdir/src/haptic/darwin/*.c"
slouken@2713
  2521
            have_haptic=yes
icculus@3623
  2522
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,ForceFeedback"
slouken@2713
  2523
        fi
icculus@3170
  2524
        # Set up files for the power library
icculus@3170
  2525
        if test x$enable_power = xyes; then
icculus@5548
  2526
            AC_DEFINE(SDL_POWER_MACOSX, 1, [ ])
icculus@3170
  2527
            SOURCES="$SOURCES $srcdir/src/power/macosx/*.c"
icculus@3170
  2528
            have_power=yes
icculus@3170
  2529
        fi
slouken@0
  2530
        # Set up files for the timer library
slouken@0
  2531
        if test x$enable_timers = xyes; then
icculus@5548
  2532
            AC_DEFINE(SDL_TIMER_UNIX, 1, [ ])
slouken@1361
  2533
            SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
slouken@1361
  2534
            have_timers=yes
slouken@1361
  2535
        fi
slouken@4454
  2536
        # Set up additional files for the file library
slouken@4454
  2537
        if test x$enable_file = xyes; then
slouken@4454
  2538
            SOURCES="$SOURCES $srcdir/src/file/cocoa/*.m"
slouken@4454
  2539
        fi
slouken@1621
  2540
        # The Mac OS X platform requires special setup.
slouken@1521
  2541
        EXTRA_CFLAGS="$EXTRA_CFLAGS -fpascal-strings"
slouken@3049
  2542
        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lobjc"
icculus@3623
  2543
        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Cocoa"
icculus@3623
  2544
        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Carbon"
icculus@3623
  2545
        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,IOKit"
slouken@3621
  2546
        # If audio is used, add the AudioUnit framework
slouken@3243
  2547
        if test x$enable_audio = xyes; then
icculus@3623
  2548
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit"
slouken@1361
  2549
        fi
slouken@0
  2550
        ;;
slouken@0
  2551
    *)
slouken@1361
  2552
        AC_MSG_ERROR([
slouken@1550
  2553
*** Unsupported host:  Please add to configure.in
slouken@1361
  2554
        ])
slouken@0
  2555
        ;;
slouken@0
  2556
esac
slouken@0
  2557
icculus@5975
  2558
dnl Do this on all platforms, after everything else.
icculus@5975
  2559
CheckWarnAll
icculus@5975
  2560
slouken@1361
  2561
# Verify that we have all the platform specific files we need
icculus@2066
  2562
slouken@3104
  2563
if test x$have_joystick != xyes; then
slouken@3104
  2564
    if test x$enable_joystick = xyes; then
icculus@5548
  2565
        AC_DEFINE(SDL_JOYSTICK_DISABLED, 1, [ ])
slouken@3097
  2566
    fi
slouken@1361
  2567
    SOURCES="$SOURCES $srcdir/src/joystick/dummy/*.c"
slouken@1361
  2568
fi
slouken@2713
  2569
if test x$have_haptic != xyes; then
slouken@2713
  2570
    if test x$enable_haptic = xyes; then
icculus@5548
  2571
        AC_DEFINE(SDL_HAPTIC_DISABLED, 1, [ ])
slouken@2713
  2572
    fi
slouken@2713
  2573
    SOURCES="$SOURCES $srcdir/src/haptic/dummy/*.c"
slouken@2713
  2574
fi
slouken@1361
  2575
if test x$have_threads != xyes; then
slouken@1361
  2576
    if test x$enable_threads = xyes; then
icculus@5548
  2577
        AC_DEFINE(SDL_THREADS_DISABLED, 1, [ ])
slouken@1361
  2578
    fi
slouken@1361
  2579
    SOURCES="$SOURCES $srcdir/src/thread/generic/*.c"
slouken@1361
  2580
fi
slouken@1361
  2581
if test x$have_timers != xyes; then
slouken@1361
  2582
    if test x$enable_timers = xyes; then
icculus@5548
  2583
        AC_DEFINE(SDL_TIMERS_DISABLED, 1, [ ])
slouken@1361
  2584
    fi
slouken@1361
  2585
    SOURCES="$SOURCES $srcdir/src/timer/dummy/*.c"
slouken@1361
  2586
fi
slouken@1361
  2587
if test x$have_loadso != xyes; then
slouken@1361
  2588
    if test x$enable_loadso = xyes; then
icculus@5548
  2589
        AC_DEFINE(SDL_LOADSO_DISABLED, 1, [ ])
slouken@1361
  2590
    fi
slouken@1361
  2591
    SOURCES="$SOURCES $srcdir/src/loadso/dummy/*.c"
slouken@1361
  2592
fi
slouken@1397
  2593
if test x$SDLMAIN_SOURCES = x; then
slouken@1397
  2594
    SDLMAIN_SOURCES="$srcdir/src/main/dummy/*.c"
slouken@1397
  2595
fi
slouken@6688
  2596
SDLTEST_SOURCES="$srcdir/src/test/*.c"
slouken@0
  2597
slouken@3334
  2598
OBJECTS=`echo $SOURCES`
slouken@5112
  2599
DEPENDS=`echo $SOURCES | tr ' ' '\n'`
slouken@3334
  2600
for EXT in asm cc m c S; do
slouken@3334
  2601
    OBJECTS=`echo "$OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.'$EXT',$(objects)/\1.lo,g'`
slouken@5112
  2602
    DEPENDS=`echo "$DEPENDS" | sed "s,^\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.$EXT\\$,\\\\
slouken@3415
  2603
\\$(objects)/\\2.lo: \\1/\\2.$EXT\\\\
slouken@3415
  2604
	\\$(LIBTOOL) --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
slouken@3334
  2605
done
slouken@0
  2606
slouken@3334
  2607
VERSION_OBJECTS=`echo $VERSION_SOURCES`
slouken@3334
  2608
VERSION_DEPENDS=`echo $VERSION_SOURCES`
slouken@3334
  2609
VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'`
slouken@3415
  2610
VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.rc,\\\\
slouken@3415
  2611
\\$(objects)/\\2.o: \\1/\\2.rc\\\\
slouken@3415
  2612
	\\$(WINDRES) \\$< \\$@,g"`
slouken@3334
  2613
slouken@3334
  2614
SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
slouken@3334
  2615
SDLMAIN_DEPENDS=`echo $SDLMAIN_SOURCES`
slouken@3334
  2616
SDLMAIN_OBJECTS=`echo "$SDLMAIN_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.o,g'`
slouken@3415
  2617
SDLMAIN_DEPENDS=`echo "$SDLMAIN_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\
slouken@3415
  2618
\\$(objects)/\\2.o: \\1/\\2.c\\\\
slouken@3415
  2619
	\\$(LIBTOOL) --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
slouken@1397
  2620
slouken@6688
  2621
SDLTEST_OBJECTS=`echo $SDLTEST_SOURCES`
slouken@6688
  2622
SDLTEST_DEPENDS=`echo $SDLTEST_SOURCES`
slouken@6688
  2623
SDLTEST_OBJECTS=`echo "$SDLTEST_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.o,g'`
slouken@6688
  2624
SDLTEST_DEPENDS=`echo "$SDLTEST_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\
slouken@6688
  2625
\\$(objects)/\\2.o: \\1/\\2.c\\\\
slouken@6688
  2626
	\\$(LIBTOOL) --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
slouken@6688
  2627
slouken@0
  2628
# Set runtime shared library paths as needed
slouken@0
  2629
slouken@1127
  2630
if test "x$enable_rpath" = "xyes"; then
slouken@5410
  2631
  if test $ARCH = bsdi -o $ARCH = freebsd -o $ARCH = linux -o $ARCH = netbsd; then
slouken@2040
  2632
    SDL_RLD_FLAGS="-Wl,-rpath,\${libdir}"
slouken@1127
  2633
  fi
slouken@1127
  2634
  if test $ARCH = solaris; then
slouken@2040
  2635
    SDL_RLD_FLAGS="-R\${libdir}"
slouken@1127
  2636
  fi
slouken@1127
  2637
else
slouken@1127
  2638
  SDL_RLD_FLAGS=""
slouken@0
  2639
fi
slouken@387
  2640
slouken@6303
  2641
SDL_STATIC_LIBS="$SDL_LIBS $EXTRA_LDFLAGS"
slouken@807
  2642
slouken@0
  2643
dnl Expand the cflags and libraries needed by apps using SDL
slouken@0
  2644
AC_SUBST(SDL_CFLAGS)
slouken@0
  2645
AC_SUBST(SDL_LIBS)
slouken@807
  2646
AC_SUBST(SDL_STATIC_LIBS)
slouken@0
  2647
AC_SUBST(SDL_RLD_FLAGS)
slouken@1361
  2648
if test x$enable_shared = xyes; then
slouken@1361
  2649
    ENABLE_SHARED_TRUE=
slouken@1361
  2650
    ENABLE_SHARED_FALSE="#"
slouken@1361
  2651
else
slouken@1361
  2652
    ENABLE_SHARED_TRUE="#"
slouken@1361
  2653
    ENABLE_SHARED_FALSE=
slouken@1361
  2654
fi
slouken@1361
  2655
if test x$enable_static = xyes; then
slouken@1361
  2656
    ENABLE_STATIC_TRUE=
slouken@1361
  2657
    ENABLE_STATIC_FALSE="#"
slouken@1361
  2658
else
slouken@1361
  2659
    ENABLE_STATIC_TRUE="#"
slouken@1361
  2660
    ENABLE_STATIC_FALSE=
slouken@1361
  2661
fi
slouken@1361
  2662
AC_SUBST(ENABLE_SHARED_TRUE)
slouken@1361
  2663
AC_SUBST(ENABLE_SHARED_FALSE)
slouken@1361
  2664
AC_SUBST(ENABLE_STATIC_TRUE)
slouken@1361
  2665
AC_SUBST(ENABLE_STATIC_FALSE)
slouken@0
  2666
slouken@1361
  2667
dnl Expand the sources and objects needed to build the library
slouken@1361
  2668
AC_SUBST(ac_aux_dir)
slouken@1361
  2669
AC_SUBST(INCLUDE)
slouken@1361
  2670
AC_SUBST(OBJECTS)
slouken@3334
  2671
AC_SUBST(VERSION_OBJECTS)
slouken@1397
  2672
AC_SUBST(SDLMAIN_OBJECTS)
slouken@6688
  2673
AC_SUBST(SDLTEST_OBJECTS)
slouken@1361
  2674
AC_SUBST(BUILD_CFLAGS)
slouken@1521
  2675
AC_SUBST(EXTRA_CFLAGS)
slouken@1393
  2676
AC_SUBST(BUILD_LDFLAGS)
slouken@1521
  2677
AC_SUBST(EXTRA_LDFLAGS)
slouken@2204
  2678
AC_SUBST(WINDRES)
slouken@0
  2679
slouken@5345
  2680
cat >Makefile.rules <<__EOF__
slouken@5066
  2681
slouken@5066
  2682
# Build rules for objects
slouken@5066
  2683
-include \$(OBJECTS:.lo=.d)
slouken@5345
  2684
slouken@5345
  2685
# Special dependency for SDL.c, since it depends on SDL_revision.h
slouken@5345
  2686
$srcdir/src/SDL.c: update-revision
slouken@5066
  2687
$DEPENDS
slouken@5066
  2688
$VERSION_DEPENDS
slouken@5066
  2689
$SDLMAIN_DEPENDS