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