add OMAP layer handling
[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"
f641fccb 1620 SOURCES="$SOURCES $srcdir/src/video/omapdss/osdl_video.c"
9a8e84f8 1621 SOURCES="$SOURCES $srcdir/src/video/omapdss/config.c"
1622 SOURCES="$SOURCES $srcdir/src/video/omapdss/linux/fbdev.c"
1623 SOURCES="$SOURCES $srcdir/src/video/omapdss/linux/oshide.c"
1624 have_video=yes
1625 fi
1626}
1627
e14743d1 1628dnl rcg04172001 Set up the Null video driver.
1629CheckDummyVideo()
1630{
1631 AC_ARG_ENABLE(video-dummy,
1632AC_HELP_STRING([--enable-video-dummy], [use dummy video driver [[default=yes]]]),
1633 , enable_video_dummy=yes)
1634 if test x$enable_video_dummy = xyes; then
1635 AC_DEFINE(SDL_VIDEO_DRIVER_DUMMY)
1636 SOURCES="$SOURCES $srcdir/src/video/dummy/*.c"
1637 have_video=yes
1638 fi
1639}
1640
1641dnl Check to see if OpenGL support is desired
1642AC_ARG_ENABLE(video-opengl,
1643AC_HELP_STRING([--enable-video-opengl], [include OpenGL context creation [[default=yes]]]),
1644 , enable_video_opengl=yes)
1645
1646dnl Find OpenGL
1647CheckOpenGLX11()
1648{
1649 if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
1650 AC_MSG_CHECKING(for OpenGL (GLX) support)
1651 video_opengl=no
1652 AC_TRY_COMPILE([
1653 #include <GL/gl.h>
1654 #include <GL/glx.h>
1655 #include <GL/glu.h>
1656 ],[
1657 ],[
1658 video_opengl=yes
1659 ])
1660 AC_MSG_RESULT($video_opengl)
1661 if test x$video_opengl = xyes; then
1662 AC_DEFINE(SDL_VIDEO_OPENGL)
1663 AC_DEFINE(SDL_VIDEO_OPENGL_GLX)
1664 fi
1665 fi
1666}
1667
1668dnl Find QNX RtP OpenGL
1669CheckOpenGLQNX()
1670{
1671 if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
1672 AC_MSG_CHECKING(for OpenGL (Photon) support)
1673 video_opengl=no
1674 AC_TRY_COMPILE([
1675 #include <GL/gl.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 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL"
1684 fi
1685 fi
1686}
1687
1688dnl Check for Win32 OpenGL
1689CheckWIN32GL()
1690{
1691 if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
1692 AC_DEFINE(SDL_VIDEO_OPENGL)
1693 AC_DEFINE(SDL_VIDEO_OPENGL_WGL)
1694 fi
1695}
1696
1697dnl Check for BeOS OpenGL
1698CheckBeGL()
1699{
1700 if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
1701 AC_DEFINE(SDL_VIDEO_OPENGL)
1702 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL"
1703 fi
1704}
1705
1706dnl Check for MacOS OpenGL
1707CheckMacGL()
1708{
1709 if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then
1710 AC_DEFINE(SDL_VIDEO_OPENGL)
1711 case "$host" in
1712 *-*-darwin*)
1713 if test x$enable_video_cocoa = xyes; then
1714 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,OpenGL"
1715 fi
1716 if test x$enable_video_carbon = xyes; then
1717 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AGL"
1718 fi
1719 esac
1720 fi
1721}
1722
1723dnl Check for Mesa offscreen rendering
1724CheckAtariOSMesa()
1725{
1726 if test "x$enable_video" = "xyes" -a "x$enable_video_opengl" = "xyes"; then
1727 AC_CHECK_HEADER(GL/osmesa.h, have_osmesa_hdr=yes)
1728 AC_CHECK_LIB(OSMesa, OSMesaCreateContext, have_osmesa_lib=yes, have_osmesa_lib=no, -lm)
1729
1730 # Static linking to -lOSMesa
1731 AC_PATH_PROG(OSMESA_CONFIG, osmesa-config, no)
1732 if test "x$OSMESA_CONFIG" = "xno" -o "x$enable_atari_ldg" = "xno"; then
1733 # -lOSMesa is really the static library
1734 if test "x$have_osmesa_hdr" = "xyes" -a "x$have_osmesa_lib" = "xyes"; then
1735 OSMESA_LIBS="-lOSMesa"
1736 fi
1737 else
1738 # -lOSMesa is a loader for OSMesa.ldg
1739 OSMESA_CFLAGS=`$OSMESA_CONFIG --cflags`
1740 OSMESA_LIBS=`$OSMESA_CONFIG --libs`
1741 fi
1742 AC_DEFINE(SDL_VIDEO_OPENGL)
1743 AC_DEFINE(SDL_VIDEO_OPENGL_OSMESA)
1744 SDL_CFLAGS="$SDL_CFLAGS $OSMESA_CFLAGS"
1745 SDL_LIBS="$SDL_LIBS $OSMESA_LIBS"
1746
1747 AC_ARG_ENABLE(osmesa-shared,
1748AC_HELP_STRING([--enable-osmesa-shared], [dynamically load OSMesa OpenGL support [[default=yes]]]),
1749 , enable_osmesa_shared=yes)
1750 if test "x$enable_osmesa_shared" = "xyes" -a "x$enable_atari_ldg" = "xyes"; then
1751 # Dynamic linking
1752 if test "x$have_osmesa_hdr" = "xyes"; then
1753 AC_DEFINE(SDL_VIDEO_OPENGL_OSMESA_DYNAMIC)
1754 fi
1755 fi
1756 fi
1757}
1758
1759AC_ARG_ENABLE(screensaver,
1760AC_HELP_STRING([--enable-screensaver], [enable screensaver by default while any SDL application is running [[default=no]]]),
1761 , enable_screensaver=no)
1762if test x$enable_screensaver = xno; then
1763 AC_DEFINE(SDL_VIDEO_DISABLE_SCREENSAVER)
1764fi
1765
1766dnl See if we can use the new unified event interface in Linux 2.4
1767CheckInputEvents()
1768{
1769 dnl Check for Linux 2.4 unified input event interface support
1770 AC_ARG_ENABLE(input-events,
1771AC_HELP_STRING([--enable-input-events], [use Linux 2.4 unified input interface [[default=yes]]]),
1772 , enable_input_events=yes)
1773 if test x$enable_input_events = xyes; then
1774 AC_MSG_CHECKING(for Linux 2.4 unified input interface)
1775 use_input_events=no
1776 AC_TRY_COMPILE([
1777 #include <linux/input.h>
1778 ],[
1779 #ifndef EVIOCGNAME
1780 #error EVIOCGNAME() ioctl not available
1781 #endif
1782 ],[
1783 use_input_events=yes
1784 ])
1785 AC_MSG_RESULT($use_input_events)
1786 if test x$use_input_events = xyes; then
1787 AC_DEFINE(SDL_INPUT_LINUXEV)
1788 fi
1789 fi
1790}
1791
1792dnl See if we can use the Touchscreen input library
1793CheckTslib()
1794{
1795 AC_ARG_ENABLE(input-tslib,
1796AC_HELP_STRING([--enable-input-tslib], [use the Touchscreen library for input [[default=yes]]]),
1797 , enable_input_tslib=yes)
1798 if test x$enable_input_tslib = xyes; then
1799 AC_MSG_CHECKING(for Touchscreen library support)
1800 enable_input_tslib=no
1801 AC_TRY_COMPILE([
1802 #include "tslib.h"
1803 ],[
1804 ],[
1805 enable_input_tslib=yes
1806 ])
1807 AC_MSG_RESULT($enable_input_tslib)
1808 if test x$enable_input_tslib = xyes; then
1809 AC_DEFINE(SDL_INPUT_TSLIB)
1810 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lts"
1811 fi
1812 fi
1813}
1814
1815dnl See if we can use GNU pth library for threads
1816CheckPTH()
1817{
1818 dnl Check for pth support
1819 AC_ARG_ENABLE(pth,
1820AC_HELP_STRING([--enable-pth], [use GNU pth library for multi-threading [[default=yes]]]),
1821 , enable_pth=yes)
1822 if test x$enable_threads = xyes -a x$enable_pth = xyes; then
1823 AC_PATH_PROG(PTH_CONFIG, pth-config, no)
1824 if test "$PTH_CONFIG" = "no"; then
1825 use_pth=no
1826 else
1827 use_pth=yes
1828 fi
1829 AC_MSG_CHECKING(pth)
1830 AC_MSG_RESULT($use_pth)
1831 if test "x$use_pth" = xyes; then
1832 AC_DEFINE(SDL_THREAD_PTH)
1833 SOURCES="$SOURCES $srcdir/src/thread/pth/*.c"
1834 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syssem.c"
1835 SDL_CFLAGS="$SDL_CFLAGS `$PTH_CONFIG --cflags`"
1836 SDL_LIBS="$SDL_LIBS `$PTH_CONFIG --libs --all`"
1837 have_threads=yes
1838 fi
1839 fi
1840}
1841
1842dnl See what type of thread model to use on Linux and Solaris
1843CheckPTHREAD()
1844{
1845 dnl Check for pthread support
1846 AC_ARG_ENABLE(pthreads,
1847AC_HELP_STRING([--enable-pthreads], [use POSIX threads for multi-threading [[default=yes]]]),
1848 , enable_pthreads=yes)
1849 dnl This is used on Linux for glibc binary compatibility (Doh!)
1850 AC_ARG_ENABLE(pthread-sem,
1851AC_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [[default=yes]]]),
1852 , enable_pthread_sem=yes)
1853 case "$host" in
1854 *-*-linux*|*-*-uclinux*)
1855 pthread_cflags="-D_REENTRANT"
1856 pthread_lib="-lpthread"
1857 ;;
1858 *-*-bsdi*)
1859 pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
1860 pthread_lib=""
1861 ;;
1862 *-*-darwin*)
1863 pthread_cflags="-D_THREAD_SAFE"
1864# causes Carbon.p complaints?
1865# pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
1866 ;;
1867 *-*-freebsd*|*-*-dragonfly*)
1868 pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
1869 pthread_lib="-pthread"
1870 ;;
1871 *-*-netbsd*)
1872 pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
1873 pthread_lib="-lpthread"
1874 ;;
1875 *-*-openbsd*)
1876 pthread_cflags="-D_REENTRANT"
1877 pthread_lib="-pthread"
1878 ;;
1879 *-*-solaris*)
1880 pthread_cflags="-D_REENTRANT"
1881 pthread_lib="-lpthread -lposix4"
1882 ;;
1883 *-*-sysv5*)
1884 pthread_cflags="-D_REENTRANT -Kthread"
1885 pthread_lib=""
1886 ;;
1887 *-*-irix*)
1888 pthread_cflags="-D_SGI_MP_SOURCE"
1889 pthread_lib="-lpthread"
1890 ;;
1891 *-*-aix*)
1892 pthread_cflags="-D_REENTRANT -mthreads"
1893 pthread_lib="-lpthread"
1894 ;;
1895 *-*-hpux11*)
1896 pthread_cflags="-D_REENTRANT"
1897 pthread_lib="-L/usr/lib -lpthread"
1898 ;;
1899 *-*-qnx*)
1900 pthread_cflags=""
1901 pthread_lib=""
1902 ;;
1903 *-*-osf*)
1904 pthread_cflags="-D_REENTRANT"
1905 if test x$ac_cv_prog_gcc = xyes; then
1906 pthread_lib="-lpthread -lrt"
1907 else
1908 pthread_lib="-lpthread -lexc -lrt"
1909 fi
1910 ;;
1911 *)
1912 pthread_cflags="-D_REENTRANT"
1913 pthread_lib="-lpthread"
1914 ;;
1915 esac
1916 if test x$enable_threads = xyes -a x$enable_pthreads = xyes -a x$enable_ipod != xyes; then
1917 # Save the original compiler flags and libraries
1918 ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
1919 # Add the pthread compiler flags and libraries
1920 CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
1921 # Check to see if we have pthread support on this system
1922 AC_MSG_CHECKING(for pthreads)
1923 use_pthreads=no
1924 AC_TRY_LINK([
1925 #include <pthread.h>
1926 ],[
1927 pthread_attr_t type;
1928 pthread_attr_init(&type);
1929 ],[
1930 use_pthreads=yes
1931 ])
1932 AC_MSG_RESULT($use_pthreads)
1933 # Restore the compiler flags and libraries
1934 CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
1935
1936 # Do futher testing if we have pthread support...
1937 if test x$use_pthreads = xyes; then
1938 AC_DEFINE(SDL_THREAD_PTHREAD)
1939 EXTRA_CFLAGS="$EXTRA_CFLAGS $pthread_cflags"
1940 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $pthread_lib"
1941 SDL_CFLAGS="$SDL_CFLAGS $pthread_cflags"
1942 SDL_LIBS="$SDL_LIBS $pthread_lib"
1943
1944 # Save the original compiler flags and libraries
1945 ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
1946 # Add the pthread compiler flags and libraries
1947 CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
1948
1949 # Check to see if recursive mutexes are available
1950 AC_MSG_CHECKING(for recursive mutexes)
1951 has_recursive_mutexes=no
1952 if test x$has_recursive_mutexes = xno; then
1953 AC_TRY_COMPILE([
1954 #include <pthread.h>
1955 ],[
1956 pthread_mutexattr_t attr;
1957 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
1958 ],[
1959 has_recursive_mutexes=yes
1960 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX)
1961 ])
1962 fi
1963 if test x$has_recursive_mutexes = xno; then
1964 AC_TRY_COMPILE([
1965 #include <pthread.h>
1966 ],[
1967 pthread_mutexattr_t attr;
1968 pthread_mutexattr_setkind_np(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
1969 ],[
1970 has_recursive_mutexes=yes
1971 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP)
1972 ])
1973 fi
1974 AC_MSG_RESULT($has_recursive_mutexes)
1975
1976 # Check to see if pthread semaphore support is missing
1977 if test x$enable_pthread_sem = xyes; then
1978 AC_MSG_CHECKING(for pthread semaphores)
1979 have_pthread_sem=no
1980 AC_TRY_COMPILE([
1981 #include <pthread.h>
1982 #include <semaphore.h>
1983 ],[
1984 ],[
1985 have_pthread_sem=yes
1986 ])
1987 AC_MSG_RESULT($have_pthread_sem)
1988 fi
1989
1990 # Restore the compiler flags and libraries
1991 CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
1992
1993 # Basic thread creation functions
1994 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_systhread.c"
1995
1996 # Semaphores
1997 # We can fake these with mutexes and condition variables if necessary
1998 if test x$have_pthread_sem = xyes; then
1999 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syssem.c"
2000 else
2001 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syssem.c"
2002 fi
2003
2004 # Mutexes
2005 # We can fake these with semaphores if necessary
2006 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_sysmutex.c"
2007
2008 # Condition variables
2009 # We can fake these with semaphores and mutexes if necessary
2010 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syscond.c"
2011
2012 have_threads=yes
2013 else
2014 CheckPTH
2015 fi
2016 fi
2017}
2018
2019dnl Determine whether the compiler can produce Win32 executables
2020CheckWIN32()
2021{
2022 AC_MSG_CHECKING(Win32 compiler)
2023 have_win32_gcc=no
2024 AC_TRY_COMPILE([
2025 #include <windows.h>
2026 ],[
2027 ],[
2028 have_win32_gcc=yes
2029 ])
2030 AC_MSG_RESULT($have_win32_gcc)
2031 if test x$have_win32_gcc != xyes; then
2032 AC_MSG_ERROR([
2033*** Your compiler ($CC) does not produce Win32 executables!
2034 ])
2035 fi
2036
2037 dnl See if the user wants to redirect standard output to files
2038 AC_ARG_ENABLE(stdio-redirect,
2039AC_HELP_STRING([--enable-stdio-redirect], [Redirect STDIO to files on Win32 [[default=yes]]]),
2040 , enable_stdio_redirect=yes)
2041 if test x$enable_stdio_redirect != xyes; then
2042 EXTRA_CFLAGS="$EXTRA_CFLAGS -DNO_STDIO_REDIRECT"
2043 fi
2044
2045 if test x$enable_video = xyes; then
2046 AC_DEFINE(SDL_VIDEO_DRIVER_WINDIB)
2047 SOURCES="$SOURCES $srcdir/src/video/wincommon/*.c"
2048 SOURCES="$SOURCES $srcdir/src/video/windib/*.c"
2049 have_video=yes
2050 fi
2051}
2052
2053dnl Find the DirectX includes and libraries
2054CheckDIRECTX()
2055{
2056 AC_ARG_ENABLE(directx,
2057AC_HELP_STRING([--enable-directx], [use DirectX for Win32 audio/video [[default=yes]]]),
2058 , enable_directx=yes)
2059 if test x$enable_directx = xyes; then
2060 have_directx=no
2061 AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
2062 AC_CHECK_HEADER(dsound.h, have_dsound=yes)
2063 AC_CHECK_HEADER(dinput.h, use_dinput=yes)
2064 if test x$have_ddraw = xyes -a x$have_dsound = xyes -a x$use_dinput = xyes; then
2065 have_directx=yes
2066 fi
2067 if test x$enable_video = xyes -a x$have_directx = xyes; then
2068 AC_DEFINE(SDL_VIDEO_DRIVER_DDRAW)
2069 SOURCES="$SOURCES $srcdir/src/video/windx5/*.c"
2070 have_video=yes
2071 fi
2072 fi
2073}
2074
2075dnl Check for the dlfcn.h interface for dynamically loading objects
2076CheckDLOPEN()
2077{
2078 AC_ARG_ENABLE(sdl-dlopen,
2079AC_HELP_STRING([--enable-sdl-dlopen], [use dlopen for shared object loading [[default=yes]]]),
2080 , enable_sdl_dlopen=yes)
2081 if test x$enable_sdl_dlopen = xyes; then
2082 AC_MSG_CHECKING(for dlopen)
2083 have_dlopen=no
2084 AC_TRY_COMPILE([
2085 #include <dlfcn.h>
2086 ],[
2087 #if defined(MAC_OS_X_VERSION_MIN_REQUIRED) && MAC_OS_X_VERSION_MIN_REQUIRED <= 1020
2088 #error Use dlcompat for Mac OS X 10.2 compatibility
2089 #endif
2090 ],[
2091 have_dlopen=yes
2092 ])
2093 AC_MSG_RESULT($have_dlopen)
2094
2095 if test x$have_dlopen = xyes; then
2096 AC_CHECK_LIB(c, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS",
2097 AC_CHECK_LIB(dl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldl",
2098 AC_CHECK_LIB(ltdl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lltdl")))
2099 AC_DEFINE(SDL_LOADSO_DLOPEN)
2100 SOURCES="$SOURCES $srcdir/src/loadso/dlopen/*.c"
2101 have_loadso=yes
2102 fi
2103 fi
2104}
2105
2106dnl Set up the Atari LDG (shared object loader)
2107CheckAtariLdg()
2108{
2109 AC_ARG_ENABLE(atari-ldg,
2110AC_HELP_STRING([--enable-atari-ldg], [use Atari LDG for shared object loading [[default=yes]]]),
2111 , enable_atari_ldg=yes)
2112 if test x$video_gem = xyes -a x$enable_atari_ldg = xyes; then
2113 AC_CHECK_HEADER(ldg.h, have_ldg_hdr=yes)
2114 AC_CHECK_LIB(ldg, ldg_open, have_ldg_lib=yes, have_ldg_lib=no, -lgem)
2115 if test x$have_ldg_hdr = xyes -a x$have_ldg_lib = xyes; then
2116 AC_DEFINE(SDL_LOADSO_LDG)
2117 SOURCES="$SOURCES $srcdir/src/loadso/mint/*.c"
2118 SDL_LIBS="$SDL_LIBS -lldg -lgem"
2119 have_loadso=yes
2120 fi
2121 fi
2122}
2123
2124dnl Check for the usbhid(3) library on *BSD
2125CheckUSBHID()
2126{
2127 if test x$enable_joystick = xyes; then
2128 AC_CHECK_LIB(usbhid, hid_init, have_libusbhid=yes)
2129 if test x$have_libusbhid = xyes; then
2130 AC_CHECK_HEADER(usbhid.h, [USB_CFLAGS="-DHAVE_USBHID_H"])
2131 AC_CHECK_HEADER(libusbhid.h, [USB_CFLAGS="-DHAVE_LIBUSBHID_H"])
2132 USB_LIBS="$USB_LIBS -lusbhid"
2133 else
2134 AC_CHECK_HEADER(usb.h, [USB_CFLAGS="-DHAVE_USB_H"])
2135 AC_CHECK_HEADER(libusb.h, [USB_CFLAGS="-DHAVE_LIBUSB_H"])
2136 AC_CHECK_LIB(usb, hid_init, [USB_LIBS="$USB_LIBS -lusb"])
2137 fi
2138
2139 save_CFLAGS="$CFLAGS"
2140 CFLAGS="$CFLAGS $USB_CFLAGS"
2141
2142 AC_MSG_CHECKING(for usbhid)
2143 have_usbhid=no
2144 AC_TRY_COMPILE([
2145 #include <sys/types.h>
2146 #if defined(HAVE_USB_H)
2147 #include <usb.h>
2148 #endif
2149 #ifdef __DragonFly__
2150 # include <bus/usb/usb.h>
2151 # include <bus/usb/usbhid.h>
2152 #else
2153 # include <dev/usb/usb.h>
2154 # include <dev/usb/usbhid.h>
2155 #endif
2156 #if defined(HAVE_USBHID_H)
2157 #include <usbhid.h>
2158 #elif defined(HAVE_LIBUSB_H)
2159 #include <libusb.h>
2160 #elif defined(HAVE_LIBUSBHID_H)
2161 #include <libusbhid.h>
2162 #endif
2163 ],[
2164 struct report_desc *repdesc;
2165 struct usb_ctl_report *repbuf;
2166 hid_kind_t hidkind;
2167 ],[
2168 have_usbhid=yes
2169 ])
2170 AC_MSG_RESULT($have_usbhid)
2171
2172 if test x$have_usbhid = xyes; then
2173 AC_MSG_CHECKING(for ucr_data member of usb_ctl_report)
2174 have_usbhid_ucr_data=no
2175 AC_TRY_COMPILE([
2176 #include <sys/types.h>
2177 #if defined(HAVE_USB_H)
2178 #include <usb.h>
2179 #endif
2180 #ifdef __DragonFly__
2181 # include <bus/usb/usb.h>
2182 # include <bus/usb/usbhid.h>
2183 #else
2184 # include <dev/usb/usb.h>
2185 # include <dev/usb/usbhid.h>
2186 #endif
2187 #if defined(HAVE_USBHID_H)
2188 #include <usbhid.h>
2189 #elif defined(HAVE_LIBUSB_H)
2190 #include <libusb.h>
2191 #elif defined(HAVE_LIBUSBHID_H)
2192 #include <libusbhid.h>
2193 #endif
2194 ],[
2195 struct usb_ctl_report buf;
2196 if (buf.ucr_data) { }
2197 ],[
2198 have_usbhid_ucr_data=yes
2199 ])
2200 if test x$have_usbhid_ucr_data = xyes; then
2201 USB_CFLAGS="$USB_CFLAGS -DUSBHID_UCR_DATA"
2202 fi
2203 AC_MSG_RESULT($have_usbhid_ucr_data)
2204
2205 AC_MSG_CHECKING(for new usbhid API)
2206 have_usbhid_new=no
2207 AC_TRY_COMPILE([
2208 #include <sys/types.h>
2209 #if defined(HAVE_USB_H)
2210 #include <usb.h>
2211 #endif
2212 #ifdef __DragonFly__
2213 #include <bus/usb/usb.h>
2214 #include <bus/usb/usbhid.h>
2215 #else
2216 #include <dev/usb/usb.h>
2217 #include <dev/usb/usbhid.h>
2218 #endif
2219 #if defined(HAVE_USBHID_H)
2220 #include <usbhid.h>
2221 #elif defined(HAVE_LIBUSB_H)
2222 #include <libusb.h>
2223 #elif defined(HAVE_LIBUSBHID_H)
2224 #include <libusbhid.h>
2225 #endif
2226 ],[
2227 report_desc_t d;
2228 hid_start_parse(d, 1, 1);
2229 ],[
2230 have_usbhid_new=yes
2231 ])
2232 if test x$have_usbhid_new = xyes; then
2233 USB_CFLAGS="$USB_CFLAGS -DUSBHID_NEW"
2234 fi
2235 AC_MSG_RESULT($have_usbhid_new)
2236
2237 AC_MSG_CHECKING(for struct joystick in machine/joystick.h)
2238 have_machine_joystick=no
2239 AC_TRY_COMPILE([
2240 #include <machine/joystick.h>
2241 ],[
2242 struct joystick t;
2243 ],[
2244 have_machine_joystick=yes
2245 ])
2246 if test x$have_machine_joystick = xyes; then
2247 AC_DEFINE(SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H)
2248 fi
2249 AC_MSG_RESULT($have_machine_joystick)
2250
2251 AC_DEFINE(SDL_JOYSTICK_USBHID)
2252 SOURCES="$SOURCES $srcdir/src/joystick/bsd/*.c"
2253 EXTRA_CFLAGS="$EXTRA_CFLAGS $USB_CFLAGS"
2254 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $USB_LIBS"
2255 have_joystick=yes
2256 fi
2257 CFLAGS="$save_CFLAGS"
2258 fi
2259}
2260
2261dnl Check for clock_gettime()
2262CheckClockGettime()
2263{
2264 AC_ARG_ENABLE(clock_gettime,
2265AC_HELP_STRING([--enable-clock_gettime], [use clock_gettime() instead of gettimeofday() on UNIX [[default=no]]]),
2266 , enable_clock_gettime=no)
2267 if test x$enable_clock_gettime = xyes; then
2268 AC_CHECK_LIB(rt, clock_gettime, have_clock_gettime=yes)
2269 if test x$have_clock_gettime = xyes; then
2270 AC_DEFINE(HAVE_CLOCK_GETTIME)
2271 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lrt"
2272 fi
2273 fi
2274}
2275
2276dnl Check for a valid linux/version.h
2277CheckLinuxVersion()
2278{
2279 AC_CHECK_HEADER(linux/version.h, have_linux_version_h=yes)
2280 if test x$have_linux_version_h = xyes; then
2281 EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_LINUX_VERSION_H"
2282 fi
2283}
2284
2285dnl Check if we want to use RPATH
2286CheckRPATH()
2287{
2288 AC_ARG_ENABLE(rpath,
2289AC_HELP_STRING([--enable-rpath], [use an rpath when linking SDL [[default=yes]]]),
2290 , enable_rpath=yes)
2291}
2292
2293dnl Set up the configuration based on the host platform!
2294case "$host" in
2295 arm-*-elf*) # FIXME: Can we get more specific for iPodLinux?
2296 ARCH=linux
2297 CheckDummyVideo
2298 CheckIPod
2299 # Set up files for the timer library
2300 if test x$enable_timers = xyes; then
2301 AC_DEFINE(SDL_TIMER_UNIX)
2302 SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
2303 have_timers=yes
2304 fi
2305 ;;
2306 *-*-linux*|*-*-uclinux*|*-*-gnu*|*-*-k*bsd*-gnu|*-*-bsdi*|*-*-freebsd*|*-*-dragonfly*|*-*-netbsd*|*-*-openbsd*|*-*-sysv5*|*-*-solaris*|*-*-hpux*|*-*-irix*|*-*-aix*|*-*-osf*)
2307 case "$host" in
2308 *-*-linux*) ARCH=linux ;;
2309 *-*-uclinux*) ARCH=linux ;;
2310 *-*-kfreebsd*-gnu) ARCH=kfreebsd-gnu ;;
2311 *-*-knetbsd*-gnu) ARCH=knetbsd-gnu ;;
2312 *-*-kopenbsd*-gnu) ARCH=kopenbsd-gnu ;;
2313 *-*-gnu*) ARCH=gnu ;; # must be last of the gnu variants
2314 *-*-bsdi*) ARCH=bsdi ;;
2315 *-*-freebsd*) ARCH=freebsd ;;
2316 *-*-dragonfly*) ARCH=freebsd ;;
2317 *-*-netbsd*) ARCH=netbsd ;;
2318 *-*-openbsd*) ARCH=openbsd ;;
2319 *-*-sysv5*) ARCH=sysv5 ;;
2320 *-*-solaris*) ARCH=solaris ;;
2321 *-*-hpux*) ARCH=hpux ;;
2322 *-*-irix*) ARCH=irix ;;
2323 *-*-aix*) ARCH=aix ;;
2324 *-*-osf*) ARCH=osf ;;
2325 esac
2326 CheckVisibilityHidden
2327 CheckDummyVideo
2328 CheckDiskAudio
2329 CheckDummyAudio
2330 CheckDLOPEN
2331 CheckNASM
2332 CheckAltivec
2333 CheckOSS
2334 CheckDMEDIA
2335 CheckMME
2336 CheckALSA
2337 CheckARTSC
2338 CheckESD
2339 CheckPulseAudio
2340 CheckNAS
2341 CheckX11
2342 CheckNANOX
2343 CheckFBCON
2344 CheckDirectFB
2345 CheckPS2GS
2346 CheckPS3
2347 CheckGGI
2348 CheckSVGA
2349 CheckVGL
2350 CheckWscons
2351 CheckAAlib
2352 CheckCaca
2353 CheckQtopia
2354 CheckPicoGUI
2355 CheckOpenGLX11
2356 CheckInputEvents
2357 CheckTslib
2358 CheckUSBHID
2359 CheckPTHREAD
2360 CheckClockGettime
2361 CheckLinuxVersion
2362 CheckRPATH
9a8e84f8 2363 CheckOMAPDSS
e14743d1 2364 # Set up files for the audio library
2365 if test x$enable_audio = xyes; then
2366 case $ARCH in
2367 sysv5|solaris|hpux)
2368 AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO)
2369 SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
2370 have_audio=yes
2371 ;;
2372 netbsd|openbsd)
2373 AC_DEFINE(SDL_AUDIO_DRIVER_BSD)
2374 SOURCES="$SOURCES $srcdir/src/audio/bsd/*.c"
2375 have_audio=yes
2376 ;;
2377 aix)
2378 AC_DEFINE(SDL_AUDIO_DRIVER_PAUD)
2379 SOURCES="$SOURCES $srcdir/src/audio/paudio/*.c"
2380 have_audio=yes
2381 ;;
2382 esac
2383 fi
2384 # Set up files for the joystick library
2385 if test x$enable_joystick = xyes; then
2386 case $ARCH in
2387 linux)
2388 AC_DEFINE(SDL_JOYSTICK_LINUX)
2389 SOURCES="$SOURCES $srcdir/src/joystick/linux/*.c"
2390 have_joystick=yes
2391 ;;
2392 esac
2393 fi
2394 # Set up files for the cdrom library
2395 if test x$enable_cdrom = xyes; then
2396 case $ARCH in
2397 linux|solaris)
2398 AC_DEFINE(SDL_CDROM_LINUX)
2399 SOURCES="$SOURCES $srcdir/src/cdrom/linux/*.c"
2400 have_cdrom=yes
2401 ;;
2402 *freebsd*)
2403 AC_DEFINE(SDL_CDROM_FREEBSD)
2404 SOURCES="$SOURCES $srcdir/src/cdrom/freebsd/*.c"
2405 have_cdrom=yes
2406 ;;
2407 *openbsd*|*netbsd*)
2408 AC_DEFINE(SDL_CDROM_OPENBSD)
2409 SOURCES="$SOURCES $srcdir/src/cdrom/openbsd/*.c"
2410 have_cdrom=yes
2411 ;;
2412 bsdi)
2413 AC_DEFINE(SDL_CDROM_BSDI)
2414 SOURCES="$SOURCES $srcdir/src/cdrom/bsdi/*.c"
2415 have_cdrom=yes
2416 ;;
2417 aix)
2418 AC_DEFINE(SDL_CDROM_AIX)
2419 SOURCES="$SOURCES $srcdir/src/cdrom/aix/*.c"
2420 have_cdrom=yes
2421 ;;
2422 osf)
2423 AC_DEFINE(SDL_CDROM_OSF)
2424 SOURCES="$SOURCES $srcdir/src/cdrom/osf/*.c"
2425 have_cdrom=yes
2426 ;;
2427 esac
2428 fi
2429 # Set up files for the thread library
2430 if test x$enable_threads = xyes -a x$use_pthreads != xyes -a x$use_pth != xyes -a x$ARCH = xirix; then
2431 AC_DEFINE(SDL_THREAD_SPROC)
2432 SOURCES="$SOURCES $srcdir/src/thread/irix/*.c"
2433 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_sysmutex.c"
2434 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
2435 have_threads=yes
2436 fi
2437 # Set up files for the timer library
2438 if test x$enable_timers = xyes; then
2439 AC_DEFINE(SDL_TIMER_UNIX)
2440 SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
2441 have_timers=yes
2442 fi
2443 ;;
2444 *-*-qnx*)
2445 ARCH=qnx
2446 CheckDummyVideo
2447 CheckDiskAudio
2448 CheckDummyAudio
2449 # CheckNASM
2450 CheckDLOPEN
2451 CheckNAS
2452 CheckPHOTON
2453 CheckX11
2454 CheckOpenGLX11
2455 CheckPTHREAD
2456 # Set up files for the audio library
2457 if test x$enable_audio = xyes; then
2458 AC_DEFINE(SDL_AUDIO_DRIVER_QNXNTO)
2459 SOURCES="$SOURCES $srcdir/src/audio/nto/*.c"
2460 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lasound"
2461 have_audio=yes
2462 fi
2463 # Set up files for the cdrom library
2464 if test x$enable_cdrom = xyes; then
2465 AC_DEFINE(SDL_CDROM_QNX)
2466 SOURCES="$SOURCES $srcdir/src/cdrom/qnx/*.c"
2467 have_cdrom=yes
2468 fi
2469 # Set up files for the timer library
2470 if test x$enable_timers = xyes; then
2471 AC_DEFINE(SDL_TIMER_UNIX)
2472 SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
2473 have_timers=yes
2474 fi
2475 ;;
2476 *-*-cygwin* | *-*-mingw32*)
2477 ARCH=win32
2478 if test "$build" != "$host"; then # cross-compiling
2479 # Default cross-compile location
2480 ac_default_prefix=/usr/local/cross-tools/i386-mingw32
2481 else
2482 # Look for the location of the tools and install there
2483 if test "$BUILD_PREFIX" != ""; then
2484 ac_default_prefix=$BUILD_PREFIX
2485 fi
2486 fi
2487 CheckDummyVideo
2488 CheckDiskAudio
2489 CheckDummyAudio
2490 CheckWIN32
2491 CheckWIN32GL
2492 CheckDIRECTX
2493 CheckNASM
2494 # Set up files for the audio library
2495 if test x$enable_audio = xyes; then
2496 AC_DEFINE(SDL_AUDIO_DRIVER_WAVEOUT)
2497 SOURCES="$SOURCES $srcdir/src/audio/windib/*.c"
2498 if test x$have_directx = xyes; then
2499 AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND)
2500 SOURCES="$SOURCES $srcdir/src/audio/windx5/*.c"
2501 fi
2502 have_audio=yes
2503 fi
2504 # Set up files for the joystick library
2505 if test x$enable_joystick = xyes; then
2506 AC_DEFINE(SDL_JOYSTICK_WINMM)
2507 SOURCES="$SOURCES $srcdir/src/joystick/win32/*.c"
2508 have_joystick=yes
2509 fi
2510 # Set up files for the cdrom library
2511 if test x$enable_cdrom = xyes; then
2512 AC_DEFINE(SDL_CDROM_WIN32)
2513 SOURCES="$SOURCES $srcdir/src/cdrom/win32/*.c"
2514 have_cdrom=yes
2515 fi
2516 # Set up files for the thread library
2517 if test x$enable_threads = xyes; then
2518 AC_DEFINE(SDL_THREAD_WIN32)
2519 SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_sysmutex.c"
2520 SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_syssem.c"
2521 SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_systhread.c"
2522 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
2523 have_threads=yes
2524 fi
2525 # Set up files for the timer library
2526 if test x$enable_timers = xyes; then
2527 AC_DEFINE(SDL_TIMER_WIN32)
2528 SOURCES="$SOURCES $srcdir/src/timer/win32/*.c"
2529 have_timers=yes
2530 fi
2531 # Set up files for the shared object loading library
2532 if test x$enable_loadso = xyes; then
2533 AC_DEFINE(SDL_LOADSO_WIN32)
2534 SOURCES="$SOURCES $srcdir/src/loadso/win32/*.c"
2535 have_loadso=yes
2536 fi
2537 # Set up the system libraries we need
2538 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -luser32 -lgdi32 -lwinmm"
2539 if test x$have_directx = xyes; then
2540 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldxguid"
2541 fi
2542 # The Win32 platform requires special setup
2543 SOURCES="$SOURCES $srcdir/src/main/win32/*.rc"
2544 SDLMAIN_SOURCES="$srcdir/src/main/win32/*.c"
2545 SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
2546 SDL_LIBS="-lmingw32 -lSDLmain $SDL_LIBS -mwindows"
2547 ;;
2548 *-wince*)
2549 ARCH=win32
2550 CheckDummyVideo
2551 CheckDiskAudio
2552 CheckDummyAudio
2553 CheckWIN32
2554 CheckNASM
2555 SOURCES="$SOURCES $srcdir/src/video/gapi/*.c"
2556 EXTRA_CFLAGS="$EXTRA_CFLAGS -D_WIN32_WCE=0x420"
2557 if test x$enable_audio = xyes; then
2558 AC_DEFINE(SDL_AUDIO_DRIVER_WAVEOUT)
2559 SOURCES="$SOURCES $srcdir/src/audio/windib/*.c"
2560 have_audio=yes
2561 fi
2562 # Set up files for the thread library
2563 if test x$enable_threads = xyes; then
2564 AC_DEFINE(SDL_THREAD_WIN32)
2565 SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_sysmutex.c"
2566 SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_syssem.c"
2567 SOURCES="$SOURCES $srcdir/src/thread/win32/SDL_systhread.c"
2568 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
2569 have_threads=yes
2570 fi
2571 # Set up files for the timer library
2572 if test x$enable_timers = xyes; then
2573 AC_DEFINE(SDL_TIMER_WINCE)
2574 SOURCES="$SOURCES $srcdir/src/timer/wince/*.c"
2575 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lcoredll -lmmtimer"
2576 have_timers=yes
2577 fi
2578 # Set up files for the shared object loading library
2579 if test x$enable_loadso = xyes; then
2580 AC_DEFINE(SDL_LOADSO_WIN32)
2581 SOURCES="$SOURCES $srcdir/src/loadso/win32/*.c"
2582 have_loadso=yes
2583 fi
2584 # Set up the system libraries we need
2585 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lcoredll -lcommctrl"
2586 # The Win32 platform requires special setup
2587 SDLMAIN_SOURCES="$srcdir/src/main/win32/*.c"
2588 SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main -D_WIN32_WCE=0x420"
2589 SDL_LIBS="-lSDLmain $SDL_LIBS"
2590 ;;
2591 *-*-beos* | *-*-haiku*)
2592 ARCH=beos
2593 ac_default_prefix=/boot/develop/tools/gnupro
2594 CheckDummyVideo
2595 CheckDiskAudio
2596 CheckDummyAudio
2597 CheckNASM
2598 CheckBWINDOW
2599 CheckBeGL
2600 # Set up files for the audio library
2601 if test x$enable_audio = xyes; then
2602 AC_DEFINE(SDL_AUDIO_DRIVER_BAUDIO)
2603 SOURCES="$SOURCES $srcdir/src/audio/baudio/*.cc"
2604 have_audio=yes
2605 fi
2606 # Set up files for the joystick library
2607 if test x$enable_joystick = xyes; then
2608 AC_DEFINE(SDL_JOYSTICK_BEOS)
2609 SOURCES="$SOURCES $srcdir/src/joystick/beos/*.cc"
2610 have_joystick=yes
2611 fi
2612 # Set up files for the cdrom library
2613 if test x$enable_cdrom = xyes; then
2614 AC_DEFINE(SDL_CDROM_BEOS)
2615 SOURCES="$SOURCES $srcdir/src/cdrom/beos/*.cc"
2616 have_cdrom=yes
2617 fi
2618 # Set up files for the thread library
2619 if test x$enable_threads = xyes; then
2620 AC_DEFINE(SDL_THREAD_BEOS)
2621 SOURCES="$SOURCES $srcdir/src/thread/beos/*.c"
2622 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_sysmutex.c"
2623 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c"
2624 have_threads=yes
2625 fi
2626 # Set up files for the timer library
2627 if test x$enable_timers = xyes; then
2628 AC_DEFINE(SDL_TIMER_BEOS)
2629 SOURCES="$SOURCES $srcdir/src/timer/beos/*.c"
2630 have_timers=yes
2631 fi
2632 # Set up files for the shared object loading library
2633 if test x$enable_loadso = xyes; then
2634 case "$host" in
2635 *-*-beos*)
2636 AC_DEFINE(SDL_LOADSO_BEOS)
2637 SOURCES="$SOURCES $srcdir/src/loadso/beos/*.c"
2638 ;;
2639 *-*-haiku*)
2640 AC_DEFINE(SDL_LOADSO_DLOPEN)
2641 SOURCES="$SOURCES $srcdir/src/loadso/dlopen/*.c"
2642 ;;
2643 esac
2644 have_loadso=yes
2645 fi
2646 # The BeOS platform requires special setup.
2647 SOURCES="$srcdir/src/main/beos/*.cc $SOURCES"
2648 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding"
2649 ;;
2650 *-*-darwin* )
2651 # This could be either full "Mac OS X", or plain "Darwin" which is
2652 # just the OS X kernel sans upper layers like Carbon and Cocoa.
2653 # Next line is broken, and a few files below require Mac OS X (full)
2654 ARCH=macosx
2655
2656 # Mac OS X builds with both the Carbon and OSX APIs at the moment
2657 EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_CARBON"
2658 EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_OSX"
2659
2660 # HACK: Reset EXTRA_LDFLAGS; the only thing it contains at this point
2661 # is -lm which is not needed under Mac OS X. But for some reasons it
2662 # also tends to contain spurious -L switches, which we don't want to
2663 # use here or in sdl-config. Hence we reset it.
2664 EXTRA_LDFLAGS=""
2665
2666 CheckVisibilityHidden
2667 CheckDummyVideo
2668 CheckDiskAudio
2669 CheckDummyAudio
2670 CheckDLOPEN
2671 CheckNASM
2672
2673 # Set up files for the shared object loading library
2674 # (this needs to be done before the dynamic X11 check)
2675 if test x$enable_loadso = xyes -a x$have_dlopen != xyes; then
2676 AC_DEFINE(SDL_LOADSO_DLCOMPAT)
2677 SOURCES="$SOURCES $srcdir/src/loadso/macosx/*.c"
2678 have_loadso=yes
2679 fi
2680
2681 CheckCOCOA
2682 CheckCARBON
2683 CheckX11
2684 CheckMacGL
2685 CheckOpenGLX11
2686 CheckPTHREAD
2687 CheckAltivec
2688
2689 # Need this or things might misbuild on a G3.
2690 EXTRA_CFLAGS="$EXTRA_CFLAGS -force_cpusubtype_ALL"
2691
2692 # Set up files for the audio library
2693 if test x$enable_audio = xyes; then
2694 AC_DEFINE(SDL_AUDIO_DRIVER_COREAUDIO)
2695 SOURCES="$SOURCES $srcdir/src/audio/macosx/*.c"
2696 have_audio=yes
2697 fi
2698 # Set up files for the joystick library
2699 if test x$enable_joystick = xyes; then
2700 AC_DEFINE(SDL_JOYSTICK_IOKIT)
2701 SOURCES="$SOURCES $srcdir/src/joystick/darwin/*.c"
2702 have_joystick=yes
2703 need_iokit_framework=yes
2704 fi
2705 # Set up files for the cdrom library
2706 if test x$enable_cdrom = xyes; then
2707 AC_DEFINE(SDL_CDROM_MACOSX)
2708 SOURCES="$SOURCES $srcdir/src/cdrom/macosx/*.c"
2709 have_cdrom=yes
2710 fi
2711 # Set up files for the timer library
2712 if test x$enable_timers = xyes; then
2713 AC_DEFINE(SDL_TIMER_UNIX)
2714 SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
2715 have_timers=yes
2716 fi
2717 # The Mac OS X platform requires special setup.
2718 SDLMAIN_SOURCES="$srcdir/src/main/macosx/*.m"
2719 EXTRA_CFLAGS="$EXTRA_CFLAGS -fpascal-strings"
2720 SDL_LIBS="-lSDLmain $SDL_LIBS"
2721 if test x$enable_video_cocoa = xyes; then
2722 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Cocoa"
2723 need_iokit_framework=yes
2724 fi
2725 if test x$enable_video_carbon = xyes -o x$enable_video_cocoa = xyes; then
2726 # The Cocoa backend still needs Carbon
2727 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,ApplicationServices"
2728 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Carbon"
2729 fi
2730 # If either the audio or CD driver is used, add the AudioUnit framework
2731 if test x$enable_audio = xyes -o x$enable_cdrom = xyes; then
2732 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit"
2733 fi
2734 # Some subsystems reference IOKit...
2735 if test x$need_iokit_framework = xyes; then
2736 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,IOKit"
2737 fi
2738 ;;
2739 *-*-mint*)
2740 ARCH=mint
2741 CheckDummyVideo
2742 CheckDiskAudio
2743 CheckDummyAudio
2744 CheckAtariBiosEvent
2745 CheckAtariXbiosVideo
2746 CheckAtariGemVideo
2747 CheckAtariAudio
2748 CheckAtariLdg
2749 CheckAtariOSMesa
2750 CheckPTH
2751 # Set up files for the audio library
2752 if test x$enable_threads = xyes -a x$enable_pth = xyes; then
2753 if test x$enable_audio = xyes; then
2754 AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO)
2755 SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
2756 have_audio=yes
2757 fi
2758 fi
2759 # Set up files for the joystick library
2760 if test x$enable_joystick = xyes; then
2761 AC_DEFINE(SDL_JOYSTICK_MINT)
2762 SOURCES="$SOURCES $srcdir/src/joystick/mint/*.c"
2763 have_joystick=yes
2764 fi
2765 # Set up files for the cdrom library
2766 if test x$enable_cdrom = xyes; then
2767 AC_DEFINE(SDL_CDROM_MINT)
2768 SOURCES="$SOURCES $srcdir/src/cdrom/mint/*.c"
2769 have_cdrom=yes
2770 fi
2771 # Set up files for the timer library
2772 if test x$enable_timers = xyes; then
2773 if test x$enable_threads = xyes -a x$enable_pth = xyes; then
2774 AC_DEFINE(SDL_TIMER_UNIX)
2775 SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
2776 else
2777 AC_DEFINE(SDL_TIMER_MINT)
2778 SOURCES="$SOURCES $srcdir/src/timer/mint/*.c"
2779 SOURCES="$SOURCES $srcdir/src/timer/mint/*.S"
2780 fi
2781 have_timers=yes
2782 fi
2783 ;;
2784 *-riscos)
2785 ARCH=riscos
2786 CheckOSS
2787 CheckPTHREAD
2788 # Set up files for the video library
2789 if test x$enable_video = xyes; then
2790 AC_DEFINE(SDL_VIDEO_DRIVER_RISCOS)
2791 SOURCES="$SOURCES $srcdir/src/video/riscos/*.c"
2792 SOURCES="$SOURCES $srcdir/src/video/riscos/*.S"
2793 have_video=yes
2794 fi
2795 # Set up files for the joystick library
2796 if test x$enable_joystick = xyes; then
2797 AC_DEFINE(SDL_JOYSTICK_RISCOS)
2798 SOURCES="$SOURCES $srcdir/src/joystick/riscos/*.c"
2799 have_joystick=yes
2800 fi
2801 # Set up files for the timer library
2802 if test x$enable_timers = xyes; then
2803 AC_DEFINE(SDL_TIMER_RISCOS)
2804 SOURCES="$SOURCES $srcdir/src/timer/riscos/*.c"
2805 have_timers=yes
2806 fi
2807 # The RISC OS platform requires special setup.
2808 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ljpeg -ltiff -lpng -lz"
2809 ;;
2810 *)
2811 AC_MSG_ERROR([
2812*** Unsupported host: Please add to configure.in
2813 ])
2814 ;;
2815esac
2816
2817# Verify that we have all the platform specific files we need
2818
2819if test x$enable_joystick = xyes; then
2820 if test x$have_joystick != xyes; then
2821 # Wants joystick subsystem, but doesn't have a platform-specific backend...
2822 AC_DEFINE(SDL_JOYSTICK_DUMMY)
2823 SOURCES="$SOURCES $srcdir/src/joystick/dummy/*.c"
2824 fi
2825fi
2826if test x$have_cdrom != xyes; then
2827 if test x$enable_cdrom = xyes; then
2828 AC_DEFINE(SDL_CDROM_DISABLED)
2829 fi
2830 SOURCES="$SOURCES $srcdir/src/cdrom/dummy/*.c"
2831fi
2832if test x$have_threads != xyes; then
2833 if test x$enable_threads = xyes; then
2834 AC_DEFINE(SDL_THREADS_DISABLED)
2835 fi
2836 SOURCES="$SOURCES $srcdir/src/thread/generic/*.c"
2837fi
2838if test x$have_timers != xyes; then
2839 if test x$enable_timers = xyes; then
2840 AC_DEFINE(SDL_TIMERS_DISABLED)
2841 fi
2842 SOURCES="$SOURCES $srcdir/src/timer/dummy/*.c"
2843fi
2844if test x$have_loadso != xyes; then
2845 if test x$enable_loadso = xyes; then
2846 AC_DEFINE(SDL_LOADSO_DISABLED)
2847 fi
2848 SOURCES="$SOURCES $srcdir/src/loadso/dummy/*.c"
2849fi
2850if test x$SDLMAIN_SOURCES = x; then
2851 SDLMAIN_SOURCES="$srcdir/src/main/dummy/*.c"
2852fi
2853
2854OBJECTS=`echo $SOURCES | sed 's,[[^ ]]*/\([[^ ]]*\)\.asm,$(objects)/\1.lo,g'`
2855OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.cc,$(objects)/\1.lo,g'`
2856OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.m,$(objects)/\1.lo,g'`
2857OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'`
2858OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.S,$(objects)/\1.lo,g'`
2859OBJECTS=`echo $OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'`
2860
2861SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES | sed 's,[[^ ]]*/\([[^ ]]*\)\.cc,$(objects)/\1.o,g'`
2862SDLMAIN_OBJECTS=`echo $SDLMAIN_OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.m,$(objects)/\1.o,g'`
2863SDLMAIN_OBJECTS=`echo $SDLMAIN_OBJECTS | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.o,g'`
2864
2865# Set runtime shared library paths as needed
2866
2867if test "x$enable_rpath" = "xyes"; then
2868 if test $ARCH = bsdi -o $ARCH = freebsd -o $ARCH = irix -o $ARCH = linux -o $ARCH = netbsd; then
2869 SDL_RLD_FLAGS="-Wl,-rpath,\${libdir}"
2870 fi
2871 if test $ARCH = solaris; then
2872 SDL_RLD_FLAGS="-R\${libdir}"
2873 fi
2874else
2875 SDL_RLD_FLAGS=""
2876fi
2877
2878case "$ARCH" in
2879 macosx)
2880 if test x$enable_video = xyes -a x$enable_video_cocoa = xyes; then
2881 SDL_LIBS="$SDL_LIBS -Wl,-framework,Cocoa"
2882 fi
2883 if test x$enable_video = xyes -a x$enable_video_carbon = xyes; then
2884 SDL_LIBS="$SDL_LIBS -Wl,-framework,Carbon"
2885 fi
2886 # Evil hack to allow static linking on Mac OS X
2887 SDL_STATIC_LIBS="\${libdir}/libSDLmain.a \${libdir}/libSDL.a $EXTRA_LDFLAGS"
2888 ;;
2889 *)
2890 SDL_STATIC_LIBS="$SDL_LIBS $EXTRA_LDFLAGS"
2891 ;;
2892esac
2893
2894dnl Expand the cflags and libraries needed by apps using SDL
2895AC_SUBST(SDL_CFLAGS)
2896AC_SUBST(SDL_LIBS)
2897AC_SUBST(SDL_STATIC_LIBS)
2898AC_SUBST(SDL_RLD_FLAGS)
2899if test x$enable_shared = xyes; then
2900 ENABLE_SHARED_TRUE=
2901 ENABLE_SHARED_FALSE="#"
2902else
2903 ENABLE_SHARED_TRUE="#"
2904 ENABLE_SHARED_FALSE=
2905fi
2906if test x$enable_static = xyes; then
2907 ENABLE_STATIC_TRUE=
2908 ENABLE_STATIC_FALSE="#"
2909else
2910 ENABLE_STATIC_TRUE="#"
2911 ENABLE_STATIC_FALSE=
2912fi
2913AC_SUBST(ENABLE_SHARED_TRUE)
2914AC_SUBST(ENABLE_SHARED_FALSE)
2915AC_SUBST(ENABLE_STATIC_TRUE)
2916AC_SUBST(ENABLE_STATIC_FALSE)
2917
2918dnl Expand the sources and objects needed to build the library
2919AC_SUBST(ac_aux_dir)
2920AC_SUBST(INCLUDE)
2921AC_SUBST(SOURCES)
2922AC_SUBST(OBJECTS)
2923AC_SUBST(SDLMAIN_SOURCES)
2924AC_SUBST(SDLMAIN_OBJECTS)
2925AC_SUBST(BUILD_CFLAGS)
2926AC_SUBST(EXTRA_CFLAGS)
2927AC_SUBST(BUILD_LDFLAGS)
2928AC_SUBST(EXTRA_LDFLAGS)
2929AC_SUBST(WINDRES)
2930
2931AC_OUTPUT([
2932 Makefile sdl-config SDL.spec SDL.qpg sdl.pc
2933], [
2934 : >build-deps
2935 if test x"$MAKE" = x; then MAKE=make; fi; $MAKE depend
2936])