1 dnl Process this file with autoconf to create configure. 2 3 AC_PREREQ([2.60]) 4 5 dnl Tell the user about autoconf.html in the --help output 6 m4_divert_once([HELP_END], [ 7 See docs/autoconf.html for more details on the options for Mesa.]) 8 9 AC_INIT([Mesa], [9.0.3], 10 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa]) 11 AC_CONFIG_AUX_DIR([bin]) 12 AC_CONFIG_MACRO_DIR([m4]) 13 AC_CANONICAL_HOST 14 AM_INIT_AUTOMAKE([foreign]) 15 16 dnl http://people.gnome.org/~walters/docs/build-api.txt 17 dnl We don't support srcdir != builddir. 18 echo \#buildapi-variable-no-builddir >/dev/null 19 20 # Support silent build rules, requires at least automake-1.11. Disable 21 # by either passing --disable-silent-rules to configure or passing V=1 22 # to make 23 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 24 25 m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) 26 27 LT_PREREQ([2.2]) 28 LT_INIT([disable-static]) 29 30 dnl Set internal versions 31 OSMESA_VERSION=8 32 AC_SUBST([OSMESA_VERSION]) 33 34 dnl Versions for external dependencies 35 LIBDRM_REQUIRED=2.4.24 36 LIBDRM_RADEON_REQUIRED=2.4.39 37 LIBDRM_INTEL_REQUIRED=2.4.38 38 LIBDRM_NVVIEUX_REQUIRED=2.4.33 39 LIBDRM_NOUVEAU_REQUIRED=2.4.33 40 DRI2PROTO_REQUIRED=2.6 41 GLPROTO_REQUIRED=1.4.14 42 LIBDRM_XORG_REQUIRED=2.4.24 43 LIBKMS_XORG_REQUIRED=1.0.0 44 45 dnl Check for progs 46 AC_PROG_CPP 47 AC_PROG_CC 48 AC_PROG_CXX 49 AM_PROG_CC_C_O 50 AM_PROG_AS 51 AC_CHECK_PROGS([MAKE], [gmake make]) 52 AC_CHECK_PROGS([PYTHON2], [python2 python]) 53 AX_PYTHON_MODULE([libxml2], [needed]) 54 AC_PROG_SED 55 AC_PROG_MKDIR_P 56 AC_PATH_PROG([MKDEP], [makedepend]) 57 58 if test "x$MKDEP" = "x"; then 59 AC_MSG_ERROR([makedepend is required to build Mesa]) 60 fi 61 62 AC_PROG_YACC 63 AC_PATH_PROG([YACC_INST], $YACC) 64 if test ! -f "$srcdir/src/glsl/glcpp/glcpp-parse.c"; then 65 if test -z "$YACC_INST"; then 66 AC_MSG_ERROR([yacc not found - unable to compile glcpp-parse.y]) 67 fi 68 fi 69 AC_PROG_LEX 70 71 AC_PATH_PROG([PERL], [perl]) 72 73 AC_CHECK_PROG(INDENT, indent, indent, cat) 74 if test "x$INDENT" != "xcat"; then 75 AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -T GLubyte -T GLbyte -T Bool') 76 fi 77 78 dnl Our fallback install-sh is a symlink to minstall. Use the existing 79 dnl configuration in that case. 80 AC_PROG_INSTALL 81 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)' 82 83 dnl We need a POSIX shell for parts of the build. Assume we have one 84 dnl in most cases. 85 case "$host_os" in 86 solaris*) 87 # Solaris /bin/sh is too old/non-POSIX compliant 88 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh]) 89 SHELL="$POSIX_SHELL" 90 ;; 91 esac 92 93 dnl clang is mostly GCC-compatible, but its version is much lower, 94 dnl so we have to check for it. 95 AC_MSG_CHECKING([if compiling with clang]) 96 97 AC_COMPILE_IFELSE( 98 [AC_LANG_PROGRAM([], [[ 99 #ifndef __clang__ 100 not clang 101 #endif 102 ]])], 103 [acv_mesa_CLANG=yes], [acv_mesa_CLANG=no]) 104 105 AC_MSG_RESULT([$acv_mesa_CLANG]) 106 107 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older 108 dnl versions are explictly not supported. 109 if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then 110 AC_MSG_CHECKING([whether gcc version is sufficient]) 111 major=0 112 minor=0 113 114 GCC_VERSION=`$CC -dumpversion` 115 if test $? -eq 0; then 116 GCC_VERSION_MAJOR=`echo $GCC_VERSION | cut -d. -f1` 117 GCC_VERSION_MINOR=`echo $GCC_VERSION | cut -d. -f2` 118 fi 119 120 if test $GCC_VERSION_MAJOR -lt 3 -o $GCC_VERSION_MAJOR -eq 3 -a $GCC_VERSION_MINOR -lt 3 ; then 121 AC_MSG_RESULT([no]) 122 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.]) 123 else 124 AC_MSG_RESULT([yes]) 125 fi 126 fi 127 128 129 MKDEP_OPTIONS=-fdepend 130 dnl Ask gcc where it's keeping its secret headers 131 if test "x$GCC" = xyes; then 132 for dir in include include-fixed; do 133 GCC_INCLUDES=`$CC -print-file-name=$dir` 134 if test "x$GCC_INCLUDES" != x && \ 135 test "$GCC_INCLUDES" != "$dir" && \ 136 test -d "$GCC_INCLUDES"; then 137 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES" 138 fi 139 done 140 fi 141 AC_SUBST([MKDEP_OPTIONS]) 142 143 dnl Make sure the pkg-config macros are defined 144 m4_ifndef([PKG_PROG_PKG_CONFIG], 145 [m4_fatal([Could not locate the pkg-config autoconf macros. 146 These are usually located in /usr/share/aclocal/pkg.m4. If your macros 147 are in a different location, try setting the environment variable 148 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])]) 149 PKG_PROG_PKG_CONFIG() 150 151 dnl LIB_DIR - library basename 152 LIB_DIR=`echo $libdir | $SED 's%.*/%%'` 153 AC_SUBST([LIB_DIR]) 154 155 dnl Cache LDFLAGS and CPPFLAGS so we can add to them and restore later 156 _SAVE_LDFLAGS="$LDFLAGS" 157 _SAVE_CPPFLAGS="$CPPFLAGS" 158 159 dnl Compiler macros 160 DEFINES="" 161 AC_SUBST([DEFINES]) 162 case "$host_os" in 163 linux*|*-gnu*|gnu*) 164 DEFINES="$DEFINES -D_GNU_SOURCE -DHAVE_PTHREAD" 165 ;; 166 solaris*) 167 DEFINES="$DEFINES -DHAVE_PTHREAD -DSVR4" 168 ;; 169 cygwin*) 170 DEFINES="$DEFINES -DHAVE_PTHREAD" 171 ;; 172 esac 173 174 dnl Add flags for gcc and g++ 175 if test "x$GCC" = xyes; then 176 CFLAGS="$CFLAGS -Wall -std=c99" 177 178 # Enable -Werror=implicit-function-declaration and 179 # -Werror=missing-prototypes, if available, or otherwise, just 180 # -Wmissing-prototypes. This is particularly useful to avoid 181 # generating a loadable driver module that has undefined symbols. 182 save_CFLAGS="$CFLAGS" 183 AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes]) 184 CFLAGS="$CFLAGS -Werror=implicit-function-declaration" 185 CFLAGS="$CFLAGS -Werror=missing-prototypes" 186 AC_LINK_IFELSE([AC_LANG_PROGRAM()], 187 AC_MSG_RESULT([yes]), 188 [CFLAGS="$save_CFLAGS -Wmissing-prototypes"; 189 AC_MSG_RESULT([no])]); 190 191 # Enable -fvisibility=hidden if using a gcc that supports it 192 save_CFLAGS="$CFLAGS" 193 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden]) 194 VISIBILITY_CFLAGS="-fvisibility=hidden" 195 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS" 196 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]), 197 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]); 198 199 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed. 200 CFLAGS=$save_CFLAGS 201 202 # Work around aliasing bugs - developers should comment this out 203 CFLAGS="$CFLAGS -fno-strict-aliasing" 204 205 # gcc's builtin memcmp is slower than glibc's 206 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052 207 CFLAGS="$CFLAGS -fno-builtin-memcmp" 208 fi 209 if test "x$GXX" = xyes; then 210 CXXFLAGS="$CXXFLAGS -Wall" 211 212 # Enable -fvisibility=hidden if using a gcc that supports it 213 save_CXXFLAGS="$CXXFLAGS" 214 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden]) 215 VISIBILITY_CXXFLAGS="-fvisibility=hidden" 216 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS" 217 AC_LANG_PUSH([C++]) 218 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]), 219 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]); 220 AC_LANG_POP([C++]) 221 222 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed. 223 CXXFLAGS=$save_CXXFLAGS 224 225 # Work around aliasing bugs - developers should comment this out 226 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" 227 228 # gcc's builtin memcmp is slower than glibc's 229 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052 230 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp" 231 fi 232 233 dnl even if the compiler appears to support it, using visibility attributes isn't 234 dnl going to do anything useful currently on cygwin apart from emit lots of warnings 235 case "$host_os" in 236 cygwin*) 237 VISIBILITY_CFLAGS="" 238 VISIBILITY_CXXFLAGS="" 239 ;; 240 esac 241 242 AC_SUBST([VISIBILITY_CFLAGS]) 243 AC_SUBST([VISIBILITY_CXXFLAGS]) 244 245 dnl 246 dnl Hacks to enable 32 or 64 bit build 247 dnl 248 AC_ARG_ENABLE([32-bit], 249 [AS_HELP_STRING([--enable-32-bit], 250 [build 32-bit libraries @<:@default=auto@:>@])], 251 [enable_32bit="$enableval"], 252 [enable_32bit=auto] 253 ) 254 if test "x$enable_32bit" = xyes; then 255 if test "x$GCC" = xyes; then 256 CFLAGS="$CFLAGS -m32" 257 CCASFLAGS="$CCASFLAGS -m32" 258 fi 259 if test "x$GXX" = xyes; then 260 CXXFLAGS="$CXXFLAGS -m32" 261 fi 262 fi 263 AC_ARG_ENABLE([64-bit], 264 [AS_HELP_STRING([--enable-64-bit], 265 [build 64-bit libraries @<:@default=auto@:>@])], 266 [enable_64bit="$enableval"], 267 [enable_64bit=auto] 268 ) 269 if test "x$enable_64bit" = xyes; then 270 if test "x$GCC" = xyes; then 271 CFLAGS="$CFLAGS -m64" 272 fi 273 if test "x$GXX" = xyes; then 274 CXXFLAGS="$CXXFLAGS -m64" 275 fi 276 fi 277 278 dnl Can't have static and shared libraries, default to static if user 279 dnl explicitly requested. If both disabled, set to static since shared 280 dnl was explicitly requested. 281 case "x$enable_static$enable_shared" in 282 xyesyes ) 283 AC_MSG_WARN([Cannot build static and shared libraries, disabling shared]) 284 enable_shared=no 285 ;; 286 xnono ) 287 AC_MSG_WARN([Cannot disable both static and shared libraries, enabling static]) 288 enable_static=yes 289 ;; 290 esac 291 292 AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes) 293 294 dnl 295 dnl mklib options 296 dnl 297 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib]) 298 if test "$enable_static" = yes; then 299 MKLIB_OPTIONS="$MKLIB_OPTIONS -static" 300 fi 301 AC_SUBST([MKLIB_OPTIONS]) 302 303 dnl 304 dnl other compiler options 305 dnl 306 AC_ARG_ENABLE([debug], 307 [AS_HELP_STRING([--enable-debug], 308 [use debug compiler flags and macros @<:@default=disabled@:>@])], 309 [enable_debug="$enableval"], 310 [enable_debug=no] 311 ) 312 if test "x$enable_debug" = xyes; then 313 DEFINES="$DEFINES -DDEBUG" 314 if test "x$GCC" = xyes; then 315 CFLAGS="$CFLAGS -g" 316 fi 317 if test "x$GXX" = xyes; then 318 CXXFLAGS="$CXXFLAGS -g" 319 fi 320 fi 321 322 dnl 323 dnl library names 324 dnl 325 LIB_PREFIX_GLOB='lib' 326 LIB_VERSION_SEPARATOR='.' 327 if test "$enable_static" = yes; then 328 LIB_EXTENSION='a' 329 else 330 case "$host_os" in 331 darwin* ) 332 LIB_EXTENSION='dylib' ;; 333 cygwin* ) 334 dnl prefix can be 'cyg' or 'lib' 335 LIB_PREFIX_GLOB='???' 336 LIB_VERSION_SEPARATOR='-' 337 LIB_EXTENSION='dll' ;; 338 aix* ) 339 LIB_EXTENSION='a' ;; 340 * ) 341 LIB_EXTENSION='so' ;; 342 esac 343 fi 344 AC_ARG_WITH([gl-lib-name], 345 [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@], 346 [specify GL library name @<:@default=GL@:>@])], 347 [GL_LIB=$withval], 348 [GL_LIB=GL]) 349 AC_ARG_WITH([osmesa-lib-name], 350 [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@], 351 [specify OSMesa library name @<:@default=OSMesa@:>@])], 352 [OSMESA_LIB=$withval], 353 [OSMESA_LIB=OSMesa]) 354 AS_IF([test "x$GL_LIB" = xyes], [GL_LIB=GL]) 355 AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa]) 356 357 dnl 358 dnl Mangled Mesa support 359 dnl 360 AC_ARG_ENABLE([mangling], 361 [AS_HELP_STRING([--enable-mangling], 362 [enable mangled symbols and library name @<:@default=disabled@:>@])], 363 [enable_mangling="${enableval}"], 364 [enable_mangling=no] 365 ) 366 if test "x${enable_mangling}" = "xyes" ; then 367 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE" 368 GL_LIB="Mangled${GL_LIB}" 369 OSMESA_LIB="Mangled${OSMESA_LIB}" 370 fi 371 AC_SUBST([GL_LIB]) 372 AC_SUBST([OSMESA_LIB]) 373 374 dnl 375 dnl potentially-infringing-but-nobody-knows-for-sure stuff 376 dnl 377 AC_ARG_ENABLE([texture-float], 378 [AS_HELP_STRING([--enable-texture-float], 379 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])], 380 [enable_texture_float="$enableval"], 381 [enable_texture_float=no] 382 ) 383 if test "x$enable_texture_float" = xyes; then 384 AC_MSG_WARN([Floating-point textures enabled.]) 385 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.]) 386 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED" 387 fi 388 389 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION} 390 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION} 391 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION} 392 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION} 393 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION} 394 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION} 395 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION} 396 397 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' 398 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' 399 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' 400 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' 401 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' 402 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' 403 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' 404 405 AC_SUBST([GL_LIB_NAME]) 406 AC_SUBST([OSMESA_LIB_NAME]) 407 AC_SUBST([EGL_LIB_NAME]) 408 AC_SUBST([GLESv1_CM_LIB_NAME]) 409 AC_SUBST([GLESv2_LIB_NAME]) 410 AC_SUBST([VG_LIB_NAME]) 411 AC_SUBST([GLAPI_LIB_NAME]) 412 413 AC_SUBST([GL_LIB_GLOB]) 414 AC_SUBST([EGL_LIB_GLOB]) 415 AC_SUBST([GLESv1_CM_LIB_GLOB]) 416 AC_SUBST([GLESv2_LIB_GLOB]) 417 AC_SUBST([VG_LIB_GLOB]) 418 AC_SUBST([GLAPI_LIB_GLOB]) 419 420 dnl 421 dnl Arch/platform-specific settings 422 dnl 423 AC_ARG_ENABLE([asm], 424 [AS_HELP_STRING([--disable-asm], 425 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])], 426 [enable_asm="$enableval"], 427 [enable_asm=yes] 428 ) 429 asm_arch="" 430 MESA_ASM_FILES="" 431 AC_MSG_CHECKING([whether to enable assembly]) 432 test "x$enable_asm" = xno && AC_MSG_RESULT([no]) 433 # disable if cross compiling on x86/x86_64 since we must run gen_matypes 434 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then 435 case "$host_cpu" in 436 i?86 | x86_64) 437 enable_asm=no 438 AC_MSG_RESULT([no, cross compiling]) 439 ;; 440 esac 441 fi 442 # check for supported arches 443 if test "x$enable_asm" = xyes; then 444 case "$host_cpu" in 445 i?86) 446 case "$host_os" in 447 linux* | *freebsd* | dragonfly* | *netbsd*) 448 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86 449 ;; 450 esac 451 ;; 452 x86_64) 453 case "$host_os" in 454 linux* | *freebsd* | dragonfly* | *netbsd*) 455 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64 456 ;; 457 esac 458 ;; 459 sparc*) 460 case "$host_os" in 461 linux*) 462 asm_arch=sparc 463 ;; 464 esac 465 ;; 466 esac 467 468 case "$asm_arch" in 469 x86) 470 DEFINES="$DEFINES -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM" 471 MESA_ASM_FILES='$(X86_FILES)' 472 AC_MSG_RESULT([yes, x86]) 473 ;; 474 x86_64) 475 DEFINES="$DEFINES -DUSE_X86_64_ASM" 476 MESA_ASM_FILES='$(X86_64_FILES)' 477 AC_MSG_RESULT([yes, x86_64]) 478 ;; 479 sparc) 480 DEFINES="$DEFINES -DUSE_SPARC_ASM" 481 MESA_ASM_FILES='$(SPARC_FILES)' 482 AC_MSG_RESULT([yes, sparc]) 483 ;; 484 *) 485 AC_MSG_RESULT([no, platform not supported]) 486 ;; 487 esac 488 fi 489 AC_SUBST([MESA_ASM_FILES]) 490 491 dnl PIC code macro 492 MESA_PIC_FLAGS 493 494 dnl Check to see if dlopen is in default libraries (like Solaris, which 495 dnl has it in libc), or if libdl is needed to get it. 496 AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"], 497 [AC_CHECK_LIB([dl], [dlopen], 498 [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])]) 499 AC_SUBST([DLOPEN_LIBS]) 500 501 dnl See if posix_memalign is available 502 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"]) 503 504 dnl Check for pthreads 505 AX_PTHREAD 506 dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS 507 dnl to -pthread, which causes problems if we need -lpthread to appear in 508 dnl pkgconfig files. 509 test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread" 510 511 dnl SELinux awareness. 512 AC_ARG_ENABLE([selinux], 513 [AS_HELP_STRING([--enable-selinux], 514 [Build SELinux-aware Mesa @<:@default=disabled@:>@])], 515 [MESA_SELINUX="$enableval"], 516 [MESA_SELINUX=no]) 517 if test "x$enable_selinux" = "xyes"; then 518 AC_CHECK_HEADER([selinux/selinux.h],[], 519 [AC_MSG_ERROR([SELinux headers not found])]) 520 AC_CHECK_LIB([selinux],[is_selinux_enabled],[], 521 [AC_MSG_ERROR([SELinux library not found])]) 522 SELINUX_LIBS="-lselinux" 523 DEFINES="$DEFINES -DMESA_SELINUX" 524 fi 525 AC_SUBST([SELINUX_LIBS]) 526 527 dnl Options for APIs 528 AC_ARG_ENABLE([opengl], 529 [AS_HELP_STRING([--disable-opengl], 530 [disable support for standard OpenGL API @<:@default=no@:>@])], 531 [enable_opengl="$enableval"], 532 [enable_opengl=yes]) 533 AC_ARG_ENABLE([gles1], 534 [AS_HELP_STRING([--enable-gles1], 535 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])], 536 [enable_gles1="$enableval"], 537 [enable_gles1=no]) 538 AC_ARG_ENABLE([gles2], 539 [AS_HELP_STRING([--enable-gles2], 540 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])], 541 [enable_gles2="$enableval"], 542 [enable_gles2=no]) 543 AC_ARG_ENABLE([openvg], 544 [AS_HELP_STRING([--enable-openvg], 545 [enable support for OpenVG API @<:@default=no@:>@])], 546 [enable_openvg="$enableval"], 547 [enable_openvg=no]) 548 549 AC_ARG_ENABLE([dri], 550 [AS_HELP_STRING([--enable-dri], 551 [enable DRI modules @<:@default=enabled@:>@])], 552 [enable_dri="$enableval"], 553 [enable_dri=yes]) 554 AC_ARG_ENABLE([glx], 555 [AS_HELP_STRING([--enable-glx], 556 [enable GLX library @<:@default=enabled@:>@])], 557 [enable_glx="$enableval"], 558 [enable_glx=yes]) 559 AC_ARG_ENABLE([osmesa], 560 [AS_HELP_STRING([--enable-osmesa], 561 [enable OSMesa library @<:@default=disabled@:>@])], 562 [enable_osmesa="$enableval"], 563 [enable_osmesa=no]) 564 AC_ARG_ENABLE([egl], 565 [AS_HELP_STRING([--disable-egl], 566 [disable EGL library @<:@default=enabled@:>@])], 567 [enable_egl="$enableval"], 568 [enable_egl=yes]) 569 570 AC_ARG_ENABLE([xorg], 571 [AS_HELP_STRING([--enable-xorg], 572 [enable support for X.Org DDX API @<:@default=no@:>@])], 573 [enable_xorg="$enableval"], 574 [enable_xorg=no]) 575 AC_ARG_ENABLE([xa], 576 [AS_HELP_STRING([--enable-xa], 577 [enable build of the XA X Acceleration API @<:@default=no@:>@])], 578 [enable_xa="$enableval"], 579 [enable_xa=no]) 580 AC_ARG_ENABLE([d3d1x], 581 [AS_HELP_STRING([--enable-d3d1x], 582 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])], 583 [enable_d3d1x="$enableval"], 584 [enable_d3d1x=no]) 585 AC_ARG_ENABLE([gbm], 586 [AS_HELP_STRING([--enable-gbm], 587 [enable gbm library @<:@default=auto@:>@])], 588 [enable_gbm="$enableval"], 589 [enable_gbm=auto]) 590 591 AC_ARG_ENABLE([xvmc], 592 [AS_HELP_STRING([--enable-xvmc], 593 [enable xvmc library @<:@default=auto@:>@])], 594 [enable_xvmc="$enableval"], 595 [enable_xvmc=auto]) 596 AC_ARG_ENABLE([vdpau], 597 [AS_HELP_STRING([--enable-vdpau], 598 [enable vdpau library @<:@default=auto@:>@])], 599 [enable_vdpau="$enableval"], 600 [enable_vdpau=auto]) 601 AC_ARG_ENABLE([va], 602 [AS_HELP_STRING([--enable-va], 603 [enable va library @<:@default=auto@:>@])], 604 [enable_va="$enableval"], 605 [enable_va=auto]) 606 AC_ARG_ENABLE([opencl], 607 [AS_HELP_STRING([--enable-opencl], 608 [enable OpenCL library @<:@default=no@:>@])], 609 [enable_opencl="$enableval"], 610 [enable_opencl=no]) 611 AC_ARG_ENABLE([xlib_glx], 612 [AS_HELP_STRING([--enable-xlib-glx], 613 [make GLX library Xlib-based instead of DRI-based @<:@default=disabled@:>@])], 614 [enable_xlib_glx="$enableval"], 615 [enable_xlib_glx=no]) 616 AC_ARG_ENABLE([gallium_egl], 617 [AS_HELP_STRING([--enable-gallium-egl], 618 [enable optional EGL state tracker (not required 619 for EGL support in Gallium with OpenGL and OpenGL ES) 620 @<:@default=disable@:>@])], 621 [enable_gallium_egl="$enableval"], 622 [enable_gallium_egl=no]) 623 AC_ARG_ENABLE([gallium_gbm], 624 [AS_HELP_STRING([--enable-gallium-gbm], 625 [enable optional gbm state tracker (not required for 626 gbm support in Gallium) 627 @<:@default=auto@:>@])], 628 [enable_gallium_gbm="$enableval"], 629 [enable_gallium_gbm=auto]) 630 631 AC_ARG_ENABLE([r600-llvm-compiler], 632 [AS_HELP_STRING([--enable-r600-llvm-compiler], 633 [Enable experimental LLVM backend for graphics shaders @<:@default=disable@:>@])], 634 [enable_r600_llvm="$enableval"], 635 [enable_r600_llvm=no]) 636 637 AC_ARG_ENABLE([gallium_tests], 638 [AS_HELP_STRING([--enable-gallium-tests], 639 [Enable optional Gallium tests) @<:@default=disable@:>@])], 640 [enable_gallium_tests="$enableval"], 641 [enable_gallium_tests=no]) 642 643 # Option for Gallium drivers 644 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast" 645 646 AC_ARG_WITH([gallium-drivers], 647 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@], 648 [comma delimited Gallium drivers list, e.g. 649 "i915,nouveau,r300,r600,radeonsi,svga,swrast" 650 @<:@default=r300,r600,swrast@:>@])], 651 [with_gallium_drivers="$withval"], 652 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"]) 653 654 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it 655 # here so that the script doesn't choke on an unknown driver name later. 656 case "$with_gallium_drivers" in 657 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;; 658 no) with_gallium_drivers='' ;; 659 esac 660 661 if test "x$enable_opengl" = xno -a \ 662 "x$enable_gles1" = xno -a \ 663 "x$enable_gles2" = xno -a \ 664 "x$enable_openvg" = xno -a \ 665 "x$enable_xorg" = xno -a \ 666 "x$enable_xa" = xno -a \ 667 "x$enable_d3d1x" = xno -a \ 668 "x$enable_xvmc" = xno -a \ 669 "x$enable_vdpau" = xno -a \ 670 "x$enable_va" = xno -a \ 671 "x$enable_opencl" = xno; then 672 AC_MSG_ERROR([at least one API should be enabled]) 673 fi 674 675 # Building OpenGL ES1 and/or ES2 without OpenGL is not supported on mesa 9.0.x 676 if test "x$enable_opengl" = xno -a \ 677 "x$enable_gles1" = xyes; then 678 AC_MSG_ERROR([Building OpenGL ES1 without OpenGL is not supported]) 679 fi 680 681 if test "x$enable_opengl" = xno -a \ 682 "x$enable_gles2" = xyes; then 683 AC_MSG_ERROR([Building OpenGL ES2 without OpenGL is not supported]) 684 fi 685 686 API_DEFINES="" 687 if test "x$enable_opengl" = xno; then 688 API_DEFINES="$API_DEFINES -DFEATURE_GL=0" 689 else 690 API_DEFINES="$API_DEFINES -DFEATURE_GL=1" 691 fi 692 if test "x$enable_gles1" = xyes; then 693 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1" 694 fi 695 if test "x$enable_gles2" = xyes; then 696 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1" 697 fi 698 AC_SUBST([API_DEFINES]) 699 700 if test "x$enable_glx" = xno; then 701 AC_MSG_WARN([GLX disabled, disabling Xlib-GLX]) 702 enable_xlib_glx=no 703 fi 704 705 if test "x$enable_dri$enable_xlib_glx" = xyesyes; then 706 AC_MSG_ERROR([DRI and Xlib-GLX cannot be built together]) 707 fi 708 709 if test "x$enable_opengl$enable_xlib_glx" = xnoyes; then 710 AC_MSG_ERROR([Xlib-GLX cannot be built without OpenGL]) 711 fi 712 713 # Disable GLX if OpenGL is not enabled 714 if test "x$enable_glx$enable_opengl" = xyesno; then 715 AC_MSG_WARN([OpenGL not enabled, disabling GLX]) 716 enable_glx=no 717 fi 718 719 # Disable GLX if DRI and Xlib-GLX are not enabled 720 if test "x$enable_glx" = xyes -a \ 721 "x$enable_dri" = xno -a \ 722 "x$enable_xlib_glx" = xno; then 723 AC_MSG_WARN([Neither DRI nor Xlib-GLX enabled, disabling GLX]) 724 enable_glx=no 725 fi 726 727 AM_CONDITIONAL(HAVE_DRI, test "x$enable_dri" = xyes) 728 AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_xlib_glx" = xyes -o \ 729 "x$enable_osmesa" = xyes) 730 731 AC_ARG_ENABLE([shared-glapi], 732 [AS_HELP_STRING([--enable-shared-glapi], 733 [Enable shared glapi for OpenGL @<:@default=yes@:>@])], 734 [enable_shared_glapi="$enableval"], 735 [enable_shared_glapi="$enable_dri"]) 736 737 # Shared GLAPI is only useful for DRI 738 if test "x$enable_dri" = xno; then 739 AC_MSG_NOTICE([Shared GLAPI is only useful for DRI, disabling]) 740 enable_shared_glapi=no 741 fi 742 743 # TODO: Get rid of SHARED_GLAPI variable 744 SHARED_GLAPI="0" 745 if test "x$enable_shared_glapi" = xyes; then 746 SHARED_GLAPI="1" 747 # libGL will use libglapi for function lookups (IN_DRI_DRIVER means to use 748 # the remap table) 749 DEFINES="$DEFINES -DIN_DRI_DRIVER" 750 CORE_DIRS="mapi/shared-glapi" 751 fi 752 AC_SUBST([SHARED_GLAPI]) 753 AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes) 754 755 dnl 756 dnl Driver specific build directories 757 dnl 758 SRC_DIRS="gtest" 759 GALLIUM_DIRS="auxiliary drivers state_trackers" 760 GALLIUM_TARGET_DIRS="" 761 GALLIUM_WINSYS_DIRS="sw" 762 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity" 763 GALLIUM_STATE_TRACKERS_DIRS="" 764 765 # build glapi if OpenGL is enabled 766 if test "x$enable_opengl" = xyes; then 767 CORE_DIRS="$CORE_DIRS mapi/glapi" 768 fi 769 770 # build es1api if OpenGL ES 1.x is enabled 771 if test "x$enable_gles1" = xyes; then 772 CORE_DIRS="$CORE_DIRS mapi/es1api" 773 fi 774 775 # build es2api if OpenGL ES 2.x is enabled 776 if test "x$enable_gles2" = xyes; then 777 CORE_DIRS="$CORE_DIRS mapi/es2api" 778 fi 779 780 # build glsl and mesa if OpenGL or OpenGL ES is enabled 781 case "x$enable_opengl$enable_gles1$enable_gles2" in 782 x*yes*) 783 CORE_DIRS="mapi/glapi/gen $CORE_DIRS glsl mesa" 784 ;; 785 esac 786 787 case "x$enable_glx$enable_xlib_glx" in 788 xyesyes) 789 DRIVER_DIRS="$DRIVER_DIRS x11" 790 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib" 791 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib" 792 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS" 793 HAVE_WINSYS_XLIB="yes" 794 ;; 795 xyesno) 796 # DRI-based GLX 797 SRC_DIRS="$SRC_DIRS glx" 798 ;; 799 esac 800 801 if test "x$enable_dri" = xyes; then 802 DRIVER_DIRS="$DRIVER_DIRS dri" 803 804 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri" 805 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS" 806 HAVE_ST_DRI="yes" 807 fi 808 809 if test "x$enable_osmesa" = xyes; then 810 DRIVER_DIRS="$DRIVER_DIRS osmesa" 811 fi 812 813 AC_SUBST([SRC_DIRS]) 814 AC_SUBST([DRIVER_DIRS]) 815 AC_SUBST([GALLIUM_DIRS]) 816 AC_SUBST([GALLIUM_TARGET_DIRS]) 817 AC_SUBST([GALLIUM_WINSYS_DIRS]) 818 AC_SUBST([GALLIUM_DRIVERS_DIRS]) 819 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS]) 820 AC_SUBST([MESA_LLVM]) 821 822 # Check for libdrm 823 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED], 824 [have_libdrm=yes], [have_libdrm=no]) 825 826 if test "x$enable_dri" = xyes; then 827 # DRI must be shared, I think 828 if test "$enable_static" = yes; then 829 AC_MSG_ERROR([Cannot use static libraries for DRI drivers]) 830 fi 831 832 # not a hard requirement as swrast does not depend on it 833 if test "x$have_libdrm" = xyes; then 834 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED" 835 fi 836 fi 837 838 dnl Find out if X is available. 839 PKG_CHECK_MODULES([X11], [x11]) 840 841 dnl Try to tell the user that the --x-* options are only used when 842 dnl pkg-config is not available. This must be right after AC_PATH_XTRA. 843 m4_divert_once([HELP_BEGIN], 844 [These options are only used when the X libraries cannot be found by the 845 pkg-config utility.]) 846 847 dnl We need X for xlib and dri, so bomb now if it's not found 848 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then 849 AC_MSG_ERROR([X11 development libraries needed for GLX]) 850 fi 851 852 if test "x$enable_glx" = xyes; then 853 DEFINES="$DEFINES -DUSE_XCB" 854 fi 855 856 dnl Direct rendering or just indirect rendering 857 case "$host_os" in 858 gnu*) 859 dnl Disable by default on GNU/Hurd 860 driglx_direct_default="no" 861 ;; 862 cygwin*) 863 dnl Disable by default on cygwin 864 driglx_direct_default="no" 865 ;; 866 *) 867 driglx_direct_default="yes" 868 ;; 869 esac 870 AC_ARG_ENABLE([driglx-direct], 871 [AS_HELP_STRING([--disable-driglx-direct], 872 [enable direct rendering in GLX and EGL for DRI \ 873 @<:@default=auto@:>@])], 874 [driglx_direct="$enableval"], 875 [driglx_direct="$driglx_direct_default"]) 876 877 dnl 878 dnl libGL configuration per driver 879 dnl 880 case "x$enable_glx$enable_xlib_glx" in 881 xyesyes) 882 # Xlib-based GLX 883 PKG_CHECK_MODULES([XLIBGL], [x11 xext]) 884 GL_PC_REQ_PRIV="x11 xext" 885 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS" 886 GL_LIB_DEPS="$XLIBGL_LIBS" 887 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS" 888 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm $PTHREAD_LIBS" 889 ;; 890 xyesno) 891 # DRI-based GLX 892 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED]) 893 if test x"$driglx_direct" = xyes; then 894 if test "x$have_libdrm" != xyes; then 895 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED]) 896 fi 897 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED]) 898 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED" 899 fi 900 901 # find the DRI deps for libGL 902 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= 1.8.1" 903 904 # add xf86vidmode if available 905 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no) 906 if test "$HAVE_XF86VIDMODE" = yes ; then 907 dri_modules="$dri_modules xxf86vm" 908 fi 909 910 PKG_CHECK_MODULES([DRIGL], [$dri_modules]) 911 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules" 912 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS" 913 GL_LIB_DEPS="$DRIGL_LIBS" 914 915 # need DRM libs, $PTHREAD_LIBS, etc. 916 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS" 917 GL_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS" 918 ;; 919 esac 920 921 # This is outside the case (above) so that it is invoked even for non-GLX 922 # builds. 923 AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes) 924 925 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS" 926 GLESv1_CM_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS" 927 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS" 928 GLESv2_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS" 929 930 AC_SUBST([GL_LIB_DEPS]) 931 AC_SUBST([GL_PC_REQ_PRIV]) 932 AC_SUBST([GL_PC_LIB_PRIV]) 933 AC_SUBST([GL_PC_CFLAGS]) 934 AC_SUBST([DRI_PC_REQ_PRIV]) 935 AC_SUBST([GLESv1_CM_LIB_DEPS]) 936 AC_SUBST([GLESv1_CM_PC_LIB_PRIV]) 937 AC_SUBST([GLESv2_LIB_DEPS]) 938 AC_SUBST([GLESv2_PC_LIB_PRIV]) 939 940 DRI_LIB_DEPS="\$(top_builddir)/src/mesa/libdricore/libdricore${VERSION}.la" 941 942 AC_SUBST([HAVE_XF86VIDMODE]) 943 944 dnl 945 dnl More GLX setup 946 dnl 947 case "x$enable_glx$enable_xlib_glx" in 948 xyesyes) 949 DEFINES="$DEFINES -DUSE_XSHM" 950 ;; 951 xyesno) 952 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING" 953 if test "x$driglx_direct" = xyes; then 954 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING" 955 fi 956 ;; 957 esac 958 959 dnl 960 dnl TLS detection 961 dnl 962 963 AC_ARG_ENABLE([glx-tls], 964 [AS_HELP_STRING([--enable-glx-tls], 965 [enable TLS support in GLX @<:@default=disabled@:>@])], 966 [GLX_USE_TLS="$enableval"], 967 [GLX_USE_TLS=no]) 968 AC_SUBST(GLX_TLS, ${GLX_USE_TLS}) 969 970 AS_IF([test "x$GLX_USE_TLS" = xyes -a "x$ax_pthread_ok" = xyes], 971 [DEFINES="${DEFINES} -DGLX_USE_TLS -DHAVE_PTHREAD"]) 972 973 dnl 974 dnl More DRI setup 975 dnl 976 dnl Directory for DRI drivers 977 AC_ARG_WITH([dri-driverdir], 978 [AS_HELP_STRING([--with-dri-driverdir=DIR], 979 [directory for the DRI drivers @<:@${libdir}/dri@:>@])], 980 [DRI_DRIVER_INSTALL_DIR="$withval"], 981 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri']) 982 AC_SUBST([DRI_DRIVER_INSTALL_DIR]) 983 dnl Extra search path for DRI drivers 984 AC_ARG_WITH([dri-searchpath], 985 [AS_HELP_STRING([--with-dri-searchpath=DIRS...], 986 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])], 987 [DRI_DRIVER_SEARCH_DIR="$withval"], 988 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}']) 989 AC_SUBST([DRI_DRIVER_SEARCH_DIR]) 990 dnl Which drivers to build - default is chosen by platform 991 AC_ARG_WITH([dri-drivers], 992 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@], 993 [comma delimited DRI drivers list, e.g. 994 "swrast,i965,radeon" @<:@default=auto@:>@])], 995 [with_dri_drivers="$withval"], 996 [with_dri_drivers=yes]) 997 if test "x$with_dri_drivers" = x; then 998 with_dri_drivers=no 999 fi 1000 1001 dnl If $with_dri_drivers is yes, directories will be added through 1002 dnl platform checks 1003 DRI_DIRS="" 1004 case "$with_dri_drivers" in 1005 no) ;; 1006 yes) 1007 # classic DRI drivers require FEATURE_GL to build 1008 if test "x$enable_opengl" = xyes; then 1009 DRI_DIRS="yes" 1010 fi 1011 ;; 1012 *) 1013 # verify the requested driver directories exist 1014 dri_drivers=`IFS=', '; echo $with_dri_drivers` 1015 for driver in $dri_drivers; do 1016 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \ 1017 AC_MSG_ERROR([DRI driver directory '$driver' does not exist]) 1018 done 1019 DRI_DIRS="$dri_drivers" 1020 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then 1021 AC_MSG_ERROR([--with-dri-drivers requires OpenGL]) 1022 fi 1023 ;; 1024 esac 1025 1026 dnl Set DRI_DIRS, DEFINES and LIB_DEPS 1027 if test "x$enable_dri" = xyes; then 1028 # Platform specific settings and drivers to build 1029 case "$host_os" in 1030 linux*) 1031 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER" 1032 DEFINES="$DEFINES -DHAVE_ALIAS" 1033 1034 case "$host_cpu" in 1035 x86_64) 1036 if test "x$DRI_DIRS" = "xyes"; then 1037 DRI_DIRS="i915 i965 nouveau r200 radeon swrast" 1038 fi 1039 ;; 1040 powerpc*) 1041 # Build only the drivers for cards that exist on PowerPC. 1042 if test "x$DRI_DIRS" = "xyes"; then 1043 DRI_DIRS="r200 radeon swrast" 1044 fi 1045 ;; 1046 sparc*) 1047 # Build only the drivers for cards that exist on sparc 1048 if test "x$DRI_DIRS" = "xyes"; then 1049 DRI_DIRS="r200 radeon swrast" 1050 fi 1051 ;; 1052 esac 1053 ;; 1054 freebsd* | dragonfly* | *netbsd*) 1055 DEFINES="$DEFINES -DHAVE_PTHREAD -DUSE_EXTERNAL_DXTN_LIB=1" 1056 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS" 1057 1058 if test "x$DRI_DIRS" = "xyes"; then 1059 DRI_DIRS="i915 i965 nouveau r200 radeon swrast" 1060 fi 1061 ;; 1062 gnu*) 1063 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER" 1064 DEFINES="$DEFINES -DHAVE_ALIAS" 1065 ;; 1066 solaris*) 1067 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER" 1068 ;; 1069 cygwin*) 1070 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER" 1071 if test "x$DRI_DIRS" = "xyes"; then 1072 DRI_DIRS="swrast" 1073 fi 1074 ;; 1075 esac 1076 1077 # default drivers 1078 if test "x$DRI_DIRS" = "xyes"; then 1079 DRI_DIRS="i915 i965 nouveau r200 radeon swrast" 1080 fi 1081 1082 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'` 1083 1084 # Check for expat 1085 if test "x$enable_dri" = xyes; then 1086 EXPAT_INCLUDES="" 1087 EXPAT_LIB=-lexpat 1088 AC_ARG_WITH([expat], 1089 [AS_HELP_STRING([--with-expat=DIR], 1090 [expat install directory])],[ 1091 EXPAT_INCLUDES="-I$withval/include" 1092 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES" 1093 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR" 1094 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat" 1095 ]) 1096 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])]) 1097 save_LIBS="$LIBS" 1098 AC_CHECK_LIB([expat],[XML_ParserCreate],[], 1099 [AC_MSG_ERROR([Expat required for DRI.])]) 1100 LIBS="$save_LIBS" 1101 fi 1102 1103 # if we are building any dri driver other than swrast ... 1104 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then 1105 # ... libdrm is required 1106 if test "x$have_libdrm" != xyes; then 1107 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED]) 1108 fi 1109 # ... and build dricommon 1110 HAVE_COMMON_DRI=yes 1111 fi 1112 1113 # put all the necessary libs together 1114 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm $PTHREAD_LIBS $DLOPEN_LIBS" 1115 GALLIUM_DRI_LIB_DEPS="$GALLIUM_DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm $PTHREAD_LIBS $DLOPEN_LIBS" 1116 fi 1117 AM_CONDITIONAL(NEED_LIBDRICORE, test -n "$DRI_DIRS") 1118 AC_SUBST([DRI_DIRS]) 1119 AC_SUBST([EXPAT_INCLUDES]) 1120 AC_SUBST([DRI_LIB_DEPS]) 1121 AC_SUBST([GALLIUM_DRI_LIB_DEPS]) 1122 1123 case $DRI_DIRS in 1124 *i915*|*i965*) 1125 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED]) 1126 1127 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do 1128 case $d in 1129 i915) 1130 HAVE_I915_DRI=yes; 1131 ;; 1132 i965) 1133 HAVE_I965_DRI=yes; 1134 ;; 1135 esac 1136 done 1137 1138 ;; 1139 esac 1140 1141 case $DRI_DIRS in 1142 *nouveau*) 1143 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED]) 1144 HAVE_NOUVEAU_DRI=yes; 1145 ;; 1146 esac 1147 1148 case $DRI_DIRS in 1149 *radeon*|*r200*) 1150 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED]) 1151 1152 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do 1153 case $d in 1154 radeon) 1155 HAVE_RADEON_DRI=yes; 1156 ;; 1157 r200) 1158 HAVE_R200_DRI=yes; 1159 ;; 1160 esac 1161 done 1162 1163 ;; 1164 esac 1165 1166 case $DRI_DIRS in 1167 *swrast*) 1168 HAVE_SWRAST_DRI=yes; 1169 ;; 1170 esac 1171 1172 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes) 1173 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes) 1174 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes) 1175 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes) 1176 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes) 1177 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes) 1178 AM_CONDITIONAL(HAVE_COMMON_DRI, test x$HAVE_COMMON_DRI = xyes) 1179 1180 dnl 1181 dnl OSMesa configuration 1182 dnl 1183 1184 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...) 1185 AC_ARG_WITH([osmesa-bits], 1186 [AS_HELP_STRING([--with-osmesa-bits=BITS], 1187 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])], 1188 [osmesa_bits="$withval"], 1189 [osmesa_bits=8]) 1190 if test "x$osmesa_bits" != x8; then 1191 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then 1192 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver]) 1193 osmesa_bits=8 1194 fi 1195 fi 1196 case "x$osmesa_bits" in 1197 x8) 1198 OSMESA_LIB="${OSMESA_LIB}" 1199 ;; 1200 x16|x32) 1201 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits" 1202 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31" 1203 ;; 1204 *) 1205 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option]) 1206 ;; 1207 esac 1208 1209 if test "x$enable_osmesa" = xyes; then 1210 # only link libraries with osmesa if shared 1211 if test "$enable_static" = no; then 1212 OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS" 1213 else 1214 OSMESA_LIB_DEPS="" 1215 fi 1216 OSMESA_MESA_DEPS="" 1217 OSMESA_PC_LIB_PRIV="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS" 1218 fi 1219 1220 AC_SUBST([OSMESA_LIB_DEPS]) 1221 AC_SUBST([OSMESA_MESA_DEPS]) 1222 AC_SUBST([OSMESA_PC_REQ]) 1223 AC_SUBST([OSMESA_PC_LIB_PRIV]) 1224 1225 dnl 1226 dnl gbm configuration 1227 dnl 1228 if test "x$enable_gbm" = xauto; then 1229 case "$with_egl_platforms" in 1230 *drm*) 1231 enable_gbm=yes ;; 1232 *) 1233 enable_gbm=no ;; 1234 esac 1235 fi 1236 if test "x$enable_gbm" = xyes; then 1237 SRC_DIRS="$SRC_DIRS gbm" 1238 1239 PKG_CHECK_MODULES([LIBUDEV], [libudev], [], 1240 AC_MSG_ERROR([gbm needs udev])) 1241 1242 if test "x$enable_dri" = xyes; then 1243 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri" 1244 if test "x$enable_shared_glapi" = xno; then 1245 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi]) 1246 fi 1247 fi 1248 fi 1249 GBM_PC_REQ_PRIV="libudev" 1250 GBM_PC_LIB_PRIV="$DLOPEN_LIBS" 1251 AC_SUBST([GBM_PC_REQ_PRIV]) 1252 AC_SUBST([GBM_PC_LIB_PRIV]) 1253 1254 dnl 1255 dnl EGL configuration 1256 dnl 1257 EGL_CLIENT_APIS="" 1258 1259 if test "x$enable_egl" = xyes; then 1260 SRC_DIRS="$SRC_DIRS egl" 1261 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS $PTHREAD_LIBS" 1262 1263 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"]) 1264 1265 if test "$enable_static" != yes; then 1266 # build egl_glx when libGL is built 1267 if test "x$enable_glx" = xyes; then 1268 HAVE_EGL_DRIVER_GLX=1 1269 fi 1270 1271 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150], 1272 [have_libudev=yes],[have_libudev=no]) 1273 if test "$have_libudev" = yes; then 1274 DEFINES="$DEFINES -DHAVE_LIBUDEV" 1275 fi 1276 1277 if test "x$enable_dri" = xyes; then 1278 HAVE_EGL_DRIVER_DRI2=1 1279 fi 1280 1281 fi 1282 fi 1283 AC_SUBST([EGL_LIB_DEPS]) 1284 1285 dnl 1286 dnl EGL Gallium configuration 1287 dnl 1288 if test "x$enable_gallium_egl" = xyes; then 1289 if test "x$with_gallium_drivers" = x; then 1290 AC_MSG_ERROR([cannot enable egl_gallium without Gallium]) 1291 fi 1292 if test "x$enable_egl" = xno; then 1293 AC_MSG_ERROR([cannot enable egl_gallium without EGL]) 1294 fi 1295 if test "x$have_libdrm" != xyes; then 1296 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED]) 1297 fi 1298 1299 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS" 1300 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static" 1301 HAVE_ST_EGL="yes" 1302 fi 1303 1304 dnl 1305 dnl gbm Gallium configuration 1306 dnl 1307 if test "x$enable_gallium_gbm" = xauto; then 1308 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in 1309 yesyesyes*drm*) 1310 enable_gallium_gbm=yes ;; 1311 *) 1312 enable_gallium_gbm=no ;; 1313 esac 1314 fi 1315 if test "x$enable_gallium_gbm" = xyes; then 1316 if test "x$with_gallium_drivers" = x; then 1317 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium]) 1318 fi 1319 if test "x$enable_gbm" = xno; then 1320 AC_MSG_ERROR([cannot enable gbm_gallium without gbm]) 1321 fi 1322 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set. 1323 if test "x$enable_dri" = xno; then 1324 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build]) 1325 fi 1326 1327 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS" 1328 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm" 1329 HAVE_ST_GBM="yes" 1330 enable_gallium_loader=yes 1331 fi 1332 1333 dnl 1334 dnl X.Org DDX configuration 1335 dnl 1336 if test "x$enable_xorg" = xyes; then 1337 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0]) 1338 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED]) 1339 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED]) 1340 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1], 1341 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71", 1342 HAVE_XEXTPROTO_71="no") 1343 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS" 1344 HAVE_ST_XORG=yes 1345 fi 1346 1347 dnl 1348 dnl XA configuration 1349 dnl 1350 if test "x$enable_xa" = xyes; then 1351 AC_PROG_AWK 1352 AC_PROG_GREP 1353 AC_CHECK_PROG(NM, nm, "nm") 1354 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then 1355 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.]) 1356 enable_xa=no 1357 fi 1358 fi 1359 if test "x$enable_xa" = xyes; then 1360 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS" 1361 HAVE_ST_XA=yes 1362 AC_SUBST(AWK) 1363 AC_SUBST(GREP) 1364 AC_SUBST(NM) 1365 fi 1366 1367 dnl 1368 dnl OpenVG configuration 1369 dnl 1370 VG_LIB_DEPS="" 1371 1372 if test "x$enable_openvg" = xyes; then 1373 if test "x$enable_egl" = xno; then 1374 AC_MSG_ERROR([cannot enable OpenVG without EGL]) 1375 fi 1376 if test "x$with_gallium_drivers" = x; then 1377 AC_MSG_ERROR([cannot enable OpenVG without Gallium]) 1378 fi 1379 if test "x$enable_gallium_egl" = xno; then 1380 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium]) 1381 fi 1382 1383 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)' 1384 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS $PTHREAD_LIBS" 1385 CORE_DIRS="$CORE_DIRS mapi/vgapi" 1386 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS" 1387 HAVE_ST_VEGA=yes 1388 VG_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS" 1389 AC_SUBST([VG_PC_LIB_PRIV]) 1390 fi 1391 1392 dnl 1393 dnl D3D1X configuration 1394 dnl 1395 1396 if test "x$enable_d3d1x" = xyes; then 1397 if test "x$with_gallium_drivers" = x; then 1398 AC_MSG_ERROR([cannot enable D3D1X without Gallium]) 1399 fi 1400 1401 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS" 1402 HAVE_ST_D3D1X=yes 1403 fi 1404 1405 dnl 1406 dnl Gallium G3DVL configuration 1407 dnl 1408 AC_ARG_ENABLE([gallium-g3dvl], 1409 [AS_HELP_STRING([--enable-gallium-g3dvl], 1410 [build gallium g3dvl @<:@default=disabled@:>@])], 1411 [enable_gallium_g3dvl="$enableval"], 1412 [enable_gallium_g3dvl=no]) 1413 if test "x$enable_gallium_g3dvl" = xyes; then 1414 if test "x$with_gallium_drivers" = x; then 1415 AC_MSG_ERROR([cannot enable G3DVL without Gallium]) 1416 fi 1417 1418 if test "x$enable_xvmc" = xauto; then 1419 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no]) 1420 fi 1421 1422 if test "x$enable_vdpau" = xauto; then 1423 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no]) 1424 fi 1425 1426 if test "x$enable_va" = xauto; then 1427 #don't enable vaapi state tracker even if package exists 1428 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no]) 1429 enable_va=no 1430 fi 1431 fi 1432 1433 if test "x$enable_xvmc" = xyes; then 1434 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 x11-xcb xcb-dri2 >= 1.8]) 1435 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xvmc" 1436 HAVE_ST_XVMC="yes" 1437 fi 1438 1439 if test "x$enable_vdpau" = xyes; then 1440 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1 x11-xcb xcb-dri2 >= 1.8]) 1441 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau" 1442 HAVE_ST_VDPAU="yes" 1443 fi 1444 1445 if test "x$enable_va" = xyes; then 1446 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1 x11-xcb xcb-dri2 >= 1.8]) 1447 AC_MSG_WARN([vaapi state tracker currently unmaintained]) 1448 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va" 1449 HAVE_ST_VA="yes" 1450 fi 1451 1452 dnl 1453 dnl OpenCL configuration 1454 dnl 1455 1456 AC_ARG_WITH([libclc-path], 1457 [AS_HELP_STRING([--with-libclc-path], 1458 [DEPRECATED: See http://dri.freedesktop.org/wiki/GalliumCompute#How_to_Install])], 1459 [LIBCLC_PATH="$withval"], 1460 [LIBCLC_PATH=""]) 1461 1462 if test "x$LIBCLC_PATH" != x; then 1463 AC_MSG_ERROR([The --with-libclc-path option has been deprecated. 1464 Please review the updated build instructions for clover: 1465 http://dri.freedesktop.org/wiki/GalliumCompute]) 1466 fi 1467 1468 1469 AC_ARG_WITH([clang-libdir], 1470 [AS_HELP_STRING([--with-clang-libdir], 1471 [Path to Clang libraries @<:@default=llvm-config --libdir@:>@])], 1472 [CLANG_LIBDIR="$withval"], 1473 [CLANG_LIBDIR=""]) 1474 1475 LIBCLC_INCLUDEDIR=`pkg-config --variable=includedir libclc` 1476 LIBCLC_LIBEXECDIR=`pkg-config --variable=libexecdir libclc` 1477 AC_SUBST([LIBCLC_INCLUDEDIR]) 1478 AC_SUBST([LIBCLC_LIBEXECDIR]) 1479 1480 if test "x$enable_opencl" = xyes; then 1481 if test "x$with_gallium_drivers" = x; then 1482 AC_MSG_ERROR([cannot enable OpenCL without Gallium]) 1483 fi 1484 1485 if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 6; then 1486 AC_MSG_ERROR([gcc >= 4.6 is required to build clover]) 1487 fi 1488 1489 if test "x$LIBCLC_INCLUDEDIR" == x || test "x$LIBCLC_LIBEXECDIR" == x; then 1490 AC_MSG_ERROR([pkg-config cannot use libclc.pc which is required to build clover]) 1491 fi 1492 1493 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS clover" 1494 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS opencl" 1495 enable_gallium_loader=yes 1496 fi 1497 1498 dnl 1499 dnl Gallium configuration 1500 dnl 1501 if test "x$with_gallium_drivers" != x; then 1502 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets" 1503 fi 1504 AM_CONDITIONAL(HAVE_GALLIUM, test "x$with_gallium_drivers" != x) 1505 1506 AC_SUBST([LLVM_BINDIR]) 1507 AC_SUBST([LLVM_CFLAGS]) 1508 AC_SUBST([LLVM_CPPFLAGS]) 1509 AC_SUBST([LLVM_CXXFLAGS]) 1510 AC_SUBST([LLVM_LIBDIR]) 1511 AC_SUBST([LLVM_LIBS]) 1512 AC_SUBST([LLVM_LDFLAGS]) 1513 AC_SUBST([LLVM_INCLUDEDIR]) 1514 AC_SUBST([LLVM_VERSION]) 1515 AC_SUBST([CLANG_RESOURCE_DIR]) 1516 1517 case "x$enable_opengl$enable_gles1$enable_gles2" in 1518 x*yes*) 1519 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)' 1520 ;; 1521 esac 1522 1523 AC_SUBST([VG_LIB_DEPS]) 1524 AC_SUBST([EGL_CLIENT_APIS]) 1525 1526 dnl 1527 dnl EGL Platforms configuration 1528 dnl 1529 AC_ARG_WITH([egl-platforms], 1530 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@], 1531 [comma delimited native platforms libEGL supports, e.g. 1532 "x11,drm" @<:@default=auto@:>@])], 1533 [with_egl_platforms="$withval"], 1534 [if test "x$enable_egl" = xyes; then 1535 with_egl_platforms="x11" 1536 else 1537 with_egl_platforms="" 1538 fi]) 1539 1540 EGL_PLATFORMS="" 1541 1542 if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then 1543 AC_MSG_ERROR([cannot build egl state tracker without EGL library]) 1544 fi 1545 1546 # Do per-EGL platform setups and checks 1547 egl_platforms=`IFS=', '; echo $with_egl_platforms` 1548 for plat in $egl_platforms; do 1549 case "$plat" in 1550 fbdev|null) 1551 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/$plat" 1552 ;; 1553 1554 wayland) 1555 PKG_CHECK_MODULES([WAYLAND], [wayland-client >= 1.0.2 wayland-server >= 1.0.2]) 1556 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland" 1557 1558 WAYLAND_PREFIX=`$PKG_CONFIG --variable=prefix wayland-client` 1559 AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner],, 1560 [${WAYLAND_PREFIX}/bin$PATH_SEPARATOR$PATH]) 1561 ;; 1562 1563 x11) 1564 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes]) 1565 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6 1566 save_LIBS="$LIBS" 1567 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [], 1568 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"]) 1569 LIBS="$save_LIBS" 1570 ;; 1571 1572 drm) 1573 test "x$enable_gbm" = "xno" && 1574 AC_MSG_ERROR([EGL platform drm needs gbm]) 1575 ;; 1576 1577 android|gdi) 1578 ;; 1579 1580 *) 1581 AC_MSG_ERROR([EGL platform '$plat' does not exist]) 1582 ;; 1583 esac 1584 1585 case "$plat$have_libudev" in 1586 waylandno|drmno) 1587 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;; 1588 esac 1589 done 1590 1591 # libEGL wants to default to the first platform specified in 1592 # ./configure. parse that here. 1593 if test "x$egl_platforms" != "x"; then 1594 FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr 'a-z' 'A-Z'` 1595 EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS" 1596 else 1597 EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM" 1598 fi 1599 1600 EGL_PLATFORMS="$egl_platforms" 1601 1602 AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1) 1603 AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep 'wayland' >/dev/null 2>&1) 1604 AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep 'drm' >/dev/null 2>&1) 1605 AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep 'fbdev' >/dev/null 2>&1) 1606 AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep 'null' >/dev/null 2>&1) 1607 1608 AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x") 1609 AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != "x") 1610 1611 AC_SUBST([EGL_NATIVE_PLATFORM]) 1612 AC_SUBST([EGL_PLATFORMS]) 1613 AC_SUBST([EGL_CFLAGS]) 1614 1615 AC_ARG_WITH([egl-driver-dir], 1616 [AS_HELP_STRING([--with-egl-driver-dir=DIR], 1617 [directory for EGL drivers [[default=${libdir}/egl]]])], 1618 [EGL_DRIVER_INSTALL_DIR="$withval"], 1619 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl']) 1620 AC_SUBST([EGL_DRIVER_INSTALL_DIR]) 1621 1622 AC_ARG_WITH([xorg-driver-dir], 1623 [AS_HELP_STRING([--with-xorg-driver-dir=DIR], 1624 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])], 1625 [XORG_DRIVER_INSTALL_DIR="$withval"], 1626 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"]) 1627 AC_SUBST([XORG_DRIVER_INSTALL_DIR]) 1628 1629 AC_ARG_WITH([max-width], 1630 [AS_HELP_STRING([--with-max-width=N], 1631 [Maximum framebuffer width (4096)])], 1632 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}"; 1633 AS_IF([test "${withval}" -gt "4096"], 1634 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])] 1635 ) 1636 AC_ARG_WITH([max-height], 1637 [AS_HELP_STRING([--with-max-height=N], 1638 [Maximum framebuffer height (4096)])], 1639 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}"; 1640 AS_IF([test "${withval}" -gt "4096"], 1641 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])] 1642 ) 1643 1644 dnl 1645 dnl Gallium LLVM 1646 dnl 1647 AC_ARG_ENABLE([gallium-llvm], 1648 [AS_HELP_STRING([--enable-gallium-llvm], 1649 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])], 1650 [enable_gallium_llvm="$enableval"], 1651 [enable_gallium_llvm=auto]) 1652 1653 AC_ARG_WITH([llvm-shared-libs], 1654 [AS_HELP_STRING([--with-llvm-shared-libs], 1655 [link with LLVM shared libraries @<:@default=disabled@:>@])], 1656 [with_llvm_shared_libs=yes], 1657 [with_llvm_shared_libs=no]) 1658 1659 AC_ARG_WITH([llvm-prefix], 1660 [AS_HELP_STRING([--with-llvm-prefix], 1661 [Prefix for LLVM installations in non-standard locations])], 1662 [llvm_prefix="$withval"], 1663 [llvm_prefix=""]) 1664 1665 1666 if test "x$with_gallium_drivers" = x; then 1667 enable_gallium_llvm=no 1668 fi 1669 if test "x$enable_gallium_llvm" = xauto; then 1670 case "$host_cpu" in 1671 i*86|x86_64) enable_gallium_llvm=yes;; 1672 esac 1673 fi 1674 if test "x$enable_gallium_llvm" = xyes; then 1675 if test "x$llvm_prefix" != x; then 1676 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"]) 1677 else 1678 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no]) 1679 fi 1680 1681 if test "x$LLVM_CONFIG" != xno; then 1682 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'` 1683 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g' -e 's/-Wcovered-switch-default//g'` 1684 if test "x$with_llvm_shared_libs" = xyes; then 1685 dnl We can't use $LLVM_VERSION because it has 'svn' stripped out, 1686 LLVM_LIBS="-lLLVM-`$LLVM_CONFIG --version`" 1687 else 1688 LLVM_COMPONENTS="engine bitwriter" 1689 if $LLVM_CONFIG --components | grep -q '\<mcjit\>'; then 1690 LLVM_COMPONENTS="${LLVM_COMPONENTS} mcjit" 1691 fi 1692 if test "x$enable_opencl" = xyes; then 1693 LLVM_COMPONENTS="${LLVM_COMPONENTS} ipo linker instrumentation" 1694 fi 1695 LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`" 1696 fi 1697 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags` 1698 LLVM_BINDIR=`$LLVM_CONFIG --bindir` 1699 LLVM_CXXFLAGS=`$LLVM_CONFIG --cxxflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g' -e 's/-Wcovered-switch-default//g'` 1700 LLVM_CPPFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g' -e 's/-Wcovered-switch-default//g'` 1701 LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir` 1702 LLVM_LIBDIR=`$LLVM_CONFIG --libdir` 1703 DEFINES="${DEFINES} -DHAVE_LLVM=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/0x0\10\2/g'`" 1704 MESA_LLVM=1 1705 1706 dnl Check for Clang interanl headers 1707 if test "x$enable_opencl" = xyes; then 1708 if test "x$CLANG_LIBDIR" = x; then 1709 CLANG_LIBDIR=${LLVM_LIBDIR} 1710 fi 1711 CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION} 1712 AC_CHECK_FILE("$CLANG_RESOURCE_DIR/include/stddef.h",, 1713 AC_MSG_ERROR([Could not find clang internal header stddef.h in $CLANG_RESOURCE_DIR Use --with-clang-libdir to specify the correct path to the clang libraries.])) 1714 fi 1715 else 1716 MESA_LLVM=0 1717 fi 1718 else 1719 MESA_LLVM=0 1720 fi 1721 1722 dnl Directory for XVMC libs 1723 AC_ARG_WITH([xvmc-libdir], 1724 [AS_HELP_STRING([--with-xvmc-libdir=DIR], 1725 [directory for the XVMC libraries @<:@default=${libdir}@:>@])], 1726 [XVMC_LIB_INSTALL_DIR="$withval"], 1727 [XVMC_LIB_INSTALL_DIR='${libdir}']) 1728 AC_SUBST([XVMC_LIB_INSTALL_DIR]) 1729 1730 dnl 1731 dnl Gallium Tests 1732 dnl 1733 if test "x$enable_gallium_tests" = xyes; then 1734 SRC_DIRS="$SRC_DIRS gallium/tests/trivial" 1735 enable_gallium_loader=yes 1736 fi 1737 1738 dnl Directory for VDPAU libs 1739 AC_ARG_WITH([vdpau-libdir], 1740 [AS_HELP_STRING([--with-vdpau-libdir=DIR], 1741 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])], 1742 [VDPAU_LIB_INSTALL_DIR="$withval"], 1743 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau']) 1744 AC_SUBST([VDPAU_LIB_INSTALL_DIR]) 1745 1746 dnl Directory for VA libs 1747 AC_ARG_WITH([va-libdir], 1748 [AS_HELP_STRING([--with-va-libdir=DIR], 1749 [directory for the VA libraries @<:@default=${libdir}/va@:>@])], 1750 [VA_LIB_INSTALL_DIR="$withval"], 1751 [VA_LIB_INSTALL_DIR='${libdir}/va']) 1752 AC_SUBST([VA_LIB_INSTALL_DIR]) 1753 1754 dnl Directory for OpenCL libs 1755 AC_ARG_WITH([opencl-libdir], 1756 [AS_HELP_STRING([--with-opencl-libdir=DIR], 1757 [directory for the OpenCL libraries @<:@default=${libdir}/opencl@:>@])], 1758 [OPENCL_LIB_INSTALL_DIR="$withval"], 1759 [OPENCL_LIB_INSTALL_DIR='${libdir}/opencl']) 1760 AC_SUBST([OPENCL_LIB_INSTALL_DIR]) 1761 1762 dnl 1763 dnl Gallium helper functions 1764 dnl 1765 gallium_check_st() { 1766 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes || 1767 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes || 1768 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then 1769 if test "x$have_libdrm" != xyes; then 1770 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED]) 1771 fi 1772 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1" 1773 fi 1774 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then 1775 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2" 1776 fi 1777 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then 1778 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3" 1779 fi 1780 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then 1781 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4" 1782 fi 1783 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then 1784 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5" 1785 fi 1786 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then 1787 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6" 1788 fi 1789 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then 1790 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7" 1791 fi 1792 } 1793 1794 gallium_require_llvm() { 1795 if test "x$MESA_LLVM" = x0; then 1796 case "$host_cpu" in 1797 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);; 1798 esac 1799 fi 1800 } 1801 1802 gallium_require_drm_loader() { 1803 if test "x$enable_gallium_loader" = xyes; then 1804 PKG_CHECK_MODULES([LIBUDEV], [libudev], [], 1805 AC_MSG_ERROR([Gallium drm loader requrires libudev])) 1806 if test "x$have_libdrm" != xyes; then 1807 AC_MSG_ERROR([Gallium drm loader requires libdrm >= $LIBDRM_REQUIRED]) 1808 fi 1809 enable_gallium_drm_loader=yes 1810 fi 1811 } 1812 1813 dnl Gallium drivers 1814 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block 1815 if test "x$with_gallium_drivers" != x; then 1816 gallium_drivers=`IFS=', '; echo $with_gallium_drivers` 1817 for driver in $gallium_drivers; do 1818 case "x$driver" in 1819 xsvga) 1820 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe" 1821 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx" 1822 ;; 1823 xi915) 1824 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED]) 1825 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe" 1826 if test "x$MESA_LLVM" = x1; then 1827 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe" 1828 fi 1829 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw" 1830 gallium_check_st "i915/drm" "dri-i915" "xorg-i915" 1831 ;; 1832 xr300) 1833 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED]) 1834 gallium_require_llvm "Gallium R300" 1835 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300" 1836 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300" 1837 ;; 1838 xr600) 1839 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED]) 1840 gallium_require_drm_loader 1841 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600" 1842 if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then 1843 if test "x$LLVM_VERSION" != "x3.1"; then 1844 AC_MSG_ERROR([LLVM 3.1 is required for the r600 llvm compiler.]) 1845 fi 1846 NEED_RADEON_GALLIUM=yes; 1847 fi 1848 if test "x$enable_r600_llvm" = xyes; then 1849 USE_R600_LLVM_COMPILER=yes; 1850 fi 1851 if test "x$enable_opencl" = xyes -a "x$with_llvm_shared_libs" = xno; then 1852 LLVM_LIBS="${LLVM_LIBS} `$LLVM_CONFIG --libs bitreader asmparser`" 1853 fi 1854 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600" 1855 ;; 1856 xradeonsi) 1857 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED]) 1858 gallium_require_drm_loader 1859 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS radeonsi" 1860 if test "x$LLVM_VERSION" != "x3.1"; then 1861 AC_MSG_ERROR([LLVM 3.1 is required to build the radeonsi driver.]) 1862 fi 1863 NEED_RADEON_GALLIUM=yes; 1864 gallium_check_st "radeon/drm" "dri-radeonsi" "xorg-radeonsi" "" "" "vdpau-radeonsi" "" 1865 ;; 1866 xnouveau) 1867 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED]) 1868 gallium_require_drm_loader 1869 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nv30 nv50 nvc0" 1870 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau" 1871 ;; 1872 xswrast) 1873 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe" 1874 if test "x$MESA_LLVM" = x1; then 1875 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe" 1876 fi 1877 1878 if test "x$HAVE_ST_DRI" = xyes; then 1879 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast" 1880 fi 1881 if test "x$HAVE_ST_VDPAU" = xyes; then 1882 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe" 1883 fi 1884 if test "x$HAVE_ST_XVMC" = xyes; then 1885 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe" 1886 fi 1887 if test "x$HAVE_ST_VA" = xyes; then 1888 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe" 1889 fi 1890 if test "x$HAVE_ST_VDPAU" = xyes || 1891 test "x$HAVE_ST_XVMC" = xyes || 1892 test "x$HAVE_ST_VA" = xyes; then 1893 if test "x$HAVE_WINSYS_XLIB" != xyes; then 1894 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib" 1895 fi 1896 fi 1897 ;; 1898 *) 1899 AC_MSG_ERROR([Unknown Gallium driver: $driver]) 1900 ;; 1901 esac 1902 done 1903 fi 1904 1905 if test "x$enable_gallium_loader" = xyes; then 1906 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null" 1907 GALLIUM_PIPE_LOADER_DEFINES="-DHAVE_PIPE_LOADER_SW" 1908 GALLIUM_PIPE_LOADER_LIBS="\$(TOP)/src/gallium/auxiliary/pipe-loader/libpipe_loader.a" 1909 GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS \$(TOP)/src/gallium/winsys/sw/null/libws_null.a" 1910 1911 if test "x$HAVE_WINSYS_XLIB" = xyes; then 1912 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_XLIB" 1913 GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS \$(TOP)/src/gallium/winsys/sw/xlib/libws_xlib.a" 1914 fi 1915 1916 if test "x$enable_gallium_drm_loader" = xyes; then 1917 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRM" 1918 PKG_CHECK_MODULES([GALLIUM_PIPE_LOADER_XCB], [xcb xcb-dri2], 1919 pipe_loader_have_xcb=yes, pipe_loader_have_xcb=no) 1920 if test "x$pipe_loader_have_xcb" = xyes; then 1921 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DPIPE_LOADER_HAVE_XCB" 1922 GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS $GALLIUM_PIPE_LOADER_XCB_LIBS $LIBDRM_LIBS" 1923 fi 1924 fi 1925 1926 AC_SUBST([GALLIUM_PIPE_LOADER_DEFINES]) 1927 AC_SUBST([GALLIUM_PIPE_LOADER_LIBS]) 1928 fi 1929 1930 dnl Tell Automake which drivers to build 1931 for driver in $GALLIUM_DRIVERS_DIRS; do 1932 case "x$driver" in 1933 xgalahad) 1934 HAVE_GALAHAD_GALLIUM=yes; 1935 ;; 1936 xidentity) 1937 HAVE_IDENTITY_GALLIUM=yes; 1938 ;; 1939 xnoop) 1940 HAVE_NOOP_GALLIUM=yes; 1941 ;; 1942 *) 1943 GALLIUM_MAKE_DIRS="$GALLIUM_MAKE_DIRS $driver" 1944 ;; 1945 esac 1946 done 1947 1948 AM_CONDITIONAL(HAVE_GALAHAD_GALLIUM, test x$HAVE_GALAHAD_GALLIUM = xyes) 1949 AM_CONDITIONAL(HAVE_IDENTITY_GALLIUM, test x$HAVE_IDENTITY_GALLIUM = xyes) 1950 AM_CONDITIONAL(HAVE_NOOP_GALLIUM, test x$HAVE_NOOP_GALLIUM = xyes) 1951 AM_CONDITIONAL(NEED_RADEON_GALLIUM, test x$NEED_RADEON_GALLIUM = xyes) 1952 AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes) 1953 AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes) 1954 AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes) 1955 AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes) 1956 AC_SUBST([GALLIUM_MAKE_DIRS]) 1957 1958 AM_CONDITIONAL(HAVE_X11_DRIVER, echo "$DRIVER_DIRS" | grep 'x11' >/dev/null 2>&1) 1959 1960 AM_CONDITIONAL(HAVE_X86_ASM, echo "$DEFINES" | grep 'X86_ASM' >/dev/null 2>&1) 1961 AM_CONDITIONAL(HAVE_X86_64_ASM, echo "$DEFINES" | grep 'X86_64_ASM' >/dev/null 2>&1) 1962 AM_CONDITIONAL(HAVE_SPARC_ASM, echo "$DEFINES" | grep 'SPARC_ASM' >/dev/null 2>&1) 1963 1964 dnl prepend CORE_DIRS to SRC_DIRS 1965 SRC_DIRS="$CORE_DIRS $SRC_DIRS" 1966 1967 dnl Restore LDFLAGS and CPPFLAGS 1968 LDFLAGS="$_SAVE_LDFLAGS" 1969 CPPFLAGS="$_SAVE_CPPFLAGS" 1970 1971 dnl Add user CFLAGS and CXXFLAGS 1972 CFLAGS="$CFLAGS $USER_CFLAGS" 1973 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS" 1974 1975 dnl Substitute the config 1976 AC_CONFIG_FILES([configs/current 1977 Makefile 1978 src/egl/Makefile 1979 src/egl/drivers/Makefile 1980 src/egl/drivers/dri2/Makefile 1981 src/egl/drivers/glx/Makefile 1982 src/egl/main/Makefile 1983 src/egl/main/egl.pc 1984 src/egl/wayland/Makefile 1985 src/egl/wayland/wayland-drm/Makefile 1986 src/egl/wayland/wayland-egl/Makefile 1987 src/egl/wayland/wayland-egl/wayland-egl.pc 1988 src/gallium/Makefile 1989 src/gallium/auxiliary/pipe-loader/Makefile 1990 src/gallium/drivers/Makefile 1991 src/gallium/drivers/r300/Makefile 1992 src/gallium/drivers/r600/Makefile 1993 src/gallium/state_trackers/clover/Makefile 1994 src/gallium/targets/opencl/Makefile 1995 src/gbm/Makefile 1996 src/gbm/main/gbm.pc 1997 src/glsl/Makefile 1998 src/glsl/glcpp/Makefile 1999 src/glsl/tests/Makefile 2000 src/glx/Makefile 2001 src/glx/tests/Makefile 2002 src/gtest/Makefile 2003 src/Makefile 2004 src/mapi/es1api/Makefile 2005 src/mapi/es1api/glesv1_cm.pc 2006 src/mapi/es2api/Makefile 2007 src/mapi/es2api/glesv2.pc 2008 src/mapi/glapi/Makefile 2009 src/mapi/glapi/gen/Makefile 2010 src/mapi/glapi/tests/Makefile 2011 src/mapi/shared-glapi/Makefile 2012 src/mapi/shared-glapi/tests/Makefile 2013 src/mapi/vgapi/Makefile 2014 src/mapi/vgapi/vg.pc 2015 src/mesa/Makefile 2016 src/mesa/gl.pc 2017 src/mesa/drivers/Makefile 2018 src/mesa/drivers/dri/dri.pc 2019 src/mesa/drivers/dri/common/Makefile 2020 src/mesa/drivers/dri/i915/Makefile 2021 src/mesa/drivers/dri/i965/Makefile 2022 src/mesa/drivers/dri/Makefile 2023 src/mesa/drivers/dri/nouveau/Makefile 2024 src/mesa/drivers/dri/r200/Makefile 2025 src/mesa/drivers/dri/radeon/Makefile 2026 src/mesa/drivers/dri/swrast/Makefile 2027 src/mesa/drivers/osmesa/Makefile 2028 src/mesa/drivers/osmesa/osmesa.pc 2029 src/mesa/drivers/x11/Makefile 2030 src/mesa/libdricore/Makefile 2031 src/mesa/main/tests/Makefile 2032 src/mesa/x86-64/Makefile 2033 src/mesa/x86/Makefile]) 2034 2035 dnl Sort the dirs alphabetically 2036 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "` 2037 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "` 2038 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "` 2039 GALLIUM_MAKE_DIRS=`echo $GALLIUM_MAKE_DIRS|tr " " "\n"|sort -u|tr "\n" " "` 2040 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "` 2041 2042 AC_OUTPUT 2043 2044 dnl 2045 dnl Output some configuration info for the user 2046 dnl 2047 echo "" 2048 echo " prefix: $prefix" 2049 echo " exec_prefix: $exec_prefix" 2050 echo " libdir: $libdir" 2051 echo " includedir: $includedir" 2052 2053 dnl API info 2054 echo "" 2055 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)" 2056 echo " OpenVG: $enable_openvg" 2057 2058 dnl Driver info 2059 echo "" 2060 if test "x$enable_osmesa" != xno; then 2061 echo " OSMesa: lib$OSMESA_LIB" 2062 else 2063 echo " OSMesa: no" 2064 fi 2065 2066 if test "x$enable_dri" != xno; then 2067 # cleanup the drivers var 2068 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'` 2069 if test "x$DRI_DIRS" = x; then 2070 echo " DRI drivers: no" 2071 else 2072 echo " DRI drivers: $dri_dirs" 2073 fi 2074 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR" 2075 fi 2076 2077 case "x$enable_glx$enable_xlib_glx" in 2078 xyesyes) 2079 echo " GLX: Xlib-based" 2080 ;; 2081 xyesno) 2082 echo " GLX: DRI-based" 2083 ;; 2084 *) 2085 echo " GLX: $enable_glx" 2086 ;; 2087 esac 2088 2089 dnl EGL 2090 echo "" 2091 echo " EGL: $enable_egl" 2092 if test "$enable_egl" = yes; then 2093 echo " EGL platforms: $EGL_PLATFORMS" 2094 2095 egl_drivers="" 2096 if test "x$HAVE_EGL_DRIVER_GLX" != "x"; then 2097 egl_drivers="$egl_drivers builtin:egl_glx" 2098 fi 2099 if test "x$HAVE_EGL_DRIVER_DRI2" != "x"; then 2100 egl_drivers="$egl_drivers builtin:egl_dri2" 2101 fi 2102 2103 if test "x$HAVE_ST_EGL" = xyes; then 2104 echo " EGL drivers: ${egl_drivers} egl_gallium" 2105 echo " EGL Gallium STs:$EGL_CLIENT_APIS" 2106 else 2107 echo " EGL drivers: $egl_drivers" 2108 fi 2109 fi 2110 2111 echo "" 2112 if test "x$MESA_LLVM" = x1; then 2113 echo " llvm: yes" 2114 echo " llvm-config: $LLVM_CONFIG" 2115 echo " llvm-version: $LLVM_VERSION" 2116 else 2117 echo " llvm: no" 2118 fi 2119 2120 echo "" 2121 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then 2122 echo " Gallium: yes" 2123 echo " Gallium dirs: $GALLIUM_DIRS" 2124 echo " Target dirs: $GALLIUM_TARGET_DIRS" 2125 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS" 2126 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS" 2127 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS" 2128 else 2129 echo " Gallium: no" 2130 fi 2131 2132 2133 dnl Libraries 2134 echo "" 2135 echo " Shared libs: $enable_shared" 2136 echo " Static libs: $enable_static" 2137 echo " Shared-glapi: $enable_shared_glapi" 2138 2139 dnl Compiler options 2140 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars 2141 cflags=`echo $CFLAGS $PIC_FLAGS | \ 2142 $SED 's/^ *//;s/ */ /;s/ *$//'` 2143 cxxflags=`echo $CXXFLAGS $PIC_FLAGS | \ 2144 $SED 's/^ *//;s/ */ /;s/ *$//'` 2145 defines=`echo $DEFINES | $SED 's/^ *//;s/ */ /;s/ *$//'` 2146 echo "" 2147 echo " CFLAGS: $cflags" 2148 echo " CXXFLAGS: $cxxflags" 2149 echo " Macros: $defines" 2150 echo "" 2151 echo " PYTHON2: $PYTHON2" 2152 2153 echo "" 2154 echo " Run '${MAKE-make}' to build Mesa" 2155 echo "" 2156