1 dnl Copyright © 2011-2014 Intel Corporation
2 dnl Copyright © 2011-2014 Emil Velikov <emil.l.velikov@gmail.com>
3 dnl Copyright © 2007-2010 Dan Nicholson
4 dnl Copyright © 2010-2014 Marek Olšák <maraeo@gmail.com>
5 dnl Copyright © 2010-2014 Christian König
6 dnl Copyright © 2012-2014 Tom Stellard <tstellar@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 Copyright © 2003-2007 Keith Packard, Daniel Stone
14 dnl Permission is hereby granted, free of charge, to any person obtaining a
15 dnl copy of this software and associated documentation files (the "Software"),
16 dnl to deal in the Software without restriction, including without limitation
17 dnl the rights to use, copy, modify, merge, publish, distribute, sublicense,
18 dnl and/or sell copies of the Software, and to permit persons to whom the
19 dnl Software is furnished to do so, subject to the following conditions:
21 dnl The above copyright notice and this permission notice (including the next
22 dnl paragraph) shall be included in all copies or substantial portions of the
25 dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26 dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27 dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
28 dnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29 dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
30 dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
31 dnl DEALINGS IN THE SOFTWARE.
33 dnl Process this file with autoconf to create configure.
37 dnl Tell the user about autoconf.html in the --help output
38 m4_divert_once([HELP_END], [
39 See docs/autoconf.html for more details on the options for Mesa.])
41 m4_define(MESA_VERSION, m4_normalize(m4_include(VERSION)))
42 AC_INIT([Mesa], [MESA_VERSION],
43 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
44 AC_CONFIG_AUX_DIR([bin])
45 AC_CONFIG_MACRO_DIR([m4])
47 AM_INIT_AUTOMAKE([foreign tar-ustar dist-xz subdir-objects])
49 dnl We only support native Windows builds (MinGW/MSVC) through SCons.
52 AC_MSG_ERROR([MinGW build not supported through autoconf/automake, use SCons instead])
56 # Support silent build rules, requires at least automake-1.11. Disable
57 # by either passing --disable-silent-rules to configure or passing V=1
59 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
60 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
62 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
64 dnl Set internal versions
66 AC_SUBST([OSMESA_VERSION])
68 AC_SUBST([OPENCL_VERSION])
70 dnl Versions for external dependencies
71 LIBDRM_REQUIRED=2.4.60
72 LIBDRM_RADEON_REQUIRED=2.4.56
73 LIBDRM_AMDGPU_REQUIRED=2.4.63
74 LIBDRM_INTEL_REQUIRED=2.4.61
75 LIBDRM_NVVIEUX_REQUIRED=2.4.33
76 LIBDRM_NOUVEAU_REQUIRED=2.4.62
77 LIBDRM_FREEDRENO_REQUIRED=2.4.65
78 DRI2PROTO_REQUIRED=2.6
79 DRI3PROTO_REQUIRED=1.0
80 PRESENTPROTO_REQUIRED=1.0
82 GLPROTO_REQUIRED=1.4.14
83 LIBOMXIL_BELLAGIO_REQUIRED=0.0
86 WAYLAND_REQUIRED=1.2.0
90 XSHMFENCE_REQUIRED=1.1
92 PYTHON_MAKO_REQUIRED=0.3.4
101 AC_CHECK_PROGS([PYTHON2], [python2 python])
102 AC_CHECK_PROGS([PYTHON3], [python3])
109 LT_INIT([disable-static])
111 AC_CHECK_PROG(RM, rm, [rm -f])
114 AS_IF([test ! -f "$srcdir/src/glsl/glcpp/glcpp-parse.c"],
115 [AC_MSG_ERROR([bison not found - unable to compile glcpp-parse.y])]))
117 AS_IF([test ! -f "$srcdir/src/glsl/glcpp/glcpp-lex.c"],
118 [AC_MSG_ERROR([flex not found - unable to compile glcpp-lex.l])]))
120 AC_CHECK_PROG(INDENT, indent, indent, cat)
121 if test "x$INDENT" != "xcat"; then
122 # Only GNU indent is supported
123 INDENT_VERSION=`indent --version | grep GNU`
124 if test $? -eq 0; then
125 AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -TGLubyte -TGLbyte -TBool')
131 AX_CHECK_PYTHON_MAKO_MODULE($PYTHON_MAKO_REQUIRED)
133 if test -z "$PYTHON2"; then
134 if test ! -f "$srcdir/src/util/format_srgb.c"; then
135 AC_MSG_ERROR([Python not found - unable to generate sources])
138 if test "x$acv_mako_found" = xno; then
139 if test ! -f "$srcdir/src/mesa/main/format_unpack.c"; then
140 AC_MSG_ERROR([Python mako module v$PYTHON_MAKO_REQUIRED or higher not found])
147 dnl We need a POSIX shell for parts of the build. Assume we have one
151 # Solaris /bin/sh is too old/non-POSIX compliant
152 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
157 dnl clang is mostly GCC-compatible, but its version is much lower,
158 dnl so we have to check for it.
159 AC_MSG_CHECKING([if compiling with clang])
162 [AC_LANG_PROGRAM([], [[
167 [acv_mesa_CLANG=yes], [acv_mesa_CLANG=no])
169 AC_MSG_RESULT([$acv_mesa_CLANG])
171 dnl If we're using GCC, make sure that it is at least version 4.2.0. Older
172 dnl versions are explictly not supported.
175 if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
176 AC_MSG_CHECKING([whether gcc version is sufficient])
180 GCC_VERSION=`$CC -dumpversion`
181 if test $? -eq 0; then
182 GCC_VERSION_MAJOR=`echo $GCC_VERSION | cut -d. -f1`
183 GCC_VERSION_MINOR=`echo $GCC_VERSION | cut -d. -f2`
186 if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 2 ; then
188 AC_MSG_ERROR([If using GCC, version 4.2.0 or later is required.])
193 if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 6 ; then
196 if test "x$cross_compiling" = xyes; then
201 dnl Check for compiler builtins
202 AX_GCC_BUILTIN([__builtin_bswap32])
203 AX_GCC_BUILTIN([__builtin_bswap64])
204 AX_GCC_BUILTIN([__builtin_clz])
205 AX_GCC_BUILTIN([__builtin_clzll])
206 AX_GCC_BUILTIN([__builtin_ctz])
207 AX_GCC_BUILTIN([__builtin_expect])
208 AX_GCC_BUILTIN([__builtin_ffs])
209 AX_GCC_BUILTIN([__builtin_ffsll])
210 AX_GCC_BUILTIN([__builtin_popcount])
211 AX_GCC_BUILTIN([__builtin_popcountll])
212 AX_GCC_BUILTIN([__builtin_unreachable])
214 AX_GCC_FUNC_ATTRIBUTE([const])
215 AX_GCC_FUNC_ATTRIBUTE([flatten])
216 AX_GCC_FUNC_ATTRIBUTE([format])
217 AX_GCC_FUNC_ATTRIBUTE([malloc])
218 AX_GCC_FUNC_ATTRIBUTE([packed])
219 AX_GCC_FUNC_ATTRIBUTE([pure])
220 AX_GCC_FUNC_ATTRIBUTE([unused])
221 AX_GCC_FUNC_ATTRIBUTE([warn_unused_result])
223 AM_CONDITIONAL([GEN_ASM_OFFSETS], test "x$GEN_ASM_OFFSETS" = xyes)
225 dnl Make sure the pkg-config macros are defined
226 m4_ifndef([PKG_PROG_PKG_CONFIG],
227 [m4_fatal([Could not locate the pkg-config autoconf macros.
228 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
229 are in a different location, try setting the environment variable
230 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
231 PKG_PROG_PKG_CONFIG()
233 dnl LIB_DIR - library basename
234 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
237 dnl Cache LDFLAGS and CPPFLAGS so we can add to them and restore later
238 _SAVE_LDFLAGS="$LDFLAGS"
239 _SAVE_CPPFLAGS="$CPPFLAGS"
242 DEFINES="-D__STDC_LIMIT_MACROS"
246 DEFINES="$DEFINES -D_GNU_SOURCE"
249 DEFINES="$DEFINES -DSVR4"
252 DEFINES="$DEFINES -D_XOPEN_SOURCE=700"
256 dnl Add flags for gcc and g++
257 if test "x$GCC" = xyes; then
258 CFLAGS="$CFLAGS -Wall"
260 if test "x$USE_GNU99" = xyes; then
261 CFLAGS="$CFLAGS -std=gnu99"
263 CFLAGS="$CFLAGS -std=c99"
266 # Enable -Werror=implicit-function-declaration and
267 # -Werror=missing-prototypes, if available, or otherwise, just
268 # -Wmissing-prototypes. This is particularly useful to avoid
269 # generating a loadable driver module that has undefined symbols.
270 save_CFLAGS="$CFLAGS"
271 AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
272 CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
273 CFLAGS="$CFLAGS -Werror=missing-prototypes"
274 AC_LINK_IFELSE([AC_LANG_PROGRAM()],
275 AC_MSG_RESULT([yes]),
276 [CFLAGS="$save_CFLAGS -Wmissing-prototypes";
277 AC_MSG_RESULT([no])]);
279 # Enable -fvisibility=hidden if using a gcc that supports it
280 save_CFLAGS="$CFLAGS"
281 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
282 VISIBILITY_CFLAGS="-fvisibility=hidden"
283 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
284 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
285 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
287 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
290 # Work around aliasing bugs - developers should comment this out
291 CFLAGS="$CFLAGS -fno-strict-aliasing"
293 # We don't want floating-point math functions to set errno or trap
294 CFLAGS="$CFLAGS -fno-math-errno -fno-trapping-math"
296 # gcc's builtin memcmp is slower than glibc's
297 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
298 CFLAGS="$CFLAGS -fno-builtin-memcmp"
300 # Flags to help ensure that certain portions of the code -- and only those
301 # portions -- can be built with MSVC:
302 # - src/util, src/gallium/auxiliary, and src/gallium/drivers/llvmpipe needs
303 # to build with Windows SDK 7.0.7600, which bundles MSVC 2008
304 # - non-Linux/Posix OpenGL portions needs to build on MSVC 2013 (which
305 # supports most of C99)
306 # - the rest has no compiler compiler restrictions
307 MSVC2013_COMPAT_CFLAGS="-Werror=pointer-arith"
308 MSVC2013_COMPAT_CXXFLAGS="-Werror=pointer-arith"
310 # Enable -Werror=vla if compiler supports it
311 save_CFLAGS="$CFLAGS"
312 AC_MSG_CHECKING([whether $CC supports -Werror=vla])
313 CFLAGS="$CFLAGS -Werror=vla"
314 AC_LINK_IFELSE([AC_LANG_PROGRAM()],
315 [MSVC2013_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=vla";
316 MSVC2013_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS -Werror=vla";
317 AC_MSG_RESULT([yes])],
318 AC_MSG_RESULT([no]));
319 CFLAGS="$save_CFLAGS"
321 MSVC2008_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=declaration-after-statement"
322 MSVC2008_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS"
324 if test "x$GXX" = xyes; then
325 CXXFLAGS="$CXXFLAGS -Wall"
327 # Enable -fvisibility=hidden if using a gcc that supports it
328 save_CXXFLAGS="$CXXFLAGS"
329 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
330 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
331 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
333 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
334 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
337 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
338 CXXFLAGS=$save_CXXFLAGS
340 # Work around aliasing bugs - developers should comment this out
341 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
343 # gcc's builtin memcmp is slower than glibc's
344 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
345 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
348 AC_SUBST([MSVC2013_COMPAT_CFLAGS])
349 AC_SUBST([MSVC2013_COMPAT_CXXFLAGS])
350 AC_SUBST([MSVC2008_COMPAT_CFLAGS])
351 AC_SUBST([MSVC2008_COMPAT_CXXFLAGS])
353 dnl even if the compiler appears to support it, using visibility attributes isn't
354 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
358 VISIBILITY_CXXFLAGS=""
362 AC_SUBST([VISIBILITY_CFLAGS])
363 AC_SUBST([VISIBILITY_CXXFLAGS])
366 dnl Optional flags, check for compiler support
368 SSE41_CFLAGS="-msse4.1"
369 dnl Code compiled by GCC with -msse* assumes a 16 byte aligned
370 dnl stack, but on x86-32 such alignment is not guaranteed.
371 case "$target_cpu" in
373 SSE41_CFLAGS="$SSE41_CFLAGS -mstackrealign"
376 save_CFLAGS="$CFLAGS"
377 CFLAGS="$SSE41_CFLAGS $CFLAGS"
378 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
379 #include <smmintrin.h>
381 __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
382 c = _mm_max_epu32(a, b);
384 }]])], SSE41_SUPPORTED=1)
385 CFLAGS="$save_CFLAGS"
386 if test "x$SSE41_SUPPORTED" = x1; then
387 DEFINES="$DEFINES -DUSE_SSE41"
389 AM_CONDITIONAL([SSE41_SUPPORTED], [test x$SSE41_SUPPORTED = x1])
390 AC_SUBST([SSE41_CFLAGS], $SSE41_CFLAGS)
392 dnl Can't have static and shared libraries, default to static if user
393 dnl explicitly requested. If both disabled, set to static since shared
394 dnl was explicitly requested.
395 case "x$enable_static$enable_shared" in
397 AC_MSG_WARN([Cannot build static and shared libraries, disabling shared])
401 AC_MSG_WARN([Cannot disable both static and shared libraries, enabling shared])
406 AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes)
409 dnl other compiler options
411 AC_ARG_ENABLE([debug],
412 [AS_HELP_STRING([--enable-debug],
413 [use debug compiler flags and macros @<:@default=disabled@:>@])],
414 [enable_debug="$enableval"],
417 if test "x$enable_debug" = xyes; then
418 DEFINES="$DEFINES -DDEBUG"
419 if test "x$GCC" = xyes; then
420 if ! echo "$CFLAGS" | grep -q -e '-g'; then
423 if ! echo "$CFLAGS" | grep -q -e '-O'; then
427 if test "x$GXX" = xyes; then
428 if ! echo "$CXXFLAGS" | grep -q -e '-g'; then
429 CXXFLAGS="$CXXFLAGS -g"
431 if ! echo "$CXXFLAGS" | grep -q -e '-O'; then
432 CXXFLAGS="$CXXFLAGS -O0"
436 DEFINES="$DEFINES -DNDEBUG"
440 dnl Check if linker supports -Bsymbolic
442 save_LDFLAGS=$LDFLAGS
443 LDFLAGS="$LDFLAGS -Wl,-Bsymbolic"
444 AC_MSG_CHECKING([if ld supports -Bsymbolic])
446 [AC_LANG_SOURCE([int main() { return 0;}])],
447 [AC_MSG_RESULT([yes])
448 BSYMBOLIC="-Wl,-Bsymbolic";],
451 LDFLAGS=$save_LDFLAGS
453 AC_SUBST([BSYMBOLIC])
456 dnl Check if linker supports garbage collection
458 save_LDFLAGS=$LDFLAGS
459 LDFLAGS="$LDFLAGS -Wl,--gc-sections"
460 AC_MSG_CHECKING([whether ld supports --gc-sections])
462 [AC_LANG_SOURCE([static char UnusedFunc() { return 5; } int main() { return 0;}])],
463 [AC_MSG_RESULT([yes])
464 GC_SECTIONS="-Wl,--gc-sections";],
467 LDFLAGS=$save_LDFLAGS
469 AC_SUBST([GC_SECTIONS])
472 dnl OpenBSD does not have DT_NEEDED entries for libc by design
473 dnl so when these flags are passed to ld via libtool the checks will fail
477 LD_NO_UNDEFINED="" ;;
479 LD_NO_UNDEFINED="-Wl,--no-undefined" ;;
482 AC_SUBST([LD_NO_UNDEFINED])
485 dnl Check if linker supports version scripts
487 AC_MSG_CHECKING([if the linker supports version-scripts])
488 save_LDFLAGS=$LDFLAGS
489 LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
490 cat > conftest.map <<EOF
500 [AC_LANG_SOURCE([int main() { return 0;}])],
501 [have_ld_version_script=yes;AC_MSG_RESULT(yes)],
502 [have_ld_version_script=no; AC_MSG_RESULT(no)])
503 LDFLAGS=$save_LDFLAGS
504 AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
507 dnl Check if linker supports dynamic list files
509 AC_MSG_CHECKING([if the linker supports --dynamic-list])
510 save_LDFLAGS=$LDFLAGS
511 LDFLAGS="$LDFLAGS -Wl,--dynamic-list=conftest.dyn"
512 cat > conftest.dyn <<EOF
514 radeon_drm_winsys_create;
518 [AC_LANG_SOURCE([int main() { return 0;}])],
519 [have_ld_dynamic_list=yes;AC_MSG_RESULT(yes)],
520 [have_ld_dynamic_list=no; AC_MSG_RESULT(no)])
521 LDFLAGS=$save_LDFLAGS
522 AM_CONDITIONAL(HAVE_LD_DYNAMIC_LIST, test "$have_ld_dynamic_list" = "yes")
525 dnl compatibility symlinks
529 HAVE_COMPAT_SYMLINKS=yes ;;
531 HAVE_COMPAT_SYMLINKS=no ;;
534 AM_CONDITIONAL(HAVE_COMPAT_SYMLINKS, test "x$HAVE_COMPAT_SYMLINKS" = xyes)
539 dnl Unfortunately we need to do a few things that libtool can't help us with,
540 dnl so we need some knowledge of shared library filenames:
542 dnl LIB_EXT is the extension used when creating symlinks for alternate
543 dnl filenames for a shared library which will be dynamically loaded
545 dnl IMP_LIB_EXT is the extension used when checking for the presence of a
546 dnl the file for a shared library we wish to link with
569 AC_ARG_WITH([gl-lib-name],
570 [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
571 [specify GL library name @<:@default=GL@:>@])],
574 AC_ARG_WITH([osmesa-lib-name],
575 [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
576 [specify OSMesa library name @<:@default=OSMesa@:>@])],
577 [OSMESA_LIB=$withval],
579 AS_IF([test "x$GL_LIB" = xyes], [GL_LIB=GL])
580 AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
583 dnl Mangled Mesa support
585 AC_ARG_ENABLE([mangling],
586 [AS_HELP_STRING([--enable-mangling],
587 [enable mangled symbols and library name @<:@default=disabled@:>@])],
588 [enable_mangling="${enableval}"],
591 if test "x${enable_mangling}" = "xyes" ; then
592 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
593 GL_LIB="Mangled${GL_LIB}"
594 OSMESA_LIB="Mangled${OSMESA_LIB}"
597 AC_SUBST([OSMESA_LIB])
600 dnl potentially-infringing-but-nobody-knows-for-sure stuff
602 AC_ARG_ENABLE([texture-float],
603 [AS_HELP_STRING([--enable-texture-float],
604 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
605 [enable_texture_float="$enableval"],
606 [enable_texture_float=no]
608 if test "x$enable_texture_float" = xyes; then
609 AC_MSG_WARN([Floating-point textures enabled.])
610 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
611 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
615 dnl Arch/platform-specific settings
618 [AS_HELP_STRING([--disable-asm],
619 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
620 [enable_asm="$enableval"],
624 AC_MSG_CHECKING([whether to enable assembly])
625 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
626 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
627 if test "x$enable_asm" = xyes -a "x$cross_compiling" = xyes; then
629 i?86 | x86_64 | amd64)
631 AC_MSG_RESULT([no, cross compiling])
635 # check for supported arches
636 if test "x$enable_asm" = xyes; then
640 linux* | *freebsd* | dragonfly* | *netbsd* | openbsd* | gnu*)
647 linux* | *freebsd* | dragonfly* | *netbsd* | openbsd*)
663 DEFINES="$DEFINES -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
664 AC_MSG_RESULT([yes, x86])
667 DEFINES="$DEFINES -DUSE_X86_64_ASM"
668 AC_MSG_RESULT([yes, x86_64])
671 DEFINES="$DEFINES -DUSE_SPARC_ASM"
672 AC_MSG_RESULT([yes, sparc])
675 AC_MSG_RESULT([no, platform not supported])
680 AC_CHECK_HEADER([xlocale.h], [DEFINES="$DEFINES -DHAVE_XLOCALE_H"])
681 AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"])
682 AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"])
683 AC_CHECK_FUNC([mkostemp], [DEFINES="$DEFINES -DHAVE_MKOSTEMP"])
685 dnl Check to see if dlopen is in default libraries (like Solaris, which
686 dnl has it in libc), or if libdl is needed to get it.
687 AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
688 [AC_CHECK_LIB([dl], [dlopen],
689 [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])])
690 AC_SUBST([DLOPEN_LIBS])
692 dnl Check if that library also has dladdr
694 LIBS="$LIBS $DLOPEN_LIBS"
695 AC_CHECK_FUNCS([dladdr])
702 AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],
703 [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt],
704 [AC_MSG_ERROR([Could not find clock_gettime])])])
705 AC_SUBST([CLOCK_LIB])
709 dnl See if posix_memalign is available
710 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
712 dnl Check for pthreads
714 if test "x$ax_pthread_ok" = xno; then
715 AC_MSG_ERROR([Building mesa on this platform requires pthreads])
717 dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS
718 dnl to -pthread, which causes problems if we need -lpthread to appear in
720 test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
722 dnl SELinux awareness.
723 AC_ARG_ENABLE([selinux],
724 [AS_HELP_STRING([--enable-selinux],
725 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
726 [MESA_SELINUX="$enableval"],
728 if test "x$enable_selinux" = "xyes"; then
729 PKG_CHECK_MODULES([SELINUX], [libselinux], [],
730 [AC_CHECK_HEADER([selinux/selinux.h],[],
731 [AC_MSG_ERROR([SELinux headers not found])])
732 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
733 [AC_MSG_ERROR([SELinux library not found])])
734 SELINUX_LIBS="-lselinux"])
735 DEFINES="$DEFINES -DMESA_SELINUX"
737 AC_SUBST([SELINUX_CFLAGS])
738 AC_SUBST([SELINUX_LIBS])
741 AC_ARG_ENABLE([opengl],
742 [AS_HELP_STRING([--disable-opengl],
743 [disable support for standard OpenGL API @<:@default=enabled@:>@])],
744 [enable_opengl="$enableval"],
746 AC_ARG_ENABLE([gles1],
747 [AS_HELP_STRING([--disable-gles1],
748 [disable support for OpenGL ES 1.x API @<:@default=enabled@:>@])],
749 [enable_gles1="$enableval"],
751 AC_ARG_ENABLE([gles2],
752 [AS_HELP_STRING([--disable-gles2],
753 [disable support for OpenGL ES 2.x API @<:@default=enabled@:>@])],
754 [enable_gles2="$enableval"],
758 [AS_HELP_STRING([--enable-dri],
759 [enable DRI modules @<:@default=enabled@:>@])],
760 [enable_dri="$enableval"],
771 AC_ARG_ENABLE([dri3],
772 [AS_HELP_STRING([--enable-dri3],
773 [enable DRI3 @<:@default=auto@:>@])],
774 [enable_dri3="$enableval"],
775 [enable_dri3="$dri3_default"])
777 [AS_HELP_STRING([--enable-glx],
778 [enable GLX library @<:@default=enabled@:>@])],
779 [enable_glx="$enableval"],
781 AC_ARG_ENABLE([osmesa],
782 [AS_HELP_STRING([--enable-osmesa],
783 [enable OSMesa library @<:@default=disabled@:>@])],
784 [enable_osmesa="$enableval"],
786 AC_ARG_ENABLE([gallium-osmesa],
787 [AS_HELP_STRING([--enable-gallium-osmesa],
788 [enable Gallium implementation of the OSMesa library @<:@default=disabled@:>@])],
789 [enable_gallium_osmesa="$enableval"],
790 [enable_gallium_osmesa=no])
792 [AS_HELP_STRING([--disable-egl],
793 [disable EGL library @<:@default=enabled@:>@])],
794 [enable_egl="$enableval"],
798 [AS_HELP_STRING([--enable-xa],
799 [enable build of the XA X Acceleration API @<:@default=disabled@:>@])],
800 [enable_xa="$enableval"],
803 [AS_HELP_STRING([--enable-gbm],
804 [enable gbm library @<:@default=auto@:>@])],
805 [enable_gbm="$enableval"],
807 AC_ARG_ENABLE([nine],
808 [AS_HELP_STRING([--enable-nine],
809 [enable build of the nine Direct3D9 API @<:@default=no@:>@])],
810 [enable_nine="$enableval"],
813 AC_ARG_ENABLE([xvmc],
814 [AS_HELP_STRING([--enable-xvmc],
815 [enable xvmc library @<:@default=auto@:>@])],
816 [enable_xvmc="$enableval"],
818 AC_ARG_ENABLE([vdpau],
819 [AS_HELP_STRING([--enable-vdpau],
820 [enable vdpau library @<:@default=auto@:>@])],
821 [enable_vdpau="$enableval"],
824 [AS_HELP_STRING([--enable-omx],
825 [enable OpenMAX library @<:@default=disabled@:>@])],
826 [enable_omx="$enableval"],
829 [AS_HELP_STRING([--enable-va],
830 [enable va library @<:@default=auto@:>@])],
831 [enable_va="$enableval"],
833 AC_ARG_ENABLE([opencl],
834 [AS_HELP_STRING([--enable-opencl],
835 [enable OpenCL library @<:@default=disabled@:>@])],
836 [enable_opencl="$enableval"],
838 AC_ARG_ENABLE([opencl_icd],
839 [AS_HELP_STRING([--enable-opencl-icd],
840 [Build an OpenCL ICD library to be loaded by an ICD implementation
841 @<:@default=disabled@:>@])],
842 [enable_opencl_icd="$enableval"],
843 [enable_opencl_icd=no])
844 AC_ARG_ENABLE([xlib-glx],
845 [AS_HELP_STRING([--enable-xlib-glx],
846 [make GLX library Xlib-based instead of DRI-based @<:@default=disabled@:>@])],
847 [enable_xlib_glx="$enableval"],
848 [enable_xlib_glx=no])
850 AC_ARG_ENABLE([r600-llvm-compiler],
851 [AS_HELP_STRING([--enable-r600-llvm-compiler],
852 [Enable experimental LLVM backend for graphics shaders @<:@default=disabled@:>@])],
853 [enable_r600_llvm="$enableval"],
854 [enable_r600_llvm=no])
856 AC_ARG_ENABLE([gallium-tests],
857 [AS_HELP_STRING([--enable-gallium-tests],
858 [Enable optional Gallium tests) @<:@default=disabled@:>@])],
859 [enable_gallium_tests="$enableval"],
860 [enable_gallium_tests=no])
862 # Option for Gallium drivers
864 # Keep this in sync with the --with-gallium-drivers help string default value
865 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
867 AC_ARG_WITH([gallium-drivers],
868 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
869 [comma delimited Gallium drivers list, e.g.
870 "i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl"
871 @<:@default=r300,r600,svga,swrast@:>@])],
872 [with_gallium_drivers="$withval"],
873 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
875 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
876 # here so that the script doesn't choke on an unknown driver name later.
877 case "$with_gallium_drivers" in
878 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
879 no) with_gallium_drivers='' ;;
882 if test "x$enable_opengl" = xno -a \
883 "x$enable_gles1" = xno -a \
884 "x$enable_gles2" = xno -a \
885 "x$enable_nine" = xno -a \
886 "x$enable_xa" = xno -a \
887 "x$enable_xvmc" = xno -a \
888 "x$enable_vdpau" = xno -a \
889 "x$enable_omx" = xno -a \
890 "x$enable_va" = xno -a \
891 "x$enable_opencl" = xno; then
892 AC_MSG_ERROR([at least one API should be enabled])
895 # Building OpenGL ES1 and/or ES2 without OpenGL is not supported on mesa 9.0.x
896 if test "x$enable_opengl" = xno -a \
897 "x$enable_gles1" = xyes; then
898 AC_MSG_ERROR([Building OpenGL ES1 without OpenGL is not supported])
901 if test "x$enable_opengl" = xno -a \
902 "x$enable_gles2" = xyes; then
903 AC_MSG_ERROR([Building OpenGL ES2 without OpenGL is not supported])
906 AM_CONDITIONAL(HAVE_OPENGL, test "x$enable_opengl" = xyes)
907 AM_CONDITIONAL(HAVE_OPENGL_ES1, test "x$enable_gles1" = xyes)
908 AM_CONDITIONAL(HAVE_OPENGL_ES2, test "x$enable_gles2" = xyes)
909 AM_CONDITIONAL(NEED_OPENGL_COMMON, test "x$enable_opengl" = xyes -o \
910 "x$enable_gles1" = xyes -o \
911 "x$enable_gles2" = xyes)
913 if test "x$enable_glx" = xno; then
914 AC_MSG_WARN([GLX disabled, disabling Xlib-GLX])
918 if test "x$enable_dri$enable_xlib_glx" = xyesyes; then
919 AC_MSG_ERROR([DRI and Xlib-GLX cannot be built together])
922 if test "x$enable_opengl$enable_xlib_glx" = xnoyes; then
923 AC_MSG_ERROR([Xlib-GLX cannot be built without OpenGL])
926 # Disable GLX if OpenGL is not enabled
927 if test "x$enable_glx$enable_opengl" = xyesno; then
928 AC_MSG_WARN([OpenGL not enabled, disabling GLX])
932 # Disable GLX if DRI and Xlib-GLX are not enabled
933 if test "x$enable_glx" = xyes -a \
934 "x$enable_dri" = xno -a \
935 "x$enable_xlib_glx" = xno; then
936 AC_MSG_WARN([Neither DRI nor Xlib-GLX enabled, disabling GLX])
940 AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xyes -a \
941 "x$enable_dri" = xyes)
944 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
945 [have_libdrm=yes], [have_libdrm=no])
946 if test "x$have_libdrm" = xyes; then
947 DEFINES="$DEFINES -DHAVE_LIBDRM"
950 # Select which platform-dependent DRI code gets built
953 dri_platform='apple' ;;
955 dri_platform='none' ;;
957 dri_platform='drm' ;;
960 AM_CONDITIONAL(HAVE_DRICOMMON, test "x$enable_dri" = xyes )
961 AM_CONDITIONAL(HAVE_DRISW, test "x$enable_dri" = xyes )
962 AM_CONDITIONAL(HAVE_DRI2, test "x$enable_dri" = xyes -a "x$dri_platform" = xdrm -a "x$have_libdrm" = xyes )
963 AM_CONDITIONAL(HAVE_DRI3, test "x$enable_dri3" = xyes -a "x$dri_platform" = xdrm -a "x$have_libdrm" = xyes )
964 AM_CONDITIONAL(HAVE_APPLEDRI, test "x$enable_dri" = xyes -a "x$dri_platform" = xapple )
966 AC_ARG_ENABLE([shared-glapi],
967 [AS_HELP_STRING([--enable-shared-glapi],
968 [Enable shared glapi for OpenGL @<:@default=enabled@:>@])],
969 [enable_shared_glapi="$enableval"],
970 [enable_shared_glapi=yes])
972 case "x$enable_opengl$enable_gles1$enable_gles2" in
974 if test "x$enable_shared_glapi" = xno; then
975 AC_MSG_ERROR([shared GLAPI required when building two or more of
976 the following APIs - opengl, gles1 gles2])
981 AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes)
983 # Build the pipe-drivers as separate libraries/modules.
984 # Do not touch this unless you know what you are doing.
985 # XXX: Expose via configure option ?
986 enable_shared_pipe_drivers=no
989 dnl Driver specific build directories
992 if test -n "$with_gallium_drivers" -a "x$enable_glx$enable_xlib_glx" = xyesyes; then
993 NEED_WINSYS_XLIB="yes"
996 if test "x$enable_dri" = xyes; then
997 enable_gallium_loader="$enable_shared_pipe_drivers"
1000 if test "x$enable_gallium_osmesa" = xyes; then
1001 if ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
1002 AC_MSG_ERROR([gallium_osmesa requires the gallium swrast driver])
1004 if test "x$enable_osmesa" = xyes; then
1005 AC_MSG_ERROR([Cannot enable both classic and Gallium OSMesa implementations])
1009 AC_SUBST([MESA_LLVM])
1013 [AS_HELP_STRING([--with-sha1=libc|libmd|libnettle|libgcrypt|libcrypto|libsha1|CommonCrypto|CryptoAPI],
1014 [choose SHA1 implementation])])
1015 case "x$with_sha1" in
1016 x | xlibc | xlibmd | xlibnettle | xlibgcrypt | xlibcrypto | xlibsha1 | xCommonCrypto | xCryptoAPI)
1019 AC_MSG_ERROR([Illegal value for --with-sha1: $with_sha1])
1022 AC_CHECK_FUNC([SHA1Init], [HAVE_SHA1_IN_LIBC=yes])
1023 if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_LIBC" = xyes; then
1026 if test "x$with_sha1" = xlibc && test "x$HAVE_SHA1_IN_LIBC" != xyes; then
1027 AC_MSG_ERROR([sha1 in libc requested but not found])
1029 if test "x$with_sha1" = xlibc; then
1030 AC_DEFINE([HAVE_SHA1_IN_LIBC], [1],
1031 [Use libc SHA1 functions])
1034 AC_CHECK_FUNC([CC_SHA1_Init], [HAVE_SHA1_IN_COMMONCRYPTO=yes])
1035 if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_COMMONCRYPTO" = xyes; then
1036 with_sha1=CommonCrypto
1038 if test "x$with_sha1" = xCommonCrypto && test "x$HAVE_SHA1_IN_COMMONCRYPTO" != xyes; then
1039 AC_MSG_ERROR([CommonCrypto requested but not found])
1041 if test "x$with_sha1" = xCommonCrypto; then
1042 AC_DEFINE([HAVE_SHA1_IN_COMMONCRYPTO], [1],
1043 [Use CommonCrypto SHA1 functions])
1046 dnl stdcall functions cannot be tested with AC_CHECK_LIB
1047 AC_CHECK_HEADER([wincrypt.h], [HAVE_SHA1_IN_CRYPTOAPI=yes], [], [#include <windows.h>])
1048 if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_CRYPTOAPI" = xyes; then
1051 if test "x$with_sha1" = xCryptoAPI && test "x$HAVE_SHA1_IN_CRYPTOAPI" != xyes; then
1052 AC_MSG_ERROR([CryptoAPI requested but not found])
1054 if test "x$with_sha1" = xCryptoAPI; then
1055 AC_DEFINE([HAVE_SHA1_IN_CRYPTOAPI], [1],
1056 [Use CryptoAPI SHA1 functions])
1059 AC_CHECK_LIB([md], [SHA1Init], [HAVE_LIBMD=yes])
1060 if test "x$with_sha1" = x && test "x$HAVE_LIBMD" = xyes; then
1063 if test "x$with_sha1" = xlibmd && test "x$HAVE_LIBMD" != xyes; then
1064 AC_MSG_ERROR([libmd requested but not found])
1066 if test "x$with_sha1" = xlibmd; then
1067 AC_DEFINE([HAVE_SHA1_IN_LIBMD], [1],
1068 [Use libmd SHA1 functions])
1071 PKG_CHECK_MODULES([LIBSHA1], [libsha1], [HAVE_LIBSHA1=yes], [HAVE_LIBSHA1=no])
1072 if test "x$with_sha1" = x && test "x$HAVE_LIBSHA1" = xyes; then
1075 if test "x$with_sha1" = xlibsha1 && test "x$HAVE_LIBSHA1" != xyes; then
1076 AC_MSG_ERROR([libsha1 requested but not found])
1078 if test "x$with_sha1" = xlibsha1; then
1079 AC_DEFINE([HAVE_SHA1_IN_LIBSHA1], [1],
1080 [Use libsha1 for SHA1])
1083 AC_CHECK_LIB([nettle], [nettle_sha1_init], [HAVE_LIBNETTLE=yes])
1084 if test "x$with_sha1" = x && test "x$HAVE_LIBNETTLE" = xyes; then
1087 if test "x$with_sha1" = xlibnettle && test "x$HAVE_LIBNETTLE" != xyes; then
1088 AC_MSG_ERROR([libnettle requested but not found])
1090 if test "x$with_sha1" = xlibnettle; then
1091 AC_DEFINE([HAVE_SHA1_IN_LIBNETTLE], [1],
1092 [Use libnettle SHA1 functions])
1095 AC_CHECK_LIB([gcrypt], [gcry_md_open], [HAVE_LIBGCRYPT=yes])
1096 if test "x$with_sha1" = x && test "x$HAVE_LIBGCRYPT" = xyes; then
1099 if test "x$with_sha1" = xlibgcrypt && test "x$HAVE_LIBGCRYPT" != xyes; then
1100 AC_MSG_ERROR([libgcrypt requested but not found])
1102 if test "x$with_sha1" = xlibgcrypt; then
1103 AC_DEFINE([HAVE_SHA1_IN_LIBGCRYPT], [1],
1104 [Use libgcrypt SHA1 functions])
1107 # We don't need all of the OpenSSL libraries, just libcrypto
1108 AC_CHECK_LIB([crypto], [SHA1_Init], [HAVE_LIBCRYPTO=yes])
1109 PKG_CHECK_MODULES([OPENSSL], [openssl], [HAVE_OPENSSL_PKC=yes],
1110 [HAVE_OPENSSL_PKC=no])
1111 if test "x$HAVE_LIBCRYPTO" = xyes || test "x$HAVE_OPENSSL_PKC" = xyes; then
1112 if test "x$with_sha1" = x; then
1116 if test "x$with_sha1" = xlibcrypto; then
1117 AC_MSG_ERROR([OpenSSL libcrypto requested but not found])
1120 if test "x$with_sha1" = xlibcrypto; then
1121 if test "x$HAVE_LIBCRYPTO" = xyes; then
1124 SHA1_LIBS="$OPENSSL_LIBS"
1125 SHA1_CFLAGS="$OPENSSL_CFLAGS"
1128 AC_MSG_CHECKING([for SHA1 implementation])
1129 AC_MSG_RESULT([$with_sha1])
1131 AC_SUBST(SHA1_CFLAGS)
1133 # Enable a define for SHA1
1134 if test "x$with_sha1" != "x"; then
1135 DEFINES="$DEFINES -DHAVE_SHA1"
1138 # Allow user to configure out the shader-cache feature
1139 AC_ARG_ENABLE([shader-cache],
1140 AS_HELP_STRING([--disable-shader-cache], [Disable binary shader cache]),
1141 [enable_shader_cache="$enableval"],
1142 [if test "x$with_sha1" != "x"; then
1143 enable_shader_cache=yes
1145 enable_shader_cache=no
1147 if test "x$with_sha1" = "x"; then
1148 if test "x$enable_shader_cache" = "xyes"; then
1149 AC_MSG_ERROR([Cannot enable shader cache (no SHA-1 implementation found)])
1152 AM_CONDITIONAL([ENABLE_SHADER_CACHE], [test x$enable_shader_cache = xyes])
1161 PKG_CHECK_MODULES([LIBUDEV], [libudev >= $LIBUDEV_REQUIRED],
1162 have_libudev=yes, have_libudev=no)
1164 AC_ARG_ENABLE([sysfs],
1165 [AS_HELP_STRING([--enable-sysfs],
1166 [enable /sys PCI identification @<:@default=disabled@:>@])],
1167 [have_sysfs="$enableval"],
1171 if test "x$enable_dri" = xyes; then
1172 if test "$enable_static" = yes; then
1173 AC_MSG_ERROR([Cannot use static libraries for DRI drivers])
1176 # not a hard requirement as swrast does not depend on it
1177 if test "x$have_libdrm" = xyes; then
1178 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
1182 AC_ARG_ENABLE([driglx-direct],
1183 [AS_HELP_STRING([--disable-driglx-direct],
1184 [disable direct rendering in GLX and EGL for DRI \
1185 @<:@default=auto@:>@])],
1186 [driglx_direct="$enableval"],
1187 [driglx_direct="yes"])
1190 dnl libGL configuration per driver
1192 case "x$enable_glx$enable_xlib_glx" in
1195 dri_modules="x11 xext xcb"
1196 PKG_CHECK_MODULES([XLIBGL], [$dri_modules])
1197 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1198 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
1199 GL_LIB_DEPS="$XLIBGL_LIBS"
1200 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1201 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm $PTHREAD_LIBS"
1205 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
1207 # find the DRI deps for libGL
1208 dri_modules="x11 xext xdamage xfixes x11-xcb xcb xcb-glx >= $XCBGLX_REQUIRED"
1210 if test x"$driglx_direct" = xyes; then
1211 if test x"$dri_platform" = xdrm ; then
1212 DEFINES="$DEFINES -DGLX_USE_DRM"
1213 if test "x$have_libdrm" != xyes; then
1214 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
1217 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
1218 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
1219 if test x"$enable_dri3" = xyes; then
1220 PKG_CHECK_MODULES([DRI3PROTO], [dri3proto >= $DRI3PROTO_REQUIRED])
1221 PKG_CHECK_MODULES([PRESENTPROTO], [presentproto >= $PRESENTPROTO_REQUIRED])
1224 if test x"$enable_dri" = xyes; then
1225 dri_modules="$dri_modules xcb-dri2 >= $XCBDRI2_REQUIRED"
1228 if test x"$enable_dri3" = xyes; then
1229 PKG_CHECK_EXISTS([xcb >= $XCB_REQUIRED], [], AC_MSG_ERROR([DRI3 requires xcb >= $XCB_REQUIRED]))
1230 dri_modules="$dri_modules xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
1233 if test x"$dri_platform" = xapple ; then
1234 DEFINES="$DEFINES -DGLX_USE_APPLEGL"
1238 # add xf86vidmode if available
1239 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
1240 if test "$HAVE_XF86VIDMODE" = yes ; then
1241 dri_modules="$dri_modules xxf86vm"
1244 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
1245 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1246 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
1247 GL_LIB_DEPS="$DRIGL_LIBS"
1249 # need DRM libs, $PTHREAD_LIBS, etc.
1250 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1251 GL_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1256 if test "$have_libudev" = yes; then
1257 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1261 if test "$have_sysfs" = yes; then
1262 DEFINES="$DEFINES -DHAVE_SYSFS"
1266 # This is outside the case (above) so that it is invoked even for non-GLX
1268 AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes)
1270 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1271 GLESv1_CM_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1272 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1273 GLESv2_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1275 AC_SUBST([X11_INCLUDES])
1276 AC_SUBST([GL_LIB_DEPS])
1277 AC_SUBST([GL_PC_REQ_PRIV])
1278 AC_SUBST([GL_PC_LIB_PRIV])
1279 AC_SUBST([GL_PC_CFLAGS])
1280 AC_SUBST([DRI_PC_REQ_PRIV])
1281 AC_SUBST([GLESv1_CM_LIB_DEPS])
1282 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1283 AC_SUBST([GLESv2_LIB_DEPS])
1284 AC_SUBST([GLESv2_PC_LIB_PRIV])
1286 AC_SUBST([HAVE_XF86VIDMODE])
1291 case "x$enable_glx$enable_xlib_glx" in
1293 DEFINES="$DEFINES -DUSE_XSHM"
1296 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1297 if test "x$driglx_direct" = xyes; then
1298 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1307 AC_ARG_ENABLE([glx-tls],
1308 [AS_HELP_STRING([--enable-glx-tls],
1309 [enable TLS support in GLX @<:@default=disabled@:>@])],
1310 [GLX_USE_TLS="$enableval"],
1312 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1314 AS_IF([test "x$GLX_USE_TLS" = xyes -a "x$ax_pthread_ok" = xyes],
1315 [DEFINES="${DEFINES} -DGLX_USE_TLS"])
1317 dnl Read-only text section on x86 hardened platforms
1318 AC_ARG_ENABLE([glx-read-only-text],
1319 [AS_HELP_STRING([--enable-glx-read-only-text],
1320 [Disable writable .text section on x86 (decreases performance) @<:@default=disabled@:>@])],
1321 [enable_glx_read_only_text="$enableval"],
1322 [enable_glx_read_only_text=no])
1323 if test "x$enable_glx_read_only_text" = xyes; then
1324 DEFINES="$DEFINES -DGLX_X86_READONLY_TEXT"
1330 dnl Directory for DRI drivers
1331 AC_ARG_WITH([dri-driverdir],
1332 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1333 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1334 [DRI_DRIVER_INSTALL_DIR="$withval"],
1335 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1336 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1337 dnl Extra search path for DRI drivers
1338 AC_ARG_WITH([dri-searchpath],
1339 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1340 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1341 [DRI_DRIVER_SEARCH_DIR="$withval"],
1342 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1343 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1344 dnl Which drivers to build - default is chosen by platform
1345 AC_ARG_WITH([dri-drivers],
1346 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1347 [comma delimited classic DRI drivers list, e.g.
1348 "swrast,i965,radeon" @<:@default=auto@:>@])],
1349 [with_dri_drivers="$withval"],
1350 [with_dri_drivers=auto])
1352 if test "x$with_dri_drivers" = xauto; then
1353 if test "x$enable_opengl" = xyes -a "x$enable_dri" = xyes; then
1354 with_dri_drivers="yes"
1356 with_dri_drivers="no"
1359 if test "x$with_dri_drivers" = xno; then
1363 dnl If $with_dri_drivers is yes, drivers will be added through
1364 dnl platform checks. Set DEFINES and LIB_DEPS
1365 if test "x$enable_dri" = xyes; then
1366 # Platform specific settings and drivers to build
1369 DEFINES="$DEFINES -DHAVE_ALIAS"
1370 if test "x$enable_dri3" = xyes; then
1371 DEFINES="$DEFINES -DHAVE_DRI3"
1374 if test "x$have_pci_id" != xyes; then
1375 AC_MSG_ERROR([libudev-dev or sysfs required for building DRI])
1380 # Build only the drivers for cards that exist on PowerPC/sparc
1381 if test "x$with_dri_drivers" = "xyes"; then
1382 with_dri_drivers="r200 radeon swrast"
1387 *freebsd* | dragonfly* | *netbsd* | openbsd*)
1388 DEFINES="$DEFINES -DHAVE_ALIAS"
1391 DEFINES="$DEFINES -DHAVE_ALIAS"
1394 if test "x$with_dri_drivers" = "xyes"; then
1395 with_dri_drivers="swrast"
1399 DEFINES="$DEFINES -DGLX_ALIAS_UNSUPPORTED -DBUILDING_MESA"
1400 if test "x$with_dri_drivers" = "xyes"; then
1401 with_dri_drivers="swrast"
1407 if test "x$with_dri_drivers" = "xyes"; then
1408 with_dri_drivers="i915 i965 nouveau r200 radeon swrast"
1412 PKG_CHECK_MODULES([EXPAT], [expat], [],
1413 # expat version 2.0 and earlier do not provide expat.pc
1414 [AC_CHECK_HEADER([expat.h],[],
1415 [AC_MSG_ERROR([Expat headers required for DRI not found])])
1416 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1417 [AC_MSG_ERROR([Expat library required for DRI not found])])
1418 EXPAT_LIBS="-lexpat"])
1420 # put all the necessary libs together
1421 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1424 AC_SUBST([DRI_LIB_DEPS])
1427 dnl Duplicates in DRI_DIRS are removed by sorting it at the end of this block
1428 if test -n "$with_dri_drivers"; then
1429 if test "x$enable_opengl" != xyes; then
1430 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1433 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1434 for driver in $dri_drivers; do
1435 DRI_DIRS="$DRI_DIRS $driver"
1439 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1443 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1446 HAVE_NOUVEAU_DRI=yes;
1447 PKG_CHECK_MODULES([NVVIEUX], [libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED])
1450 HAVE_RADEON_DRI=yes;
1451 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1455 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1458 HAVE_SWRAST_DRI=yes;
1461 AC_MSG_ERROR([classic DRI driver '$driver' does not exist])
1465 DRI_DIRS=`echo $DRI_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1468 AM_CONDITIONAL(NEED_MEGADRIVER, test -n "$DRI_DIRS")
1469 AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_xlib_glx" = xyes -o \
1470 "x$enable_osmesa" = xyes -o \
1474 dnl OSMesa configuration
1477 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1478 AC_ARG_WITH([osmesa-bits],
1479 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1480 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1481 [osmesa_bits="$withval"],
1483 if test "x$osmesa_bits" != x8; then
1484 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1485 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1489 case "x$osmesa_bits" in
1491 OSMESA_LIB="${OSMESA_LIB}"
1494 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1495 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1498 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1502 if test "x$enable_osmesa" = xyes -o "x$enable_gallium_osmesa" = xyes; then
1503 # only link libraries with osmesa if shared
1504 if test "$enable_static" = no; then
1505 OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1509 OSMESA_PC_LIB_PRIV="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1512 AC_SUBST([OSMESA_LIB_DEPS])
1513 AC_SUBST([OSMESA_PC_REQ])
1514 AC_SUBST([OSMESA_PC_LIB_PRIV])
1517 dnl gbm configuration
1519 if test "x$enable_gbm" = xauto; then
1520 case "$with_egl_platforms" in
1527 if test "x$enable_gbm" = xyes; then
1528 if test "x$need_pci_id$have_pci_id" = xyesno; then
1529 AC_MSG_ERROR([gbm requires udev >= $LIBUDEV_REQUIRED or sysfs])
1532 if test "x$enable_dri" = xyes; then
1533 if test "x$enable_shared_glapi" = xno; then
1534 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1537 # Strictly speaking libgbm does not require --enable-dri, although
1538 # both of its backends do. Thus one can build libgbm without any
1539 # backends if --disable-dri is set.
1540 # To avoid unnecessary complexity of checking if at least one backend
1541 # is available when building, just mandate --enable-dri.
1542 AC_MSG_ERROR([gbm requires --enable-dri])
1545 AM_CONDITIONAL(HAVE_GBM, test "x$enable_gbm" = xyes)
1546 if test "x$need_pci_id$have_libudev" = xyesyes; then
1547 GBM_PC_REQ_PRIV="libudev >= $LIBUDEV_REQUIRED"
1551 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1552 AC_SUBST([GBM_PC_REQ_PRIV])
1553 AC_SUBST([GBM_PC_LIB_PRIV])
1555 AM_CONDITIONAL(HAVE_VULKAN, true)
1558 dnl EGL configuration
1562 if test "x$enable_egl" = xyes; then
1563 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS $PTHREAD_LIBS"
1565 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1567 if test "$enable_static" != yes; then
1568 if test "x$enable_dri" = xyes; then
1569 HAVE_EGL_DRIVER_DRI2=1
1570 if test "x$enable_shared_glapi" = xno; then
1571 AC_MSG_ERROR([egl_dri2 requires --enable-shared-glapi])
1574 # Avoid building an "empty" libEGL. Drop/update this
1575 # when other backends (haiku?) come along.
1576 AC_MSG_ERROR([egl requires --enable-dri])
1581 AM_CONDITIONAL(HAVE_EGL, test "x$enable_egl" = xyes)
1582 AC_SUBST([EGL_LIB_DEPS])
1587 dnl XA configuration
1589 if test "x$enable_xa" = xyes; then
1590 if test "x$with_gallium_drivers" = xswrast; then
1592 Building xa requires at least one non swrast gallium driver.
1593 If you are looking to use libxatracker.so with the VMware driver,
1594 make sure to include svga in the gallium drivers list, apart from
1596 Example: ./configure --enable-xa --with-gallium-drivers=svga...])
1598 enable_gallium_loader=$enable_shared_pipe_drivers
1599 gallium_st="$gallium_st xa"
1601 AM_CONDITIONAL(HAVE_ST_XA, test "x$enable_xa" = xyes)
1604 dnl Gallium G3DVL configuration
1606 if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then
1607 if test "x$enable_xvmc" = xauto; then
1608 PKG_CHECK_EXISTS([xvmc >= $XVMC_REQUIRED], [enable_xvmc=yes], [enable_xvmc=no])
1611 if test "x$enable_vdpau" = xauto; then
1612 PKG_CHECK_EXISTS([vdpau >= $VDPAU_REQUIRED], [enable_vdpau=yes], [enable_vdpau=no])
1615 if test "x$enable_omx" = xauto; then
1616 PKG_CHECK_EXISTS([libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED], [enable_omx=yes], [enable_omx=no])
1619 if test "x$enable_va" = xauto; then
1620 PKG_CHECK_EXISTS([libva >= $LIBVA_REQUIRED], [enable_va=yes], [enable_va=no])
1624 if test "x$enable_dri" = xyes -o \
1625 "x$enable_xvmc" = xyes -o \
1626 "x$enable_vdpau" = xyes -o \
1627 "x$enable_omx" = xyes -o \
1628 "x$enable_va" = xyes; then
1631 AM_CONDITIONAL(NEED_GALLIUM_VL, test "x$need_gallium_vl" = xyes)
1633 if test "x$enable_xvmc" = xyes -o \
1634 "x$enable_vdpau" = xyes -o \
1635 "x$enable_omx" = xyes -o \
1636 "x$enable_va" = xyes; then
1637 PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
1638 need_gallium_vl_winsys=yes
1640 AM_CONDITIONAL(NEED_GALLIUM_VL_WINSYS, test "x$need_gallium_vl_winsys" = xyes)
1642 if test "x$enable_xvmc" = xyes; then
1643 PKG_CHECK_MODULES([XVMC], [xvmc >= $XVMC_REQUIRED])
1644 enable_gallium_loader=$enable_shared_pipe_drivers
1645 gallium_st="$gallium_st xvmc"
1647 AM_CONDITIONAL(HAVE_ST_XVMC, test "x$enable_xvmc" = xyes)
1649 if test "x$enable_vdpau" = xyes; then
1650 PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED])
1651 enable_gallium_loader=$enable_shared_pipe_drivers
1652 gallium_st="$gallium_st vdpau"
1654 AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes)
1656 if test "x$enable_omx" = xyes; then
1657 PKG_CHECK_MODULES([OMX], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED])
1658 enable_gallium_loader=$enable_shared_pipe_drivers
1659 gallium_st="$gallium_st omx"
1661 AM_CONDITIONAL(HAVE_ST_OMX, test "x$enable_omx" = xyes)
1663 if test "x$enable_va" = xyes; then
1664 PKG_CHECK_MODULES([VA], [libva >= $LIBVA_REQUIRED])
1665 enable_gallium_loader=$enable_shared_pipe_drivers
1666 gallium_st="$gallium_st va"
1668 AM_CONDITIONAL(HAVE_ST_VA, test "x$enable_va" = xyes)
1671 dnl Nine Direct3D9 configuration
1673 if test "x$enable_nine" = xyes; then
1674 if ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
1675 AC_MSG_ERROR([nine requires the gallium swrast driver])
1677 if test "x$with_gallium_drivers" = xswrast; then
1678 AC_MSG_ERROR([nine requires at least one non-swrast gallium driver])
1680 if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 6; then
1681 AC_MSG_ERROR([gcc >= 4.6 is required to build nine])
1684 if test "x$enable_dri3" = xno; then
1685 AC_MSG_WARN([using nine together with wine requires DRI3 enabled system])
1688 enable_gallium_loader=$enable_shared_pipe_drivers
1689 gallium_st="$gallium_st nine"
1691 AM_CONDITIONAL(HAVE_ST_NINE, test "x$enable_nine" = xyes)
1694 dnl OpenCL configuration
1697 AC_ARG_WITH([clang-libdir],
1698 [AS_HELP_STRING([--with-clang-libdir],
1699 [Path to Clang libraries @<:@default=llvm-config --libdir@:>@])],
1700 [CLANG_LIBDIR="$withval"],
1703 PKG_CHECK_EXISTS([libclc], [have_libclc=yes], [have_libclc=no])
1704 AC_CHECK_LIB([elf], [elf_memory], [have_libelf=yes;ELF_LIB=-lelf])
1706 if test "x$enable_opencl" = xyes; then
1707 if test -z "$with_gallium_drivers"; then
1708 AC_MSG_ERROR([cannot enable OpenCL without Gallium])
1711 if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 7; then
1712 AC_MSG_ERROR([gcc >= 4.7 is required to build clover])
1715 if test "x$have_libclc" = xno; then
1716 AC_MSG_ERROR([pkg-config cannot find libclc.pc which is required to build clover.
1717 Make sure the directory containing libclc.pc is specified in your
1718 PKG_CONFIG_PATH environment variable.
1719 By default libclc.pc is installed to /usr/local/share/pkgconfig/])
1721 LIBCLC_INCLUDEDIR=`$PKG_CONFIG --variable=includedir libclc`
1722 LIBCLC_LIBEXECDIR=`$PKG_CONFIG --variable=libexecdir libclc`
1723 AC_SUBST([LIBCLC_INCLUDEDIR])
1724 AC_SUBST([LIBCLC_LIBEXECDIR])
1727 # XXX: Use $enable_shared_pipe_drivers once converted to use static/shared pipe-drivers
1728 enable_gallium_loader=yes
1729 gallium_st="$gallium_st clover"
1731 if test "x$enable_opencl_icd" = xyes; then
1732 OPENCL_LIBNAME="MesaOpenCL"
1734 OPENCL_LIBNAME="OpenCL"
1737 if test "x$have_libelf" != xyes; then
1738 AC_MSG_ERROR([Clover requires libelf])
1741 AM_CONDITIONAL(HAVE_CLOVER, test "x$enable_opencl" = xyes)
1742 AM_CONDITIONAL(HAVE_CLOVER_ICD, test "x$enable_opencl_icd" = xyes)
1743 AC_SUBST([OPENCL_LIBNAME])
1746 dnl Gallium configuration
1748 AM_CONDITIONAL(HAVE_GALLIUM, test -n "$with_gallium_drivers")
1750 AC_SUBST([LLVM_BINDIR])
1751 AC_SUBST([LLVM_CFLAGS])
1752 AC_SUBST([LLVM_CPPFLAGS])
1753 AC_SUBST([LLVM_CXXFLAGS])
1754 AC_SUBST([LLVM_LIBDIR])
1755 AC_SUBST([LLVM_LIBS])
1756 AC_SUBST([LLVM_LDFLAGS])
1757 AC_SUBST([LLVM_INCLUDEDIR])
1758 AC_SUBST([LLVM_VERSION])
1759 AC_SUBST([CLANG_RESOURCE_DIR])
1761 case "x$enable_opengl$enable_gles1$enable_gles2" in
1763 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1767 AC_SUBST([VG_LIB_DEPS])
1768 AC_SUBST([EGL_CLIENT_APIS])
1771 dnl EGL Platforms configuration
1773 AC_ARG_WITH([egl-platforms],
1774 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1775 [comma delimited native platforms libEGL supports, e.g.
1776 "x11,drm" @<:@default=auto@:>@])],
1777 [with_egl_platforms="$withval"],
1778 [if test "x$enable_egl" = xyes; then
1779 with_egl_platforms="x11"
1781 with_egl_platforms=""
1784 if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then
1785 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1788 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland_scanner],
1789 WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland_scanner`,
1791 if test "x$WAYLAND_SCANNER" = x; then
1792 AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner])
1795 # Do per-EGL platform setups and checks
1796 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1797 for plat in $egl_platforms; do
1800 test "x$have_libdrm" != xyes &&
1801 AC_MSG_ERROR([EGL platform wayland requires libdrm >= $LIBDRM_REQUIRED])
1803 PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED])
1805 if test "x$WAYLAND_SCANNER" = x; then
1806 AC_MSG_ERROR([wayland-scanner is needed to compile the wayland egl platform])
1811 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED xcb-xfixes])
1815 test "x$enable_gbm" = "xno" &&
1816 AC_MSG_ERROR([EGL platform drm needs gbm])
1817 test "x$have_libdrm" != xyes &&
1818 AC_MSG_ERROR([EGL platform drm requires libdrm >= $LIBDRM_REQUIRED])
1822 test "x$have_libdrm" != xyes &&
1823 AC_MSG_ERROR([EGL platform surfaceless requires libdrm >= $LIBDRM_REQUIRED])
1827 AC_MSG_ERROR([EGL platform '$plat' does not exist])
1831 case "$plat$need_pci_id$have_pci_id" in
1832 waylandyesno|drmyesno)
1833 AC_MSG_ERROR([cannot build $plat platform without udev >= $LIBUDEV_REQUIRED or sysfs]) ;;
1837 # libEGL wants to default to the first platform specified in
1838 # ./configure. parse that here.
1839 if test "x$egl_platforms" != "x"; then
1840 FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr '[[a-z]]' '[[A-Z]]'`
1841 EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS"
1843 EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
1846 AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep -q 'x11')
1847 AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep -q 'wayland')
1848 AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep -q 'drm')
1849 AM_CONDITIONAL(HAVE_EGL_PLATFORM_SURFACELESS, echo "$egl_platforms" | grep -q 'surfaceless')
1850 AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep -q 'null')
1852 AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x")
1854 AC_SUBST([EGL_NATIVE_PLATFORM])
1855 AC_SUBST([EGL_CFLAGS])
1857 # If we don't have the X11 platform, set this define so we don't try to include
1859 if ! echo "$egl_platforms" | grep -q 'x11'; then
1860 DEFINES="$DEFINES -DMESA_EGL_NO_X11_HEADERS"
1861 GL_PC_CFLAGS="$GL_PC_CFLAGS -DMESA_EGL_NO_X11_HEADERS"
1867 AC_ARG_ENABLE([gallium-llvm],
1868 [AS_HELP_STRING([--enable-gallium-llvm],
1869 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1870 [enable_gallium_llvm="$enableval"],
1871 [enable_gallium_llvm=auto])
1873 AC_ARG_ENABLE([llvm-shared-libs],
1874 [AS_HELP_STRING([--enable-llvm-shared-libs],
1875 [link with LLVM shared libraries @<:@default=enabled@:>@])],
1876 [enable_llvm_shared_libs="$enableval"],
1877 [enable_llvm_shared_libs=yes])
1879 AC_ARG_WITH([llvm-prefix],
1880 [AS_HELP_STRING([--with-llvm-prefix],
1881 [Prefix for LLVM installations in non-standard locations])],
1882 [llvm_prefix="$withval"],
1886 # Call this inside ` ` to get the return value.
1887 # $1 is the llvm-config command with arguments.
1888 strip_unwanted_llvm_flags() {
1889 # Use \> (marks the end of the word)
1891 -e 's/-DNDEBUG\>//g' \
1892 -e 's/-D_GNU_SOURCE\>//g' \
1893 -e 's/-pedantic\>//g' \
1894 -e 's/-Wcovered-switch-default\>//g' \
1898 -e 's/-Wcast-qual\>//g' \
1899 -e 's/-Woverloaded-virtual\>//g' \
1900 -e 's/-fcolor-diagnostics\>//g' \
1901 -e 's/-fdata-sections\>//g' \
1902 -e 's/-ffunction-sections\>//g' \
1903 -e 's/-fno-exceptions\>//g' \
1904 -e 's/-fomit-frame-pointer\>//g' \
1905 -e 's/-fvisibility-inlines-hidden\>//g' \
1907 -e 's/-fstack-protector-strong\>//g'
1910 llvm_check_version_for() {
1911 if test "${LLVM_VERSION_INT}${LLVM_VERSION_PATCH}" -lt "${1}0${2}${3}"; then
1912 AC_MSG_ERROR([LLVM $1.$2.$3 or newer is required for $4])
1918 if test -z "$with_gallium_drivers"; then
1919 enable_gallium_llvm=no
1921 if test "x$enable_gallium_llvm" = xauto; then
1923 i*86|x86_64|amd64) enable_gallium_llvm=yes;;
1926 if test "x$enable_gallium_llvm" = xyes; then
1927 if test -n "$llvm_prefix"; then
1928 AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"])
1930 AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no])
1933 if test "x$LLVM_CONFIG" != xno; then
1934 LLVM_VERSION=`$LLVM_CONFIG --version | egrep -o '^[[0-9.]]+'`
1935 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1936 LLVM_BINDIR=`$LLVM_CONFIG --bindir`
1937 LLVM_CPPFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cppflags"`
1938 LLVM_CFLAGS=$LLVM_CPPFLAGS # CPPFLAGS seem to be sufficient
1939 LLVM_CXXFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cxxflags"`
1940 LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir`
1941 LLVM_LIBDIR=`$LLVM_CONFIG --libdir`
1943 AC_COMPUTE_INT([LLVM_VERSION_MAJOR], [LLVM_VERSION_MAJOR],
1944 [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
1945 AC_COMPUTE_INT([LLVM_VERSION_MINOR], [LLVM_VERSION_MINOR],
1946 [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
1948 LLVM_VERSION_PATCH=`echo $LLVM_VERSION | cut -d. -f3 | egrep -o '^[[0-9]]+'`
1949 if test -z "$LLVM_VERSION_PATCH"; then
1950 LLVM_VERSION_PATCH=0
1953 if test -n "${LLVM_VERSION_MAJOR}"; then
1954 LLVM_VERSION_INT="${LLVM_VERSION_MAJOR}0${LLVM_VERSION_MINOR}"
1956 LLVM_VERSION_INT=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/\10\2/g'`
1959 LLVM_REQUIRED_VERSION_MAJOR="3"
1960 LLVM_REQUIRED_VERSION_MINOR="3"
1961 if test "$LLVM_VERSION_INT" -lt "${LLVM_REQUIRED_VERSION_MAJOR}0${LLVM_REQUIRED_VERSION_MINOR}"; then
1962 AC_MSG_ERROR([LLVM $LLVM_REQUIRED_VERSION_MAJOR.$LLVM_REQUIRED_VERSION_MINOR or newer is required])
1965 LLVM_COMPONENTS="engine bitwriter mcjit mcdisassembler"
1967 if test "x$enable_opencl" = xyes; then
1968 llvm_check_version_for "3" "5" "0" "opencl"
1970 LLVM_COMPONENTS="${LLVM_COMPONENTS} all-targets ipo linker instrumentation"
1971 LLVM_COMPONENTS="${LLVM_COMPONENTS} irreader option objcarcopts profiledata"
1973 DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DMESA_LLVM_VERSION_PATCH=$LLVM_VERSION_PATCH"
1976 dnl Check for Clang internal headers
1977 if test "x$enable_opencl" = xyes; then
1978 if test -z "$CLANG_LIBDIR"; then
1979 CLANG_LIBDIR=${LLVM_LIBDIR}
1981 CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
1982 AS_IF([test ! -f "$CLANG_RESOURCE_DIR/include/stddef.h"],
1983 [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.])])
1993 if test "x$enable_opencl" = xyes; then
1994 AC_MSG_ERROR([cannot enable OpenCL without LLVM])
1998 dnl Directory for XVMC libs
1999 AC_ARG_WITH([xvmc-libdir],
2000 [AS_HELP_STRING([--with-xvmc-libdir=DIR],
2001 [directory for the XVMC libraries @<:@default=${libdir}@:>@])],
2002 [XVMC_LIB_INSTALL_DIR="$withval"],
2003 [XVMC_LIB_INSTALL_DIR='${libdir}'])
2004 AC_SUBST([XVMC_LIB_INSTALL_DIR])
2009 if test "x$enable_gallium_tests" = xyes; then
2010 # XXX: Use $enable_shared_pipe_drivers once converted to use static/shared pipe-drivers
2011 enable_gallium_loader=yes
2013 AM_CONDITIONAL(HAVE_GALLIUM_TESTS, test "x$enable_gallium_tests" = xyes)
2015 dnl Directory for VDPAU libs
2016 AC_ARG_WITH([vdpau-libdir],
2017 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
2018 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
2019 [VDPAU_LIB_INSTALL_DIR="$withval"],
2020 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
2021 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
2023 dnl Directory for OMX libs
2025 AC_ARG_WITH([omx-libdir],
2026 [AS_HELP_STRING([--with-omx-libdir=DIR],
2027 [directory for the OMX libraries])],
2028 [OMX_LIB_INSTALL_DIR="$withval"],
2029 [OMX_LIB_INSTALL_DIR=`$PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libomxil-bellagio`])
2030 AC_SUBST([OMX_LIB_INSTALL_DIR])
2032 dnl Directory for VA libs
2034 AC_ARG_WITH([va-libdir],
2035 [AS_HELP_STRING([--with-va-libdir=DIR],
2036 [directory for the VA libraries @<:@${libdir}/dri@:>@])],
2037 [VA_LIB_INSTALL_DIR="$withval"],
2038 [VA_LIB_INSTALL_DIR="${libdir}/dri"])
2039 AC_SUBST([VA_LIB_INSTALL_DIR])
2041 AC_ARG_WITH([d3d-libdir],
2042 [AS_HELP_STRING([--with-d3d-libdir=DIR],
2043 [directory for the D3D modules @<:@${libdir}/d3d@:>@])],
2044 [D3D_DRIVER_INSTALL_DIR="$withval"],
2045 [D3D_DRIVER_INSTALL_DIR="${libdir}/d3d"])
2046 AC_SUBST([D3D_DRIVER_INSTALL_DIR])
2049 dnl Gallium helper functions
2051 gallium_require_drm() {
2052 if test "x$have_libdrm" != xyes; then
2053 AC_MSG_ERROR([$1 requires libdrm >= $LIBDRM_REQUIRED])
2057 gallium_require_llvm() {
2058 if test "x$MESA_LLVM" = x0; then
2059 case "$host" in *gnux32) return;; esac
2061 i*86|x86_64|amd64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
2066 gallium_require_drm_loader() {
2067 if test "x$enable_gallium_loader" = xyes; then
2068 if test "x$need_pci_id$have_pci_id" = xyesno; then
2069 AC_MSG_ERROR([Gallium drm loader requires libudev >= $LIBUDEV_REQUIRED or sysfs])
2071 enable_gallium_drm_loader=yes
2073 if test "x$enable_va" = xyes && test "x$7" != x; then
2074 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
2079 case "$with_egl_platforms" in
2083 AC_MSG_ERROR([--with-egl-platforms=drm is required to build the $1 driver.])
2086 if test "x$enable_gbm" != xyes; then
2087 AC_MSG_ERROR([--enable-gbm is required to build the $1 driver.])
2091 radeon_llvm_check() {
2092 if test ${LLVM_VERSION_INT} -lt 307; then
2093 amdgpu_llvm_target_name='r600'
2095 amdgpu_llvm_target_name='amdgpu'
2097 if test "x$enable_gallium_llvm" != "xyes"; then
2098 AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
2100 llvm_check_version_for "3" "5" "0" $1
2101 if test true && $LLVM_CONFIG --targets-built | grep -iqvw $amdgpu_llvm_target_name ; then
2102 AC_MSG_ERROR([LLVM $amdgpu_llvm_target_name not enabled in your LLVM build.])
2104 LLVM_COMPONENTS="${LLVM_COMPONENTS} $amdgpu_llvm_target_name bitreader ipo"
2105 NEED_RADEON_LLVM=yes
2106 if test "x$have_libelf" != xyes; then
2107 AC_MSG_ERROR([$1 requires libelf when using llvm])
2111 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
2112 if test -n "$with_gallium_drivers"; then
2113 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
2114 for driver in $gallium_drivers; do
2117 HAVE_GALLIUM_SVGA=yes
2118 gallium_require_drm "svga"
2119 gallium_require_drm_loader
2122 HAVE_GALLIUM_I915=yes
2123 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
2124 gallium_require_drm "Gallium i915"
2125 gallium_require_drm_loader
2128 HAVE_GALLIUM_ILO=yes
2129 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
2130 gallium_require_drm "Gallium i965/ilo"
2131 gallium_require_drm_loader
2134 HAVE_GALLIUM_R300=yes
2135 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
2136 gallium_require_drm "Gallium R300"
2137 gallium_require_drm_loader
2138 gallium_require_llvm "Gallium R300"
2141 HAVE_GALLIUM_R600=yes
2142 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
2143 gallium_require_drm "Gallium R600"
2144 gallium_require_drm_loader
2145 if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then
2146 radeon_llvm_check "r600g"
2147 LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
2149 if test "x$enable_r600_llvm" = xyes; then
2150 USE_R600_LLVM_COMPILER=yes;
2152 if test "x$enable_opencl" = xyes; then
2153 LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
2157 HAVE_GALLIUM_RADEONSI=yes
2158 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
2159 PKG_CHECK_MODULES([AMDGPU], [libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED])
2160 gallium_require_drm "radeonsi"
2161 gallium_require_drm_loader
2162 radeon_llvm_check "radeonsi"
2163 require_egl_drm "radeonsi"
2166 HAVE_GALLIUM_NOUVEAU=yes
2167 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
2168 gallium_require_drm "nouveau"
2169 gallium_require_drm_loader
2172 HAVE_GALLIUM_FREEDRENO=yes
2173 PKG_CHECK_MODULES([FREEDRENO], [libdrm_freedreno >= $LIBDRM_FREEDRENO_REQUIRED])
2174 gallium_require_drm "freedreno"
2175 gallium_require_drm_loader
2178 HAVE_GALLIUM_SOFTPIPE=yes
2179 if test "x$MESA_LLVM" = x1; then
2180 HAVE_GALLIUM_LLVMPIPE=yes
2184 HAVE_GALLIUM_VC4=yes
2185 gallium_require_drm "vc4"
2186 gallium_require_drm_loader
2188 PKG_CHECK_MODULES([SIMPENROSE], [simpenrose],
2189 [USE_VC4_SIMULATOR=yes], [USE_VC4_SIMULATOR=no])
2192 HAVE_GALLIUM_VIRGL=yes
2193 gallium_require_drm "virgl"
2194 gallium_require_drm_loader
2195 require_egl_drm "virgl"
2198 AC_MSG_ERROR([Unknown Gallium driver: $driver])
2204 dnl Set LLVM_LIBS - This is done after the driver configuration so
2205 dnl that drivers can add additional components to LLVM_COMPONENTS.
2206 dnl Previously, gallium drivers were updating LLVM_LIBS directly
2207 dnl by calling llvm-config --libs ${DRIVER_LLVM_COMPONENTS}, but
2208 dnl this was causing the same libraries to be appear multiple times
2211 if test "x$MESA_LLVM" != x0; then
2213 LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
2215 dnl llvm-config may not give the right answer when llvm is a built as a
2216 dnl single shared library, so we must work the library name out for
2218 dnl (See https://llvm.org/bugs/show_bug.cgi?id=6823)
2219 if test "x$enable_llvm_shared_libs" = xyes; then
2220 dnl We can't use $LLVM_VERSION because it has 'svn' stripped out,
2221 LLVM_SO_NAME=LLVM-`$LLVM_CONFIG --version`
2222 AS_IF([test -f "$LLVM_LIBDIR/lib$LLVM_SO_NAME.$IMP_LIB_EXT"], [llvm_have_one_so=yes])
2224 if test "x$llvm_have_one_so" = xyes; then
2225 dnl LLVM was built using auto*, so there is only one shared object.
2226 LLVM_LIBS="-l$LLVM_SO_NAME"
2228 dnl If LLVM was built with CMake, there will be one shared object per
2230 AS_IF([test ! -f "$LLVM_LIBDIR/libLLVMTarget.$IMP_LIB_EXT"],
2231 [AC_MSG_ERROR([Could not find llvm shared libraries:
2232 Please make sure you have built llvm with the --enable-shared option
2233 and that your llvm libraries are installed in $LLVM_LIBDIR
2234 If you have installed your llvm libraries to a different directory you
2235 can use the --with-llvm-prefix= configure flag to specify this directory.
2236 NOTE: Mesa is attempting to use llvm shared libraries by default.
2237 If you do not want to build with llvm shared libraries and instead want to
2238 use llvm static libraries then add --disable-llvm-shared-libs to your configure
2239 invocation and rebuild.])])
2241 dnl We don't need to update LLVM_LIBS in this case because the LLVM
2242 dnl install uses a shared object for each component and we have
2243 dnl already added all of these objects to LLVM_LIBS.
2246 AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues])
2247 dnl We need to link to llvm system libs when using static libs
2248 dnl However, only llvm 3.5+ provides --system-libs
2249 if test $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then
2250 LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`"
2255 AM_CONDITIONAL(HAVE_GALLIUM_SVGA, test "x$HAVE_GALLIUM_SVGA" = xyes)
2256 AM_CONDITIONAL(HAVE_GALLIUM_I915, test "x$HAVE_GALLIUM_I915" = xyes)
2257 AM_CONDITIONAL(HAVE_GALLIUM_ILO, test "x$HAVE_GALLIUM_ILO" = xyes)
2258 AM_CONDITIONAL(HAVE_GALLIUM_R300, test "x$HAVE_GALLIUM_R300" = xyes)
2259 AM_CONDITIONAL(HAVE_GALLIUM_R600, test "x$HAVE_GALLIUM_R600" = xyes)
2260 AM_CONDITIONAL(HAVE_GALLIUM_RADEONSI, test "x$HAVE_GALLIUM_RADEONSI" = xyes)
2261 AM_CONDITIONAL(HAVE_GALLIUM_RADEON_COMMON, test "x$HAVE_GALLIUM_R600" = xyes -o \
2262 "x$HAVE_GALLIUM_RADEONSI" = xyes)
2263 AM_CONDITIONAL(HAVE_GALLIUM_NOUVEAU, test "x$HAVE_GALLIUM_NOUVEAU" = xyes)
2264 AM_CONDITIONAL(HAVE_GALLIUM_FREEDRENO, test "x$HAVE_GALLIUM_FREEDRENO" = xyes)
2265 AM_CONDITIONAL(HAVE_GALLIUM_SOFTPIPE, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes)
2266 AM_CONDITIONAL(HAVE_GALLIUM_LLVMPIPE, test "x$HAVE_GALLIUM_LLVMPIPE" = xyes)
2267 AM_CONDITIONAL(HAVE_GALLIUM_VC4, test "x$HAVE_GALLIUM_VC4" = xyes)
2268 AM_CONDITIONAL(HAVE_GALLIUM_VIRGL, test "x$HAVE_GALLIUM_VIRGL" = xyes)
2270 AM_CONDITIONAL(HAVE_GALLIUM_STATIC_TARGETS, test "x$enable_shared_pipe_drivers" = xno)
2272 # NOTE: anything using xcb or other client side libs ends up in separate
2273 # _CLIENT variables. The pipe loader is built in two variants,
2274 # one that is standalone and does not link any x client libs (for
2275 # use by XA tracker in particular, but could be used in any case
2276 # where communication with xserver is not desired).
2277 if test "x$enable_gallium_loader" = xyes; then
2278 if test "x$enable_dri" = xyes; then
2279 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRI"
2282 if test "x$enable_gallium_drm_loader" = xyes; then
2283 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRM"
2286 AC_SUBST([GALLIUM_PIPE_LOADER_DEFINES])
2289 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
2290 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
2291 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
2292 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
2293 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
2294 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
2296 AM_CONDITIONAL(NEED_RADEON_DRM_WINSYS, test "x$HAVE_GALLIUM_R300" = xyes -o \
2297 "x$HAVE_GALLIUM_R600" = xyes -o \
2298 "x$HAVE_GALLIUM_RADEONSI" = xyes)
2299 AM_CONDITIONAL(NEED_WINSYS_XLIB, test "x$NEED_WINSYS_XLIB" = xyes)
2300 AM_CONDITIONAL(NEED_RADEON_LLVM, test x$NEED_RADEON_LLVM = xyes)
2301 AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes)
2302 AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes)
2303 AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes)
2304 AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
2305 AM_CONDITIONAL(HAVE_MESA_LLVM, test x$MESA_LLVM = x1)
2306 AM_CONDITIONAL(USE_VC4_SIMULATOR, test x$USE_VC4_SIMULATOR = xyes)
2307 if test "x$USE_VC4_SIMULATOR" = xyes -a "x$HAVE_GALLIUM_ILO" = xyes; then
2308 AC_MSG_ERROR([VC4 simulator on x86 replaces i965 driver build, so ilo must be disabled.])
2313 AM_CONDITIONAL(HAVE_LIBDRM, test "x$have_libdrm" = xyes)
2314 AM_CONDITIONAL(HAVE_X11_DRIVER, test "x$enable_xlib_glx" = xyes)
2315 AM_CONDITIONAL(HAVE_OSMESA, test "x$enable_osmesa" = xyes)
2316 AM_CONDITIONAL(HAVE_GALLIUM_OSMESA, test "x$enable_gallium_osmesa" = xyes)
2318 AM_CONDITIONAL(HAVE_X86_ASM, test "x$asm_arch" = xx86 -o "x$asm_arch" = xx86_64)
2319 AM_CONDITIONAL(HAVE_X86_64_ASM, test "x$asm_arch" = xx86_64)
2320 AM_CONDITIONAL(HAVE_SPARC_ASM, test "x$asm_arch" = xsparc)
2322 AC_SUBST([NINE_MAJOR], 1)
2323 AC_SUBST([NINE_MINOR], 0)
2324 AC_SUBST([NINE_TINY], 0)
2325 AC_SUBST([NINE_VERSION], "$NINE_MAJOR.$NINE_MINOR.$NINE_TINY")
2327 AC_SUBST([VDPAU_MAJOR], 1)
2328 AC_SUBST([VDPAU_MINOR], 0)
2330 VA_MAJOR=`$PKG_CONFIG --modversion libva | $SED -n 's/\([[^\.]]*\)\..*$/\1/p'`
2331 VA_MINOR=`$PKG_CONFIG --modversion libva | $SED -n 's/.*\.\(.*\)\..*$/\1/p'`
2332 AC_SUBST([VA_MAJOR], $VA_MAJOR)
2333 AC_SUBST([VA_MINOR], $VA_MINOR)
2335 AC_SUBST([XVMC_MAJOR], 1)
2336 AC_SUBST([XVMC_MINOR], 0)
2338 XA_HEADER="$srcdir/src/gallium/state_trackers/xa/xa_tracker.h"
2339 XA_MAJOR=`grep "#define XA_TRACKER_VERSION_MAJOR" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_MAJOR //'`
2340 XA_MINOR=`grep "#define XA_TRACKER_VERSION_MINOR" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_MINOR //'`
2341 XA_TINY=`grep "#define XA_TRACKER_VERSION_PATCH" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_PATCH //'`
2343 AC_SUBST([XA_MAJOR], $XA_MAJOR)
2344 AC_SUBST([XA_MINOR], $XA_MINOR)
2345 AC_SUBST([XA_TINY], $XA_TINY)
2346 AC_SUBST([XA_VERSION], "$XA_MAJOR.$XA_MINOR.$XA_TINY")
2348 PKG_CHECK_MODULES(VALGRIND, [valgrind],
2349 [have_valgrind=yes], [have_valgrind=no])
2350 if test "x$have_valgrind" = "xyes"; then
2351 AC_DEFINE([HAVE_VALGRIND], 1,
2352 [Use valgrind intrinsics to suppress false warnings])
2355 dnl Restore LDFLAGS and CPPFLAGS
2356 LDFLAGS="$_SAVE_LDFLAGS"
2357 CPPFLAGS="$_SAVE_CPPFLAGS"
2359 dnl Suppress clang's warnings about unused CFLAGS and CXXFLAGS
2360 if test "x$acv_mesa_CLANG" = xyes; then
2361 CFLAGS="$CFLAGS -Qunused-arguments"
2362 CXXFLAGS="$CXXFLAGS -Qunused-arguments"
2365 dnl Add user CFLAGS and CXXFLAGS
2366 CFLAGS="$CFLAGS $USER_CFLAGS"
2367 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
2369 dnl Substitute the config
2370 AC_CONFIG_FILES([Makefile
2374 src/egl/wayland/wayland-drm/Makefile
2375 src/egl/wayland/wayland-egl/Makefile
2376 src/egl/wayland/wayland-egl/wayland-egl.pc
2377 src/gallium/Makefile
2378 src/gallium/auxiliary/Makefile
2379 src/gallium/auxiliary/pipe-loader/Makefile
2380 src/gallium/drivers/freedreno/Makefile
2381 src/gallium/drivers/ddebug/Makefile
2382 src/gallium/drivers/i915/Makefile
2383 src/gallium/drivers/ilo/Makefile
2384 src/gallium/drivers/llvmpipe/Makefile
2385 src/gallium/drivers/noop/Makefile
2386 src/gallium/drivers/nouveau/Makefile
2387 src/gallium/drivers/r300/Makefile
2388 src/gallium/drivers/r600/Makefile
2389 src/gallium/drivers/radeon/Makefile
2390 src/gallium/drivers/radeonsi/Makefile
2391 src/gallium/drivers/rbug/Makefile
2392 src/gallium/drivers/softpipe/Makefile
2393 src/gallium/drivers/svga/Makefile
2394 src/gallium/drivers/trace/Makefile
2395 src/gallium/drivers/vc4/Makefile
2396 src/gallium/drivers/virgl/Makefile
2397 src/gallium/state_trackers/clover/Makefile
2398 src/gallium/state_trackers/dri/Makefile
2399 src/gallium/state_trackers/glx/xlib/Makefile
2400 src/gallium/state_trackers/nine/Makefile
2401 src/gallium/state_trackers/omx/Makefile
2402 src/gallium/state_trackers/osmesa/Makefile
2403 src/gallium/state_trackers/va/Makefile
2404 src/gallium/state_trackers/vdpau/Makefile
2405 src/gallium/state_trackers/xa/Makefile
2406 src/gallium/state_trackers/xvmc/Makefile
2407 src/gallium/targets/d3dadapter9/Makefile
2408 src/gallium/targets/d3dadapter9/d3d.pc
2409 src/gallium/targets/dri/Makefile
2410 src/gallium/targets/libgl-xlib/Makefile
2411 src/gallium/targets/omx/Makefile
2412 src/gallium/targets/opencl/Makefile
2413 src/gallium/targets/opencl/mesa.icd
2414 src/gallium/targets/osmesa/Makefile
2415 src/gallium/targets/osmesa/osmesa.pc
2416 src/gallium/targets/pipe-loader/Makefile
2417 src/gallium/targets/va/Makefile
2418 src/gallium/targets/vdpau/Makefile
2419 src/gallium/targets/xa/Makefile
2420 src/gallium/targets/xa/xatracker.pc
2421 src/gallium/targets/xvmc/Makefile
2422 src/gallium/tests/trivial/Makefile
2423 src/gallium/tests/unit/Makefile
2424 src/gallium/winsys/freedreno/drm/Makefile
2425 src/gallium/winsys/i915/drm/Makefile
2426 src/gallium/winsys/intel/drm/Makefile
2427 src/gallium/winsys/nouveau/drm/Makefile
2428 src/gallium/winsys/radeon/drm/Makefile
2429 src/gallium/winsys/amdgpu/drm/Makefile
2430 src/gallium/winsys/svga/drm/Makefile
2431 src/gallium/winsys/sw/dri/Makefile
2432 src/gallium/winsys/sw/kms-dri/Makefile
2433 src/gallium/winsys/sw/null/Makefile
2434 src/gallium/winsys/sw/wrapper/Makefile
2435 src/gallium/winsys/sw/xlib/Makefile
2436 src/gallium/winsys/vc4/drm/Makefile
2437 src/gallium/winsys/virgl/drm/Makefile
2438 src/gallium/winsys/virgl/vtest/Makefile
2443 src/glx/apple/Makefile
2444 src/glx/tests/Makefile
2448 src/mapi/es1api/glesv1_cm.pc
2449 src/mapi/es2api/glesv2.pc
2450 src/mapi/glapi/gen/Makefile
2453 src/mesa/drivers/dri/dri.pc
2454 src/mesa/drivers/dri/common/Makefile
2455 src/mesa/drivers/dri/common/xmlpool/Makefile
2456 src/mesa/drivers/dri/i915/Makefile
2457 src/mesa/drivers/dri/i965/Makefile
2458 src/mesa/drivers/dri/Makefile
2459 src/mesa/drivers/dri/nouveau/Makefile
2460 src/mesa/drivers/dri/r200/Makefile
2461 src/mesa/drivers/dri/radeon/Makefile
2462 src/mesa/drivers/dri/swrast/Makefile
2463 src/mesa/drivers/osmesa/Makefile
2464 src/mesa/drivers/osmesa/osmesa.pc
2465 src/mesa/drivers/x11/Makefile
2466 src/mesa/main/tests/Makefile
2468 src/vulkan/anv_icd.json
2469 src/vulkan/tests/Makefile
2471 src/util/tests/hash_table/Makefile])
2476 dnl Output some configuration info for the user
2479 echo " prefix: $prefix"
2480 echo " exec_prefix: $exec_prefix"
2481 echo " libdir: $libdir"
2482 echo " includedir: $includedir"
2486 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
2490 case "x$enable_osmesa$enable_gallium_osmesa" in
2492 echo " OSMesa: lib$OSMESA_LIB (Gallium)"
2495 echo " OSMesa: lib$OSMESA_LIB"
2503 if test "x$enable_dri" != xno; then
2504 echo " DRI platform: $dri_platform"
2505 if test -z "$DRI_DIRS"; then
2506 echo " DRI drivers: no"
2508 echo " DRI drivers: $DRI_DIRS"
2510 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
2513 case "x$enable_glx$enable_xlib_glx" in
2515 echo " GLX: Xlib-based"
2518 echo " GLX: DRI-based"
2521 echo " GLX: $enable_glx"
2527 echo " EGL: $enable_egl"
2528 if test "$enable_egl" = yes; then
2529 echo " EGL platforms: $egl_platforms"
2532 if test "x$HAVE_EGL_DRIVER_DRI2" != "x"; then
2533 egl_drivers="$egl_drivers builtin:egl_dri2"
2536 echo " EGL drivers: $egl_drivers"
2540 if test "x$MESA_LLVM" = x1; then
2542 echo " llvm-config: $LLVM_CONFIG"
2543 echo " llvm-version: $LLVM_VERSION"
2549 if test -n "$with_gallium_drivers"; then
2550 echo " Gallium drivers: $gallium_drivers"
2551 echo " Gallium st: $gallium_st"
2558 echo " Shader cache: $enable_shader_cache"
2559 if test "x$enable_shader_cache" = "xyes"; then
2560 echo " With SHA1 from: $with_sha1"
2565 echo " Shared libs: $enable_shared"
2566 echo " Static libs: $enable_static"
2567 echo " Shared-glapi: $enable_shared_glapi"
2569 dnl Compiler options
2570 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2571 cflags=`echo $CFLAGS | \
2572 $SED 's/^ *//;s/ */ /;s/ *$//'`
2573 cxxflags=`echo $CXXFLAGS | \
2574 $SED 's/^ *//;s/ */ /;s/ *$//'`
2575 defines=`echo $DEFINES | $SED 's/^ *//;s/ */ /;s/ *$//'`
2577 echo " CFLAGS: $cflags"
2578 echo " CXXFLAGS: $cxxflags"
2579 echo " Macros: $defines"
2581 if test "x$MESA_LLVM" = x1; then
2582 echo " LLVM_CFLAGS: $LLVM_CFLAGS"
2583 echo " LLVM_CXXFLAGS: $LLVM_CXXFLAGS"
2584 echo " LLVM_CPPFLAGS: $LLVM_CPPFLAGS"
2585 echo " LLVM_LDFLAGS: $LLVM_LDFLAGS"
2588 echo " PYTHON2: $PYTHON2"
2589 echo " PYTHON3: $PYTHON3"
2592 echo " Run '${MAKE-make}' to build Mesa"