1dnl Process this file with autoconf to produce a configure script. 2AC_INIT(README.txt) 3AC_CONFIG_HEADER(include/SDL_config.h) 4AC_CONFIG_AUX_DIR(build-scripts) 5AC_CONFIG_MACRO_DIR([acinclude]) 6 7dnl Save the CFLAGS to see whether they were passed in or generated 8orig_CFLAGS="$CFLAGS" 9 10dnl Set various version strings - taken gratefully from the GTk sources 11# 12# Making releases: 13# Edit include/SDL_version.h and change the version, then: 14# SDL_MICRO_VERSION += 1; 15# SDL_INTERFACE_AGE += 1; 16# SDL_BINARY_AGE += 1; 17# if any functions have been added, set SDL_INTERFACE_AGE to 0. 18# if backwards compatibility has been broken, 19# set SDL_BINARY_AGE and SDL_INTERFACE_AGE to 0. 20# 21SDL_MAJOR_VERSION=2 22SDL_MINOR_VERSION=0 23SDL_MICRO_VERSION=5 24SDL_INTERFACE_AGE=1 25SDL_BINARY_AGE=5 26SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION 27 28AC_SUBST(SDL_MAJOR_VERSION) 29AC_SUBST(SDL_MINOR_VERSION) 30AC_SUBST(SDL_MICRO_VERSION) 31AC_SUBST(SDL_INTERFACE_AGE) 32AC_SUBST(SDL_BINARY_AGE) 33AC_SUBST(SDL_VERSION) 34 35# libtool versioning 36LT_INIT([win32-dll]) 37 38LT_RELEASE=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION 39LT_CURRENT=`expr $SDL_MICRO_VERSION - $SDL_INTERFACE_AGE` 40LT_REVISION=$SDL_INTERFACE_AGE 41LT_AGE=`expr $SDL_BINARY_AGE - $SDL_INTERFACE_AGE` 42m4_pattern_allow([^LT_]) 43 44AC_SUBST(LT_RELEASE) 45AC_SUBST(LT_CURRENT) 46AC_SUBST(LT_REVISION) 47AC_SUBST(LT_AGE) 48 49dnl Detect the canonical build and host environments 50dnl AC_CANONICAL_HOST 51 52dnl Check for tools 53AC_PROG_LIBTOOL 54AC_PROG_CC 55AC_PROG_CXX 56AC_PROG_INSTALL 57AC_PROG_MAKE_SET 58AC_CHECK_TOOL(WINDRES, [windres], [:]) 59 60dnl Make sure that srcdir is a full pathname 61case "$host" in 62 *-*-mingw32*) 63 # Except on msys, where make can't handle full pathnames (bug 1972) 64 ;; 65 *) 66 srcdir=`cd $srcdir && pwd` 67 ;; 68esac 69 70dnl Set up the compiler and linker flags 71INCLUDE="-I$srcdir/include" 72if test x$srcdir != x.; then 73 INCLUDE="-Iinclude $INCLUDE" 74elif test -d .hg; then 75 AC_MSG_ERROR([ 76*** When building from Mercurial you should configure and build in a 77 separate directory so you don't clobber SDL_config.h, SDL_revision.h 78]) 79fi 80BASE_CFLAGS="" 81BASE_LDFLAGS="" 82case "$host" in 83 *-*-cygwin*) 84 # We build SDL on cygwin without the UNIX emulation layer 85 save_CFLAGS="$CFLAGS" 86 have_no_cygwin=no 87 AC_MSG_CHECKING(for GCC -mno-cygwin option) 88 CFLAGS="$save_CFLAGS -mno-cygwin" 89 90 AC_TRY_COMPILE([ 91 ],[ 92 ],[ 93 have_no_cygwin=yes 94 ]) 95 AC_MSG_RESULT($have_no_cygwin) 96 CFLAGS="$save_CFLAGS" 97 98 if test x$have_no_cygwin = xyes; then 99 BASE_CFLAGS="-mno-cygwin" 100 BASE_LDFLAGS="-mno-cygwin" 101 fi 102 BASE_CFLAGS="$BASE_CFLAGS -I/usr/include/mingw" 103 ;; 104esac 105# Uncomment the following line if you want to force SDL and applications 106# built with it to be compiled for a particular architecture. 107#AX_GCC_ARCHFLAG([no], [BASE_CFLAGS="$BASE_CFLAGS $ax_cv_gcc_archflag]") 108BUILD_CFLAGS="$CFLAGS $CPPFLAGS -DUSING_GENERATED_CONFIG_H" 109# The default optimization for SDL is -O3 (Bug #31) 110if test "x$orig_CFLAGS" = x; then 111 BUILD_CFLAGS=`echo $BUILD_CFLAGS | sed 's/-O2/-O3/'` 112fi 113EXTRA_CFLAGS="$INCLUDE $BASE_CFLAGS" 114BUILD_LDFLAGS="$LDFLAGS" 115EXTRA_LDFLAGS="$BASE_LDFLAGS" 116## These are common directories to find software packages 117#for path in /usr/freeware /usr/pkg /usr/X11R6 /usr/local; do 118# if test -d $path/include; then 119# EXTRA_CFLAGS="$EXTRA_CFLAGS -I$path/include" 120# fi 121# if test -d $path/lib; then 122# EXTRA_LDFLAGS="$EXTRA_LDFLAGS -L$path/lib" 123# fi 124#done 125SDL_CFLAGS="$BASE_CFLAGS" 126SDL_LIBS="-lSDL2 $BASE_LDFLAGS" 127CPPFLAGS="$CPPFLAGS $EXTRA_CFLAGS" 128CFLAGS="$CFLAGS $EXTRA_CFLAGS" 129LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS" 130 131dnl set this to use on systems that use lib64 instead of lib 132base_libdir=`echo \${libdir} | sed 's/.*\/\(.*\)/\1/; q'` 133 134dnl Function to find a library in the compiler search path 135find_lib() 136{ 137 gcc_bin_path=[`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`] 138 gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`] 139 env_lib_path=[`echo $LIBS $LDFLAGS $* | sed 's/-L[ ]*//g'`] 140 if test "$cross_compiling" = yes; then 141 host_lib_path="" 142 else 143 host_lib_path="/usr/$base_libdir /usr/local/$base_libdir" 144 fi 145 for path in $env_lib_path $gcc_bin_path $gcc_lib_path $host_lib_path; do 146 lib=[`ls -- $path/$1 2>/dev/null | sed -e '/\.so\..*\./d' -e 's,.*/,,' | sort | tail -1`] 147 if test x$lib != x; then 148 echo $lib 149 return 150 fi 151 done 152} 153 154dnl Check for compiler characteristics 155AC_C_CONST 156AC_C_INLINE 157AC_C_VOLATILE 158 159dnl See whether we want assertions for debugging/sanity checking SDL itself. 160AC_ARG_ENABLE(assertions, 161AC_HELP_STRING([--enable-assertions], 162 [Enable internal sanity checks (auto/disabled/release/enabled/paranoid) [[default=auto]]]), 163 , enable_assertions=auto) 164case "$enable_assertions" in 165 auto) # Use optimization settings to determine assertion level 166 ;; 167 disabled) 168 AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 0, [ ]) 169 ;; 170 release) 171 AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 1, [ ]) 172 ;; 173 enabled) 174 AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 2, [ ]) 175 ;; 176 paranoid) 177 AC_DEFINE(SDL_DEFAULT_ASSERT_LEVEL, 3, [ ]) 178 ;; 179 *) 180 AC_MSG_ERROR([*** unknown assertion level. stop.]) 181 ;; 182esac 183 184dnl See whether we can use gcc style dependency tracking 185AC_ARG_ENABLE(dependency-tracking, 186AC_HELP_STRING([--enable-dependency-tracking], 187 [Use gcc -MMD -MT dependency tracking [[default=yes]]]), 188 , enable_dependency_tracking=yes) 189if test x$enable_dependency_tracking = xyes; then 190 have_gcc_mmd_mt=no 191 AC_MSG_CHECKING(for GCC -MMD -MT option) 192 AC_TRY_COMPILE([ 193 #if !defined(__GNUC__) || __GNUC__ < 3 194 #error Dependency tracking requires GCC 3.0 or newer 195 #endif 196 ],[ 197 ],[ 198 have_gcc_mmd_mt=yes 199 ]) 200 AC_MSG_RESULT($have_gcc_mmd_mt) 201 202 if test x$have_gcc_mmd_mt = xyes; then 203 DEPENDENCY_TRACKING_OPTIONS="-MMD -MT \$@" 204 fi 205fi 206 207AC_MSG_CHECKING(for linker option --no-undefined) 208have_no_undefined=no 209case "$host" in 210 dnl Skip this on platforms where it is just simply busted. 211 *-*-openbsd*) 212 ;; 213 214 *) 215 save_LDFLAGS="$LDFLAGS" 216 LDFLAGS="$LDFLAGS -Wl,--no-undefined" 217 AC_TRY_LINK([ 218 ],[ 219 ],[ 220 have_no_undefined=yes 221 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,--no-undefined" 222 ]) 223 LDFLAGS="$save_LDFLAGS" 224 ;; 225esac 226AC_MSG_RESULT($have_no_undefined) 227 228dnl See whether we are allowed to use the system C library 229AC_ARG_ENABLE(libc, 230AC_HELP_STRING([--enable-libc], [Use the system C library [[default=yes]]]), 231 , enable_libc=yes) 232if test x$enable_libc = xyes; then 233 AC_DEFINE(HAVE_LIBC, 1, [ ]) 234 235 dnl Check for C library headers 236 AC_HEADER_STDC 237 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) 238 239 dnl Check for typedefs, structures, etc. 240 AC_TYPE_SIZE_T 241 242 dnl Check for defines 243 AC_CHECK_DEFINE(M_PI, math.h) 244 245 dnl Checks for library functions. 246 case "$host" in 247 *-*-cygwin* | *-*-mingw32*) 248 ;; 249 *) 250 AC_FUNC_ALLOCA 251 ;; 252 esac 253 254 AC_FUNC_MEMCMP 255 if test x$ac_cv_func_memcmp_working = xyes; then 256 AC_DEFINE(HAVE_MEMCMP, 1, [ ]) 257 fi 258 AC_FUNC_STRTOD 259 if test x$ac_cv_func_strtod = xyes; then 260 AC_DEFINE(HAVE_STRTOD, 1, [ ]) 261 fi 262 AC_CHECK_FUNC(mprotect, 263 AC_TRY_COMPILE([ 264 #include <sys/types.h> 265 #include <sys/mman.h> 266 ],[ 267 ],[ 268 AC_DEFINE(HAVE_MPROTECT, 1, [ ]) 269 ]), 270 ) 271 AC_CHECK_FUNCS(malloc calloc realloc free getenv setenv 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 vsscanf vsnprintf fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname) 272 273 AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"]) 274 AC_CHECK_FUNCS(atan atan2 acos asin ceil copysign cos cosf fabs floor log pow scalbn sin sinf sqrt sqrtf tan tanf) 275 276 AC_CHECK_LIB(iconv, iconv_open, [LIBS="$LIBS -liconv"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -liconv"]) 277 AC_CHECK_FUNCS(iconv) 278 279 AC_CHECK_MEMBER(struct sigaction.sa_sigaction,[AC_DEFINE(HAVE_SA_SIGACTION)], ,[#include <signal.h>]) 280fi 281 282dnl AC_CHECK_SIZEOF(void*) 283 284dnl See whether we can use gcc atomic operations on this architecture 285AC_ARG_ENABLE(gcc-atomics, 286AC_HELP_STRING([--enable-gcc-atomics], 287 [Use gcc builtin atomics [[default=yes]]]), 288 , enable_gcc_atomics=yes) 289if test x$enable_gcc_atomics = xyes; then 290 have_gcc_atomics=no 291 AC_MSG_CHECKING(for GCC builtin atomic operations) 292 AC_TRY_LINK([ 293 ],[ 294 int a; 295 void *x, *y, *z; 296 __sync_lock_test_and_set(&a, 4); 297 __sync_lock_test_and_set(&x, y); 298 __sync_fetch_and_add(&a, 1); 299 __sync_bool_compare_and_swap(&a, 5, 10); 300 __sync_bool_compare_and_swap(&x, y, z); 301 ],[ 302 have_gcc_atomics=yes 303 ]) 304 AC_MSG_RESULT($have_gcc_atomics) 305 306 if test x$have_gcc_atomics = xyes; then 307 AC_DEFINE(HAVE_GCC_ATOMICS, 1, [ ]) 308 else 309 # See if we have the minimum operation needed for GCC atomics 310 AC_TRY_LINK([ 311 ],[ 312 int a; 313 __sync_lock_test_and_set(&a, 1); 314 __sync_lock_release(&a); 315 ],[ 316 have_gcc_sync_lock_test_and_set=yes 317 ]) 318 if test x$have_gcc_sync_lock_test_and_set = xyes; then 319 AC_DEFINE(HAVE_GCC_SYNC_LOCK_TEST_AND_SET, 1, [ ]) 320 fi 321 fi 322fi 323 324# Standard C sources 325SOURCES="$SOURCES $srcdir/src/*.c" 326SOURCES="$SOURCES $srcdir/src/atomic/*.c" 327SOURCES="$SOURCES $srcdir/src/audio/*.c" 328SOURCES="$SOURCES $srcdir/src/cpuinfo/*.c" 329SOURCES="$SOURCES $srcdir/src/dynapi/*.c" 330SOURCES="$SOURCES $srcdir/src/events/*.c" 331SOURCES="$SOURCES $srcdir/src/file/*.c" 332SOURCES="$SOURCES $srcdir/src/haptic/*.c" 333SOURCES="$SOURCES $srcdir/src/joystick/*.c" 334SOURCES="$SOURCES $srcdir/src/libm/*.c" 335SOURCES="$SOURCES $srcdir/src/power/*.c" 336#SOURCES="$SOURCES $srcdir/src/filesystem/*.c" 337SOURCES="$SOURCES $srcdir/src/render/*.c" 338SOURCES="$SOURCES $srcdir/src/render/*/*.c" 339SOURCES="$SOURCES $srcdir/src/stdlib/*.c" 340SOURCES="$SOURCES $srcdir/src/thread/*.c" 341SOURCES="$SOURCES $srcdir/src/timer/*.c" 342SOURCES="$SOURCES $srcdir/src/video/*.c" 343 344dnl Enable/disable various subsystems of the SDL library 345 346AC_ARG_ENABLE(atomic, 347AC_HELP_STRING([--enable-atomic], [Enable the atomic operations subsystem [[default=yes]]]), 348 , enable_atomic=yes) 349if test x$enable_atomic != xyes; then 350 AC_DEFINE(SDL_ATOMIC_DISABLED, 1, [ ]) 351else 352 SUMMARY_modules="${SUMMARY_modules} atomic" 353fi 354AC_ARG_ENABLE(audio, 355AC_HELP_STRING([--enable-audio], [Enable the audio subsystem [[default=yes]]]), 356 , enable_audio=yes) 357if test x$enable_audio != xyes; then 358 AC_DEFINE(SDL_AUDIO_DISABLED, 1, [ ]) 359else 360 SUMMARY_modules="${SUMMARY_modules} audio" 361fi 362AC_ARG_ENABLE(video, 363AC_HELP_STRING([--enable-video], [Enable the video subsystem [[default=yes]]]), 364 , enable_video=yes) 365if test x$enable_video != xyes; then 366 AC_DEFINE(SDL_VIDEO_DISABLED, 1, [ ]) 367else 368 SUMMARY_modules="${SUMMARY_modules} video" 369fi 370AC_ARG_ENABLE(render, 371AC_HELP_STRING([--enable-render], [Enable the render subsystem [[default=yes]]]), 372 , enable_render=yes) 373if test x$enable_render != xyes; then 374 AC_DEFINE(SDL_RENDER_DISABLED, 1, [ ]) 375else 376 SUMMARY_modules="${SUMMARY_modules} render" 377fi 378AC_ARG_ENABLE(events, 379AC_HELP_STRING([--enable-events], [Enable the events subsystem [[default=yes]]]), 380 , enable_events=yes) 381if test x$enable_events != xyes; then 382 AC_DEFINE(SDL_EVENTS_DISABLED, 1, [ ]) 383else 384 SUMMARY_modules="${SUMMARY_modules} events" 385fi 386AC_ARG_ENABLE(joystick, 387AC_HELP_STRING([--enable-joystick], [Enable the joystick subsystem [[default=yes]]]), 388 , enable_joystick=yes) 389if test x$enable_joystick != xyes; then 390 AC_DEFINE(SDL_JOYSTICK_DISABLED, 1, [ ]) 391else 392 SUMMARY_modules="${SUMMARY_modules} joystick" 393fi 394AC_ARG_ENABLE(haptic, 395AC_HELP_STRING([--enable-haptic], [Enable the haptic (force feedback) subsystem [[default=yes]]]), 396 , enable_haptic=yes) 397if test x$enable_haptic != xyes; then 398 AC_DEFINE(SDL_HAPTIC_DISABLED, 1, [ ]) 399else 400 SUMMARY_modules="${SUMMARY_modules} haptic" 401fi 402AC_ARG_ENABLE(power, 403AC_HELP_STRING([--enable-power], [Enable the power subsystem [[default=yes]]]), 404 , enable_power=yes) 405if test x$enable_power != xyes; then 406 AC_DEFINE(SDL_POWER_DISABLED, 1, [ ]) 407else 408 SUMMARY_modules="${SUMMARY_modules} power" 409fi 410AC_ARG_ENABLE(filesystem, 411AC_HELP_STRING([--enable-filesystem], [Enable the filesystem subsystem [[default=yes]]]), 412 , enable_filesystem=yes) 413if test x$enable_filesystem != xyes; then 414 AC_DEFINE(SDL_FILESYSTEM_DISABLED, 1, [ ]) 415else 416 SUMMARY_modules="${SUMMARY_modules} filesystem" 417fi 418AC_ARG_ENABLE(threads, 419AC_HELP_STRING([--enable-threads], [Enable the threading subsystem [[default=yes]]]), 420 , enable_threads=yes) 421if test x$enable_threads != xyes; then 422 AC_DEFINE(SDL_THREADS_DISABLED, 1, [ ]) 423else 424 SUMMARY_modules="${SUMMARY_modules} threads" 425fi 426AC_ARG_ENABLE(timers, 427AC_HELP_STRING([--enable-timers], [Enable the timer subsystem [[default=yes]]]), 428 , enable_timers=yes) 429if test x$enable_timers != xyes; then 430 AC_DEFINE(SDL_TIMERS_DISABLED, 1, [ ]) 431else 432 SUMMARY_modules="${SUMMARY_modules} timers" 433fi 434AC_ARG_ENABLE(file, 435AC_HELP_STRING([--enable-file], [Enable the file subsystem [[default=yes]]]), 436 , enable_file=yes) 437if test x$enable_file != xyes; then 438 AC_DEFINE(SDL_FILE_DISABLED, 1, [ ]) 439else 440 SUMMARY_modules="${SUMMARY_modules} file" 441fi 442AC_ARG_ENABLE(loadso, 443AC_HELP_STRING([--enable-loadso], [Enable the shared object loading subsystem [[default=yes]]]), 444 , enable_loadso=yes) 445if test x$enable_loadso != xyes; then 446 AC_DEFINE(SDL_LOADSO_DISABLED, 1, [ ]) 447else 448 SUMMARY_modules="${SUMMARY_modules} loadso" 449fi 450AC_ARG_ENABLE(cpuinfo, 451AC_HELP_STRING([--enable-cpuinfo], [Enable the cpuinfo subsystem [[default=yes]]]), 452 , enable_cpuinfo=yes) 453if test x$enable_cpuinfo != xyes; then 454 AC_DEFINE(SDL_CPUINFO_DISABLED, 1, [ ]) 455else 456 SUMMARY_modules="${SUMMARY_modules} cpuinfo" 457fi 458AC_ARG_ENABLE(assembly, 459AC_HELP_STRING([--enable-assembly], [Enable assembly routines [[default=yes]]]), 460 , enable_assembly=yes) 461if test x$enable_assembly = xyes; then 462 SUMMARY_modules="${SUMMARY_modules} assembly" 463 464 AC_DEFINE(SDL_ASSEMBLY_ROUTINES, 1, [ ]) 465 466 # Make sure that we don't generate floating point code that would 467 # cause illegal instruction exceptions on older processors 468 case "$host" in 469 *-*-darwin*) 470 # Don't need to worry about Apple hardware, it's all SSE capable 471 default_ssemath=yes 472 ;; 473 *64-*-*) 474 # x86 64-bit architectures all have SSE instructions 475 default_ssemath=yes 476 ;; 477 *) 478 default_ssemath=no 479 ;; 480 esac 481 AC_ARG_ENABLE(ssemath, 482AC_HELP_STRING([--enable-ssemath], [Allow GCC to use SSE floating point math [[default=no]]]), 483 , enable_ssemath=$default_ssemath) 484 if test x$enable_ssemath = xno; then 485 if test x$have_gcc_sse = xyes -o x$have_gcc_sse2 = xyes; then 486 EXTRA_CFLAGS="$EXTRA_CFLAGS -mfpmath=387" 487 fi 488 fi 489 490 dnl Check for various instruction support 491 AC_ARG_ENABLE(mmx, 492AC_HELP_STRING([--enable-mmx], [use MMX assembly routines [[default=yes]]]), 493 , enable_mmx=yes) 494 if test x$enable_mmx = xyes; then 495 save_CFLAGS="$CFLAGS" 496 have_gcc_mmx=no 497 AC_MSG_CHECKING(for GCC -mmmx option) 498 mmx_CFLAGS="-mmmx" 499 CFLAGS="$save_CFLAGS $mmx_CFLAGS" 500 501 AC_TRY_COMPILE([ 502 #ifdef __MINGW32__ 503 #include <_mingw.h> 504 #ifdef __MINGW64_VERSION_MAJOR 505 #include <intrin.h> 506 #else 507 #include <mmintrin.h> 508 #endif 509 #else 510 #include <mmintrin.h> 511 #endif 512 #ifndef __MMX__ 513 #error Assembler CPP flag not enabled 514 #endif 515 ],[ 516 ],[ 517 have_gcc_mmx=yes 518 ]) 519 AC_MSG_RESULT($have_gcc_mmx) 520 CFLAGS="$save_CFLAGS" 521 522 if test x$have_gcc_mmx = xyes; then 523 EXTRA_CFLAGS="$EXTRA_CFLAGS $mmx_CFLAGS" 524 SUMMARY_math="${SUMMARY_math} mmx" 525 fi 526 fi 527 528 AC_ARG_ENABLE(3dnow, 529AC_HELP_STRING([--enable-3dnow], [use 3DNow! assembly routines [[default=yes]]]), 530 , enable_3dnow=yes) 531 if test x$enable_3dnow = xyes; then 532 save_CFLAGS="$CFLAGS" 533 have_gcc_3dnow=no 534 AC_MSG_CHECKING(for GCC -m3dnow option) 535 amd3dnow_CFLAGS="-m3dnow" 536 CFLAGS="$save_CFLAGS $amd3dnow_CFLAGS" 537 538 AC_TRY_LINK([ 539 #include <mm3dnow.h> 540 #ifndef __3dNOW__ 541 #error Assembler CPP flag not enabled 542 #endif 543 ],[ 544 void *p = 0; 545 _m_prefetch(p); 546 ],[ 547 have_gcc_3dnow=yes 548 ]) 549 AC_MSG_RESULT($have_gcc_3dnow) 550 CFLAGS="$save_CFLAGS" 551 552 if test x$have_gcc_3dnow = xyes; then 553 EXTRA_CFLAGS="$EXTRA_CFLAGS $amd3dnow_CFLAGS" 554 SUMMARY_math="${SUMMARY_math} 3dnow" 555 fi 556 fi 557 558 AC_ARG_ENABLE(sse, 559AC_HELP_STRING([--enable-sse], [use SSE assembly routines [[default=yes]]]), 560 , enable_sse=yes) 561 if test x$enable_sse = xyes; then 562 save_CFLAGS="$CFLAGS" 563 have_gcc_sse=no 564 AC_MSG_CHECKING(for GCC -msse option) 565 sse_CFLAGS="-msse" 566 CFLAGS="$save_CFLAGS $sse_CFLAGS" 567 568 AC_TRY_COMPILE([ 569 #ifdef __MINGW32__ 570 #include <_mingw.h> 571 #ifdef __MINGW64_VERSION_MAJOR 572 #include <intrin.h> 573 #else 574 #include <xmmintrin.h> 575 #endif 576 #else 577 #include <xmmintrin.h> 578 #endif 579 #ifndef __SSE__ 580 #error Assembler CPP flag not enabled 581 #endif 582 ],[ 583 ],[ 584 have_gcc_sse=yes 585 ]) 586 AC_MSG_RESULT($have_gcc_sse) 587 CFLAGS="$save_CFLAGS" 588 589 if test x$have_gcc_sse = xyes; then 590 EXTRA_CFLAGS="$EXTRA_CFLAGS $sse_CFLAGS" 591 SUMMARY_math="${SUMMARY_math} sse" 592 fi 593 fi 594 595 AC_ARG_ENABLE(sse2, 596AC_HELP_STRING([--enable-sse2], [use SSE2 assembly routines [[default=no]]]), 597 , enable_sse2=$default_ssemath) 598 if test x$enable_sse2 = xyes; then 599 save_CFLAGS="$CFLAGS" 600 have_gcc_sse2=no 601 AC_MSG_CHECKING(for GCC -msse2 option) 602 sse2_CFLAGS="-msse2" 603 CFLAGS="$save_CFLAGS $sse2_CFLAGS" 604 605 AC_TRY_COMPILE([ 606 #ifdef __MINGW32__ 607 #include <_mingw.h> 608 #ifdef __MINGW64_VERSION_MAJOR 609 #include <intrin.h> 610 #else 611 #include <emmintrin.h> 612 #endif 613 #else 614 #include <emmintrin.h> 615 #endif 616 #ifndef __SSE2__ 617 #error Assembler CPP flag not enabled 618 #endif 619 ],[ 620 ],[ 621 have_gcc_sse2=yes 622 ]) 623 AC_MSG_RESULT($have_gcc_sse2) 624 CFLAGS="$save_CFLAGS" 625 626 if test x$have_gcc_sse2 = xyes; then 627 EXTRA_CFLAGS="$EXTRA_CFLAGS $sse2_CFLAGS" 628 SUMMARY_math="${SUMMARY_math} sse2" 629 fi 630 fi 631 632 AC_ARG_ENABLE(altivec, 633AC_HELP_STRING([--enable-altivec], [use Altivec assembly routines [[default=yes]]]), 634 , enable_altivec=yes) 635 if test x$enable_altivec = xyes; then 636 save_CFLAGS="$CFLAGS" 637 have_gcc_altivec=no 638 have_altivec_h_hdr=no 639 altivec_CFLAGS="-maltivec" 640 CFLAGS="$save_CFLAGS $altivec_CFLAGS" 641 642 AC_MSG_CHECKING(for Altivec with GCC altivec.h and -maltivec option) 643 AC_TRY_COMPILE([ 644 #include <altivec.h> 645 vector unsigned int vzero() { 646 return vec_splat_u32(0); 647 } 648 ],[ 649 ],[ 650 have_gcc_altivec=yes 651 have_altivec_h_hdr=yes 652 ]) 653 AC_MSG_RESULT($have_gcc_altivec) 654 655 if test x$have_gcc_altivec = xno; then 656 AC_MSG_CHECKING(for Altivec with GCC -maltivec option) 657 AC_TRY_COMPILE([ 658 vector unsigned int vzero() { 659 return vec_splat_u32(0); 660 } 661 ],[ 662 ],[ 663 have_gcc_altivec=yes 664 ]) 665 AC_MSG_RESULT($have_gcc_altivec) 666 fi 667 668 if test x$have_gcc_altivec = xno; then 669 AC_MSG_CHECKING(for Altivec with GCC altivec.h and -faltivec option) 670 altivec_CFLAGS="-faltivec" 671 CFLAGS="$save_CFLAGS $altivec_CFLAGS" 672 AC_TRY_COMPILE([ 673 #include <altivec.h> 674 vector unsigned int vzero() { 675 return vec_splat_u32(0); 676 } 677 ],[ 678 ],[ 679 have_gcc_altivec=yes 680 have_altivec_h_hdr=yes 681 ]) 682 AC_MSG_RESULT($have_gcc_altivec) 683 fi 684 685 if test x$have_gcc_altivec = xno; then 686 AC_MSG_CHECKING(for Altivec with GCC -faltivec option) 687 AC_TRY_COMPILE([ 688 vector unsigned int vzero() { 689 return vec_splat_u32(0); 690 } 691 ],[ 692 ],[ 693 have_gcc_altivec=yes 694 ]) 695 AC_MSG_RESULT($have_gcc_altivec) 696 fi 697 CFLAGS="$save_CFLAGS" 698 699 if test x$have_gcc_altivec = xyes; then 700 AC_DEFINE(SDL_ALTIVEC_BLITTERS, 1, [ ]) 701 if test x$have_altivec_h_hdr = xyes; then 702 AC_DEFINE(HAVE_ALTIVEC_H, 1, [ ]) 703 fi 704 EXTRA_CFLAGS="$EXTRA_CFLAGS $altivec_CFLAGS" 705 SUMMARY_math="${SUMMARY_math} altivec" 706 fi 707 fi 708fi 709 710dnl See if the OSS audio interface is supported 711CheckOSS() 712{ 713 AC_ARG_ENABLE(oss, 714AC_HELP_STRING([--enable-oss], [support the OSS audio API [[default=maybe]]]), 715 , enable_oss=maybe) 716 717 # OpenBSD "has" OSS, but it's not really for app use. They want you to 718 # use sndio instead. So on there, we default to disabled. You can force 719 # it on if you really want, though. 720 if test x$enable_oss = xmaybe; then 721 enable_oss=yes 722 case "$host" in 723 *-*-openbsd*) 724 enable_oss=no;; 725 esac 726 fi 727 728 if test x$enable_audio = xyes -a x$enable_oss = xyes; then 729 AC_MSG_CHECKING(for OSS audio support) 730 have_oss=no 731 if test x$have_oss != xyes; then 732 AC_TRY_COMPILE([ 733 #include <sys/soundcard.h> 734 ],[ 735 int arg = SNDCTL_DSP_SETFRAGMENT; 736 ],[ 737 have_oss=yes 738 ]) 739 fi 740 if test x$have_oss != xyes; then 741 AC_TRY_COMPILE([ 742 #include <soundcard.h> 743 ],[ 744 int arg = SNDCTL_DSP_SETFRAGMENT; 745 ],[ 746 have_oss=yes 747 AC_DEFINE(SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H, 1, [ ]) 748 ]) 749 fi 750 AC_MSG_RESULT($have_oss) 751 if test x$have_oss = xyes; then 752 SUMMARY_audio="${SUMMARY_audio} oss" 753 AC_DEFINE(SDL_AUDIO_DRIVER_OSS, 1, [ ]) 754 SOURCES="$SOURCES $srcdir/src/audio/dsp/*.c" 755 have_audio=yes 756 757 # We may need to link with ossaudio emulation library 758 case "$host" in 759 *-*-openbsd*|*-*-netbsd*) 760 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lossaudio";; 761 esac 762 fi 763 fi 764} 765 766dnl See if the ALSA audio interface is supported 767CheckALSA() 768{ 769 AC_ARG_ENABLE(alsa, 770AC_HELP_STRING([--enable-alsa], [support the ALSA audio API [[default=yes]]]), 771 , enable_alsa=yes) 772 if test x$enable_audio = xyes -a x$enable_alsa = xyes; then 773 AM_PATH_ALSA(1.0.11, have_alsa=yes, have_alsa=no) 774 # Restore all flags from before the ALSA detection runs 775 CFLAGS="$alsa_save_CFLAGS" 776 LDFLAGS="$alsa_save_LDFLAGS" 777 LIBS="$alsa_save_LIBS" 778 if test x$have_alsa = xyes; then 779 AC_ARG_ENABLE(alsa-shared, 780AC_HELP_STRING([--enable-alsa-shared], [dynamically load ALSA audio support [[default=yes]]]), 781 , enable_alsa_shared=yes) 782 alsa_lib=[`find_lib "libasound.so.*" "$ALSA_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`] 783 784 AC_DEFINE(SDL_AUDIO_DRIVER_ALSA, 1, [ ]) 785 SOURCES="$SOURCES $srcdir/src/audio/alsa/*.c" 786 EXTRA_CFLAGS="$EXTRA_CFLAGS $ALSA_CFLAGS" 787 if test x$have_loadso != xyes && \ 788 test x$enable_alsa_shared = xyes; then 789 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ALSA loading]) 790 fi 791 if test x$have_loadso = xyes && \ 792 test x$enable_alsa_shared = xyes && test x$alsa_lib != x; then 793 echo "-- dynamic libasound -> $alsa_lib" 794 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ALSA_DYNAMIC, "$alsa_lib", [ ]) 795 SUMMARY_audio="${SUMMARY_audio} alsa(dynamic)" 796 else 797 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ALSA_LIBS" 798 SUMMARY_audio="${SUMMARY_audio} alsa" 799 fi 800 have_audio=yes 801 fi 802 fi 803} 804 805dnl Find the ESD includes and libraries 806CheckESD() 807{ 808 AC_ARG_ENABLE(esd, 809AC_HELP_STRING([--enable-esd], [support the Enlightened Sound Daemon [[default=yes]]]), 810 , enable_esd=yes) 811 if test x$enable_audio = xyes -a x$enable_esd = xyes; then 812 AM_PATH_ESD(0.2.8, have_esd=yes, have_esd=no) 813 if test x$have_esd = xyes; then 814 AC_ARG_ENABLE(esd-shared, 815AC_HELP_STRING([--enable-esd-shared], [dynamically load ESD audio support [[default=yes]]]), 816 , enable_esd_shared=yes) 817 esd_lib=[`find_lib "libesd.so.*" "$ESD_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`] 818 819 AC_DEFINE(SDL_AUDIO_DRIVER_ESD, 1, [ ]) 820 SOURCES="$SOURCES $srcdir/src/audio/esd/*.c" 821 EXTRA_CFLAGS="$EXTRA_CFLAGS $ESD_CFLAGS" 822 if test x$have_loadso != xyes && \ 823 test x$enable_esd_shared = xyes; then 824 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ESD loading]) 825 fi 826 if test x$have_loadso = xyes && \ 827 test x$enable_esd_shared = xyes && test x$esd_lib != x; then 828 echo "-- dynamic libesd -> $esd_lib" 829 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ESD_DYNAMIC, "$esd_lib", [ ]) 830 SUMMARY_audio="${SUMMARY_audio} esd(dynamic)" 831 else 832 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ESD_LIBS" 833 SUMMARY_audio="${SUMMARY_audio} esd" 834 fi 835 have_audio=yes 836 fi 837 fi 838} 839 840dnl Find PulseAudio 841CheckPulseAudio() 842{ 843 AC_ARG_ENABLE(pulseaudio, 844AC_HELP_STRING([--enable-pulseaudio], [use PulseAudio [[default=yes]]]), 845 , enable_pulseaudio=yes) 846 if test x$enable_audio = xyes -a x$enable_pulseaudio = xyes; then 847 audio_pulseaudio=no 848 849 PULSEAUDIO_REQUIRED_VERSION=0.9 850 851 AC_PATH_PROG(PKG_CONFIG, pkg-config, no) 852 AC_MSG_CHECKING(for PulseAudio $PULSEAUDIO_REQUIRED_VERSION support) 853 if test x$PKG_CONFIG != xno; then 854 if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $PULSEAUDIO_REQUIRED_VERSION libpulse-simple; then 855 PULSEAUDIO_CFLAGS=`$PKG_CONFIG --cflags libpulse-simple` 856 PULSEAUDIO_LIBS=`$PKG_CONFIG --libs libpulse-simple` 857 audio_pulseaudio=yes 858 fi 859 fi 860 AC_MSG_RESULT($audio_pulseaudio) 861 862 if test x$audio_pulseaudio = xyes; then 863 AC_ARG_ENABLE(pulseaudio-shared, 864AC_HELP_STRING([--enable-pulseaudio-shared], [dynamically load PulseAudio support [[default=yes]]]), 865 , enable_pulseaudio_shared=yes) 866 pulseaudio_lib=[`find_lib "libpulse-simple.so.*" "$PULSEAUDIO_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`] 867 868 AC_DEFINE(SDL_AUDIO_DRIVER_PULSEAUDIO, 1, [ ]) 869 SOURCES="$SOURCES $srcdir/src/audio/pulseaudio/*.c" 870 EXTRA_CFLAGS="$EXTRA_CFLAGS $PULSEAUDIO_CFLAGS" 871 if test x$have_loadso != xyes && \ 872 test x$enable_pulseaudio_shared = xyes; then 873 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic PulseAudio loading]) 874 fi 875 if test x$have_loadso = xyes && \ 876 test x$enable_pulseaudio_shared = xyes && test x$pulseaudio_lib != x; then 877 echo "-- dynamic libpulse-simple -> $pulseaudio_lib" 878 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC, "$pulseaudio_lib", [ ]) 879 SUMMARY_audio="${SUMMARY_audio} pulse(dynamic)" 880 881 case "$host" in 882 # On Solaris, pulseaudio must be linked deferred explicitly 883 # to prevent undefined symbol failures. 884 *-*-solaris*) 885 PULSEAUDIO_LIBS=`echo $PULSEAUDIO_LIBS | sed 's/\-l/-Wl,-l/g'` 886 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-zdeferred $PULSEAUDIO_LIBS -Wl,-znodeferred" 887 esac 888 else 889 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PULSEAUDIO_LIBS" 890 SUMMARY_audio="${SUMMARY_audio} pulse" 891 fi 892 have_audio=yes 893 fi 894 fi 895} 896 897CheckARTSC() 898{ 899 AC_ARG_ENABLE(arts, 900AC_HELP_STRING([--enable-arts], [support the Analog Real Time Synthesizer [[default=yes]]]), 901 , enable_arts=yes) 902 if test x$enable_audio = xyes -a x$enable_arts = xyes; then 903 AC_PATH_PROG(ARTSCONFIG, artsc-config) 904 if test x$ARTSCONFIG = x -o x$ARTSCONFIG = x'"$ARTSCONFIG"'; then 905 : # arts isn't installed 906 else 907 ARTS_CFLAGS=`$ARTSCONFIG --cflags` 908 ARTS_LIBS=`$ARTSCONFIG --libs` 909 AC_MSG_CHECKING(for aRts development environment) 910 audio_arts=no 911 save_CFLAGS="$CFLAGS" 912 CFLAGS="$CFLAGS $ARTS_CFLAGS" 913 AC_TRY_COMPILE([ 914 #include <artsc.h> 915 ],[ 916 arts_stream_t stream; 917 ],[ 918 audio_arts=yes 919 ]) 920 CFLAGS="$save_CFLAGS" 921 AC_MSG_RESULT($audio_arts) 922 if test x$audio_arts = xyes; then 923 AC_ARG_ENABLE(arts-shared, 924AC_HELP_STRING([--enable-arts-shared], [dynamically load aRts audio support [[default=yes]]]), 925 , enable_arts_shared=yes) 926 arts_lib=[`find_lib "libartsc.so.*" "$ARTS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`] 927 928 AC_DEFINE(SDL_AUDIO_DRIVER_ARTS, 1, [ ]) 929 SOURCES="$SOURCES $srcdir/src/audio/arts/*.c" 930 EXTRA_CFLAGS="$EXTRA_CFLAGS $ARTS_CFLAGS" 931 if test x$have_loadso != xyes && \ 932 test x$enable_arts_shared = xyes; then 933 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic ARTS loading]) 934 fi 935 if test x$have_loadso = xyes && \ 936 test x$enable_arts_shared = xyes && test x$arts_lib != x; then 937 echo "-- dynamic libartsc -> $arts_lib" 938 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_ARTS_DYNAMIC, "$arts_lib", [ ]) 939 SUMMARY_audio="${SUMMARY_audio} arts(dynamic)" 940 else 941 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ARTS_LIBS" 942 SUMMARY_audio="${SUMMARY_audio} arts" 943 fi 944 have_audio=yes 945 fi 946 fi 947 fi 948} 949 950dnl See if the NAS audio interface is supported 951CheckNAS() 952{ 953 AC_ARG_ENABLE(nas, 954AC_HELP_STRING([--enable-nas], [support the NAS audio API [[default=yes]]]), 955 , enable_nas=yes) 956 if test x$enable_audio = xyes -a x$enable_nas = xyes; then 957 AC_CHECK_HEADER(audio/audiolib.h, have_nas_hdr=yes) 958 AC_CHECK_LIB(audio, AuOpenServer, have_nas_lib=yes) 959 960 AC_MSG_CHECKING(for NAS audio support) 961 have_nas=no 962 963 if test x$have_nas_hdr = xyes -a x$have_nas_lib = xyes; then 964 have_nas=yes 965 NAS_LIBS="-laudio" 966 967 elif test -r /usr/X11R6/include/audio/audiolib.h; then 968 have_nas=yes 969 NAS_CFLAGS="-I/usr/X11R6/include/" 970 NAS_LIBS="-L/usr/X11R6/lib -laudio -lXt" 971 972 fi 973 974 AC_MSG_RESULT($have_nas) 975 976 if test x$have_nas = xyes; then 977 AC_ARG_ENABLE(nas-shared, 978AC_HELP_STRING([--enable-nas-shared], [dynamically load NAS audio support [[default=yes]]]), 979 , enable_nas_shared=yes) 980 nas_lib=[`find_lib "libaudio.so.*" "$NAS_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`] 981 982 if test x$have_loadso != xyes && \ 983 test x$enable_nas_shared = xyes; then 984 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic NAS loading]) 985 fi 986 if test x$have_loadso = xyes && \ 987 test x$enable_nas_shared = xyes && test x$nas_lib != x; then 988 echo "-- dynamic libaudio -> $nas_lib" 989 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_NAS_DYNAMIC, "$nas_lib", [ ]) 990 SUMMARY_audio="${SUMMARY_audio} nas(dynamic)" 991 else 992 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $NAS_LIBS" 993 SUMMARY_audio="${SUMMARY_audio} nas" 994 fi 995 996 AC_DEFINE(SDL_AUDIO_DRIVER_NAS, 1, [ ]) 997 SOURCES="$SOURCES $srcdir/src/audio/nas/*.c" 998 EXTRA_CFLAGS="$EXTRA_CFLAGS $NAS_CFLAGS" 999 have_audio=yes 1000 fi 1001 fi 1002} 1003 1004dnl See if the sndio audio interface is supported 1005CheckSNDIO() 1006{ 1007 AC_ARG_ENABLE(sndio, 1008AC_HELP_STRING([--enable-sndio], [support the sndio audio API [[default=yes]]]), 1009 , enable_sndio=yes) 1010 if test x$enable_audio = xyes -a x$enable_sndio = xyes; then 1011 AC_CHECK_HEADER(sndio.h, have_sndio_hdr=yes) 1012 AC_CHECK_LIB(sndio, sio_open, have_sndio_lib=yes) 1013 1014 AC_MSG_CHECKING(for sndio audio support) 1015 have_sndio=no 1016 1017 if test x$have_sndio_hdr = xyes -a x$have_sndio_lib = xyes; then 1018 have_sndio=yes 1019 SNDIO_LIBS="-lsndio" 1020 fi 1021 1022 AC_MSG_RESULT($have_sndio) 1023 1024 if test x$have_sndio = xyes; then 1025 AC_ARG_ENABLE(sndio-shared, 1026AC_HELP_STRING([--enable-sndio-shared], [dynamically load sndio audio support [[default=yes]]]), 1027 , enable_sndio_shared=yes) 1028 sndio_lib=[`find_lib "libsndio.so.*" "$SNDIO_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`] 1029 1030 if test x$have_loadso != xyes && \ 1031 test x$enable_sndio_shared = xyes; then 1032 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic sndio loading]) 1033 fi 1034 if test x$have_loadso = xyes && \ 1035 test x$enable_sndio_shared = xyes && test x$sndio_lib != x; then 1036 echo "-- dynamic libsndio -> $sndio_lib" 1037 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_SNDIO_DYNAMIC, "$sndio_lib", [ ]) 1038 SUMMARY_audio="${SUMMARY_audio} sndio(dynamic)" 1039 else 1040 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $SNDIO_LIBS" 1041 SUMMARY_audio="${SUMMARY_audio} sndio" 1042 fi 1043 1044 AC_DEFINE(SDL_AUDIO_DRIVER_SNDIO, 1, [ ]) 1045 SOURCES="$SOURCES $srcdir/src/audio/sndio/*.c" 1046 EXTRA_CFLAGS="$EXTRA_CFLAGS $SNDIO_CFLAGS" 1047 have_audio=yes 1048 fi 1049 fi 1050} 1051 1052dnl rcg07142001 See if the user wants the disk writer audio driver... 1053CheckDiskAudio() 1054{ 1055 AC_ARG_ENABLE(diskaudio, 1056AC_HELP_STRING([--enable-diskaudio], [support the disk writer audio driver [[default=yes]]]), 1057 , enable_diskaudio=yes) 1058 if test x$enable_audio = xyes -a x$enable_diskaudio = xyes; then 1059 AC_DEFINE(SDL_AUDIO_DRIVER_DISK, 1, [ ]) 1060 SOURCES="$SOURCES $srcdir/src/audio/disk/*.c" 1061 SUMMARY_audio="${SUMMARY_audio} disk" 1062 fi 1063} 1064 1065dnl rcg03142006 See if the user wants the dummy audio driver... 1066CheckDummyAudio() 1067{ 1068 AC_ARG_ENABLE(dummyaudio, 1069AC_HELP_STRING([--enable-dummyaudio], [support the dummy audio driver [[default=yes]]]), 1070 , enable_dummyaudio=yes) 1071 if test x$enable_audio = xyes -a x$enable_dummyaudio = xyes; then 1072 AC_DEFINE(SDL_AUDIO_DRIVER_DUMMY, 1, [ ]) 1073 SOURCES="$SOURCES $srcdir/src/audio/dummy/*.c" 1074 SUMMARY_audio="${SUMMARY_audio} dummy" 1075 fi 1076} 1077 1078dnl See if GCC's -fvisibility=hidden is supported (gcc4 and later, usually). 1079dnl Details of this flag are here: http://gcc.gnu.org/wiki/Visibility 1080CheckVisibilityHidden() 1081{ 1082 AC_MSG_CHECKING(for GCC -fvisibility=hidden option) 1083 have_gcc_fvisibility=no 1084 1085 visibility_CFLAGS="-fvisibility=hidden" 1086 save_CFLAGS="$CFLAGS" 1087 CFLAGS="$save_CFLAGS $visibility_CFLAGS -Werror" 1088 AC_TRY_COMPILE([ 1089 #if !defined(__GNUC__) || __GNUC__ < 4 1090 #error SDL only uses visibility attributes in GCC 4 or newer 1091 #endif 1092 ],[ 1093 ],[ 1094 have_gcc_fvisibility=yes 1095 ]) 1096 AC_MSG_RESULT($have_gcc_fvisibility) 1097 CFLAGS="$save_CFLAGS" 1098 1099 if test x$have_gcc_fvisibility = xyes; then 1100 EXTRA_CFLAGS="$EXTRA_CFLAGS $visibility_CFLAGS" 1101 fi 1102} 1103 1104dnl See if GCC's -mpreferred-stack-boundary is supported. 1105dnl Reference: http://bugzilla.libsdl.org/show_bug.cgi?id=1296 1106CheckStackBoundary() 1107{ 1108 AC_MSG_CHECKING(for GCC -mpreferred-stack-boundary option) 1109 have_gcc_preferred_stack_boundary=no 1110 1111 save_CFLAGS="$CFLAGS" 1112 CFLAGS="$save_CFLAGS -mpreferred-stack-boundary=2" 1113 AC_TRY_COMPILE([ 1114 int x = 0; 1115 ],[ 1116 ],[ 1117 have_gcc_preferred_stack_boundary=yes 1118 ]) 1119 AC_MSG_RESULT($have_gcc_preferred_stack_boundary) 1120 CFLAGS="$save_CFLAGS" 1121 1122 if test x$have_gcc_preferred_stack_boundary = xyes; then 1123 EXTRA_CFLAGS="$EXTRA_CFLAGS -mpreferred-stack-boundary=2" 1124 fi 1125} 1126 1127dnl See if GCC's -Wdeclaration-after-statement is supported. 1128dnl This lets us catch things that would fail on a C89 compiler when using 1129dnl a modern GCC. 1130CheckDeclarationAfterStatement() 1131{ 1132 AC_MSG_CHECKING(for GCC -Wdeclaration-after-statement option) 1133 have_gcc_declaration_after_statement=no 1134 1135 save_CFLAGS="$CFLAGS" 1136 CFLAGS="$save_CFLAGS -Wdeclaration-after-statement -Werror=declaration-after-statement" 1137 AC_TRY_COMPILE([ 1138 int x = 0; 1139 ],[ 1140 ],[ 1141 have_gcc_declaration_after_statement=yes 1142 ]) 1143 AC_MSG_RESULT($have_gcc_declaration_after_statement) 1144 CFLAGS="$save_CFLAGS" 1145 1146 if test x$have_gcc_declaration_after_statement = xyes; then 1147 EXTRA_CFLAGS="$EXTRA_CFLAGS -Wdeclaration-after-statement -Werror=declaration-after-statement" 1148 fi 1149} 1150 1151dnl See if GCC's -Wall is supported. 1152CheckWarnAll() 1153{ 1154 AC_MSG_CHECKING(for GCC -Wall option) 1155 have_gcc_Wall=no 1156 1157 save_CFLAGS="$CFLAGS" 1158 CFLAGS="$save_CFLAGS -Wall" 1159 AC_TRY_COMPILE([ 1160 int x = 0; 1161 ],[ 1162 ],[ 1163 have_gcc_Wall=yes 1164 ]) 1165 AC_MSG_RESULT($have_gcc_Wall) 1166 CFLAGS="$save_CFLAGS" 1167 1168 if test x$have_gcc_Wall = xyes; then 1169 EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall" 1170 1171 dnl Haiku headers use multicharacter constants all over the place. Ignore these warnings when using -Wall. 1172 AC_MSG_CHECKING(for necessary GCC -Wno-multichar option) 1173 need_gcc_Wno_multichar=no 1174 case "$host" in 1175 *-*-haiku*) 1176 need_gcc_Wno_multichar=yes 1177 ;; 1178 esac 1179 AC_MSG_RESULT($need_gcc_Wno_multichar) 1180 if test x$need_gcc_Wno_multichar = xyes; then 1181 EXTRA_CFLAGS="$EXTRA_CFLAGS -Wno-multichar" 1182 fi 1183 fi 1184} 1185 1186dnl Check for Wayland 1187CheckWayland() 1188{ 1189 AC_ARG_ENABLE(video-wayland, 1190AC_HELP_STRING([--enable-video-wayland], [use Wayland video driver [[default=yes]]]), 1191 ,enable_video_wayland=yes) 1192 1193 AC_ARG_ENABLE(video-wayland-qt-touch, 1194AC_HELP_STRING([--enable-video-wayland-qt-touch], [QtWayland server support for Wayland video driver [[default=yes]]]), 1195 ,enable_video_wayland_qt_touch=yes) 1196 1197 if test x$enable_video = xyes -a x$enable_video_wayland = xyes; then 1198 AC_PATH_PROG(PKG_CONFIG, pkg-config, no) 1199 AC_MSG_CHECKING(for Wayland support) 1200 video_wayland=no 1201 if test x$PKG_CONFIG != xno && \ 1202 test x$video_opengl_egl = xyes && \ 1203 test x$video_opengles_v2 = xyes; then 1204 if $PKG_CONFIG --exists wayland-client wayland-scanner wayland-protocols wayland-egl wayland-cursor egl xkbcommon ; then 1205 WAYLAND_CFLAGS=`$PKG_CONFIG --cflags wayland-client wayland-egl wayland-cursor xkbcommon` 1206 WAYLAND_LIBS=`$PKG_CONFIG --libs wayland-client wayland-egl wayland-cursor xkbcommon` 1207 WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner` 1208 WAYLAND_CORE_PROTOCOL_DIR=`$PKG_CONFIG --variable=pkgdatadir wayland-client` 1209 WAYLAND_PROTOCOLS_DIR=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols` 1210 video_wayland=yes 1211 fi 1212 fi 1213 AC_MSG_RESULT($video_wayland) 1214 1215 if test x$video_wayland = xyes; then 1216 AC_DEFINE(SDL_VIDEO_DRIVER_WAYLAND, 1, [ ]) 1217 if test x$enable_video_wayland_qt_touch = xyes; then 1218 AC_DEFINE(SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH, 1, [ ]) 1219 fi 1220 1221 WAYLAND_PROTOCOLS_UNSTABLE="relative-pointer-unstable-v1 pointer-constraints-unstable-v1" 1222 1223 SOURCES="$SOURCES $srcdir/src/video/wayland/*.c" 1224 EXTRA_CFLAGS="$EXTRA_CFLAGS $WAYLAND_CFLAGS -I\$(gen)" 1225 AC_ARG_ENABLE(wayland-shared, 1226AC_HELP_STRING([--enable-wayland-shared], [dynamically load Wayland support [[default=maybe]]]), 1227 , enable_wayland_shared=maybe) 1228 1229 dnl FIXME: Do BSD and OS X need special cases? 1230 case "$host" in 1231 *) 1232 wayland_client_lib=[`find_lib "libwayland-client.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`] 1233 wayland_egl_lib=[`find_lib "libwayland-egl.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`] 1234 if test x$wayland_egl_lib = x; then 1235 dnl This works in Ubuntu 13.10, maybe others 1236 wayland_egl_lib=[`find_lib "mesa-egl/libwayland-egl.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`] 1237 fi 1238 wayland_cursor_lib=[`find_lib "libwayland-cursor.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`] 1239 xkbcommon_lib=[`find_lib "libxkbcommon.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`] 1240 ;; 1241 esac 1242 1243 if test x$enable_wayland_shared = xmaybe; then 1244 enable_wayland_shared=yes 1245 fi 1246 if test x$have_loadso != xyes && \ 1247 test x$enable_wayland_shared = xyes; then 1248 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic Wayland loading]) 1249 enable_wayland_shared=no 1250 fi 1251 if test x$have_loadso = xyes && \ 1252 test x$enable_wayland_shared = xyes && \ 1253 test x$wayland_client_lib != x && \ 1254 test x$wayland_egl_lib != x && \ 1255 test x$wayland_cursor_lib != x && \ 1256 test x$xkbcommon_lib != x; then 1257 echo "-- dynamic libwayland-client -> $wayland_client_lib" 1258 echo "-- dynamic libwayland-egl -> $wayland_egl_lib" 1259 echo "-- dynamic libwayland-cursor -> $wayland_cursor_lib" 1260 echo "-- dynamic libxkbcommon -> $xkbcommon_lib" 1261 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC, "$wayland_client_lib", [ ]) 1262 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL, "$wayland_egl_lib", [ ]) 1263 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR, "$wayland_cursor_lib", [ ]) 1264 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON, "$xkbcommon_lib", [ ]) 1265 SUMMARY_video="${SUMMARY_video} wayland(dynamic)" 1266 else 1267 enable_wayland_shared=no 1268 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $WAYLAND_LIBS" 1269 SUMMARY_video="${SUMMARY_video} wayland" 1270 fi 1271 have_video=yes 1272 fi 1273 fi 1274} 1275 1276dnl Check for Mir 1277CheckMir() 1278{ 1279 AC_ARG_ENABLE(video-mir, 1280AC_HELP_STRING([--enable-video-mir], [use Mir video driver [[default=yes]]]), 1281 ,enable_video_mir=yes) 1282 1283 if test x$enable_video = xyes -a x$enable_video_mir = xyes; then 1284 AC_PATH_PROG(PKG_CONFIG, pkg-config, no) 1285 AC_MSG_CHECKING(for Mir support) 1286 video_mir=no 1287 if test x$PKG_CONFIG != xno; then 1288 if $PKG_CONFIG --exists mirclient egl xkbcommon ; then 1289 MIR_CFLAGS=`$PKG_CONFIG --cflags mirclient egl xkbcommon` 1290 MIR_LIBS=`$PKG_CONFIG --libs mirclient egl xkbcommon` 1291 save_CFLAGS="$CFLAGS" 1292 CFLAGS="$save_CFLAGS $MIR_CFLAGS" 1293 1294 dnl This will disable Mir if >= v0.25 is not available 1295 AC_TRY_COMPILE([ 1296 #include <mir_toolkit/mir_client_library.h> 1297 ],[ 1298 MirTouchAction actions = mir_touch_actions 1299 ],[ 1300 video_mir=yes 1301 ]) 1302 CFLAGS="$save_CFLAGS" 1303 fi 1304 fi 1305 AC_MSG_RESULT($video_mir) 1306 1307 if test x$video_mir = xyes; then 1308 AC_DEFINE(SDL_VIDEO_DRIVER_MIR, 1, [ ]) 1309 SOURCES="$SOURCES $srcdir/src/video/mir/*.c" 1310 EXTRA_CFLAGS="$EXTRA_CFLAGS $MIR_CFLAGS" 1311 AC_ARG_ENABLE(mir-shared, 1312AC_HELP_STRING([--enable-mir-shared], [dynamically load Mir support [[default=maybe]]]), 1313 , enable_mir_shared=maybe) 1314 1315 dnl FIXME: Do BSD and OS X need special cases? 1316 case "$host" in 1317 *) 1318 mirclient_lib=[`find_lib "libmirclient.so.*" "$MIR_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`] 1319 xkbcommon_lib=[`find_lib "libxkbcommon.so.*" "$MIR_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`] 1320 ;; 1321 esac 1322 1323 if test x$enable_mir_shared = xmaybe; then 1324 enable_mir_shared=yes 1325 fi 1326 if test x$have_loadso != xyes && \ 1327 test x$enable_mir_shared = xyes; then 1328 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic Mir loading]) 1329 enable_mir_shared=no 1330 fi 1331 if test x$have_loadso = xyes && \ 1332 test x$enable_mir_shared = xyes && \ 1333 test x$mirclient_lib != x && \ 1334 test x$xkbcommon_lib != x; then 1335 echo "-- dynamic libmirclient -> $mirclient_lib" 1336 echo "-- dynamic libxkbcommon -> $xkbcommon_lib" 1337 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_MIR_DYNAMIC, "$mirclient_lib", [ ]) 1338 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_MIR_DYNAMIC_XKBCOMMON, "$xkbcommon_lib", [ ]) 1339 SUMMARY_video="${SUMMARY_video} mir(dynamic)" 1340 else 1341 enable_mir_shared=no 1342 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $MIR_LIBS" 1343 SUMMARY_video="${SUMMARY_video} mir" 1344 fi 1345 have_video=yes 1346 fi 1347 fi 1348} 1349 1350dnl Check for Native Client stuff 1351CheckNativeClient() 1352{ 1353 AC_TRY_COMPILE([ 1354 #if !defined(__native_client__) 1355 #error "NO NACL" 1356 #endif 1357 ],[ 1358 ],[ 1359 AC_DEFINE(SDL_VIDEO_DRIVER_NACL) 1360 AC_DEFINE(SDL_AUDIO_DRIVER_NACL) 1361 AC_DEFINE(HAVE_POW, 1, [ ]) 1362 AC_DEFINE(HAVE_OPENGLES2, 1, [ ]) 1363 AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ]) 1364 AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ]) 1365 1366 SDL_LIBS="-lppapi_simple -lppapi_gles2 $SDL_LIBS" 1367 1368 SDLMAIN_SOURCES="$srcdir/src/main/nacl/*.c" 1369 SOURCES="$SOURCES $srcdir/src/audio/nacl/*.c" 1370 SUMMARY_audio="${SUMMARY_audio} nacl" 1371 SOURCES="$SOURCES $srcdir/src/video/nacl/*.c" 1372 SUMMARY_video="${SUMMARY_video} nacl opengles2" 1373 ]) 1374} 1375 1376 1377dnl Find the X11 include and library directories 1378CheckX11() 1379{ 1380 1381 1382 AC_ARG_ENABLE(video-x11, 1383AC_HELP_STRING([--enable-video-x11], [use X11 video driver [[default=yes]]]), 1384 , enable_video_x11=yes) 1385 if test x$enable_video = xyes -a x$enable_video_x11 = xyes; then 1386 case "$host" in 1387 *-*-darwin*) 1388 # This isn't necessary for X11, but fixes GLX detection 1389 if test "x$x_includes" = xNONE && \ 1390 test "x$x_libraries" = xNONE && \ 1391 test -d /usr/X11R6/include && \ 1392 test -d /usr/X11R6/lib; then 1393 x_includes="/usr/X11R6/include" 1394 x_libraries="/usr/X11R6/lib" 1395 fi 1396 ;; 1397 esac 1398 AC_PATH_X 1399 AC_PATH_XTRA 1400 if test x$have_x = xyes; then 1401 AC_ARG_ENABLE(x11-shared, 1402AC_HELP_STRING([--enable-x11-shared], [dynamically load X11 support [[default=maybe]]]), 1403 , enable_x11_shared=maybe) 1404 1405 case "$host" in 1406 *-*-darwin*) 1407 x11_lib='/usr/X11R6/lib/libX11.6.dylib' 1408 x11ext_lib='/usr/X11R6/lib/libXext.6.dylib' 1409 xcursor_lib='/usr/X11R6/lib/libXcursor.1.dylib' 1410 xinerama_lib='/usr/X11R6/lib/libXinerama.1.dylib' 1411 xinput_lib='/usr/X11R6/lib/libXi.6.dylib' 1412 xrandr_lib='/usr/X11R6/lib/libXrandr.2.dylib' 1413 xrender_lib='/usr/X11R6/lib/libXrender.1.dylib' 1414 xss_lib='/usr/X11R6/lib/libXss.1.dylib' 1415 xvidmode_lib='/usr/X11R6/lib/libXxf86vm.1.dylib' 1416 ;; 1417 *-*-openbsd*) 1418 x11_lib='libX11.so' 1419 x11ext_lib='libXext.so' 1420 xcursor_lib='libXcursor.so' 1421 xinerama_lib='libXinerama.so' 1422 xinput_lib='libXi.so' 1423 xrandr_lib='libXrandr.so' 1424 xrender_lib='libXrender.so' 1425 xss_lib='libXss.so' 1426 xvidmode_lib='libXxf86vm.so' 1427 ;; 1428 *) 1429 x11_lib=[`find_lib "libX11.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`] 1430 x11ext_lib=[`find_lib "libXext.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`] 1431 xcursor_lib=[`find_lib "libXcursor.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`] 1432 xinerama_lib=[`find_lib "libXinerama.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`] 1433 xinput_lib=[`find_lib "libXi.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`] 1434 xrandr_lib=[`find_lib "libXrandr.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`] 1435 xrender_lib=[`find_lib "libXrender.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`] 1436 xss_lib=[`find_lib "libXss.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`] 1437 xvidmode_lib=[`find_lib "libXxf86vm.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`] 1438 ;; 1439 esac 1440 1441 if test x$ac_cv_func_shmat != xyes; then 1442 X_CFLAGS="$X_CFLAGS -DNO_SHARED_MEMORY" 1443 fi 1444 CFLAGS="$CFLAGS $X_CFLAGS" 1445 LDFLAGS="$LDFLAGS $X_LIBS" 1446 1447 AC_CHECK_HEADER(X11/extensions/Xext.h, 1448 have_xext_h_hdr=yes, 1449 have_xext_h_hdr=no, 1450 [#include <X11/Xlib.h> 1451 #include <X11/Xproto.h> 1452 ]) 1453 if test x$have_xext_h_hdr != xyes; then 1454 AC_MSG_ERROR([ 1455*** Missing Xext.h, maybe you need to install the libxext-dev package? 1456 ]) 1457 fi 1458 1459 AC_DEFINE(SDL_VIDEO_DRIVER_X11, 1, [ ]) 1460 SOURCES="$SOURCES $srcdir/src/video/x11/*.c" 1461 EXTRA_CFLAGS="$EXTRA_CFLAGS $X_CFLAGS" 1462 1463 # Needed so SDL applications can include SDL_syswm.h 1464 SDL_CFLAGS="$SDL_CFLAGS $X_CFLAGS" 1465 1466 if test x$enable_x11_shared = xmaybe; then 1467 enable_x11_shared=yes 1468 fi 1469 if test x$have_loadso != xyes && \ 1470 test x$enable_x11_shared = xyes; then 1471 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic X11 loading]) 1472 enable_x11_shared=no 1473 fi 1474 if test x$have_loadso = xyes && \ 1475 test x$enable_x11_shared = xyes && test x$x11_lib != x && test x$x11ext_lib != x; then 1476 echo "-- dynamic libX11 -> $x11_lib" 1477 echo "-- dynamic libX11ext -> $x11ext_lib" 1478 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC, "$x11_lib", [ ]) 1479 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT, "$x11ext_lib", [ ]) 1480 SUMMARY_video="${SUMMARY_video} x11(dynamic)" 1481 else 1482 enable_x11_shared=no 1483 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $X_LIBS -lX11 -lXext" 1484 SUMMARY_video="${SUMMARY_video} x11" 1485 fi 1486 have_video=yes 1487 1488 AC_MSG_CHECKING(for const parameter to XextAddDisplay) 1489 have_const_param_XextAddDisplay=no 1490 AC_TRY_COMPILE([ 1491 #include <X11/Xlib.h> 1492 #include <X11/Xproto.h> 1493 #include <X11/extensions/Xext.h> 1494 #include <X11/extensions/extutil.h> 1495 extern XExtDisplayInfo* XextAddDisplay(XExtensionInfo* a,Display* b,_Xconst char* c,XExtensionHooks* d,int e,XPointer f); 1496 ],[ 1497 ],[ 1498 have_const_param_XextAddDisplay=yes 1499 AC_DEFINE(SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY) 1500 ]) 1501 AC_MSG_RESULT($have_const_param_XextAddDisplay) 1502 1503 dnl AC_CHECK_LIB(X11, XGetEventData, AC_DEFINE(SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS, 1, [Have XGenericEvent])) 1504 AC_MSG_CHECKING([for XGenericEvent]) 1505 have_XGenericEvent=no 1506 AC_TRY_COMPILE([ 1507 #include <X11/Xlib.h> 1508 ],[ 1509Display *display; 1510XEvent event; 1511XGenericEventCookie *cookie = &event.xcookie; 1512XNextEvent(display, &event); 1513XGetEventData(display, cookie); 1514XFreeEventData(display, cookie); 1515 ],[ 1516 have_XGenericEvent=yes 1517 AC_DEFINE(SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS) 1518 ]) 1519 AC_MSG_RESULT($have_XGenericEvent) 1520 1521 AC_CHECK_LIB(X11, XkbKeycodeToKeysym, AC_DEFINE(SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM, 1, [Have XkbKeycodeToKeysym])) 1522 1523 AC_ARG_ENABLE(video-x11-xcursor, 1524AC_HELP_STRING([--enable-video-x11-xcursor], [enable X11 Xcursor support [[default=yes]]]), 1525 , enable_video_x11_xcursor=yes) 1526 if test x$enable_video_x11_xcursor = xyes; then 1527 definitely_enable_video_x11_xcursor=no 1528 AC_CHECK_HEADER(X11/Xcursor/Xcursor.h, 1529 have_xcursor_h_hdr=yes, 1530 have_xcursor_h_hdr=no, 1531 [#include <X11/Xlib.h> 1532 ]) 1533 if test x$have_xcursor_h_hdr = xyes; then 1534 if test x$enable_x11_shared = xyes && test x$xcursor_lib != x ; then 1535 echo "-- dynamic libXcursor -> $xcursor_lib" 1536 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR, "$xcursor_lib", [ ]) 1537 definitely_enable_video_x11_xcursor=yes 1538 else 1539 AC_CHECK_LIB(Xcursor, XcursorImageCreate, have_xcursor_lib=yes) 1540 if test x$have_xcursor_lib = xyes ; then 1541 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXcursor" 1542 definitely_enable_video_x11_xcursor=yes 1543 fi 1544 fi 1545 fi 1546 fi 1547 if test x$definitely_enable_video_x11_xcursor = xyes; then 1548 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XCURSOR, 1, [ ]) 1549 SUMMARY_video_x11="${SUMMARY_video_x11} xcursor" 1550 fi 1551 AC_ARG_ENABLE(video-x11-xdbe, 1552AC_HELP_STRING([--enable-video-x11-xdbe], [enable X11 Xdbe support [[default=yes]]]), 1553 , enable_video_x11_xdbe=yes) 1554 if test x$enable_video_x11_xdbe = xyes; then 1555 AC_CHECK_HEADER(X11/extensions/Xdbe.h, 1556 have_dbe_h_hdr=yes, 1557 have_dbe_h_hdr=no, 1558 [#include <X11/Xlib.h> 1559 ]) 1560 if test x$have_dbe_h_hdr = xyes; then 1561 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XDBE, 1, [ ]) 1562 SUMMARY_video_x11="${SUMMARY_video_x11} xdbe" 1563 fi 1564 fi 1565 AC_ARG_ENABLE(video-x11-xinerama, 1566AC_HELP_STRING([--enable-video-x11-xinerama], [enable X11 Xinerama support [[default=yes]]]), 1567 , enable_video_x11_xinerama=yes) 1568 if test x$enable_video_x11_xinerama = xyes; then 1569 definitely_enable_video_x11_xinerama=no 1570 AC_CHECK_HEADER(X11/extensions/Xinerama.h, 1571 have_xinerama_h_hdr=yes, 1572 have_xinerama_h_hdr=no, 1573 [#include <X11/Xlib.h> 1574 ]) 1575 if test x$have_xinerama_h_hdr = xyes; then 1576 if test x$enable_x11_shared = xyes && test x$xinerama_lib != x ; then 1577 echo "-- dynamic libXinerama -> $xinerama_lib" 1578 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA, "$xinerama_lib", [ ]) 1579 definitely_enable_video_x11_xinerama=yes 1580 else 1581 AC_CHECK_LIB(Xinerama, XineramaQueryExtension, have_xinerama_lib=yes) 1582 if test x$have_xinerama_lib = xyes ; then 1583 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXinerama" 1584 definitely_enable_video_x11_xinerama=yes 1585 fi 1586 fi 1587 fi 1588 fi 1589 if test x$definitely_enable_video_x11_xinerama = xyes; then 1590 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINERAMA, 1, [ ]) 1591 SUMMARY_video_x11="${SUMMARY_video_x11} xinerama" 1592 fi 1593 AC_ARG_ENABLE(video-x11-xinput, 1594AC_HELP_STRING([--enable-video-x11-xinput], [enable X11 XInput extension for manymouse, tablets, etc [[default=yes]]]), 1595 , enable_video_x11_xinput=yes) 1596 if test x$enable_video_x11_xinput = xyes; then 1597 definitely_enable_video_x11_xinput=no 1598 AC_CHECK_HEADER(X11/extensions/XInput2.h, 1599 have_xinput_h_hdr=yes, 1600 have_xinput_h_hdr=no, 1601 [#include <X11/Xlib.h> 1602 ]) 1603 if test x$have_xinput_h_hdr = xyes; then 1604 if test x$enable_x11_shared = xyes && test x$xinput_lib != x ; then 1605 echo "-- dynamic libXi -> $xinput_lib" 1606 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2, "$xinput_lib", [ ]) 1607 definitely_enable_video_x11_xinput=yes 1608 else 1609 AC_CHECK_LIB(Xi, XOpenDevice, have_xinput_lib=yes) 1610 if test x$have_xinput_lib = xyes ; then 1611 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXi" 1612 definitely_enable_video_x11_xinput=yes 1613 fi 1614 fi 1615 fi 1616 fi 1617 if test x$definitely_enable_video_x11_xinput = xyes; then 1618 SUMMARY_video_x11="${SUMMARY_video_x11} xinput2" 1619 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINPUT2, 1, [ ]) 1620 AC_MSG_CHECKING(for xinput2 multitouch) 1621 have_xinput2_multitouch=no 1622 AC_TRY_COMPILE([ 1623 #include <X11/Xlib.h> 1624 #include <X11/Xproto.h> 1625 #include <X11/extensions/XInput2.h> 1626 ],[ 1627int event_type = XI_TouchBegin; 1628XITouchClassInfo *t; 1629 ],[ 1630 have_xinput2_multitouch=yes 1631 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH) 1632 SUMMARY_video_x11="${SUMMARY_video_x11} xinput2_multitouch" 1633 ]) 1634 AC_MSG_RESULT($have_xinput2_multitouch) 1635 fi 1636 AC_ARG_ENABLE(video-x11-xrandr, 1637AC_HELP_STRING([--enable-video-x11-xrandr], [enable X11 Xrandr extension for fullscreen [[default=yes]]]), 1638 , enable_video_x11_xrandr=yes) 1639 if test x$enable_video_x11_xrandr = xyes; then 1640 dnl XRRScreenResources is only present in Xrandr >= 1.2, we use that as a test. 1641 definitely_enable_video_x11_xrandr=no 1642 have_xrandr_h_hdr=no 1643 AC_TRY_COMPILE([ 1644 #include <X11/Xlib.h> 1645 #include <X11/extensions/Xrandr.h> 1646 ],[ 1647 XRRScreenResources *res = NULL; 1648 ],[ 1649 have_xrandr_h_hdr=yes 1650 ]) 1651 if test x$have_xrandr_h_hdr = xyes; then 1652 if test x$enable_x11_shared = xyes && test x$xrandr_lib != x ; then 1653 echo "-- dynamic libXrandr -> $xrandr_lib" 1654 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR, "$xrandr_lib", [ ]) 1655 definitely_enable_video_x11_xrandr=yes 1656 else 1657 AC_CHECK_LIB(Xrandr, XRRQueryExtension, have_xrandr_lib=yes) 1658 if test x$have_xrandr_lib = xyes ; then 1659 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXrandr" 1660 definitely_enable_video_x11_xrandr=yes 1661 fi 1662 fi 1663 fi 1664 fi 1665 if test x$definitely_enable_video_x11_xrandr = xyes; then 1666 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR, 1, [ ]) 1667 SUMMARY_video_x11="${SUMMARY_video_x11} xrandr" 1668 fi 1669 AC_ARG_ENABLE(video-x11-scrnsaver, 1670AC_HELP_STRING([--enable-video-x11-scrnsaver], [enable X11 screensaver extension [[default=yes]]]), 1671 , enable_video_x11_scrnsaver=yes) 1672 if test x$enable_video_x11_scrnsaver = xyes; then 1673 AC_CHECK_HEADER(X11/extensions/scrnsaver.h, 1674 have_scrnsaver_h_hdr=yes, 1675 have_scrnsaver_h_hdr=no, 1676 [#include <X11/Xlib.h> 1677 ]) 1678 if test x$have_scrnsaver_h_hdr = xyes; then 1679 if test x$enable_x11_shared = xyes && test x$xss_lib != x ; then 1680 echo "-- dynamic libXss -> $xss_lib" 1681 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS, "$xss_lib", [ ]) 1682 definitely_enable_video_x11_scrnsaver=yes 1683 else 1684 AC_CHECK_LIB(Xss, XScreenSaverSuspend, have_xss_lib=yes) 1685 if test x$have_xss_lib = xyes ; then 1686 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXss" 1687 definitely_enable_video_x11_scrnsaver=yes 1688 fi 1689 fi 1690 fi 1691 fi 1692 if test x$definitely_enable_video_x11_scrnsaver = xyes; then 1693 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XSCRNSAVER, 1, [ ]) 1694 SUMMARY_video_x11="${SUMMARY_video_x11} xscrnsaver" 1695 fi 1696 AC_ARG_ENABLE(video-x11-xshape, 1697AC_HELP_STRING([--enable-video-x11-xshape], [enable X11 XShape support [[default=yes]]]), 1698 , enable_video_x11_xshape=yes) 1699 if test x$enable_video_x11_xshape = xyes; then 1700 AC_CHECK_HEADER(X11/extensions/shape.h, 1701 have_shape_h_hdr=yes, 1702 have_shape_h_hdr=no, 1703 [#include <X11/Xlib.h> 1704 ]) 1705 if test x$have_shape_h_hdr = xyes; then 1706 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XSHAPE, 1, [ ]) 1707 SUMMARY_video_x11="${SUMMARY_video_x11} xshape" 1708 fi 1709 fi 1710 AC_ARG_ENABLE(video-x11-vm, 1711AC_HELP_STRING([--enable-video-x11-vm], [use X11 VM extension for fullscreen [[default=yes]]]), 1712 , enable_video_x11_vm=yes) 1713 if test x$enable_video_x11_vm = xyes; then 1714 definitely_enable_video_x11_vm=no 1715 AC_CHECK_HEADER(X11/extensions/xf86vmode.h, 1716 have_vm_h_hdr=yes, 1717 have_vm_h_hdr=no, 1718 [#include <X11/Xlib.h> 1719 ]) 1720 if test x$have_vm_h_hdr = xyes; then 1721 if test x$enable_x11_shared = xyes && test x$xvidmode_lib != x ; then 1722 echo "-- dynamic libXxf86vm -> $xvidmode_lib" 1723 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE, "$xvidmode_lib", [ ]) 1724 definitely_enable_video_x11_vm=yes 1725 else 1726 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryVersion, have_vm_lib=yes) 1727 if test x$have_vm_lib = xyes ; then 1728 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXxf86vm" 1729 definitely_enable_video_x11_vm=yes 1730 fi 1731 fi 1732 fi 1733 fi 1734 if test x$definitely_enable_video_x11_vm = xyes; then 1735 AC_DEFINE(SDL_VIDEO_DRIVER_X11_XVIDMODE, 1, [ ]) 1736 SUMMARY_video_x11="${SUMMARY_video_x11} xvidmode" 1737 fi 1738 fi 1739 fi 1740} 1741 1742dnl Set up the Vivante video driver if enabled 1743CheckVivanteVideo() 1744{ 1745 AC_ARG_ENABLE(video-vivante, 1746AC_HELP_STRING([--enable-video-vivante], [use Vivante EGL video driver [[default=yes]]]), 1747 , enable_video_vivante=yes) 1748 if test x$enable_video = xyes -a x$enable_video_vivante = xyes; then 1749 AC_MSG_CHECKING(for Vivante VDK API) 1750 have_vivante_vdk=no 1751 AC_TRY_COMPILE([ 1752 #define LINUX 1753 #define EGL_API_FB 1754 #include <gc_vdk.h> 1755 ],[ 1756 ],[ 1757 have_vivante_vdk=yes 1758 ]) 1759 AC_MSG_RESULT($have_vivante_vdk) 1760 1761 AC_MSG_CHECKING(for Vivante FB API) 1762 have_vivante_egl=no 1763 AC_TRY_COMPILE([ 1764 #define LINUX 1765 #define EGL_API_FB 1766 #include <EGL/eglvivante.h> 1767 ],[ 1768 ],[ 1769 have_vivante_egl=yes 1770 ]) 1771 AC_MSG_RESULT($have_vivante_egl) 1772 1773 if test x$have_vivante_vdk = xyes -o x$have_vivante_egl = xyes; then 1774 AC_DEFINE(SDL_VIDEO_DRIVER_VIVANTE, 1, [ ]) 1775 EXTRA_CFLAGS="$EXTRA_CFLAGS -DLINUX -DEGL_API_FB" 1776 if test x$have_vivante_vdk = xyes; then 1777 AC_DEFINE(SDL_VIDEO_DRIVER_VIVANTE_VDK, 1, [ ]) 1778 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lVDK" 1779 fi 1780 SOURCES="$SOURCES $srcdir/src/video/vivante/*.c" 1781 SUMMARY_video="${SUMMARY_video} vivante" 1782 have_video=yes 1783 fi 1784 fi 1785} 1786 1787dnl Set up the Haiku video driver if enabled 1788CheckHaikuVideo() 1789{ 1790 if test x$enable_video = xyes; then 1791 AC_DEFINE(SDL_VIDEO_DRIVER_HAIKU, 1, [ ]) 1792 SOURCES="$SOURCES $srcdir/src/video/haiku/*.cc" 1793 have_video=yes 1794 SUMMARY_video="${SUMMARY_video} haiku" 1795 fi 1796} 1797 1798dnl Set up the Cocoa video driver for Mac OS X (but not Darwin) 1799CheckCOCOA() 1800{ 1801 AC_ARG_ENABLE(video-cocoa, 1802AC_HELP_STRING([--enable-video-cocoa], [use Cocoa video driver [[default=yes]]]), 1803 , enable_video_cocoa=yes) 1804 if test x$enable_video = xyes -a x$enable_video_cocoa = xyes; then 1805 save_CFLAGS="$CFLAGS" 1806 dnl work around that we don't have Objective-C support in autoconf 1807 CFLAGS="$CFLAGS -x objective-c" 1808 AC_MSG_CHECKING(for Cocoa framework) 1809 have_cocoa=no 1810 AC_TRY_COMPILE([ 1811 #import <Cocoa/Cocoa.h> 1812 ],[ 1813 ],[ 1814 have_cocoa=yes 1815 ]) 1816 AC_MSG_RESULT($have_cocoa) 1817 CFLAGS="$save_CFLAGS" 1818 if test x$have_cocoa = xyes; then 1819 AC_DEFINE(SDL_VIDEO_DRIVER_COCOA, 1, [ ]) 1820 SOURCES="$SOURCES $srcdir/src/video/cocoa/*.m" 1821 SUMMARY_video="${SUMMARY_video} cocoa" 1822 have_video=yes 1823 fi 1824 fi 1825} 1826 1827dnl Find DirectFB 1828CheckDirectFB() 1829{ 1830 AC_ARG_ENABLE(video-directfb, 1831AC_HELP_STRING([--enable-video-directfb], [use DirectFB video driver [[default=no]]]), 1832 , enable_video_directfb=no) 1833 if test x$enable_video = xyes -a x$enable_video_directfb = xyes; then 1834 video_directfb=no 1835 1836 DIRECTFB_REQUIRED_VERSION=1.0.0 1837 AC_PATH_PROGS(DIRECTFBCONFIG, directfb-config, no, [$prefix/bin:$PATH]) 1838 if test x$DIRECTFBCONFIG = xno; then 1839 AC_PATH_PROG(PKG_CONFIG, pkg-config, no) 1840 if test x$PKG_CONFIG != xno; then 1841 if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb; then 1842 DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags directfb` 1843 DIRECTFB_LIBS=`$PKG_CONFIG --libs directfb` 1844 DIRECTFB_PREFIX=`$PKG_CONFIG --variable=prefix directfb` 1845 video_directfb=yes 1846 fi 1847 fi 1848 else 1849 set -- `echo $DIRECTFB_REQUIRED_VERSION | sed 's/\./ /g'` 1850 NEED_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3` 1851 set -- `$DIRECTFBCONFIG --version | sed 's/\./ /g'` 1852 HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3` 1853 if test $HAVE_VERSION -ge $NEED_VERSION; then 1854 DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags` 1855 DIRECTFB_LIBS=`$DIRECTFBCONFIG --libs` 1856 DIRECTFB_PREFIX=`$DIRECTFBCONFIG --prefix` 1857 video_directfb=yes 1858 fi 1859 fi 1860 if test x$video_directfb = xyes; then 1861 # SuSE 11.1 installs directfb-config without directfb-devel 1862 save_CPPFLAGS="$CPPFLAGS" 1863 CPPFLAGS="$CPPFLAGS $DIRECTFB_CFLAGS" 1864 AC_CHECK_HEADER(directfb.h, have_directfb_hdr=yes, have_directfb_hdr=no) 1865 CPPFLAGS="$save_CPPFLAGS" 1866 video_directfb=$have_directfb_hdr 1867 fi 1868 AC_MSG_CHECKING(for DirectFB $DIRECTFB_REQUIRED_VERSION support) 1869 AC_MSG_RESULT($video_directfb) 1870 1871 if test x$video_directfb = xyes; then 1872 AC_ARG_ENABLE(directfb-shared, 1873AC_HELP_STRING([--enable-directfb-shared], [dynamically load directfb support [[default=yes]]]), 1874 , enable_directfb_shared=yes) 1875 1876 AC_DEFINE(SDL_VIDEO_DRIVER_DIRECTFB, 1, [ ]) 1877 AC_DEFINE(SDL_VIDEO_RENDER_DIRECTFB, 1, [ ]) 1878 SOURCES="$SOURCES $srcdir/src/video/directfb/*.c" 1879 EXTRA_CFLAGS="$EXTRA_CFLAGS $DIRECTFB_CFLAGS" 1880 1881 AC_MSG_CHECKING(for directfb dynamic loading support) 1882 directfb_shared=no 1883 directfb_lib=[`find_lib "libdirectfb.so.*" "$DIRECTFB_LIBS"`] 1884 # | sed 's/.*\/\(.*\)/\1/; q'`] 1885AC_MSG_WARN("directfb $directfb_lib") 1886 if test x$have_loadso != xyes && \ 1887 test x$enable_directfb_shared = xyes; then 1888 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic directfb loading]) 1889 fi 1890 if test x$have_loadso = xyes && \ 1891 test x$enable_directfb_shared = xyes && test x$directfb_lib != x; then 1892 directfb_shared=yes 1893 echo "-- $directfb_lib_spec -> $directfb_lib" 1894 AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC, "$directfb_lib", [ ]) 1895 SUMMARY_video="${SUMMARY_video} directfb(dynamic)" 1896 else 1897 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $DIRECTFB_LIBS" 1898 SUMMARY_video="${SUMMARY_video} directfb" 1899 fi 1900 AC_MSG_RESULT($directfb_shared) 1901 SDL_CFLAGS="$SDL_CFLAGS $DIRECTFB_CFLAGS" 1902 have_video=yes 1903 fi 1904 fi 1905} 1906 1907dnl Find FusionSound 1908CheckFusionSound() 1909{ 1910 AC_ARG_ENABLE(fusionsound, 1911AC_HELP_STRING([--enable-fusionsound], [use FusionSound audio driver [[default=no]]]), 1912 , enable_fusionsound=no) 1913 if test x$enable_audio = xyes -a x$enable_fusionsound = xyes; then 1914 fusionsound=no 1915 1916 FUSIONSOUND_REQUIRED_VERSION=1.1.1 1917 1918 AC_PATH_PROG(PKG_CONFIG, pkg-config, no) 1919 AC_MSG_CHECKING(for FusionSound $FUSIONSOUND_REQUIRED_VERSION support) 1920 if test x$PKG_CONFIG != xno; then 1921 if $PKG_CONFIG --atleast-pkgconfig-version 0.7 && $PKG_CONFIG --atleast-version $FUSIONSOUND_REQUIRED_VERSION fusionsound; then 1922 FUSIONSOUND_CFLAGS=`$PKG_CONFIG --cflags fusionsound` 1923 FUSIONSOUND_LIBS=`$PKG_CONFIG --libs fusionsound` 1924 fusionsound=yes 1925 fi 1926 fi 1927 AC_MSG_RESULT($fusionsound) 1928 1929 if test x$fusionsound = xyes; then 1930 AC_DEFINE(SDL_AUDIO_DRIVER_FUSIONSOUND, 1, [ ]) 1931 SOURCES="$SOURCES $srcdir/src/audio/fusionsound/*.c" 1932 EXTRA_CFLAGS="$EXTRA_CFLAGS $FUSIONSOUND_CFLAGS" 1933 1934 AC_ARG_ENABLE(fusionsound-shared, 1935AC_HELP_STRING([--enable-fusionsound-shared], [dynamically load fusionsound audio support [[default=yes]]]), 1936 , enable_fusionsound_shared=yes) 1937 fusionsound_shared=no 1938 AC_MSG_CHECKING(for FusionSound dynamic loading support) 1939 if test x$have_loadso != xyes && \ 1940 test x$enable_fusionsound_shared = xyes; then 1941 AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic fusionsound loading]) 1942 fi 1943 if test x$have_loadso = xyes && \ 1944 test x$enable_fusionsound_shared = xyes; then 1945 AC_DEFINE_UNQUOTED(SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC, "libfusionsound.so", [ ]) 1946 fusionsound_shared=yes 1947 SUMMARY_audio="${SUMMARY_audio} fusionsound(dynamic)" 1948 else 1949 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $FUSIONSOUND_LIBS" 1950 SUMMARY_audio="${SUMMARY_audio} fusionsound" 1951 fi 1952 AC_MSG_RESULT($fusionsound_shared) 1953 1954 have_audio=yes 1955 fi 1956 fi 1957} 1958 1959dnl rcg04172001 Set up the Null video driver. 1960CheckDummyVideo() 1961{ 1962 AC_ARG_ENABLE(video-dummy, 1963AC_HELP_STRING([--enable-video-dummy], [use dummy video driver [[default=yes]]]), 1964 , enable_video_dummy=yes) 1965 if test x$enable_video_dummy = xyes; then 1966 AC_DEFINE(SDL_VIDEO_DRIVER_DUMMY, 1, [ ]) 1967 SOURCES="$SOURCES $srcdir/src/video/dummy/*.c" 1968 have_video=yes 1969 SUMMARY_video="${SUMMARY_video} dummy" 1970 fi 1971} 1972 1973dnl Check to see if OpenGL support is desired 1974AC_ARG_ENABLE(video-opengl, 1975AC_HELP_STRING([--enable-video-opengl], [include OpenGL support [[default=yes]]]), 1976 , enable_video_opengl=yes) 1977 1978dnl Find OpenGL 1979CheckOpenGLX11() 1980{ 1981 if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then 1982 AC_MSG_CHECKING(for OpenGL (GLX) support) 1983 video_opengl=no 1984 AC_TRY_COMPILE([ 1985 #include <GL/gl.h> 1986 #include <GL/glx.h> 1987 ],[ 1988 ],[ 1989 video_opengl=yes 1990 ]) 1991 AC_MSG_RESULT($video_opengl) 1992 if test x$video_opengl = xyes; then 1993 AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ]) 1994 AC_DEFINE(SDL_VIDEO_OPENGL_GLX, 1, [ ]) 1995 AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ]) 1996 SUMMARY_video="${SUMMARY_video} opengl" 1997 fi 1998 fi 1999} 2000 2001dnl Check to see if OpenGL ES support is desired 2002AC_ARG_ENABLE(video-opengles, 2003AC_HELP_STRING([--enable-video-opengles], [include OpenGL ES support [[default=yes]]]), 2004 , enable_video_opengles=yes) 2005AC_ARG_ENABLE(video-opengles1, 2006AC_HELP_STRING([--enable-video-opengles1], [include OpenGL ES 1.1 support [[default=yes]]]), 2007 , enable_video_opengles1=yes) 2008AC_ARG_ENABLE(video-opengles2, 2009AC_HELP_STRING([--enable-video-opengles2], [include OpenGL ES 2.0 support [[default=yes]]]), 2010 , enable_video_opengles2=yes) 2011 2012dnl Find OpenGL ES 2013CheckOpenGLESX11() 2014{ 2015 if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then 2016 AC_MSG_CHECKING(for EGL support) 2017 video_opengl_egl=no 2018 AC_TRY_COMPILE([ 2019 #define LINUX 2020 #define EGL_API_FB 2021 #include <EGL/egl.h> 2022 #include <EGL/eglext.h> 2023 ],[ 2024 ],[ 2025 video_opengl_egl=yes 2026 ]) 2027 AC_MSG_RESULT($video_opengl_egl) 2028 if test x$video_opengl_egl = xyes; then 2029 AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ]) 2030 fi 2031 2032 if test x$enable_video_opengles1 = xyes; then 2033 AC_MSG_CHECKING(for OpenGL ES v1 headers) 2034 video_opengles_v1=no 2035 AC_TRY_COMPILE([ 2036 #include <GLES/gl.h> 2037 #include <GLES/glext.h> 2038 ],[ 2039 ],[ 2040 video_opengles_v1=yes 2041 ]) 2042 AC_MSG_RESULT($video_opengles_v1) 2043 if test x$video_opengles_v1 = xyes; then 2044 AC_DEFINE(SDL_VIDEO_OPENGL_ES, 1, [ ]) 2045 AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES, 1, [ ]) 2046 SUMMARY_video="${SUMMARY_video} opengl_es1" 2047 fi 2048 fi 2049 2050 if test x$enable_video_opengles2 = xyes; then 2051 AC_MSG_CHECKING(for OpenGL ES v2 headers) 2052 video_opengles_v2=no 2053 AC_TRY_COMPILE([ 2054 #include <GLES2/gl2.h> 2055 #include <GLES2/gl2ext.h> 2056 ],[ 2057 ],[ 2058 video_opengles_v2=yes 2059 ]) 2060 AC_MSG_RESULT($video_opengles_v2) 2061 if test x$video_opengles_v2 = xyes; then 2062 AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ]) 2063 AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ]) 2064 SUMMARY_video="${SUMMARY_video} opengl_es2" 2065 fi 2066 fi 2067 fi 2068} 2069 2070dnl Check for Windows OpenGL 2071CheckWINDOWSGL() 2072{ 2073 if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then 2074 AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ]) 2075 AC_DEFINE(SDL_VIDEO_OPENGL_WGL, 1, [ ]) 2076 AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ]) 2077 SUMMARY_video="${SUMMARY_video} opengl" 2078 fi 2079} 2080 2081dnl Check for Windows OpenGL 2082CheckWINDOWSGLES() 2083{ 2084 if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then 2085 2086 AC_MSG_CHECKING(for EGL support) 2087 video_opengl_egl=no 2088 AC_TRY_COMPILE([ 2089 #include <EGL/egl.h> 2090 ],[ 2091 ],[ 2092 video_opengl_egl=yes 2093 ]) 2094 AC_MSG_RESULT($video_opengl_egl) 2095 if test x$video_opengl_egl = xyes; then 2096 AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ]) 2097 AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ]) 2098 SUMMARY_video="${SUMMARY_video} opengl_es1" 2099 fi 2100 2101 AC_MSG_CHECKING(for OpenGL ES v2 headers) 2102 video_opengles_v2=no 2103 AC_TRY_COMPILE([ 2104 #include <GLES2/gl2.h> 2105 #include <GLES2/gl2ext.h> 2106 ],[ 2107 ],[ 2108 video_opengles_v2=yes 2109 ]) 2110 AC_MSG_RESULT($video_opengles_v2) 2111 if test x$video_opengles_v2 = xyes; then 2112 AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ]) 2113 AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ]) 2114 AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ]) 2115 SUMMARY_video="${SUMMARY_video} opengl_es2" 2116 fi 2117 fi 2118} 2119 2120dnl Check for Haiku OpenGL 2121CheckHaikuGL() 2122{ 2123 if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then 2124 AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ]) 2125 AC_DEFINE(SDL_VIDEO_OPENGL_HAIKU, 1, [ ]) 2126 AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ]) 2127 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lGL" 2128 SUMMARY_video="${SUMMARY_video} opengl" 2129 fi 2130} 2131 2132dnl Check for MacOS OpenGL 2133CheckMacGL() 2134{ 2135 if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then 2136 AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ]) 2137 AC_DEFINE(SDL_VIDEO_OPENGL_CGL, 1, [ ]) 2138 AC_DEFINE(SDL_VIDEO_RENDER_OGL, 1, [ ]) 2139 SUMMARY_video="${SUMMARY_video} opengl" 2140 fi 2141} 2142 2143CheckEmscriptenGLES() 2144{ 2145 if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then 2146 AC_MSG_CHECKING(for EGL support) 2147 video_opengl_egl=no 2148 AC_TRY_COMPILE([ 2149 #include <EGL/egl.h> 2150 ],[ 2151 ],[ 2152 video_opengl_egl=yes 2153 ]) 2154 AC_MSG_RESULT($video_opengl_egl) 2155 if test x$video_opengl_egl = xyes; then 2156 AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ]) 2157 fi 2158 2159 AC_MSG_CHECKING(for OpenGL ES v2 headers) 2160 video_opengles_v2=no 2161 AC_TRY_COMPILE([ 2162 #include <GLES2/gl2.h> 2163 #include <GLES2/gl2ext.h> 2164 ],[ 2165 ],[ 2166 video_opengles_v2=yes 2167 ]) 2168 AC_MSG_RESULT($video_opengles_v2) 2169 if test x$video_opengles_v2 = xyes; then 2170 AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ]) 2171 AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ]) 2172 SUMMARY_video="${SUMMARY_video} opengl_es2" 2173 fi 2174 fi 2175} 2176 2177dnl See if we can use the new unified event interface in Linux 2.4 2178CheckInputEvents() 2179{ 2180 dnl Check for Linux 2.4 unified input event interface support 2181 AC_MSG_CHECKING(for Linux 2.4 unified input interface) 2182 use_input_events=no 2183 AC_TRY_COMPILE([ 2184 #include <linux/input.h> 2185 ],[ 2186 #ifndef EVIOCGNAME 2187 #error EVIOCGNAME() ioctl not available 2188 #endif 2189 ],[ 2190 use_input_events=yes 2191 ]) 2192 AC_MSG_RESULT($use_input_events) 2193 if test x$use_input_events = xyes; then 2194 AC_DEFINE(SDL_INPUT_LINUXEV, 1, [ ]) 2195 SUMMARY_input="${SUMMARY_input} linuxev" 2196 fi 2197} 2198 2199dnl See if we can use the kernel kd.h header 2200CheckInputKD() 2201{ 2202 2203 AC_MSG_CHECKING(for Linux kd.h) 2204 use_input_kd=no 2205 AC_TRY_COMPILE([ 2206 #include <linux/kd.h> 2207 #include <linux/keyboard.h> 2208 ],[ 2209 struct kbentry kbe; 2210 kbe.kb_table = KG_CTRL; 2211 ioctl(0, KDGKBENT, &kbe); 2212 ],[ 2213 use_input_kd=yes 2214 ]) 2215 AC_MSG_RESULT($use_input_kd) 2216 if test x$use_input_kd = xyes; then 2217 AC_DEFINE(SDL_INPUT_LINUXKD, 1, [ ]) 2218 SUMMARY_input="${SUMMARY_input} linuxkd" 2219 fi 2220} 2221 2222dnl See if the platform offers libudev for device enumeration and hotplugging. 2223CheckLibUDev() 2224{ 2225 AC_ARG_ENABLE(libudev, 2226AC_HELP_STRING([--enable-libudev], [enable libudev support [[default=yes]]]), 2227 , enable_libudev=yes) 2228 if test x$enable_libudev = xyes; then 2229 AC_CHECK_HEADER(libudev.h, 2230 have_libudev_h_hdr=yes, 2231 have_libudev_h_hdr=no) 2232 if test x$have_libudev_h_hdr = xyes; then 2233 AC_DEFINE(HAVE_LIBUDEV_H, 1, [ ]) 2234 fi 2235 fi 2236} 2237 2238dnl See if the platform offers libdbus for various IPC techniques. 2239CheckDBus() 2240{ 2241 AC_ARG_ENABLE(dbus, 2242AC_HELP_STRING([--enable-dbus], [enable D-Bus support [[default=yes]]]), 2243 , enable_dbus=yes) 2244 if test x$enable_dbus = xyes; then 2245 AC_PATH_PROG(PKG_CONFIG, pkg-config, no) 2246 if test x$PKG_CONFIG != xno; then 2247 DBUS_CFLAGS=`$PKG_CONFIG --cflags dbus-1` 2248 save_CFLAGS="$CFLAGS" 2249 CFLAGS="$save_CFLAGS $DBUS_CFLAGS" 2250 AC_CHECK_HEADER(dbus/dbus.h, 2251 have_dbus_dbus_h_hdr=yes, 2252 have_dbus_dbus_h_hdr=no) 2253 CFLAGS="$save_CFLAGS" 2254 if test x$have_dbus_dbus_h_hdr = xyes; then 2255 AC_DEFINE(HAVE_DBUS_DBUS_H, 1, [ ]) 2256 EXTRA_CFLAGS="$EXTRA_CFLAGS $DBUS_CFLAGS" 2257 SOURCES="$SOURCES $srcdir/src/core/linux/SDL_dbus.c" 2258 fi 2259 fi 2260 fi 2261} 2262 2263dnl See if the platform wanna IME support. 2264CheckIME() 2265{ 2266 AC_ARG_ENABLE(ime, 2267AC_HELP_STRING([--enable-ime], [enable IME support [[default=yes]]]), 2268 , enable_ime=yes) 2269 if test x$enable_ime = xyes; then 2270 AC_DEFINE(SDL_USE_IME, 1, [ ]) 2271 SOURCES="$SOURCES $srcdir/src/core/linux/SDL_ime.c" 2272 fi 2273} 2274 2275dnl See if the platform has libibus IME support. 2276CheckIBus() 2277{ 2278 AC_ARG_ENABLE(ibus, 2279AC_HELP_STRING([--enable-ibus], [enable IBus support [[default=yes]]]), 2280 , enable_ibus=yes) 2281 if test x$enable_ibus = xyes; then 2282 AC_PATH_PROG(PKG_CONFIG, pkg-config, no) 2283 if test x$PKG_CONFIG != xno; then 2284 IBUS_CFLAGS=`$PKG_CONFIG --cflags ibus-1.0` 2285 save_CFLAGS="$CFLAGS" 2286 CFLAGS="$save_CFLAGS $IBUS_CFLAGS" 2287 AC_CHECK_HEADER(ibus-1.0/ibus.h, 2288 have_ibus_ibus_h_hdr=yes, 2289 have_ibus_ibus_h_hdr=no) 2290 AC_CHECK_HEADER(sys/inotify.h, 2291 have_inotify_inotify_h_hdr=yes, 2292 have_inotify_inotify_h_hdr=no) 2293 CFLAGS="$save_CFLAGS" 2294 if test x$have_ibus_ibus_h_hdr = xyes; then 2295 if test x$enable_ime != xyes; then 2296 AC_MSG_WARN([IME support is required for IBus.]) 2297 have_ibus_ibus_h_hdr=no 2298 elif test x$enable_dbus != xyes; then 2299 AC_MSG_WARN([DBus support is required for IBus.]) 2300 have_ibus_ibus_h_hdr=no 2301 elif test x$have_inotify_inotify_h_hdr != xyes; then 2302 AC_MSG_WARN([INotify support is required for IBus.]) 2303 have_ibus_ibus_h_hdr=no 2304 else 2305 AC_DEFINE(HAVE_IBUS_IBUS_H, 1, [ ]) 2306 EXTRA_CFLAGS="$EXTRA_CFLAGS $IBUS_CFLAGS" 2307 SOURCES="$SOURCES $srcdir/src/core/linux/SDL_ibus.c" 2308 fi 2309 fi 2310 fi 2311 fi 2312} 2313 2314dnl See if the platform has fcitx IME support. 2315CheckFcitx() 2316{ 2317 AC_ARG_ENABLE(fcitx, 2318AC_HELP_STRING([--enable-fcitx], [enable fcitx support [[default=yes]]]), 2319 , enable_fcitx=yes) 2320 if test x$enable_fcitx = xyes; then 2321 AC_PATH_PROG(PKG_CONFIG, pkg-config, no) 2322 if test x$PKG_CONFIG != xno; then 2323 FCITX_CFLAGS=`$PKG_CONFIG --cflags fcitx` 2324 CFLAGS="$CFLAGS $FCITX_CFLAGS" 2325 AC_CHECK_HEADER(fcitx/frontend.h, 2326 have_fcitx_frontend_h_hdr=yes, 2327 have_fcitx_frontend_h_hdr=no) 2328 CFLAGS="$save_CFLAGS" 2329 if test x$have_fcitx_frontend_h_hdr = xyes; then 2330 if test x$enable_ime != xyes; then 2331 AC_MSG_WARN([IME support is required for fcitx.]) 2332 have_fcitx_frontend_h_hdr=no 2333 elif test x$enable_dbus != xyes; then 2334 AC_MSG_WARN([DBus support is required for fcitx.]) 2335 have_fcitx_frontend_h_hdr=no 2336 else 2337 AC_DEFINE(HAVE_FCITX_FRONTEND_H, 1, [ ]) 2338 EXTRA_CFLAGS="$EXTRA_CFLAGS $FCITX_CFLAGS" 2339 SOURCES="$SOURCES $srcdir/src/core/linux/SDL_fcitx.c" 2340 fi 2341 fi 2342 fi 2343 fi 2344} 2345 2346dnl See if we can use the Touchscreen input library 2347CheckTslib() 2348{ 2349 AC_ARG_ENABLE(input-tslib, 2350AC_HELP_STRING([--enable-input-tslib], [use the Touchscreen library for input [[default=yes]]]), 2351 , enable_input_tslib=yes) 2352 if test x$enable_input_tslib = xyes; then 2353 AC_MSG_CHECKING(for Touchscreen library support) 2354 enable_input_tslib=no 2355 AC_TRY_COMPILE([ 2356 #include "tslib.h" 2357 ],[ 2358 ],[ 2359 enable_input_tslib=yes 2360 ]) 2361 AC_MSG_RESULT($enable_input_tslib) 2362 if test x$enable_input_tslib = xyes; then 2363 AC_DEFINE(SDL_INPUT_TSLIB, 1, [ ]) 2364 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lts" 2365 SUMMARY_input="${SUMMARY_input} ts" 2366 fi 2367 fi 2368} 2369 2370dnl See what type of thread model to use on Linux and Solaris 2371CheckPTHREAD() 2372{ 2373 dnl Check for pthread support 2374 AC_ARG_ENABLE(pthreads, 2375AC_HELP_STRING([--enable-pthreads], [use POSIX threads for multi-threading [[default=yes]]]), 2376 , enable_pthreads=yes) 2377 dnl This is used on Linux for glibc binary compatibility (Doh!) 2378 AC_ARG_ENABLE(pthread-sem, 2379AC_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [[default=yes]]]), 2380 , enable_pthread_sem=yes) 2381 case "$host" in 2382 *-*-androideabi*) 2383 pthread_cflags="-D_REENTRANT -D_THREAD_SAFE" 2384 pthread_lib="" 2385 ;; 2386 *-*-linux*|*-*-uclinux*) 2387 pthread_cflags="-D_REENTRANT" 2388 pthread_lib="-lpthread" 2389 ;; 2390 *-*-bsdi*) 2391 pthread_cflags="-D_REENTRANT -D_THREAD_SAFE" 2392 pthread_lib="" 2393 ;; 2394 *-*-darwin*) 2395 pthread_cflags="-D_THREAD_SAFE" 2396# causes Carbon.p complaints? 2397# pthread_cflags="-D_REENTRANT -D_THREAD_SAFE" 2398 ;; 2399 *-*-freebsd*|*-*-dragonfly*) 2400 pthread_cflags="-D_REENTRANT -D_THREAD_SAFE" 2401 pthread_lib="-pthread" 2402 ;; 2403 *-*-netbsd*) 2404 pthread_cflags="-D_REENTRANT -D_THREAD_SAFE" 2405 pthread_lib="-lpthread" 2406 ;; 2407 *-*-openbsd*) 2408 pthread_cflags="-D_REENTRANT" 2409 pthread_lib="-pthread" 2410 ;; 2411 *-*-solaris2.9) 2412 # From Solaris 9+, posix4's preferred name is rt. 2413 pthread_cflags="-D_REENTRANT" 2414 pthread_lib="-lpthread -lrt" 2415 ;; 2416 *-*-solaris2.10) 2417 # Solaris 10+ merged pthread into libc. 2418 pthread_cflags="-D_REENTRANT" 2419 pthread_lib="-lrt" 2420 ;; 2421 *-*-solaris*) 2422 # Solaris 11+ merged rt into libc. 2423 pthread_cflags="-D_REENTRANT" 2424 pthread_lib="" 2425 ;; 2426 *-*-sysv5*) 2427 pthread_cflags="-D_REENTRANT -Kthread" 2428 pthread_lib="" 2429 ;; 2430 *-*-aix*) 2431 pthread_cflags="-D_REENTRANT -mthreads" 2432 pthread_lib="-lpthread" 2433 ;; 2434 *-*-hpux11*) 2435 pthread_cflags="-D_REENTRANT" 2436 pthread_lib="-L/usr/lib -lpthread" 2437 ;; 2438 *-*-haiku*) 2439 pthread_cflags="-D_REENTRANT" 2440 pthread_lib="" 2441 ;; 2442 *) 2443 pthread_cflags="-D_REENTRANT" 2444 pthread_lib="-lpthread" 2445 ;; 2446 esac 2447 if test x$enable_threads = xyes -a x$enable_pthreads = xyes; then 2448 # Save the original compiler flags and libraries 2449 ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS" 2450 # Add the pthread compiler flags and libraries 2451 CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib" 2452 # Check to see if we have pthread support on this system 2453 AC_MSG_CHECKING(for pthreads) 2454 use_pthreads=no 2455 AC_TRY_LINK([ 2456 #include <pthread.h> 2457 ],[ 2458 pthread_attr_t type; 2459 pthread_attr_init(&type); 2460 ],[ 2461 use_pthreads=yes 2462 ]) 2463 AC_MSG_RESULT($use_pthreads) 2464 # Restore the compiler flags and libraries 2465 CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs" 2466 2467 # Do futher testing if we have pthread support... 2468 if test x$use_pthreads = xyes; then 2469 AC_DEFINE(SDL_THREAD_PTHREAD, 1, [ ]) 2470 EXTRA_CFLAGS="$EXTRA_CFLAGS $pthread_cflags" 2471 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $pthread_lib" 2472 SDL_CFLAGS="$SDL_CFLAGS $pthread_cflags" 2473 2474 # Save the original compiler flags and libraries 2475 ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS" 2476 # Add the pthread compiler flags and libraries 2477 CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib" 2478 2479 # Check to see if recursive mutexes are available 2480 AC_MSG_CHECKING(for recursive mutexes) 2481 has_recursive_mutexes=no 2482 if test x$has_recursive_mutexes = xno; then 2483 AC_TRY_LINK([ 2484 #define _GNU_SOURCE 1 2485 #include <pthread.h> 2486 ],[ 2487 pthread_mutexattr_t attr; 2488 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); 2489 ],[ 2490 has_recursive_mutexes=yes 2491 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX, 1, [ ]) 2492 ]) 2493 fi 2494 if test x$has_recursive_mutexes = xno; then 2495 AC_TRY_LINK([ 2496 #define _GNU_SOURCE 1 2497 #include <pthread.h> 2498 ],[ 2499 pthread_mutexattr_t attr; 2500 pthread_mutexattr_setkind_np(&attr, PTHREAD_MUTEX_RECURSIVE_NP); 2501 ],[ 2502 has_recursive_mutexes=yes 2503 AC_DEFINE(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP, 1, [ ]) 2504 ]) 2505 fi 2506 AC_MSG_RESULT($has_recursive_mutexes) 2507 2508 # Check to see if pthread semaphore support is missing 2509 if test x$enable_pthread_sem = xyes; then 2510 AC_MSG_CHECKING(for pthread semaphores) 2511 have_pthread_sem=no 2512 AC_TRY_COMPILE([ 2513 #include <pthread.h> 2514 #include <semaphore.h> 2515 ],[ 2516 ],[ 2517 have_pthread_sem=yes 2518 ]) 2519 AC_MSG_RESULT($have_pthread_sem) 2520 fi 2521 if test x$have_pthread_sem = xyes; then 2522 AC_MSG_CHECKING(for sem_timedwait) 2523 have_sem_timedwait=no 2524 AC_TRY_LINK([ 2525 #include <pthread.h> 2526 #include <semaphore.h> 2527 ],[ 2528 sem_timedwait(NULL, NULL); 2529 ],[ 2530 have_sem_timedwait=yes 2531 AC_DEFINE(HAVE_SEM_TIMEDWAIT) 2532 ]) 2533 AC_MSG_RESULT($have_sem_timedwait) 2534 fi 2535 2536 AC_CHECK_HEADER(pthread_np.h, have_pthread_np_h=yes, have_pthread_np_h=no, [ #include <pthread.h> ]) 2537 if test x$have_pthread_np_h = xyes; then 2538 AC_DEFINE(HAVE_PTHREAD_NP_H, 1, [ ]) 2539 fi 2540 2541 # Check to see if pthread naming is available 2542 AC_MSG_CHECKING(for pthread_setname_np) 2543 AC_TRY_LINK_FUNC(pthread_setname_np, [ 2544 has_pthread_setname_np=yes 2545 AC_DEFINE(HAVE_PTHREAD_SETNAME_NP, 1, [ ]) 2546 ],[ 2547 has_pthread_setname_np=no 2548 ]) 2549 AC_MSG_RESULT($has_pthread_setname_np) 2550 2551 AC_MSG_CHECKING(for pthread_set_name_np) 2552 AC_TRY_LINK_FUNC(pthread_set_name_np, [ 2553 has_pthread_set_name_np=yes 2554 AC_DEFINE(HAVE_PTHREAD_SET_NAME_NP, 1, [ ]) 2555 ],[ 2556 has_pthread_set_name_np=no 2557 ]) 2558 AC_MSG_RESULT($has_pthread_set_name_np) 2559 2560 # Restore the compiler flags and libraries 2561 CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs" 2562 2563 # Basic thread creation functions 2564 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_systhread.c" 2565 2566 # Semaphores 2567 # We can fake these with mutexes and condition variables if necessary 2568 if test x$have_pthread_sem = xyes; then 2569 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syssem.c" 2570 else 2571 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syssem.c" 2572 fi 2573 2574 # Mutexes 2575 # We can fake these with semaphores if necessary 2576 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_sysmutex.c" 2577 2578 # Condition variables 2579 # We can fake these with semaphores and mutexes if necessary 2580 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_syscond.c" 2581 2582 # Thread local storage 2583 SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_systls.c" 2584 2585 have_threads=yes 2586 fi 2587 fi 2588} 2589 2590dnl Determine whether the compiler can produce Windows executables 2591CheckWINDOWS() 2592{ 2593 AC_MSG_CHECKING(Windows compiler) 2594 have_win32_gcc=no 2595 AC_TRY_COMPILE([ 2596 #include <windows.h> 2597 ],[ 2598 ],[ 2599 have_win32_gcc=yes 2600 ]) 2601 AC_MSG_RESULT($have_win32_gcc) 2602 if test x$have_win32_gcc != xyes; then 2603 AC_MSG_ERROR([ 2604*** Your compiler ($CC) does not produce Windows executables! 2605 ]) 2606 fi 2607 2608 AC_MSG_CHECKING(Windows CE) 2609 have_wince=no 2610 AC_TRY_COMPILE([ 2611#if !defined(_WIN32_WCE) && !defined(__MINGW32CE__) 2612#error This is not Windows CE 2613#endif 2614 ],[ 2615 ],[ 2616 have_wince=yes 2617 AC_MSG_ERROR([ 2618*** Sorry, Windows CE is no longer supported. 2619 ]) 2620 ]) 2621 AC_MSG_RESULT($have_wince) 2622 2623 # This fixes Windows stack alignment with newer GCC 2624 CheckStackBoundary 2625} 2626 2627dnl Find the DirectX includes and libraries 2628CheckDIRECTX() 2629{ 2630 AC_ARG_ENABLE(directx, 2631AC_HELP_STRING([--enable-directx], [use DirectX for Windows audio/video [[default=yes]]]), 2632 , enable_directx=yes) 2633 if test x$enable_directx = xyes; then 2634 AC_CHECK_HEADER(d3d9.h, have_d3d=yes) 2635 AC_CHECK_HEADER(d3d11_1.h, have_d3d11=yes) 2636 AC_CHECK_HEADER(ddraw.h, have_ddraw=yes) 2637 AC_CHECK_HEADER(dsound.h, have_dsound=yes) 2638 AC_CHECK_HEADER(dinput.h, have_dinput=yes) 2639 AC_CHECK_HEADER(dxgi.h, have_dxgi=yes) 2640 AC_CHECK_HEADER(xaudio2.h, have_xaudio2=yes) 2641 AC_CHECK_HEADER(xinput.h, have_xinput=yes) 2642 2643 if test x$have_ddraw = xyes; then 2644 AC_DEFINE(HAVE_DDRAW_H, 1, [ ]) 2645 fi 2646 if test x$have_dinput = xyes; then 2647 AC_DEFINE(HAVE_DINPUT_H, 1, [ ]) 2648 fi 2649 if test x$have_dsound = xyes; then 2650 AC_DEFINE(HAVE_DSOUND_H, 1, [ ]) 2651 fi 2652 if test x$have_dxgi = xyes; then 2653 AC_DEFINE(HAVE_DXGI_H, 1, [ ]) 2654 fi 2655 if test x$have_xinput = xyes; then 2656 AC_DEFINE(HAVE_XINPUT_H, 1, [ ]) 2657 fi 2658 2659 SUMMARY_video="${SUMMARY_video} directx" 2660 SUMMARY_audio="${SUMMARY_audio} directx" 2661 2662 # FIXME: latest Cygwin finds dinput headers, but we die on other win32 headers. 2663 # FIXME: ...so force it off for now. 2664 case "$host" in 2665 *-*-cygwin*) 2666 have_dinput=false 2667 ;; 2668 esac 2669 fi 2670} 2671 2672dnl Check for the dlfcn.h interface for dynamically loading objects 2673CheckDLOPEN() 2674{ 2675 AC_ARG_ENABLE(sdl-dlopen, 2676AC_HELP_STRING([--enable-sdl-dlopen], [use dlopen for shared object loading [[default=yes]]]), 2677 , enable_sdl_dlopen=yes) 2678 if test x$enable_sdl_dlopen = xyes; then 2679 AC_MSG_CHECKING(for dlopen) 2680 have_dlopen=no 2681 AC_TRY_COMPILE([ 2682 #include <dlfcn.h> 2683 ],[ 2684 void *handle = dlopen("", RTLD_NOW); 2685 const char *loaderror = (char *) dlerror(); 2686 ],[ 2687 have_dlopen=yes 2688 ]) 2689 AC_MSG_RESULT($have_dlopen) 2690 2691 if test x$have_dlopen = xyes; then 2692 AC_CHECK_LIB(c, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS", 2693 AC_CHECK_LIB(dl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldl", 2694 AC_CHECK_LIB(ltdl, dlopen, EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lltdl"))) 2695 AC_DEFINE(SDL_LOADSO_DLOPEN, 1, [ ]) 2696 SOURCES="$SOURCES $srcdir/src/loadso/dlopen/*.c" 2697 have_loadso=yes 2698 fi 2699 fi 2700} 2701 2702dnl Check for the usbhid(3) library on *BSD 2703CheckUSBHID() 2704{ 2705 case "$host" in 2706 *-*-*bsd*) 2707 if test x$enable_joystick = xyes; then 2708 AC_CHECK_LIB(usbhid, hid_init, have_libusbhid=yes) 2709 if test x$have_libusbhid = xyes; then 2710 AC_CHECK_HEADER(usbhid.h, [USB_CFLAGS="-DHAVE_USBHID_H"]) 2711 AC_CHECK_HEADER(libusbhid.h, [USB_CFLAGS="-DHAVE_LIBUSBHID_H"]) 2712 USB_LIBS="$USB_LIBS -lusbhid" 2713 else 2714 AC_CHECK_HEADER(usb.h, [USB_CFLAGS="-DHAVE_USB_H"]) 2715 AC_CHECK_HEADER(libusb.h, [USB_CFLAGS="-DHAVE_LIBUSB_H"]) 2716 AC_CHECK_LIB(usb, hid_init, [USB_LIBS="$USB_LIBS -lusb"]) 2717 fi 2718 2719 save_CFLAGS="$CFLAGS" 2720 CFLAGS="$CFLAGS $USB_CFLAGS" 2721 2722 AC_MSG_CHECKING(for usbhid) 2723 have_usbhid=no 2724 AC_TRY_COMPILE([ 2725 #include <sys/types.h> 2726 #if defined(HAVE_USB_H) 2727 #include <usb.h> 2728 #endif 2729 #ifdef __DragonFly__ 2730 # include <bus/usb/usb.h> 2731 # include <bus/usb/usbhid.h> 2732 #else 2733 # include <dev/usb/usb.h> 2734 # include <dev/usb/usbhid.h> 2735 #endif 2736 #if defined(HAVE_USBHID_H) 2737 #include <usbhid.h> 2738 #elif defined(HAVE_LIBUSB_H) 2739 #include <libusb.h> 2740 #elif defined(HAVE_LIBUSBHID_H) 2741 #include <libusbhid.h> 2742 #endif 2743 ],[ 2744 struct report_desc *repdesc; 2745 struct usb_ctl_report *repbuf; 2746 hid_kind_t hidkind; 2747 ],[ 2748 have_usbhid=yes 2749 ]) 2750 AC_MSG_RESULT($have_usbhid) 2751 2752 if test x$have_usbhid = xyes; then 2753 AC_MSG_CHECKING(for ucr_data member of usb_ctl_report) 2754 have_usbhid_ucr_data=no 2755 AC_TRY_COMPILE([ 2756 #include <sys/types.h> 2757 #if defined(HAVE_USB_H) 2758 #include <usb.h> 2759 #endif 2760 #ifdef __DragonFly__ 2761 # include <bus/usb/usb.h> 2762 # include <bus/usb/usbhid.h> 2763 #else 2764 # include <dev/usb/usb.h> 2765 # include <dev/usb/usbhid.h> 2766 #endif 2767 #if defined(HAVE_USBHID_H) 2768 #include <usbhid.h> 2769 #elif defined(HAVE_LIBUSB_H) 2770 #include <libusb.h> 2771 #elif defined(HAVE_LIBUSBHID_H) 2772 #include <libusbhid.h> 2773 #endif 2774 ],[ 2775 struct usb_ctl_report buf; 2776 if (buf.ucr_data) { } 2777 ],[ 2778 have_usbhid_ucr_data=yes 2779 ]) 2780 if test x$have_usbhid_ucr_data = xyes; then 2781 USB_CFLAGS="$USB_CFLAGS -DUSBHID_UCR_DATA" 2782 fi 2783 AC_MSG_RESULT($have_usbhid_ucr_data) 2784 2785 AC_MSG_CHECKING(for new usbhid API) 2786 have_usbhid_new=no 2787 AC_TRY_COMPILE([ 2788 #include <sys/types.h> 2789 #if defined(HAVE_USB_H) 2790 #include <usb.h> 2791 #endif 2792 #ifdef __DragonFly__ 2793 #include <bus/usb/usb.h> 2794 #include <bus/usb/usbhid.h> 2795 #else 2796 #include <dev/usb/usb.h> 2797 #include <dev/usb/usbhid.h> 2798 #endif 2799 #if defined(HAVE_USBHID_H) 2800 #include <usbhid.h> 2801 #elif defined(HAVE_LIBUSB_H) 2802 #include <libusb.h> 2803 #elif defined(HAVE_LIBUSBHID_H) 2804 #include <libusbhid.h> 2805 #endif 2806 ],[ 2807 report_desc_t d; 2808 hid_start_parse(d, 1, 1); 2809 ],[ 2810 have_usbhid_new=yes 2811 ]) 2812 if test x$have_usbhid_new = xyes; then 2813 USB_CFLAGS="$USB_CFLAGS -DUSBHID_NEW" 2814 fi 2815 AC_MSG_RESULT($have_usbhid_new) 2816 2817 AC_MSG_CHECKING(for struct joystick in machine/joystick.h) 2818 have_machine_joystick=no 2819 AC_TRY_COMPILE([ 2820 #include <machine/joystick.h> 2821 ],[ 2822 struct joystick t; 2823 ],[ 2824 have_machine_joystick=yes 2825 ]) 2826 if test x$have_machine_joystick = xyes; then 2827 AC_DEFINE(SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H, 1, [ ]) 2828 fi 2829 AC_MSG_RESULT($have_machine_joystick) 2830 2831 AC_DEFINE(SDL_JOYSTICK_USBHID, 1, [ ]) 2832 SOURCES="$SOURCES $srcdir/src/joystick/bsd/*.c" 2833 EXTRA_CFLAGS="$EXTRA_CFLAGS $USB_CFLAGS" 2834 EXTRA_LDFLAGS="$EXTRA_LDFLAGS $USB_LIBS" 2835 have_joystick=yes 2836 fi 2837 CFLAGS="$save_CFLAGS" 2838 fi 2839 ;; 2840 esac 2841} 2842 2843dnl Check for clock_gettime() 2844CheckClockGettime() 2845{ 2846 AC_ARG_ENABLE(clock_gettime, 2847AC_HELP_STRING([--enable-clock_gettime], [use clock_gettime() instead of gettimeofday() on UNIX [[default=yes]]]), 2848 , enable_clock_gettime=yes) 2849 if test x$enable_clock_gettime = xyes; then 2850 AC_CHECK_LIB(rt, clock_gettime, have_clock_gettime=yes) 2851 if test x$have_clock_gettime = xyes; then 2852 AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [ ]) 2853 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lrt" 2854 else 2855 AC_CHECK_LIB(c, clock_gettime, have_clock_gettime=yes) 2856 if test x$have_clock_gettime = xyes; then 2857 AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [ ]) 2858 EXTRA_LDFLAGS="$EXTRA_LDFLAGS" 2859 fi 2860 fi 2861 fi 2862} 2863 2864dnl Check for a valid linux/version.h 2865CheckLinuxVersion() 2866{ 2867 AC_CHECK_HEADER(linux/version.h, have_linux_version_h=yes) 2868 if test x$have_linux_version_h = xyes; then 2869 EXTRA_CFLAGS="$EXTRA_CFLAGS -DHAVE_LINUX_VERSION_H" 2870 fi 2871} 2872 2873dnl Check if we want to use RPATH 2874CheckRPATH() 2875{ 2876 AC_ARG_ENABLE(rpath, 2877AC_HELP_STRING([--enable-rpath], [use an rpath when linking SDL [[default=yes]]]), 2878 , enable_rpath=yes) 2879} 2880 2881dnl Do this on all platforms, before everything else (other things might want to override it). 2882CheckWarnAll 2883 2884dnl Set up the configuration based on the host platform! 2885case "$host" in 2886 *-*-linux*|*-*-uclinux*|*-*-gnu*|*-*-k*bsd*-gnu|*-*-bsdi*|*-*-freebsd*|*-*-dragonfly*|*-*-netbsd*|*-*-openbsd*|*-*-sysv5*|*-*-solaris*|*-*-hpux*|*-*-aix*|*-*-minix*) 2887 case "$host" in 2888 *-raspberry-linux*) 2889 # Raspberry Pi 2890 ARCH=linux 2891 RPI_CFLAGS="-I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux" 2892 CFLAGS="$CFLAGS $RPI_CFLAGS" 2893 SDL_CFLAGS="$SDL_CFLAGS $RPI_CFLAGS" 2894 EXTRA_CFLAGS="$EXTRA_CFLAGS $RPI_CFLAGS" 2895 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -L/opt/vc/lib -lbcm_host -ldl" 2896 2897 if test x$enable_video = xyes; then 2898 SOURCES="$SOURCES $srcdir/src/video/raspberry/*.c" 2899 # FIXME: confdefs? Not AC_DEFINE? 2900 $as_echo "#define SDL_VIDEO_DRIVER_RPI 1" >>confdefs.h 2901 SUMMARY_video="${SUMMARY_video} rpi" 2902 fi 2903 ;; 2904 *-*-androideabi*) 2905 # Android 2906 ARCH=android 2907 ANDROID_CFLAGS="-DGL_GLEXT_PROTOTYPES" 2908 CFLAGS="$CFLAGS $ANDROID_CFLAGS" 2909 SDL_CFLAGS="$SDL_CFLAGS $ANDROID_CFLAGS" 2910 EXTRA_CFLAGS="$EXTRA_CFLAGS $ANDROID_CFLAGS" 2911 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldl -lGLESv1_CM -lGLESv2 -llog -landroid" 2912 2913 if test x$enable_video = xyes; then 2914 SOURCES="$SOURCES $srcdir/src/core/android/*.c $srcdir/src/video/android/*.c" 2915 # FIXME: confdefs? Not AC_DEFINE? 2916 $as_echo "#define SDL_VIDEO_DRIVER_ANDROID 1" >>confdefs.h 2917 SUMMARY_video="${SUMMARY_video} android" 2918 fi 2919 ;; 2920 *-*-linux*) ARCH=linux ;; 2921 *-*-uclinux*) ARCH=linux ;; 2922 *-*-kfreebsd*-gnu) ARCH=kfreebsd-gnu ;; 2923 *-*-knetbsd*-gnu) ARCH=knetbsd-gnu ;; 2924 *-*-kopenbsd*-gnu) ARCH=kopenbsd-gnu ;; 2925 *-*-gnu*) ARCH=gnu ;; # must be last of the gnu variants 2926 *-*-bsdi*) ARCH=bsdi ;; 2927 *-*-freebsd*) ARCH=freebsd ;; 2928 *-*-dragonfly*) ARCH=freebsd ;; 2929 *-raspberry-netbsd*) 2930 # Raspberry Pi 2931 ARCH=netbsd 2932 RPI_CFLAGS="-I/usr/pkg/include -I/usr/pkg/include/interface/vcos/pthreads -I/usr/pkg/include/interface/vmcs_host/linux" 2933 CFLAGS="$CFLAGS $RPI_CFLAGS" 2934 SDL_CFLAGS="$SDL_CFLAGS $RPI_CFLAGS" 2935 EXTRA_CFLAGS="$EXTRA_CFLAGS $RPI_CFLAGS" 2936 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-R/usr/pkg/lib -L/usr/pkg/lib -lbcm_host -ldl" 2937 2938 if test x$enable_video = xyes; then 2939 SOURCES="$SOURCES $srcdir/src/video/raspberry/*.c" 2940 $as_echo "#define SDL_VIDEO_DRIVER_RPI 1" >>confdefs.h 2941 SUMMARY_video="${SUMMARY_video} raspberry" 2942 fi 2943 ;; 2944 *-*-netbsd*) ARCH=netbsd ;; 2945 *-*-openbsd*) ARCH=openbsd ;; 2946 *-*-sysv5*) ARCH=sysv5 ;; 2947 *-*-solaris*) ARCH=solaris ;; 2948 *-*-hpux*) ARCH=hpux ;; 2949 *-*-aix*) ARCH=aix ;; 2950 *-*-minix*) ARCH=minix ;; 2951 esac 2952 CheckVisibilityHidden 2953 CheckDeclarationAfterStatement 2954 CheckDummyVideo 2955 CheckDiskAudio 2956 CheckDummyAudio 2957 CheckDLOPEN 2958 CheckOSS 2959 CheckALSA 2960 CheckPulseAudio 2961 CheckARTSC 2962 CheckESD 2963 CheckNAS 2964 CheckSNDIO 2965 CheckX11 2966 CheckDirectFB 2967 CheckFusionSound 2968 CheckOpenGLX11 2969 CheckOpenGLESX11 2970 CheckMir 2971 CheckWayland 2972 CheckLibUDev 2973 CheckDBus 2974 CheckIME 2975 CheckIBus 2976 CheckFcitx 2977 case $ARCH in 2978 linux) 2979 CheckInputEvents 2980 CheckInputKD 2981 ;; 2982 esac 2983 CheckTslib 2984 CheckUSBHID 2985 CheckPTHREAD 2986 CheckClockGettime 2987 CheckLinuxVersion 2988 CheckRPATH 2989 CheckVivanteVideo 2990 # Set up files for the audio library 2991 if test x$enable_audio = xyes; then 2992 case $ARCH in 2993 sysv5|solaris|hpux) 2994 AC_DEFINE(SDL_AUDIO_DRIVER_SUNAUDIO, 1, [ ]) 2995 SOURCES="$SOURCES $srcdir/src/audio/sun/*.c" 2996 have_audio=yes 2997 ;; 2998 netbsd) # Don't use this on OpenBSD, it's busted. 2999 AC_DEFINE(SDL_AUDIO_DRIVER_BSD, 1, [ ]) 3000 SOURCES="$SOURCES $srcdir/src/audio/bsd/*.c" 3001 have_audio=yes 3002 ;; 3003 aix) 3004 AC_DEFINE(SDL_AUDIO_DRIVER_PAUDIO, 1, [ ]) 3005 SOURCES="$SOURCES $srcdir/src/audio/paudio/*.c" 3006 have_audio=yes 3007 ;; 3008 android) 3009 AC_DEFINE(SDL_AUDIO_DRIVER_ANDROID, 1, [ ]) 3010 SOURCES="$SOURCES $srcdir/src/audio/android/*.c" 3011 SUMMARY_audio="${SUMMARY_audio} android" 3012 have_audio=yes 3013 ;; 3014 esac 3015 fi 3016 # Set up files for the joystick library 3017 if test x$enable_joystick = xyes; then 3018 case $ARCH in 3019 linux) 3020 AC_DEFINE(SDL_JOYSTICK_LINUX, 1, [ ]) 3021 SOURCES="$SOURCES $srcdir/src/joystick/linux/*.c" 3022 have_joystick=yes 3023 ;; 3024 android) 3025 AC_DEFINE(SDL_JOYSTICK_ANDROID, 1, [ ]) 3026 SOURCES="$SOURCES $srcdir/src/joystick/android/*.c" 3027 have_joystick=yes 3028 ;; 3029 esac 3030 fi 3031 # Set up files for the haptic library 3032 if test x$enable_haptic = xyes; then 3033 if test x$use_input_events = xyes; then 3034 case $ARCH in 3035 linux) 3036 AC_DEFINE(SDL_HAPTIC_LINUX, 1, [ ]) 3037 SOURCES="$SOURCES $srcdir/src/haptic/linux/*.c" 3038 have_haptic=yes 3039 ;; 3040 esac 3041 fi 3042 fi 3043 # Set up files for the power library 3044 if test x$enable_power = xyes; then 3045 case $ARCH in 3046 linux) 3047 AC_DEFINE(SDL_POWER_LINUX, 1, [ ]) 3048 SOURCES="$SOURCES $srcdir/src/power/linux/*.c" 3049 have_power=yes 3050 ;; 3051 android) 3052 AC_DEFINE(SDL_POWER_ANDROID, 1, [ ]) 3053 SOURCES="$SOURCES $srcdir/src/power/android/*.c" 3054 have_power=yes 3055 ;; 3056 esac 3057 fi 3058 # Set up files for the filesystem library 3059 if test x$enable_filesystem = xyes; then 3060 case $ARCH in 3061 android) 3062 AC_DEFINE(SDL_FILESYSTEM_ANDROID, 1, [ ]) 3063 SOURCES="$SOURCES $srcdir/src/filesystem/android/*.c" 3064 have_filesystem=yes 3065 ;; 3066 *) 3067 AC_DEFINE(SDL_FILESYSTEM_UNIX, 1, [ ]) 3068 SOURCES="$SOURCES $srcdir/src/filesystem/unix/*.c" 3069 have_filesystem=yes 3070 ;; 3071 esac 3072 fi 3073 # Set up files for the timer library 3074 if test x$enable_timers = xyes; then 3075 AC_DEFINE(SDL_TIMER_UNIX, 1, [ ]) 3076 SOURCES="$SOURCES $srcdir/src/timer/unix/*.c" 3077 have_timers=yes 3078 fi 3079 # Set up files for udev hotplugging support 3080 if test x$enable_libudev = xyes && test x$have_libudev_h_hdr = xyes; then 3081 SOURCES="$SOURCES $srcdir/src/core/linux/SDL_udev.c" 3082 fi 3083 # Set up files for evdev input 3084 if test x$use_input_events = xyes; then 3085 SOURCES="$SOURCES $srcdir/src/core/linux/SDL_evdev.c" 3086 fi 3087 ;; 3088 *-*-cygwin* | *-*-mingw32*) 3089 ARCH=win32 3090 if test "$build" != "$host"; then # cross-compiling 3091 # Default cross-compile location 3092 ac_default_prefix=/usr/local/cross-tools/$host 3093 else 3094 # Look for the location of the tools and install there 3095 if test "$BUILD_PREFIX" != ""; then 3096 ac_default_prefix=$BUILD_PREFIX 3097 fi 3098 fi 3099 CheckDummyVideo 3100 CheckDiskAudio 3101 CheckDummyAudio 3102 CheckWINDOWS 3103 CheckWINDOWSGL 3104 CheckWINDOWSGLES 3105 CheckDIRECTX 3106 3107 # Set up the core platform files 3108 SOURCES="$SOURCES $srcdir/src/core/windows/*.c" 3109 3110 # Set up files for the video library 3111 if test x$enable_video = xyes; then 3112 AC_DEFINE(SDL_VIDEO_DRIVER_WINDOWS, 1, [ ]) 3113 SOURCES="$SOURCES $srcdir/src/video/windows/*.c" 3114 have_video=yes 3115 AC_ARG_ENABLE(render-d3d, 3116AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[default=yes]]]), 3117 , enable_render_d3d=yes) 3118 if test x$enable_render_d3d = xyes -a x$have_d3d = xyes; then 3119 AC_DEFINE(SDL_VIDEO_RENDER_D3D, 1, [ ]) 3120 fi 3121 if test x$enable_render_d3d = xyes -a x$have_d3d11 = xyes; then 3122 AC_DEFINE(SDL_VIDEO_RENDER_D3D11, 1, [ ]) 3123 fi 3124 fi 3125 # Set up files for the audio library 3126 if test x$enable_audio = xyes; then 3127 AC_DEFINE(SDL_AUDIO_DRIVER_WINMM, 1, [ ]) 3128 SOURCES="$SOURCES $srcdir/src/audio/winmm/*.c" 3129 if test x$have_dsound = xyes; then 3130 AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND, 1, [ ]) 3131 SOURCES="$SOURCES $srcdir/src/audio/directsound/*.c" 3132 fi 3133 if test x$have_xaudio2 = xyes; then 3134 AC_DEFINE(SDL_AUDIO_DRIVER_XAUDIO2, 1, [ ]) 3135 SOURCES="$SOURCES $srcdir/src/audio/xaudio2/*.c" 3136 fi 3137 have_audio=yes 3138 fi 3139 # Set up files for the joystick library 3140 if test x$enable_joystick = xyes; then 3141 if test x$have_dinput = xyes -o x$have_xinput = xyes; then 3142 if test x$have_xinput = xyes; then 3143 AC_DEFINE(SDL_JOYSTICK_XINPUT, 1, [ ]) 3144 fi 3145 if test x$have_dinput = xyes; then 3146 AC_DEFINE(SDL_JOYSTICK_DINPUT, 1, [ ]) 3147 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldinput8 -ldxguid -ldxerr8" 3148 fi 3149 else 3150 AC_DEFINE(SDL_JOYSTICK_WINMM, 1, [ ]) 3151 fi 3152 SOURCES="$SOURCES $srcdir/src/joystick/windows/*.c" 3153 have_joystick=yes 3154 fi 3155 if test x$enable_haptic = xyes; then 3156 if test x$have_dinput = xyes -o x$have_xinput = xyes; then 3157 if test x$have_xinput = xyes; then 3158 AC_DEFINE(SDL_HAPTIC_XINPUT, 1, [ ]) 3159 fi 3160 if test x$have_dinput = xyes; then 3161 AC_DEFINE(SDL_HAPTIC_DINPUT, 1, [ ]) 3162 fi 3163 SOURCES="$SOURCES $srcdir/src/haptic/windows/*.c" 3164 have_haptic=yes 3165 fi 3166 fi 3167 if test x$enable_power = xyes; then 3168 AC_DEFINE(SDL_POWER_WINDOWS, 1, [ ]) 3169 SOURCES="$SOURCES $srcdir/src/power/windows/SDL_syspower.c" 3170 have_power=yes 3171 fi 3172 if test x$enable_filesystem = xyes; then 3173 AC_DEFINE(SDL_FILESYSTEM_WINDOWS, 1, [ ]) 3174 SOURCES="$SOURCES $srcdir/src/filesystem/windows/SDL_sysfilesystem.c" 3175 have_filesystem=yes 3176 fi 3177 # Set up files for the thread library 3178 if test x$enable_threads = xyes; then 3179 AC_DEFINE(SDL_THREAD_WINDOWS, 1, [ ]) 3180 SOURCES="$SOURCES $srcdir/src/thread/windows/*.c" 3181 SOURCES="$SOURCES $srcdir/src/thread/generic/SDL_syscond.c" 3182 have_threads=yes 3183 fi 3184 # Set up files for the timer library 3185 if test x$enable_timers = xyes; then 3186 AC_DEFINE(SDL_TIMER_WINDOWS, 1, [ ]) 3187 SOURCES="$SOURCES $srcdir/src/timer/windows/*.c" 3188 have_timers=yes 3189 fi 3190 # Set up files for the shared object loading library 3191 if test x$enable_loadso = xyes; then 3192 AC_DEFINE(SDL_LOADSO_WINDOWS, 1, [ ]) 3193 SOURCES="$SOURCES $srcdir/src/loadso/windows/*.c" 3194 have_loadso=yes 3195 fi 3196 # Set up the system libraries we need 3197 if test -f /lib/w32api/libuuid.a; then 3198 LIBUUID=/lib/w32api/libuuid.a 3199 else 3200 LIBUUID=-luuid 3201 fi 3202 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion $LIBUUID -static-libgcc" 3203 # The Windows platform requires special setup 3204 VERSION_SOURCES="$srcdir/src/main/windows/*.rc" 3205 SDLMAIN_SOURCES="$srcdir/src/main/windows/*.c" 3206 SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main" 3207 SDL_LIBS="-lSDL2main $SDL_LIBS -mwindows" 3208 3209 # Check to see if this is a mingw or cygwin build 3210 have_mingw32= 3211 AC_CHECK_LIB(mingw32, main, [have_mingw32=yes]) 3212 if test x$have_mingw32 = xyes; then 3213 SDL_LIBS="-lmingw32 $SDL_LIBS" 3214 else 3215 SDL_LIBS="-lcygwin $SDL_LIBS" 3216 fi 3217 ;; 3218 3219 dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan. 3220 *-*-beos*) 3221 AC_MSG_ERROR([ 3222*** BeOS support has been removed as of SDL 2.0.2. 3223 ]) 3224 ;; 3225 3226 *-*-haiku*) 3227 ARCH=haiku 3228 ac_default_prefix=/boot/system 3229 CheckDummyVideo 3230 CheckDiskAudio 3231 CheckDummyAudio 3232 CheckHaikuVideo 3233 CheckHaikuGL 3234 CheckPTHREAD 3235 3236 # Set up files for the audio library 3237 if test x$enable_audio = xyes; then 3238 AC_DEFINE(SDL_AUDIO_DRIVER_HAIKU, 1, [ ]) 3239 SOURCES="$SOURCES $srcdir/src/audio/haiku/*.cc" 3240 have_audio=yes 3241 fi 3242 # Set up files for the joystick library 3243 if test x$enable_joystick = xyes; then 3244 AC_DEFINE(SDL_JOYSTICK_HAIKU, 1, [ ]) 3245 SOURCES="$SOURCES $srcdir/src/joystick/haiku/*.cc" 3246 have_joystick=yes 3247 fi 3248 # Set up files for the timer library 3249 if test x$enable_timers = xyes; then 3250 AC_DEFINE(SDL_TIMER_HAIKU, 1, [ ]) 3251 SOURCES="$SOURCES $srcdir/src/timer/haiku/*.c" 3252 have_timers=yes 3253 fi 3254 # Set up files for the shared object loading library 3255 if test x$enable_loadso = xyes; then 3256 AC_DEFINE(SDL_LOADSO_HAIKU, 1, [ ]) 3257 SOURCES="$SOURCES $srcdir/src/loadso/haiku/*.c" 3258 have_loadso=yes 3259 fi 3260 # Set up files for the system power library 3261 if test x$enable_power = xyes; then 3262 AC_DEFINE(SDL_POWER_HAIKU, 1, [ ]) 3263 SOURCES="$SOURCES $srcdir/src/power/haiku/*.c" 3264 have_power=yes 3265 fi 3266 # Set up files for the system filesystem library 3267 if test x$enable_filesystem = xyes; then 3268 AC_DEFINE(SDL_FILESYSTEM_HAIKU, 1, [ ]) 3269 SOURCES="$SOURCES $srcdir/src/filesystem/haiku/*.cc" 3270 have_filesystem=yes 3271 fi 3272 # The Haiku platform requires special setup. 3273 SOURCES="$srcdir/src/main/haiku/*.cc $SOURCES" 3274 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding" 3275 ;; 3276 arm*-apple-darwin*) 3277 # iOS - We are not writing anything to confdefs.h because you have to replace 3278 # SDL_config.h for SDL_config_iphoneos.h anyway 3279 ARCH=ios 3280 3281 CheckVisibilityHidden 3282 CheckDeclarationAfterStatement 3283 CheckDummyVideo 3284 CheckDiskAudio 3285 CheckDummyAudio 3286 CheckDLOPEN 3287 CheckCOCOA 3288 CheckPTHREAD 3289 3290 3291 # Set up files for the audio library 3292 if test x$enable_audio = xyes; then 3293 SOURCES="$SOURCES $srcdir/src/audio/coreaudio/*.m" 3294 SUMMARY_audio="${SUMMARY_audio} coreaudio" 3295 have_audio=yes 3296 fi 3297 # Set up files for the joystick library 3298 if test x$enable_joystick = xyes; then 3299 SOURCES="$SOURCES $srcdir/src/joystick/iphoneos/*.m" 3300 have_joystick=yes 3301 fi 3302 # Set up files for the haptic library 3303 #if test x$enable_haptic = xyes; then 3304 # SOURCES="$SOURCES $srcdir/src/haptic/darwin/*.c" 3305 # have_haptic=yes 3306 # EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,ForceFeedback" 3307 #fi 3308 # Set up files for the power library 3309 if test x$enable_power = xyes; then 3310 SOURCES="$SOURCES $srcdir/src/power/uikit/*.m" 3311 have_power=yes 3312 fi 3313 # Set up files for the filesystem library 3314 if test x$enable_filesystem = xyes; then 3315 SOURCES="$SOURCES $srcdir/src/filesystem/cocoa/*.m" 3316 have_filesystem=yes 3317 fi 3318 # Set up files for the timer library 3319 if test x$enable_timers = xyes; then 3320 SOURCES="$SOURCES $srcdir/src/timer/unix/*.c" 3321 have_timers=yes 3322 fi 3323 # Set up additional files for the file library 3324 if test x$enable_file = xyes; then 3325 SOURCES="$SOURCES $srcdir/src/file/cocoa/*.m" 3326 fi 3327 # The iOS platform requires special setup. 3328 SOURCES="$SOURCES $srcdir/src/video/uikit/*.m" 3329 EXTRA_CFLAGS="$EXTRA_CFLAGS -fpascal-strings" 3330 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm -liconv -lobjc" 3331 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Foundation" 3332 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,UIKit" 3333 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,OpenGLES" 3334 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,QuartzCore" 3335 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreAudio" 3336 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AudioToolbox" 3337 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreGraphics" 3338 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreMotion" 3339 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,GameController" 3340 ;; 3341 *-*-darwin* ) 3342 # This could be either full "Mac OS X", or plain "Darwin" which is 3343 # just the OS X kernel sans upper layers like Carbon and Cocoa. 3344 # Next line is broken, and a few files below require Mac OS X (full) 3345 ARCH=macosx 3346 3347 # Mac OS X builds with both the Carbon and OSX APIs at the moment 3348 EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_CARBON" 3349 EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_OSX" 3350 3351 CheckVisibilityHidden 3352 CheckDeclarationAfterStatement 3353 CheckDummyVideo 3354 CheckDiskAudio 3355 CheckDummyAudio 3356 CheckDLOPEN 3357 CheckCOCOA 3358 CheckX11 3359 CheckMacGL 3360 CheckOpenGLX11 3361 CheckPTHREAD 3362 3363 # Set up files for the audio library 3364 if test x$enable_audio = xyes; then 3365 AC_DEFINE(SDL_AUDIO_DRIVER_COREAUDIO, 1, [ ]) 3366 SOURCES="$SOURCES $srcdir/src/audio/coreaudio/*.m" 3367 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox" 3368 SUMMARY_audio="${SUMMARY_audio} coreaudio" 3369 have_audio=yes 3370 fi 3371 # Set up files for the joystick library 3372 if test x$enable_joystick = xyes; then 3373 AC_DEFINE(SDL_JOYSTICK_IOKIT, 1, [ ]) 3374 SOURCES="$SOURCES $srcdir/src/joystick/darwin/*.c" 3375 have_joystick=yes 3376 fi 3377 # Set up files for the haptic library 3378 if test x$enable_haptic = xyes; then 3379 AC_DEFINE(SDL_HAPTIC_IOKIT, 1, [ ]) 3380 SOURCES="$SOURCES $srcdir/src/haptic/darwin/*.c" 3381 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,ForceFeedback" 3382 have_haptic=yes 3383 fi 3384 # Set up files for the power library 3385 if test x$enable_power = xyes; then 3386 AC_DEFINE(SDL_POWER_MACOSX, 1, [ ]) 3387 SOURCES="$SOURCES $srcdir/src/power/macosx/*.c" 3388 have_power=yes 3389 fi 3390 # Set up files for the filesystem library 3391 if test x$enable_filesystem = xyes; then 3392 AC_DEFINE(SDL_FILESYSTEM_COCOA, 1, [ ]) 3393 SOURCES="$SOURCES $srcdir/src/filesystem/cocoa/*.m" 3394 have_filesystem=yes 3395 fi 3396 # Set up files for the timer library 3397 if test x$enable_timers = xyes; then 3398 AC_DEFINE(SDL_TIMER_UNIX, 1, [ ]) 3399 SOURCES="$SOURCES $srcdir/src/timer/unix/*.c" 3400 have_timers=yes 3401 fi 3402 # Set up additional files for the file library 3403 if test x$enable_file = xyes; then 3404 SOURCES="$SOURCES $srcdir/src/file/cocoa/*.m" 3405 fi 3406 # The Mac OS X platform requires special setup. 3407 EXTRA_CFLAGS="$EXTRA_CFLAGS -fpascal-strings" 3408 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lobjc" 3409 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,CoreVideo" 3410 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Cocoa" 3411 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Carbon" 3412 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,IOKit" 3413 ;; 3414 *-nacl|*-pnacl) 3415 ARCH=nacl 3416 CheckNativeClient 3417 CheckDummyAudio 3418 CheckDummyVideo 3419 CheckInputEvents 3420 CheckPTHREAD 3421 3422 # Set up files for the timer library 3423 if test x$enable_timers = xyes; then 3424 AC_DEFINE(SDL_TIMER_UNIX) 3425 SOURCES="$SOURCES $srcdir/src/timer/unix/*.c" 3426 have_timers=yes 3427 fi 3428 3429 if test x$enable_filesystem = xyes; then 3430 AC_DEFINE(SDL_FILESYSTEM_NACL, 1, [ ]) 3431 SOURCES="$SOURCES $srcdir/src/filesystem/nacl/*.c" 3432 have_filesystem=yes 3433 fi 3434 ;; 3435 *-*-emscripten* ) 3436 if test x$enable_video = xyes; then 3437 AC_DEFINE(SDL_VIDEO_DRIVER_EMSCRIPTEN, 1, [ ]) 3438 SOURCES="$SOURCES $srcdir/src/video/emscripten/*.c" 3439 have_video=yes 3440 SUMMARY_video="${SUMMARY_video} emscripten" 3441 fi 3442 3443 if test x$enable_audio = xyes; then 3444 AC_DEFINE(SDL_AUDIO_DRIVER_EMSCRIPTEN, 1, [ ]) 3445 SOURCES="$SOURCES $srcdir/src/audio/emscripten/*.c" 3446 have_audio=yes 3447 SUMMARY_audio="${SUMMARY_audio} emscripten" 3448 fi 3449 3450 CheckVisibilityHidden 3451 CheckDeclarationAfterStatement 3452 CheckDummyVideo 3453 CheckDiskAudio 3454 CheckDummyAudio 3455 CheckDLOPEN 3456 CheckClockGettime 3457 CheckEmscriptenGLES 3458 3459 # Set up files for the power library 3460 if test x$enable_power = xyes; then 3461 AC_DEFINE(SDL_POWER_EMSCRIPTEN, 1, [ ]) 3462 SOURCES="$SOURCES $srcdir/src/power/emscripten/*.c" 3463 have_power=yes 3464 fi 3465 3466 # Set up files for the power library 3467 if test x$enable_joystick = xyes; then 3468 AC_DEFINE(SDL_JOYSTICK_EMSCRIPTEN, 1, [ ]) 3469 SOURCES="$SOURCES $srcdir/src/joystick/emscripten/*.c" 3470 have_joystick=yes 3471 fi 3472 3473 # Set up files for the filesystem library 3474 if test x$enable_filesystem = xyes; then 3475 AC_DEFINE(SDL_FILESYSTEM_EMSCRIPTEN, 1, [ ]) 3476 SOURCES="$SOURCES $srcdir/src/filesystem/emscripten/*.c" 3477 have_filesystem=yes 3478 fi 3479 # Set up files for the timer library 3480 if test x$enable_timers = xyes; then 3481 AC_DEFINE(SDL_TIMER_UNIX, 1, [ ]) 3482 SOURCES="$SOURCES $srcdir/src/timer/unix/*.c" 3483 have_timers=yes 3484 fi 3485 ;; 3486 *) 3487 AC_MSG_ERROR([ 3488*** Unsupported host: Please add to configure.in 3489 ]) 3490 ;; 3491esac 3492 3493# Verify that we have all the platform specific files we need 3494 3495if test x$have_joystick != xyes; then 3496 if test x$enable_joystick = xyes; then 3497 AC_DEFINE(SDL_JOYSTICK_DISABLED, 1, [ ]) 3498 fi 3499 SOURCES="$SOURCES $srcdir/src/joystick/dummy/*.c" 3500fi 3501if test x$have_haptic != xyes; then 3502 if test x$enable_haptic = xyes; then 3503 AC_DEFINE(SDL_HAPTIC_DISABLED, 1, [ ]) 3504 fi 3505 SOURCES="$SOURCES $srcdir/src/haptic/dummy/*.c" 3506fi 3507if test x$have_threads != xyes; then 3508 if test x$enable_threads = xyes; then 3509 AC_DEFINE(SDL_THREADS_DISABLED, 1, [ ]) 3510 fi 3511 SOURCES="$SOURCES $srcdir/src/thread/generic/*.c" 3512fi 3513if test x$have_timers != xyes; then 3514 if test x$enable_timers = xyes; then 3515 AC_DEFINE(SDL_TIMERS_DISABLED, 1, [ ]) 3516 fi 3517 SOURCES="$SOURCES $srcdir/src/timer/dummy/*.c" 3518fi 3519if test x$have_filesystem != xyes; then 3520 if test x$enable_filesystem = xyes; then 3521 AC_DEFINE(SDL_FILESYSTEM_DISABLED, 1, [ ]) 3522 fi 3523 SOURCES="$SOURCES $srcdir/src/filesystem/dummy/*.c" 3524fi 3525if test x$have_loadso != xyes; then 3526 if test x$enable_loadso = xyes; then 3527 AC_DEFINE(SDL_LOADSO_DISABLED, 1, [ ]) 3528 fi 3529 SOURCES="$SOURCES $srcdir/src/loadso/dummy/*.c" 3530fi 3531if test x$SDLMAIN_SOURCES = x; then 3532 SDLMAIN_SOURCES="$srcdir/src/main/dummy/*.c" 3533fi 3534SDLTEST_SOURCES="$srcdir/src/test/*.c" 3535 3536if test x$video_wayland = xyes; then 3537 WAYLAND_CORE_PROTOCOL_SOURCE='$(gen)/wayland-protocol.c' 3538 WAYLAND_CORE_PROTOCOL_HEADER='$(gen)/wayland-client-protocol.h' 3539 WAYLAND_PROTOCOLS_UNSTABLE_SOURCES=`echo $WAYLAND_PROTOCOLS_UNSTABLE |\ 3540 sed 's,[[^ ]]\+,\\$(gen)/&-protocol.c,g'` 3541 WAYLAND_PROTOCOLS_UNSTABLE_HEADERS=`echo $WAYLAND_PROTOCOLS_UNSTABLE |\ 3542 sed 's,[[^ ]]\+,\\$(gen)/&-client-protocol.h,g'` 3543 GEN_SOURCES="$GEN_SOURCES $WAYLAND_CORE_PROTOCOL_SOURCE $WAYLAND_PROTOCOLS_UNSTABLE_SOURCES" 3544 GEN_HEADERS="$GEN_HEADERS $WAYLAND_CORE_PROTOCOL_HEADER $WAYLAND_PROTOCOLS_UNSTABLE_HEADERS" 3545 3546 WAYLAND_CORE_PROTOCOL_SOURCE_DEPENDS=" 3547$WAYLAND_CORE_PROTOCOL_SOURCE: $WAYLAND_CORE_PROTOCOL_DIR/wayland.xml 3548 \$(SHELL) \$(auxdir)/mkinstalldirs \$(gen) 3549 \$(RUN_CMD_GEN)\$(WAYLAND_SCANNER) code \$< \$@" 3550 3551 WAYLAND_CORE_PROTOCOL_HEADER_DEPENDS=" 3552$WAYLAND_CORE_PROTOCOL_HEADER: $WAYLAND_CORE_PROTOCOL_DIR/wayland.xml 3553 \$(SHELL) \$(auxdir)/mkinstalldirs \$(gen) 3554 \$(RUN_CMD_GEN)\$(WAYLAND_SCANNER) client-header \$< \$@" 3555 3556 WAYLAND_CORE_PROTOCOL_OBJECT=" 3557\$(objects)/`echo $WAYLAND_CORE_PROTOCOL_SOURCE | sed 's/\$(gen)\/\(.*\).c$/\1.lo/'`: $WAYLAND_CORE_PROTOCOL_SOURCE 3558 \$(RUN_CMD_CC)\$(LIBTOOL) --tag=CC --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \$< -o \$@" 3559 3560 WAYLAND_PROTOCOLS_CLIENT_HEADER_UNSTABLE_DEPENDS=`for p in $WAYLAND_PROTOCOLS_UNSTABLE;\ 3561 do echo ; echo \$p | sed\ 3562 "s,^\\([[a-z\\-]]\\+\\)-unstable-\\(v[[0-9]]\+\\)\$,\\$(gen)/&-client-protocol.h: $WAYLAND_PROTOCOLS_DIR/unstable/\1/&.xml\\\\ 3563 \\$(SHELL) \\$(auxdir)/mkinstalldirs \\$(gen)\\\\ 3564 \\$(RUN_CMD_GEN)\\$(WAYLAND_SCANNER) client-header \\$< \\$@," ; done` 3565 3566 WAYLAND_PROTOCOLS_CODE_UNSTABLE_DEPENDS=`for p in $WAYLAND_PROTOCOLS_UNSTABLE;\ 3567 do echo ; echo \$p | sed\ 3568 "s,^\\([[a-z\\-]]\\+\\)-unstable-\\(v[[0-9]]\+\\)\$,\\$(gen)/&-protocol.c: $WAYLAND_PROTOCOLS_DIR/unstable/\1/&.xml\\\\ 3569 \\$(SHELL) \\$(auxdir)/mkinstalldirs \\$(gen)\\\\ 3570 \\$(RUN_CMD_GEN)\\$(WAYLAND_SCANNER) code \\$< \\$@," ; done` 3571 3572 WAYLAND_PROTOCOLS_OBJECTS_UNSTABLE=`for p in $WAYLAND_PROTOCOLS_UNSTABLE;\ 3573 do echo ; echo \$p | sed\ 3574 "s,^\\([[a-z\\-]]\\+\\)-unstable-\\(v[[0-9]]\+\\)\$,\\\$(objects)/&-protocol.lo: \\$(gen)/&-protocol.c \\$(gen)/&-client-protocol.h\\\\ 3575 \\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@," ; done` 3576 3577 WAYLAND_PROTOCOLS_DEPENDS=" 3578$WAYLAND_CORE_PROTOCOL_SOURCE_DEPENDS 3579$WAYLAND_CORE_PROTOCOL_HEADER_DEPENDS 3580$WAYLAND_CORE_PROTOCOL_OBJECT 3581$WAYLAND_PROTOCOLS_CLIENT_HEADER_UNSTABLE_DEPENDS 3582$WAYLAND_PROTOCOLS_CODE_UNSTABLE_DEPENDS 3583$WAYLAND_PROTOCOLS_OBJECTS_UNSTABLE 3584" 3585fi 3586 3587OBJECTS=`echo $SOURCES` 3588DEPENDS=`echo $SOURCES | tr ' ' '\n'` 3589for EXT in asm cc m c S; do 3590 OBJECTS=`echo "$OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.'$EXT',$(objects)/\1.lo,g'` 3591 DEPENDS=`echo "$DEPENDS" | sed "s,^\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.$EXT\\$,\\\\ 3592\\$(objects)/\\2.lo: \\1/\\2.$EXT\\\\ 3593 \\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"` 3594done 3595 3596GEN_OBJECTS=`echo "$GEN_SOURCES" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'` 3597 3598VERSION_OBJECTS=`echo $VERSION_SOURCES` 3599VERSION_DEPENDS=`echo $VERSION_SOURCES` 3600VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'` 3601VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.rc,\\\\ 3602\\$(objects)/\\2.o: \\1/\\2.rc\\\\ 3603 \\$(WINDRES) \\$< \\$@,g"` 3604 3605SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES` 3606SDLMAIN_DEPENDS=`echo $SDLMAIN_SOURCES` 3607SDLMAIN_OBJECTS=`echo "$SDLMAIN_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.o,g'` 3608SDLMAIN_DEPENDS=`echo "$SDLMAIN_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\ 3609\\$(objects)/\\2.o: \\1/\\2.c\\\\ 3610 \\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"` 3611 3612SDLTEST_OBJECTS=`echo $SDLTEST_SOURCES` 3613SDLTEST_DEPENDS=`echo $SDLTEST_SOURCES` 3614SDLTEST_OBJECTS=`echo "$SDLTEST_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.o,g'` 3615SDLTEST_DEPENDS=`echo "$SDLTEST_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\ 3616\\$(objects)/\\2.o: \\1/\\2.c\\\\ 3617 \\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"` 3618 3619# Set runtime shared library paths as needed 3620 3621if test "x$enable_rpath" = "xyes"; then 3622 if test $ARCH = bsdi -o $ARCH = freebsd -o $ARCH = linux -o $ARCH = netbsd; then 3623 SDL_RLD_FLAGS="-Wl,-rpath,\${libdir}" 3624 3625 AC_MSG_CHECKING(for linker option --enable-new-dtags) 3626 have_enable_new_dtags=no 3627 save_LDFLAGS="$LDFLAGS" 3628 LDFLAGS="$LDFLAGS -Wl,--enable-new-dtags" 3629 AC_TRY_LINK([ 3630 ],[ 3631 ],[ 3632 have_enable_new_dtags=yes 3633 SDL_RLD_FLAGS="$SDL_RLD_FLAGS -Wl,--enable-new-dtags" 3634 ]) 3635 LDFLAGS="$save_LDFLAGS" 3636 AC_MSG_RESULT($have_enable_new_dtags) 3637 fi 3638 if test $ARCH = solaris; then 3639 SDL_RLD_FLAGS="-R\${libdir}" 3640 fi 3641else 3642 SDL_RLD_FLAGS="" 3643fi 3644 3645SDL_STATIC_LIBS="$SDL_LIBS $EXTRA_LDFLAGS" 3646 3647dnl Expand the cflags and libraries needed by apps using SDL 3648AC_SUBST(SDL_CFLAGS) 3649AC_SUBST(SDL_LIBS) 3650AC_SUBST(SDL_STATIC_LIBS) 3651AC_SUBST(SDL_RLD_FLAGS) 3652if test x$enable_shared = xyes; then 3653 ENABLE_SHARED_TRUE= 3654 ENABLE_SHARED_FALSE="#" 3655else 3656 ENABLE_SHARED_TRUE="#" 3657 ENABLE_SHARED_FALSE= 3658fi 3659if test x$enable_static = xyes; then 3660 ENABLE_STATIC_TRUE= 3661 ENABLE_STATIC_FALSE="#" 3662else 3663 ENABLE_STATIC_TRUE="#" 3664 ENABLE_STATIC_FALSE= 3665fi 3666AC_SUBST(ENABLE_SHARED_TRUE) 3667AC_SUBST(ENABLE_SHARED_FALSE) 3668AC_SUBST(ENABLE_STATIC_TRUE) 3669AC_SUBST(ENABLE_STATIC_FALSE) 3670 3671dnl Expand the sources and objects needed to build the library 3672AC_SUBST(ac_aux_dir) 3673AC_SUBST(INCLUDE) 3674AC_SUBST(OBJECTS) 3675AC_SUBST(GEN_HEADERS) 3676AC_SUBST(GEN_OBJECTS) 3677AC_SUBST(VERSION_OBJECTS) 3678AC_SUBST(SDLMAIN_OBJECTS) 3679AC_SUBST(SDLTEST_OBJECTS) 3680AC_SUBST(BUILD_CFLAGS) 3681AC_SUBST(EXTRA_CFLAGS) 3682AC_SUBST(BUILD_LDFLAGS) 3683AC_SUBST(EXTRA_LDFLAGS) 3684AC_SUBST(WINDRES) 3685AC_SUBST(WAYLAND_SCANNER) 3686 3687cat >Makefile.rules <<__EOF__ 3688 3689# Build rules for objects 3690-include \$(OBJECTS:.lo=.d) 3691 3692# Special dependency for SDL.c, since it depends on SDL_revision.h 3693$srcdir/src/SDL.c: update-revision 3694$DEPENDS 3695$VERSION_DEPENDS 3696$SDLMAIN_DEPENDS 3697$SDLTEST_DEPENDS 3698$WAYLAND_PROTOCOLS_DEPENDS 3699__EOF__ 3700 3701AC_CONFIG_FILES([ 3702 Makefile:Makefile.in:Makefile.rules sdl2-config sdl2-config.cmake SDL2.spec sdl2.pc 3703]) 3704AC_CONFIG_COMMANDS([sdl2_config],[chmod a+x sdl2-config]) 3705 3706SUMMARY="SDL2 Configure Summary:\n" 3707if test x$enable_shared = xyes; then 3708 SUMMARY="${SUMMARY}Building Shared Libraries\n" 3709fi 3710if test x$enable_static = xyes; then 3711 SUMMARY="${SUMMARY}Building Static Libraries\n" 3712fi 3713SUMMARY="${SUMMARY}Enabled modules :${SUMMARY_modules}\n" 3714SUMMARY="${SUMMARY}Assembly Math :${SUMMARY_math}\n" 3715SUMMARY="${SUMMARY}Audio drivers :${SUMMARY_audio}\n" 3716SUMMARY="${SUMMARY}Video drivers :${SUMMARY_video}\n" 3717if test x$have_x = xyes; then 3718 SUMMARY="${SUMMARY}X11 libraries :${SUMMARY_video_x11}\n" 3719fi 3720SUMMARY="${SUMMARY}Input drivers :${SUMMARY_input}\n" 3721if test x$enable_libudev = xyes; then 3722 SUMMARY="${SUMMARY}Using libudev : YES\n" 3723else 3724 SUMMARY="${SUMMARY}Using libudev : NO\n" 3725fi 3726if test x$have_dbus_dbus_h_hdr = xyes; then 3727 SUMMARY="${SUMMARY}Using dbus : YES\n" 3728else 3729 SUMMARY="${SUMMARY}Using dbus : NO\n" 3730fi 3731if test x$enable_ime = xyes; then 3732 SUMMARY="${SUMMARY}Using ime : YES\n" 3733else 3734 SUMMARY="${SUMMARY}Using ime : NO\n" 3735fi 3736if test x$have_ibus_ibus_h_hdr = xyes; then 3737 SUMMARY="${SUMMARY}Using ibus : YES\n" 3738else 3739 SUMMARY="${SUMMARY}Using ibus : NO\n" 3740fi 3741if test x$have_fcitx_frontend_h_hdr = xyes; then 3742 SUMMARY="${SUMMARY}Using fcitx : YES\n" 3743else 3744 SUMMARY="${SUMMARY}Using fcitx : NO\n" 3745fi 3746AC_CONFIG_COMMANDS([summary], [echo -en "$SUMMARY"], [SUMMARY="$SUMMARY"]) 3747 3748AC_OUTPUT 3749