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