configure.in
author Sunny Sachanandani <sunnysachanandani@gmail.com>
Fri, 09 Jul 2010 21:36:41 +0530
changeset 4590 1ad70fb49fcb
parent 4577 87a2d87786d4
child 4604 d7535d7a40ea
permissions -rw-r--r--
Fix so many things that there is little place in this column to list them all but the result is that blending modes just work now for drawing primitives.

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