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