configure.in
author Sam Lantinga <slouken@libsdl.org>
Fri, 29 Feb 2008 13:55:44 +0000
branchSDL-1.2
changeset 4139 568c9b3c0167
parent 4134 31c7c57af8a4
child 4164 7a4c511c980a
permissions -rw-r--r--
* Added configure option --enable-screensaver, to allow enabling the screensaver by default.
* Use XResetScreenSaver() instead of disabling screensaver entirely.

Full discussion summary from Erik on the SDL mailing list:

Current behaviour
=================

SDL changes the user's display power management settings without
permission from the user and without telling the user.

The interface that it uses to do so is DPMSDisable/DPMSEnable, which
should only ever be used by configuration utilities like KControl, never
by normal application programs, let alone by the libraries that they
use. Using an interface that is not at all intended for what SDL tries
to achieve means that it will not work as it should. Firstly, the power
management is completely disabled during the whole lifetime of the SDL
program, not only when it should be. Secondly, it makes SDL
non-reentrant, meaning that things will break when multiple SDL programs
are clients of the same X server simultaneously. Thirdly, no cleanup
mechanism ensures that the setting is restored if the client does not do
that (for example if it crashes).

In addition to that, this interface is broken on xorg,
[http://bugs.freedesktop.org/show_bug.cgi?id=13962], so what SDL tries
to do does not work at all on that implementation of the X Window
System. (The reason that the DPMSEnable works in KControl is that it
calls DPMSSetTimeout immediately after,
[http://websvn.kde.org/tags/KDE/3.5.9/kdebase/kcontrol/energy/energy.cpp?annotate=774532#l343]).


The problems that the current behaviour causes
==============================================
1. Information leak. When the user is away, someone might see what the
user has on the display when the user counts on the screensaver
preventing this. This does not even require physical access to the
workstation, it is enough to see it from a distance.
2. Draining battery. An SDL program that runs on a laptop will quickly
drain the battery while the user is away. The system will soon shut down
and require recharging before being usable again, while it should in
fact have consumed very little energy if the user's settings would have
been obeyed.
3. Wasting energy. Even if battery issues are not considered, energy as
such is wasted.
4. Display wear. The display may be worn out.


The problems that the current behaviour tries to solve
======================================================

1. Preventing screensaver while playing movies.
Many SDL applications are media players. They have reasons to prevent
screensavers from being activated while a movie is being played. When a
user clicks on the play button it can be interpreted as saying "play
this movie, but do not turn off the display while playing it, because I
will watch it even though I do not interact with the system".

2. Preventing screensaver when some input bypasses X.
Sometimes SDL uses input from another source than the X server, so
that the X server is bypassed. This obviously breaks the screensaver
handling. SDL tries to work around that.

3. Preventing screensaver when all input bypasses X.
There is something called Direct Graphics Access mode, where a
program takes control of both the display and the input devices from the
X server. This obviously means that the X server can not handle the
screensaver alone, since screensaver handling depends on input handling.
SDL does not do what it should to help the X server to handle the
screensaver. Nor does SDL take care of screeensaver handling itself. SDL
simply disables the screensaver completely.


How the problems should be solved
=================================

The correct way for an application program to prevent the screensaver
under X is to call XResetScreenSaver. This was recently discovered and
implemented by the mplayer developers,
[http://svn.mplayerhq.hu/mplayer?view=rev&revision=25637]. SDL needs to
wrap this in an API call (SDL_ResetScreenSaver) and implement it for the
other video targets (if they do not have a corresponding call, SDL
should do what it takes on that particular target, for example sending
fake key events).

1. When a movie is played, the player should reset the screensaver when
the animation is advanced to a new frame. The same applies to anything
similar, like slideshows.

2. When the X server is handling input, it must handle all input
(keyboards, mice, gamepads, ...). This is necessary, not only to be able
to handle the screensaver, but also so that it can send the events to
the correct (the currently active) client. If there is an input device
that the X server can not handle for some reason (such as lack of Plug
and Play capability), the program that handles the device as a
workaround must simulate what would happen if the X server would have
handled the device, by calling XResetScreenSaver when input is received
from the device.

3. When the X server is not handling the input, it depends on the
program that does to call XResetScreenSaver whenever an input event
occurs. Alternatively the program must handle the screensaver countdown
internally and call XActivateScreenSaver.
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@1361
    43
AC_CONFIG_AUX_DIRS($srcdir/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@0
  1290
dnl Find the GGI includes
slouken@0
  1291
CheckGGI()
slouken@0
  1292
{
slouken@0
  1293
    AC_ARG_ENABLE(video-ggi,
slouken@1637
  1294
AC_HELP_STRING([--enable-video-ggi], [use GGI video driver [[default=no]]]),
slouken@0
  1295
                  , enable_video_ggi=no)
slouken@0
  1296
    if test x$enable_video = xyes -a x$enable_video_ggi = xyes; then
slouken@0
  1297
        AC_MSG_CHECKING(for GGI support)
slouken@0
  1298
        video_ggi=no
slouken@0
  1299
        AC_TRY_COMPILE([
slouken@0
  1300
         #include <ggi/ggi.h>
slouken@0
  1301
         #include <ggi/gii.h>
slouken@0
  1302
        ],[
slouken@0
  1303
        ],[
slouken@0
  1304
        video_ggi=yes
slouken@0
  1305
        ])
slouken@0
  1306
        AC_MSG_RESULT($video_ggi)
slouken@0
  1307
        if test x$video_ggi = xyes; then
slouken@1361
  1308
            AC_DEFINE(SDL_VIDEO_DRIVER_GGI)
slouken@1361
  1309
            SOURCES="$SOURCES $srcdir/src/video/ggi/*.c"
slouken@1521
  1310
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lggi -lgii -lgg"
slouken@1361
  1311
            have_video=yes
slouken@0
  1312
        fi
slouken@0
  1313
    fi
slouken@0
  1314
}
slouken@0
  1315
slouken@0
  1316
dnl Find the SVGAlib includes and libraries
slouken@0
  1317
CheckSVGA()
slouken@0
  1318
{
slouken@0
  1319
    AC_ARG_ENABLE(video-svga,
slouken@1637
  1320
AC_HELP_STRING([--enable-video-svga], [use SVGAlib video driver [[default=yes]]]),
slouken@1555
  1321
                  , enable_video_svga=yes)
slouken@0
  1322
    if test x$enable_video = xyes -a x$enable_video_svga = xyes; then
slouken@0
  1323
        AC_MSG_CHECKING(for SVGAlib (1.4.0+) support)
slouken@0
  1324
        video_svga=no
slouken@0
  1325
        AC_TRY_COMPILE([
slouken@0
  1326
         #include <vga.h>
slouken@0
  1327
         #include <vgamouse.h>
slouken@0
  1328
         #include <vgakeyboard.h>
slouken@0
  1329
        ],[
slouken@0
  1330
         if ( SCANCODE_RIGHTWIN && SCANCODE_LEFTWIN ) {
slouken@0
  1331
             exit(0);
slouken@0
  1332
         }
slouken@0
  1333
        ],[
slouken@0
  1334
        video_svga=yes
slouken@0
  1335
        ])
slouken@0
  1336
        AC_MSG_RESULT($video_svga)
slouken@0
  1337
        if test x$video_svga = xyes; then
slouken@1361
  1338
            AC_DEFINE(SDL_VIDEO_DRIVER_SVGALIB)
slouken@1361
  1339
            SOURCES="$SOURCES $srcdir/src/video/svga/*.c"
slouken@1556
  1340
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lvga"
slouken@1361
  1341
            have_video=yes
slouken@0
  1342
        fi
slouken@0
  1343
    fi
slouken@0
  1344
}
slouken@0
  1345
slouken@75
  1346
dnl Find the VGL includes and libraries
slouken@75
  1347
CheckVGL()
slouken@75
  1348
{
slouken@75
  1349
    AC_ARG_ENABLE(video-vgl,
slouken@1637
  1350
AC_HELP_STRING([--enable-video-vgl], [use VGL video driver [[default=yes]]]),
slouken@1588
  1351
                  , enable_video_vgl=yes)
slouken@75
  1352
    if test x$enable_video = xyes -a x$enable_video_vgl = xyes; then
slouken@75
  1353
        AC_MSG_CHECKING(for libVGL support)
slouken@75
  1354
        video_vgl=no
slouken@75
  1355
        AC_TRY_COMPILE([
slouken@75
  1356
         #include <sys/fbio.h>
slouken@75
  1357
         #include <sys/consio.h>
slouken@75
  1358
         #include <sys/kbio.h>
slouken@75
  1359
         #include <vgl.h>
slouken@75
  1360
        ],[
slouken@75
  1361
         VGLBitmap bitmap;
slouken@1836
  1362
         bitmap.Type = VIDBUF32;
slouken@1836
  1363
         bitmap.PixelBytes = 4;
slouken@144
  1364
         exit(bitmap.Bitmap);
slouken@75
  1365
        ],[
slouken@75
  1366
        video_vgl=yes
slouken@75
  1367
        ])
slouken@75
  1368
        AC_MSG_RESULT($video_vgl)
slouken@75
  1369
        if test x$video_vgl = xyes; then
slouken@1361
  1370
            AC_DEFINE(SDL_VIDEO_DRIVER_VGL)
slouken@1361
  1371
            SOURCES="$SOURCES $srcdir/src/video/vgl/*.c"
slouken@1521
  1372
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lvgl"
slouken@1361
  1373
            have_video=yes
slouken@75
  1374
        fi
slouken@75
  1375
    fi
slouken@75
  1376
}
slouken@75
  1377
slouken@1361
  1378
dnl Set up the wscons video driver if enabled
slouken@1361
  1379
CheckWscons()
slouken@1361
  1380
{
slouken@1361
  1381
    AC_ARG_ENABLE(video-wscons,
slouken@1637
  1382
AC_HELP_STRING([--enable-video-wscons], [use wscons video driver [[default=yes]]]),
slouken@1361
  1383
                  , enable_video_wscons=yes)
slouken@1361
  1384
    if test x$enable_video = xyes -a x$enable_video_wscons = xyes; then
slouken@1361
  1385
        AC_MSG_CHECKING(for wscons support)
slouken@1361
  1386
        video_wscons=no
slouken@1361
  1387
        AC_TRY_COMPILE([
slouken@1597
  1388
         #include <sys/time.h>
slouken@1597
  1389
         #include <dev/wscons/wsconsio.h>
slouken@1597
  1390
         #include <dev/wscons/wsdisplay_usl_io.h>
slouken@1361
  1391
        ],[
slouken@1597
  1392
         int wsmode = WSDISPLAYIO_MODE_DUMBFB;
slouken@1361
  1393
        ],[
slouken@1361
  1394
        video_wscons=yes
slouken@1361
  1395
        ])
slouken@1361
  1396
        AC_MSG_RESULT($video_wscons)
slouken@1361
  1397
        if test x$video_wscons = xyes; then
slouken@1361
  1398
            AC_DEFINE(SDL_VIDEO_DRIVER_WSCONS)
slouken@1361
  1399
            SOURCES="$SOURCES $srcdir/src/video/wscons/*.c"
slouken@1361
  1400
            have_video=yes
slouken@1361
  1401
        fi
slouken@1361
  1402
    fi
slouken@1361
  1403
}
slouken@1361
  1404
slouken@1361
  1405
slouken@0
  1406
dnl Find the AAlib includes
slouken@0
  1407
CheckAAlib()
slouken@0
  1408
{
slouken@0
  1409
    AC_ARG_ENABLE(video-aalib,
slouken@1637
  1410
AC_HELP_STRING([--enable-video-aalib], [use AAlib video driver [[default=no]]]),
slouken@0
  1411
                  , enable_video_aalib=no)
slouken@0
  1412
    if test x$enable_video = xyes -a x$enable_video_aalib = xyes; then
slouken@0
  1413
        AC_MSG_CHECKING(for AAlib support)
slouken@0
  1414
        video_aalib=no
slouken@0
  1415
        AC_TRY_COMPILE([
slouken@0
  1416
         #include <aalib.h>
slouken@0
  1417
        ],[
slouken@0
  1418
        ],[
slouken@0
  1419
        video_aalib=yes
slouken@0
  1420
        ])
slouken@0
  1421
        AC_MSG_RESULT($video_aalib)
slouken@0
  1422
        if test x$video_aalib = xyes; then
slouken@1361
  1423
            AC_DEFINE(SDL_VIDEO_DRIVER_AALIB)
slouken@1361
  1424
            SOURCES="$SOURCES $srcdir/src/video/aalib/*.c"
slouken@1521
  1425
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -laa"
slouken@1361
  1426
            have_video=yes
slouken@0
  1427
        fi
slouken@0
  1428
    fi
slouken@0
  1429
}
slouken@0
  1430
slouken@1361
  1431
dnl Set up the QTopia video driver if enabled
slouken@1361
  1432
CheckQtopia()
slouken@1361
  1433
{
slouken@1361
  1434
    AC_ARG_ENABLE(video-qtopia,
slouken@1637
  1435
AC_HELP_STRING([--enable-video-qtopia], [use Qtopia video driver [[default=no]]]),
slouken@1361
  1436
                  , enable_video_qtopia=no)
slouken@1361
  1437
    if test x$enable_video = xyes -a x$enable_video_qtopia = xyes; then
slouken@1361
  1438
        AC_MSG_CHECKING(for Qtopia support)
slouken@1361
  1439
        video_qtopia=no
slouken@1361
  1440
        QTOPIA_FLAGS="-DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -I${QPEDIR}/include -I${QTDIR}/include/ -DNO_DEBUG -fno-rtti -fno-exceptions"
slouken@1361
  1441
        AC_LANG_CPLUSPLUS
slouken@1361
  1442
        OLD_CXX="$CXXFLAGS"
slouken@1361
  1443
        CXXFLAGS="$QTOPIA_FLAGS"
slouken@1361
  1444
        AC_TRY_COMPILE([
slouken@1361
  1445
         #include <qpe/qpeapplication.h>
slouken@1361
  1446
        ],[
slouken@1361
  1447
        ],[
slouken@1361
  1448
        video_qtopia=yes
slouken@1361
  1449
        ])
slouken@1361
  1450
        CXXFLAGS="$OLD_CXX"
slouken@1361
  1451
        AC_MSG_RESULT($video_qtopia)
slouken@1361
  1452
        if test x$video_qtopia = xyes; then
slouken@1361
  1453
            AC_DEFINE(SDL_VIDEO_DRIVER_QTOPIA)
slouken@1361
  1454
            SOURCES="$SOURCES $srcdir/src/video/qtopia/*.cc"
slouken@1397
  1455
            SDLMAIN_SOURCES="$srcdir/src/main/qtopia/*.cc"
slouken@1521
  1456
            EXTRA_CFLAGS="$EXTRA_CFLAGS $QTOPIA_FLAGS"
slouken@1361
  1457
            SDL_CFLAGS="$SDL_CFLAGS -DQWS -Dmain=SDL_main"
slouken@1361
  1458
            SDL_LIBS="-lSDLmain $SDL_LIBS -L${QPEDIR}/lib -L${QTDIR}/lib/ -lqpe -lqte"
slouken@1361
  1459
            have_video=yes
slouken@1361
  1460
        fi
slouken@1361
  1461
        AC_LANG_C
slouken@1361
  1462
    fi
slouken@1361
  1463
}
slouken@1361
  1464
slouken@1361
  1465
dnl Set up the PicoGUI video driver if enabled
slouken@1361
  1466
CheckPicoGUI()
slouken@1361
  1467
{
slouken@1361
  1468
    AC_ARG_ENABLE(video-picogui,
slouken@1637
  1469
AC_HELP_STRING([--enable-video-picogui], [use PicoGUI video driver [[default=no]]]),
slouken@1361
  1470
                  , enable_video_picogui=no)
slouken@1361
  1471
    if test x$enable_video = xyes -a x$enable_video_picogui = xyes; then
slouken@1361
  1472
        AC_MSG_CHECKING(for PicoGUI support)
slouken@1361
  1473
        video_picogui=no
slouken@1361
  1474
        AC_TRY_COMPILE([
slouken@1361
  1475
         #include <picogui.h>
slouken@1361
  1476
        ],[
slouken@1361
  1477
        ],[
slouken@1361
  1478
        video_picogui=yes
slouken@1361
  1479
        ])
slouken@1361
  1480
        AC_MSG_RESULT($video_picogui)
slouken@1361
  1481
        if test x$video_picogui = xyes; then
slouken@1361
  1482
            AC_DEFINE(SDL_VIDEO_DRIVER_PICOGUI)
slouken@1361
  1483
            SOURCES="$SOURCES $srcdir/src/video/picogui/*.c"
slouken@1361
  1484
            SDL_LIBS="$SDL_LIBS -lpgui"
slouken@1361
  1485
            have_video=yes
slouken@1361
  1486
        fi
slouken@1361
  1487
    fi
slouken@1361
  1488
}
slouken@1361
  1489
slouken@1361
  1490
dnl Set up the Atari Bios keyboard driver
slouken@1361
  1491
CheckAtariBiosEvent()
slouken@1361
  1492
{
slouken@1361
  1493
    SOURCES="$SOURCES $srcdir/src/video/ataricommon/*.c"
patmandin@1477
  1494
    SOURCES="$SOURCES $srcdir/src/video/ataricommon/*.S"
slouken@1361
  1495
}
slouken@1361
  1496
slouken@281
  1497
dnl Set up the Atari Xbios driver
slouken@281
  1498
CheckAtariXbiosVideo()
slouken@281
  1499
{
slouken@281
  1500
    AC_ARG_ENABLE(xbios,
slouken@1637
  1501
AC_HELP_STRING([--enable-video-xbios], [use Atari Xbios video driver [[default=yes]]]),
slouken@281
  1502
                  , enable_video_xbios=yes)
slouken@281
  1503
    video_xbios=no
slouken@281
  1504
    if test x$enable_video = xyes -a x$enable_video_xbios = xyes; then
slouken@281
  1505
        video_xbios=yes
slouken@1361
  1506
        AC_DEFINE(SDL_VIDEO_DRIVER_XBIOS)
slouken@1361
  1507
        SOURCES="$SOURCES $srcdir/src/video/xbios/*.c"
slouken@1361
  1508
        have_video=yes
slouken@281
  1509
    fi
slouken@281
  1510
}
slouken@281
  1511
slouken@281
  1512
dnl Set up the Atari Gem driver
slouken@281
  1513
CheckAtariGemVideo()
slouken@281
  1514
{
slouken@281
  1515
    AC_ARG_ENABLE(gem,
slouken@1637
  1516
AC_HELP_STRING([--enable-video-gem], [use Atari Gem video driver [[default=yes]]]),
slouken@281
  1517
                  , enable_video_gem=yes)
slouken@281
  1518
    if test x$enable_video = xyes -a x$enable_video_gem = xyes; then
slouken@281
  1519
        video_gem=no
slouken@281
  1520
        AC_CHECK_HEADER(gem.h, have_gem_hdr=yes)
slouken@281
  1521
        AC_CHECK_LIB(gem, appl_init, have_gem_lib=yes)
slouken@281
  1522
        if test x$have_gem_hdr = xyes -a x$have_gem_lib = xyes; then
slouken@1366
  1523
            video_gem=yes
slouken@1361
  1524
            AC_DEFINE(SDL_VIDEO_DRIVER_GEM)
slouken@1361
  1525
            SOURCES="$SOURCES $srcdir/src/video/gem/*.c"
patmandin@1825
  1526
            SDL_LIBS="$SDL_LIBS -lgem"
slouken@1361
  1527
            have_video=yes
slouken@281
  1528
        fi
slouken@281
  1529
    fi
slouken@281
  1530
}
slouken@281
  1531
slouken@1
  1532
dnl rcg04172001 Set up the Null video driver.
slouken@1
  1533
CheckDummyVideo()
slouken@1
  1534
{
slouken@1
  1535
    AC_ARG_ENABLE(video-dummy,
slouken@1637
  1536
AC_HELP_STRING([--enable-video-dummy], [use dummy video driver [[default=yes]]]),
slouken@86
  1537
                  , enable_video_dummy=yes)
slouken@1
  1538
    if test x$enable_video_dummy = xyes; then
slouken@1361
  1539
        AC_DEFINE(SDL_VIDEO_DRIVER_DUMMY)
slouken@1361
  1540
        SOURCES="$SOURCES $srcdir/src/video/dummy/*.c"
slouken@1361
  1541
        have_video=yes
slouken@1
  1542
    fi
slouken@1
  1543
}
slouken@1
  1544
slouken@0
  1545
dnl Check to see if OpenGL support is desired
slouken@0
  1546
AC_ARG_ENABLE(video-opengl,
slouken@1637
  1547
AC_HELP_STRING([--enable-video-opengl], [include OpenGL context creation [[default=yes]]]),
slouken@0
  1548
              , enable_video_opengl=yes)
slouken@0
  1549
slouken@0
  1550
dnl Find OpenGL
icculus@1191
  1551
CheckOpenGLX11()
slouken@0
  1552
{
slouken@0
  1553
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
slouken@0
  1554
        AC_MSG_CHECKING(for OpenGL (GLX) support)
slouken@0
  1555
        video_opengl=no
slouken@0
  1556
        AC_TRY_COMPILE([
slouken@0
  1557
         #include <GL/gl.h>
slouken@0
  1558
         #include <GL/glx.h>
icculus@3967
  1559
         #include <GL/glu.h>
slouken@0
  1560
        ],[
slouken@0
  1561
        ],[
slouken@0
  1562
        video_opengl=yes
slouken@0
  1563
        ])
slouken@0
  1564
        AC_MSG_RESULT($video_opengl)
slouken@0
  1565
        if test x$video_opengl = xyes; then
slouken@1361
  1566
            AC_DEFINE(SDL_VIDEO_OPENGL)
slouken@1361
  1567
            AC_DEFINE(SDL_VIDEO_OPENGL_GLX)
slouken@0
  1568
        fi
slouken@0
  1569
    fi
slouken@0
  1570
}
slouken@0
  1571
slouken@279
  1572
dnl Find QNX RtP OpenGL
slouken@279
  1573
CheckOpenGLQNX()
slouken@279
  1574
{
slouken@279
  1575
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
slouken@279
  1576
        AC_MSG_CHECKING(for OpenGL (Photon) support)
slouken@279
  1577
        video_opengl=no
slouken@279
  1578
        AC_TRY_COMPILE([
slouken@279
  1579
         #include <GL/gl.h>
slouken@279
  1580
        ],[
slouken@279
  1581
        ],[
slouken@279
  1582
        video_opengl=yes
slouken@279
  1583
        ])
slouken@279
  1584
        AC_MSG_RESULT($video_opengl)
slouken@279
  1585
        if test x$video_opengl = xyes; then
slouken@1361
  1586
            AC_DEFINE(SDL_VIDEO_OPENGL)
slouken@1521
  1587
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL"
slouken@279
  1588
        fi
slouken@279
  1589
    fi
slouken@279
  1590
}
slouken@279
  1591
slouken@1361
  1592
dnl Check for Win32 OpenGL
slouken@1361
  1593
CheckWIN32GL()
slouken@1361
  1594
{
slouken@1361
  1595
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
slouken@1361
  1596
        AC_DEFINE(SDL_VIDEO_OPENGL)
slouken@1361
  1597
        AC_DEFINE(SDL_VIDEO_OPENGL_WGL)
slouken@1361
  1598
    fi
slouken@1361
  1599
}
slouken@1361
  1600
slouken@0
  1601
dnl Check for BeOS OpenGL
slouken@0
  1602
CheckBeGL()
slouken@0
  1603
{
slouken@0
  1604
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
slouken@1361
  1605
        AC_DEFINE(SDL_VIDEO_OPENGL)
slouken@1521
  1606
        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL"
slouken@0
  1607
    fi
slouken@0
  1608
}
slouken@0
  1609
slouken@0
  1610
dnl Check for MacOS OpenGL
slouken@0
  1611
CheckMacGL()
slouken@0
  1612
{
slouken@0
  1613
    if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
slouken@1361
  1614
        AC_DEFINE(SDL_VIDEO_OPENGL)
slouken@1550
  1615
        case "$host" in
slouken@0
  1616
            *-*-darwin*)
slouken@1625
  1617
                if test x$enable_video_cocoa = xyes; then
slouken@1625
  1618
                    EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,OpenGL"
slouken@1625
  1619
                fi
slouken@1625
  1620
                if test x$enable_video_carbon = xyes; then
slouken@1625
  1621
                    EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AGL"
slouken@1625
  1622
                fi
slouken@0
  1623
        esac
slouken@0
  1624
    fi
slouken@0
  1625
}
slouken@0
  1626
patmandin@978
  1627
dnl Check for Mesa offscreen rendering
patmandin@989
  1628
CheckAtariOSMesa()
patmandin@978
  1629
{
patmandin@989
  1630
    if test "x$enable_video" = "xyes" -a "x$enable_video_opengl" = "xyes"; then
patmandin@991
  1631
        AC_CHECK_HEADER(GL/osmesa.h, have_osmesa_hdr=yes)
patmandin@991
  1632
        AC_CHECK_LIB(OSMesa, OSMesaCreateContext, have_osmesa_lib=yes, have_osmesa_lib=no, -lm)
patmandin@991
  1633
patmandin@991
  1634
        # Static linking to -lOSMesa
patmandin@989
  1635
        AC_PATH_PROG(OSMESA_CONFIG, osmesa-config, no)
patmandin@989
  1636
        if test "x$OSMESA_CONFIG" = "xno" -o "x$enable_atari_ldg" = "xno"; then
patmandin@991
  1637
            # -lOSMesa is really the static library
patmandin@989
  1638
            if test "x$have_osmesa_hdr" = "xyes" -a "x$have_osmesa_lib" = "xyes"; then
slouken@1361
  1639
                OSMESA_LIBS="-lOSMesa"
patmandin@989
  1640
            fi
patmandin@989
  1641
        else
patmandin@991
  1642
            # -lOSMesa is a loader for OSMesa.ldg
patmandin@989
  1643
            OSMESA_CFLAGS=`$OSMESA_CONFIG --cflags`
patmandin@989
  1644
            OSMESA_LIBS=`$OSMESA_CONFIG --libs`
patmandin@978
  1645
        fi
slouken@1361
  1646
        AC_DEFINE(SDL_VIDEO_OPENGL)
slouken@1361
  1647
        AC_DEFINE(SDL_VIDEO_OPENGL_OSMESA)
patmandin@1825
  1648
        SDL_CFLAGS="$SDL_CFLAGS $OSMESA_CFLAGS"
patmandin@1825
  1649
        SDL_LIBS="$SDL_LIBS $OSMESA_LIBS"
patmandin@991
  1650
patmandin@991
  1651
        AC_ARG_ENABLE(osmesa-shared,
slouken@1637
  1652
AC_HELP_STRING([--enable-osmesa-shared], [dynamically load OSMesa OpenGL support [[default=yes]]]),
patmandin@991
  1653
                              , enable_osmesa_shared=yes)
patmandin@991
  1654
        if test "x$enable_osmesa_shared" = "xyes" -a "x$enable_atari_ldg" = "xyes"; then
patmandin@991
  1655
            # Dynamic linking
patmandin@991
  1656
            if test "x$have_osmesa_hdr" = "xyes"; then
slouken@1361
  1657
                AC_DEFINE(SDL_VIDEO_OPENGL_OSMESA_DYNAMIC)
patmandin@991
  1658
            fi
slouken@1361
  1659
        fi
patmandin@978
  1660
    fi
patmandin@978
  1661
}
patmandin@978
  1662
slouken@4139
  1663
AC_ARG_ENABLE(screensaver,
slouken@4139
  1664
AC_HELP_STRING([--enable-screensaver], [enable screensaver by default while any SDL application is running [[default=no]]]),
slouken@4139
  1665
              , enable_screensaver=no)
slouken@4139
  1666
if test x$enable_screensaver = xno; then
slouken@4139
  1667
    AC_DEFINE(SDL_VIDEO_DISABLE_SCREENSAVER)
slouken@4139
  1668
fi
slouken@4139
  1669
slouken@0
  1670
dnl See if we can use the new unified event interface in Linux 2.4
slouken@0
  1671
CheckInputEvents()
slouken@0
  1672
{
slouken@0
  1673
    dnl Check for Linux 2.4 unified input event interface support
slouken@0
  1674
    AC_ARG_ENABLE(input-events,
slouken@1637
  1675
AC_HELP_STRING([--enable-input-events], [use Linux 2.4 unified input interface [[default=yes]]]),
slouken@211
  1676
                  , enable_input_events=yes)
slouken@0
  1677
    if test x$enable_input_events = xyes; then
slouken@0
  1678
        AC_MSG_CHECKING(for Linux 2.4 unified input interface)
slouken@0
  1679
        use_input_events=no
slouken@0
  1680
        AC_TRY_COMPILE([
slouken@0
  1681
          #include <linux/input.h>
slouken@0
  1682
        ],[
slouken@0
  1683
          #ifndef EVIOCGNAME
slouken@0
  1684
          #error EVIOCGNAME() ioctl not available
slouken@0
  1685
          #endif
slouken@0
  1686
        ],[
slouken@0
  1687
        use_input_events=yes
slouken@0
  1688
        ])
slouken@0
  1689
        AC_MSG_RESULT($use_input_events)
slouken@0
  1690
        if test x$use_input_events = xyes; then
slouken@1361
  1691
            AC_DEFINE(SDL_INPUT_LINUXEV)
slouken@0
  1692
        fi
slouken@0
  1693
    fi
slouken@0
  1694
}
slouken@0
  1695
icculus@1201
  1696
dnl See if we can use the Touchscreen input library
icculus@1201
  1697
CheckTslib()
icculus@1201
  1698
{
icculus@1201
  1699
    AC_ARG_ENABLE(input-tslib,
slouken@1637
  1700
AC_HELP_STRING([--enable-input-tslib], [use the Touchscreen library for input [[default=yes]]]),
icculus@1201
  1701
                  , enable_input_tslib=yes)
icculus@1201
  1702
    if test x$enable_input_tslib = xyes; then
icculus@1201
  1703
        AC_MSG_CHECKING(for Touchscreen library support)
icculus@1201
  1704
        enable_input_tslib=no
icculus@1201
  1705
        AC_TRY_COMPILE([
icculus@1201
  1706
          #include "tslib.h"
icculus@1201
  1707
        ],[
icculus@1201
  1708
        ],[
icculus@1201
  1709
        enable_input_tslib=yes
icculus@1201
  1710
        ])
icculus@1201
  1711
        AC_MSG_RESULT($enable_input_tslib)
icculus@1201
  1712
        if test x$enable_input_tslib = xyes; then
slouken@1361
  1713
            AC_DEFINE(SDL_INPUT_TSLIB)
slouken@1521
  1714
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lts"
icculus@1201
  1715
        fi
icculus@1201
  1716
    fi
icculus@1201
  1717
}
icculus@1201
  1718
slouken@399
  1719
dnl See if we can use GNU pth library for threads
slouken@399
  1720
CheckPTH()
slouken@399
  1721
{
slouken@399
  1722
    dnl Check for pth support
slouken@399
  1723
    AC_ARG_ENABLE(pth,
slouken@1637
  1724
AC_HELP_STRING([--enable-pth], [use GNU pth library for multi-threading [[default=yes]]]),
slouken@399
  1725
                  , enable_pth=yes)
slouken@399
  1726
    if test x$enable_threads = xyes -a x$enable_pth = xyes; then
slouken@399
  1727
        AC_PATH_PROG(PTH_CONFIG, pth-config, no)
slouken@399
  1728
        if test "$PTH_CONFIG" = "no"; then
slouken@399
  1729
            use_pth=no
slouken@399
  1730
        else
slouken@399
  1731
            use_pth=yes
slouken@399
  1732
        fi
slouken@399
  1733
        AC_MSG_CHECKING(pth)
slouken@1361
  1734
        AC_MSG_RESULT($use_pth)
slouken@399
  1735
        if test "x$use_pth" = xyes; then
slouken@1361
  1736
            AC_DEFINE(SDL_THREAD_PTH)
slouken@1361
  1737
            SOURCES="$SOURCES $srcdir/src/thread/pth/*.c"
slouken@1361
  1738
            SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syssem.c"
slouken@1361
  1739
            SDL_CFLAGS="$SDL_CFLAGS `$PTH_CONFIG --cflags`"
slouken@1361
  1740
            SDL_LIBS="$SDL_LIBS `$PTH_CONFIG --libs --all`"
slouken@1361
  1741
            have_threads=yes
slouken@399
  1742
        fi
slouken@399
  1743
    fi
slouken@399
  1744
}
slouken@399
  1745
slouken@0
  1746
dnl See what type of thread model to use on Linux and Solaris
slouken@0
  1747
CheckPTHREAD()
slouken@0
  1748
{
slouken@0
  1749
    dnl Check for pthread support
slouken@0
  1750
    AC_ARG_ENABLE(pthreads,
slouken@1637
  1751
AC_HELP_STRING([--enable-pthreads], [use POSIX threads for multi-threading [[default=yes]]]),
slouken@0
  1752
                  , enable_pthreads=yes)
slouken@0
  1753
    dnl This is used on Linux for glibc binary compatibility (Doh!)
slouken@0
  1754
    AC_ARG_ENABLE(pthread-sem,
slouken@1637
  1755
AC_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [[default=yes]]]),
slouken@0
  1756
                  , enable_pthread_sem=yes)
slouken@1550
  1757
    case "$host" in
slouken@1820
  1758
        *-*-linux*|*-*-uclinux*)
slouken@1361
  1759
            pthread_cflags="-D_REENTRANT"
slouken@1324
  1760
            pthread_lib="-lpthread"
slouken@1324
  1761
            ;;
slouken@0
  1762
        *-*-bsdi*)
slouken@0
  1763
            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
slouken@0
  1764
            pthread_lib=""
slouken@0
  1765
            ;;
slouken@0
  1766
        *-*-darwin*)
slouken@0
  1767
            pthread_cflags="-D_THREAD_SAFE"
slouken@0
  1768
# causes Carbon.p complaints?
slouken@0
  1769
#            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
slouken@0
  1770
            ;;
slouken@1565
  1771
        *-*-freebsd*|*-*-dragonfly*)
slouken@0
  1772
            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
slouken@0
  1773
            pthread_lib="-pthread"
slouken@0
  1774
            ;;
slouken@43
  1775
        *-*-netbsd*)
slouken@1383
  1776
            pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
slouken@4028
  1777
            pthread_lib="-lpthread"
slouken@43
  1778
            ;;
slouken@0
  1779
        *-*-openbsd*)
slouken@0
  1780
            pthread_cflags="-D_REENTRANT"
slouken@0
  1781
            pthread_lib="-pthread"
slouken@0
  1782
            ;;
slouken@0
  1783
        *-*-solaris*)
slouken@0
  1784
            pthread_cflags="-D_REENTRANT"
slouken@0
  1785
            pthread_lib="-lpthread -lposix4"
slouken@0
  1786
            ;;
slouken@0
  1787
        *-*-sysv5*)
slouken@0
  1788
            pthread_cflags="-D_REENTRANT -Kthread"
slouken@0
  1789
            pthread_lib=""
slouken@0
  1790
            ;;
slouken@0
  1791
        *-*-irix*)
slouken@0
  1792
            pthread_cflags="-D_SGI_MP_SOURCE"
slouken@0
  1793
            pthread_lib="-lpthread"
slouken@0
  1794
            ;;
slouken@0
  1795
        *-*-aix*)
slouken@0
  1796
            pthread_cflags="-D_REENTRANT -mthreads"
slouken@0
  1797
            pthread_lib="-lpthread"
slouken@0
  1798
            ;;
icculus@425
  1799
        *-*-hpux11*)
icculus@425
  1800
            pthread_cflags="-D_REENTRANT"
icculus@425
  1801
            pthread_lib="-L/usr/lib -lpthread"
icculus@425
  1802
            ;;
slouken@0
  1803
        *-*-qnx*)
slouken@0
  1804
            pthread_cflags=""
slouken@0
  1805
            pthread_lib=""
slouken@0
  1806
            ;;
slouken@873
  1807
        *-*-osf*)
slouken@1019
  1808
            pthread_cflags="-D_REENTRANT"
slouken@873
  1809
            if test x$ac_cv_prog_gcc = xyes; then
slouken@873
  1810
                pthread_lib="-lpthread -lrt"
slouken@873
  1811
            else
slouken@1019
  1812
                pthread_lib="-lpthread -lexc -lrt"
slouken@873
  1813
            fi
slouken@873
  1814
            ;;
slouken@0
  1815
        *)
slouken@0
  1816
            pthread_cflags="-D_REENTRANT"
slouken@0
  1817
            pthread_lib="-lpthread"
slouken@0
  1818
            ;;
slouken@0
  1819
    esac
icculus@1140
  1820
    if test x$enable_threads = xyes -a x$enable_pthreads = xyes -a x$enable_ipod != xyes; then
slouken@415
  1821
        # Save the original compiler flags and libraries
slouken@415
  1822
        ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
slouken@415
  1823
        # Add the pthread compiler flags and libraries
slouken@415
  1824
        CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
slouken@415
  1825
        # Check to see if we have pthread support on this system
slouken@0
  1826
        AC_MSG_CHECKING(for pthreads)
slouken@0
  1827
        use_pthreads=no
slouken@0
  1828
        AC_TRY_LINK([
slouken@0
  1829
         #include <pthread.h>
slouken@0
  1830
        ],[
slouken@0
  1831
         pthread_attr_t type;
slouken@0
  1832
         pthread_attr_init(&type);
slouken@0
  1833
        ],[
slouken@0
  1834
        use_pthreads=yes
slouken@0
  1835
        ])
slouken@0
  1836
        AC_MSG_RESULT($use_pthreads)
slouken@415
  1837
        # Restore the compiler flags and libraries
slouken@415
  1838
        CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
slouken@1361
  1839
slouken@415
  1840
        # Do futher testing if we have pthread support...
slouken@0
  1841
        if test x$use_pthreads = xyes; then
slouken@1361
  1842
            AC_DEFINE(SDL_THREAD_PTHREAD)
slouken@1521
  1843
            EXTRA_CFLAGS="$EXTRA_CFLAGS $pthread_cflags"
slouken@1521
  1844
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS $pthread_lib"
slouken@0
  1845
            SDL_CFLAGS="$SDL_CFLAGS $pthread_cflags"
slouken@0
  1846
            SDL_LIBS="$SDL_LIBS $pthread_lib"
slouken@0
  1847
slouken@1438
  1848
            # Save the original compiler flags and libraries
slouken@1438
  1849
            ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
slouken@1438
  1850
            # Add the pthread compiler flags and libraries
slouken@1438
  1851
            CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
slouken@1438
  1852
slouken@0
  1853
            # Check to see if recursive mutexes are available
slouken@0
  1854
            AC_MSG_CHECKING(for recursive mutexes)
slouken@0
  1855
            has_recursive_mutexes=no
slouken@1324
  1856
            if test x$has_recursive_mutexes = xno; then
slouken@1324
  1857
                AC_TRY_COMPILE([
slouken@1324
  1858
                  #include <pthread.h>
slouken@1324
  1859
                ],[
slouken@1324
  1860
                  pthread_mutexattr_t attr;
slouken@1324
  1861
                  pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
slouken@1324
  1862
                ],[
slouken@1324
  1863
                has_recursive_mutexes=yes
slouken@1361
  1864
                AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX)
slouken@1324
  1865
                ])
slouken@1324
  1866
            fi
slouken@1324
  1867
            if test x$has_recursive_mutexes = xno; then
slouken@1324
  1868
                AC_TRY_COMPILE([
slouken@1324
  1869
                  #include <pthread.h>
slouken@1324
  1870
                ],[
slouken@1324
  1871
                  pthread_mutexattr_t attr;
slouken@1324
  1872
                  pthread_mutexattr_setkind_np(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
slouken@1324
  1873
                ],[
slouken@1324
  1874
                has_recursive_mutexes=yes
slouken@1361
  1875
                AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP)
slouken@1324
  1876
                ])
slouken@1324
  1877
            fi
slouken@0
  1878
            AC_MSG_RESULT($has_recursive_mutexes)
slouken@0
  1879
slouken@94
  1880
            # Check to see if pthread semaphore support is missing
slouken@94
  1881
            if test x$enable_pthread_sem = xyes; then
slouken@94
  1882
                AC_MSG_CHECKING(for pthread semaphores)
slouken@94
  1883
                have_pthread_sem=no
slouken@94
  1884
                AC_TRY_COMPILE([
slouken@94
  1885
                  #include <pthread.h>
slouken@94
  1886
                  #include <semaphore.h>
slouken@94
  1887
                ],[
slouken@94
  1888
                ],[
slouken@94
  1889
                have_pthread_sem=yes
slouken@94
  1890
                ])
slouken@94
  1891
                AC_MSG_RESULT($have_pthread_sem)
slouken@94
  1892
            fi
slouken@94
  1893
slouken@1438
  1894
            # Restore the compiler flags and libraries
slouken@1438
  1895
            CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
slouken@1438
  1896
slouken@1361
  1897
            # Basic thread creation functions
slouken@1361
  1898
            SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_systhread.c"
slouken@0
  1899
slouken@1361
  1900
            # Semaphores
slouken@1361
  1901
            # We can fake these with mutexes and condition variables if necessary
slouken@1361
  1902
            if test x$have_pthread_sem = xyes; then
slouken@1361
  1903
                SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syssem.c"
slouken@1361
  1904
            else
slouken@1361
  1905
                SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syssem.c"
slouken@1361
  1906
            fi
slouken@0
  1907
slouken@1361
  1908
            # Mutexes
slouken@1361
  1909
            # We can fake these with semaphores if necessary
slouken@1361
  1910
            SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_sysmutex.c"
slouken@0
  1911
slouken@1361
  1912
            # Condition variables
slouken@1361
  1913
            # We can fake these with semaphores and mutexes if necessary
slouken@1361
  1914
            SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syscond.c"
slouken@399
  1915
slouken@1361
  1916
            have_threads=yes
slouken@185
  1917
        else
slouken@1361
  1918
            CheckPTH
slouken@814
  1919
        fi
slouken@814
  1920
    fi
slouken@814
  1921
}
slouken@814
  1922
slouken@0
  1923
dnl Determine whether the compiler can produce Win32 executables
slouken@0
  1924
CheckWIN32()
slouken@0
  1925
{
slouken@0
  1926
    AC_MSG_CHECKING(Win32 compiler)
slouken@0
  1927
    have_win32_gcc=no
slouken@0
  1928
    AC_TRY_COMPILE([
slouken@0
  1929
     #include <windows.h>
slouken@0
  1930
    ],[
slouken@0
  1931
    ],[
slouken@0
  1932
    have_win32_gcc=yes
slouken@0
  1933
    ])
slouken@0
  1934
    AC_MSG_RESULT($have_win32_gcc)
slouken@0
  1935
    if test x$have_win32_gcc != xyes; then
slouken@0
  1936
       AC_MSG_ERROR([
slouken@0
  1937
*** Your compiler ($CC) does not produce Win32 executables!
slouken@0
  1938
       ])
slouken@0
  1939
    fi
slouken@0
  1940
slouken@0
  1941
    dnl See if the user wants to redirect standard output to files
slouken@0
  1942
    AC_ARG_ENABLE(stdio-redirect,
slouken@1637
  1943
AC_HELP_STRING([--enable-stdio-redirect], [Redirect STDIO to files on Win32 [[default=yes]]]),
slouken@0
  1944
                  , enable_stdio_redirect=yes)
slouken@0
  1945
    if test x$enable_stdio_redirect != xyes; then
slouken@1521
  1946
        EXTRA_CFLAGS="$EXTRA_CFLAGS -DNO_STDIO_REDIRECT"
slouken@1361
  1947
    fi
slouken@1361
  1948
slouken@1361
  1949
    if test x$enable_video = xyes; then
slouken@1361
  1950
        AC_DEFINE(SDL_VIDEO_DRIVER_WINDIB)
slouken@1361
  1951
        SOURCES="$SOURCES $srcdir/src/video/wincommon/*.c"
slouken@1361
  1952
        SOURCES="$SOURCES $srcdir/src/video/windib/*.c"
slouken@1361
  1953
        have_video=yes
slouken@0
  1954
    fi
slouken@0
  1955
}
slouken@0
  1956
slouken@0
  1957
dnl Find the DirectX includes and libraries
slouken@0
  1958
CheckDIRECTX()
slouken@0
  1959
{
slouken@0
  1960
    AC_ARG_ENABLE(directx,
slouken@1637
  1961
AC_HELP_STRING([--enable-directx], [use DirectX for Win32 audio/video [[default=yes]]]),
slouken@0
  1962
                  , enable_directx=yes)
slouken@0
  1963
    if test x$enable_directx = xyes; then
slouken@1361
  1964
        have_directx=no
slouken@1361
  1965
        AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
slouken@1361
  1966
        AC_CHECK_HEADER(dsound.h, have_dsound=yes)
slouken@1361
  1967
        AC_CHECK_HEADER(dinput.h, use_dinput=yes)
slouken@1361
  1968
        if test x$have_ddraw = xyes -a x$have_dsound = xyes -a x$use_dinput = xyes; then
slouken@1361
  1969
            have_directx=yes
slouken@1361
  1970
        fi
slouken@1361
  1971
        if test x$enable_video = xyes -a x$have_directx = xyes; then
slouken@1361
  1972
            AC_DEFINE(SDL_VIDEO_DRIVER_DDRAW)
slouken@1361
  1973
            SOURCES="$SOURCES $srcdir/src/video/windx5/*.c"
slouken@1361
  1974
            have_video=yes
slouken@1361
  1975
        fi
slouken@0
  1976
    fi
slouken@158
  1977
}
slouken@158
  1978
slouken@294
  1979
dnl Check for the dlfcn.h interface for dynamically loading objects
slouken@294
  1980
CheckDLOPEN()
slouken@294
  1981
{
slouken@731
  1982
    AC_ARG_ENABLE(sdl-dlopen,
slouken@1637
  1983
AC_HELP_STRING([--enable-sdl-dlopen], [use dlopen for shared object loading [[default=yes]]]),
slouken@731
  1984
                  , enable_sdl_dlopen=yes)
slouken@731
  1985
    if test x$enable_sdl_dlopen = xyes; then
slouken@294
  1986
        AC_MSG_CHECKING(for dlopen)
slouken@1361
  1987
        have_dlopen=no
slouken@294
  1988
        AC_TRY_COMPILE([
slouken@294
  1989
         #include <dlfcn.h>
slouken@294
  1990
        ],[
slouken@1638
  1991
         #if defined(MAC_OS_X_VERSION_MIN_REQUIRED) && MAC_OS_X_VERSION_MIN_REQUIRED <= 1020
slouken@1638
  1992
         #error Use dlcompat for Mac OS X 10.2 compatibility
slouken@1638
  1993
         #endif
slouken@294
  1994
        ],[
slouken@1361
  1995
        have_dlopen=yes
slouken@294
  1996
        ])
slouken@1361
  1997
        AC_MSG_RESULT($have_dlopen)
slouken@294
  1998
slouken@1361
  1999
        if test x$have_dlopen = xyes; then
slouken@1521
  2000
            AC_CHECK_LIB(c, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS",
slouken@1521
  2001
               AC_CHECK_LIB(dl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldl",
slouken@1521
  2002
                  AC_CHECK_LIB(ltdl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lltdl")))
slouken@1361
  2003
            AC_CHECK_LIB(dl, dlvsym, have_dlvsym=yes)
slouken@1361
  2004
            if test x$have_dlvsym = xyes; then
slouken@1361
  2005
                AC_DEFINE(HAVE_DLVSYM)
slouken@1361
  2006
            fi
slouken@1361
  2007
            AC_DEFINE(SDL_LOADSO_DLOPEN)
slouken@1361
  2008
            SOURCES="$SOURCES $srcdir/src/loadso/dlopen/*.c"
slouken@1361
  2009
            have_loadso=yes
slouken@294
  2010
        fi
slouken@294
  2011
    fi
slouken@294
  2012
}
slouken@294
  2013
patmandin@651
  2014
dnl Set up the Atari LDG (shared object loader)
patmandin@651
  2015
CheckAtariLdg()
patmandin@651
  2016
{
patmandin@651
  2017
    AC_ARG_ENABLE(atari-ldg,
slouken@1637
  2018
AC_HELP_STRING([--enable-atari-ldg], [use Atari LDG for shared object loading [[default=yes]]]),
patmandin@651
  2019
                  , enable_atari_ldg=yes)
patmandin@651
  2020
    if test x$video_gem = xyes -a x$enable_atari_ldg = xyes; then
patmandin@651
  2021
        AC_CHECK_HEADER(ldg.h, have_ldg_hdr=yes)
patmandin@651
  2022
        AC_CHECK_LIB(ldg, ldg_open, have_ldg_lib=yes, have_ldg_lib=no, -lgem)
patmandin@651
  2023
        if test x$have_ldg_hdr = xyes -a x$have_ldg_lib = xyes; then
slouken@1361
  2024
            AC_DEFINE(SDL_LOADSO_LDG)
slouken@1361
  2025
            SOURCES="$SOURCES $srcdir/src/loadso/mint/*.c"
patmandin@1825
  2026
            SDL_LIBS="$SDL_LIBS -lldg -lgem"
icculus@1173
  2027
            have_loadso=yes
patmandin@651
  2028
        fi
patmandin@651
  2029
    fi
patmandin@651
  2030
}
patmandin@651
  2031
slouken@381
  2032
dnl Check for the usbhid(3) library on *BSD
slouken@381
  2033
CheckUSBHID()
slouken@381
  2034
{
slouken@381
  2035
    if test x$enable_joystick = xyes; then
slouken@1565
  2036
        AC_CHECK_LIB(usbhid, hid_init, have_libusbhid=yes)
slouken@1565
  2037
        if test x$have_libusbhid = xyes; then
slouken@1565
  2038
            AC_CHECK_HEADER(usbhid.h, [USB_CFLAGS="-DHAVE_USBHID_H"])
slouken@1565
  2039
            AC_CHECK_HEADER(libusbhid.h, [USB_CFLAGS="-DHAVE_LIBUSBHID_H"])
slouken@1565
  2040
            USB_LIBS="$USB_LIBS -lusbhid"
slouken@1565
  2041
        else
slouken@1565
  2042
            AC_CHECK_HEADER(usb.h, [USB_CFLAGS="-DHAVE_USB_H"])
slouken@1565
  2043
            AC_CHECK_HEADER(libusb.h, [USB_CFLAGS="-DHAVE_LIBUSB_H"])
slouken@1565
  2044
            AC_CHECK_LIB(usb, hid_init, [USB_LIBS="$USB_LIBS -lusb"])
slouken@1565
  2045
        fi
slouken@1361
  2046
            
slouken@1361
  2047
        save_CFLAGS="$CFLAGS"
slouken@1361
  2048
        CFLAGS="$CFLAGS $USB_CFLAGS"
slouken@381
  2049
slouken@381
  2050
        AC_MSG_CHECKING(for usbhid)
slouken@381
  2051
        have_usbhid=no
slouken@381
  2052
        AC_TRY_COMPILE([
slouken@404
  2053
          #include <sys/types.h>
slouken@403
  2054
          #if defined(HAVE_USB_H)
slouken@403
  2055
          #include <usb.h>
slouken@403
  2056
          #endif
slouken@1565
  2057
          #ifdef __DragonFly__
slouken@1565
  2058
          # include <bus/usb/usb.h>
slouken@1565
  2059
          # include <bus/usb/usbhid.h>
slouken@1565
  2060
          #else
slouken@1565
  2061
          # include <dev/usb/usb.h>
slouken@1565
  2062
          # include <dev/usb/usbhid.h>
slouken@1565
  2063
          #endif
slouken@381
  2064
          #if defined(HAVE_USBHID_H)
slouken@381
  2065
          #include <usbhid.h>
slouken@381
  2066
          #elif defined(HAVE_LIBUSB_H)
slouken@381
  2067
          #include <libusb.h>
slouken@381
  2068
          #elif defined(HAVE_LIBUSBHID_H)
slouken@381
  2069
          #include <libusbhid.h>
slouken@404
  2070
          #endif
slouken@381
  2071
        ],[
slouken@381
  2072
          struct report_desc *repdesc;
slouken@381
  2073
          struct usb_ctl_report *repbuf;
slouken@402
  2074
          hid_kind_t hidkind;
slouken@381
  2075
        ],[
slouken@381
  2076
        have_usbhid=yes
slouken@381
  2077
        ])
slouken@381
  2078
        AC_MSG_RESULT($have_usbhid)
slouken@381
  2079
slouken@381
  2080
        if test x$have_usbhid = xyes; then
slouken@381
  2081
            AC_MSG_CHECKING(for ucr_data member of usb_ctl_report)
slouken@381
  2082
            have_usbhid_ucr_data=no
slouken@381
  2083
            AC_TRY_COMPILE([
slouken@404
  2084
              #include <sys/types.h>
slouken@404
  2085
              #if defined(HAVE_USB_H)
slouken@404
  2086
              #include <usb.h>
slouken@404
  2087
              #endif
slouken@1565
  2088
              #ifdef __DragonFly__
slouken@1565
  2089
              # include <bus/usb/usb.h>
slouken@1565
  2090
              # include <bus/usb/usbhid.h>
slouken@1565
  2091
              #else
slouken@1565
  2092
              # include <dev/usb/usb.h>
slouken@1565
  2093
              # include <dev/usb/usbhid.h>
slouken@1565
  2094
              #endif
slouken@381
  2095
              #if defined(HAVE_USBHID_H)
slouken@381
  2096
              #include <usbhid.h>
slouken@381
  2097
              #elif defined(HAVE_LIBUSB_H)
slouken@381
  2098
              #include <libusb.h>
slouken@381
  2099
              #elif defined(HAVE_LIBUSBHID_H)
slouken@381
  2100
              #include <libusbhid.h>
slouken@381
  2101
              #endif
slouken@381
  2102
            ],[
slouken@381
  2103
              struct usb_ctl_report buf;
slouken@381
  2104
              if (buf.ucr_data) { }
slouken@381
  2105
            ],[
slouken@381
  2106
            have_usbhid_ucr_data=yes
slouken@381
  2107
            ])
slouken@381
  2108
            if test x$have_usbhid_ucr_data = xyes; then
slouken@1361
  2109
                USB_CFLAGS="$USB_CFLAGS -DUSBHID_UCR_DATA"
slouken@381
  2110
            fi
slouken@381
  2111
            AC_MSG_RESULT($have_usbhid_ucr_data)
slouken@407
  2112
            
slouken@1361
  2113
            AC_MSG_CHECKING(for new usbhid API)
slouken@407
  2114
            have_usbhid_new=no
slouken@407
  2115
            AC_TRY_COMPILE([
slouken@407
  2116
              #include <sys/types.h>
slouken@407
  2117
              #if defined(HAVE_USB_H)
slouken@407
  2118
              #include <usb.h>
slouken@407
  2119
              #endif
slouken@4037
  2120
              #ifdef __DragonFly__
slouken@4028
  2121
              #include <bus/usb/usb.h>
slouken@4028
  2122
              #include <bus/usb/usbhid.h>
slouken@4037
  2123
              #else
slouken@407
  2124
              #include <dev/usb/usb.h>
slouken@407
  2125
              #include <dev/usb/usbhid.h>
slouken@4037
  2126
              #endif
slouken@407
  2127
              #if defined(HAVE_USBHID_H)
slouken@407
  2128
              #include <usbhid.h>
slouken@407
  2129
              #elif defined(HAVE_LIBUSB_H)
slouken@407
  2130
              #include <libusb.h>
slouken@407
  2131
              #elif defined(HAVE_LIBUSBHID_H)
slouken@407
  2132
              #include <libusbhid.h>
slouken@407
  2133
              #endif
slouken@407
  2134
            ],[
slouken@407
  2135
              report_desc_t d;
slouken@1361
  2136
              hid_start_parse(d, 1, 1);
slouken@407
  2137
            ],[
slouken@407
  2138
            have_usbhid_new=yes
slouken@407
  2139
            ])
slouken@407
  2140
            if test x$have_usbhid_new = xyes; then
slouken@1361
  2141
                USB_CFLAGS="$USB_CFLAGS -DUSBHID_NEW"
slouken@407
  2142
            fi
slouken@407
  2143
            AC_MSG_RESULT($have_usbhid_new)
slouken@381
  2144
slouken@1565
  2145
            AC_MSG_CHECKING(for struct joystick in machine/joystick.h)
slouken@1565
  2146
            have_machine_joystick=no
slouken@1565
  2147
            AC_TRY_COMPILE([
slouken@1565
  2148
              #include <machine/joystick.h>
slouken@1565
  2149
            ],[
slouken@1565
  2150
              struct joystick t;
slouken@1565
  2151
            ],[
slouken@1565
  2152
            have_machine_joystick=yes
slouken@1565
  2153
            ])
slouken@1565
  2154
            if test x$have_machine_joystick = xyes; then
slouken@1565
  2155
                AC_DEFINE(SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H)
slouken@1565
  2156
            fi
slouken@1565
  2157
            AC_MSG_RESULT($have_machine_joystick)
slouken@1565
  2158
slouken@1361
  2159
            AC_DEFINE(SDL_JOYSTICK_USBHID)
slouken@1361
  2160
            SOURCES="$SOURCES $srcdir/src/joystick/bsd/*.c"
slouken@1521
  2161
            EXTRA_CFLAGS="$EXTRA_CFLAGS $USB_CFLAGS"
slouken@1521
  2162
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS $USB_LIBS"
slouken@1361
  2163
            have_joystick=yes
slouken@381
  2164
        fi
slouken@1361
  2165
        CFLAGS="$save_CFLAGS"
slouken@381
  2166
    fi
slouken@381
  2167
}
slouken@381
  2168
slouken@1361
  2169
dnl Check for clock_gettime()
slouken@1361
  2170
CheckClockGettime()
slouken@795
  2171
{
slouken@1361
  2172
    AC_ARG_ENABLE(clock_gettime,
slouken@1637
  2173
AC_HELP_STRING([--enable-clock_gettime], [use clock_gettime() instead of gettimeofday() on UNIX [[default=no]]]),
slouken@1361
  2174
                  , enable_clock_gettime=no)
slouken@1361
  2175
    if test x$enable_clock_gettime = xyes; then
slouken@1361
  2176
        AC_CHECK_LIB(rt, clock_gettime, have_clock_gettime=yes)
slouken@1361
  2177
        if test x$have_clock_gettime = xyes; then
slouken@1361
  2178
            AC_DEFINE(HAVE_CLOCK_GETTIME)
slouken@1521
  2179
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lrt"
icculus@1175
  2180
        fi
slouken@795
  2181
    fi
slouken@795
  2182
}
slouken@795
  2183
slouken@1062
  2184
dnl Check for a valid linux/version.h
slouken@1062
  2185
CheckLinuxVersion()
slouken@1062
  2186
{
slouken@1062
  2187
    AC_CHECK_HEADER(linux/version.h, have_linux_version_h=yes)
slouken@1062
  2188
    if test x$have_linux_version_h = xyes; then
slouken@1521
  2189
        EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_LINUX_VERSION_H"
slouken@1062
  2190
    fi
slouken@1062
  2191
}
slouken@1062
  2192
slouken@1127
  2193
dnl Check if we want to use RPATH
slouken@1127
  2194
CheckRPATH()
slouken@1127
  2195
{
slouken@1127
  2196
    AC_ARG_ENABLE(rpath,
slouken@1637
  2197
AC_HELP_STRING([--enable-rpath], [use an rpath when linking SDL [[default=yes]]]),
slouken@1127
  2198
                  , enable_rpath=yes)
slouken@1127
  2199
}
slouken@1127
  2200
slouken@1550
  2201
dnl Set up the configuration based on the host platform!
slouken@1550
  2202
case "$host" in
slouken@1361
  2203
    arm-*-elf*) # FIXME: Can we get more specific for iPodLinux?
slouken@1361
  2204
        ARCH=linux
slouken@1361
  2205
        CheckDummyVideo
slouken@1361
  2206
        CheckIPod
slouken@1361
  2207
        # Set up files for the timer library
icculus@1140
  2208
        if test x$enable_timers = xyes; then
slouken@1361
  2209
            AC_DEFINE(SDL_TIMER_UNIX)
slouken@1361
  2210
            SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
slouken@1361
  2211
            have_timers=yes
icculus@1140
  2212
        fi
slouken@1361
  2213
        ;;
slouken@1820
  2214
    *-*-linux*|*-*-uclinux*|*-*-gnu*|*-*-k*bsd*-gnu|*-*-bsdi*|*-*-freebsd*|*-*-dragonfly*|*-*-netbsd*|*-*-openbsd*|*-*-sysv5*|*-*-solaris*|*-*-hpux*|*-*-irix*|*-*-aix*|*-*-osf*)
slouken@1550
  2215
        case "$host" in
slouken@1361
  2216
            *-*-linux*)         ARCH=linux ;;
slouken@1820
  2217
            *-*-uclinux*)       ARCH=linux ;;
slouken@1361
  2218
            *-*-kfreebsd*-gnu)  ARCH=kfreebsd-gnu ;;
slouken@1361
  2219
            *-*-knetbsd*-gnu)   ARCH=knetbsd-gnu ;;
slouken@1361
  2220
            *-*-kopenbsd*-gnu)  ARCH=kopenbsd-gnu ;;
slouken@1361
  2221
            *-*-gnu*)           ARCH=gnu ;; # must be last of the gnu variants
slouken@1361
  2222
            *-*-bsdi*)          ARCH=bsdi ;;
slouken@1361
  2223
            *-*-freebsd*)       ARCH=freebsd ;;
slouken@1565
  2224
            *-*-dragonfly*)     ARCH=freebsd ;;
slouken@1361
  2225
            *-*-netbsd*)        ARCH=netbsd ;;
slouken@1361
  2226
            *-*-openbsd*)       ARCH=openbsd ;;
slouken@1361
  2227
            *-*-sysv5*)         ARCH=sysv5 ;;
slouken@1361
  2228
            *-*-solaris*)       ARCH=solaris ;;
slouken@1361
  2229
            *-*-hpux*)          ARCH=hpux ;;
slouken@1361
  2230
            *-*-irix*)          ARCH=irix ;;
slouken@1361
  2231
            *-*-aix*)           ARCH=aix ;;
slouken@1361
  2232
            *-*-osf*)           ARCH=osf ;;
slouken@795
  2233
        esac
icculus@1573
  2234
        CheckVisibilityHidden
slouken@1
  2235
        CheckDummyVideo
slouken@68
  2236
        CheckDiskAudio
icculus@1532
  2237
        CheckDummyAudio
slouken@371
  2238
        CheckDLOPEN
slouken@0
  2239
        CheckNASM
slouken@1361
  2240
        CheckAltivec
slouken@0
  2241
        CheckOSS
slouken@1361
  2242
        CheckDMEDIA
slouken@1438
  2243
        CheckMME
slouken@0
  2244
        CheckALSA
slouken@0
  2245
        CheckARTSC
slouken@0
  2246
        CheckESD
icculus@3939
  2247
        CheckPulseAudio
slouken@0
  2248
        CheckNAS
slouken@0
  2249
        CheckX11
slouken@30
  2250
        CheckNANOX
slouken@0
  2251
        CheckFBCON
slouken@167
  2252
        CheckDirectFB
slouken@70
  2253
        CheckPS2GS
slouken@0
  2254
        CheckGGI
slouken@0
  2255
        CheckSVGA
slouken@1361
  2256
        CheckVGL
slouken@1361
  2257
        CheckWscons
slouken@0
  2258
        CheckAAlib
slouken@371
  2259
        CheckQtopia
slouken@433
  2260
        CheckPicoGUI
icculus@1191
  2261
        CheckOpenGLX11
slouken@0
  2262
        CheckInputEvents
icculus@1201
  2263
        CheckTslib
slouken@1361
  2264
        CheckUSBHID
slouken@0
  2265
        CheckPTHREAD
slouken@1361
  2266
        CheckClockGettime
slouken@1062
  2267
        CheckLinuxVersion
slouken@1127
  2268
        CheckRPATH
slouken@1361
  2269
        # Set up files for the audio library
slouken@1361
  2270
        if test x$enable_audio = xyes; then
slouken@1361
  2271
          case $ARCH in
slouken@1565
  2272
            sysv5|solaris|hpux)
slouken@1361
  2273
                AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO)
slouken@1361
  2274
                SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
slouken@1361
  2275
                have_audio=yes
slouken@1361
  2276
            ;;
slouken@1565
  2277
            netbsd|openbsd)
slouken@1567
  2278
                AC_DEFINE(SDL_AUDIO_DRIVER_BSD)
slouken@1567
  2279
                SOURCES="$SOURCES $srcdir/src/audio/bsd/*.c"
slouken@1361
  2280
                have_audio=yes
slouken@1361
  2281
            ;;
slouken@1361
  2282
            aix)
slouken@1361
  2283
                AC_DEFINE(SDL_AUDIO_DRIVER_PAUD)
slouken@1361
  2284
                SOURCES="$SOURCES $srcdir/src/audio/paudio/*.c"
slouken@1361
  2285
                have_audio=yes
slouken@1361
  2286
            ;;
slouken@1361
  2287
          esac
slouken@371
  2288
        fi
slouken@0
  2289
        # Set up files for the joystick library
slouken@0
  2290
        if test x$enable_joystick = xyes; then
slouken@1361
  2291
          case $ARCH in
slouken@1361
  2292
            linux)
slouken@1361
  2293
                AC_DEFINE(SDL_JOYSTICK_LINUX)
slouken@1361
  2294
                SOURCES="$SOURCES $srcdir/src/joystick/linux/*.c"
slouken@1361
  2295
                have_joystick=yes
slouken@1361
  2296
            ;;
slouken@1361
  2297
          esac
slouken@0
  2298
        fi
slouken@0
  2299
        # Set up files for the cdrom library
slouken@0
  2300
        if test x$enable_cdrom = xyes; then
slouken@1361
  2301
          case $ARCH in
slouken@1361
  2302
            linux|solaris)
slouken@1361
  2303
                AC_DEFINE(SDL_CDROM_LINUX)
slouken@1361
  2304
                SOURCES="$SOURCES $srcdir/src/cdrom/linux/*.c"
slouken@1361
  2305
                have_cdrom=yes
slouken@1361
  2306
            ;;
slouken@1361
  2307
            *freebsd*)
slouken@1361
  2308
                AC_DEFINE(SDL_CDROM_FREEBSD)
slouken@1361
  2309
                SOURCES="$SOURCES $srcdir/src/cdrom/freebsd/*.c"
slouken@1361
  2310
                have_cdrom=yes
slouken@1361
  2311
            ;;
slouken@1383
  2312
            *openbsd*|*netbsd*)
slouken@1361
  2313
                AC_DEFINE(SDL_CDROM_OPENBSD)
slouken@1361
  2314
                SOURCES="$SOURCES $srcdir/src/cdrom/openbsd/*.c"
slouken@1361
  2315
                have_cdrom=yes
slouken@1361
  2316
            ;;
slouken@1361
  2317
            bsdi)
slouken@1361
  2318
                AC_DEFINE(SDL_CDROM_BSDI)
slouken@1361
  2319
                SOURCES="$SOURCES $srcdir/src/cdrom/bsdi/*.c"
slouken@1361
  2320
                have_cdrom=yes
slouken@1361
  2321
            ;;
slouken@1361
  2322
            aix)
slouken@1361
  2323
                AC_DEFINE(SDL_CDROM_AIX)
slouken@1361
  2324
                SOURCES="$SOURCES $srcdir/src/cdrom/aix/*.c"
slouken@1361
  2325
                have_cdrom=yes
slouken@1361
  2326
            ;;
slouken@1361
  2327
            osf)
slouken@1361
  2328
                AC_DEFINE(SDL_CDROM_OSF)
slouken@1361
  2329
                SOURCES="$SOURCES $srcdir/src/cdrom/osf/*.c"
slouken@1361
  2330
                have_cdrom=yes
slouken@1361
  2331
            ;;
slouken@1361
  2332
          esac
slouken@0
  2333
        fi
slouken@0
  2334
        # Set up files for the thread library
slouken@1361
  2335
        if test x$enable_threads = xyes -a x$use_pthreads != xyes -a x$use_pth != xyes -a x$ARCH = xirix; then
slouken@1361
  2336
            AC_DEFINE(SDL_THREAD_SPROC)
slouken@1361
  2337
            SOURCES="$SOURCES $srcdir/src/thread/irix/*.c"
slouken@1361
  2338
            SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_sysmutex.c"
slouken@1361
  2339
            SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
slouken@1361
  2340
            have_threads=yes
slouken@0
  2341
        fi
slouken@0
  2342
        # Set up files for the timer library
slouken@0
  2343
        if test x$enable_timers = xyes; then
slouken@1361
  2344
            AC_DEFINE(SDL_TIMER_UNIX)
slouken@1361
  2345
            SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
slouken@1361
  2346
            have_timers=yes
slouken@0
  2347
        fi
slouken@0
  2348
        ;;
slouken@0
  2349
    *-*-qnx*)
slouken@0
  2350
        ARCH=qnx
slouken@1
  2351
        CheckDummyVideo
slouken@68
  2352
        CheckDiskAudio
icculus@1532
  2353
        CheckDummyAudio
slouken@886
  2354
        # CheckNASM
slouken@371
  2355
        CheckDLOPEN
slouken@0
  2356
        CheckNAS
slouken@0
  2357
        CheckPHOTON
slouken@0
  2358
        CheckX11
icculus@1191
  2359
        CheckOpenGLX11
slouken@0
  2360
        CheckPTHREAD
slouken@0
  2361
        # Set up files for the audio library
slouken@0
  2362
        if test x$enable_audio = xyes; then
slouken@1361
  2363
            AC_DEFINE(SDL_AUDIO_DRIVER_QNXNTO)
slouken@1361
  2364
            SOURCES="$SOURCES $srcdir/src/audio/nto/*.c"
slouken@1521
  2365
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lasound"
slouken@1361
  2366
            have_audio=yes
slouken@0
  2367
        fi
slouken@0
  2368
        # Set up files for the cdrom library
slouken@0
  2369
        if test x$enable_cdrom = xyes; then
slouken@1361
  2370
            AC_DEFINE(SDL_CDROM_QNX)
slouken@1361
  2371
            SOURCES="$SOURCES $srcdir/src/cdrom/qnx/*.c"
slouken@1361
  2372
            have_cdrom=yes
slouken@0
  2373
        fi
slouken@0
  2374
        # Set up files for the timer library
slouken@0
  2375
        if test x$enable_timers = xyes; then
slouken@1361
  2376
            AC_DEFINE(SDL_TIMER_UNIX)
slouken@1361
  2377
            SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
slouken@1361
  2378
            have_timers=yes
slouken@0
  2379
        fi
slouken@0
  2380
        ;;
slouken@0
  2381
    *-*-cygwin* | *-*-mingw32*)
slouken@0
  2382
        ARCH=win32
slouken@1550
  2383
        if test "$build" != "$host"; then # cross-compiling
slouken@0
  2384
            # Default cross-compile location
slouken@4058
  2385
            ac_default_prefix=/usr/local/cross-tools/i386-mingw32
slouken@0
  2386
        else
slouken@0
  2387
            # Look for the location of the tools and install there
slouken@750
  2388
            if test "$BUILD_PREFIX" != ""; then
slouken@1
  2389
                ac_default_prefix=$BUILD_PREFIX
slouken@1
  2390
            fi
slouken@0
  2391
        fi
slouken@1
  2392
        CheckDummyVideo
slouken@68
  2393
        CheckDiskAudio
icculus@1532
  2394
        CheckDummyAudio
slouken@0
  2395
        CheckWIN32
slouken@1361
  2396
        CheckWIN32GL
slouken@0
  2397
        CheckDIRECTX
slouken@0
  2398
        CheckNASM
slouken@0
  2399
        # Set up files for the audio library
slouken@0
  2400
        if test x$enable_audio = xyes; then
slouken@1361
  2401
            AC_DEFINE(SDL_AUDIO_DRIVER_WAVEOUT)
slouken@1361
  2402
            SOURCES="$SOURCES $srcdir/src/audio/windib/*.c"
slouken@1361
  2403
            if test x$have_directx = xyes; then
slouken@1361
  2404
                AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND)
slouken@1361
  2405
                SOURCES="$SOURCES $srcdir/src/audio/windx5/*.c"
slouken@0
  2406
            fi
slouken@1361
  2407
            have_audio=yes
slouken@0
  2408
        fi
slouken@0
  2409
        # Set up files for the joystick library
slouken@0
  2410
        if test x$enable_joystick = xyes; then
slouken@1855
  2411
            AC_DEFINE(SDL_JOYSTICK_WINMM)
slouken@1855
  2412
            SOURCES="$SOURCES $srcdir/src/joystick/win32/*.c"
slouken@1361
  2413
            have_joystick=yes
slouken@0
  2414
        fi
slouken@0
  2415
        # Set up files for the cdrom library
slouken@0
  2416
        if test x$enable_cdrom = xyes; then
slouken@1361
  2417
            AC_DEFINE(SDL_CDROM_WIN32)
slouken@1361
  2418
            SOURCES="$SOURCES $srcdir/src/cdrom/win32/*.c"
slouken@1361
  2419
            have_cdrom=yes
slouken@0
  2420
        fi
slouken@0
  2421
        # Set up files for the thread library
slouken@0
  2422
        if test x$enable_threads = xyes; then
slouken@1361
  2423
            AC_DEFINE(SDL_THREAD_WIN32)
slouken@1361
  2424
            SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_sysmutex.c"
slouken@1361
  2425
            SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_syssem.c"
slouken@1361
  2426
            SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_systhread.c"
slouken@1361
  2427
            SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
slouken@1361
  2428
            have_threads=yes
slouken@0
  2429
        fi
slouken@0
  2430
        # Set up files for the timer library
slouken@0
  2431
        if test x$enable_timers = xyes; then
slouken@1361
  2432
            AC_DEFINE(SDL_TIMER_WIN32)
slouken@1361
  2433
            SOURCES="$SOURCES $srcdir/src/timer/win32/*.c"
slouken@1361
  2434
            have_timers=yes
slouken@1361
  2435
        fi
slouken@1361
  2436
        # Set up files for the shared object loading library
slouken@1361
  2437
        if test x$enable_loadso = xyes; then
slouken@1361
  2438
            AC_DEFINE(SDL_LOADSO_WIN32)
slouken@1361
  2439
            SOURCES="$SOURCES $srcdir/src/loadso/win32/*.c"
slouken@1361
  2440
            have_loadso=yes
slouken@1361
  2441
        fi
slouken@1361
  2442
        # Set up the system libraries we need
slouken@1521
  2443
        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -luser32 -lgdi32 -lwinmm"
slouken@1361
  2444
        if test x$have_directx = xyes; then
slouken@1521
  2445
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldxguid"
slouken@0
  2446
        fi
slouken@0
  2447
        # The Win32 platform requires special setup
slouken@4078
  2448
        SOURCES="$SOURCES $srcdir/src/main/win32/*.rc"
slouken@1397
  2449
        SDLMAIN_SOURCES="$srcdir/src/main/win32/*.c"
slouken@0
  2450
        SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
slouken@1363
  2451
        SDL_LIBS="-lmingw32 -lSDLmain $SDL_LIBS -mwindows"
slouken@0
  2452
        ;;
slouken@4134
  2453
    *-wince*)
slouken@4134
  2454
        ARCH=win32
slouken@4134
  2455
        CheckDummyVideo
slouken@4134
  2456
        CheckDiskAudio
slouken@4134
  2457
        CheckDummyAudio
slouken@4134
  2458
        CheckWIN32
slouken@4134
  2459
        CheckNASM
slouken@4134
  2460
        SOURCES="$SOURCES $srcdir/src/video/gapi/*.c"
slouken@4134
  2461
        EXTRA_CFLAGS="$EXTRA_CFLAGS -D_WIN32_WCE=0x420"
slouken@4134
  2462
        if test x$enable_audio = xyes; then
slouken@4134
  2463
            AC_DEFINE(SDL_AUDIO_DRIVER_WAVEOUT)
slouken@4134
  2464
            SOURCES="$SOURCES $srcdir/src/audio/windib/*.c"
slouken@4134
  2465
            have_audio=yes
slouken@4134
  2466
        fi
slouken@4134
  2467
        # Set up files for the thread library
slouken@4134
  2468
        if test x$enable_threads = xyes; then
slouken@4134
  2469
            AC_DEFINE(SDL_THREAD_WIN32)
slouken@4134
  2470
            SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_sysmutex.c"
slouken@4134
  2471
            SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_syssem.c"
slouken@4134
  2472
            SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_systhread.c"
slouken@4134
  2473
            SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
slouken@4134
  2474
            have_threads=yes
slouken@4134
  2475
        fi
slouken@4134
  2476
        # Set up files for the timer library
slouken@4134
  2477
        if test x$enable_timers = xyes; then
slouken@4134
  2478
            AC_DEFINE(SDL_TIMER_WINCE)
slouken@4134
  2479
            SOURCES="$SOURCES $srcdir/src/timer/wince/*.c"
slouken@4134
  2480
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lcoredll -lmmtimer"
slouken@4134
  2481
            have_timers=yes
slouken@4134
  2482
        fi
slouken@4134
  2483
        # Set up files for the shared object loading library
slouken@4134
  2484
        if test x$enable_loadso = xyes; then
slouken@4134
  2485
            AC_DEFINE(SDL_LOADSO_WIN32)
slouken@4134
  2486
            SOURCES="$SOURCES $srcdir/src/loadso/win32/*.c"
slouken@4134
  2487
            have_loadso=yes
slouken@4134
  2488
        fi
slouken@4134
  2489
        # Set up the system libraries we need
slouken@4134
  2490
        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lcoredll -lcommctrl"
slouken@4134
  2491
        # The Win32 platform requires special setup
slouken@4134
  2492
        SDLMAIN_SOURCES="$srcdir/src/main/win32/*.c"
slouken@4134
  2493
        SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main -D_WIN32_WCE=0x420"
slouken@4134
  2494
        SDL_LIBS="-lSDLmain $SDL_LIBS"
slouken@4134
  2495
        ;;
slouken@0
  2496
    *-*-beos*)
slouken@0
  2497
        ARCH=beos
slouken@0
  2498
        ac_default_prefix=/boot/develop/tools/gnupro
slouken@1
  2499
        CheckDummyVideo
slouken@68
  2500
        CheckDiskAudio
icculus@1532
  2501
        CheckDummyAudio
slouken@0
  2502
        CheckNASM
slouken@0
  2503
        CheckBWINDOW
slouken@0
  2504
        CheckBeGL
slouken@0
  2505
        # Set up files for the audio library
slouken@0
  2506
        if test x$enable_audio = xyes; then
slouken@1361
  2507
            AC_DEFINE(SDL_AUDIO_DRIVER_BAUDIO)
slouken@1361
  2508
            SOURCES="$SOURCES $srcdir/src/audio/baudio/*.cc"
slouken@1361
  2509
            have_audio=yes
slouken@0
  2510
        fi
slouken@0
  2511
        # Set up files for the joystick library
slouken@0
  2512
        if test x$enable_joystick = xyes; then
slouken@1361
  2513
            AC_DEFINE(SDL_JOYSTICK_BEOS)
slouken@1361
  2514
            SOURCES="$SOURCES $srcdir/src/joystick/beos/*.cc"
slouken@1361
  2515
            have_joystick=yes
slouken@0
  2516
        fi
slouken@0
  2517
        # Set up files for the cdrom library
slouken@0
  2518
        if test x$enable_cdrom = xyes; then
slouken@1361
  2519
            AC_DEFINE(SDL_CDROM_BEOS)
slouken@1361
  2520
            SOURCES="$SOURCES $srcdir/src/cdrom/beos/*.cc"
slouken@1361
  2521
            have_cdrom=yes
slouken@0
  2522
        fi
slouken@0
  2523
        # Set up files for the thread library
slouken@0
  2524
        if test x$enable_threads = xyes; then
slouken@1361
  2525
            AC_DEFINE(SDL_THREAD_BEOS)
slouken@1361
  2526
            SOURCES="$SOURCES $srcdir/src/thread/beos/*.c"
slouken@1361
  2527
            SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_sysmutex.c"
slouken@1361
  2528
            SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
slouken@1361
  2529
            have_threads=yes
slouken@0
  2530
        fi
slouken@0
  2531
        # Set up files for the timer library
slouken@0
  2532
        if test x$enable_timers = xyes; then
slouken@1361
  2533
            AC_DEFINE(SDL_TIMER_BEOS)
slouken@1361
  2534
            SOURCES="$SOURCES $srcdir/src/timer/beos/*.c"
slouken@1361
  2535
            have_timers=yes
slouken@1361
  2536
        fi
slouken@1361
  2537
        # Set up files for the shared object loading library
slouken@1361
  2538
        if test x$enable_loadso = xyes; then
slouken@1361
  2539
            AC_DEFINE(SDL_LOADSO_BEOS)
slouken@1361
  2540
            SOURCES="$SOURCES $srcdir/src/loadso/beos/*.c"
slouken@1361
  2541
            have_loadso=yes
slouken@0
  2542
        fi
slouken@1367
  2543
        # The BeOS platform requires special setup.
slouken@1367
  2544
        SOURCES="$srcdir/src/main/beos/*.cc $SOURCES"
slouken@1521
  2545
        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding"
slouken@0
  2546
        ;;
slouken@0
  2547
    *-*-darwin* )
icculus@1133
  2548
        # This could be either full "Mac OS X", or plain "Darwin" which is
slouken@158
  2549
        # just the OS X kernel sans upper layers like Carbon and Cocoa.
icculus@1133
  2550
        # Next line is broken, and a few files below require Mac OS X (full)
slouken@158
  2551
        ARCH=macosx
slouken@1624
  2552
slouken@1628
  2553
        # Mac OS X builds with both the Carbon and OSX APIs at the moment
slouken@1638
  2554
        EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_CARBON"
slouken@1638
  2555
        EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_OSX"
slouken@1628
  2556
slouken@1628
  2557
        # HACK: Reset EXTRA_LDFLAGS; the only thing it contains at this point
slouken@1628
  2558
        # is -lm which is not needed under Mac OS X. But for some reasons it
slouken@1628
  2559
        # also tends to contain spurious -L switches, which we don't want to
slouken@1628
  2560
        # use here or in sdl-config. Hence we reset it.
slouken@1624
  2561
        EXTRA_LDFLAGS=""
slouken@1624
  2562
slouken@1742
  2563
        CheckVisibilityHidden
slouken@1
  2564
        CheckDummyVideo
slouken@68
  2565
        CheckDiskAudio
icculus@1532
  2566
        CheckDummyAudio
slouken@1638
  2567
        CheckDLOPEN
slouken@3991
  2568
        CheckNASM
slouken@1889
  2569
slouken@1648
  2570
        # Set up files for the shared object loading library
slouken@1648
  2571
        # (this needs to be done before the dynamic X11 check)
slouken@1648
  2572
        if test x$enable_loadso = xyes -a x$have_dlopen != xyes; then
slouken@1648
  2573
            AC_DEFINE(SDL_LOADSO_DLCOMPAT)
slouken@1648
  2574
            SOURCES="$SOURCES $srcdir/src/loadso/macosx/*.c"
slouken@1648
  2575
            have_loadso=yes
slouken@1648
  2576
        fi
slouken@1648
  2577
icculus@1133
  2578
        CheckCOCOA
icculus@1133
  2579
        CheckCARBON
icculus@1174
  2580
        CheckX11
slouken@0
  2581
        CheckMacGL
icculus@1191
  2582
        CheckOpenGLX11
slouken@0
  2583
        CheckPTHREAD
icculus@1047
  2584
        CheckAltivec
icculus@1445
  2585
icculus@1445
  2586
        # Need this or things might misbuild on a G3.
slouken@1521
  2587
        EXTRA_CFLAGS="$EXTRA_CFLAGS -force_cpusubtype_ALL"
icculus@1445
  2588
slouken@0
  2589
        # Set up files for the audio library
slouken@0
  2590
        if test x$enable_audio = xyes; then
slouken@1361
  2591
            AC_DEFINE(SDL_AUDIO_DRIVER_COREAUDIO)
slouken@1361
  2592
            SOURCES="$SOURCES $srcdir/src/audio/macosx/*.c"
slouken@1361
  2593
            AC_DEFINE(SDL_AUDIO_DRIVER_SNDMGR)
slouken@1361
  2594
            SOURCES="$SOURCES $srcdir/src/audio/macrom/*.c"
slouken@1361
  2595
            have_audio=yes
slouken@0
  2596
        fi
slouken@0
  2597
        # Set up files for the joystick library
slouken@0
  2598
        if test x$enable_joystick = xyes; then
slouken@1361
  2599
            AC_DEFINE(SDL_JOYSTICK_IOKIT)
slouken@1361
  2600
            SOURCES="$SOURCES $srcdir/src/joystick/darwin/*.c"
slouken@1361
  2601
            have_joystick=yes
icculus@3935
  2602
            need_iokit_framework=yes
slouken@0
  2603
        fi
slouken@0
  2604
        # Set up files for the cdrom library
slouken@0
  2605
        if test x$enable_cdrom = xyes; then
slouken@1361
  2606
            AC_DEFINE(SDL_CDROM_MACOSX)
slouken@1361
  2607
            SOURCES="$SOURCES $srcdir/src/cdrom/macosx/*.c"
slouken@1361
  2608
            have_cdrom=yes
slouken@0
  2609
        fi
slouken@0
  2610
        # Set up files for the timer library
slouken@0
  2611
        if test x$enable_timers = xyes; then
slouken@1361
  2612
            AC_DEFINE(SDL_TIMER_UNIX)
slouken@1361
  2613
            SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
slouken@1361
  2614
            have_timers=yes
slouken@1361
  2615
        fi
slouken@1621
  2616
        # The Mac OS X platform requires special setup.
slouken@1397
  2617
        SDLMAIN_SOURCES="$srcdir/src/main/macosx/*.m"
slouken@1521
  2618
        EXTRA_CFLAGS="$EXTRA_CFLAGS -fpascal-strings"
slouken@387
  2619
        SDL_LIBS="-lSDLmain $SDL_LIBS"
icculus@1133
  2620
        if test x$enable_video_cocoa = xyes; then
slouken@1611
  2621
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Cocoa"
icculus@3935
  2622
            need_iokit_framework=yes
icculus@1133
  2623
        fi
icculus@1133
  2624
        if test x$enable_video_carbon = xyes -o x$enable_video_cocoa = xyes; then
icculus@1133
  2625
            # The Cocoa backend still needs Carbon, and the YUV code QuickTime
slouken@1611
  2626
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,QuickTime -Wl,-framework,ApplicationServices"
slouken@1611
  2627
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Carbon"
icculus@1133
  2628
        fi
slouken@1361
  2629
        # If either the audio or CD driver is used, add the AudioUnit framework
slouken@1361
  2630
        if test x$enable_audio = xyes -o x$enable_cdrom = xyes; then
slouken@1611
  2631
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit"
slouken@1361
  2632
        fi
icculus@3935
  2633
        # Some subsystems reference IOKit...
icculus@3935
  2634
        if test x$need_iokit_framework = xyes; then
icculus@3935
  2635
            EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,IOKit"
icculus@3935
  2636
        fi
slouken@0
  2637
        ;;
slouken@281
  2638
    *-*-mint*)
slouken@281
  2639
        ARCH=mint
slouken@281
  2640
        CheckDummyVideo
slouken@281
  2641
        CheckDiskAudio
icculus@1532
  2642
        CheckDummyAudio
slouken@281
  2643
        CheckAtariBiosEvent
slouken@281
  2644
        CheckAtariXbiosVideo
slouken@281
  2645
        CheckAtariGemVideo
slouken@398
  2646
        CheckAtariAudio
patmandin@651
  2647
        CheckAtariLdg
slouken@1361
  2648
        CheckAtariOSMesa
slouken@281
  2649
        CheckPTH
slouken@281
  2650
        # Set up files for the audio library
slouken@398
  2651
        if test x$enable_threads = xyes -a x$enable_pth = xyes; then
slouken@398
  2652
            if test x$enable_audio = xyes; then
slouken@1361
  2653
                AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO)
slouken@1361
  2654
                SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
slouken@1361
  2655
                have_audio=yes
slouken@398
  2656
            fi
slouken@281
  2657
        fi
slouken@281
  2658
        # Set up files for the joystick library
slouken@281
  2659
        if test x$enable_joystick = xyes; then
slouken@1361
  2660
            AC_DEFINE(SDL_JOYSTICK_MINT)
slouken@1361
  2661
            SOURCES="$SOURCES $srcdir/src/joystick/mint/*.c"
slouken@1361
  2662
            have_joystick=yes
slouken@281
  2663
        fi
slouken@281
  2664
        # Set up files for the cdrom library
slouken@281
  2665
        if test x$enable_cdrom = xyes; then
slouken@1361
  2666
            AC_DEFINE(SDL_CDROM_MINT)
slouken@1361
  2667
            SOURCES="$SOURCES $srcdir/src/cdrom/mint/*.c"
slouken@1361
  2668
            have_cdrom=yes
slouken@281
  2669
        fi
slouken@281
  2670
        # Set up files for the timer library
slouken@281
  2671
        if test x$enable_timers = xyes; then
slouken@557
  2672
            if test x$enable_threads = xyes -a x$enable_pth = xyes; then
slouken@1361
  2673
                AC_DEFINE(SDL_TIMER_UNIX)
slouken@1361
  2674
                SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
slouken@557
  2675
            else
slouken@1361
  2676
                AC_DEFINE(SDL_TIMER_MINT)
slouken@1361
  2677
                SOURCES="$SOURCES $srcdir/src/timer/mint/*.c"
patmandin@1477
  2678
                SOURCES="$SOURCES $srcdir/src/timer/mint/*.S"
slouken@557
  2679
            fi
slouken@1361
  2680
            have_timers=yes
slouken@281
  2681
        fi
slouken@281
  2682
        ;;
slouken@1035
  2683
    *-riscos)
slouken@687
  2684
        ARCH=riscos
slouken@1361
  2685
        CheckOSS
slouken@1361
  2686
        CheckPTHREAD
slouken@955
  2687
        # Set up files for the video library
slouken@955
  2688
        if test x$enable_video = xyes; then
slouken@1361
  2689
            AC_DEFINE(SDL_VIDEO_DRIVER_RISCOS)
slouken@1361
  2690
            SOURCES="$SOURCES $srcdir/src/video/riscos/*.c"
slouken@1459
  2691
            SOURCES="$SOURCES $srcdir/src/video/riscos/*.S"
slouken@1361
  2692
            have_video=yes
slouken@955
  2693
        fi
slouken@955
  2694
        # Set up files for the joystick library
slouken@955
  2695
        if test x$enable_joystick = xyes; then
slouken@1361
  2696
            AC_DEFINE(SDL_JOYSTICK_RISCOS)
slouken@1361
  2697
            SOURCES="$SOURCES $srcdir/src/joystick/riscos/*.c"
slouken@1361
  2698
            have_joystick=yes
slouken@955
  2699
        fi