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