Home | History | Annotate | Download | only in mesa3d
      1 dnl Copyright  2011-2014 Intel Corporation
      2 dnl Copyright  2011-2014 Emil Velikov <emil.l.velikov (a] gmail.com>
      3 dnl Copyright  2007-2010 Dan Nicholson
      4 dnl Copyright  2010-2014 Marek Olk <maraeo (a] gmail.com>
      5 dnl Copyright  2010-2014 Christian Knig
      6 dnl Copyright  2012-2014 Tom Stellard <tstellar (a] gmail.com>
      7 dnl Copyright  2009-2012 Jakob Bornecrantz
      8 dnl Copyright  2009-2014 Jon TURNEY
      9 dnl Copyright  2011-2012 Benjamin Franzke
     10 dnl Copyright  2008-2014 David Airlie
     11 dnl Copyright  2009-2013 Brian Paul
     12 dnl
     13 dnl Permission is hereby granted, free of charge, to any person obtaining a
     14 dnl copy of this software and associated documentation files (the "Software"),
     15 dnl to deal in the Software without restriction, including without limitation
     16 dnl the rights to use, copy, modify, merge, publish, distribute, sublicense,
     17 dnl and/or sell copies of the Software, and to permit persons to whom the
     18 dnl Software is furnished to do so, subject to the following conditions:
     19 dnl
     20 dnl The above copyright notice and this permission notice (including the next
     21 dnl paragraph) shall be included in all copies or substantial portions of the
     22 dnl Software.
     23 dnl
     24 dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     25 dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     26 dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     27 dnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     28 dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
     29 dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
     30 dnl DEALINGS IN THE SOFTWARE.
     31 dnl
     32 dnl Process this file with autoconf to create configure.
     33 
     34 AC_PREREQ([2.60])
     35 
     36 dnl Tell the user about autoconf.html in the --help output
     37 m4_divert_once([HELP_END], [
     38 See docs/autoconf.html for more details on the options for Mesa.])
     39 
     40 m4_define(MESA_VERSION, m4_normalize(m4_include(VERSION)))
     41 AC_INIT([Mesa], [MESA_VERSION],
     42     [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
     43 AC_CONFIG_AUX_DIR([bin])
     44 AC_CONFIG_MACRO_DIR([m4])
     45 AC_CANONICAL_SYSTEM
     46 AM_INIT_AUTOMAKE([foreign tar-ustar dist-xz subdir-objects])
     47 
     48 dnl We only support native Windows builds (MinGW/MSVC) through SCons.
     49 case "$host_os" in
     50 mingw*)
     51     AC_MSG_ERROR([MinGW build not supported through autoconf/automake, use SCons instead])
     52     ;;
     53 esac
     54 
     55 # Support silent build rules, requires at least automake-1.11. Disable
     56 # by either passing --disable-silent-rules to configure or passing V=1
     57 # to make
     58 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
     59     [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
     60 
     61 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
     62 
     63 dnl Set internal versions
     64 OSMESA_VERSION=8
     65 AC_SUBST([OSMESA_VERSION])
     66 OPENCL_VERSION=1
     67 AC_SUBST([OPENCL_VERSION])
     68 
     69 dnl Versions for external dependencies
     70 LIBDRM_REQUIRED=2.4.66
     71 LIBDRM_RADEON_REQUIRED=2.4.56
     72 LIBDRM_AMDGPU_REQUIRED=2.4.63
     73 LIBDRM_INTEL_REQUIRED=2.4.61
     74 LIBDRM_NVVIEUX_REQUIRED=2.4.66
     75 LIBDRM_NOUVEAU_REQUIRED=2.4.66
     76 LIBDRM_FREEDRENO_REQUIRED=2.4.74
     77 LIBDRM_VC4_REQUIRED=2.4.69
     78 LIBDRM_ETNAVIV_REQUIRED=2.4.74
     79 DRI2PROTO_REQUIRED=2.6
     80 DRI3PROTO_REQUIRED=1.0
     81 PRESENTPROTO_REQUIRED=1.0
     82 GLPROTO_REQUIRED=1.4.14
     83 LIBOMXIL_BELLAGIO_REQUIRED=0.0
     84 LIBVA_REQUIRED=0.38.0
     85 VDPAU_REQUIRED=1.1
     86 WAYLAND_REQUIRED=1.11
     87 XCB_REQUIRED=1.9.3
     88 XCBDRI2_REQUIRED=1.8
     89 XCBGLX_REQUIRED=1.8.1
     90 XSHMFENCE_REQUIRED=1.1
     91 XVMC_REQUIRED=1.0.6
     92 PYTHON_MAKO_REQUIRED=0.8.0
     93 LIBSENSORS_REQUIRED=4.0.0
     94 
     95 dnl LLVM versions
     96 LLVM_REQUIRED_GALLIUM=3.3.0
     97 LLVM_REQUIRED_OPENCL=3.6.0
     98 LLVM_REQUIRED_R600=3.6.0
     99 LLVM_REQUIRED_RADEONSI=3.6.0
    100 LLVM_REQUIRED_RADV=3.9.0
    101 LLVM_REQUIRED_SWR=3.6.0
    102 
    103 dnl Check for progs
    104 AC_PROG_CPP
    105 AC_PROG_CC
    106 AC_PROG_CXX
    107 AM_PROG_CC_C_O
    108 AM_PROG_AS
    109 AX_CHECK_GNU_MAKE
    110 AC_CHECK_PROGS([PYTHON2], [python2.7 python2 python])
    111 AC_PROG_SED
    112 AC_PROG_MKDIR_P
    113 
    114 AC_SYS_LARGEFILE
    115 
    116 LT_PREREQ([2.2])
    117 LT_INIT([disable-static])
    118 
    119 AC_CHECK_PROG(RM, rm, [rm -f])
    120 AC_CHECK_PROG(XXD, xxd, [xxd])
    121 
    122 AX_PROG_BISON([],
    123               AS_IF([test ! -f "$srcdir/src/compiler/glsl/glcpp/glcpp-parse.c"],
    124                     [AC_MSG_ERROR([bison not found - unable to compile glcpp-parse.y])]))
    125 AX_PROG_FLEX([],
    126              AS_IF([test ! -f "$srcdir/src/compiler/glsl/glcpp/glcpp-lex.c"],
    127                    [AC_MSG_ERROR([flex not found - unable to compile glcpp-lex.l])]))
    128 
    129 AC_CHECK_PROG(INDENT, indent, indent, cat)
    130 if test "x$INDENT" != "xcat"; then
    131     # Only GNU indent is supported
    132     INDENT_VERSION=`indent --version | grep GNU`
    133     if test $? -eq 0; then
    134        AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -TGLubyte -TGLbyte -TBool')
    135     else
    136        INDENT="cat"
    137     fi
    138 fi
    139 
    140 AX_CHECK_PYTHON_MAKO_MODULE($PYTHON_MAKO_REQUIRED)
    141 
    142 if test -z "$PYTHON2"; then
    143     if test ! -f "$srcdir/src/util/format_srgb.c"; then
    144         AC_MSG_ERROR([Python not found - unable to generate sources])
    145     fi
    146 else
    147     if test "x$acv_mako_found" = xno; then
    148         if test ! -f "$srcdir/src/mesa/main/format_unpack.c"; then
    149             AC_MSG_ERROR([Python mako module v$PYTHON_MAKO_REQUIRED or higher not found])
    150         fi
    151     fi
    152 fi
    153 
    154 AC_PROG_INSTALL
    155 
    156 dnl We need a POSIX shell for parts of the build. Assume we have one
    157 dnl in most cases.
    158 case "$host_os" in
    159 solaris*)
    160     # Solaris /bin/sh is too old/non-POSIX compliant
    161     AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
    162     SHELL="$POSIX_SHELL"
    163     ;;
    164 esac
    165 
    166 dnl clang is mostly GCC-compatible, but its version is much lower,
    167 dnl so we have to check for it.
    168 AC_MSG_CHECKING([if compiling with clang])
    169 
    170 AC_COMPILE_IFELSE(
    171 [AC_LANG_PROGRAM([], [[
    172 #ifndef __clang__
    173        not clang
    174 #endif
    175 ]])],
    176 [acv_mesa_CLANG=yes], [acv_mesa_CLANG=no])
    177 
    178 AC_MSG_RESULT([$acv_mesa_CLANG])
    179 
    180 dnl If we're using GCC, make sure that it is at least version 4.2.0.  Older
    181 dnl versions are explictly not supported.
    182 GEN_ASM_OFFSETS=no
    183 USE_GNU99=no
    184 if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
    185     AC_MSG_CHECKING([whether gcc version is sufficient])
    186     major=0
    187     minor=0
    188 
    189     GCC_VERSION=`$CC -dumpversion`
    190     if test $? -eq 0; then
    191         GCC_VERSION_MAJOR=`echo $GCC_VERSION | cut -d. -f1`
    192         GCC_VERSION_MINOR=`echo $GCC_VERSION | cut -d. -f2`
    193     fi
    194 
    195     if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 2 ; then
    196         AC_MSG_RESULT([no])
    197         AC_MSG_ERROR([If using GCC, version 4.2.0 or later is required.])
    198     else
    199         AC_MSG_RESULT([yes])
    200     fi
    201 
    202     if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 6 ; then
    203         USE_GNU99=yes
    204     fi
    205     if test "x$cross_compiling" = xyes; then
    206         GEN_ASM_OFFSETS=yes
    207     fi
    208 fi
    209 
    210 dnl We don't support building Mesa with Sun C compiler
    211 dnl https://bugs.freedesktop.org/show_bug.cgi?id=93189
    212 AC_CHECK_DECL([__SUNPRO_C], [SUNCC=yes], [SUNCC=no])
    213 if test "x$SUNCC" = xyes; then
    214     AC_MSG_ERROR([Building with Sun C compiler is not supported, use GCC instead.])
    215 fi
    216 
    217 dnl Check for compiler builtins
    218 AX_GCC_BUILTIN([__builtin_bswap32])
    219 AX_GCC_BUILTIN([__builtin_bswap64])
    220 AX_GCC_BUILTIN([__builtin_clz])
    221 AX_GCC_BUILTIN([__builtin_clzll])
    222 AX_GCC_BUILTIN([__builtin_ctz])
    223 AX_GCC_BUILTIN([__builtin_expect])
    224 AX_GCC_BUILTIN([__builtin_ffs])
    225 AX_GCC_BUILTIN([__builtin_ffsll])
    226 AX_GCC_BUILTIN([__builtin_popcount])
    227 AX_GCC_BUILTIN([__builtin_popcountll])
    228 AX_GCC_BUILTIN([__builtin_unreachable])
    229 
    230 AX_GCC_FUNC_ATTRIBUTE([const])
    231 AX_GCC_FUNC_ATTRIBUTE([flatten])
    232 AX_GCC_FUNC_ATTRIBUTE([format])
    233 AX_GCC_FUNC_ATTRIBUTE([malloc])
    234 AX_GCC_FUNC_ATTRIBUTE([packed])
    235 AX_GCC_FUNC_ATTRIBUTE([pure])
    236 AX_GCC_FUNC_ATTRIBUTE([returns_nonnull])
    237 AX_GCC_FUNC_ATTRIBUTE([unused])
    238 AX_GCC_FUNC_ATTRIBUTE([visibility])
    239 AX_GCC_FUNC_ATTRIBUTE([warn_unused_result])
    240 AX_GCC_FUNC_ATTRIBUTE([weak])
    241 AX_GCC_FUNC_ATTRIBUTE([alias])
    242 
    243 AM_CONDITIONAL([GEN_ASM_OFFSETS], test "x$GEN_ASM_OFFSETS" = xyes)
    244 
    245 dnl Make sure the pkg-config macros are defined
    246 m4_ifndef([PKG_PROG_PKG_CONFIG],
    247     [m4_fatal([Could not locate the pkg-config autoconf macros.
    248   These are usually located in /usr/share/aclocal/pkg.m4. If your macros
    249   are in a different location, try setting the environment variable
    250   ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
    251 PKG_PROG_PKG_CONFIG()
    252 
    253 dnl LIB_DIR - library basename
    254 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
    255 AC_SUBST([LIB_DIR])
    256 
    257 dnl Cache LDFLAGS and CPPFLAGS so we can add to them and restore later
    258 _SAVE_LDFLAGS="$LDFLAGS"
    259 _SAVE_CPPFLAGS="$CPPFLAGS"
    260 
    261 dnl Compiler macros
    262 DEFINES="-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS"
    263 AC_SUBST([DEFINES])
    264 android=no
    265 case "$host_os" in
    266 *-android)
    267     android=yes
    268     ;;
    269 linux*|*-gnu*|gnu*|cygwin*)
    270     DEFINES="$DEFINES -D_GNU_SOURCE"
    271     ;;
    272 solaris*)
    273     DEFINES="$DEFINES -DSVR4"
    274     ;;
    275 esac
    276 
    277 AM_CONDITIONAL(HAVE_ANDROID, test "x$android" = xyes)
    278 
    279 dnl Add flags for gcc and g++
    280 if test "x$GCC" = xyes; then
    281     CFLAGS="$CFLAGS -Wall"
    282 
    283     if test "x$USE_GNU99" = xyes; then
    284 	CFLAGS="$CFLAGS -std=gnu99"
    285     else
    286 	CFLAGS="$CFLAGS -std=c99"
    287     fi
    288 
    289     # Enable -Werror=implicit-function-declaration and
    290     # -Werror=missing-prototypes, if available, or otherwise, just
    291     # -Wmissing-prototypes.  This is particularly useful to avoid
    292     # generating a loadable driver module that has undefined symbols.
    293     save_CFLAGS="$CFLAGS"
    294     AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
    295     CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
    296     CFLAGS="$CFLAGS -Werror=missing-prototypes"
    297     AC_LINK_IFELSE([AC_LANG_PROGRAM()],
    298 		   AC_MSG_RESULT([yes]),
    299 		   [CFLAGS="$save_CFLAGS -Wmissing-prototypes";
    300 		    AC_MSG_RESULT([no])]);
    301 
    302     # Enable -fvisibility=hidden if using a gcc that supports it
    303     save_CFLAGS="$CFLAGS"
    304     AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
    305     VISIBILITY_CFLAGS="-fvisibility=hidden"
    306     CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
    307     AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
    308 		   [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
    309 
    310     # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
    311     CFLAGS=$save_CFLAGS
    312 
    313     # We don't want floating-point math functions to set errno or trap
    314     CFLAGS="$CFLAGS -fno-math-errno -fno-trapping-math"
    315 
    316     # Flags to help ensure that certain portions of the code -- and only those
    317     # portions -- can be built with MSVC:
    318     # - src/util, src/gallium/auxiliary, rc/gallium/drivers/llvmpipe, and
    319     # - non-Linux/Posix OpenGL portions needs to build on MSVC 2013 (which
    320     #   supports most of C99)
    321     # - the rest has no compiler compiler restrictions
    322     MSVC2013_COMPAT_CFLAGS="-Werror=pointer-arith"
    323     MSVC2013_COMPAT_CXXFLAGS="-Werror=pointer-arith"
    324 
    325     # Enable -Werror=vla if compiler supports it
    326     save_CFLAGS="$CFLAGS"
    327     AC_MSG_CHECKING([whether $CC supports -Werror=vla])
    328     CFLAGS="$CFLAGS -Werror=vla"
    329     AC_LINK_IFELSE([AC_LANG_PROGRAM()],
    330 		   [MSVC2013_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=vla";
    331 		    MSVC2013_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS -Werror=vla";
    332 		    AC_MSG_RESULT([yes])],
    333 		    AC_MSG_RESULT([no]));
    334     CFLAGS="$save_CFLAGS"
    335 fi
    336 if test "x$GXX" = xyes; then
    337     CXXFLAGS="$CXXFLAGS -Wall"
    338 
    339     # Enable -fvisibility=hidden if using a gcc that supports it
    340     save_CXXFLAGS="$CXXFLAGS"
    341     AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
    342     VISIBILITY_CXXFLAGS="-fvisibility=hidden"
    343     CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
    344     AC_LANG_PUSH([C++])
    345     AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
    346 		   [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
    347     AC_LANG_POP([C++])
    348 
    349     # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
    350     CXXFLAGS=$save_CXXFLAGS
    351 
    352     # We don't want floating-point math functions to set errno or trap
    353     CXXFLAGS="$CXXFLAGS -fno-math-errno -fno-trapping-math"
    354 fi
    355 
    356 AC_SUBST([MSVC2013_COMPAT_CFLAGS])
    357 AC_SUBST([MSVC2013_COMPAT_CXXFLAGS])
    358 
    359 dnl even if the compiler appears to support it, using visibility attributes isn't
    360 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
    361 case "$host_os" in
    362 cygwin*)
    363     VISIBILITY_CFLAGS=""
    364     VISIBILITY_CXXFLAGS=""
    365     ;;
    366 esac
    367 
    368 AC_SUBST([VISIBILITY_CFLAGS])
    369 AC_SUBST([VISIBILITY_CXXFLAGS])
    370 
    371 dnl
    372 dnl Optional flags, check for compiler support
    373 dnl
    374 SSE41_CFLAGS="-msse4.1"
    375 dnl Code compiled by GCC with -msse* assumes a 16 byte aligned
    376 dnl stack, but on x86-32 such alignment is not guaranteed.
    377 case "$target_cpu" in
    378 i?86)
    379     SSE41_CFLAGS="$SSE41_CFLAGS -mstackrealign"
    380     ;;
    381 esac
    382 save_CFLAGS="$CFLAGS"
    383 CFLAGS="$SSE41_CFLAGS $CFLAGS"
    384 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
    385 #include <smmintrin.h>
    386 int param;
    387 int main () {
    388     __m128i a = _mm_set1_epi32 (param), b = _mm_set1_epi32 (param + 1), c;
    389     c = _mm_max_epu32(a, b);
    390     return _mm_cvtsi128_si32(c);
    391 }]])], SSE41_SUPPORTED=1)
    392 CFLAGS="$save_CFLAGS"
    393 if test "x$SSE41_SUPPORTED" = x1; then
    394     DEFINES="$DEFINES -DUSE_SSE41"
    395 fi
    396 AM_CONDITIONAL([SSE41_SUPPORTED], [test x$SSE41_SUPPORTED = x1])
    397 AC_SUBST([SSE41_CFLAGS], $SSE41_CFLAGS)
    398 
    399 dnl Check for new-style atomic builtins
    400 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
    401 int main() {
    402     int n;
    403     return __atomic_load_n(&n, __ATOMIC_ACQUIRE);
    404 }]])], GCC_ATOMIC_BUILTINS_SUPPORTED=1)
    405 if test "x$GCC_ATOMIC_BUILTINS_SUPPORTED" = x1; then
    406     DEFINES="$DEFINES -DUSE_GCC_ATOMIC_BUILTINS"
    407 fi
    408 AM_CONDITIONAL([GCC_ATOMIC_BUILTINS_SUPPORTED], [test x$GCC_ATOMIC_BUILTINS_SUPPORTED = x1])
    409 
    410 dnl Check for Endianness
    411 AC_C_BIGENDIAN(
    412    little_endian=no,
    413    little_endian=yes,
    414    little_endian=no,
    415    little_endian=no
    416 )
    417 
    418 dnl Check for POWER8 Architecture
    419 PWR8_CFLAGS="-mpower8-vector"
    420 have_pwr8_intrinsics=no
    421 AC_MSG_CHECKING(whether gcc supports -mpower8-vector)
    422 save_CFLAGS=$CFLAGS
    423 CFLAGS="$PWR8_CFLAGS $CFLAGS"
    424 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
    425 #if defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8))
    426 #error "Need GCC >= 4.8 for sane POWER8 support"
    427 #endif
    428 #include <altivec.h>
    429 int main () {
    430     vector unsigned char r;
    431     vector unsigned int v = vec_splat_u32 (1);
    432     r = __builtin_vec_vgbbd ((vector unsigned char) v);
    433     return 0;
    434 }]])], have_pwr8_intrinsics=yes)
    435 CFLAGS=$save_CFLAGS
    436 
    437 AC_ARG_ENABLE(pwr8,
    438    [AC_HELP_STRING([--disable-pwr8-inst],
    439                    [disable POWER8-specific instructions])],
    440    [enable_pwr8=$enableval], [enable_pwr8=auto])
    441 
    442 if test "x$enable_pwr8" = xno ; then
    443    have_pwr8_intrinsics=disabled
    444 fi
    445 
    446 if test $have_pwr8_intrinsics = yes && test $little_endian = yes ; then
    447    DEFINES="$DEFINES -D_ARCH_PWR8"
    448    CXXFLAGS="$CXXFLAGS $PWR8_CFLAGS"
    449    CFLAGS="$CFLAGS $PWR8_CFLAGS"
    450 else
    451    PWR8_CFLAGS=
    452 fi
    453 
    454 AC_MSG_RESULT($have_pwr8_intrinsics)
    455 if test "x$enable_pwr8" = xyes && test $have_pwr8_intrinsics = no ; then
    456    AC_MSG_ERROR([POWER8 compiler support not detected])
    457 fi
    458 
    459 if test $have_pwr8_intrinsics = yes && test $little_endian = no ; then
    460    AC_MSG_WARN([POWER8 optimization is enabled only on POWER8 Little-Endian])
    461 fi
    462 
    463 AC_SUBST([PWR8_CFLAGS], $PWR8_CFLAGS)
    464 
    465 dnl Can't have static and shared libraries, default to static if user
    466 dnl explicitly requested. If both disabled, set to static since shared
    467 dnl was explicitly requested.
    468 case "x$enable_static$enable_shared" in
    469 xyesyes)
    470     AC_MSG_ERROR([Cannot enable both static and shared. Building using --enable-shared is strongly recommended])
    471     ;;
    472 xnono)
    473     AC_MSG_ERROR([Cannot disable both static and shared. Building using --enable-shared is strongly recommended])
    474     ;;
    475 esac
    476 
    477 AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes)
    478 
    479 dnl
    480 dnl other compiler options
    481 dnl
    482 AC_ARG_ENABLE([debug],
    483     [AS_HELP_STRING([--enable-debug],
    484         [use debug compiler flags and macros @<:@default=disabled@:>@])],
    485     [enable_debug="$enableval"],
    486     [enable_debug=no]
    487 )
    488 
    489 AC_ARG_ENABLE([profile],
    490     [AS_HELP_STRING([--enable-profile],
    491         [enable profiling of code @<:@default=disabled@:>@])],
    492     [enable_profile="$enableval"],
    493     [enable_profile=no]
    494 )
    495 
    496 if test "x$enable_profile" = xyes; then
    497     DEFINES="$DEFINES -DPROFILE"
    498     if test "x$GCC" = xyes; then
    499         CFLAGS="$CFLAGS -fno-omit-frame-pointer"
    500     fi
    501     if test "x$GXX" = xyes; then
    502         CXXFLAGS="$CXXFLAGS -fno-omit-frame-pointer"
    503     fi
    504 fi
    505 
    506 if test "x$enable_debug" = xyes; then
    507     DEFINES="$DEFINES -DDEBUG"
    508     if test "x$enable_profile" = xyes; then
    509         AC_MSG_WARN([Debug and Profile are enabled at the same time])
    510     fi
    511     if test "x$GCC" = xyes; then
    512         if ! echo "$CFLAGS" | grep -q -e '-g'; then
    513             CFLAGS="$CFLAGS -g"
    514         fi
    515         if ! echo "$CFLAGS" | grep -q -e '-O'; then
    516             CFLAGS="$CFLAGS -O0"
    517         fi
    518     fi
    519     if test "x$GXX" = xyes; then
    520         if ! echo "$CXXFLAGS" | grep -q -e '-g'; then
    521             CXXFLAGS="$CXXFLAGS -g"
    522         fi
    523         if ! echo "$CXXFLAGS" | grep -q -e '-O'; then
    524             CXXFLAGS="$CXXFLAGS -O0"
    525         fi
    526     fi
    527 else
    528    DEFINES="$DEFINES -DNDEBUG"
    529 fi
    530 
    531 DEFAULT_GL_LIB_NAME=GL
    532 
    533 dnl
    534 dnl Check if linker supports -Bsymbolic
    535 dnl
    536 save_LDFLAGS=$LDFLAGS
    537 LDFLAGS="$LDFLAGS -Wl,-Bsymbolic"
    538 AC_MSG_CHECKING([if ld supports -Bsymbolic])
    539 AC_LINK_IFELSE(
    540     [AC_LANG_SOURCE([int main() { return 0;}])],
    541     [AC_MSG_RESULT([yes])
    542         BSYMBOLIC="-Wl,-Bsymbolic";],
    543     [AC_MSG_RESULT([no])
    544         BSYMBOLIC="";])
    545 LDFLAGS=$save_LDFLAGS
    546 
    547 AC_SUBST([BSYMBOLIC])
    548 
    549 dnl
    550 dnl Check if linker supports garbage collection
    551 dnl
    552 save_LDFLAGS=$LDFLAGS
    553 LDFLAGS="$LDFLAGS -Wl,--gc-sections"
    554 AC_MSG_CHECKING([whether ld supports --gc-sections])
    555 AC_LINK_IFELSE(
    556     [AC_LANG_SOURCE([static char UnusedFunc() { return 5; } int main() { return 0;}])],
    557     [AC_MSG_RESULT([yes])
    558         GC_SECTIONS="-Wl,--gc-sections";],
    559     [AC_MSG_RESULT([no])
    560         GC_SECTIONS="";])
    561 LDFLAGS=$save_LDFLAGS
    562 
    563 AC_SUBST([GC_SECTIONS])
    564 
    565 dnl
    566 dnl OpenBSD does not have DT_NEEDED entries for libc by design
    567 dnl so when these flags are passed to ld via libtool the checks will fail
    568 dnl
    569 case "$host_os" in
    570 openbsd* | darwin* )
    571     LD_NO_UNDEFINED="" ;;
    572 *)
    573     LD_NO_UNDEFINED="-Wl,--no-undefined" ;;
    574 esac
    575 
    576 AC_SUBST([LD_NO_UNDEFINED])
    577 
    578 dnl
    579 dnl Check if linker supports version scripts
    580 dnl
    581 AC_MSG_CHECKING([if the linker supports version-scripts])
    582 save_LDFLAGS=$LDFLAGS
    583 LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
    584 cat > conftest.map <<EOF
    585 VERSION_1 {
    586      global:
    587          main;
    588 
    589      local:
    590          *;
    591 };
    592 EOF
    593 AC_LINK_IFELSE(
    594     [AC_LANG_SOURCE([int main() { return 0;}])],
    595     [have_ld_version_script=yes;AC_MSG_RESULT(yes)],
    596     [have_ld_version_script=no; AC_MSG_RESULT(no)])
    597 LDFLAGS=$save_LDFLAGS
    598 AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
    599 
    600 dnl
    601 dnl Check if linker supports dynamic list files
    602 dnl
    603 AC_MSG_CHECKING([if the linker supports --dynamic-list])
    604 save_LDFLAGS=$LDFLAGS
    605 LDFLAGS="$LDFLAGS -Wl,--dynamic-list=conftest.dyn"
    606 cat > conftest.dyn <<EOF
    607 {
    608 	radeon_drm_winsys_create;
    609 };
    610 EOF
    611 AC_LINK_IFELSE(
    612     [AC_LANG_SOURCE([int main() { return 0;}])],
    613     [have_ld_dynamic_list=yes;AC_MSG_RESULT(yes)],
    614     [have_ld_dynamic_list=no; AC_MSG_RESULT(no)])
    615 LDFLAGS=$save_LDFLAGS
    616 AM_CONDITIONAL(HAVE_LD_DYNAMIC_LIST, test "$have_ld_dynamic_list" = "yes")
    617 
    618 dnl
    619 dnl compatibility symlinks
    620 dnl
    621 case "$host_os" in
    622 linux* )
    623     HAVE_COMPAT_SYMLINKS=yes ;;
    624 * )
    625     HAVE_COMPAT_SYMLINKS=no ;;
    626 esac
    627 
    628 AM_CONDITIONAL(HAVE_COMPAT_SYMLINKS, test "x$HAVE_COMPAT_SYMLINKS" = xyes)
    629 
    630 DEFAULT_GL_LIB_NAME=GL
    631 
    632 dnl
    633 dnl Libglvnd configuration
    634 dnl
    635 AC_ARG_ENABLE([libglvnd],
    636     [AS_HELP_STRING([--enable-libglvnd],
    637         [Build for libglvnd @<:@default=disabled@:>@])],
    638     [enable_libglvnd="$enableval"],
    639     [enable_libglvnd=no])
    640 AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd" = xyes)
    641 #AM_COND_IF([USE_LIBGLVND_GLX], [DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"])
    642 if test "x$enable_libglvnd" = xyes ; then
    643     DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"
    644     DEFAULT_GL_LIB_NAME=GLX_mesa
    645 fi
    646 
    647 dnl
    648 dnl library names
    649 dnl
    650 dnl Unfortunately we need to do a few things that libtool can't help us with,
    651 dnl so we need some knowledge of shared library filenames:
    652 dnl
    653 dnl LIB_EXT is the extension used when creating symlinks for alternate
    654 dnl filenames for a shared library which will be dynamically loaded
    655 dnl
    656 dnl IMP_LIB_EXT is the extension used when checking for the presence of a
    657 dnl the file for a shared library we wish to link with
    658 dnl
    659 case "$host_os" in
    660 darwin* )
    661     LIB_EXT='dylib'
    662     IMP_LIB_EXT=$LIB_EXT
    663     ;;
    664 cygwin* )
    665     LIB_EXT='dll'
    666     IMP_LIB_EXT='dll.a'
    667     ;;
    668 aix* )
    669     LIB_EXT='a'
    670     IMP_LIB_EXT=$LIB_EXT
    671     ;;
    672 * )
    673     LIB_EXT='so'
    674     IMP_LIB_EXT=$LIB_EXT
    675     ;;
    676 esac
    677 
    678 AC_SUBST([LIB_EXT])
    679 
    680 AC_ARG_WITH([gl-lib-name],
    681   [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
    682     [specify GL library name @<:@default=GL@:>@])],
    683   [GL_LIB=$withval],
    684   [GL_LIB="$DEFAULT_GL_LIB_NAME"])
    685 AC_ARG_WITH([osmesa-lib-name],
    686   [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
    687     [specify OSMesa library name @<:@default=OSMesa@:>@])],
    688   [OSMESA_LIB=$withval],
    689   [OSMESA_LIB=OSMesa])
    690 AS_IF([test "x$GL_LIB" = xyes], [GL_LIB="$DEFAULT_GL_LIB_NAME"])
    691 AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
    692 
    693 dnl
    694 dnl Mangled Mesa support
    695 dnl
    696 AC_ARG_ENABLE([mangling],
    697   [AS_HELP_STRING([--enable-mangling],
    698     [enable mangled symbols and library name @<:@default=disabled@:>@])],
    699   [enable_mangling="${enableval}"],
    700   [enable_mangling=no]
    701 )
    702 if test "x${enable_mangling}" = "xyes" ; then
    703   DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
    704   GL_LIB="Mangled${GL_LIB}"
    705   OSMESA_LIB="Mangled${OSMESA_LIB}"
    706 fi
    707 AC_SUBST([GL_LIB])
    708 AC_SUBST([OSMESA_LIB])
    709 
    710 dnl
    711 dnl potentially-infringing-but-nobody-knows-for-sure stuff
    712 dnl
    713 AC_ARG_ENABLE([texture-float],
    714     [AS_HELP_STRING([--enable-texture-float],
    715         [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
    716     [enable_texture_float="$enableval"],
    717     [enable_texture_float=no]
    718 )
    719 if test "x$enable_texture_float" = xyes; then
    720     AC_MSG_WARN([Floating-point textures enabled.])
    721     AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
    722     DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
    723 fi
    724 
    725 dnl
    726 dnl Arch/platform-specific settings
    727 dnl
    728 AC_ARG_ENABLE([asm],
    729     [AS_HELP_STRING([--disable-asm],
    730         [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
    731     [enable_asm="$enableval"],
    732     [enable_asm=yes]
    733 )
    734 asm_arch=""
    735 AC_MSG_CHECKING([whether to enable assembly])
    736 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
    737 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
    738 if test "x$enable_asm" = xyes -a "x$cross_compiling" = xyes; then
    739     case "$host_cpu" in
    740     i?86 | x86_64 | amd64)
    741         if test "x$host_cpu" != "x$target_cpu"; then
    742             enable_asm=no
    743             AC_MSG_RESULT([no, cross compiling])
    744         fi
    745         ;;
    746     esac
    747 fi
    748 # check for supported arches
    749 if test "x$enable_asm" = xyes; then
    750     case "$host_cpu" in
    751     i?86)
    752         case "$host_os" in
    753         linux* | *freebsd* | dragonfly* | *netbsd* | openbsd* | gnu*)
    754             asm_arch=x86
    755             ;;
    756         esac
    757         ;;
    758     x86_64|amd64)
    759         case "$host_os" in
    760         linux* | *freebsd* | dragonfly* | *netbsd* | openbsd*)
    761             asm_arch=x86_64
    762             ;;
    763         esac
    764         ;;
    765     sparc*)
    766         case "$host_os" in
    767         linux*)
    768             asm_arch=sparc
    769             ;;
    770         esac
    771         ;;
    772     esac
    773 
    774     case "$asm_arch" in
    775     x86)
    776         DEFINES="$DEFINES -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
    777         AC_MSG_RESULT([yes, x86])
    778         ;;
    779     x86_64|amd64)
    780         DEFINES="$DEFINES -DUSE_X86_64_ASM"
    781         AC_MSG_RESULT([yes, x86_64])
    782         ;;
    783     sparc)
    784         DEFINES="$DEFINES -DUSE_SPARC_ASM"
    785         AC_MSG_RESULT([yes, sparc])
    786         ;;
    787     *)
    788         AC_MSG_RESULT([no, platform not supported])
    789         ;;
    790     esac
    791 fi
    792 
    793 AC_HEADER_MAJOR
    794 AC_CHECK_HEADER([xlocale.h], [DEFINES="$DEFINES -DHAVE_XLOCALE_H"])
    795 AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"])
    796 AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"])
    797 AC_CHECK_FUNC([mkostemp], [DEFINES="$DEFINES -DHAVE_MKOSTEMP"])
    798 
    799 dnl Check to see if dlopen is in default libraries (like Solaris, which
    800 dnl has it in libc), or if libdl is needed to get it.
    801 AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
    802     [AC_CHECK_LIB([dl], [dlopen],
    803        [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])])
    804 AC_SUBST([DLOPEN_LIBS])
    805 
    806 dnl Check if that library also has dladdr
    807 save_LIBS="$LIBS"
    808 LIBS="$LIBS $DLOPEN_LIBS"
    809 AC_CHECK_FUNCS([dladdr])
    810 LIBS="$save_LIBS"
    811 
    812 case "$host_os" in
    813 darwin*)
    814     ;;
    815 *)
    816     AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],
    817                    [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt],
    818                                  [AC_MSG_ERROR([Could not find clock_gettime])])])
    819     AC_SUBST([CLOCK_LIB])
    820     ;;
    821 esac
    822 
    823 dnl See if posix_memalign is available
    824 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
    825 
    826 dnl Check for pthreads
    827 AX_PTHREAD
    828 if test "x$ax_pthread_ok" = xno; then
    829     AC_MSG_ERROR([Building mesa on this platform requires pthreads])
    830 fi
    831 dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS
    832 dnl to -pthread, which causes problems if we need -lpthread to appear in
    833 dnl pkgconfig files.  Since Android doesn't have a pthread lib, this check
    834 dnl is not valid for that platform.
    835 if test "x$android" = xno; then
    836     test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
    837 fi
    838 
    839 dnl pthread-stubs is mandatory on targets where it exists
    840 case "$host_os" in
    841 cygwin* )
    842     pthread_stubs_possible="no"
    843     ;;
    844 * )
    845     pthread_stubs_possible="yes"
    846     ;;
    847 esac
    848 
    849 if test "x$pthread_stubs_possible" = xyes; then
    850     PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)
    851     AC_SUBST(PTHREADSTUBS_CFLAGS)
    852     AC_SUBST(PTHREADSTUBS_LIBS)
    853 fi
    854 
    855 dnl SELinux awareness.
    856 AC_ARG_ENABLE([selinux],
    857     [AS_HELP_STRING([--enable-selinux],
    858         [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
    859     [MESA_SELINUX="$enableval"],
    860     [MESA_SELINUX=no])
    861 if test "x$enable_selinux" = "xyes"; then
    862     PKG_CHECK_MODULES([SELINUX], [libselinux], [],
    863         [AC_CHECK_HEADER([selinux/selinux.h],[],
    864                          [AC_MSG_ERROR([SELinux headers not found])])
    865          AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
    866                       [AC_MSG_ERROR([SELinux library not found])])
    867          SELINUX_LIBS="-lselinux"])
    868     DEFINES="$DEFINES -DMESA_SELINUX"
    869 fi
    870 AC_SUBST([SELINUX_CFLAGS])
    871 AC_SUBST([SELINUX_LIBS])
    872 
    873 dnl
    874 dnl LLVM
    875 dnl
    876 AC_ARG_ENABLE([llvm-shared-libs],
    877     [AS_HELP_STRING([--enable-llvm-shared-libs],
    878         [link with LLVM shared libraries @<:@default=enabled@:>@])],
    879     [enable_llvm_shared_libs="$enableval"],
    880     [enable_llvm_shared_libs=yes])
    881 
    882 AC_ARG_WITH([llvm-prefix],
    883     [AS_HELP_STRING([--with-llvm-prefix],
    884         [Prefix for LLVM installations in non-standard locations])],
    885     [llvm_prefix="$withval"],
    886     [llvm_prefix=''])
    887 
    888 PKG_CHECK_MODULES([LIBELF], [libelf], [have_libelf=yes], [have_libelf=no])
    889 if test "x$have_libelf" = xno; then
    890    LIBELF_LIBS=''
    891    LIBELF_CFLAGS=''
    892    AC_CHECK_LIB([elf], [elf_memory], [have_libelf=yes;LIBELF_LIBS=-lelf], [have_libelf=no])
    893    AC_SUBST([LIBELF_LIBS])
    894    AC_SUBST([LIBELF_CFLAGS])
    895 fi
    896 
    897 if test -z "$LLVM_CONFIG"; then
    898     if test -n "$llvm_prefix"; then
    899         AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"])
    900     else
    901         AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no])
    902     fi
    903 fi
    904 
    905 llvm_add_component() {
    906     new_llvm_component=$1
    907     driver_name=$2
    908 
    909     if $LLVM_CONFIG --components | grep -iqw $new_llvm_component ; then
    910         LLVM_COMPONENTS="${LLVM_COMPONENTS} ${new_llvm_component}"
    911     else
    912         AC_MSG_ERROR([LLVM component '$new_llvm_component' not enabled in your LLVM build. Required by $driver_name.])
    913     fi
    914 }
    915 
    916 llvm_add_default_components() {
    917     driver_name=$1
    918 
    919     # Required default components
    920     llvm_add_component "bitwriter" $driver_name
    921     llvm_add_component "engine" $driver_name
    922     llvm_add_component "mcdisassembler" $driver_name
    923     llvm_add_component "mcjit" $driver_name
    924 
    925     # Optional default components
    926     if $LLVM_CONFIG --components | grep -iqw inteljitevents ; then
    927         LLVM_COMPONENTS="$LLVM_COMPONENTS inteljitevents"
    928     fi
    929 }
    930 
    931 llvm_add_target() {
    932     new_llvm_target=$1
    933     driver_name=$2
    934 
    935     if $LLVM_CONFIG --targets-built | grep -iqw $new_llvm_target ; then
    936         llvm_add_component $new_llvm_target $driver_name
    937     else
    938         AC_MSG_ERROR([LLVM target '$new_llvm_target' not enabled in your LLVM build. Required by $driver_name.])
    939     fi
    940 }
    941 
    942 # Call this inside ` ` to get the return value.
    943 # $1 is the llvm-config command with arguments.
    944 strip_unwanted_llvm_flags() {
    945     # Use \> (marks the end of the word)
    946     echo " `$1`" | sed \
    947         -e 's/\s\+-m\S*//g' \
    948         -e 's/\s\+-DNDEBUG\>//g' \
    949         -e 's/\s\+-D_GNU_SOURCE\>//g' \
    950         -e 's/\s\+-pedantic\>//g' \
    951         -e 's/\s\+-W\S*//g' \
    952         -e 's/\s\+-O\S*//g' \
    953         -e 's/\s\+-g\S*//g' \
    954         -e 's/-fno-rtti\>/-Fno-rtti/g' \
    955         -e 's/\s\+-f\S*//g' \
    956         -e 's/-Fno-rtti\>/-fno-rtti/g' \
    957         -e 's/^ //'
    958 }
    959 
    960 llvm_set_environment_variables() {
    961     if test "x$LLVM_CONFIG" != xno; then
    962         LLVM_VERSION=`$LLVM_CONFIG --version | egrep -o '^[[0-9.]]+'`
    963         LLVM_BINDIR=`$LLVM_CONFIG --bindir`
    964         LLVM_CPPFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cppflags"`
    965         LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir`
    966         LLVM_LIBDIR=`$LLVM_CONFIG --libdir`
    967 
    968         # We need to respect LLVM_CPPFLAGS when compiling LLVM headers.
    969         save_CFLAGS="$CFLAGS"
    970         CFLAGS="$CFLAGS $LLVM_CPPFLAGS"
    971 
    972         AC_COMPUTE_INT([LLVM_VERSION_MAJOR], [LLVM_VERSION_MAJOR],
    973             [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
    974         AC_COMPUTE_INT([LLVM_VERSION_MINOR], [LLVM_VERSION_MINOR],
    975             [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
    976         AC_COMPUTE_INT([LLVM_VERSION_PATCH], [LLVM_VERSION_PATCH],
    977             [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
    978 
    979         CFLAGS="$save_CFLAGS"
    980 
    981         # Only needed for LLVM < 3.6.0
    982         if test -z "$LLVM_VERSION_PATCH"; then
    983             LLVM_VERSION_PATCH=0
    984         fi
    985 
    986         if test "$LLVM_VERSION_MINOR" -lt 10; then
    987             LLVM_VERSION_INT="${LLVM_VERSION_MAJOR}0${LLVM_VERSION_MINOR}"
    988         else
    989             LLVM_VERSION_INT="${LLVM_VERSION_MAJOR}${LLVM_VERSION_MINOR}"
    990         fi
    991 
    992         FOUND_LLVM=yes
    993     else
    994         FOUND_LLVM=no
    995         LLVM_VERSION_INT=0
    996     fi
    997 }
    998 
    999 require_llvm() {
   1000     if test "x$enable_gallium_llvm" != "xyes"; then
   1001         AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
   1002     fi
   1003 }
   1004 
   1005 llvm_require_version() {
   1006     require_llvm $2
   1007 
   1008     llvm_target_version_major=`echo $1 | cut -d. -f1 | egrep -o '^[[0-9]]+'`
   1009     llvm_target_version_minor=`echo $1 | cut -d. -f2 | egrep -o '^[[0-9]]+'`
   1010     llvm_target_version_patch=`echo $1 | cut -d. -f3 | egrep -o '^[[0-9]]+'`
   1011 
   1012     if test "$LLVM_VERSION_MAJOR" -gt "$llvm_target_version_major"; then
   1013         # major > required major
   1014         #  --> OK
   1015         return
   1016     fi
   1017 
   1018     if test "$LLVM_VERSION_MAJOR" -eq "$llvm_target_version_major"; then
   1019         if test "$LLVM_VERSION_MINOR" -gt "$llvm_target_version_minor"; then
   1020             # major = required major and
   1021             # minor > required minor
   1022             #  --> OK
   1023             return
   1024         else
   1025             if test "$LLVM_VERSION_MINOR" -eq "$llvm_target_version_minor"; then
   1026                 if test "$LLVM_VERSION_PATCH" -ge "$llvm_target_version_patch"; then
   1027                     # major = required major and
   1028                     # minor = required minor and
   1029                     # patch >= required patch
   1030                     #  --> OK
   1031                     return
   1032                 fi
   1033             fi
   1034         fi
   1035     fi
   1036 
   1037     AC_MSG_ERROR([LLVM $1 or newer is required for $2])
   1038 }
   1039 
   1040 radeon_llvm_check() {
   1041     if test ${LLVM_VERSION_INT} -lt 307; then
   1042         amdgpu_llvm_target_name='r600'
   1043     else
   1044         amdgpu_llvm_target_name='amdgpu'
   1045     fi
   1046 
   1047     llvm_require_version $*
   1048 
   1049     llvm_add_target $amdgpu_llvm_target_name $2
   1050 
   1051     llvm_add_default_components $2
   1052     llvm_add_component "bitreader" $2
   1053     llvm_add_component "ipo" $2
   1054 
   1055     NEED_RADEON_LLVM=yes
   1056     if test "x$have_libelf" != xyes; then
   1057        AC_MSG_ERROR([$1 requires libelf when using llvm])
   1058     fi
   1059 }
   1060 
   1061 llvm_set_environment_variables
   1062 
   1063 AC_SUBST([MESA_LLVM])
   1064 AC_SUBST([LLVM_BINDIR])
   1065 AC_SUBST([LLVM_CFLAGS])
   1066 AC_SUBST([LLVM_CPPFLAGS])
   1067 AC_SUBST([LLVM_CXXFLAGS])
   1068 AC_SUBST([LLVM_LIBDIR])
   1069 AC_SUBST([LLVM_LIBS])
   1070 AC_SUBST([LLVM_LDFLAGS])
   1071 AC_SUBST([LLVM_INCLUDEDIR])
   1072 AC_SUBST([LLVM_VERSION])
   1073 
   1074 dnl Options for APIs
   1075 AC_ARG_ENABLE([opengl],
   1076     [AS_HELP_STRING([--disable-opengl],
   1077         [disable support for standard OpenGL API @<:@default=enabled@:>@])],
   1078     [enable_opengl="$enableval"],
   1079     [enable_opengl=yes])
   1080 AC_ARG_ENABLE([gles1],
   1081     [AS_HELP_STRING([--disable-gles1],
   1082         [disable support for OpenGL ES 1.x API @<:@default=enabled@:>@])],
   1083     [enable_gles1="$enableval"],
   1084     [enable_gles1=yes])
   1085 AC_ARG_ENABLE([gles2],
   1086     [AS_HELP_STRING([--disable-gles2],
   1087         [disable support for OpenGL ES 2.x API @<:@default=enabled@:>@])],
   1088     [enable_gles2="$enableval"],
   1089     [enable_gles2=yes])
   1090 
   1091 AC_ARG_ENABLE([dri],
   1092     [AS_HELP_STRING([--enable-dri],
   1093         [enable DRI modules @<:@default=enabled@:>@])],
   1094     [enable_dri="$enableval"],
   1095     [enable_dri=yes])
   1096 
   1097 AC_ARG_ENABLE([gallium-extra-hud],
   1098     [AS_HELP_STRING([--enable-gallium-extra-hud],
   1099         [enable HUD block/NIC I/O HUD stats support @<:@default=disabled@:>@])],
   1100     [enable_gallium_extra_hud="$enableval"],
   1101     [enable_gallium_extra_hud=no])
   1102 AM_CONDITIONAL(HAVE_GALLIUM_EXTRA_HUD, test "x$enable_gallium_extra_hud" = xyes)
   1103 if test "x$enable_gallium_extra_hud" = xyes ; then
   1104     DEFINES="${DEFINES} -DHAVE_GALLIUM_EXTRA_HUD=1"
   1105 fi
   1106 
   1107 #TODO: no pkgconfig .pc available for libsensors.
   1108 #PKG_CHECK_MODULES([LIBSENSORS], [libsensors >= $LIBSENSORS_REQUIRED], [enable_lmsensors=yes], [enable_lmsensors=no])
   1109 AC_ARG_ENABLE([lmsensors],
   1110     [AS_HELP_STRING([--enable-lmsensors],
   1111         [enable HUD lmsensor support @<:@default=disabled@:>@])],
   1112     [enable_lmsensors="$enableval"],
   1113     [enable_lmsensors=no])
   1114 AM_CONDITIONAL(HAVE_LIBSENSORS, test "x$enable_lmsensors" = xyes)
   1115 if test "x$enable_lmsensors" = xyes ; then
   1116     DEFINES="${DEFINES} -DHAVE_LIBSENSORS=1"
   1117     LIBSENSORS_LIBS="-lsensors"
   1118 else
   1119     LIBSENSORS_LIBS=""
   1120 fi
   1121 AC_SUBST(LIBSENSORS_LIBS)
   1122 
   1123 case "$host_os" in
   1124 linux*)
   1125     dri3_default=yes
   1126     ;;
   1127 *)
   1128     dri3_default=no
   1129     ;;
   1130 esac
   1131 
   1132 if test "x$enable_dri" = xno; then
   1133     dri3_default=no
   1134 fi
   1135 
   1136 AC_ARG_ENABLE([dri3],
   1137     [AS_HELP_STRING([--enable-dri3],
   1138         [enable DRI3 @<:@default=auto@:>@])],
   1139     [enable_dri3="$enableval"],
   1140     [enable_dri3="$dri3_default"])
   1141 AC_ARG_ENABLE([glx],
   1142     [AS_HELP_STRING([--enable-glx@<:@=dri|xlib|gallium-xlib@:>@],
   1143         [enable the GLX library and choose an implementation @<:@default=auto@:>@])],
   1144     [enable_glx="$enableval"],
   1145     [enable_glx=yes])
   1146 AC_ARG_ENABLE([osmesa],
   1147     [AS_HELP_STRING([--enable-osmesa],
   1148         [enable OSMesa library @<:@default=disabled@:>@])],
   1149     [enable_osmesa="$enableval"],
   1150     [enable_osmesa=no])
   1151 AC_ARG_ENABLE([gallium-osmesa],
   1152     [AS_HELP_STRING([--enable-gallium-osmesa],
   1153         [enable Gallium implementation of the OSMesa library @<:@default=disabled@:>@])],
   1154     [enable_gallium_osmesa="$enableval"],
   1155     [enable_gallium_osmesa=no])
   1156 AC_ARG_ENABLE([egl],
   1157     [AS_HELP_STRING([--disable-egl],
   1158         [disable EGL library @<:@default=enabled@:>@])],
   1159     [enable_egl="$enableval"],
   1160     [enable_egl=yes])
   1161 
   1162 AC_ARG_ENABLE([xa],
   1163     [AS_HELP_STRING([--enable-xa],
   1164         [enable build of the XA X Acceleration API @<:@default=disabled@:>@])],
   1165     [enable_xa="$enableval"],
   1166     [enable_xa=no])
   1167 AC_ARG_ENABLE([gbm],
   1168    [AS_HELP_STRING([--enable-gbm],
   1169          [enable gbm library @<:@default=yes except cygwin@:>@])],
   1170    [enable_gbm="$enableval"],
   1171    [case "$host_os" in
   1172        cygwin*)
   1173           enable_gbm=no
   1174           ;;
   1175        *)
   1176           enable_gbm=yes
   1177           ;;
   1178     esac])
   1179 AC_ARG_ENABLE([nine],
   1180     [AS_HELP_STRING([--enable-nine],
   1181         [enable build of the nine Direct3D9 API @<:@default=no@:>@])],
   1182     [enable_nine="$enableval"],
   1183     [enable_nine=no])
   1184 
   1185 AC_ARG_ENABLE([xvmc],
   1186    [AS_HELP_STRING([--enable-xvmc],
   1187          [enable xvmc library @<:@default=auto@:>@])],
   1188    [enable_xvmc="$enableval"],
   1189    [enable_xvmc=auto])
   1190 AC_ARG_ENABLE([vdpau],
   1191    [AS_HELP_STRING([--enable-vdpau],
   1192          [enable vdpau library @<:@default=auto@:>@])],
   1193    [enable_vdpau="$enableval"],
   1194    [enable_vdpau=auto])
   1195 AC_ARG_ENABLE([omx],
   1196    [AS_HELP_STRING([--enable-omx],
   1197          [enable OpenMAX library @<:@default=disabled@:>@])],
   1198    [enable_omx="$enableval"],
   1199    [enable_omx=no])
   1200 AC_ARG_ENABLE([va],
   1201    [AS_HELP_STRING([--enable-va],
   1202          [enable va library @<:@default=auto@:>@])],
   1203    [enable_va="$enableval"],
   1204    [enable_va=auto])
   1205 AC_ARG_ENABLE([opencl],
   1206    [AS_HELP_STRING([--enable-opencl],
   1207          [enable OpenCL library @<:@default=disabled@:>@])],
   1208    [enable_opencl="$enableval"],
   1209    [enable_opencl=no])
   1210 AC_ARG_ENABLE([opencl_icd],
   1211    [AS_HELP_STRING([--enable-opencl-icd],
   1212           [Build an OpenCL ICD library to be loaded by an ICD implementation
   1213            @<:@default=disabled@:>@])],
   1214     [enable_opencl_icd="$enableval"],
   1215     [enable_opencl_icd=no])
   1216 
   1217 AC_ARG_ENABLE([gallium-tests],
   1218     [AS_HELP_STRING([--enable-gallium-tests],
   1219         [Enable optional Gallium tests) @<:@default=disabled@:>@])],
   1220     [enable_gallium_tests="$enableval"],
   1221     [enable_gallium_tests=no])
   1222 
   1223 # Option for Gallium drivers
   1224 
   1225 # Keep this in sync with the --with-gallium-drivers help string default value
   1226 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
   1227 
   1228 AC_ARG_WITH([gallium-drivers],
   1229     [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
   1230         [comma delimited Gallium drivers list, e.g.
   1231         "i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl,etnaviv,imx"
   1232         @<:@default=r300,r600,svga,swrast@:>@])],
   1233     [with_gallium_drivers="$withval"],
   1234     [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
   1235 
   1236 # Doing '--without-gallium-drivers' will set this variable to 'no'.  Clear it
   1237 # here so that the script doesn't choke on an unknown driver name later.
   1238 case "$with_gallium_drivers" in
   1239     yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
   1240     no) with_gallium_drivers='' ;;
   1241 esac
   1242 
   1243 if test "x$enable_opengl" = xno -a \
   1244         "x$enable_gles1" = xno -a \
   1245         "x$enable_gles2" = xno -a \
   1246         "x$enable_nine" = xno -a \
   1247         "x$enable_xa" = xno -a \
   1248         "x$enable_xvmc" = xno -a \
   1249         "x$enable_vdpau" = xno -a \
   1250         "x$enable_omx" = xno -a \
   1251         "x$enable_va" = xno -a \
   1252         "x$enable_opencl" = xno; then
   1253     AC_MSG_ERROR([at least one API should be enabled])
   1254 fi
   1255 
   1256 # Building OpenGL ES1 and/or ES2 without OpenGL is not supported on mesa 9.0.x
   1257 if test "x$enable_opengl" = xno -a \
   1258         "x$enable_gles1" = xyes; then
   1259     AC_MSG_ERROR([Building OpenGL ES1 without OpenGL is not supported])
   1260 fi
   1261 
   1262 if test "x$enable_opengl" = xno -a \
   1263         "x$enable_gles2" = xyes; then
   1264     AC_MSG_ERROR([Building OpenGL ES2 without OpenGL is not supported])
   1265 fi
   1266 
   1267 AM_CONDITIONAL(HAVE_OPENGL, test "x$enable_opengl" = xyes)
   1268 AM_CONDITIONAL(HAVE_OPENGL_ES1, test "x$enable_gles1" = xyes)
   1269 AM_CONDITIONAL(HAVE_OPENGL_ES2, test "x$enable_gles2" = xyes)
   1270 AM_CONDITIONAL(NEED_OPENGL_COMMON, test "x$enable_opengl" = xyes -o \
   1271                                         "x$enable_gles1" = xyes -o \
   1272                                         "x$enable_gles2" = xyes)
   1273 
   1274 # Validate GLX options
   1275 if test "x$enable_glx" = xyes; then
   1276     if test "x$enable_dri" = xyes; then
   1277         enable_glx=dri
   1278     elif test -n "$with_gallium_drivers"; then
   1279         enable_glx=gallium-xlib
   1280     else
   1281         enable_glx=xlib
   1282     fi
   1283 fi
   1284 case "x$enable_glx" in
   1285 xdri | xxlib | xgallium-xlib)
   1286     # GLX requires OpenGL
   1287     if test "x$enable_opengl" = xno; then
   1288         AC_MSG_ERROR([GLX cannot be built without OpenGL])
   1289     fi
   1290 
   1291     # Check individual dependencies
   1292     case "x$enable_glx" in
   1293     xdri)
   1294         if test "x$enable_dri" = xno; then
   1295             AC_MSG_ERROR([DRI-based GLX requires DRI to be enabled])
   1296         fi
   1297         ;;
   1298     xxlib)
   1299         if test "x$enable_dri" = xyes; then
   1300             AC_MSG_ERROR([Xlib-based GLX cannot be built with DRI enabled])
   1301         fi
   1302         ;;
   1303     xgallium-xlib )
   1304         if test "x$enable_dri" = xyes; then
   1305             AC_MSG_ERROR([Xlib-based (Gallium) GLX cannot be built with DRI enabled])
   1306         fi
   1307         if test -z "$with_gallium_drivers"; then
   1308             AC_MSG_ERROR([Xlib-based (Gallium) GLX cannot be built without Gallium enabled])
   1309         fi
   1310         ;;
   1311     esac
   1312     ;;
   1313 xno)
   1314     ;;
   1315 *)
   1316     AC_MSG_ERROR([Illegal value for --enable-glx: $enable_glx])
   1317     ;;
   1318 esac
   1319 
   1320 AM_CONDITIONAL(HAVE_GLX, test "x$enable_glx" != xno)
   1321 AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xdri)
   1322 AM_CONDITIONAL(HAVE_XLIB_GLX, test "x$enable_glx" = xxlib)
   1323 AM_CONDITIONAL(HAVE_GALLIUM_XLIB_GLX, test "x$enable_glx" = xgallium-xlib)
   1324 
   1325 dnl
   1326 dnl Libglvnd configuration
   1327 dnl
   1328 AC_ARG_ENABLE([libglvnd],
   1329     [AS_HELP_STRING([--enable-libglvnd],
   1330         [Build for libglvnd @<:@default=disabled@:>@])],
   1331     [enable_libglvnd="$enableval"],
   1332     [enable_libglvnd=no])
   1333 AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd" = xyes)
   1334 if test "x$enable_libglvnd" = xyes ; then
   1335     dnl XXX: update once we can handle more than libGL/glx.
   1336     dnl Namely: we should error out if neither of the glvnd enabled libraries
   1337     dnl are built
   1338     case "x$enable_glx" in
   1339     xno)
   1340         AC_MSG_ERROR([cannot build libglvnd without GLX])
   1341         ;;
   1342     xxlib | xgallium-xlib )
   1343         AC_MSG_ERROR([cannot build libgvnd when Xlib-GLX or Gallium-Xlib-GLX is enabled])
   1344         ;;
   1345     xdri)
   1346         ;;
   1347     esac
   1348 
   1349     PKG_CHECK_MODULES([GLVND], libglvnd >= 0.1.0)
   1350     DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"
   1351     DEFAULT_GL_LIB_NAME=GLX_mesa
   1352 fi
   1353 
   1354 # Check for libdrm
   1355 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
   1356                   [have_libdrm=yes], [have_libdrm=no])
   1357 if test "x$have_libdrm" = xyes; then
   1358 	DEFINES="$DEFINES -DHAVE_LIBDRM"
   1359 fi
   1360 
   1361 require_libdrm() {
   1362     if test "x$have_libdrm" != xyes; then
   1363        AC_MSG_ERROR([$1 requires libdrm >= $LIBDRM_REQUIRED])
   1364     fi
   1365 }
   1366 
   1367 
   1368 # Select which platform-dependent DRI code gets built
   1369 case "$host_os" in
   1370 darwin*)
   1371     dri_platform='apple' ;;
   1372 cygwin*)
   1373     dri_platform='windows' ;;
   1374 gnu*)
   1375     dri_platform='none' ;;
   1376 *)
   1377     dri_platform='drm' ;;
   1378 esac
   1379 
   1380 if test "x$enable_dri" = xyes -a "x$dri_platform" = xdrm -a "x$have_libdrm" = xyes; then
   1381     have_drisw_kms='yes'
   1382 fi
   1383 
   1384 AM_CONDITIONAL(HAVE_DRICOMMON, test "x$enable_dri" = xyes )
   1385 AM_CONDITIONAL(HAVE_DRISW, test "x$enable_dri" = xyes )
   1386 AM_CONDITIONAL(HAVE_DRISW_KMS, test "x$have_drisw_kms" = xyes )
   1387 AM_CONDITIONAL(HAVE_DRI2, test "x$enable_dri" = xyes -a "x$dri_platform" = xdrm -a "x$have_libdrm" = xyes )
   1388 AM_CONDITIONAL(HAVE_DRI3, test "x$enable_dri3" = xyes -a "x$dri_platform" = xdrm -a "x$have_libdrm" = xyes )
   1389 AM_CONDITIONAL(HAVE_APPLEDRI, test "x$enable_dri" = xyes -a "x$dri_platform" = xapple )
   1390 AM_CONDITIONAL(HAVE_LMSENSORS, test "x$enable_lmsensors" = xyes )
   1391 AM_CONDITIONAL(HAVE_GALLIUM_EXTRA_HUD, test "x$enable_gallium_extra_hud" = xyes )
   1392 AM_CONDITIONAL(HAVE_WINDOWSDRI, test "x$enable_dri" = xyes -a "x$dri_platform" = xwindows )
   1393 
   1394 AC_ARG_ENABLE([shared-glapi],
   1395     [AS_HELP_STRING([--enable-shared-glapi],
   1396         [Enable shared glapi for OpenGL @<:@default=enabled@:>@])],
   1397     [enable_shared_glapi="$enableval"],
   1398     [enable_shared_glapi=yes])
   1399 
   1400 case "x$enable_opengl$enable_gles1$enable_gles2" in
   1401 x*yes*yes*)
   1402     if test "x$enable_shared_glapi" = xno; then
   1403         AC_MSG_ERROR([shared GLAPI required when building two or more of
   1404                       the following APIs - opengl, gles1 gles2])
   1405     fi
   1406     ;;
   1407 esac
   1408 
   1409 AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes)
   1410 
   1411 # Build the pipe-drivers as separate libraries/modules.
   1412 # Do not touch this unless you know what you are doing.
   1413 # XXX: Expose via configure option ?
   1414 enable_shared_pipe_drivers=no
   1415 
   1416 dnl
   1417 dnl Driver specific build directories
   1418 dnl
   1419 
   1420 if test "x$enable_gallium_osmesa" = xyes; then
   1421     if ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
   1422         AC_MSG_ERROR([gallium_osmesa requires the gallium swrast driver])
   1423     fi
   1424     if test "x$enable_osmesa" = xyes; then
   1425         AC_MSG_ERROR([Cannot enable both classic and Gallium OSMesa implementations])
   1426     fi
   1427 fi
   1428 
   1429 require_dri_shared_libs_and_glapi() {
   1430     if test "x$enable_static" = xyes; then
   1431         AC_MSG_ERROR([$1 cannot be build as static library])
   1432     fi
   1433 
   1434     if test "x$enable_dri" != xyes; then
   1435         # There is only a single backend which won't be build/used otherwise.
   1436         # XXX: Revisit this as the egl/haiku is a thing.
   1437         AC_MSG_ERROR([$1 requires --enable-dri])
   1438     fi
   1439 
   1440     if test "x$enable_shared_glapi" != xyes; then
   1441         AC_MSG_ERROR([$1 requires --enable-shared-glapi])
   1442     fi
   1443 }
   1444 
   1445 if test "x$enable_dri" = xyes; then
   1446     require_dri_shared_libs_and_glapi "DRI"
   1447 
   1448     # not a hard requirement as swrast does not depend on it
   1449     if test "x$have_libdrm" = xyes; then
   1450         DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
   1451     fi
   1452 fi
   1453 
   1454 AC_ARG_ENABLE([driglx-direct],
   1455     [AS_HELP_STRING([--disable-driglx-direct],
   1456         [disable direct rendering in GLX and EGL for DRI \
   1457             @<:@default=auto@:>@])],
   1458     [driglx_direct="$enableval"],
   1459     [driglx_direct="yes"])
   1460 
   1461 dnl
   1462 dnl libGL configuration per driver
   1463 dnl
   1464 if test "x$enable_glx" != xno; then
   1465     PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
   1466 fi
   1467 case "x$enable_glx" in
   1468 xxlib | xgallium-xlib)
   1469     # Xlib-based GLX
   1470     dri_modules="x11 xext xcb"
   1471     PKG_CHECK_MODULES([XLIBGL], [$dri_modules])
   1472     GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
   1473     X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
   1474     GL_LIB_DEPS="$XLIBGL_LIBS"
   1475     GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
   1476     GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm $PTHREAD_LIBS"
   1477     ;;
   1478 xdri)
   1479     # DRI-based GLX
   1480 
   1481     # find the DRI deps for libGL
   1482     dri_modules="x11 xext xdamage xfixes x11-xcb xcb xcb-glx >= $XCBGLX_REQUIRED"
   1483 
   1484     if test x"$driglx_direct" = xyes; then
   1485         if test x"$dri_platform" = xdrm ; then
   1486             DEFINES="$DEFINES -DGLX_USE_DRM"
   1487             require_libdrm "Direct rendering"
   1488 
   1489             PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
   1490             GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
   1491             if test x"$enable_dri3" = xyes; then
   1492                PKG_CHECK_MODULES([DRI3PROTO], [dri3proto >= $DRI3PROTO_REQUIRED])
   1493                PKG_CHECK_MODULES([PRESENTPROTO], [presentproto >= $PRESENTPROTO_REQUIRED])
   1494             fi
   1495 
   1496             if test x"$enable_dri" = xyes; then
   1497                dri_modules="$dri_modules xcb-dri2 >= $XCBDRI2_REQUIRED"
   1498             fi
   1499 
   1500             if test x"$enable_dri3" = xyes; then
   1501                PKG_CHECK_EXISTS([xcb >= $XCB_REQUIRED], [], AC_MSG_ERROR([DRI3 requires xcb >= $XCB_REQUIRED]))
   1502                dri3_modules="xcb xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
   1503                PKG_CHECK_MODULES([XCB_DRI3], [$dri3_modules])
   1504             fi
   1505         fi
   1506         if test x"$dri_platform" = xapple ; then
   1507             DEFINES="$DEFINES -DGLX_USE_APPLEGL"
   1508         fi
   1509         if test x"$dri_platform" = xwindows ; then
   1510             DEFINES="$DEFINES -DGLX_USE_WINDOWSGL"
   1511         fi
   1512     fi
   1513 
   1514     # add xf86vidmode if available
   1515     PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
   1516     if test "$HAVE_XF86VIDMODE" = yes ; then
   1517         dri_modules="$dri_modules xxf86vm"
   1518     fi
   1519 
   1520     PKG_CHECK_MODULES([DRIGL], [$dri_modules])
   1521     GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
   1522     X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
   1523     GL_LIB_DEPS="$DRIGL_LIBS"
   1524 
   1525     # need DRM libs, $PTHREAD_LIBS, etc.
   1526     GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
   1527     GL_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
   1528     ;;
   1529 esac
   1530 
   1531 # This is outside the case (above) so that it is invoked even for non-GLX
   1532 # builds.
   1533 AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes)
   1534 
   1535 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
   1536 GLESv1_CM_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
   1537 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
   1538 GLESv2_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
   1539 
   1540 AC_SUBST([X11_INCLUDES])
   1541 AC_SUBST([GL_LIB_DEPS])
   1542 AC_SUBST([GL_PC_REQ_PRIV])
   1543 AC_SUBST([GL_PC_LIB_PRIV])
   1544 AC_SUBST([GL_PC_CFLAGS])
   1545 AC_SUBST([DRI_PC_REQ_PRIV])
   1546 AC_SUBST([GLESv1_CM_LIB_DEPS])
   1547 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
   1548 AC_SUBST([GLESv2_LIB_DEPS])
   1549 AC_SUBST([GLESv2_PC_LIB_PRIV])
   1550 
   1551 AC_SUBST([HAVE_XF86VIDMODE])
   1552 
   1553 dnl
   1554 dnl More GLX setup
   1555 dnl
   1556 case "x$enable_glx" in
   1557 xxlib | xgallium-xlib)
   1558     DEFINES="$DEFINES -DUSE_XSHM"
   1559     ;;
   1560 xdri)
   1561     DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
   1562     if test "x$driglx_direct" = xyes; then
   1563         DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
   1564     fi
   1565     ;;
   1566 esac
   1567 
   1568 dnl
   1569 dnl TLS detection
   1570 dnl
   1571 
   1572 AC_ARG_ENABLE([glx-tls],
   1573     [AS_HELP_STRING([--enable-glx-tls],
   1574         [enable TLS support in GLX @<:@default=enabled@:>@])],
   1575     [GLX_USE_TLS="$enableval"],
   1576     [GLX_USE_TLS=yes])
   1577 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
   1578 
   1579 if test "x$GLX_USE_TLS" = xyes; then
   1580     DEFINES="$DEFINES -DGLX_USE_TLS"
   1581 fi
   1582 
   1583 dnl Read-only text section on x86 hardened platforms
   1584 AC_ARG_ENABLE([glx-read-only-text],
   1585     [AS_HELP_STRING([--enable-glx-read-only-text],
   1586         [Disable writable .text section on x86 (decreases performance) @<:@default=disabled@:>@])],
   1587     [enable_glx_read_only_text="$enableval"],
   1588     [enable_glx_read_only_text=no])
   1589 if test "x$enable_glx_read_only_text" = xyes; then
   1590     DEFINES="$DEFINES -DGLX_X86_READONLY_TEXT"
   1591 fi
   1592 
   1593 dnl
   1594 dnl More DRI setup
   1595 dnl
   1596 dnl Directory for DRI drivers
   1597 AC_ARG_WITH([dri-driverdir],
   1598     [AS_HELP_STRING([--with-dri-driverdir=DIR],
   1599         [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
   1600     [DRI_DRIVER_INSTALL_DIR="$withval"],
   1601     [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
   1602 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
   1603 dnl Extra search path for DRI drivers
   1604 AC_ARG_WITH([dri-searchpath],
   1605     [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
   1606         [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
   1607     [DRI_DRIVER_SEARCH_DIR="$withval"],
   1608     [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
   1609 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
   1610 dnl Which drivers to build - default is chosen by platform
   1611 AC_ARG_WITH([dri-drivers],
   1612     [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
   1613         [comma delimited classic DRI drivers list, e.g.
   1614         "swrast,i965,radeon" @<:@default=auto@:>@])],
   1615     [with_dri_drivers="$withval"],
   1616     [with_dri_drivers=auto])
   1617 
   1618 if test "x$with_dri_drivers" = xauto; then
   1619     if test "x$enable_opengl" = xyes -a "x$enable_dri" = xyes; then
   1620         with_dri_drivers="yes"
   1621     else
   1622         with_dri_drivers="no"
   1623     fi
   1624 fi
   1625 if test "x$with_dri_drivers" = xno; then
   1626     with_dri_drivers=''
   1627 fi
   1628 
   1629 dnl If $with_dri_drivers is yes, drivers will be added through
   1630 dnl platform checks. Set DEFINES and LIB_DEPS
   1631 if test "x$enable_dri" = xyes; then
   1632     # Platform specific settings and drivers to build
   1633     case "$host_os" in
   1634     linux*)
   1635         if test "x$enable_dri3" = xyes; then
   1636             DEFINES="$DEFINES -DHAVE_DRI3"
   1637         fi
   1638 
   1639         case "$host_cpu" in
   1640         powerpc* | sparc*)
   1641             # Build only the drivers for cards that exist on PowerPC/sparc
   1642             if test "x$with_dri_drivers" = "xyes"; then
   1643                 with_dri_drivers="r200 radeon swrast"
   1644             fi
   1645             ;;
   1646         esac
   1647         ;;
   1648     cygwin*)
   1649         if test "x$with_dri_drivers" = "xyes"; then
   1650             with_dri_drivers="swrast"
   1651         fi
   1652         ;;
   1653     darwin*)
   1654         DEFINES="$DEFINES -DBUILDING_MESA"
   1655         if test "x$with_dri_drivers" = "xyes"; then
   1656             with_dri_drivers="swrast"
   1657         fi
   1658         ;;
   1659     esac
   1660 
   1661     # default drivers
   1662     if test "x$with_dri_drivers" = "xyes"; then
   1663         with_dri_drivers="i915 i965 nouveau r200 radeon swrast"
   1664     fi
   1665 
   1666     # Check for expat
   1667     PKG_CHECK_MODULES([EXPAT], [expat], [],
   1668         # expat version 2.0 and earlier do not provide expat.pc
   1669         [AC_CHECK_HEADER([expat.h],[],
   1670                          [AC_MSG_ERROR([Expat headers required for DRI not found])])
   1671          AC_CHECK_LIB([expat],[XML_ParserCreate],[],
   1672                      [AC_MSG_ERROR([Expat library required for DRI not found])])
   1673          EXPAT_LIBS="-lexpat"])
   1674 
   1675     # put all the necessary libs together
   1676     DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
   1677 fi
   1678 
   1679 AC_SUBST([DRI_LIB_DEPS])
   1680 
   1681 DRI_DIRS=''
   1682 dnl Duplicates in DRI_DIRS are removed by sorting it at the end of this block
   1683 if test -n "$with_dri_drivers"; then
   1684     if test "x$enable_opengl" != xyes; then
   1685         AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
   1686     fi
   1687 
   1688     dri_drivers=`IFS=', '; echo $with_dri_drivers`
   1689     for driver in $dri_drivers; do
   1690         DRI_DIRS="$DRI_DIRS $driver"
   1691         case "x$driver" in
   1692         xi915)
   1693             HAVE_I915_DRI=yes;
   1694             PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
   1695             ;;
   1696         xi965)
   1697             HAVE_I965_DRI=yes;
   1698             PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
   1699             ;;
   1700         xnouveau)
   1701             HAVE_NOUVEAU_DRI=yes;
   1702             PKG_CHECK_MODULES([NVVIEUX], [libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED])
   1703             ;;
   1704         xradeon)
   1705             HAVE_RADEON_DRI=yes;
   1706             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
   1707             ;;
   1708         xr200)
   1709             HAVE_R200_DRI=yes;
   1710             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
   1711             ;;
   1712         xswrast)
   1713             HAVE_SWRAST_DRI=yes;
   1714             ;;
   1715         *)
   1716             AC_MSG_ERROR([classic DRI driver '$driver' does not exist])
   1717             ;;
   1718         esac
   1719     done
   1720     DRI_DIRS=`echo $DRI_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
   1721 fi
   1722 
   1723 
   1724 dnl
   1725 dnl Gallium LLVM
   1726 dnl
   1727 dnl With follow-up commits we'll rework --enable-gallium-llvm to --enable-llvm
   1728 dnl Since that is too invasive to stable, do the more conservative thing for now
   1729 dnl and consider it as a global LLVM toggle.
   1730 dnl
   1731 AC_ARG_ENABLE([gallium-llvm],
   1732     [AS_HELP_STRING([--enable-gallium-llvm],
   1733         [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
   1734     [enable_gallium_llvm="$enableval"],
   1735     [enable_gallium_llvm=auto])
   1736 
   1737 if test "x$enable_gallium_llvm" = xauto; then
   1738     if test "x$FOUND_LLVM" = xyes; then
   1739         case "$host_cpu" in
   1740         i*86|x86_64|amd64) enable_gallium_llvm=yes;;
   1741         *) enable_gallium_llvm=no;;
   1742         esac
   1743     else
   1744         enable_gallium_llvm=no
   1745     fi
   1746 fi
   1747 
   1748 if test "x$enable_gallium_llvm" = xyes -a "x$FOUND_LLVM" = xno; then
   1749     AC_MSG_ERROR([--enable-gallium-llvm selected but llvm-config is not found])
   1750 fi
   1751 
   1752 #
   1753 # Vulkan driver configuration
   1754 #
   1755 
   1756 AC_ARG_WITH([vulkan-drivers],
   1757     [AS_HELP_STRING([--with-vulkan-drivers@<:@=DIRS...@:>@],
   1758         [comma delimited Vulkan drivers list, e.g.
   1759         "intel,radeon"
   1760         @<:@default=no@:>@])],
   1761     [with_vulkan_drivers="$withval"],
   1762     [with_vulkan_drivers="no"])
   1763 
   1764 # Doing '--without-vulkan-drivers' will set this variable to 'no'.  Clear it
   1765 # here so that the script doesn't choke on an unknown driver name later.
   1766 case "x$with_vulkan_drivers" in
   1767     xyes) with_vulkan_drivers="$VULKAN_DRIVERS_DEFAULT" ;;
   1768     xno) with_vulkan_drivers='' ;;
   1769 esac
   1770 
   1771 AC_ARG_WITH([vulkan-icddir],
   1772     [AS_HELP_STRING([--with-vulkan-icddir=DIR],
   1773         [directory for the Vulkan driver icd files @<:@${datarootdir}/vulkan/icd.d@:>@])],
   1774     [VULKAN_ICD_INSTALL_DIR="$withval"],
   1775     [VULKAN_ICD_INSTALL_DIR='${datarootdir}/vulkan/icd.d'])
   1776 AC_SUBST([VULKAN_ICD_INSTALL_DIR])
   1777 
   1778 if test -n "$with_vulkan_drivers"; then
   1779     VULKAN_DRIVERS=`IFS=', '; echo $with_vulkan_drivers`
   1780     for driver in $VULKAN_DRIVERS; do
   1781         case "x$driver" in
   1782         xintel)
   1783             if test "x$HAVE_I965_DRI" != xyes; then
   1784                 AC_MSG_ERROR([Intel Vulkan driver requires the i965 dri driver])
   1785             fi
   1786             HAVE_INTEL_VULKAN=yes;
   1787 
   1788             ;;
   1789         xradeon)
   1790             PKG_CHECK_MODULES([AMDGPU], [libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED])
   1791             radeon_llvm_check $LLVM_REQUIRED_RADV "radv"
   1792             HAVE_RADEON_VULKAN=yes;
   1793             ;;
   1794         *)
   1795             AC_MSG_ERROR([Vulkan driver '$driver' does not exist])
   1796             ;;
   1797         esac
   1798     done
   1799     VULKAN_DRIVERS=`echo $VULKAN_DRIVERS|tr " " "\n"|sort -u|tr "\n" " "`
   1800 fi
   1801 
   1802 
   1803 DEFINES="$DEFINES -DENABLE_SHADER_CACHE"
   1804 AM_CONDITIONAL(NEED_MEGADRIVER, test -n "$DRI_DIRS")
   1805 AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_glx" = xxlib -o \
   1806                                   "x$enable_osmesa" = xyes -o \
   1807                                   -n "$DRI_DIRS")
   1808 
   1809 dnl
   1810 dnl OSMesa configuration
   1811 dnl
   1812 
   1813 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
   1814 AC_ARG_WITH([osmesa-bits],
   1815     [AS_HELP_STRING([--with-osmesa-bits=BITS],
   1816         [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
   1817     [osmesa_bits="$withval"],
   1818     [osmesa_bits=8])
   1819 if test "x$osmesa_bits" != x8; then
   1820     if test "x$enable_dri" = xyes -o "x$enable_glx" != xno; then
   1821         AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
   1822         osmesa_bits=8
   1823     fi
   1824 fi
   1825 case "x$osmesa_bits" in
   1826 x8)
   1827     OSMESA_LIB="${OSMESA_LIB}"
   1828     ;;
   1829 x16|x32)
   1830     OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
   1831     DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
   1832     ;;
   1833 *)
   1834     AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
   1835     ;;
   1836 esac
   1837 
   1838 if test "x$enable_osmesa" = xyes -o "x$enable_gallium_osmesa" = xyes; then
   1839     # only link libraries with osmesa if shared
   1840     if test "$enable_static" = no; then
   1841         OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
   1842     else
   1843         OSMESA_LIB_DEPS=""
   1844     fi
   1845     OSMESA_PC_LIB_PRIV="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
   1846 fi
   1847 
   1848 AC_SUBST([OSMESA_LIB_DEPS])
   1849 AC_SUBST([OSMESA_PC_REQ])
   1850 AC_SUBST([OSMESA_PC_LIB_PRIV])
   1851 
   1852 dnl
   1853 dnl gbm configuration
   1854 dnl
   1855 if test "x$enable_gbm" = xyes; then
   1856     require_dri_shared_libs_and_glapi "gbm"
   1857 fi
   1858 AM_CONDITIONAL(HAVE_GBM, test "x$enable_gbm" = xyes)
   1859 # FINISHME: GBM has a number of dependencies which we should add below
   1860 GBM_PC_REQ_PRIV=""
   1861 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
   1862 AC_SUBST([GBM_PC_REQ_PRIV])
   1863 AC_SUBST([GBM_PC_LIB_PRIV])
   1864 
   1865 dnl
   1866 dnl EGL configuration
   1867 dnl
   1868 
   1869 if test "x$enable_egl" = xyes; then
   1870     EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS $PTHREAD_LIBS"
   1871 
   1872     AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
   1873 
   1874     require_dri_shared_libs_and_glapi "egl"
   1875 fi
   1876 AM_CONDITIONAL(HAVE_EGL, test "x$enable_egl" = xyes)
   1877 AC_SUBST([EGL_LIB_DEPS])
   1878 
   1879 gallium_st="mesa"
   1880 
   1881 dnl
   1882 dnl XA configuration
   1883 dnl
   1884 if test "x$enable_xa" = xyes; then
   1885     if test "x$with_gallium_drivers" = xswrast; then
   1886        AC_MSG_ERROR([
   1887           Building xa requires at least one non swrast gallium driver.
   1888           If you are looking to use libxatracker.so with the VMware driver,
   1889           make sure to include svga in the gallium drivers list, apart from
   1890           enabling XA.
   1891           Example: ./configure --enable-xa --with-gallium-drivers=svga...])
   1892     fi
   1893     gallium_st="$gallium_st xa"
   1894 fi
   1895 AM_CONDITIONAL(HAVE_ST_XA, test "x$enable_xa" = xyes)
   1896 
   1897 dnl
   1898 dnl Gallium G3DVL configuration
   1899 dnl
   1900 if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then
   1901     if test "x$enable_xvmc" = xauto; then
   1902 	PKG_CHECK_EXISTS([xvmc >= $XVMC_REQUIRED], [enable_xvmc=yes], [enable_xvmc=no])
   1903     fi
   1904 
   1905     if test "x$enable_vdpau" = xauto; then
   1906 	PKG_CHECK_EXISTS([vdpau >= $VDPAU_REQUIRED], [enable_vdpau=yes], [enable_vdpau=no])
   1907     fi
   1908 
   1909     if test "x$enable_omx" = xauto; then
   1910 	PKG_CHECK_EXISTS([libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED], [enable_omx=yes], [enable_omx=no])
   1911     fi
   1912 
   1913     if test "x$enable_va" = xauto; then
   1914         PKG_CHECK_EXISTS([libva >= $LIBVA_REQUIRED], [enable_va=yes], [enable_va=no])
   1915     fi
   1916 fi
   1917 
   1918 if test "x$enable_dri" = xyes -o \
   1919         "x$enable_xvmc" = xyes -o \
   1920         "x$enable_vdpau" = xyes -o \
   1921         "x$enable_omx" = xyes -o \
   1922         "x$enable_va" = xyes; then
   1923     need_gallium_vl=yes
   1924 fi
   1925 AM_CONDITIONAL(NEED_GALLIUM_VL, test "x$need_gallium_vl" = xyes)
   1926 
   1927 if test "x$enable_xvmc" = xyes -o \
   1928         "x$enable_vdpau" = xyes -o \
   1929         "x$enable_omx" = xyes -o \
   1930         "x$enable_va" = xyes; then
   1931     if test x"$enable_dri3" = xyes; then
   1932         PKG_CHECK_MODULES([VL], [xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED
   1933                                  xcb-xfixes x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
   1934     else
   1935         PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
   1936     fi
   1937     need_gallium_vl_winsys=yes
   1938 fi
   1939 AM_CONDITIONAL(NEED_GALLIUM_VL_WINSYS, test "x$need_gallium_vl_winsys" = xyes)
   1940 
   1941 if test "x$enable_xvmc" = xyes; then
   1942     PKG_CHECK_MODULES([XVMC], [xvmc >= $XVMC_REQUIRED])
   1943     gallium_st="$gallium_st xvmc"
   1944 fi
   1945 AM_CONDITIONAL(HAVE_ST_XVMC, test "x$enable_xvmc" = xyes)
   1946 
   1947 if test "x$enable_vdpau" = xyes; then
   1948     PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED])
   1949     gallium_st="$gallium_st vdpau"
   1950     DEFINES="$DEFINES -DHAVE_ST_VDPAU"
   1951 fi
   1952 AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes)
   1953 
   1954 if test "x$enable_omx" = xyes; then
   1955     PKG_CHECK_MODULES([OMX], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED])
   1956     gallium_st="$gallium_st omx"
   1957 fi
   1958 AM_CONDITIONAL(HAVE_ST_OMX, test "x$enable_omx" = xyes)
   1959 
   1960 if test "x$enable_va" = xyes; then
   1961     PKG_CHECK_MODULES([VA], [libva >= $LIBVA_REQUIRED])
   1962     gallium_st="$gallium_st va"
   1963 fi
   1964 AM_CONDITIONAL(HAVE_ST_VA, test "x$enable_va" = xyes)
   1965 
   1966 dnl
   1967 dnl Nine Direct3D9 configuration
   1968 dnl
   1969 if test "x$enable_nine" = xyes; then
   1970     if ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
   1971         AC_MSG_ERROR([nine requires the gallium swrast driver])
   1972     fi
   1973     if test "x$with_gallium_drivers" = xswrast; then
   1974         AC_MSG_ERROR([nine requires at least one non-swrast gallium driver])
   1975     fi
   1976     if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 6; then
   1977         AC_MSG_ERROR([gcc >= 4.6 is required to build nine])
   1978     fi
   1979 
   1980     if test "x$enable_dri3" = xno; then
   1981         AC_MSG_WARN([using nine together with wine requires DRI3 enabled system])
   1982     fi
   1983 
   1984     gallium_st="$gallium_st nine"
   1985 fi
   1986 AM_CONDITIONAL(HAVE_ST_NINE, test "x$enable_nine" = xyes)
   1987 
   1988 dnl
   1989 dnl OpenCL configuration
   1990 dnl
   1991 
   1992 AC_ARG_WITH([clang-libdir],
   1993    [AS_HELP_STRING([--with-clang-libdir],
   1994          [Path to Clang libraries @<:@default=llvm-config --libdir@:>@])],
   1995    [CLANG_LIBDIR="$withval"],
   1996    [CLANG_LIBDIR=''])
   1997 
   1998 PKG_CHECK_EXISTS([libclc], [have_libclc=yes], [have_libclc=no])
   1999 
   2000 if test "x$enable_opencl" = xyes; then
   2001     if test -z "$with_gallium_drivers"; then
   2002         AC_MSG_ERROR([cannot enable OpenCL without Gallium])
   2003     fi
   2004 
   2005     if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 7; then
   2006         AC_MSG_ERROR([gcc >= 4.7 is required to build clover])
   2007     fi
   2008 
   2009     if test "x$have_libclc" = xno; then
   2010         AC_MSG_ERROR([pkg-config cannot find libclc.pc which is required to build clover.
   2011                     Make sure the directory containing libclc.pc is specified in your
   2012                     PKG_CONFIG_PATH environment variable.
   2013                     By default libclc.pc is installed to /usr/local/share/pkgconfig/])
   2014     else
   2015         LIBCLC_INCLUDEDIR=`$PKG_CONFIG --variable=includedir libclc`
   2016         LIBCLC_LIBEXECDIR=`$PKG_CONFIG --variable=libexecdir libclc`
   2017         AC_SUBST([LIBCLC_INCLUDEDIR])
   2018         AC_SUBST([LIBCLC_LIBEXECDIR])
   2019     fi
   2020 
   2021     gallium_st="$gallium_st clover"
   2022 
   2023     if test "x$enable_opencl_icd" = xyes; then
   2024         OPENCL_LIBNAME="MesaOpenCL"
   2025     else
   2026         OPENCL_LIBNAME="OpenCL"
   2027     fi
   2028 
   2029     if test "x$have_libelf" != xyes; then
   2030        AC_MSG_ERROR([Clover requires libelf])
   2031     fi
   2032 
   2033     if test "x${ac_cv_cxx_compiler_gnu}" = xyes; then
   2034         altivec_enabled=no
   2035         AC_COMPILE_IFELSE([AC_LANG_SOURCE([
   2036         #if !defined(__VEC__) || !defined(__ALTIVEC__)
   2037         #error "AltiVec not enabled"
   2038         #endif
   2039         ])], altivec_enabled=yes)
   2040 
   2041         if test "$altivec_enabled" = yes; then
   2042             CLOVER_STD_OVERRIDE="-std=gnu++11"
   2043         fi
   2044         AC_SUBST([CLOVER_STD_OVERRIDE])
   2045     fi
   2046 
   2047     llvm_require_version $LLVM_REQUIRED_OPENCL "opencl"
   2048 
   2049     llvm_add_default_components "opencl"
   2050     llvm_add_component "all-targets" "opencl"
   2051     llvm_add_component "linker" "opencl"
   2052     llvm_add_component "instrumentation" "opencl"
   2053     llvm_add_component "ipo" "opencl"
   2054     llvm_add_component "irreader" "opencl"
   2055     llvm_add_component "option" "opencl"
   2056     llvm_add_component "objcarcopts" "opencl"
   2057     llvm_add_component "profiledata" "opencl"
   2058 
   2059     dnl Check for Clang internal headers
   2060     if test -z "$CLANG_LIBDIR"; then
   2061         CLANG_LIBDIR=${LLVM_LIBDIR}
   2062     fi
   2063     CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
   2064     AS_IF([test ! -f "$CLANG_RESOURCE_DIR/include/stddef.h"],
   2065         [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.])])
   2066 fi
   2067 AM_CONDITIONAL(HAVE_CLOVER, test "x$enable_opencl" = xyes)
   2068 AM_CONDITIONAL(HAVE_CLOVER_ICD, test "x$enable_opencl_icd" = xyes)
   2069 AC_SUBST([OPENCL_LIBNAME])
   2070 AC_SUBST([CLANG_RESOURCE_DIR])
   2071 
   2072 dnl
   2073 dnl Gallium configuration
   2074 dnl
   2075 AM_CONDITIONAL(HAVE_GALLIUM, test -n "$with_gallium_drivers")
   2076 
   2077 dnl
   2078 dnl EGL Platforms configuration
   2079 dnl
   2080 AC_ARG_WITH([egl-platforms],
   2081     [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
   2082         [comma delimited native platforms libEGL supports, e.g.
   2083         "x11,drm" @<:@default=auto@:>@])],
   2084     [with_egl_platforms="$withval"],
   2085     [if test "x$enable_egl" = xyes; then
   2086         if test "x$enable_gbm" = xyes; then
   2087            with_egl_platforms="x11,drm"
   2088         else
   2089            with_egl_platforms="x11"
   2090         fi
   2091     else
   2092         with_egl_platforms=""
   2093     fi])
   2094 
   2095 if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then
   2096     AC_MSG_ERROR([cannot build egl state tracker without EGL library])
   2097 fi
   2098 
   2099 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner],
   2100         WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`,
   2101         WAYLAND_SCANNER='')
   2102 if test "x$WAYLAND_SCANNER" = x; then
   2103     AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner])
   2104 fi
   2105 
   2106 # Do per-EGL platform setups and checks
   2107 egl_platforms=`IFS=', '; echo $with_egl_platforms`
   2108 for plat in $egl_platforms; do
   2109 	case "$plat" in
   2110 	wayland)
   2111 
   2112 		PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED])
   2113 
   2114 		if test "x$WAYLAND_SCANNER" = x; then
   2115 			AC_MSG_ERROR([wayland-scanner is needed to compile the wayland egl platform])
   2116 		fi
   2117 		;;
   2118 
   2119 	x11)
   2120 		PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED xcb-xfixes])
   2121 		;;
   2122 
   2123 	drm)
   2124 		test "x$enable_gbm" = "xno" &&
   2125 			AC_MSG_ERROR([EGL platform drm needs gbm])
   2126 		;;
   2127 
   2128 	surfaceless)
   2129 		;;
   2130 
   2131 	android)
   2132 		PKG_CHECK_MODULES([ANDROID], [cutils hardware sync])
   2133 		;;
   2134 
   2135 	*)
   2136 		AC_MSG_ERROR([EGL platform '$plat' does not exist])
   2137 		;;
   2138 	esac
   2139 
   2140 	case "$plat" in
   2141 	wayland|drm|surfaceless)
   2142 		require_libdrm "Platform $plat"
   2143 		;;
   2144 	esac
   2145 done
   2146 
   2147 # libEGL wants to default to the first platform specified in
   2148 # ./configure.  parse that here.
   2149 if test "x$egl_platforms" != "x"; then
   2150     FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr '[[a-z]]' '[[A-Z]]'`
   2151     EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS"
   2152 else
   2153     EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
   2154 fi
   2155 
   2156 AM_CONDITIONAL(HAVE_PLATFORM_X11, echo "$egl_platforms" | grep -q 'x11')
   2157 AM_CONDITIONAL(HAVE_PLATFORM_WAYLAND, echo "$egl_platforms" | grep -q 'wayland')
   2158 AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep -q 'drm')
   2159 AM_CONDITIONAL(HAVE_EGL_PLATFORM_SURFACELESS, echo "$egl_platforms" | grep -q 'surfaceless')
   2160 AM_CONDITIONAL(HAVE_EGL_PLATFORM_ANDROID, echo "$egl_platforms" | grep -q 'android')
   2161 
   2162 AC_SUBST([EGL_NATIVE_PLATFORM])
   2163 AC_SUBST([EGL_CFLAGS])
   2164 
   2165 # If we don't have the X11 platform, set this define so we don't try to include
   2166 # the X11 headers.
   2167 if ! echo "$egl_platforms" | grep -q 'x11'; then
   2168     DEFINES="$DEFINES -DMESA_EGL_NO_X11_HEADERS"
   2169     GL_PC_CFLAGS="$GL_PC_CFLAGS -DMESA_EGL_NO_X11_HEADERS"
   2170 fi
   2171 
   2172 dnl Directory for XVMC libs
   2173 AC_ARG_WITH([xvmc-libdir],
   2174     [AS_HELP_STRING([--with-xvmc-libdir=DIR],
   2175         [directory for the XVMC libraries @<:@default=${libdir}@:>@])],
   2176     [XVMC_LIB_INSTALL_DIR="$withval"],
   2177     [XVMC_LIB_INSTALL_DIR='${libdir}'])
   2178 AC_SUBST([XVMC_LIB_INSTALL_DIR])
   2179 
   2180 dnl
   2181 dnl Gallium Tests
   2182 dnl
   2183 AM_CONDITIONAL(HAVE_GALLIUM_TESTS, test "x$enable_gallium_tests" = xyes)
   2184 
   2185 dnl Directory for VDPAU libs
   2186 AC_ARG_WITH([vdpau-libdir],
   2187     [AS_HELP_STRING([--with-vdpau-libdir=DIR],
   2188         [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
   2189     [VDPAU_LIB_INSTALL_DIR="$withval"],
   2190     [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
   2191 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
   2192 
   2193 dnl Directory for OMX libs
   2194 
   2195 AC_ARG_WITH([omx-libdir],
   2196     [AS_HELP_STRING([--with-omx-libdir=DIR],
   2197         [directory for the OMX libraries])],
   2198     [OMX_LIB_INSTALL_DIR="$withval"],
   2199     [OMX_LIB_INSTALL_DIR=`$PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libomxil-bellagio`])
   2200 AC_SUBST([OMX_LIB_INSTALL_DIR])
   2201 
   2202 dnl Directory for VA libs
   2203 
   2204 AC_ARG_WITH([va-libdir],
   2205     [AS_HELP_STRING([--with-va-libdir=DIR],
   2206         [directory for the VA libraries @<:@${libdir}/dri@:>@])],
   2207     [VA_LIB_INSTALL_DIR="$withval"],
   2208     [VA_LIB_INSTALL_DIR="${libdir}/dri"])
   2209 AC_SUBST([VA_LIB_INSTALL_DIR])
   2210 
   2211 AC_ARG_WITH([d3d-libdir],
   2212     [AS_HELP_STRING([--with-d3d-libdir=DIR],
   2213         [directory for the D3D modules @<:@${libdir}/d3d@:>@])],
   2214     [D3D_DRIVER_INSTALL_DIR="$withval"],
   2215     [D3D_DRIVER_INSTALL_DIR="${libdir}/d3d"])
   2216 AC_SUBST([D3D_DRIVER_INSTALL_DIR])
   2217 
   2218 dnl
   2219 dnl r300 doesn't strictly require LLVM, but for performance reasons we
   2220 dnl highly recommend LLVM usage. So require it at least on x86 and x86_64
   2221 dnl architectures.
   2222 dnl
   2223 r300_require_llvm() {
   2224     case "$host" in *gnux32) return;; esac
   2225     case "$host_cpu" in
   2226     i*86|x86_64|amd64) require_llvm $1
   2227         ;;
   2228     esac
   2229 }
   2230 
   2231 dnl
   2232 dnl DRM is needed by X, Wayland, and offscreen rendering.
   2233 dnl Surfaceless is an alternative for the last one.
   2234 dnl
   2235 require_basic_egl() {
   2236     case "$with_egl_platforms" in
   2237         *drm*|*surfaceless*)
   2238             ;;
   2239         *)
   2240             AC_MSG_ERROR([$1 requires one of these:
   2241                   1) --with-egl-platforms=drm (X, Wayland, offscreen rendering based on DRM)
   2242                   2) --with-egl-platforms=surfaceless (offscreen only)
   2243                   Recommended options: drm,x11])
   2244             ;;
   2245     esac
   2246 }
   2247 
   2248 radeon_gallium_llvm_check() {
   2249     if test "x$enable_gallium_llvm" != "xyes"; then
   2250         AC_MSG_ERROR([--enable-gallium-llvm is required when building $2])
   2251     fi
   2252     radeon_llvm_check $*
   2253 }
   2254 
   2255 swr_require_cxx_feature_flags() {
   2256     feature_name="$1"
   2257     preprocessor_test="$2"
   2258     option_list="$3"
   2259     output_var="$4"
   2260 
   2261     AC_MSG_CHECKING([whether $CXX supports $feature_name])
   2262     AC_LANG_PUSH([C++])
   2263     save_CXXFLAGS="$CXXFLAGS"
   2264     save_IFS="$IFS"
   2265     IFS=","
   2266     found=0
   2267     for opts in $option_list
   2268     do
   2269         unset IFS
   2270         CXXFLAGS="$opts $save_CXXFLAGS"
   2271         AC_COMPILE_IFELSE(
   2272             [AC_LANG_PROGRAM(
   2273                 [   #if !($preprocessor_test)
   2274                     #error
   2275                     #endif
   2276                 ])],
   2277             [found=1; break],
   2278             [])
   2279         IFS=","
   2280     done
   2281     IFS="$save_IFS"
   2282     CXXFLAGS="$save_CXXFLAGS"
   2283     AC_LANG_POP([C++])
   2284     if test $found -eq 1; then
   2285         AC_MSG_RESULT([$opts])
   2286         eval "$output_var=\$opts"
   2287         return 0
   2288     fi
   2289     AC_MSG_RESULT([no])
   2290     AC_MSG_ERROR([swr requires $feature_name support])
   2291     return 1
   2292 }
   2293 
   2294 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
   2295 if test -n "$with_gallium_drivers"; then
   2296     gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
   2297     for driver in $gallium_drivers; do
   2298         case "x$driver" in
   2299         xsvga)
   2300             HAVE_GALLIUM_SVGA=yes
   2301             require_libdrm "svga"
   2302             ;;
   2303         xi915)
   2304             HAVE_GALLIUM_I915=yes
   2305             PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
   2306             require_libdrm "Gallium i915"
   2307             ;;
   2308         xilo)
   2309             HAVE_GALLIUM_ILO=yes
   2310             PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
   2311             require_libdrm "Gallium i965/ilo"
   2312             ;;
   2313         xr300)
   2314             HAVE_GALLIUM_R300=yes
   2315             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
   2316             require_libdrm "r300"
   2317             r300_require_llvm "r300"
   2318             ;;
   2319         xr600)
   2320             HAVE_GALLIUM_R600=yes
   2321             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
   2322             require_libdrm "r600"
   2323             if test "x$enable_opencl" = xyes; then
   2324                 radeon_gallium_llvm_check $LLVM_REQUIRED_R600 "r600"
   2325 
   2326                 llvm_add_component "asmparser" "r600"
   2327                 llvm_add_component "bitreader" "r600"
   2328             fi
   2329             ;;
   2330         xradeonsi)
   2331             HAVE_GALLIUM_RADEONSI=yes
   2332             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
   2333             PKG_CHECK_MODULES([AMDGPU], [libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED])
   2334             require_libdrm "radeonsi"
   2335             radeon_gallium_llvm_check $LLVM_REQUIRED_RADEONSI "radeonsi"
   2336             if test "x$enable_egl" = xyes; then
   2337                 require_basic_egl "radeonsi"
   2338             fi
   2339             ;;
   2340         xnouveau)
   2341             HAVE_GALLIUM_NOUVEAU=yes
   2342             PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
   2343             require_libdrm "nouveau"
   2344             ;;
   2345         xfreedreno)
   2346             HAVE_GALLIUM_FREEDRENO=yes
   2347             PKG_CHECK_MODULES([FREEDRENO], [libdrm_freedreno >= $LIBDRM_FREEDRENO_REQUIRED])
   2348             require_libdrm "freedreno"
   2349             ;;
   2350         xetnaviv)
   2351             HAVE_GALLIUM_ETNAVIV=yes
   2352             PKG_CHECK_MODULES([ETNAVIV], [libdrm_etnaviv >= $LIBDRM_ETNAVIV_REQUIRED])
   2353             require_libdrm "etnaviv"
   2354             ;;
   2355        ximx)
   2356             HAVE_GALLIUM_IMX=yes
   2357             ;;
   2358         xswrast)
   2359             HAVE_GALLIUM_SOFTPIPE=yes
   2360             if test "x$enable_gallium_llvm" = xyes; then
   2361                 HAVE_GALLIUM_LLVMPIPE=yes
   2362             fi
   2363             ;;
   2364         xswr)
   2365             llvm_require_version $LLVM_REQUIRED_SWR "swr"
   2366 
   2367             swr_require_cxx_feature_flags "C++11" "__cplusplus >= 201103L" \
   2368                 ",-std=c++11" \
   2369                 SWR_CXX11_CXXFLAGS
   2370             AC_SUBST([SWR_CXX11_CXXFLAGS])
   2371 
   2372             swr_require_cxx_feature_flags "AVX" "defined(__AVX__)" \
   2373                 ",-mavx,-march=core-avx" \
   2374                 SWR_AVX_CXXFLAGS
   2375             AC_SUBST([SWR_AVX_CXXFLAGS])
   2376 
   2377             swr_require_cxx_feature_flags "AVX2" "defined(__AVX2__)" \
   2378                 ",-mavx2 -mfma -mbmi2 -mf16c,-march=core-avx2" \
   2379                 SWR_AVX2_CXXFLAGS
   2380             AC_SUBST([SWR_AVX2_CXXFLAGS])
   2381 
   2382             HAVE_GALLIUM_SWR=yes
   2383             ;;
   2384         xvc4)
   2385             HAVE_GALLIUM_VC4=yes
   2386             PKG_CHECK_MODULES([VC4], [libdrm_vc4 >= $LIBDRM_VC4_REQUIRED])
   2387             require_libdrm "vc4"
   2388 
   2389             PKG_CHECK_MODULES([SIMPENROSE], [simpenrose],
   2390                               [USE_VC4_SIMULATOR=yes;
   2391                                DEFINES="$DEFINES -DUSE_VC4_SIMULATOR"],
   2392                               [USE_VC4_SIMULATOR=no])
   2393             ;;
   2394         xvirgl)
   2395             HAVE_GALLIUM_VIRGL=yes
   2396             require_libdrm "virgl"
   2397             require_basic_egl "virgl"
   2398             ;;
   2399         *)
   2400             AC_MSG_ERROR([Unknown Gallium driver: $driver])
   2401             ;;
   2402         esac
   2403     done
   2404 fi
   2405 
   2406 if test "x$enable_gallium_llvm" == "xyes" -a "$with_gallium_drivers"; then
   2407     llvm_require_version $LLVM_REQUIRED_GALLIUM "gallium"
   2408     llvm_add_default_components "gallium"
   2409 fi
   2410 
   2411 dnl We need to validate some needed dependencies for renderonly drivers.
   2412 
   2413 if test "x$HAVE_GALLIUM_ETNAVIV" != xyes -a "x$HAVE_GALLIUM_IMX" == xyes  ; then
   2414     AC_ERROR([Building with imx requires etnaviv])
   2415 fi
   2416 
   2417 dnl
   2418 dnl Set defines and buildtime variables only when using LLVM.
   2419 dnl
   2420 if test "x$enable_gallium_llvm" = xyes; then
   2421     DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DMESA_LLVM_VERSION_PATCH=$LLVM_VERSION_PATCH"
   2422 
   2423     LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
   2424     LLVM_CFLAGS=$LLVM_CPPFLAGS   # CPPFLAGS seem to be sufficient
   2425     LLVM_CXXFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cxxflags"`
   2426 
   2427     dnl Set LLVM_LIBS - This is done after the driver configuration so
   2428     dnl that drivers can add additional components to LLVM_COMPONENTS.
   2429     dnl Previously, gallium drivers were updating LLVM_LIBS directly
   2430     dnl by calling llvm-config --libs ${DRIVER_LLVM_COMPONENTS}, but
   2431     dnl this was causing the same libraries to be appear multiple times
   2432     dnl in LLVM_LIBS.
   2433 
   2434     if ! $LLVM_CONFIG --libs ${LLVM_COMPONENTS} >/dev/null; then
   2435        AC_MSG_ERROR([Calling ${LLVM_CONFIG} failed])
   2436     fi
   2437     LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
   2438 
   2439     dnl llvm-config may not give the right answer when llvm is a built as a
   2440     dnl single shared library, so we must work the library name out for
   2441     dnl ourselves.
   2442     dnl (See https://llvm.org/bugs/show_bug.cgi?id=6823)
   2443     if test "x$enable_llvm_shared_libs" = xyes; then
   2444         dnl We can't use $LLVM_VERSION because it has 'svn' stripped out,
   2445         LLVM_SO_NAME=LLVM-`$LLVM_CONFIG --version`
   2446         AS_IF([test -f "$LLVM_LIBDIR/lib$LLVM_SO_NAME.$IMP_LIB_EXT"], [llvm_have_one_so=yes])
   2447 
   2448         if test "x$llvm_have_one_so" = xyes; then
   2449             dnl LLVM was built using auto*, so there is only one shared object.
   2450             LLVM_LIBS="-l$LLVM_SO_NAME"
   2451         else
   2452             dnl If LLVM was built with CMake, there will be one shared object per
   2453             dnl component.
   2454             AS_IF([test ! -f "$LLVM_LIBDIR/libLLVMTarget.$IMP_LIB_EXT"],
   2455                     [AC_MSG_ERROR([Could not find llvm shared libraries:
   2456 	Please make sure you have built llvm with the --enable-shared option
   2457 	and that your llvm libraries are installed in $LLVM_LIBDIR
   2458 	If you have installed your llvm libraries to a different directory you
   2459 	can use the --with-llvm-prefix= configure flag to specify this directory.
   2460 	NOTE: Mesa is attempting to use llvm shared libraries by default.
   2461 	If you do not want to build with llvm shared libraries and instead want to
   2462 	use llvm static libraries then add --disable-llvm-shared-libs to your configure
   2463 	invocation and rebuild.])])
   2464 
   2465            dnl We don't need to update LLVM_LIBS in this case because the LLVM
   2466            dnl install uses a shared object for each component and we have
   2467            dnl already added all of these objects to LLVM_LIBS.
   2468         fi
   2469     else
   2470         AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues])
   2471         dnl We need to link to llvm system libs when using static libs
   2472         dnl However, only llvm 3.5+ provides --system-libs
   2473         if test $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then
   2474             LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`"
   2475         fi
   2476     fi
   2477 fi
   2478 
   2479 AM_CONDITIONAL(HAVE_GALLIUM_SVGA, test "x$HAVE_GALLIUM_SVGA" = xyes)
   2480 AM_CONDITIONAL(HAVE_GALLIUM_I915, test "x$HAVE_GALLIUM_I915" = xyes)
   2481 AM_CONDITIONAL(HAVE_GALLIUM_ILO, test "x$HAVE_GALLIUM_ILO" = xyes)
   2482 AM_CONDITIONAL(HAVE_GALLIUM_R300, test "x$HAVE_GALLIUM_R300" = xyes)
   2483 AM_CONDITIONAL(HAVE_GALLIUM_R600, test "x$HAVE_GALLIUM_R600" = xyes)
   2484 AM_CONDITIONAL(HAVE_GALLIUM_RADEONSI, test "x$HAVE_GALLIUM_RADEONSI" = xyes)
   2485 AM_CONDITIONAL(HAVE_GALLIUM_RADEON_COMMON, test "x$HAVE_GALLIUM_R600" = xyes -o \
   2486                                                 "x$HAVE_GALLIUM_RADEONSI" = xyes)
   2487 AM_CONDITIONAL(HAVE_GALLIUM_NOUVEAU, test "x$HAVE_GALLIUM_NOUVEAU" = xyes)
   2488 AM_CONDITIONAL(HAVE_GALLIUM_FREEDRENO, test "x$HAVE_GALLIUM_FREEDRENO" = xyes)
   2489 AM_CONDITIONAL(HAVE_GALLIUM_ETNAVIV, test "x$HAVE_GALLIUM_ETNAVIV" = xyes)
   2490 AM_CONDITIONAL(HAVE_GALLIUM_IMX, test "x$HAVE_GALLIUM_IMX" = xyes)
   2491 AM_CONDITIONAL(HAVE_GALLIUM_SOFTPIPE, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes)
   2492 AM_CONDITIONAL(HAVE_GALLIUM_LLVMPIPE, test "x$HAVE_GALLIUM_LLVMPIPE" = xyes)
   2493 AM_CONDITIONAL(HAVE_GALLIUM_SWR, test "x$HAVE_GALLIUM_SWR" = xyes)
   2494 AM_CONDITIONAL(HAVE_GALLIUM_SWRAST, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes -o \
   2495                                          "x$HAVE_GALLIUM_LLVMPIPE" = xyes -o \
   2496                                          "x$HAVE_GALLIUM_SWR" = xyes)
   2497 AM_CONDITIONAL(HAVE_GALLIUM_VC4, test "x$HAVE_GALLIUM_VC4" = xyes)
   2498 AM_CONDITIONAL(HAVE_GALLIUM_VIRGL, test "x$HAVE_GALLIUM_VIRGL" = xyes)
   2499 
   2500 AM_CONDITIONAL(HAVE_GALLIUM_STATIC_TARGETS, test "x$enable_shared_pipe_drivers" = xno)
   2501 
   2502 if test "x$enable_dri" = xyes; then
   2503     GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRI"
   2504 fi
   2505 
   2506 if test "x$have_drisw_kms" = xyes; then
   2507     GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_KMS"
   2508 fi
   2509 AC_SUBST([GALLIUM_PIPE_LOADER_DEFINES])
   2510 
   2511 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
   2512 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
   2513 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
   2514 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
   2515 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
   2516 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
   2517 
   2518 AM_CONDITIONAL(HAVE_RADEON_VULKAN, test "x$HAVE_RADEON_VULKAN" = xyes)
   2519 AM_CONDITIONAL(HAVE_INTEL_VULKAN, test "x$HAVE_INTEL_VULKAN" = xyes)
   2520 
   2521 AM_CONDITIONAL(HAVE_AMD_DRIVERS, test "x$HAVE_GALLIUM_R600" = xyes -o \
   2522                                       "x$HAVE_GALLIUM_RADEONSI" = xyes -o \
   2523                                       "x$HAVE_RADEON_VULKAN" = xyes)
   2524 
   2525 AM_CONDITIONAL(HAVE_INTEL_DRIVERS, test "x$HAVE_INTEL_VULKAN" = xyes -o \
   2526                                         "x$HAVE_I965_DRI" = xyes)
   2527 
   2528 AM_CONDITIONAL(NEED_RADEON_DRM_WINSYS, test "x$HAVE_GALLIUM_R300" = xyes -o \
   2529                                             "x$HAVE_GALLIUM_R600" = xyes -o \
   2530                                             "x$HAVE_GALLIUM_RADEONSI" = xyes)
   2531 AM_CONDITIONAL(NEED_WINSYS_XLIB, test "x$enable_glx" = xgallium-xlib)
   2532 AM_CONDITIONAL(NEED_RADEON_LLVM, test x$NEED_RADEON_LLVM = xyes)
   2533 AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
   2534 AM_CONDITIONAL(HAVE_GALLIUM_LLVM, test "x$enable_gallium_llvm" = xyes)
   2535 AM_CONDITIONAL(USE_VC4_SIMULATOR, test x$USE_VC4_SIMULATOR = xyes)
   2536 if test "x$USE_VC4_SIMULATOR" = xyes -a "x$HAVE_GALLIUM_ILO" = xyes; then
   2537     AC_MSG_ERROR([VC4 simulator on x86 replaces i965 driver build, so ilo must be disabled.])
   2538 fi
   2539 
   2540 AM_CONDITIONAL(HAVE_LIBDRM, test "x$have_libdrm" = xyes)
   2541 AM_CONDITIONAL(HAVE_OSMESA, test "x$enable_osmesa" = xyes)
   2542 AM_CONDITIONAL(HAVE_GALLIUM_OSMESA, test "x$enable_gallium_osmesa" = xyes)
   2543 AM_CONDITIONAL(HAVE_COMMON_OSMESA, test "x$enable_osmesa" = xyes -o \
   2544                                         "x$enable_gallium_osmesa" = xyes)
   2545 
   2546 AM_CONDITIONAL(HAVE_X86_ASM, test "x$asm_arch" = xx86 -o "x$asm_arch" = xx86_64)
   2547 AM_CONDITIONAL(HAVE_X86_64_ASM, test "x$asm_arch" = xx86_64)
   2548 AM_CONDITIONAL(HAVE_SPARC_ASM, test "x$asm_arch" = xsparc)
   2549 
   2550 AC_SUBST([NINE_MAJOR], 1)
   2551 AC_SUBST([NINE_MINOR], 0)
   2552 AC_SUBST([NINE_TINY], 0)
   2553 AC_SUBST([NINE_VERSION], "$NINE_MAJOR.$NINE_MINOR.$NINE_TINY")
   2554 
   2555 AC_SUBST([VDPAU_MAJOR], 1)
   2556 AC_SUBST([VDPAU_MINOR], 0)
   2557 
   2558 VA_MAJOR=`$PKG_CONFIG --modversion libva | $SED -n 's/\([[^\.]]*\)\..*$/\1/p'`
   2559 VA_MINOR=`$PKG_CONFIG --modversion libva | $SED -n 's/.*\.\(.*\)\..*$/\1/p'`
   2560 AC_SUBST([VA_MAJOR], $VA_MAJOR)
   2561 AC_SUBST([VA_MINOR], $VA_MINOR)
   2562 
   2563 AM_CONDITIONAL(HAVE_VULKAN_COMMON, test "x$VULKAN_DRIVERS" != "x")
   2564 
   2565 AC_SUBST([XVMC_MAJOR], 1)
   2566 AC_SUBST([XVMC_MINOR], 0)
   2567 
   2568 XA_HEADER="$srcdir/src/gallium/state_trackers/xa/xa_tracker.h"
   2569 XA_MAJOR=`grep "#define XA_TRACKER_VERSION_MAJOR" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_MAJOR //'`
   2570 XA_MINOR=`grep "#define XA_TRACKER_VERSION_MINOR" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_MINOR //'`
   2571 XA_TINY=`grep "#define XA_TRACKER_VERSION_PATCH" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_PATCH //'`
   2572 
   2573 AC_SUBST([XA_MAJOR], $XA_MAJOR)
   2574 AC_SUBST([XA_MINOR], $XA_MINOR)
   2575 AC_SUBST([XA_TINY], $XA_TINY)
   2576 AC_SUBST([XA_VERSION], "$XA_MAJOR.$XA_MINOR.$XA_TINY")
   2577 
   2578 AC_ARG_ENABLE(valgrind,
   2579               [AS_HELP_STRING([--enable-valgrind],
   2580                              [Build mesa with valgrind support (default: auto)])],
   2581                              [VALGRIND=$enableval], [VALGRIND=auto])
   2582 if test "x$VALGRIND" != xno; then
   2583 	PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no])
   2584 fi
   2585 AC_MSG_CHECKING([whether to enable Valgrind support])
   2586 if test "x$VALGRIND" = xauto; then
   2587 	VALGRIND="$have_valgrind"
   2588 fi
   2589 
   2590 if test "x$VALGRIND" = "xyes"; then
   2591 	if ! test "x$have_valgrind" = xyes; then
   2592 		AC_MSG_ERROR([Valgrind support required but not present])
   2593 	fi
   2594 	AC_DEFINE([HAVE_VALGRIND], 1, [Use valgrind intrinsics to suppress false warnings])
   2595 fi
   2596 
   2597 AC_MSG_RESULT([$VALGRIND])
   2598 
   2599 dnl Restore LDFLAGS and CPPFLAGS
   2600 LDFLAGS="$_SAVE_LDFLAGS"
   2601 CPPFLAGS="$_SAVE_CPPFLAGS"
   2602 
   2603 dnl Suppress clang's warnings about unused CFLAGS and CXXFLAGS
   2604 if test "x$acv_mesa_CLANG" = xyes; then
   2605     CFLAGS="$CFLAGS -Qunused-arguments"
   2606     CXXFLAGS="$CXXFLAGS -Qunused-arguments"
   2607 fi
   2608 
   2609 dnl Add user CFLAGS and CXXFLAGS
   2610 CFLAGS="$CFLAGS $USER_CFLAGS"
   2611 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
   2612 
   2613 dnl Substitute the config
   2614 AC_CONFIG_FILES([Makefile
   2615 		src/Makefile
   2616 		src/amd/Makefile
   2617 		src/amd/vulkan/Makefile
   2618 		src/compiler/Makefile
   2619 		src/egl/Makefile
   2620 		src/egl/main/egl.pc
   2621 		src/egl/wayland/wayland-drm/Makefile
   2622 		src/egl/wayland/wayland-egl/Makefile
   2623 		src/egl/wayland/wayland-egl/wayland-egl.pc
   2624 		src/gallium/Makefile
   2625 		src/gallium/auxiliary/Makefile
   2626 		src/gallium/auxiliary/pipe-loader/Makefile
   2627 		src/gallium/drivers/freedreno/Makefile
   2628 		src/gallium/drivers/ddebug/Makefile
   2629 		src/gallium/drivers/i915/Makefile
   2630 		src/gallium/drivers/ilo/Makefile
   2631 		src/gallium/drivers/llvmpipe/Makefile
   2632 		src/gallium/drivers/noop/Makefile
   2633 		src/gallium/drivers/nouveau/Makefile
   2634 		src/gallium/drivers/r300/Makefile
   2635 		src/gallium/drivers/r600/Makefile
   2636 		src/gallium/drivers/radeon/Makefile
   2637 		src/gallium/drivers/radeonsi/Makefile
   2638 		src/gallium/drivers/rbug/Makefile
   2639 		src/gallium/drivers/softpipe/Makefile
   2640 		src/gallium/drivers/svga/Makefile
   2641 		src/gallium/drivers/swr/Makefile
   2642 		src/gallium/drivers/trace/Makefile
   2643 		src/gallium/drivers/etnaviv/Makefile
   2644 		src/gallium/drivers/imx/Makefile
   2645 		src/gallium/drivers/vc4/Makefile
   2646 		src/gallium/drivers/virgl/Makefile
   2647 		src/gallium/state_trackers/clover/Makefile
   2648 		src/gallium/state_trackers/dri/Makefile
   2649 		src/gallium/state_trackers/glx/xlib/Makefile
   2650 		src/gallium/state_trackers/nine/Makefile
   2651 		src/gallium/state_trackers/omx/Makefile
   2652 		src/gallium/state_trackers/osmesa/Makefile
   2653 		src/gallium/state_trackers/va/Makefile
   2654 		src/gallium/state_trackers/vdpau/Makefile
   2655 		src/gallium/state_trackers/xa/Makefile
   2656 		src/gallium/state_trackers/xvmc/Makefile
   2657 		src/gallium/targets/d3dadapter9/Makefile
   2658 		src/gallium/targets/d3dadapter9/d3d.pc
   2659 		src/gallium/targets/dri/Makefile
   2660 		src/gallium/targets/libgl-xlib/Makefile
   2661 		src/gallium/targets/omx/Makefile
   2662 		src/gallium/targets/opencl/Makefile
   2663 		src/gallium/targets/opencl/mesa.icd
   2664 		src/gallium/targets/osmesa/Makefile
   2665 		src/gallium/targets/osmesa/osmesa.pc
   2666 		src/gallium/targets/pipe-loader/Makefile
   2667 		src/gallium/targets/va/Makefile
   2668 		src/gallium/targets/vdpau/Makefile
   2669 		src/gallium/targets/xa/Makefile
   2670 		src/gallium/targets/xa/xatracker.pc
   2671 		src/gallium/targets/xvmc/Makefile
   2672 		src/gallium/tests/trivial/Makefile
   2673 		src/gallium/tests/unit/Makefile
   2674 		src/gallium/winsys/etnaviv/drm/Makefile
   2675 		src/gallium/winsys/imx/drm/Makefile
   2676 		src/gallium/winsys/freedreno/drm/Makefile
   2677 		src/gallium/winsys/i915/drm/Makefile
   2678 		src/gallium/winsys/intel/drm/Makefile
   2679 		src/gallium/winsys/nouveau/drm/Makefile
   2680 		src/gallium/winsys/radeon/drm/Makefile
   2681 		src/gallium/winsys/amdgpu/drm/Makefile
   2682 		src/gallium/winsys/svga/drm/Makefile
   2683 		src/gallium/winsys/sw/dri/Makefile
   2684 		src/gallium/winsys/sw/kms-dri/Makefile
   2685 		src/gallium/winsys/sw/null/Makefile
   2686 		src/gallium/winsys/sw/wrapper/Makefile
   2687 		src/gallium/winsys/sw/xlib/Makefile
   2688 		src/gallium/winsys/vc4/drm/Makefile
   2689 		src/gallium/winsys/virgl/drm/Makefile
   2690 		src/gallium/winsys/virgl/vtest/Makefile
   2691 		src/gbm/Makefile
   2692 		src/gbm/main/gbm.pc
   2693 		src/glx/Makefile
   2694 		src/glx/apple/Makefile
   2695 		src/glx/tests/Makefile
   2696 		src/glx/windows/Makefile
   2697 		src/glx/windows/windowsdriproto.pc
   2698 		src/gtest/Makefile
   2699 		src/intel/Makefile
   2700 		src/intel/tools/Makefile
   2701 		src/intel/vulkan/Makefile
   2702 		src/loader/Makefile
   2703 		src/mapi/Makefile
   2704 		src/mapi/es1api/glesv1_cm.pc
   2705 		src/mapi/es2api/glesv2.pc
   2706 		src/mapi/glapi/gen/Makefile
   2707 		src/mesa/Makefile
   2708 		src/mesa/gl.pc
   2709 		src/mesa/drivers/dri/dri.pc
   2710 		src/mesa/drivers/dri/common/Makefile
   2711 		src/mesa/drivers/dri/common/xmlpool/Makefile
   2712 		src/mesa/drivers/dri/i915/Makefile
   2713 		src/mesa/drivers/dri/i965/Makefile
   2714 		src/mesa/drivers/dri/Makefile
   2715 		src/mesa/drivers/dri/nouveau/Makefile
   2716 		src/mesa/drivers/dri/r200/Makefile
   2717 		src/mesa/drivers/dri/radeon/Makefile
   2718 		src/mesa/drivers/dri/swrast/Makefile
   2719 		src/mesa/drivers/osmesa/Makefile
   2720 		src/mesa/drivers/osmesa/osmesa.pc
   2721 		src/mesa/drivers/x11/Makefile
   2722 		src/mesa/main/tests/Makefile
   2723 		src/util/Makefile
   2724 		src/util/tests/hash_table/Makefile
   2725 		src/vulkan/wsi/Makefile])
   2726 
   2727 AC_OUTPUT
   2728 
   2729 # Fix up dependencies in *.Plo files, where we changed the extension of a
   2730 # source file
   2731 $SED -i -e 's/brw_blorp.cpp/brw_blorp.c/' src/mesa/drivers/dri/i965/.deps/brw_blorp.Plo
   2732 
   2733 
   2734 dnl
   2735 dnl Output some configuration info for the user
   2736 dnl
   2737 echo ""
   2738 echo "        prefix:          $prefix"
   2739 echo "        exec_prefix:     $exec_prefix"
   2740 echo "        libdir:          $libdir"
   2741 echo "        includedir:      $includedir"
   2742 
   2743 dnl API info
   2744 echo ""
   2745 echo "        OpenGL:          $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
   2746 
   2747 dnl Driver info
   2748 echo ""
   2749 case "x$enable_osmesa$enable_gallium_osmesa" in
   2750 xnoyes)
   2751         echo "        OSMesa:          lib$OSMESA_LIB (Gallium)"
   2752         ;;
   2753 xyesno)
   2754         echo "        OSMesa:          lib$OSMESA_LIB"
   2755         ;;
   2756 xnono)
   2757         echo "        OSMesa:          no"
   2758         ;;
   2759 esac
   2760 
   2761 echo ""
   2762 if test "x$enable_dri" != xno; then
   2763         echo "        DRI platform:    $dri_platform"
   2764         if test -z "$DRI_DIRS"; then
   2765             echo "        DRI drivers:     no"
   2766         else
   2767             echo "        DRI drivers:     $DRI_DIRS"
   2768         fi
   2769         echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
   2770 fi
   2771 
   2772 case "x$enable_glx" in
   2773 xdri)
   2774     echo "        GLX:             DRI-based"
   2775     ;;
   2776 xxlib)
   2777     echo "        GLX:             Xlib-based"
   2778     ;;
   2779 xgallium-xlib)
   2780     echo "        GLX:             Xlib-based (Gallium)"
   2781     ;;
   2782 *)
   2783     echo "        GLX:             $enable_glx"
   2784     ;;
   2785 esac
   2786 
   2787 dnl EGL
   2788 echo ""
   2789 echo "        EGL:             $enable_egl"
   2790 if test "$enable_egl" = yes; then
   2791     echo "        EGL platforms:   $egl_platforms"
   2792 
   2793     egl_drivers=""
   2794     if test "x$enable_dri" != "xno"; then
   2795         egl_drivers="$egl_drivers builtin:egl_dri2"
   2796     fi
   2797     if test "x$enable_dri3" != "xno"; then
   2798         egl_drivers="$egl_drivers builtin:egl_dri3"
   2799     fi
   2800 
   2801     echo "        EGL drivers:    $egl_drivers"
   2802 fi
   2803 if test "x$enable_gbm" = xyes; then
   2804     echo "        GBM:             yes"
   2805 else
   2806     echo "        GBM:             no"
   2807 fi
   2808 
   2809 # Vulkan
   2810 echo ""
   2811 if test "x$VULKAN_DRIVERS" != x; then
   2812     echo "        Vulkan drivers:  $VULKAN_DRIVERS"
   2813     echo "        Vulkan ICD dir:  $VULKAN_ICD_INSTALL_DIR"
   2814 else
   2815     echo "        Vulkan drivers:  no"
   2816 fi
   2817 
   2818 echo ""
   2819 if test "x$enable_gallium_llvm" = xyes; then
   2820     echo "        llvm:            yes"
   2821     echo "        llvm-config:     $LLVM_CONFIG"
   2822     echo "        llvm-version:    $LLVM_VERSION"
   2823 else
   2824     echo "        llvm:            no"
   2825 fi
   2826 
   2827 echo ""
   2828 if test -n "$with_gallium_drivers"; then
   2829     echo "        Gallium drivers: $gallium_drivers"
   2830     echo "        Gallium st:      $gallium_st"
   2831 else
   2832     echo "        Gallium:         no"
   2833 fi
   2834 
   2835 echo ""
   2836 if test "x$enable_gallium_extra_hud" != xyes; then
   2837     echo "        HUD extra stats: no"
   2838 else
   2839     echo "        HUD extra stats: yes"
   2840 fi
   2841 
   2842 if test "x$enable_lmsensors" != xyes; then
   2843     echo "        HUD lmsensors:   no"
   2844 else
   2845     echo "        HUD lmsensors:   yes"
   2846 fi
   2847 
   2848 dnl Libraries
   2849 echo ""
   2850 echo "        Shared libs:     $enable_shared"
   2851 echo "        Static libs:     $enable_static"
   2852 echo "        Shared-glapi:    $enable_shared_glapi"
   2853 
   2854 dnl Compiler options
   2855 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
   2856 cflags=`echo $CFLAGS | \
   2857     $SED 's/^ *//;s/  */ /;s/ *$//'`
   2858 cxxflags=`echo $CXXFLAGS | \
   2859     $SED 's/^ *//;s/  */ /;s/ *$//'`
   2860 defines=`echo $DEFINES | $SED 's/^ *//;s/  */ /;s/ *$//'`
   2861 echo ""
   2862 echo "        CFLAGS:          $cflags"
   2863 echo "        CXXFLAGS:        $cxxflags"
   2864 echo "        Macros:          $defines"
   2865 echo ""
   2866 if test "x$enable_gallium_llvm" = xyes; then
   2867     echo "        LLVM_CFLAGS:     $LLVM_CFLAGS"
   2868     echo "        LLVM_CXXFLAGS:   $LLVM_CXXFLAGS"
   2869     echo "        LLVM_CPPFLAGS:   $LLVM_CPPFLAGS"
   2870     echo "        LLVM_LDFLAGS:    $LLVM_LDFLAGS"
   2871     echo ""
   2872 fi
   2873 echo "        PYTHON2:         $PYTHON2"
   2874 
   2875 echo ""
   2876 echo "        Run '${MAKE-make}' to build Mesa"
   2877 echo ""
   2878