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