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