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