1dnl Process this file with autoconf to create configure. 2 3AC_PREREQ([2.60]) 4 5dnl Tell the user about autoconf.html in the --help output 6m4_divert_once([HELP_END], [ 7See docs/autoconf.html for more details on the options for Mesa.]) 8 9AC_INIT([Mesa], [9.0.3], 10 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa]) 11AC_CONFIG_AUX_DIR([bin]) 12AC_CONFIG_MACRO_DIR([m4]) 13AC_CANONICAL_HOST 14AM_INIT_AUTOMAKE([foreign]) 15 16dnl http://people.gnome.org/~walters/docs/build-api.txt 17dnl We don't support srcdir != builddir. 18echo \#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 23m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 24 25m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) 26 27LT_PREREQ([2.2]) 28LT_INIT([disable-static]) 29 30dnl Set internal versions 31OSMESA_VERSION=8 32AC_SUBST([OSMESA_VERSION]) 33 34dnl Versions for external dependencies 35LIBDRM_REQUIRED=2.4.24 36LIBDRM_RADEON_REQUIRED=2.4.39 37LIBDRM_INTEL_REQUIRED=2.4.38 38LIBDRM_NVVIEUX_REQUIRED=2.4.33 39LIBDRM_NOUVEAU_REQUIRED=2.4.33 40DRI2PROTO_REQUIRED=2.6 41GLPROTO_REQUIRED=1.4.14 42LIBDRM_XORG_REQUIRED=2.4.24 43LIBKMS_XORG_REQUIRED=1.0.0 44 45dnl Check for progs 46AC_PROG_CPP 47AC_PROG_CC 48AC_PROG_CXX 49AM_PROG_CC_C_O 50AM_PROG_AS 51AC_CHECK_PROGS([MAKE], [gmake make]) 52AC_CHECK_PROGS([PYTHON2], [python2 python]) 53AX_PYTHON_MODULE([libxml2], [needed]) 54AC_PROG_SED 55AC_PROG_MKDIR_P 56AC_PATH_PROG([MKDEP], [makedepend]) 57 58if test "x$MKDEP" = "x"; then 59 AC_MSG_ERROR([makedepend is required to build Mesa]) 60fi 61 62AC_PROG_YACC 63AC_PATH_PROG([YACC_INST], $YACC) 64if 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 68fi 69AC_PROG_LEX 70 71AC_PATH_PROG([PERL], [perl]) 72 73AC_CHECK_PROG(INDENT, indent, indent, cat) 74if test "x$INDENT" != "xcat"; then 75 AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -T GLubyte -T GLbyte -T Bool') 76fi 77 78dnl Our fallback install-sh is a symlink to minstall. Use the existing 79dnl configuration in that case. 80AC_PROG_INSTALL 81test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)' 82 83dnl We need a POSIX shell for parts of the build. Assume we have one 84dnl in most cases. 85case "$host_os" in 86solaris*) 87 # Solaris /bin/sh is too old/non-POSIX compliant 88 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh]) 89 SHELL="$POSIX_SHELL" 90 ;; 91esac 92 93dnl clang is mostly GCC-compatible, but its version is much lower, 94dnl so we have to check for it. 95AC_MSG_CHECKING([if compiling with clang]) 96 97AC_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 105AC_MSG_RESULT([$acv_mesa_CLANG]) 106 107dnl If we're using GCC, make sure that it is at least version 3.3.0. Older 108dnl versions are explictly not supported. 109if 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 126fi 127 128 129MKDEP_OPTIONS=-fdepend 130dnl Ask gcc where it's keeping its secret headers 131if 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 140fi 141AC_SUBST([MKDEP_OPTIONS]) 142 143dnl Make sure the pkg-config macros are defined 144m4_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.])]) 149PKG_PROG_PKG_CONFIG() 150 151dnl LIB_DIR - library basename 152LIB_DIR=`echo $libdir | $SED 's%.*/%%'` 153AC_SUBST([LIB_DIR]) 154 155dnl Cache LDFLAGS and CPPFLAGS so we can add to them and restore later 156_SAVE_LDFLAGS="$LDFLAGS" 157_SAVE_CPPFLAGS="$CPPFLAGS" 158 159dnl Compiler macros 160DEFINES="" 161AC_SUBST([DEFINES]) 162case "$host_os" in 163linux*|*-gnu*|gnu*) 164 DEFINES="$DEFINES -D_GNU_SOURCE -DHAVE_PTHREAD" 165 ;; 166solaris*) 167 DEFINES="$DEFINES -DHAVE_PTHREAD -DSVR4" 168 ;; 169cygwin*) 170 DEFINES="$DEFINES -DHAVE_PTHREAD" 171 ;; 172esac 173 174dnl Add flags for gcc and g++ 175if 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" 208fi 209if 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" 231fi 232 233dnl even if the compiler appears to support it, using visibility attributes isn't 234dnl going to do anything useful currently on cygwin apart from emit lots of warnings 235case "$host_os" in 236cygwin*) 237 VISIBILITY_CFLAGS="" 238 VISIBILITY_CXXFLAGS="" 239 ;; 240esac 241 242AC_SUBST([VISIBILITY_CFLAGS]) 243AC_SUBST([VISIBILITY_CXXFLAGS]) 244 245dnl 246dnl Hacks to enable 32 or 64 bit build 247dnl 248AC_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) 254if 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 262fi 263AC_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) 269if 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 276fi 277 278dnl Can't have static and shared libraries, default to static if user 279dnl explicitly requested. If both disabled, set to static since shared 280dnl was explicitly requested. 281case "x$enable_static$enable_shared" in 282xyesyes ) 283 AC_MSG_WARN([Cannot build static and shared libraries, disabling shared]) 284 enable_shared=no 285 ;; 286xnono ) 287 AC_MSG_WARN([Cannot disable both static and shared libraries, enabling static]) 288 enable_static=yes 289 ;; 290esac 291 292AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes) 293 294dnl 295dnl mklib options 296dnl 297AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib]) 298if test "$enable_static" = yes; then 299 MKLIB_OPTIONS="$MKLIB_OPTIONS -static" 300fi 301AC_SUBST([MKLIB_OPTIONS]) 302 303dnl 304dnl other compiler options 305dnl 306AC_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) 312if 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 320fi 321 322dnl 323dnl library names 324dnl 325LIB_PREFIX_GLOB='lib' 326LIB_VERSION_SEPARATOR='.' 327if test "$enable_static" = yes; then 328 LIB_EXTENSION='a' 329else 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 343fi 344AC_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]) 349AC_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]) 354AS_IF([test "x$GL_LIB" = xyes], [GL_LIB=GL]) 355AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa]) 356 357dnl 358dnl Mangled Mesa support 359dnl 360AC_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) 366if test "x${enable_mangling}" = "xyes" ; then 367 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE" 368 GL_LIB="Mangled${GL_LIB}" 369 OSMESA_LIB="Mangled${OSMESA_LIB}" 370fi 371AC_SUBST([GL_LIB]) 372AC_SUBST([OSMESA_LIB]) 373 374dnl 375dnl potentially-infringing-but-nobody-knows-for-sure stuff 376dnl 377AC_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) 383if 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" 387fi 388 389GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION} 390OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION} 391EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION} 392GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION} 393GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION} 394VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION} 395GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION} 396 397GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' 398EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' 399EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' 400GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' 401GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' 402VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' 403GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' 404 405AC_SUBST([GL_LIB_NAME]) 406AC_SUBST([OSMESA_LIB_NAME]) 407AC_SUBST([EGL_LIB_NAME]) 408AC_SUBST([GLESv1_CM_LIB_NAME]) 409AC_SUBST([GLESv2_LIB_NAME]) 410AC_SUBST([VG_LIB_NAME]) 411AC_SUBST([GLAPI_LIB_NAME]) 412 413AC_SUBST([GL_LIB_GLOB]) 414AC_SUBST([EGL_LIB_GLOB]) 415AC_SUBST([GLESv1_CM_LIB_GLOB]) 416AC_SUBST([GLESv2_LIB_GLOB]) 417AC_SUBST([VG_LIB_GLOB]) 418AC_SUBST([GLAPI_LIB_GLOB]) 419 420dnl 421dnl Arch/platform-specific settings 422dnl 423AC_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) 429asm_arch="" 430MESA_ASM_FILES="" 431AC_MSG_CHECKING([whether to enable assembly]) 432test "x$enable_asm" = xno && AC_MSG_RESULT([no]) 433# disable if cross compiling on x86/x86_64 since we must run gen_matypes 434if 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 441fi 442# check for supported arches 443if 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 488fi 489AC_SUBST([MESA_ASM_FILES]) 490 491dnl PIC code macro 492MESA_PIC_FLAGS 493 494dnl Check to see if dlopen is in default libraries (like Solaris, which 495dnl has it in libc), or if libdl is needed to get it. 496AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"], 497 [AC_CHECK_LIB([dl], [dlopen], 498 [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])]) 499AC_SUBST([DLOPEN_LIBS]) 500 501dnl See if posix_memalign is available 502AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"]) 503 504dnl Check for pthreads 505AX_PTHREAD 506dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS 507dnl to -pthread, which causes problems if we need -lpthread to appear in 508dnl pkgconfig files. 509test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread" 510 511dnl SELinux awareness. 512AC_ARG_ENABLE([selinux], 513 [AS_HELP_STRING([--enable-selinux], 514 [Build SELinux-aware Mesa @<:@default=disabled@:>@])], 515 [MESA_SELINUX="$enableval"], 516 [MESA_SELINUX=no]) 517if 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" 524fi 525AC_SUBST([SELINUX_LIBS]) 526 527dnl Options for APIs 528AC_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]) 533AC_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]) 538AC_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]) 543AC_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 549AC_ARG_ENABLE([dri], 550 [AS_HELP_STRING([--enable-dri], 551 [enable DRI modules @<:@default=enabled@:>@])], 552 [enable_dri="$enableval"], 553 [enable_dri=yes]) 554AC_ARG_ENABLE([glx], 555 [AS_HELP_STRING([--enable-glx], 556 [enable GLX library @<:@default=enabled@:>@])], 557 [enable_glx="$enableval"], 558 [enable_glx=yes]) 559AC_ARG_ENABLE([osmesa], 560 [AS_HELP_STRING([--enable-osmesa], 561 [enable OSMesa library @<:@default=disabled@:>@])], 562 [enable_osmesa="$enableval"], 563 [enable_osmesa=no]) 564AC_ARG_ENABLE([egl], 565 [AS_HELP_STRING([--disable-egl], 566 [disable EGL library @<:@default=enabled@:>@])], 567 [enable_egl="$enableval"], 568 [enable_egl=yes]) 569 570AC_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]) 575AC_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]) 580AC_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]) 585AC_ARG_ENABLE([gbm], 586 [AS_HELP_STRING([--enable-gbm], 587 [enable gbm library @<:@default=auto@:>@])], 588 [enable_gbm="$enableval"], 589 [enable_gbm=auto]) 590 591AC_ARG_ENABLE([xvmc], 592 [AS_HELP_STRING([--enable-xvmc], 593 [enable xvmc library @<:@default=auto@:>@])], 594 [enable_xvmc="$enableval"], 595 [enable_xvmc=auto]) 596AC_ARG_ENABLE([vdpau], 597 [AS_HELP_STRING([--enable-vdpau], 598 [enable vdpau library @<:@default=auto@:>@])], 599 [enable_vdpau="$enableval"], 600 [enable_vdpau=auto]) 601AC_ARG_ENABLE([va], 602 [AS_HELP_STRING([--enable-va], 603 [enable va library @<:@default=auto@:>@])], 604 [enable_va="$enableval"], 605 [enable_va=auto]) 606AC_ARG_ENABLE([opencl], 607 [AS_HELP_STRING([--enable-opencl], 608 [enable OpenCL library @<:@default=no@:>@])], 609 [enable_opencl="$enableval"], 610 [enable_opencl=no]) 611AC_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]) 616AC_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]) 623AC_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 631AC_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 637AC_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 644GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast" 645 646AC_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. 656case "$with_gallium_drivers" in 657 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;; 658 no) with_gallium_drivers='' ;; 659esac 660 661if 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]) 673fi 674 675# Building OpenGL ES1 and/or ES2 without OpenGL is not supported on mesa 9.0.x 676if test "x$enable_opengl" = xno -a \ 677 "x$enable_gles1" = xyes; then 678 AC_MSG_ERROR([Building OpenGL ES1 without OpenGL is not supported]) 679fi 680 681if test "x$enable_opengl" = xno -a \ 682 "x$enable_gles2" = xyes; then 683 AC_MSG_ERROR([Building OpenGL ES2 without OpenGL is not supported]) 684fi 685 686API_DEFINES="" 687if test "x$enable_opengl" = xno; then 688 API_DEFINES="$API_DEFINES -DFEATURE_GL=0" 689else 690 API_DEFINES="$API_DEFINES -DFEATURE_GL=1" 691fi 692if test "x$enable_gles1" = xyes; then 693 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1" 694fi 695if test "x$enable_gles2" = xyes; then 696 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1" 697fi 698AC_SUBST([API_DEFINES]) 699 700if test "x$enable_glx" = xno; then 701 AC_MSG_WARN([GLX disabled, disabling Xlib-GLX]) 702 enable_xlib_glx=no 703fi 704 705if test "x$enable_dri$enable_xlib_glx" = xyesyes; then 706 AC_MSG_ERROR([DRI and Xlib-GLX cannot be built together]) 707fi 708 709if test "x$enable_opengl$enable_xlib_glx" = xnoyes; then 710 AC_MSG_ERROR([Xlib-GLX cannot be built without OpenGL]) 711fi 712 713# Disable GLX if OpenGL is not enabled 714if test "x$enable_glx$enable_opengl" = xyesno; then 715 AC_MSG_WARN([OpenGL not enabled, disabling GLX]) 716 enable_glx=no 717fi 718 719# Disable GLX if DRI and Xlib-GLX are not enabled 720if 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 725fi 726 727AM_CONDITIONAL(HAVE_DRI, test "x$enable_dri" = xyes) 728AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_xlib_glx" = xyes -o \ 729 "x$enable_osmesa" = xyes) 730 731AC_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 738if test "x$enable_dri" = xno; then 739 AC_MSG_NOTICE([Shared GLAPI is only useful for DRI, disabling]) 740 enable_shared_glapi=no 741fi 742 743# TODO: Get rid of SHARED_GLAPI variable 744SHARED_GLAPI="0" 745if 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" 751fi 752AC_SUBST([SHARED_GLAPI]) 753AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes) 754 755dnl 756dnl Driver specific build directories 757dnl 758SRC_DIRS="gtest" 759GALLIUM_DIRS="auxiliary drivers state_trackers" 760GALLIUM_TARGET_DIRS="" 761GALLIUM_WINSYS_DIRS="sw" 762GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity" 763GALLIUM_STATE_TRACKERS_DIRS="" 764 765# build glapi if OpenGL is enabled 766if test "x$enable_opengl" = xyes; then 767 CORE_DIRS="$CORE_DIRS mapi/glapi" 768fi 769 770# build es1api if OpenGL ES 1.x is enabled 771if test "x$enable_gles1" = xyes; then 772 CORE_DIRS="$CORE_DIRS mapi/es1api" 773fi 774 775# build es2api if OpenGL ES 2.x is enabled 776if test "x$enable_gles2" = xyes; then 777 CORE_DIRS="$CORE_DIRS mapi/es2api" 778fi 779 780# build glsl and mesa if OpenGL or OpenGL ES is enabled 781case "x$enable_opengl$enable_gles1$enable_gles2" in 782x*yes*) 783 CORE_DIRS="mapi/glapi/gen $CORE_DIRS glsl mesa" 784 ;; 785esac 786 787case "x$enable_glx$enable_xlib_glx" in 788xyesyes) 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 ;; 795xyesno) 796 # DRI-based GLX 797 SRC_DIRS="$SRC_DIRS glx" 798 ;; 799esac 800 801if 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" 807fi 808 809if test "x$enable_osmesa" = xyes; then 810 DRIVER_DIRS="$DRIVER_DIRS osmesa" 811fi 812 813AC_SUBST([SRC_DIRS]) 814AC_SUBST([DRIVER_DIRS]) 815AC_SUBST([GALLIUM_DIRS]) 816AC_SUBST([GALLIUM_TARGET_DIRS]) 817AC_SUBST([GALLIUM_WINSYS_DIRS]) 818AC_SUBST([GALLIUM_DRIVERS_DIRS]) 819AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS]) 820AC_SUBST([MESA_LLVM]) 821 822# Check for libdrm 823PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED], 824 [have_libdrm=yes], [have_libdrm=no]) 825 826if 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 836fi 837 838dnl Find out if X is available. 839PKG_CHECK_MODULES([X11], [x11]) 840 841dnl Try to tell the user that the --x-* options are only used when 842dnl pkg-config is not available. This must be right after AC_PATH_XTRA. 843m4_divert_once([HELP_BEGIN], 844[These options are only used when the X libraries cannot be found by the 845pkg-config utility.]) 846 847dnl We need X for xlib and dri, so bomb now if it's not found 848if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then 849 AC_MSG_ERROR([X11 development libraries needed for GLX]) 850fi 851 852if test "x$enable_glx" = xyes; then 853 DEFINES="$DEFINES -DUSE_XCB" 854fi 855 856dnl Direct rendering or just indirect rendering 857case "$host_os" in 858gnu*) 859 dnl Disable by default on GNU/Hurd 860 driglx_direct_default="no" 861 ;; 862cygwin*) 863 dnl Disable by default on cygwin 864 driglx_direct_default="no" 865 ;; 866*) 867 driglx_direct_default="yes" 868 ;; 869esac 870AC_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 877dnl 878dnl libGL configuration per driver 879dnl 880case "x$enable_glx$enable_xlib_glx" in 881xyesyes) 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 ;; 890xyesno) 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 ;; 919esac 920 921# This is outside the case (above) so that it is invoked even for non-GLX 922# builds. 923AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes) 924 925GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS" 926GLESv1_CM_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS" 927GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS" 928GLESv2_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS" 929 930AC_SUBST([GL_LIB_DEPS]) 931AC_SUBST([GL_PC_REQ_PRIV]) 932AC_SUBST([GL_PC_LIB_PRIV]) 933AC_SUBST([GL_PC_CFLAGS]) 934AC_SUBST([DRI_PC_REQ_PRIV]) 935AC_SUBST([GLESv1_CM_LIB_DEPS]) 936AC_SUBST([GLESv1_CM_PC_LIB_PRIV]) 937AC_SUBST([GLESv2_LIB_DEPS]) 938AC_SUBST([GLESv2_PC_LIB_PRIV]) 939 940DRI_LIB_DEPS="\$(top_builddir)/src/mesa/libdricore/libdricore${VERSION}.la" 941 942AC_SUBST([HAVE_XF86VIDMODE]) 943 944dnl 945dnl More GLX setup 946dnl 947case "x$enable_glx$enable_xlib_glx" in 948xyesyes) 949 DEFINES="$DEFINES -DUSE_XSHM" 950 ;; 951xyesno) 952 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING" 953 if test "x$driglx_direct" = xyes; then 954 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING" 955 fi 956 ;; 957esac 958 959dnl 960dnl TLS detection 961dnl 962 963AC_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]) 968AC_SUBST(GLX_TLS, ${GLX_USE_TLS}) 969 970AS_IF([test "x$GLX_USE_TLS" = xyes -a "x$ax_pthread_ok" = xyes], 971 [DEFINES="${DEFINES} -DGLX_USE_TLS -DHAVE_PTHREAD"]) 972 973dnl 974dnl More DRI setup 975dnl 976dnl Directory for DRI drivers 977AC_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']) 982AC_SUBST([DRI_DRIVER_INSTALL_DIR]) 983dnl Extra search path for DRI drivers 984AC_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}']) 989AC_SUBST([DRI_DRIVER_SEARCH_DIR]) 990dnl Which drivers to build - default is chosen by platform 991AC_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]) 997if test "x$with_dri_drivers" = x; then 998 with_dri_drivers=no 999fi 1000 1001dnl If $with_dri_drivers is yes, directories will be added through 1002dnl platform checks 1003DRI_DIRS="" 1004case "$with_dri_drivers" in 1005no) ;; 1006yes) 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 ;; 1024esac 1025 1026dnl Set DRI_DIRS, DEFINES and LIB_DEPS 1027if 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" 1116fi 1117AM_CONDITIONAL(NEED_LIBDRICORE, test -n "$DRI_DIRS") 1118AC_SUBST([DRI_DIRS]) 1119AC_SUBST([EXPAT_INCLUDES]) 1120AC_SUBST([DRI_LIB_DEPS]) 1121AC_SUBST([GALLIUM_DRI_LIB_DEPS]) 1122 1123case $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 ;; 1139esac 1140 1141case $DRI_DIRS in 1142*nouveau*) 1143 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED]) 1144 HAVE_NOUVEAU_DRI=yes; 1145 ;; 1146esac 1147 1148case $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 ;; 1164esac 1165 1166case $DRI_DIRS in 1167*swrast*) 1168 HAVE_SWRAST_DRI=yes; 1169 ;; 1170esac 1171 1172AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes) 1173AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes) 1174AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes) 1175AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes) 1176AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes) 1177AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes) 1178AM_CONDITIONAL(HAVE_COMMON_DRI, test x$HAVE_COMMON_DRI = xyes) 1179 1180dnl 1181dnl OSMesa configuration 1182dnl 1183 1184dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...) 1185AC_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]) 1190if 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 1195fi 1196case "x$osmesa_bits" in 1197x8) 1198 OSMESA_LIB="${OSMESA_LIB}" 1199 ;; 1200x16|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 ;; 1207esac 1208 1209if 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" 1218fi 1219 1220AC_SUBST([OSMESA_LIB_DEPS]) 1221AC_SUBST([OSMESA_MESA_DEPS]) 1222AC_SUBST([OSMESA_PC_REQ]) 1223AC_SUBST([OSMESA_PC_LIB_PRIV]) 1224 1225dnl 1226dnl gbm configuration 1227dnl 1228if 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 1235fi 1236if 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 1248fi 1249GBM_PC_REQ_PRIV="libudev" 1250GBM_PC_LIB_PRIV="$DLOPEN_LIBS" 1251AC_SUBST([GBM_PC_REQ_PRIV]) 1252AC_SUBST([GBM_PC_LIB_PRIV]) 1253 1254dnl 1255dnl EGL configuration 1256dnl 1257EGL_CLIENT_APIS="" 1258 1259if 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 1282fi 1283AC_SUBST([EGL_LIB_DEPS]) 1284 1285dnl 1286dnl EGL Gallium configuration 1287dnl 1288if 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" 1302fi 1303 1304dnl 1305dnl gbm Gallium configuration 1306dnl 1307if 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 1314fi 1315if 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 1331fi 1332 1333dnl 1334dnl X.Org DDX configuration 1335dnl 1336if 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 1345fi 1346 1347dnl 1348dnl XA configuration 1349dnl 1350if test "x$enable_xa" = xyes; then 1351AC_PROG_AWK 1352AC_PROG_GREP 1353AC_CHECK_PROG(NM, nm, "nm") 1354if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then 1355AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.]) 1356enable_xa=no 1357fi 1358fi 1359if 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) 1365fi 1366 1367dnl 1368dnl OpenVG configuration 1369dnl 1370VG_LIB_DEPS="" 1371 1372if 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]) 1390fi 1391 1392dnl 1393dnl D3D1X configuration 1394dnl 1395 1396if 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 1403fi 1404 1405dnl 1406dnl Gallium G3DVL configuration 1407dnl 1408AC_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]) 1413if 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 1431fi 1432 1433if 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" 1437fi 1438 1439if 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" 1443fi 1444 1445if 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" 1450fi 1451 1452dnl 1453dnl OpenCL configuration 1454dnl 1455 1456AC_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 1462if 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]) 1466fi 1467 1468 1469AC_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 1475LIBCLC_INCLUDEDIR=`pkg-config --variable=includedir libclc` 1476LIBCLC_LIBEXECDIR=`pkg-config --variable=libexecdir libclc` 1477AC_SUBST([LIBCLC_INCLUDEDIR]) 1478AC_SUBST([LIBCLC_LIBEXECDIR]) 1479 1480if 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 1496fi 1497 1498dnl 1499dnl Gallium configuration 1500dnl 1501if test "x$with_gallium_drivers" != x; then 1502 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets" 1503fi 1504AM_CONDITIONAL(HAVE_GALLIUM, test "x$with_gallium_drivers" != x) 1505 1506AC_SUBST([LLVM_BINDIR]) 1507AC_SUBST([LLVM_CFLAGS]) 1508AC_SUBST([LLVM_CPPFLAGS]) 1509AC_SUBST([LLVM_CXXFLAGS]) 1510AC_SUBST([LLVM_LIBDIR]) 1511AC_SUBST([LLVM_LIBS]) 1512AC_SUBST([LLVM_LDFLAGS]) 1513AC_SUBST([LLVM_INCLUDEDIR]) 1514AC_SUBST([LLVM_VERSION]) 1515AC_SUBST([CLANG_RESOURCE_DIR]) 1516 1517case "x$enable_opengl$enable_gles1$enable_gles2" in 1518x*yes*) 1519 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)' 1520 ;; 1521esac 1522 1523AC_SUBST([VG_LIB_DEPS]) 1524AC_SUBST([EGL_CLIENT_APIS]) 1525 1526dnl 1527dnl EGL Platforms configuration 1528dnl 1529AC_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 1540EGL_PLATFORMS="" 1541 1542if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then 1543 AC_MSG_ERROR([cannot build egl state tracker without EGL library]) 1544fi 1545 1546# Do per-EGL platform setups and checks 1547egl_platforms=`IFS=', '; echo $with_egl_platforms` 1548for 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 1589done 1590 1591# libEGL wants to default to the first platform specified in 1592# ./configure. parse that here. 1593if 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" 1596else 1597 EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM" 1598fi 1599 1600EGL_PLATFORMS="$egl_platforms" 1601 1602AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1) 1603AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep 'wayland' >/dev/null 2>&1) 1604AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep 'drm' >/dev/null 2>&1) 1605AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep 'fbdev' >/dev/null 2>&1) 1606AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep 'null' >/dev/null 2>&1) 1607 1608AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x") 1609AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != "x") 1610 1611AC_SUBST([EGL_NATIVE_PLATFORM]) 1612AC_SUBST([EGL_PLATFORMS]) 1613AC_SUBST([EGL_CFLAGS]) 1614 1615AC_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']) 1620AC_SUBST([EGL_DRIVER_INSTALL_DIR]) 1621 1622AC_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"]) 1627AC_SUBST([XORG_DRIVER_INSTALL_DIR]) 1628 1629AC_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) 1636AC_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 1644dnl 1645dnl Gallium LLVM 1646dnl 1647AC_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 1653AC_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 1659AC_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 1666if test "x$with_gallium_drivers" = x; then 1667 enable_gallium_llvm=no 1668fi 1669if test "x$enable_gallium_llvm" = xauto; then 1670 case "$host_cpu" in 1671 i*86|x86_64) enable_gallium_llvm=yes;; 1672 esac 1673fi 1674if 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 1718else 1719 MESA_LLVM=0 1720fi 1721 1722dnl Directory for XVMC libs 1723AC_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}']) 1728AC_SUBST([XVMC_LIB_INSTALL_DIR]) 1729 1730dnl 1731dnl Gallium Tests 1732dnl 1733if test "x$enable_gallium_tests" = xyes; then 1734 SRC_DIRS="$SRC_DIRS gallium/tests/trivial" 1735 enable_gallium_loader=yes 1736fi 1737 1738dnl Directory for VDPAU libs 1739AC_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']) 1744AC_SUBST([VDPAU_LIB_INSTALL_DIR]) 1745 1746dnl Directory for VA libs 1747AC_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']) 1752AC_SUBST([VA_LIB_INSTALL_DIR]) 1753 1754dnl Directory for OpenCL libs 1755AC_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']) 1760AC_SUBST([OPENCL_LIB_INSTALL_DIR]) 1761 1762dnl 1763dnl Gallium helper functions 1764dnl 1765gallium_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 1794gallium_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 1802gallium_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 1813dnl Gallium drivers 1814dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block 1815if 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 1903fi 1904 1905if 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]) 1928fi 1929 1930dnl Tell Automake which drivers to build 1931for 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 1946done 1947 1948AM_CONDITIONAL(HAVE_GALAHAD_GALLIUM, test x$HAVE_GALAHAD_GALLIUM = xyes) 1949AM_CONDITIONAL(HAVE_IDENTITY_GALLIUM, test x$HAVE_IDENTITY_GALLIUM = xyes) 1950AM_CONDITIONAL(HAVE_NOOP_GALLIUM, test x$HAVE_NOOP_GALLIUM = xyes) 1951AM_CONDITIONAL(NEED_RADEON_GALLIUM, test x$NEED_RADEON_GALLIUM = xyes) 1952AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes) 1953AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes) 1954AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes) 1955AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes) 1956AC_SUBST([GALLIUM_MAKE_DIRS]) 1957 1958AM_CONDITIONAL(HAVE_X11_DRIVER, echo "$DRIVER_DIRS" | grep 'x11' >/dev/null 2>&1) 1959 1960AM_CONDITIONAL(HAVE_X86_ASM, echo "$DEFINES" | grep 'X86_ASM' >/dev/null 2>&1) 1961AM_CONDITIONAL(HAVE_X86_64_ASM, echo "$DEFINES" | grep 'X86_64_ASM' >/dev/null 2>&1) 1962AM_CONDITIONAL(HAVE_SPARC_ASM, echo "$DEFINES" | grep 'SPARC_ASM' >/dev/null 2>&1) 1963 1964dnl prepend CORE_DIRS to SRC_DIRS 1965SRC_DIRS="$CORE_DIRS $SRC_DIRS" 1966 1967dnl Restore LDFLAGS and CPPFLAGS 1968LDFLAGS="$_SAVE_LDFLAGS" 1969CPPFLAGS="$_SAVE_CPPFLAGS" 1970 1971dnl Add user CFLAGS and CXXFLAGS 1972CFLAGS="$CFLAGS $USER_CFLAGS" 1973CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS" 1974 1975dnl Substitute the config 1976AC_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 2035dnl Sort the dirs alphabetically 2036GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "` 2037GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "` 2038GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "` 2039GALLIUM_MAKE_DIRS=`echo $GALLIUM_MAKE_DIRS|tr " " "\n"|sort -u|tr "\n" " "` 2040GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "` 2041 2042AC_OUTPUT 2043 2044dnl 2045dnl Output some configuration info for the user 2046dnl 2047echo "" 2048echo " prefix: $prefix" 2049echo " exec_prefix: $exec_prefix" 2050echo " libdir: $libdir" 2051echo " includedir: $includedir" 2052 2053dnl API info 2054echo "" 2055echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)" 2056echo " OpenVG: $enable_openvg" 2057 2058dnl Driver info 2059echo "" 2060if test "x$enable_osmesa" != xno; then 2061 echo " OSMesa: lib$OSMESA_LIB" 2062else 2063 echo " OSMesa: no" 2064fi 2065 2066if 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" 2075fi 2076 2077case "x$enable_glx$enable_xlib_glx" in 2078xyesyes) 2079 echo " GLX: Xlib-based" 2080 ;; 2081xyesno) 2082 echo " GLX: DRI-based" 2083 ;; 2084*) 2085 echo " GLX: $enable_glx" 2086 ;; 2087esac 2088 2089dnl EGL 2090echo "" 2091echo " EGL: $enable_egl" 2092if 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 2109fi 2110 2111echo "" 2112if test "x$MESA_LLVM" = x1; then 2113 echo " llvm: yes" 2114 echo " llvm-config: $LLVM_CONFIG" 2115 echo " llvm-version: $LLVM_VERSION" 2116else 2117 echo " llvm: no" 2118fi 2119 2120echo "" 2121if 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" 2128else 2129 echo " Gallium: no" 2130fi 2131 2132 2133dnl Libraries 2134echo "" 2135echo " Shared libs: $enable_shared" 2136echo " Static libs: $enable_static" 2137echo " Shared-glapi: $enable_shared_glapi" 2138 2139dnl Compiler options 2140# cleanup the CFLAGS/CXXFLAGS/DEFINES vars 2141cflags=`echo $CFLAGS $PIC_FLAGS | \ 2142 $SED 's/^ *//;s/ */ /;s/ *$//'` 2143cxxflags=`echo $CXXFLAGS $PIC_FLAGS | \ 2144 $SED 's/^ *//;s/ */ /;s/ *$//'` 2145defines=`echo $DEFINES | $SED 's/^ *//;s/ */ /;s/ *$//'` 2146echo "" 2147echo " CFLAGS: $cflags" 2148echo " CXXFLAGS: $cxxflags" 2149echo " Macros: $defines" 2150echo "" 2151echo " PYTHON2: $PYTHON2" 2152 2153echo "" 2154echo " Run '${MAKE-make}' to build Mesa" 2155echo "" 2156