configure.in
author Sam Lantinga <slouken@libsdl.org>
Wed, 28 Oct 2009 04:27:50 +0000
changeset 3415 1756b9569141
parent 3405 d5f2dd33f4eb
child 3426 ee0178f1c507
permissions -rw-r--r--
Adam Strzelecki to SDL

Actually after my patch commited in r4928 MinGW configure seems to generate broken Makefile due MSYS bash bug. (Attaching cure/patch below)

The problem is that:

TEST=`echo 'one\\
two\\
three\\'`
echo "$TEST"

Should echo:
one\
two\
three\

Does it on Linux, Mac.. all UNIX but not on MSYS (MinGW) which outputs:
one\two\three\
(new lines removed, probably it doesn't like backslashes)
Probably this bug should be submitted to MSYS team, but not waiting till MSYS gets it fixed (they have very slow release cycles) here goes simple cure...

My patch simply replaces single quoted SED rules where we needed newlien injection with double quoted ones.

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