configure.in
author Sam Lantinga <slouken@libsdl.org>
Thu, 02 Apr 2009 04:43:36 +0000
branchSDL-1.2
changeset 4167 a6f635e5eaa6
parent 4165 3b8ac3d311a2
child 4184 ed5913896653
permissions -rw-r--r--
Fixed bug #611

From Tim Angus 2008-08-12 11:18:06

I'm one of the maintainers of ioquake3.org, an updated version of the
Quake 3 engine. Relatively recently, we moved ioq3 to use SDL as a
replacement for 95% of the platform specific code that was there. On the
whole it's doing a great job but unfortunately since the move we've been
getting complaints about the quality of the mouse input on the Windows
platform to the point where for many the game is unplayable. Put in
other terms, the current stable SDL 1.2 is basically not fit for purpose
if you need high quality mouse input as you do in a first person shooter.

Over the weekend I decided to pull my finger out and actually figure out
what's going on. There are basically two major problems. Firstly, when
using the "windib" driver, mouse input is gathered via the WM_MOUSEMOVE
message. Googling for this indicates that often this is known to result
in "spurious" and/or "missing" mouse movement events; this is the
primary cause of the poor mouse input. The second problem is that the
"directx" driver does not work at all in combination with OpenGL meaning
that you can't use DirectInput if your application also uses OpenGL. In
other words you're locked into using the "windib" driver and its poor
mouse input.

In order to address these problems I've done the following:

* Remove WM_MOUSEMOVE based motion event generation and replace with
calls to GetCursorPos which seems much more reliable. In order to
achieve this I've moved mouse motion out into a separate function that
is called once per DIB_PumpEvents.

* Remove the restriction on the "directx" driver being inoperable in
combination with OpenGL. There is a bug for this issues that I've
hijacked to a certain extent
(http://bugzilla.libsdl.org/show_bug.cgi?id=265). I'm the first to admit
I don't really understand why this restriction is there in the first
place. The commit message for the bug fix that introduced this
restriction (r581) isn't very elaborate and I couldn't see any other bug
tracking the issue. If anyone has more information on the bug that was
avoided by r581 it would be helpful as I/someone could then look into
addressing the problem without disabling the "directx" driver.

* I've also removed the restriction on not being allowed to use
DirectInput in windowed mode. I couldn't see any reason for this, at
least not from our perspective. I have my suspicions that it'll be
something like matching up the cursor with the mouse coordinates...

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