configure.in
author Sam Lantinga <slouken@libsdl.org>
Wed, 15 Aug 2007 08:21:10 +0000
changeset 2247 93994f65c74c
parent 2238 93ea84f77d83
child 2261 c20476d7d7b3
permissions -rw-r--r--
Removed hermes since it's LGPL and not compatible with a commercial license.

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