add touchscreen support
[sdl_omap.git] / configure.in
CommitLineData
e14743d1 1dnl Process this file with autoconf to produce a configure script.
2AC_INIT(README)
3AC_CONFIG_HEADER(include/SDL_config.h)
4AC_GNU_SOURCE
5AC_CONFIG_AUX_DIRS($srcdir/build-scripts)
6
7dnl 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#
18SDL_MAJOR_VERSION=1
19SDL_MINOR_VERSION=2
20SDL_MICRO_VERSION=14
21SDL_INTERFACE_AGE=3
22SDL_BINARY_AGE=14
23SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
24
25AC_SUBST(SDL_MAJOR_VERSION)
26AC_SUBST(SDL_MINOR_VERSION)
27AC_SUBST(SDL_MICRO_VERSION)
28AC_SUBST(SDL_INTERFACE_AGE)
29AC_SUBST(SDL_BINARY_AGE)
30AC_SUBST(SDL_VERSION)
31
32# libtool versioning
33LT_INIT([win32-dll])
34
35LT_RELEASE=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION
36LT_CURRENT=`expr $SDL_MICRO_VERSION - $SDL_INTERFACE_AGE`
37LT_REVISION=$SDL_INTERFACE_AGE
38LT_AGE=`expr $SDL_BINARY_AGE - $SDL_INTERFACE_AGE`
39m4_pattern_allow([^LT_])
40
41AC_SUBST(LT_RELEASE)
42AC_SUBST(LT_CURRENT)
43AC_SUBST(LT_REVISION)
44AC_SUBST(LT_AGE)
45
46dnl Detect the canonical build and host environments
47AC_CONFIG_AUX_DIR([build-scripts])
48dnl AC_CANONICAL_HOST
49AC_C_BIGENDIAN
50if test x$ac_cv_c_bigendian = xyes; then
51 AC_DEFINE(SDL_BYTEORDER, 4321)
52else
53 AC_DEFINE(SDL_BYTEORDER, 1234)
54fi
55
56dnl Check for tools
57AC_PROG_LIBTOOL
58AC_PROG_CC
59AC_PROG_CXX
60AC_PROG_INSTALL
61AC_PROG_MAKE_SET
62if test -z "$host_alias"; then
63 hostaliaswindres=
64else
65 hostaliaswindres="$host_alias-windres"
66fi
67AC_CHECK_PROGS(WINDRES, [windres $hostaliaswindres $host_os-windres])
68
69dnl Set up the compiler and linker flags
70INCLUDE="-I$srcdir/include"
71if 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"
78fi
79case "$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 ;;
89esac
90BUILD_CFLAGS="$CFLAGS $CPPFLAGS"
91EXTRA_CFLAGS="$INCLUDE $BASE_CFLAGS"
92BUILD_LDFLAGS="$LDFLAGS"
93EXTRA_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
103SDL_CFLAGS="$BASE_CFLAGS"
104SDL_LIBS="-lSDL $BASE_LDFLAGS"
105CPPFLAGS="$CPPFLAGS $EXTRA_CFLAGS"
106CFLAGS="$CFLAGS $EXTRA_CFLAGS"
107LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS"
108
109dnl set this to use on systems that use lib64 instead of lib
110base_libdir=`echo \${libdir} | sed 's/.*\/\(.*\)/\1/; q'`
111
112dnl Function to find a library in the compiler search path
113find_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
132dnl Check for compiler characteristics
133AC_C_CONST
134AC_C_INLINE
135AC_C_VOLATILE
136
137dnl See whether we are allowed to use the system C library
138AC_ARG_ENABLE(libc,
139AC_HELP_STRING([--enable-libc], [Use the system C library [[default=yes]]]),
140 , enable_libc=yes)
141if 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"])
188fi
189
190if 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)
231fi
232
233# Standard C sources
234SOURCES="$SOURCES $srcdir/src/*.c"
235SOURCES="$SOURCES $srcdir/src/audio/*.c"
236SOURCES="$SOURCES $srcdir/src/cdrom/*.c"
237SOURCES="$SOURCES $srcdir/src/cpuinfo/*.c"
238SOURCES="$SOURCES $srcdir/src/events/*.c"
239SOURCES="$SOURCES $srcdir/src/file/*.c"
240SOURCES="$SOURCES $srcdir/src/stdlib/*.c"
241SOURCES="$SOURCES $srcdir/src/thread/*.c"
242SOURCES="$SOURCES $srcdir/src/timer/*.c"
243SOURCES="$SOURCES $srcdir/src/video/*.c"
244
245dnl Enable/disable various subsystems of the SDL library
246
247AC_ARG_ENABLE(audio,
248AC_HELP_STRING([--enable-audio], [Enable the audio subsystem [[default=yes]]]),
249 , enable_audio=yes)
250if test x$enable_audio != xyes; then
251 AC_DEFINE(SDL_AUDIO_DISABLED)
252fi
253AC_ARG_ENABLE(video,
254AC_HELP_STRING([--enable-video], [Enable the video subsystem [[default=yes]]]),
255 , enable_video=yes)
256if test x$enable_video != xyes; then
257 AC_DEFINE(SDL_VIDEO_DISABLED)
258fi
259AC_ARG_ENABLE(events,
260AC_HELP_STRING([--enable-events], [Enable the events subsystem [[default=yes]]]),
261 , enable_events=yes)
262if test x$enable_events != xyes; then
263 AC_DEFINE(SDL_EVENTS_DISABLED)
264fi
265AC_ARG_ENABLE(joystick,
266AC_HELP_STRING([--enable-joystick], [Enable the joystick subsystem [[default=yes]]]),
267 , enable_joystick=yes)
268if test x$enable_joystick != xyes; then
269 AC_DEFINE(SDL_JOYSTICK_DISABLED)
270else
271 SOURCES="$SOURCES $srcdir/src/joystick/*.c"
272fi
273AC_ARG_ENABLE(cdrom,
274AC_HELP_STRING([--enable-cdrom], [Enable the cdrom subsystem [[default=yes]]]),
275 , enable_cdrom=yes)
276if test x$enable_cdrom != xyes; then
277 AC_DEFINE(SDL_CDROM_DISABLED)
278fi
279AC_ARG_ENABLE(threads,
280AC_HELP_STRING([--enable-threads], [Enable the threading subsystem [[default=yes]]]),
281 , enable_threads=yes)
282if test x$enable_threads != xyes; then
283 AC_DEFINE(SDL_THREADS_DISABLED)
284fi
285AC_ARG_ENABLE(timers,
286AC_HELP_STRING([--enable-timers], [Enable the timer subsystem [[default=yes]]]),
287 , enable_timers=yes)
288if test x$enable_timers != xyes; then
289 AC_DEFINE(SDL_TIMERS_DISABLED)
290fi
291AC_ARG_ENABLE(file,
292AC_HELP_STRING([--enable-file], [Enable the file subsystem [[default=yes]]]),
293 , enable_file=yes)
294if test x$enable_file != xyes; then
295 AC_DEFINE(SDL_FILE_DISABLED)
296fi
297AC_ARG_ENABLE(loadso,
298AC_HELP_STRING([--enable-loadso], [Enable the shared object loading subsystem [[default=yes]]]),
299 , enable_loadso=yes)
300if test x$enable_loadso != xyes; then
301 AC_DEFINE(SDL_LOADSO_DISABLED)
302fi
303AC_ARG_ENABLE(cpuinfo,
304AC_HELP_STRING([--enable-cpuinfo], [Enable the cpuinfo subsystem [[default=yes]]]),
305 , enable_cpuinfo=yes)
306if test x$enable_cpuinfo != xyes; then
307 AC_DEFINE(SDL_CPUINFO_DISABLED)
308fi
309AC_ARG_ENABLE(assembly,
310AC_HELP_STRING([--enable-assembly], [Enable assembly routines [[default=yes]]]),
311 , enable_assembly=yes)
312if test x$enable_assembly = xyes; then
313 AC_DEFINE(SDL_ASSEMBLY_ROUTINES)
314fi
315
316dnl See if the OSS audio interface is supported
317CheckOSS()
318{
319 AC_ARG_ENABLE(oss,
320AC_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
360dnl See if the ALSA audio interface is supported
361CheckALSA()
362{
363 AC_ARG_ENABLE(alsa,
364AC_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,
374AC_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
397dnl Check whether we want to use IRIX 6.5+ native audio or not
398CheckDMEDIA()
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
421dnl Check whether we want to use Tru64 UNIX native audio or not
422CheckMME()
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
459dnl Find the ESD includes and libraries
460CheckESD()
461{
462 AC_ARG_ENABLE(esd,
463AC_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,
469AC_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
492dnl Find PulseAudio
493CheckPulseAudio()
494{
495 AC_ARG_ENABLE(pulseaudio,
496AC_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,
516AC_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
539CheckARTSC()
540{
541 AC_ARG_ENABLE(arts,
542AC_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,
566AC_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
590dnl See if the NAS audio interface is supported
591CheckNAS()
592{
593 AC_ARG_ENABLE(nas,
594AC_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,
624AC_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
648dnl rcg07142001 See if the user wants the disk writer audio driver...
649CheckDiskAudio()
650{
651 AC_ARG_ENABLE(diskaudio,
652AC_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
660dnl rcg03142006 See if the user wants the dummy audio driver...
661CheckDummyAudio()
662{
663 AC_ARG_ENABLE(dummyaudio,
664AC_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
672dnl Set up the Atari Audio driver
673CheckAtariAudio()
674{
675 AC_ARG_ENABLE(mintaudio,
676AC_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
691dnl See if we can use x86 assembly blitters
692# NASM is available from: http://nasm.sourceforge.net
693CheckNASM()
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,
714AC_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
782dnl Check for altivec instruction support using gas syntax
783CheckAltivec()
784{
785 AC_ARG_ENABLE(altivec,
786AC_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
862dnl See if GCC's -fvisibility=hidden is supported (gcc4 and later, usually).
863dnl Details of this flag are here: http://gcc.gnu.org/wiki/Visibility
864CheckVisibilityHidden()
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
889dnl Do the iPod thing
890CheckIPod()
891{
892 AC_ARG_ENABLE(ipod,
893AC_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
903dnl Find the nanox include and library directories
904CheckNANOX()
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
939dnl Find the X11 include and library directories
940CheckX11()
941{
942 AC_ARG_ENABLE(video-x11,
943AC_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,
964AC_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,
1029AC_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,
1035AC_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,
1042AC_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,
1048AC_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,
1055AC_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,
1062AC_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,
1069AC_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,
1076AC_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
1109dnl Check for QNX photon video driver
1110CheckPHOTON()
1111{
1112 AC_ARG_ENABLE(video-photon,
1113AC_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
1140dnl Set up the BWindow video driver if enabled
1141CheckBWINDOW()
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
1150dnl Set up the Carbon/QuickDraw video driver for Mac OS X (but not Darwin)
1151CheckCARBON()
1152{
1153 AC_ARG_ENABLE(video-carbon,
1154AC_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
1175dnl Set up the Cocoa/Quartz video driver for Mac OS X (but not Darwin)
1176CheckCOCOA()
1177{
1178 AC_ARG_ENABLE(video-cocoa,
1179AC_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
1203dnl Find the framebuffer console includes
1204CheckFBCON()
1205{
1206 AC_ARG_ENABLE(video-fbcon,
1207AC_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
1230dnl Find DirectFB
1231CheckDirectFB()
1232{
1233 AC_ARG_ENABLE(video-directfb,
1234AC_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
1283dnl See if we're running on PlayStation 2 hardware
1284CheckPS2GS()
1285{
1286 AC_ARG_ENABLE(video-ps2gs,
1287AC_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
1308dnl See if we're running on PlayStation 3 Cell hardware
1309CheckPS3()
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
1335dnl Find the GGI includes
1336CheckGGI()
1337{
1338 AC_ARG_ENABLE(video-ggi,
1339AC_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
1361dnl Find the SVGAlib includes and libraries
1362CheckSVGA()
1363{
1364 AC_ARG_ENABLE(video-svga,
1365AC_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
1391dnl Find the VGL includes and libraries
1392CheckVGL()
1393{
1394 AC_ARG_ENABLE(video-vgl,
1395AC_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
1423dnl Set up the wscons video driver if enabled
1424CheckWscons()
1425{
1426 AC_ARG_ENABLE(video-wscons,
1427AC_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
1451dnl Find the AAlib includes
1452CheckAAlib()
1453{
1454 AC_ARG_ENABLE(video-aalib,
1455AC_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
1476dnl Find the libcaca includes
1477CheckCaca()
1478{
1479 AC_ARG_ENABLE(video-caca,
1480AC_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
1508dnl Set up the QTopia video driver if enabled
1509CheckQtopia()
1510{
1511 AC_ARG_ENABLE(video-qtopia,
1512AC_HELP_STRING([--enable-video-qtopia], [use Qtopia video driver [[default=no]]]),
1513 , enable_video_qtopia=no)
1514 if test x$enable_video = xyes -a x$enable_video_qtopia = xyes; then
1515 AC_MSG_CHECKING(for Qtopia support)
1516 video_qtopia=no
1517 QTOPIA_FLAGS="-DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -I${QPEDIR}/include -I${QTDIR}/include/ -DNO_DEBUG -fno-rtti -fno-exceptions"
1518 AC_LANG_CPLUSPLUS
1519 OLD_CXX="$CXXFLAGS"
1520 CXXFLAGS="$QTOPIA_FLAGS"
1521 AC_TRY_COMPILE([
1522 #include <qpe/qpeapplication.h>
1523 ],[
1524 ],[
1525 video_qtopia=yes
1526 ])
1527 CXXFLAGS="$OLD_CXX"
1528 AC_MSG_RESULT($video_qtopia)
1529 if test x$video_qtopia = xyes; then
1530 AC_DEFINE(SDL_VIDEO_DRIVER_QTOPIA)
1531 SOURCES="$SOURCES $srcdir/src/video/qtopia/*.cc"
1532 SDLMAIN_SOURCES="$srcdir/src/main/qtopia/*.cc"
1533 EXTRA_CFLAGS="$EXTRA_CFLAGS $QTOPIA_FLAGS"
1534 SDL_CFLAGS="$SDL_CFLAGS -DQWS -Dmain=SDL_main"
1535 SDL_LIBS="-lSDLmain $SDL_LIBS -L${QPEDIR}/lib -L${QTDIR}/lib/ -lqpe -lqte"
1536 have_video=yes
1537 fi
1538 AC_LANG_C
1539 fi
1540}
1541
1542dnl Set up the PicoGUI video driver if enabled
1543CheckPicoGUI()
1544{
1545 AC_ARG_ENABLE(video-picogui,
1546AC_HELP_STRING([--enable-video-picogui], [use PicoGUI video driver [[default=no]]]),
1547 , enable_video_picogui=no)
1548 if test x$enable_video = xyes -a x$enable_video_picogui = xyes; then
1549 AC_MSG_CHECKING(for PicoGUI support)
1550 video_picogui=no
1551 AC_TRY_COMPILE([
1552 #include <picogui.h>
1553 ],[
1554 ],[
1555 video_picogui=yes
1556 ])
1557 AC_MSG_RESULT($video_picogui)
1558 if test x$video_picogui = xyes; then
1559 AC_DEFINE(SDL_VIDEO_DRIVER_PICOGUI)
1560 SOURCES="$SOURCES $srcdir/src/video/picogui/*.c"
1561 SDL_LIBS="$SDL_LIBS -lpgui"
1562 have_video=yes
1563 fi
1564 fi
1565}
1566
1567dnl Set up the Atari Bios keyboard driver
1568CheckAtariBiosEvent()
1569{
1570 SOURCES="$SOURCES $srcdir/src/video/ataricommon/*.c"
1571 SOURCES="$SOURCES $srcdir/src/video/ataricommon/*.S"
1572}
1573
1574dnl Set up the Atari Xbios driver
1575CheckAtariXbiosVideo()
1576{
1577 AC_ARG_ENABLE(xbios,
1578AC_HELP_STRING([--enable-video-xbios], [use Atari Xbios video driver [[default=yes]]]),
1579 , enable_video_xbios=yes)
1580 video_xbios=no
1581 if test x$enable_video = xyes -a x$enable_video_xbios = xyes; then
1582 video_xbios=yes
1583 AC_DEFINE(SDL_VIDEO_DRIVER_XBIOS)
1584 SOURCES="$SOURCES $srcdir/src/video/xbios/*.c"
1585 have_video=yes
1586 fi
1587}
1588
1589dnl Set up the Atari Gem driver
1590CheckAtariGemVideo()
1591{
1592 AC_ARG_ENABLE(gem,
1593AC_HELP_STRING([--enable-video-gem], [use Atari Gem video driver [[default=yes]]]),
1594 , enable_video_gem=yes)
1595 if test x$enable_video = xyes -a x$enable_video_gem = xyes; then
1596 video_gem=no
1597 AC_CHECK_HEADER(gem.h, have_gem_hdr=yes)
1598 AC_CHECK_LIB(gem, appl_init, have_gem_lib=yes)
1599 if test x$have_gem_hdr = xyes -a x$have_gem_lib = xyes; then
1600 video_gem=yes
1601 AC_DEFINE(SDL_VIDEO_DRIVER_GEM)
1602 SOURCES="$SOURCES $srcdir/src/video/gem/*.c"
1603 SDL_LIBS="$SDL_LIBS -lgem"
1604 have_video=yes
1605 fi
1606 fi
1607}
1608
9a8e84f8 1609dnl OMAP
1610CheckOMAPDSS()
1611{
1612 AC_ARG_ENABLE(video-omapdss,
1613AC_HELP_STRING([--enable-video-omapdss], [use OMAP DSS2 video driver [[default=yes]]]),
1614 , enable_video_omapdss=yes)
1615
1616 if test x$enable_video_omapdss = xyes; then
1617 AC_DEFINE(SDL_VIDEO_DRIVER_OMAPDSS)
1618 SOURCES="$SOURCES $srcdir/src/video/omapdss/sdlif.c"
1619 SOURCES="$SOURCES $srcdir/src/video/omapdss/osdl_input.c"
1620 SOURCES="$SOURCES $srcdir/src/video/omapdss/config.c"
1621 SOURCES="$SOURCES $srcdir/src/video/omapdss/linux/fbdev.c"
1622 SOURCES="$SOURCES $srcdir/src/video/omapdss/linux/oshide.c"
1623 have_video=yes
1624 fi
1625}
1626
e14743d1 1627dnl rcg04172001 Set up the Null video driver.
1628CheckDummyVideo()
1629{
1630 AC_ARG_ENABLE(video-dummy,
1631AC_HELP_STRING([--enable-video-dummy], [use dummy video driver [[default=yes]]]),
1632 , enable_video_dummy=yes)
1633 if test x$enable_video_dummy = xyes; then
1634 AC_DEFINE(SDL_VIDEO_DRIVER_DUMMY)
1635 SOURCES="$SOURCES $srcdir/src/video/dummy/*.c"
1636 have_video=yes
1637 fi
1638}
1639
1640dnl Check to see if OpenGL support is desired
1641AC_ARG_ENABLE(video-opengl,
1642AC_HELP_STRING([--enable-video-opengl], [include OpenGL context creation [[default=yes]]]),
1643 , enable_video_opengl=yes)
1644
1645dnl Find OpenGL
1646CheckOpenGLX11()
1647{
1648 if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
1649 AC_MSG_CHECKING(for OpenGL (GLX) support)
1650 video_opengl=no
1651 AC_TRY_COMPILE([
1652 #include <GL/gl.h>
1653 #include <GL/glx.h>
1654 #include <GL/glu.h>
1655 ],[
1656 ],[
1657 video_opengl=yes
1658 ])
1659 AC_MSG_RESULT($video_opengl)
1660 if test x$video_opengl = xyes; then
1661 AC_DEFINE(SDL_VIDEO_OPENGL)
1662 AC_DEFINE(SDL_VIDEO_OPENGL_GLX)
1663 fi
1664 fi
1665}
1666
1667dnl Find QNX RtP OpenGL
1668CheckOpenGLQNX()
1669{
1670 if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
1671 AC_MSG_CHECKING(for OpenGL (Photon) support)
1672 video_opengl=no
1673 AC_TRY_COMPILE([
1674 #include <GL/gl.h>
1675 ],[
1676 ],[
1677 video_opengl=yes
1678 ])
1679 AC_MSG_RESULT($video_opengl)
1680 if test x$video_opengl = xyes; then
1681 AC_DEFINE(SDL_VIDEO_OPENGL)
1682 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL"
1683 fi
1684 fi
1685}
1686
1687dnl Check for Win32 OpenGL
1688CheckWIN32GL()
1689{
1690 if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
1691 AC_DEFINE(SDL_VIDEO_OPENGL)
1692 AC_DEFINE(SDL_VIDEO_OPENGL_WGL)
1693 fi
1694}
1695
1696dnl Check for BeOS OpenGL
1697CheckBeGL()
1698{
1699 if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
1700 AC_DEFINE(SDL_VIDEO_OPENGL)
1701 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL"
1702 fi
1703}
1704
1705dnl Check for MacOS OpenGL
1706CheckMacGL()
1707{
1708 if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
1709 AC_DEFINE(SDL_VIDEO_OPENGL)
1710 case "$host" in
1711 *-*-darwin*)
1712 if test x$enable_video_cocoa = xyes; then
1713 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,OpenGL"
1714 fi
1715 if test x$enable_video_carbon = xyes; then
1716 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AGL"
1717 fi
1718 esac
1719 fi
1720}
1721
1722dnl Check for Mesa offscreen rendering
1723CheckAtariOSMesa()
1724{
1725 if test "x$enable_video" = "xyes" -a "x$enable_video_opengl" = "xyes"; then
1726 AC_CHECK_HEADER(GL/osmesa.h, have_osmesa_hdr=yes)
1727 AC_CHECK_LIB(OSMesa, OSMesaCreateContext, have_osmesa_lib=yes, have_osmesa_lib=no, -lm)
1728
1729 # Static linking to -lOSMesa
1730 AC_PATH_PROG(OSMESA_CONFIG, osmesa-config, no)
1731 if test "x$OSMESA_CONFIG" = "xno" -o "x$enable_atari_ldg" = "xno"; then
1732 # -lOSMesa is really the static library
1733 if test "x$have_osmesa_hdr" = "xyes" -a "x$have_osmesa_lib" = "xyes"; then
1734 OSMESA_LIBS="-lOSMesa"
1735 fi
1736 else
1737 # -lOSMesa is a loader for OSMesa.ldg
1738 OSMESA_CFLAGS=`$OSMESA_CONFIG --cflags`
1739 OSMESA_LIBS=`$OSMESA_CONFIG --libs`
1740 fi
1741 AC_DEFINE(SDL_VIDEO_OPENGL)
1742 AC_DEFINE(SDL_VIDEO_OPENGL_OSMESA)
1743 SDL_CFLAGS="$SDL_CFLAGS $OSMESA_CFLAGS"
1744 SDL_LIBS="$SDL_LIBS $OSMESA_LIBS"
1745
1746 AC_ARG_ENABLE(osmesa-shared,
1747AC_HELP_STRING([--enable-osmesa-shared], [dynamically load OSMesa OpenGL support [[default=yes]]]),
1748 , enable_osmesa_shared=yes)
1749 if test "x$enable_osmesa_shared" = "xyes" -a "x$enable_atari_ldg" = "xyes"; then
1750 # Dynamic linking
1751 if test "x$have_osmesa_hdr" = "xyes"; then
1752 AC_DEFINE(SDL_VIDEO_OPENGL_OSMESA_DYNAMIC)
1753 fi
1754 fi
1755 fi
1756}
1757
1758AC_ARG_ENABLE(screensaver,
1759AC_HELP_STRING([--enable-screensaver], [enable screensaver by default while any SDL application is running [[default=no]]]),
1760 , enable_screensaver=no)
1761if test x$enable_screensaver = xno; then
1762 AC_DEFINE(SDL_VIDEO_DISABLE_SCREENSAVER)
1763fi
1764
1765dnl See if we can use the new unified event interface in Linux 2.4
1766CheckInputEvents()
1767{
1768 dnl Check for Linux 2.4 unified input event interface support
1769 AC_ARG_ENABLE(input-events,
1770AC_HELP_STRING([--enable-input-events], [use Linux 2.4 unified input interface [[default=yes]]]),
1771 , enable_input_events=yes)
1772 if test x$enable_input_events = xyes; then
1773 AC_MSG_CHECKING(for Linux 2.4 unified input interface)
1774 use_input_events=no
1775 AC_TRY_COMPILE([
1776 #include <linux/input.h>
1777 ],[
1778 #ifndef EVIOCGNAME
1779 #error EVIOCGNAME() ioctl not available
1780 #endif
1781 ],[
1782 use_input_events=yes
1783 ])
1784 AC_MSG_RESULT($use_input_events)
1785 if test x$use_input_events = xyes; then
1786 AC_DEFINE(SDL_INPUT_LINUXEV)
1787 fi
1788 fi
1789}
1790
1791dnl See if we can use the Touchscreen input library
1792CheckTslib()
1793{
1794 AC_ARG_ENABLE(input-tslib,
1795AC_HELP_STRING([--enable-input-tslib], [use the Touchscreen library for input [[default=yes]]]),
1796 , enable_input_tslib=yes)
1797 if test x$enable_input_tslib = xyes; then
1798 AC_MSG_CHECKING(for Touchscreen library support)
1799 enable_input_tslib=no
1800 AC_TRY_COMPILE([
1801 #include "tslib.h"
1802 ],[
1803 ],[
1804 enable_input_tslib=yes
1805 ])
1806 AC_MSG_RESULT($enable_input_tslib)
1807 if test x$enable_input_tslib = xyes; then
1808 AC_DEFINE(SDL_INPUT_TSLIB)
1809 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lts"
1810 fi
1811 fi
1812}
1813
1814dnl See if we can use GNU pth library for threads
1815CheckPTH()
1816{
1817 dnl Check for pth support
1818 AC_ARG_ENABLE(pth,
1819AC_HELP_STRING([--enable-pth], [use GNU pth library for multi-threading [[default=yes]]]),
1820 , enable_pth=yes)
1821 if test x$enable_threads = xyes -a x$enable_pth = xyes; then
1822 AC_PATH_PROG(PTH_CONFIG, pth-config, no)
1823 if test "$PTH_CONFIG" = "no"; then
1824 use_pth=no
1825 else
1826 use_pth=yes
1827 fi
1828 AC_MSG_CHECKING(pth)
1829 AC_MSG_RESULT($use_pth)
1830 if test "x$use_pth" = xyes; then
1831 AC_DEFINE(SDL_THREAD_PTH)
1832 SOURCES="$SOURCES $srcdir/src/thread/pth/*.c"
1833 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syssem.c"
1834 SDL_CFLAGS="$SDL_CFLAGS `$PTH_CONFIG --cflags`"
1835 SDL_LIBS="$SDL_LIBS `$PTH_CONFIG --libs --all`"
1836 have_threads=yes
1837 fi
1838 fi
1839}
1840
1841dnl See what type of thread model to use on Linux and Solaris
1842CheckPTHREAD()
1843{
1844 dnl Check for pthread support
1845 AC_ARG_ENABLE(pthreads,
1846AC_HELP_STRING([--enable-pthreads], [use POSIX threads for multi-threading [[default=yes]]]),
1847 , enable_pthreads=yes)
1848 dnl This is used on Linux for glibc binary compatibility (Doh!)
1849 AC_ARG_ENABLE(pthread-sem,
1850AC_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [[default=yes]]]),
1851 , enable_pthread_sem=yes)
1852 case "$host" in
1853 *-*-linux*|*-*-uclinux*)
1854 pthread_cflags="-D_REENTRANT"
1855 pthread_lib="-lpthread"
1856 ;;
1857 *-*-bsdi*)
1858 pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
1859 pthread_lib=""
1860 ;;
1861 *-*-darwin*)
1862 pthread_cflags="-D_THREAD_SAFE"
1863# causes Carbon.p complaints?
1864# pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
1865 ;;
1866 *-*-freebsd*|*-*-dragonfly*)
1867 pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
1868 pthread_lib="-pthread"
1869 ;;
1870 *-*-netbsd*)
1871 pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
1872 pthread_lib="-lpthread"
1873 ;;
1874 *-*-openbsd*)
1875 pthread_cflags="-D_REENTRANT"
1876 pthread_lib="-pthread"
1877 ;;
1878 *-*-solaris*)
1879 pthread_cflags="-D_REENTRANT"
1880 pthread_lib="-lpthread -lposix4"
1881 ;;
1882 *-*-sysv5*)
1883 pthread_cflags="-D_REENTRANT -Kthread"
1884 pthread_lib=""
1885 ;;
1886 *-*-irix*)
1887 pthread_cflags="-D_SGI_MP_SOURCE"
1888 pthread_lib="-lpthread"
1889 ;;
1890 *-*-aix*)
1891 pthread_cflags="-D_REENTRANT -mthreads"
1892 pthread_lib="-lpthread"
1893 ;;
1894 *-*-hpux11*)
1895 pthread_cflags="-D_REENTRANT"
1896 pthread_lib="-L/usr/lib -lpthread"
1897 ;;
1898 *-*-qnx*)
1899 pthread_cflags=""
1900 pthread_lib=""
1901 ;;
1902 *-*-osf*)
1903 pthread_cflags="-D_REENTRANT"
1904 if test x$ac_cv_prog_gcc = xyes; then
1905 pthread_lib="-lpthread -lrt"
1906 else
1907 pthread_lib="-lpthread -lexc -lrt"
1908 fi
1909 ;;
1910 *)
1911 pthread_cflags="-D_REENTRANT"
1912 pthread_lib="-lpthread"
1913 ;;
1914 esac
1915 if test x$enable_threads = xyes -a x$enable_pthreads = xyes -a x$enable_ipod != xyes; then
1916 # Save the original compiler flags and libraries
1917 ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
1918 # Add the pthread compiler flags and libraries
1919 CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
1920 # Check to see if we have pthread support on this system
1921 AC_MSG_CHECKING(for pthreads)
1922 use_pthreads=no
1923 AC_TRY_LINK([
1924 #include <pthread.h>
1925 ],[
1926 pthread_attr_t type;
1927 pthread_attr_init(&type);
1928 ],[
1929 use_pthreads=yes
1930 ])
1931 AC_MSG_RESULT($use_pthreads)
1932 # Restore the compiler flags and libraries
1933 CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
1934
1935 # Do futher testing if we have pthread support...
1936 if test x$use_pthreads = xyes; then
1937 AC_DEFINE(SDL_THREAD_PTHREAD)
1938 EXTRA_CFLAGS="$EXTRA_CFLAGS $pthread_cflags"
1939 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $pthread_lib"
1940 SDL_CFLAGS="$SDL_CFLAGS $pthread_cflags"
1941 SDL_LIBS="$SDL_LIBS $pthread_lib"
1942
1943 # Save the original compiler flags and libraries
1944 ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
1945 # Add the pthread compiler flags and libraries
1946 CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
1947
1948 # Check to see if recursive mutexes are available
1949 AC_MSG_CHECKING(for recursive mutexes)
1950 has_recursive_mutexes=no
1951 if test x$has_recursive_mutexes = xno; then
1952 AC_TRY_COMPILE([
1953 #include <pthread.h>
1954 ],[
1955 pthread_mutexattr_t attr;
1956 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
1957 ],[
1958 has_recursive_mutexes=yes
1959 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX)
1960 ])
1961 fi
1962 if test x$has_recursive_mutexes = xno; then
1963 AC_TRY_COMPILE([
1964 #include <pthread.h>
1965 ],[
1966 pthread_mutexattr_t attr;
1967 pthread_mutexattr_setkind_np(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
1968 ],[
1969 has_recursive_mutexes=yes
1970 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP)
1971 ])
1972 fi
1973 AC_MSG_RESULT($has_recursive_mutexes)
1974
1975 # Check to see if pthread semaphore support is missing
1976 if test x$enable_pthread_sem = xyes; then
1977 AC_MSG_CHECKING(for pthread semaphores)
1978 have_pthread_sem=no
1979 AC_TRY_COMPILE([
1980 #include <pthread.h>
1981 #include <semaphore.h>
1982 ],[
1983 ],[
1984 have_pthread_sem=yes
1985 ])
1986 AC_MSG_RESULT($have_pthread_sem)
1987 fi
1988
1989 # Restore the compiler flags and libraries
1990 CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
1991
1992 # Basic thread creation functions
1993 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_systhread.c"
1994
1995 # Semaphores
1996 # We can fake these with mutexes and condition variables if necessary
1997 if test x$have_pthread_sem = xyes; then
1998 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syssem.c"
1999 else
2000 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syssem.c"
2001 fi
2002
2003 # Mutexes
2004 # We can fake these with semaphores if necessary
2005 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_sysmutex.c"
2006
2007 # Condition variables
2008 # We can fake these with semaphores and mutexes if necessary
2009 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syscond.c"
2010
2011 have_threads=yes
2012 else
2013 CheckPTH
2014 fi
2015 fi
2016}
2017
2018dnl Determine whether the compiler can produce Win32 executables
2019CheckWIN32()
2020{
2021 AC_MSG_CHECKING(Win32 compiler)
2022 have_win32_gcc=no
2023 AC_TRY_COMPILE([
2024 #include <windows.h>
2025 ],[
2026 ],[
2027 have_win32_gcc=yes
2028 ])
2029 AC_MSG_RESULT($have_win32_gcc)
2030 if test x$have_win32_gcc != xyes; then
2031 AC_MSG_ERROR([
2032*** Your compiler ($CC) does not produce Win32 executables!
2033 ])
2034 fi
2035
2036 dnl See if the user wants to redirect standard output to files
2037 AC_ARG_ENABLE(stdio-redirect,
2038AC_HELP_STRING([--enable-stdio-redirect], [Redirect STDIO to files on Win32 [[default=yes]]]),
2039 , enable_stdio_redirect=yes)
2040 if test x$enable_stdio_redirect != xyes; then
2041 EXTRA_CFLAGS="$EXTRA_CFLAGS -DNO_STDIO_REDIRECT"
2042 fi
2043
2044 if test x$enable_video = xyes; then
2045 AC_DEFINE(SDL_VIDEO_DRIVER_WINDIB)
2046 SOURCES="$SOURCES $srcdir/src/video/wincommon/*.c"
2047 SOURCES="$SOURCES $srcdir/src/video/windib/*.c"
2048 have_video=yes
2049 fi
2050}
2051
2052dnl Find the DirectX includes and libraries
2053CheckDIRECTX()
2054{
2055 AC_ARG_ENABLE(directx,
2056AC_HELP_STRING([--enable-directx], [use DirectX for Win32 audio/video [[default=yes]]]),
2057 , enable_directx=yes)
2058 if test x$enable_directx = xyes; then
2059 have_directx=no
2060 AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
2061 AC_CHECK_HEADER(dsound.h, have_dsound=yes)
2062 AC_CHECK_HEADER(dinput.h, use_dinput=yes)
2063 if test x$have_ddraw = xyes -a x$have_dsound = xyes -a x$use_dinput = xyes; then
2064 have_directx=yes
2065 fi
2066 if test x$enable_video = xyes -a x$have_directx = xyes; then
2067 AC_DEFINE(SDL_VIDEO_DRIVER_DDRAW)
2068 SOURCES="$SOURCES $srcdir/src/video/windx5/*.c"
2069 have_video=yes
2070 fi
2071 fi
2072}
2073
2074dnl Check for the dlfcn.h interface for dynamically loading objects
2075CheckDLOPEN()
2076{
2077 AC_ARG_ENABLE(sdl-dlopen,
2078AC_HELP_STRING([--enable-sdl-dlopen], [use dlopen for shared object loading [[default=yes]]]),
2079 , enable_sdl_dlopen=yes)
2080 if test x$enable_sdl_dlopen = xyes; then
2081 AC_MSG_CHECKING(for dlopen)
2082 have_dlopen=no
2083 AC_TRY_COMPILE([
2084 #include <dlfcn.h>
2085 ],[
2086 #if defined(MAC_OS_X_VERSION_MIN_REQUIRED) && MAC_OS_X_VERSION_MIN_REQUIRED <= 1020
2087 #error Use dlcompat for Mac OS X 10.2 compatibility
2088 #endif
2089 ],[
2090 have_dlopen=yes
2091 ])
2092 AC_MSG_RESULT($have_dlopen)
2093
2094 if test x$have_dlopen = xyes; then
2095 AC_CHECK_LIB(c, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS",
2096 AC_CHECK_LIB(dl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldl",
2097 AC_CHECK_LIB(ltdl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lltdl")))
2098 AC_DEFINE(SDL_LOADSO_DLOPEN)
2099 SOURCES="$SOURCES $srcdir/src/loadso/dlopen/*.c"
2100 have_loadso=yes
2101 fi
2102 fi
2103}
2104
2105dnl Set up the Atari LDG (shared object loader)
2106CheckAtariLdg()
2107{
2108 AC_ARG_ENABLE(atari-ldg,
2109AC_HELP_STRING([--enable-atari-ldg], [use Atari LDG for shared object loading [[default=yes]]]),
2110 , enable_atari_ldg=yes)
2111 if test x$video_gem = xyes -a x$enable_atari_ldg = xyes; then
2112 AC_CHECK_HEADER(ldg.h, have_ldg_hdr=yes)
2113 AC_CHECK_LIB(ldg, ldg_open, have_ldg_lib=yes, have_ldg_lib=no, -lgem)
2114 if test x$have_ldg_hdr = xyes -a x$have_ldg_lib = xyes; then
2115 AC_DEFINE(SDL_LOADSO_LDG)
2116 SOURCES="$SOURCES $srcdir/src/loadso/mint/*.c"
2117 SDL_LIBS="$SDL_LIBS -lldg -lgem"
2118 have_loadso=yes
2119 fi
2120 fi
2121}
2122
2123dnl Check for the usbhid(3) library on *BSD
2124CheckUSBHID()
2125{
2126 if test x$enable_joystick = xyes; then
2127 AC_CHECK_LIB(usbhid, hid_init, have_libusbhid=yes)
2128 if test x$have_libusbhid = xyes; then
2129 AC_CHECK_HEADER(usbhid.h, [USB_CFLAGS="-DHAVE_USBHID_H"])
2130 AC_CHECK_HEADER(libusbhid.h, [USB_CFLAGS="-DHAVE_LIBUSBHID_H"])
2131 USB_LIBS="$USB_LIBS -lusbhid"
2132 else
2133 AC_CHECK_HEADER(usb.h, [USB_CFLAGS="-DHAVE_USB_H"])
2134 AC_CHECK_HEADER(libusb.h, [USB_CFLAGS="-DHAVE_LIBUSB_H"])
2135 AC_CHECK_LIB(usb, hid_init, [USB_LIBS="$USB_LIBS -lusb"])
2136 fi
2137
2138 save_CFLAGS="$CFLAGS"
2139 CFLAGS="$CFLAGS $USB_CFLAGS"
2140
2141 AC_MSG_CHECKING(for usbhid)
2142 have_usbhid=no
2143 AC_TRY_COMPILE([
2144 #include <sys/types.h>
2145 #if defined(HAVE_USB_H)
2146 #include <usb.h>
2147 #endif
2148 #ifdef __DragonFly__
2149 # include <bus/usb/usb.h>
2150 # include <bus/usb/usbhid.h>
2151 #else
2152 # include <dev/usb/usb.h>
2153 # include <dev/usb/usbhid.h>
2154 #endif
2155 #if defined(HAVE_USBHID_H)
2156 #include <usbhid.h>
2157 #elif defined(HAVE_LIBUSB_H)
2158 #include <libusb.h>
2159 #elif defined(HAVE_LIBUSBHID_H)
2160 #include <libusbhid.h>
2161 #endif
2162 ],[
2163 struct report_desc *repdesc;
2164 struct usb_ctl_report *repbuf;
2165 hid_kind_t hidkind;
2166 ],[
2167 have_usbhid=yes
2168 ])
2169 AC_MSG_RESULT($have_usbhid)
2170
2171 if test x$have_usbhid = xyes; then
2172 AC_MSG_CHECKING(for ucr_data member of usb_ctl_report)
2173 have_usbhid_ucr_data=no
2174 AC_TRY_COMPILE([
2175 #include <sys/types.h>
2176 #if defined(HAVE_USB_H)
2177 #include <usb.h>
2178 #endif
2179 #ifdef __DragonFly__
2180 # include <bus/usb/usb.h>
2181 # include <bus/usb/usbhid.h>
2182 #else
2183 # include <dev/usb/usb.h>
2184 # include <dev/usb/usbhid.h>
2185 #endif
2186 #if defined(HAVE_USBHID_H)
2187 #include <usbhid.h>
2188 #elif defined(HAVE_LIBUSB_H)
2189 #include <libusb.h>
2190 #elif defined(HAVE_LIBUSBHID_H)
2191 #include <libusbhid.h>
2192 #endif
2193 ],[
2194 struct usb_ctl_report buf;
2195 if (buf.ucr_data) { }
2196 ],[
2197 have_usbhid_ucr_data=yes
2198 ])
2199 if test x$have_usbhid_ucr_data = xyes; then
2200 USB_CFLAGS="$USB_CFLAGS -DUSBHID_UCR_DATA"
2201 fi
2202 AC_MSG_RESULT($have_usbhid_ucr_data)
2203
2204 AC_MSG_CHECKING(for new usbhid API)
2205 have_usbhid_new=no
2206 AC_TRY_COMPILE([
2207 #include <sys/types.h>
2208 #if defined(HAVE_USB_H)
2209 #include <usb.h>
2210 #endif
2211 #ifdef __DragonFly__
2212 #include <bus/usb/usb.h>
2213 #include <bus/usb/usbhid.h>
2214 #else
2215 #include <dev/usb/usb.h>
2216 #include <dev/usb/usbhid.h>
2217 #endif
2218 #if defined(HAVE_USBHID_H)
2219 #include <usbhid.h>
2220 #elif defined(HAVE_LIBUSB_H)
2221 #include <libusb.h>
2222 #elif defined(HAVE_LIBUSBHID_H)
2223 #include <libusbhid.h>
2224 #endif
2225 ],[
2226 report_desc_t d;
2227 hid_start_parse(d, 1, 1);
2228 ],[
2229 have_usbhid_new=yes
2230 ])
2231 if test x$have_usbhid_new = xyes; then
2232 USB_CFLAGS="$USB_CFLAGS -DUSBHID_NEW"
2233 fi
2234 AC_MSG_RESULT($have_usbhid_new)
2235
2236 AC_MSG_CHECKING(for struct joystick in machine/joystick.h)
2237 have_machine_joystick=no
2238 AC_TRY_COMPILE([
2239 #include <machine/joystick.h>
2240 ],[
2241 struct joystick t;
2242 ],[
2243 have_machine_joystick=yes
2244 ])
2245 if test x$have_machine_joystick = xyes; then
2246 AC_DEFINE(SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H)
2247 fi
2248 AC_MSG_RESULT($have_machine_joystick)
2249
2250 AC_DEFINE(SDL_JOYSTICK_USBHID)
2251 SOURCES="$SOURCES $srcdir/src/joystick/bsd/*.c"
2252 EXTRA_CFLAGS="$EXTRA_CFLAGS $USB_CFLAGS"
2253 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $USB_LIBS"
2254 have_joystick=yes
2255 fi
2256 CFLAGS="$save_CFLAGS"
2257 fi
2258}
2259
2260dnl Check for clock_gettime()
2261CheckClockGettime()
2262{
2263 AC_ARG_ENABLE(clock_gettime,
2264AC_HELP_STRING([--enable-clock_gettime], [use clock_gettime() instead of gettimeofday() on UNIX [[default=no]]]),
2265 , enable_clock_gettime=no)
2266 if test x$enable_clock_gettime = xyes; then
2267 AC_CHECK_LIB(rt, clock_gettime, have_clock_gettime=yes)
2268 if test x$have_clock_gettime = xyes; then
2269 AC_DEFINE(HAVE_CLOCK_GETTIME)
2270 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lrt"
2271 fi
2272 fi
2273}
2274
2275dnl Check for a valid linux/version.h
2276CheckLinuxVersion()
2277{
2278 AC_CHECK_HEADER(linux/version.h, have_linux_version_h=yes)
2279 if test x$have_linux_version_h = xyes; then
2280 EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_LINUX_VERSION_H"
2281 fi
2282}
2283
2284dnl Check if we want to use RPATH
2285CheckRPATH()
2286{
2287 AC_ARG_ENABLE(rpath,
2288AC_HELP_STRING([--enable-rpath], [use an rpath when linking SDL [[default=yes]]]),
2289 , enable_rpath=yes)
2290}
2291
2292dnl Set up the configuration based on the host platform!
2293case "$host" in
2294 arm-*-elf*) # FIXME: Can we get more specific for iPodLinux?
2295 ARCH=linux
2296 CheckDummyVideo
2297 CheckIPod
2298 # Set up files for the timer library
2299 if test x$enable_timers = xyes; then
2300 AC_DEFINE(SDL_TIMER_UNIX)
2301 SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
2302 have_timers=yes
2303 fi
2304 ;;
2305 *-*-linux*|*-*-uclinux*|*-*-gnu*|*-*-k*bsd*-gnu|*-*-bsdi*|*-*-freebsd*|*-*-dragonfly*|*-*-netbsd*|*-*-openbsd*|*-*-sysv5*|*-*-solaris*|*-*-hpux*|*-*-irix*|*-*-aix*|*-*-osf*)
2306 case "$host" in
2307 *-*-linux*) ARCH=linux ;;
2308 *-*-uclinux*) ARCH=linux ;;
2309 *-*-kfreebsd*-gnu) ARCH=kfreebsd-gnu ;;
2310 *-*-knetbsd*-gnu) ARCH=knetbsd-gnu ;;
2311 *-*-kopenbsd*-gnu) ARCH=kopenbsd-gnu ;;
2312 *-*-gnu*) ARCH=gnu ;; # must be last of the gnu variants
2313 *-*-bsdi*) ARCH=bsdi ;;
2314 *-*-freebsd*) ARCH=freebsd ;;
2315 *-*-dragonfly*) ARCH=freebsd ;;
2316 *-*-netbsd*) ARCH=netbsd ;;
2317 *-*-openbsd*) ARCH=openbsd ;;
2318 *-*-sysv5*) ARCH=sysv5 ;;
2319 *-*-solaris*) ARCH=solaris ;;
2320 *-*-hpux*) ARCH=hpux ;;
2321 *-*-irix*) ARCH=irix ;;
2322 *-*-aix*) ARCH=aix ;;
2323 *-*-osf*) ARCH=osf ;;
2324 esac
2325 CheckVisibilityHidden
2326 CheckDummyVideo
2327 CheckDiskAudio
2328 CheckDummyAudio
2329 CheckDLOPEN
2330 CheckNASM
2331 CheckAltivec
2332 CheckOSS
2333 CheckDMEDIA
2334 CheckMME
2335 CheckALSA
2336 CheckARTSC
2337 CheckESD
2338 CheckPulseAudio
2339 CheckNAS
2340 CheckX11
2341 CheckNANOX
2342 CheckFBCON
2343 CheckDirectFB
2344 CheckPS2GS
2345 CheckPS3
2346 CheckGGI
2347 CheckSVGA
2348 CheckVGL
2349 CheckWscons
2350 CheckAAlib
2351 CheckCaca
2352 CheckQtopia
2353 CheckPicoGUI
2354 CheckOpenGLX11
2355 CheckInputEvents
2356 CheckTslib
2357 CheckUSBHID
2358 CheckPTHREAD
2359 CheckClockGettime
2360 CheckLinuxVersion
2361 CheckRPATH
9a8e84f8 2362 CheckOMAPDSS
e14743d1 2363 # Set up files for the audio library
2364 if test x$enable_audio = xyes; then
2365 case $ARCH in
2366 sysv5|solaris|hpux)
2367 AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO)
2368 SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
2369 have_audio=yes
2370 ;;
2371 netbsd|openbsd)
2372 AC_DEFINE(SDL_AUDIO_DRIVER_BSD)
2373 SOURCES="$SOURCES $srcdir/src/audio/bsd/*.c"
2374 have_audio=yes
2375 ;;
2376 aix)
2377 AC_DEFINE(SDL_AUDIO_DRIVER_PAUD)
2378 SOURCES="$SOURCES $srcdir/src/audio/paudio/*.c"
2379 have_audio=yes
2380 ;;
2381 esac
2382 fi
2383 # Set up files for the joystick library
2384 if test x$enable_joystick = xyes; then
2385 case $ARCH in
2386 linux)
2387 AC_DEFINE(SDL_JOYSTICK_LINUX)
2388 SOURCES="$SOURCES $srcdir/src/joystick/linux/*.c"
2389 have_joystick=yes
2390 ;;
2391 esac
2392 fi
2393 # Set up files for the cdrom library
2394 if test x$enable_cdrom = xyes; then
2395 case $ARCH in
2396 linux|solaris)
2397 AC_DEFINE(SDL_CDROM_LINUX)
2398 SOURCES="$SOURCES $srcdir/src/cdrom/linux/*.c"
2399 have_cdrom=yes
2400 ;;
2401 *freebsd*)
2402 AC_DEFINE(SDL_CDROM_FREEBSD)
2403 SOURCES="$SOURCES $srcdir/src/cdrom/freebsd/*.c"
2404 have_cdrom=yes
2405 ;;
2406 *openbsd*|*netbsd*)
2407 AC_DEFINE(SDL_CDROM_OPENBSD)
2408 SOURCES="$SOURCES $srcdir/src/cdrom/openbsd/*.c"
2409 have_cdrom=yes
2410 ;;
2411 bsdi)
2412 AC_DEFINE(SDL_CDROM_BSDI)
2413 SOURCES="$SOURCES $srcdir/src/cdrom/bsdi/*.c"
2414 have_cdrom=yes
2415 ;;
2416 aix)
2417 AC_DEFINE(SDL_CDROM_AIX)
2418 SOURCES="$SOURCES $srcdir/src/cdrom/aix/*.c"
2419 have_cdrom=yes
2420 ;;
2421 osf)
2422 AC_DEFINE(SDL_CDROM_OSF)
2423 SOURCES="$SOURCES $srcdir/src/cdrom/osf/*.c"
2424 have_cdrom=yes
2425 ;;
2426 esac
2427 fi
2428 # Set up files for the thread library
2429 if test x$enable_threads = xyes -a x$use_pthreads != xyes -a x$use_pth != xyes -a x$ARCH = xirix; then
2430 AC_DEFINE(SDL_THREAD_SPROC)
2431 SOURCES="$SOURCES $srcdir/src/thread/irix/*.c"
2432 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_sysmutex.c"
2433 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
2434 have_threads=yes
2435 fi
2436 # Set up files for the timer library
2437 if test x$enable_timers = xyes; then
2438 AC_DEFINE(SDL_TIMER_UNIX)
2439 SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
2440 have_timers=yes
2441 fi
2442 ;;
2443 *-*-qnx*)
2444 ARCH=qnx
2445 CheckDummyVideo
2446 CheckDiskAudio
2447 CheckDummyAudio
2448 # CheckNASM
2449 CheckDLOPEN
2450 CheckNAS
2451 CheckPHOTON
2452 CheckX11
2453 CheckOpenGLX11
2454 CheckPTHREAD
2455 # Set up files for the audio library
2456 if test x$enable_audio = xyes; then
2457 AC_DEFINE(SDL_AUDIO_DRIVER_QNXNTO)
2458 SOURCES="$SOURCES $srcdir/src/audio/nto/*.c"
2459 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lasound"
2460 have_audio=yes
2461 fi
2462 # Set up files for the cdrom library
2463 if test x$enable_cdrom = xyes; then
2464 AC_DEFINE(SDL_CDROM_QNX)
2465 SOURCES="$SOURCES $srcdir/src/cdrom/qnx/*.c"
2466 have_cdrom=yes
2467 fi
2468 # Set up files for the timer library
2469 if test x$enable_timers = xyes; then
2470 AC_DEFINE(SDL_TIMER_UNIX)
2471 SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
2472 have_timers=yes
2473 fi
2474 ;;
2475 *-*-cygwin* | *-*-mingw32*)
2476 ARCH=win32
2477 if test "$build" != "$host"; then # cross-compiling
2478 # Default cross-compile location
2479 ac_default_prefix=/usr/local/cross-tools/i386-mingw32
2480 else
2481 # Look for the location of the tools and install there
2482 if test "$BUILD_PREFIX" != ""; then
2483 ac_default_prefix=$BUILD_PREFIX
2484 fi
2485 fi
2486 CheckDummyVideo
2487 CheckDiskAudio
2488 CheckDummyAudio
2489 CheckWIN32
2490 CheckWIN32GL
2491 CheckDIRECTX
2492 CheckNASM
2493 # Set up files for the audio library
2494 if test x$enable_audio = xyes; then
2495 AC_DEFINE(SDL_AUDIO_DRIVER_WAVEOUT)
2496 SOURCES="$SOURCES $srcdir/src/audio/windib/*.c"
2497 if test x$have_directx = xyes; then
2498 AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND)
2499 SOURCES="$SOURCES $srcdir/src/audio/windx5/*.c"
2500 fi
2501 have_audio=yes
2502 fi
2503 # Set up files for the joystick library
2504 if test x$enable_joystick = xyes; then
2505 AC_DEFINE(SDL_JOYSTICK_WINMM)
2506 SOURCES="$SOURCES $srcdir/src/joystick/win32/*.c"
2507 have_joystick=yes
2508 fi
2509 # Set up files for the cdrom library
2510 if test x$enable_cdrom = xyes; then
2511 AC_DEFINE(SDL_CDROM_WIN32)
2512 SOURCES="$SOURCES $srcdir/src/cdrom/win32/*.c"
2513 have_cdrom=yes
2514 fi
2515 # Set up files for the thread library
2516 if test x$enable_threads = xyes; then
2517 AC_DEFINE(SDL_THREAD_WIN32)
2518 SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_sysmutex.c"
2519 SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_syssem.c"
2520 SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_systhread.c"
2521 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
2522 have_threads=yes
2523 fi
2524 # Set up files for the timer library
2525 if test x$enable_timers = xyes; then
2526 AC_DEFINE(SDL_TIMER_WIN32)
2527 SOURCES="$SOURCES $srcdir/src/timer/win32/*.c"
2528 have_timers=yes
2529 fi
2530 # Set up files for the shared object loading library
2531 if test x$enable_loadso = xyes; then
2532 AC_DEFINE(SDL_LOADSO_WIN32)
2533 SOURCES="$SOURCES $srcdir/src/loadso/win32/*.c"
2534 have_loadso=yes
2535 fi
2536 # Set up the system libraries we need
2537 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -luser32 -lgdi32 -lwinmm"
2538 if test x$have_directx = xyes; then
2539 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldxguid"
2540 fi
2541 # The Win32 platform requires special setup
2542 SOURCES="$SOURCES $srcdir/src/main/win32/*.rc"
2543 SDLMAIN_SOURCES="$srcdir/src/main/win32/*.c"
2544 SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
2545 SDL_LIBS="-lmingw32 -lSDLmain $SDL_LIBS -mwindows"
2546 ;;
2547 *-wince*)
2548 ARCH=win32
2549 CheckDummyVideo
2550 CheckDiskAudio
2551 CheckDummyAudio
2552 CheckWIN32
2553 CheckNASM
2554 SOURCES="$SOURCES $srcdir/src/video/gapi/*.c"
2555 EXTRA_CFLAGS="$EXTRA_CFLAGS -D_WIN32_WCE=0x420"
2556 if test x$enable_audio = xyes; then
2557 AC_DEFINE(SDL_AUDIO_DRIVER_WAVEOUT)
2558 SOURCES="$SOURCES $srcdir/src/audio/windib/*.c"
2559 have_audio=yes
2560 fi
2561 # Set up files for the thread library
2562 if test x$enable_threads = xyes; then
2563 AC_DEFINE(SDL_THREAD_WIN32)
2564 SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_sysmutex.c"
2565 SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_syssem.c"
2566 SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_systhread.c"
2567 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
2568 have_threads=yes
2569 fi
2570 # Set up files for the timer library
2571 if test x$enable_timers = xyes; then
2572 AC_DEFINE(SDL_TIMER_WINCE)
2573 SOURCES="$SOURCES $srcdir/src/timer/wince/*.c"
2574 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lcoredll -lmmtimer"
2575 have_timers=yes
2576 fi
2577 # Set up files for the shared object loading library
2578 if test x$enable_loadso = xyes; then
2579 AC_DEFINE(SDL_LOADSO_WIN32)
2580 SOURCES="$SOURCES $srcdir/src/loadso/win32/*.c"
2581 have_loadso=yes
2582 fi
2583 # Set up the system libraries we need
2584 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lcoredll -lcommctrl"
2585 # The Win32 platform requires special setup
2586 SDLMAIN_SOURCES="$srcdir/src/main/win32/*.c"
2587 SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main -D_WIN32_WCE=0x420"
2588 SDL_LIBS="-lSDLmain $SDL_LIBS"
2589 ;;
2590 *-*-beos* | *-*-haiku*)
2591 ARCH=beos
2592 ac_default_prefix=/boot/develop/tools/gnupro
2593 CheckDummyVideo
2594 CheckDiskAudio
2595 CheckDummyAudio
2596 CheckNASM
2597 CheckBWINDOW
2598 CheckBeGL
2599 # Set up files for the audio library
2600 if test x$enable_audio = xyes; then
2601 AC_DEFINE(SDL_AUDIO_DRIVER_BAUDIO)
2602 SOURCES="$SOURCES $srcdir/src/audio/baudio/*.cc"
2603 have_audio=yes
2604 fi
2605 # Set up files for the joystick library
2606 if test x$enable_joystick = xyes; then
2607 AC_DEFINE(SDL_JOYSTICK_BEOS)
2608 SOURCES="$SOURCES $srcdir/src/joystick/beos/*.cc"
2609 have_joystick=yes
2610 fi
2611 # Set up files for the cdrom library
2612 if test x$enable_cdrom = xyes; then
2613 AC_DEFINE(SDL_CDROM_BEOS)
2614 SOURCES="$SOURCES $srcdir/src/cdrom/beos/*.cc"
2615 have_cdrom=yes
2616 fi
2617 # Set up files for the thread library
2618 if test x$enable_threads = xyes; then
2619 AC_DEFINE(SDL_THREAD_BEOS)
2620 SOURCES="$SOURCES $srcdir/src/thread/beos/*.c"
2621 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_sysmutex.c"
2622 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
2623 have_threads=yes
2624 fi
2625 # Set up files for the timer library
2626 if test x$enable_timers = xyes; then
2627 AC_DEFINE(SDL_TIMER_BEOS)
2628 SOURCES="$SOURCES $srcdir/src/timer/beos/*.c"
2629 have_timers=yes
2630 fi
2631 # Set up files for the shared object loading library
2632 if test x$enable_loadso = xyes; then
2633 case "$host" in
2634 *-*-beos*)
2635 AC_DEFINE(SDL_LOADSO_BEOS)
2636 SOURCES="$SOURCES $srcdir/src/loadso/beos/*.c"
2637 ;;
2638 *-*-haiku*)
2639 AC_DEFINE(SDL_LOADSO_DLOPEN)
2640 SOURCES="$SOURCES $srcdir/src/loadso/dlopen/*.c"
2641 ;;
2642 esac
2643 have_loadso=yes
2644 fi
2645 # The BeOS platform requires special setup.
2646 SOURCES="$srcdir/src/main/beos/*.cc $SOURCES"
2647 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding"
2648 ;;
2649 *-*-darwin* )
2650 # This could be either full "Mac OS X", or plain "Darwin" which is
2651 # just the OS X kernel sans upper layers like Carbon and Cocoa.
2652 # Next line is broken, and a few files below require Mac OS X (full)
2653 ARCH=macosx
2654
2655 # Mac OS X builds with both the Carbon and OSX APIs at the moment
2656 EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_CARBON"
2657 EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_OSX"
2658
2659 # HACK: Reset EXTRA_LDFLAGS; the only thing it contains at this point
2660 # is -lm which is not needed under Mac OS X. But for some reasons it
2661 # also tends to contain spurious -L switches, which we don't want to
2662 # use here or in sdl-config. Hence we reset it.
2663 EXTRA_LDFLAGS=""
2664
2665 CheckVisibilityHidden
2666 CheckDummyVideo
2667 CheckDiskAudio
2668 CheckDummyAudio
2669 CheckDLOPEN
2670 CheckNASM
2671
2672 # Set up files for the shared object loading library
2673 # (this needs to be done before the dynamic X11 check)
2674 if test x$enable_loadso = xyes -a x$have_dlopen != xyes; then
2675 AC_DEFINE(SDL_LOADSO_DLCOMPAT)
2676 SOURCES="$SOURCES $srcdir/src/loadso/macosx/*.c"
2677 have_loadso=yes
2678 fi
2679
2680 CheckCOCOA
2681 CheckCARBON
2682 CheckX11
2683 CheckMacGL
2684 CheckOpenGLX11
2685 CheckPTHREAD
2686 CheckAltivec
2687
2688 # Need this or things might misbuild on a G3.
2689 EXTRA_CFLAGS="$EXTRA_CFLAGS -force_cpusubtype_ALL"
2690
2691 # Set up files for the audio library
2692 if test x$enable_audio = xyes; then
2693 AC_DEFINE(SDL_AUDIO_DRIVER_COREAUDIO)
2694 SOURCES="$SOURCES $srcdir/src/audio/macosx/*.c"
2695 have_audio=yes
2696 fi
2697 # Set up files for the joystick library
2698 if test x$enable_joystick = xyes; then
2699 AC_DEFINE(SDL_JOYSTICK_IOKIT)
2700 SOURCES="$SOURCES $srcdir/src/joystick/darwin/*.c"
2701 have_joystick=yes
2702 need_iokit_framework=yes
2703 fi
2704 # Set up files for the cdrom library
2705 if test x$enable_cdrom = xyes; then
2706 AC_DEFINE(SDL_CDROM_MACOSX)
2707 SOURCES="$SOURCES $srcdir/src/cdrom/macosx/*.c"
2708 have_cdrom=yes
2709 fi
2710 # Set up files for the timer library
2711 if test x$enable_timers = xyes; then
2712 AC_DEFINE(SDL_TIMER_UNIX)
2713 SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
2714 have_timers=yes
2715 fi
2716 # The Mac OS X platform requires special setup.
2717 SDLMAIN_SOURCES="$srcdir/src/main/macosx/*.m"
2718 EXTRA_CFLAGS="$EXTRA_CFLAGS -fpascal-strings"
2719 SDL_LIBS="-lSDLmain $SDL_LIBS"
2720 if test x$enable_video_cocoa = xyes; then
2721 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Cocoa"
2722 need_iokit_framework=yes
2723 fi
2724 if test x$enable_video_carbon = xyes -o x$enable_video_cocoa = xyes; then
2725 # The Cocoa backend still needs Carbon
2726 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,ApplicationServices"
2727 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Carbon"
2728 fi
2729 # If either the audio or CD driver is used, add the AudioUnit framework
2730 if test x$enable_audio = xyes -o x$enable_cdrom = xyes; then
2731 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit"
2732 fi
2733 # Some subsystems reference IOKit...
2734 if test x$need_iokit_framework = xyes; then
2735 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,IOKit"
2736 fi
2737 ;;
2738 *-*-mint*)
2739 ARCH=mint
2740 CheckDummyVideo
2741 CheckDiskAudio
2742 CheckDummyAudio
2743 CheckAtariBiosEvent
2744 CheckAtariXbiosVideo
2745 CheckAtariGemVideo
2746 CheckAtariAudio
2747 CheckAtariLdg
2748 CheckAtariOSMesa
2749 CheckPTH
2750 # Set up files for the audio library
2751 if test x$enable_threads = xyes -a x$enable_pth = xyes; then
2752 if test x$enable_audio = xyes; then
2753 AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO)
2754 SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
2755 have_audio=yes
2756 fi
2757 fi
2758 # Set up files for the joystick library
2759 if test x$enable_joystick = xyes; then
2760 AC_DEFINE(SDL_JOYSTICK_MINT)
2761 SOURCES="$SOURCES $srcdir/src/joystick/mint/*.c"
2762 have_joystick=yes
2763 fi
2764 # Set up files for the cdrom library
2765 if test x$enable_cdrom = xyes; then
2766 AC_DEFINE(SDL_CDROM_MINT)
2767 SOURCES="$SOURCES $srcdir/src/cdrom/mint/*.c"
2768 have_cdrom=yes
2769 fi
2770 # Set up files for the timer library
2771 if test x$enable_timers = xyes; then
2772 if test x$enable_threads = xyes -a x$enable_pth = xyes; then
2773 AC_DEFINE(SDL_TIMER_UNIX)
2774 SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
2775 else
2776 AC_DEFINE(SDL_TIMER_MINT)
2777 SOURCES="$SOURCES $srcdir/src/timer/mint/*.c"
2778 SOURCES="$SOURCES $srcdir/src/timer/mint/*.S"
2779 fi
2780 have_timers=yes
2781 fi
2782 ;;
2783 *-riscos)
2784 ARCH=riscos
2785 CheckOSS
2786 CheckPTHREAD
2787 # Set up files for the video library
2788 if test x$enable_video = xyes; then
2789 AC_DEFINE(SDL_VIDEO_DRIVER_RISCOS)
2790 SOURCES="$SOURCES $srcdir/src/video/riscos/*.c"
2791 SOURCES="$SOURCES $srcdir/src/video/riscos/*.S"
2792 have_video=yes
2793 fi
2794 # Set up files for the joystick library
2795 if test x$enable_joystick = xyes; then
2796 AC_DEFINE(SDL_JOYSTICK_RISCOS)
2797 SOURCES="$SOURCES $srcdir/src/joystick/riscos/*.c"
2798 have_joystick=yes
2799 fi
2800 # Set up files for the timer library
2801 if test x$enable_timers = xyes; then
2802 AC_DEFINE(SDL_TIMER_RISCOS)
2803 SOURCES="$SOURCES $srcdir/src/timer/riscos/*.c"
2804 have_timers=yes
2805 fi
2806 # The RISC OS platform requires special setup.
2807 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ljpeg -ltiff -lpng -lz"
2808 ;;
2809 *)
2810 AC_MSG_ERROR([
2811*** Unsupported host: Please add to configure.in
2812 ])
2813 ;;
2814esac
2815
2816# Verify that we have all the platform specific files we need
2817
2818if test x$enable_joystick = xyes; then
2819 if test x$have_joystick != xyes; then
2820 # Wants joystick subsystem, but doesn't have a platform-specific backend...
2821 AC_DEFINE(SDL_JOYSTICK_DUMMY)
2822 SOURCES="$SOURCES $srcdir/src/joystick/dummy/*.c"
2823 fi
2824fi
2825if test x$have_cdrom != xyes; then
2826 if test x$enable_cdrom = xyes; then
2827 AC_DEFINE(SDL_CDROM_DISABLED)
2828 fi
2829 SOURCES="$SOURCES $srcdir/src/cdrom/dummy/*.c"
2830fi
2831if test x$have_threads != xyes; then
2832 if test x$enable_threads = xyes; then
2833 AC_DEFINE(SDL_THREADS_DISABLED)
2834 fi
2835 SOURCES="$SOURCES $srcdir/src/thread/generic/*.c"
2836fi
2837if test x$have_timers != xyes; then
2838 if test x$enable_timers = xyes; then
2839 AC_DEFINE(SDL_TIMERS_DISABLED)
2840 fi
2841 SOURCES="$SOURCES $srcdir/src/timer/dummy/*.c"
2842fi
2843if test x$have_loadso != xyes; then
2844 if test x$enable_loadso = xyes; then
2845 AC_DEFINE(SDL_LOADSO_DISABLED)
2846 fi
2847 SOURCES="$SOURCES $srcdir/src/loadso/dummy/*.c"
2848fi
2849if test x$SDLMAIN_SOURCES = x; then
2850 SDLMAIN_SOURCES="$srcdir/src/main/dummy/*.c"
2851fi
2852
2853OBJECTS=`echo $SOURCES | sed 's,[[^ ]]*/\([[^ ]]*\)\.asm,$(objects)/\1.lo,g'`
2854OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.cc,$(objects)/\1.lo,g'`
2855OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.m,$(objects)/\1.lo,g'`
2856OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'`
2857OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.S,$(objects)/\1.lo,g'`
2858OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'`
2859
2860SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES | sed 's,[[^ ]]*/\([[^ ]]*\)\.cc,$(objects)/\1.o,g'`
2861SDLMAIN_OBJECTS=`echo $SDLMAIN_OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.m,$(objects)/\1.o,g'`
2862SDLMAIN_OBJECTS=`echo $SDLMAIN_OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.o,g'`
2863
2864# Set runtime shared library paths as needed
2865
2866if test "x$enable_rpath" = "xyes"; then
2867 if test $ARCH = bsdi -o $ARCH = freebsd -o $ARCH = irix -o $ARCH = linux -o $ARCH = netbsd; then
2868 SDL_RLD_FLAGS="-Wl,-rpath,\${libdir}"
2869 fi
2870 if test $ARCH = solaris; then
2871 SDL_RLD_FLAGS="-R\${libdir}"
2872 fi
2873else
2874 SDL_RLD_FLAGS=""
2875fi
2876
2877case "$ARCH" in
2878 macosx)
2879 if test x$enable_video = xyes -a x$enable_video_cocoa = xyes; then
2880 SDL_LIBS="$SDL_LIBS -Wl,-framework,Cocoa"
2881 fi
2882 if test x$enable_video = xyes -a x$enable_video_carbon = xyes; then
2883 SDL_LIBS="$SDL_LIBS -Wl,-framework,Carbon"
2884 fi
2885 # Evil hack to allow static linking on Mac OS X
2886 SDL_STATIC_LIBS="\${libdir}/libSDLmain.a \${libdir}/libSDL.a $EXTRA_LDFLAGS"
2887 ;;
2888 *)
2889 SDL_STATIC_LIBS="$SDL_LIBS $EXTRA_LDFLAGS"
2890 ;;
2891esac
2892
2893dnl Expand the cflags and libraries needed by apps using SDL
2894AC_SUBST(SDL_CFLAGS)
2895AC_SUBST(SDL_LIBS)
2896AC_SUBST(SDL_STATIC_LIBS)
2897AC_SUBST(SDL_RLD_FLAGS)
2898if test x$enable_shared = xyes; then
2899 ENABLE_SHARED_TRUE=
2900 ENABLE_SHARED_FALSE="#"
2901else
2902 ENABLE_SHARED_TRUE="#"
2903 ENABLE_SHARED_FALSE=
2904fi
2905if test x$enable_static = xyes; then
2906 ENABLE_STATIC_TRUE=
2907 ENABLE_STATIC_FALSE="#"
2908else
2909 ENABLE_STATIC_TRUE="#"
2910 ENABLE_STATIC_FALSE=
2911fi
2912AC_SUBST(ENABLE_SHARED_TRUE)
2913AC_SUBST(ENABLE_SHARED_FALSE)
2914AC_SUBST(ENABLE_STATIC_TRUE)
2915AC_SUBST(ENABLE_STATIC_FALSE)
2916
2917dnl Expand the sources and objects needed to build the library
2918AC_SUBST(ac_aux_dir)
2919AC_SUBST(INCLUDE)
2920AC_SUBST(SOURCES)
2921AC_SUBST(OBJECTS)
2922AC_SUBST(SDLMAIN_SOURCES)
2923AC_SUBST(SDLMAIN_OBJECTS)
2924AC_SUBST(BUILD_CFLAGS)
2925AC_SUBST(EXTRA_CFLAGS)
2926AC_SUBST(BUILD_LDFLAGS)
2927AC_SUBST(EXTRA_LDFLAGS)
2928AC_SUBST(WINDRES)
2929
2930AC_OUTPUT([
2931 Makefile sdl-config SDL.spec SDL.qpg sdl.pc
2932], [
2933 : >build-deps
2934 if test x"$MAKE" = x; then MAKE=make; fi; $MAKE depend
2935])