configure.in
author Sam Lantinga <slouken@libsdl.org>
Sun, 24 Jan 2010 20:47:20 +0000
changeset 3696 47d923feedb0
parent 3681 be6fe5f0b1db
child 4426 1bceff8f008f
permissions -rw-r--r--
Fixed bug #935

Patrice Mandin

Hello,

I originally added pth support for threads in SDL 1.2 because on the Atari
platform we did not have any thread library.

I think pth support could be removed from SDL 1.3 for two reasons:

- Atari platform removed

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