configure.in
author Sam Lantinga <slouken@libsdl.org>
Sun, 08 Jan 2012 02:23:37 -0500
changeset 6188 e82023802002
parent 6116 66f48d6bf735
child 6217 6952b11b7f46
permissions -rw-r--r--
Fixed bug 1242 - PATCH: Improve support for OpenGL ES under X11

Scott Percival 2011-07-03 06:41:51 PDT

This submission is aimed at making life easier for OpenGL ES capable devices
running a X11 stack (e.g. Maemo, Meego, TrimSlice, other ARM SoC boards not
running Android). SDL's Pandora support already has the neccesary GLES-to-X11
glue code, however it's all ghetto'd off in Makefile.pandora and not very
flexible.

The patch:
- adds an awesome --enable-video-opengles option to configure
- re-modifies the opengles and opengles2 SDL_renderers to use function pointers
- no idea why this was removed?
- for SDL_Renderers, links in libGLESv1_CM, libGLES_CM (for PowerVR fans) or
libGLESv2 at runtime
- links in libEGL.so at runtime - the old code made an assumption that
eglFunctions could be pulled from the active GLES library, PowerVR for one
doesn't let you do that with their libGLESv2
- allows you to pick which of GLES v1 or v2 to load via
SDL_GL_CONTEXT_MAJOR_VERSION

So far I've tested this on a Nokia N900 (OMAP 3430/SGX 530 running Maemo 5) and
a Toshiba AC100 (Tegra 2 running Ubuntu 10.10). I haven't tested it on... well,
everything that isn't those two, such as a Pandora, iOS or Android device. The
Pandora specific code should be kept intact (fingers crossed), and nothing
painfully drastic has been added to the SDL_renderers. The library loading
sequence in SDL_x11opengles has been updated to accomodate both NVIDIA's
propensity to let developers get away with murder and PowerVR's alternative of
punishing every missed step.

The test apps work okay with GLES or GLES2 as the renderer. For some reason
alpha blending doesn't seem to work on the Tegra 2; last week NVIDIA pushed out
a new set of X11 GLES drivers, so I'll try and investigate once I upgrade
those. Also, this patch adds things to configure.in, include/SDL_config.h.in
and test/configure.in. I didn't know what the policy was re. committing
generated spaghetti from autotools, so ./autogen.sh has to be run again. Sorry.

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