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
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:
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
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.
32 dnl Process this file with autoconf to create configure.
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.])
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])
46 AM_INIT_AUTOMAKE([foreign tar-ustar dist-xz subdir-objects])
48 dnl We only support native Windows builds (MinGW/MSVC) through SCons.
51 AC_MSG_ERROR([MinGW build not supported through autoconf/automake, use SCons instead])
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
58 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
59 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
61 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
63 dnl Set internal versions
65 AC_SUBST([OSMESA_VERSION])
67 AC_SUBST([OPENCL_VERSION])
69 dnl Versions for external dependencies
70 LIBDRM_REQUIRED=2.4.60
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.33
75 LIBDRM_NOUVEAU_REQUIRED=2.4.62
76 LIBDRM_FREEDRENO_REQUIRED=2.4.64
77 DRI2PROTO_REQUIRED=2.6
78 DRI3PROTO_REQUIRED=1.0
79 PRESENTPROTO_REQUIRED=1.0
81 GLPROTO_REQUIRED=1.4.14
82 LIBOMXIL_BELLAGIO_REQUIRED=0.0
85 WAYLAND_REQUIRED=1.2.0
89 XSHMFENCE_REQUIRED=1.1
91 PYTHON_MAKO_REQUIRED=0.3.4
100 AC_CHECK_PROGS([PYTHON2], [python2.7 python2 python])
107 LT_INIT([disable-static])
109 AC_CHECK_PROG(RM, rm, [rm -f])
112 AS_IF([test ! -f "$srcdir/src/glsl/glcpp/glcpp-parse.c"],
113 [AC_MSG_ERROR([bison not found - unable to compile glcpp-parse.y])]))
115 AS_IF([test ! -f "$srcdir/src/glsl/glcpp/glcpp-lex.c"],
116 [AC_MSG_ERROR([flex not found - unable to compile glcpp-lex.l])]))
118 AC_CHECK_PROG(INDENT, indent, indent, cat)
119 if test "x$INDENT" != "xcat"; then
120 # Only GNU indent is supported
121 INDENT_VERSION=`indent --version | grep GNU`
122 if test $? -eq 0; then
123 AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -TGLubyte -TGLbyte -TBool')
129 AX_CHECK_PYTHON_MAKO_MODULE($PYTHON_MAKO_REQUIRED)
131 if test -z "$PYTHON2"; then
132 if test ! -f "$srcdir/src/util/format_srgb.c"; then
133 AC_MSG_ERROR([Python not found - unable to generate sources])
136 if test "x$acv_mako_found" = xno; then
137 if test ! -f "$srcdir/src/mesa/main/format_unpack.c"; then
138 AC_MSG_ERROR([Python mako module v$PYTHON_MAKO_REQUIRED or higher not found])
145 dnl We need a POSIX shell for parts of the build. Assume we have one
149 # Solaris /bin/sh is too old/non-POSIX compliant
150 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
155 dnl clang is mostly GCC-compatible, but its version is much lower,
156 dnl so we have to check for it.
157 AC_MSG_CHECKING([if compiling with clang])
160 [AC_LANG_PROGRAM([], [[
165 [acv_mesa_CLANG=yes], [acv_mesa_CLANG=no])
167 AC_MSG_RESULT([$acv_mesa_CLANG])
169 dnl If we're using GCC, make sure that it is at least version 4.2.0. Older
170 dnl versions are explictly not supported.
173 if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
174 AC_MSG_CHECKING([whether gcc version is sufficient])
178 GCC_VERSION=`$CC -dumpversion`
179 if test $? -eq 0; then
180 GCC_VERSION_MAJOR=`echo $GCC_VERSION | cut -d. -f1`
181 GCC_VERSION_MINOR=`echo $GCC_VERSION | cut -d. -f2`
184 if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 2 ; then
186 AC_MSG_ERROR([If using GCC, version 4.2.0 or later is required.])
191 if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 6 ; then
194 if test "x$cross_compiling" = xyes; then
199 dnl Check for compiler builtins
200 AX_GCC_BUILTIN([__builtin_bswap32])
201 AX_GCC_BUILTIN([__builtin_bswap64])
202 AX_GCC_BUILTIN([__builtin_clz])
203 AX_GCC_BUILTIN([__builtin_clzll])
204 AX_GCC_BUILTIN([__builtin_ctz])
205 AX_GCC_BUILTIN([__builtin_expect])
206 AX_GCC_BUILTIN([__builtin_ffs])
207 AX_GCC_BUILTIN([__builtin_ffsll])
208 AX_GCC_BUILTIN([__builtin_popcount])
209 AX_GCC_BUILTIN([__builtin_popcountll])
210 AX_GCC_BUILTIN([__builtin_unreachable])
212 AX_GCC_FUNC_ATTRIBUTE([const])
213 AX_GCC_FUNC_ATTRIBUTE([flatten])
214 AX_GCC_FUNC_ATTRIBUTE([format])
215 AX_GCC_FUNC_ATTRIBUTE([malloc])
216 AX_GCC_FUNC_ATTRIBUTE([packed])
217 AX_GCC_FUNC_ATTRIBUTE([pure])
218 AX_GCC_FUNC_ATTRIBUTE([unused])
219 AX_GCC_FUNC_ATTRIBUTE([warn_unused_result])
221 AM_CONDITIONAL([GEN_ASM_OFFSETS], test "x$GEN_ASM_OFFSETS" = xyes)
223 dnl Make sure the pkg-config macros are defined
224 m4_ifndef([PKG_PROG_PKG_CONFIG],
225 [m4_fatal([Could not locate the pkg-config autoconf macros.
226 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
227 are in a different location, try setting the environment variable
228 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
229 PKG_PROG_PKG_CONFIG()
231 dnl LIB_DIR - library basename
232 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
235 dnl Cache LDFLAGS and CPPFLAGS so we can add to them and restore later
236 _SAVE_LDFLAGS="$LDFLAGS"
237 _SAVE_CPPFLAGS="$CPPFLAGS"
240 DEFINES="-D__STDC_LIMIT_MACROS"
244 DEFINES="$DEFINES -D_GNU_SOURCE"
247 DEFINES="$DEFINES -DSVR4"
250 DEFINES="$DEFINES -D_XOPEN_SOURCE=700"
254 dnl Add flags for gcc and g++
255 if test "x$GCC" = xyes; then
256 CFLAGS="$CFLAGS -Wall"
258 if test "x$USE_GNU99" = xyes; then
259 CFLAGS="$CFLAGS -std=gnu99"
261 CFLAGS="$CFLAGS -std=c99"
264 # Enable -Werror=implicit-function-declaration and
265 # -Werror=missing-prototypes, if available, or otherwise, just
266 # -Wmissing-prototypes. This is particularly useful to avoid
267 # generating a loadable driver module that has undefined symbols.
268 save_CFLAGS="$CFLAGS"
269 AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
270 CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
271 CFLAGS="$CFLAGS -Werror=missing-prototypes"
272 AC_LINK_IFELSE([AC_LANG_PROGRAM()],
273 AC_MSG_RESULT([yes]),
274 [CFLAGS="$save_CFLAGS -Wmissing-prototypes";
275 AC_MSG_RESULT([no])]);
277 # Enable -fvisibility=hidden if using a gcc that supports it
278 save_CFLAGS="$CFLAGS"
279 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
280 VISIBILITY_CFLAGS="-fvisibility=hidden"
281 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
282 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
283 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
285 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
288 # Work around aliasing bugs - developers should comment this out
289 CFLAGS="$CFLAGS -fno-strict-aliasing"
291 # We don't want floating-point math functions to set errno or trap
292 CFLAGS="$CFLAGS -fno-math-errno -fno-trapping-math"
294 # gcc's builtin memcmp is slower than glibc's
295 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
296 CFLAGS="$CFLAGS -fno-builtin-memcmp"
298 # Flags to help ensure that certain portions of the code -- and only those
299 # portions -- can be built with MSVC:
300 # - src/util, src/gallium/auxiliary, and src/gallium/drivers/llvmpipe needs
301 # to build with Windows SDK 7.0.7600, which bundles MSVC 2008
302 # - non-Linux/Posix OpenGL portions needs to build on MSVC 2013 (which
303 # supports most of C99)
304 # - the rest has no compiler compiler restrictions
305 MSVC2013_COMPAT_CFLAGS="-Werror=pointer-arith"
306 MSVC2013_COMPAT_CXXFLAGS="-Werror=pointer-arith"
308 # Enable -Werror=vla if compiler supports it
309 save_CFLAGS="$CFLAGS"
310 AC_MSG_CHECKING([whether $CC supports -Werror=vla])
311 CFLAGS="$CFLAGS -Werror=vla"
312 AC_LINK_IFELSE([AC_LANG_PROGRAM()],
313 [MSVC2013_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=vla";
314 MSVC2013_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS -Werror=vla";
315 AC_MSG_RESULT([yes])],
316 AC_MSG_RESULT([no]));
317 CFLAGS="$save_CFLAGS"
319 MSVC2008_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=declaration-after-statement"
320 MSVC2008_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS"
322 if test "x$GXX" = xyes; then
323 CXXFLAGS="$CXXFLAGS -Wall"
325 # Enable -fvisibility=hidden if using a gcc that supports it
326 save_CXXFLAGS="$CXXFLAGS"
327 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
328 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
329 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
331 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
332 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
335 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
336 CXXFLAGS=$save_CXXFLAGS
338 # Work around aliasing bugs - developers should comment this out
339 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
341 # gcc's builtin memcmp is slower than glibc's
342 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
343 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
346 AC_SUBST([MSVC2013_COMPAT_CFLAGS])
347 AC_SUBST([MSVC2013_COMPAT_CXXFLAGS])
348 AC_SUBST([MSVC2008_COMPAT_CFLAGS])
349 AC_SUBST([MSVC2008_COMPAT_CXXFLAGS])
351 dnl even if the compiler appears to support it, using visibility attributes isn't
352 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
356 VISIBILITY_CXXFLAGS=""
360 AC_SUBST([VISIBILITY_CFLAGS])
361 AC_SUBST([VISIBILITY_CXXFLAGS])
364 dnl Optional flags, check for compiler support
366 SSE41_CFLAGS="-msse4.1"
367 dnl Code compiled by GCC with -msse* assumes a 16 byte aligned
368 dnl stack, but on x86-32 such alignment is not guaranteed.
369 case "$target_cpu" in
371 SSE41_CFLAGS="$SSE41_CFLAGS -mstackrealign"
374 save_CFLAGS="$CFLAGS"
375 CFLAGS="$SSE41_CFLAGS $CFLAGS"
376 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
377 #include <smmintrin.h>
380 __m128i a = _mm_set1_epi32 (param), b = _mm_set1_epi32 (param + 1), c;
381 c = _mm_max_epu32(a, b);
382 return _mm_cvtsi128_si32(c);
383 }]])], SSE41_SUPPORTED=1)
384 CFLAGS="$save_CFLAGS"
385 if test "x$SSE41_SUPPORTED" = x1; then
386 DEFINES="$DEFINES -DUSE_SSE41"
388 AM_CONDITIONAL([SSE41_SUPPORTED], [test x$SSE41_SUPPORTED = x1])
389 AC_SUBST([SSE41_CFLAGS], $SSE41_CFLAGS)
391 dnl Can't have static and shared libraries, default to static if user
392 dnl explicitly requested. If both disabled, set to static since shared
393 dnl was explicitly requested.
394 case "x$enable_static$enable_shared" in
396 AC_MSG_WARN([Cannot build static and shared libraries, disabling shared])
400 AC_MSG_WARN([Cannot disable both static and shared libraries, enabling shared])
405 AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes)
408 dnl other compiler options
410 AC_ARG_ENABLE([debug],
411 [AS_HELP_STRING([--enable-debug],
412 [use debug compiler flags and macros @<:@default=disabled@:>@])],
413 [enable_debug="$enableval"],
416 if test "x$enable_debug" = xyes; then
417 DEFINES="$DEFINES -DDEBUG"
418 if test "x$GCC" = xyes; then
419 if ! echo "$CFLAGS" | grep -q -e '-g'; then
422 if ! echo "$CFLAGS" | grep -q -e '-O'; then
426 if test "x$GXX" = xyes; then
427 if ! echo "$CXXFLAGS" | grep -q -e '-g'; then
428 CXXFLAGS="$CXXFLAGS -g"
430 if ! echo "$CXXFLAGS" | grep -q -e '-O'; then
431 CXXFLAGS="$CXXFLAGS -O0"
435 DEFINES="$DEFINES -DNDEBUG"
439 dnl Check if linker supports -Bsymbolic
441 save_LDFLAGS=$LDFLAGS
442 LDFLAGS="$LDFLAGS -Wl,-Bsymbolic"
443 AC_MSG_CHECKING([if ld supports -Bsymbolic])
445 [AC_LANG_SOURCE([int main() { return 0;}])],
446 [AC_MSG_RESULT([yes])
447 BSYMBOLIC="-Wl,-Bsymbolic";],
450 LDFLAGS=$save_LDFLAGS
452 AC_SUBST([BSYMBOLIC])
455 dnl Check if linker supports garbage collection
457 save_LDFLAGS=$LDFLAGS
458 LDFLAGS="$LDFLAGS -Wl,--gc-sections"
459 AC_MSG_CHECKING([whether ld supports --gc-sections])
461 [AC_LANG_SOURCE([static char UnusedFunc() { return 5; } int main() { return 0;}])],
462 [AC_MSG_RESULT([yes])
463 GC_SECTIONS="-Wl,--gc-sections";],
466 LDFLAGS=$save_LDFLAGS
468 AC_SUBST([GC_SECTIONS])
471 dnl OpenBSD does not have DT_NEEDED entries for libc by design
472 dnl so when these flags are passed to ld via libtool the checks will fail
476 LD_NO_UNDEFINED="" ;;
478 LD_NO_UNDEFINED="-Wl,--no-undefined" ;;
481 AC_SUBST([LD_NO_UNDEFINED])
484 dnl Check if linker supports version scripts
486 AC_MSG_CHECKING([if the linker supports version-scripts])
487 save_LDFLAGS=$LDFLAGS
488 LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
489 cat > conftest.map <<EOF
499 [AC_LANG_SOURCE([int main() { return 0;}])],
500 [have_ld_version_script=yes;AC_MSG_RESULT(yes)],
501 [have_ld_version_script=no; AC_MSG_RESULT(no)])
502 LDFLAGS=$save_LDFLAGS
503 AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
506 dnl Check if linker supports dynamic list files
508 AC_MSG_CHECKING([if the linker supports --dynamic-list])
509 save_LDFLAGS=$LDFLAGS
510 LDFLAGS="$LDFLAGS -Wl,--dynamic-list=conftest.dyn"
511 cat > conftest.dyn <<EOF
513 radeon_drm_winsys_create;
517 [AC_LANG_SOURCE([int main() { return 0;}])],
518 [have_ld_dynamic_list=yes;AC_MSG_RESULT(yes)],
519 [have_ld_dynamic_list=no; AC_MSG_RESULT(no)])
520 LDFLAGS=$save_LDFLAGS
521 AM_CONDITIONAL(HAVE_LD_DYNAMIC_LIST, test "$have_ld_dynamic_list" = "yes")
524 dnl compatibility symlinks
528 HAVE_COMPAT_SYMLINKS=yes ;;
530 HAVE_COMPAT_SYMLINKS=no ;;
533 AM_CONDITIONAL(HAVE_COMPAT_SYMLINKS, test "x$HAVE_COMPAT_SYMLINKS" = xyes)
551 AC_ARG_WITH([gl-lib-name],
552 [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
553 [specify GL library name @<:@default=GL@:>@])],
556 AC_ARG_WITH([osmesa-lib-name],
557 [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
558 [specify OSMesa library name @<:@default=OSMesa@:>@])],
559 [OSMESA_LIB=$withval],
561 AS_IF([test "x$GL_LIB" = xyes], [GL_LIB=GL])
562 AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
565 dnl Mangled Mesa support
567 AC_ARG_ENABLE([mangling],
568 [AS_HELP_STRING([--enable-mangling],
569 [enable mangled symbols and library name @<:@default=disabled@:>@])],
570 [enable_mangling="${enableval}"],
573 if test "x${enable_mangling}" = "xyes" ; then
574 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
575 GL_LIB="Mangled${GL_LIB}"
576 OSMESA_LIB="Mangled${OSMESA_LIB}"
579 AC_SUBST([OSMESA_LIB])
582 dnl potentially-infringing-but-nobody-knows-for-sure stuff
584 AC_ARG_ENABLE([texture-float],
585 [AS_HELP_STRING([--enable-texture-float],
586 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
587 [enable_texture_float="$enableval"],
588 [enable_texture_float=no]
590 if test "x$enable_texture_float" = xyes; then
591 AC_MSG_WARN([Floating-point textures enabled.])
592 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
593 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
597 dnl Arch/platform-specific settings
600 [AS_HELP_STRING([--disable-asm],
601 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
602 [enable_asm="$enableval"],
606 AC_MSG_CHECKING([whether to enable assembly])
607 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
608 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
609 if test "x$enable_asm" = xyes -a "x$cross_compiling" = xyes; then
611 i?86 | x86_64 | amd64)
613 AC_MSG_RESULT([no, cross compiling])
617 # check for supported arches
618 if test "x$enable_asm" = xyes; then
622 linux* | *freebsd* | dragonfly* | *netbsd* | openbsd* | gnu*)
629 linux* | *freebsd* | dragonfly* | *netbsd* | openbsd*)
645 DEFINES="$DEFINES -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
646 AC_MSG_RESULT([yes, x86])
649 DEFINES="$DEFINES -DUSE_X86_64_ASM"
650 AC_MSG_RESULT([yes, x86_64])
653 DEFINES="$DEFINES -DUSE_SPARC_ASM"
654 AC_MSG_RESULT([yes, sparc])
657 AC_MSG_RESULT([no, platform not supported])
662 AC_CHECK_HEADER([xlocale.h], [DEFINES="$DEFINES -DHAVE_XLOCALE_H"])
663 AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"])
664 AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"])
665 AC_CHECK_FUNC([mkostemp], [DEFINES="$DEFINES -DHAVE_MKOSTEMP"])
667 dnl Check to see if dlopen is in default libraries (like Solaris, which
668 dnl has it in libc), or if libdl is needed to get it.
669 AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
670 [AC_CHECK_LIB([dl], [dlopen],
671 [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])])
672 AC_SUBST([DLOPEN_LIBS])
674 dnl Check if that library also has dladdr
676 LIBS="$LIBS $DLOPEN_LIBS"
677 AC_CHECK_FUNCS([dladdr])
684 AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],
685 [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt],
686 [AC_MSG_ERROR([Could not find clock_gettime])])])
687 AC_SUBST([CLOCK_LIB])
691 dnl See if posix_memalign is available
692 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
694 dnl Check for pthreads
696 if test "x$ax_pthread_ok" = xno; then
697 AC_MSG_ERROR([Building mesa on this platform requires pthreads])
699 dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS
700 dnl to -pthread, which causes problems if we need -lpthread to appear in
702 test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
704 dnl SELinux awareness.
705 AC_ARG_ENABLE([selinux],
706 [AS_HELP_STRING([--enable-selinux],
707 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
708 [MESA_SELINUX="$enableval"],
710 if test "x$enable_selinux" = "xyes"; then
711 PKG_CHECK_MODULES([SELINUX], [libselinux], [],
712 [AC_CHECK_HEADER([selinux/selinux.h],[],
713 [AC_MSG_ERROR([SELinux headers not found])])
714 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
715 [AC_MSG_ERROR([SELinux library not found])])
716 SELINUX_LIBS="-lselinux"])
717 DEFINES="$DEFINES -DMESA_SELINUX"
719 AC_SUBST([SELINUX_CFLAGS])
720 AC_SUBST([SELINUX_LIBS])
723 AC_ARG_ENABLE([opengl],
724 [AS_HELP_STRING([--disable-opengl],
725 [disable support for standard OpenGL API @<:@default=enabled@:>@])],
726 [enable_opengl="$enableval"],
728 AC_ARG_ENABLE([gles1],
729 [AS_HELP_STRING([--disable-gles1],
730 [disable support for OpenGL ES 1.x API @<:@default=enabled@:>@])],
731 [enable_gles1="$enableval"],
733 AC_ARG_ENABLE([gles2],
734 [AS_HELP_STRING([--disable-gles2],
735 [disable support for OpenGL ES 2.x API @<:@default=enabled@:>@])],
736 [enable_gles2="$enableval"],
740 [AS_HELP_STRING([--enable-dri],
741 [enable DRI modules @<:@default=enabled@:>@])],
742 [enable_dri="$enableval"],
753 AC_ARG_ENABLE([dri3],
754 [AS_HELP_STRING([--enable-dri3],
755 [enable DRI3 @<:@default=auto@:>@])],
756 [enable_dri3="$enableval"],
757 [enable_dri3="$dri3_default"])
759 [AS_HELP_STRING([--enable-glx],
760 [enable GLX library @<:@default=enabled@:>@])],
761 [enable_glx="$enableval"],
763 AC_ARG_ENABLE([osmesa],
764 [AS_HELP_STRING([--enable-osmesa],
765 [enable OSMesa library @<:@default=disabled@:>@])],
766 [enable_osmesa="$enableval"],
768 AC_ARG_ENABLE([gallium-osmesa],
769 [AS_HELP_STRING([--enable-gallium-osmesa],
770 [enable Gallium implementation of the OSMesa library @<:@default=disabled@:>@])],
771 [enable_gallium_osmesa="$enableval"],
772 [enable_gallium_osmesa=no])
774 [AS_HELP_STRING([--disable-egl],
775 [disable EGL library @<:@default=enabled@:>@])],
776 [enable_egl="$enableval"],
780 [AS_HELP_STRING([--enable-xa],
781 [enable build of the XA X Acceleration API @<:@default=disabled@:>@])],
782 [enable_xa="$enableval"],
785 [AS_HELP_STRING([--enable-gbm],
786 [enable gbm library @<:@default=auto@:>@])],
787 [enable_gbm="$enableval"],
789 AC_ARG_ENABLE([nine],
790 [AS_HELP_STRING([--enable-nine],
791 [enable build of the nine Direct3D9 API @<:@default=no@:>@])],
792 [enable_nine="$enableval"],
795 AC_ARG_ENABLE([xvmc],
796 [AS_HELP_STRING([--enable-xvmc],
797 [enable xvmc library @<:@default=auto@:>@])],
798 [enable_xvmc="$enableval"],
800 AC_ARG_ENABLE([vdpau],
801 [AS_HELP_STRING([--enable-vdpau],
802 [enable vdpau library @<:@default=auto@:>@])],
803 [enable_vdpau="$enableval"],
806 [AS_HELP_STRING([--enable-omx],
807 [enable OpenMAX library @<:@default=disabled@:>@])],
808 [enable_omx="$enableval"],
811 [AS_HELP_STRING([--enable-va],
812 [enable va library @<:@default=auto@:>@])],
813 [enable_va="$enableval"],
815 AC_ARG_ENABLE([opencl],
816 [AS_HELP_STRING([--enable-opencl],
817 [enable OpenCL library @<:@default=disabled@:>@])],
818 [enable_opencl="$enableval"],
820 AC_ARG_ENABLE([opencl_icd],
821 [AS_HELP_STRING([--enable-opencl-icd],
822 [Build an OpenCL ICD library to be loaded by an ICD implementation
823 @<:@default=disabled@:>@])],
824 [enable_opencl_icd="$enableval"],
825 [enable_opencl_icd=no])
826 AC_ARG_ENABLE([xlib-glx],
827 [AS_HELP_STRING([--enable-xlib-glx],
828 [make GLX library Xlib-based instead of DRI-based @<:@default=disabled@:>@])],
829 [enable_xlib_glx="$enableval"],
830 [enable_xlib_glx=no])
832 AC_ARG_ENABLE([r600-llvm-compiler],
833 [AS_HELP_STRING([--enable-r600-llvm-compiler],
834 [Enable experimental LLVM backend for graphics shaders @<:@default=disabled@:>@])],
835 [enable_r600_llvm="$enableval"],
836 [enable_r600_llvm=no])
838 AC_ARG_ENABLE([gallium-tests],
839 [AS_HELP_STRING([--enable-gallium-tests],
840 [Enable optional Gallium tests) @<:@default=disabled@:>@])],
841 [enable_gallium_tests="$enableval"],
842 [enable_gallium_tests=no])
844 # Option for Gallium drivers
846 # Keep this in sync with the --with-gallium-drivers help string default value
847 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
849 AC_ARG_WITH([gallium-drivers],
850 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
851 [comma delimited Gallium drivers list, e.g.
852 "i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4"
853 @<:@default=r300,r600,svga,swrast@:>@])],
854 [with_gallium_drivers="$withval"],
855 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
857 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
858 # here so that the script doesn't choke on an unknown driver name later.
859 case "$with_gallium_drivers" in
860 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
861 no) with_gallium_drivers='' ;;
864 if test "x$enable_opengl" = xno -a \
865 "x$enable_gles1" = xno -a \
866 "x$enable_gles2" = xno -a \
867 "x$enable_nine" = xno -a \
868 "x$enable_xa" = xno -a \
869 "x$enable_xvmc" = xno -a \
870 "x$enable_vdpau" = xno -a \
871 "x$enable_omx" = xno -a \
872 "x$enable_va" = xno -a \
873 "x$enable_opencl" = xno; then
874 AC_MSG_ERROR([at least one API should be enabled])
877 # Building OpenGL ES1 and/or ES2 without OpenGL is not supported on mesa 9.0.x
878 if test "x$enable_opengl" = xno -a \
879 "x$enable_gles1" = xyes; then
880 AC_MSG_ERROR([Building OpenGL ES1 without OpenGL is not supported])
883 if test "x$enable_opengl" = xno -a \
884 "x$enable_gles2" = xyes; then
885 AC_MSG_ERROR([Building OpenGL ES2 without OpenGL is not supported])
888 AM_CONDITIONAL(HAVE_OPENGL, test "x$enable_opengl" = xyes)
889 AM_CONDITIONAL(HAVE_OPENGL_ES1, test "x$enable_gles1" = xyes)
890 AM_CONDITIONAL(HAVE_OPENGL_ES2, test "x$enable_gles2" = xyes)
891 AM_CONDITIONAL(NEED_OPENGL_COMMON, test "x$enable_opengl" = xyes -o \
892 "x$enable_gles1" = xyes -o \
893 "x$enable_gles2" = xyes)
895 if test "x$enable_glx" = xno; then
896 AC_MSG_WARN([GLX disabled, disabling Xlib-GLX])
900 if test "x$enable_dri$enable_xlib_glx" = xyesyes; then
901 AC_MSG_ERROR([DRI and Xlib-GLX cannot be built together])
904 if test "x$enable_opengl$enable_xlib_glx" = xnoyes; then
905 AC_MSG_ERROR([Xlib-GLX cannot be built without OpenGL])
908 # Disable GLX if OpenGL is not enabled
909 if test "x$enable_glx$enable_opengl" = xyesno; then
910 AC_MSG_WARN([OpenGL not enabled, disabling GLX])
914 # Disable GLX if DRI and Xlib-GLX are not enabled
915 if test "x$enable_glx" = xyes -a \
916 "x$enable_dri" = xno -a \
917 "x$enable_xlib_glx" = xno; then
918 AC_MSG_WARN([Neither DRI nor Xlib-GLX enabled, disabling GLX])
922 AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xyes -a \
923 "x$enable_dri" = xyes)
926 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
927 [have_libdrm=yes], [have_libdrm=no])
928 if test "x$have_libdrm" = xyes; then
929 DEFINES="$DEFINES -DHAVE_LIBDRM"
932 # Select which platform-dependent DRI code gets built
935 dri_platform='apple' ;;
937 dri_platform='none' ;;
939 dri_platform='drm' ;;
942 AM_CONDITIONAL(HAVE_DRICOMMON, test "x$enable_dri" = xyes )
943 AM_CONDITIONAL(HAVE_DRISW, test "x$enable_dri" = xyes )
944 AM_CONDITIONAL(HAVE_DRI2, test "x$enable_dri" = xyes -a "x$dri_platform" = xdrm -a "x$have_libdrm" = xyes )
945 AM_CONDITIONAL(HAVE_DRI3, test "x$enable_dri3" = xyes -a "x$dri_platform" = xdrm -a "x$have_libdrm" = xyes )
946 AM_CONDITIONAL(HAVE_APPLEDRI, test "x$enable_dri" = xyes -a "x$dri_platform" = xapple )
948 AC_ARG_ENABLE([shared-glapi],
949 [AS_HELP_STRING([--enable-shared-glapi],
950 [Enable shared glapi for OpenGL @<:@default=enabled@:>@])],
951 [enable_shared_glapi="$enableval"],
952 [enable_shared_glapi=yes])
954 case "x$enable_opengl$enable_gles1$enable_gles2" in
956 if test "x$enable_shared_glapi" = xno; then
957 AC_MSG_ERROR([shared GLAPI required when building two or more of
958 the following APIs - opengl, gles1 gles2])
963 AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes)
965 # Build the pipe-drivers as separate libraries/modules.
966 # Do not touch this unless you know what you are doing.
967 # XXX: Expose via configure option ?
968 enable_shared_pipe_drivers=no
971 dnl Driver specific build directories
974 if test -n "$with_gallium_drivers" -a "x$enable_glx$enable_xlib_glx" = xyesyes; then
975 NEED_WINSYS_XLIB="yes"
978 if test "x$enable_dri" = xyes; then
979 enable_gallium_loader="$enable_shared_pipe_drivers"
982 if test "x$enable_gallium_osmesa" = xyes; then
983 if ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
984 AC_MSG_ERROR([gallium_osmesa requires the gallium swrast driver])
986 if test "x$enable_osmesa" = xyes; then
987 AC_MSG_ERROR([Cannot enable both classic and Gallium OSMesa implementations])
991 AC_SUBST([MESA_LLVM])
1000 PKG_CHECK_MODULES([LIBUDEV], [libudev >= $LIBUDEV_REQUIRED],
1001 have_libudev=yes, have_libudev=no)
1003 AC_ARG_ENABLE([sysfs],
1004 [AS_HELP_STRING([--enable-sysfs],
1005 [enable /sys PCI identification @<:@default=disabled@:>@])],
1006 [have_sysfs="$enableval"],
1010 if test "x$enable_dri" = xyes; then
1011 if test "$enable_static" = yes; then
1012 AC_MSG_ERROR([Cannot use static libraries for DRI drivers])
1015 # not a hard requirement as swrast does not depend on it
1016 if test "x$have_libdrm" = xyes; then
1017 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
1021 AC_ARG_ENABLE([driglx-direct],
1022 [AS_HELP_STRING([--disable-driglx-direct],
1023 [disable direct rendering in GLX and EGL for DRI \
1024 @<:@default=auto@:>@])],
1025 [driglx_direct="$enableval"],
1026 [driglx_direct="yes"])
1029 dnl libGL configuration per driver
1031 case "x$enable_glx$enable_xlib_glx" in
1034 dri_modules="x11 xext xcb"
1035 PKG_CHECK_MODULES([XLIBGL], [$dri_modules])
1036 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1037 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
1038 GL_LIB_DEPS="$XLIBGL_LIBS"
1039 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1040 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm $PTHREAD_LIBS"
1044 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
1046 # find the DRI deps for libGL
1047 dri_modules="x11 xext xdamage xfixes x11-xcb xcb xcb-glx >= $XCBGLX_REQUIRED"
1049 if test x"$driglx_direct" = xyes; then
1050 if test x"$dri_platform" = xdrm ; then
1051 DEFINES="$DEFINES -DGLX_USE_DRM"
1052 if test "x$have_libdrm" != xyes; then
1053 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
1056 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
1057 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
1058 if test x"$enable_dri3" = xyes; then
1059 PKG_CHECK_MODULES([DRI3PROTO], [dri3proto >= $DRI3PROTO_REQUIRED])
1060 PKG_CHECK_MODULES([PRESENTPROTO], [presentproto >= $PRESENTPROTO_REQUIRED])
1063 if test x"$enable_dri" = xyes; then
1064 dri_modules="$dri_modules xcb-dri2 >= $XCBDRI2_REQUIRED"
1067 if test x"$enable_dri3" = xyes; then
1068 PKG_CHECK_EXISTS([xcb >= $XCB_REQUIRED], [], AC_MSG_ERROR([DRI3 requires xcb >= $XCB_REQUIRED]))
1069 dri_modules="$dri_modules xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
1072 if test x"$dri_platform" = xapple ; then
1073 DEFINES="$DEFINES -DGLX_USE_APPLEGL"
1077 # add xf86vidmode if available
1078 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
1079 if test "$HAVE_XF86VIDMODE" = yes ; then
1080 dri_modules="$dri_modules xxf86vm"
1083 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
1084 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1085 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
1086 GL_LIB_DEPS="$DRIGL_LIBS"
1088 # need DRM libs, $PTHREAD_LIBS, etc.
1089 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1090 GL_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1095 if test "$have_libudev" = yes; then
1096 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1100 if test "$have_sysfs" = yes; then
1101 DEFINES="$DEFINES -DHAVE_SYSFS"
1105 # This is outside the case (above) so that it is invoked even for non-GLX
1107 AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes)
1109 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1110 GLESv1_CM_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1111 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1112 GLESv2_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1114 AC_SUBST([X11_INCLUDES])
1115 AC_SUBST([GL_LIB_DEPS])
1116 AC_SUBST([GL_PC_REQ_PRIV])
1117 AC_SUBST([GL_PC_LIB_PRIV])
1118 AC_SUBST([GL_PC_CFLAGS])
1119 AC_SUBST([DRI_PC_REQ_PRIV])
1120 AC_SUBST([GLESv1_CM_LIB_DEPS])
1121 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1122 AC_SUBST([GLESv2_LIB_DEPS])
1123 AC_SUBST([GLESv2_PC_LIB_PRIV])
1125 AC_SUBST([HAVE_XF86VIDMODE])
1130 case "x$enable_glx$enable_xlib_glx" in
1132 DEFINES="$DEFINES -DUSE_XSHM"
1135 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1136 if test "x$driglx_direct" = xyes; then
1137 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1146 AC_ARG_ENABLE([glx-tls],
1147 [AS_HELP_STRING([--enable-glx-tls],
1148 [enable TLS support in GLX @<:@default=disabled@:>@])],
1149 [GLX_USE_TLS="$enableval"],
1151 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1153 AS_IF([test "x$GLX_USE_TLS" = xyes -a "x$ax_pthread_ok" = xyes],
1154 [DEFINES="${DEFINES} -DGLX_USE_TLS"])
1156 dnl Read-only text section on x86 hardened platforms
1157 AC_ARG_ENABLE([glx-read-only-text],
1158 [AS_HELP_STRING([--enable-glx-read-only-text],
1159 [Disable writable .text section on x86 (decreases performance) @<:@default=disabled@:>@])],
1160 [enable_glx_read_only_text="$enableval"],
1161 [enable_glx_read_only_text=no])
1162 if test "x$enable_glx_read_only_text" = xyes; then
1163 DEFINES="$DEFINES -DGLX_X86_READONLY_TEXT"
1169 dnl Directory for DRI drivers
1170 AC_ARG_WITH([dri-driverdir],
1171 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1172 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1173 [DRI_DRIVER_INSTALL_DIR="$withval"],
1174 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1175 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1176 dnl Extra search path for DRI drivers
1177 AC_ARG_WITH([dri-searchpath],
1178 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1179 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1180 [DRI_DRIVER_SEARCH_DIR="$withval"],
1181 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1182 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1183 dnl Which drivers to build - default is chosen by platform
1184 AC_ARG_WITH([dri-drivers],
1185 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1186 [comma delimited classic DRI drivers list, e.g.
1187 "swrast,i965,radeon" @<:@default=auto@:>@])],
1188 [with_dri_drivers="$withval"],
1189 [with_dri_drivers=auto])
1191 if test "x$with_dri_drivers" = xauto; then
1192 if test "x$enable_opengl" = xyes -a "x$enable_dri" = xyes; then
1193 with_dri_drivers="yes"
1195 with_dri_drivers="no"
1198 if test "x$with_dri_drivers" = xno; then
1202 dnl If $with_dri_drivers is yes, drivers will be added through
1203 dnl platform checks. Set DEFINES and LIB_DEPS
1204 if test "x$enable_dri" = xyes; then
1205 # Platform specific settings and drivers to build
1208 DEFINES="$DEFINES -DHAVE_ALIAS"
1209 if test "x$enable_dri3" = xyes; then
1210 DEFINES="$DEFINES -DHAVE_DRI3"
1213 if test "x$have_pci_id" != xyes; then
1214 AC_MSG_ERROR([libudev-dev or sysfs required for building DRI])
1219 # Build only the drivers for cards that exist on PowerPC/sparc
1220 if test "x$with_dri_drivers" = "xyes"; then
1221 with_dri_drivers="r200 radeon swrast"
1226 *freebsd* | dragonfly* | *netbsd* | openbsd*)
1227 DEFINES="$DEFINES -DHAVE_ALIAS"
1230 DEFINES="$DEFINES -DHAVE_ALIAS"
1233 if test "x$with_dri_drivers" = "xyes"; then
1234 with_dri_drivers="swrast"
1238 DEFINES="$DEFINES -DGLX_ALIAS_UNSUPPORTED -DBUILDING_MESA"
1239 if test "x$with_dri_drivers" = "xyes"; then
1240 with_dri_drivers="swrast"
1246 if test "x$with_dri_drivers" = "xyes"; then
1247 with_dri_drivers="i915 i965 nouveau r200 radeon swrast"
1251 PKG_CHECK_MODULES([EXPAT], [expat], [],
1252 # expat version 2.0 and earlier do not provide expat.pc
1253 [AC_CHECK_HEADER([expat.h],[],
1254 [AC_MSG_ERROR([Expat headers required for DRI not found])])
1255 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1256 [AC_MSG_ERROR([Expat library required for DRI not found])])
1257 EXPAT_LIBS="-lexpat"])
1259 # put all the necessary libs together
1260 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1263 AC_SUBST([DRI_LIB_DEPS])
1266 dnl Duplicates in DRI_DIRS are removed by sorting it at the end of this block
1267 if test -n "$with_dri_drivers"; then
1268 if test "x$enable_opengl" != xyes; then
1269 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1272 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1273 for driver in $dri_drivers; do
1274 DRI_DIRS="$DRI_DIRS $driver"
1278 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1282 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1285 HAVE_NOUVEAU_DRI=yes;
1286 PKG_CHECK_MODULES([NVVIEUX], [libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED])
1289 HAVE_RADEON_DRI=yes;
1290 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1294 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1297 HAVE_SWRAST_DRI=yes;
1300 AC_MSG_ERROR([classic DRI driver '$driver' does not exist])
1304 DRI_DIRS=`echo $DRI_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1307 AM_CONDITIONAL(NEED_MEGADRIVER, test -n "$DRI_DIRS")
1308 AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_xlib_glx" = xyes -o \
1309 "x$enable_osmesa" = xyes -o \
1313 dnl OSMesa configuration
1316 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1317 AC_ARG_WITH([osmesa-bits],
1318 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1319 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1320 [osmesa_bits="$withval"],
1322 if test "x$osmesa_bits" != x8; then
1323 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1324 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1328 case "x$osmesa_bits" in
1330 OSMESA_LIB="${OSMESA_LIB}"
1333 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1334 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1337 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1341 if test "x$enable_osmesa" = xyes -o "x$enable_gallium_osmesa" = xyes; then
1342 # only link libraries with osmesa if shared
1343 if test "$enable_static" = no; then
1344 OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1348 OSMESA_PC_LIB_PRIV="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1351 AC_SUBST([OSMESA_LIB_DEPS])
1352 AC_SUBST([OSMESA_PC_REQ])
1353 AC_SUBST([OSMESA_PC_LIB_PRIV])
1356 dnl gbm configuration
1358 if test "x$enable_gbm" = xauto; then
1359 case "$with_egl_platforms" in
1366 if test "x$enable_gbm" = xyes; then
1367 if test "x$need_pci_id$have_pci_id" = xyesno; then
1368 AC_MSG_ERROR([gbm requires udev >= $LIBUDEV_REQUIRED or sysfs])
1371 if test "x$enable_dri" = xyes; then
1372 if test "x$enable_shared_glapi" = xno; then
1373 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1376 # Strictly speaking libgbm does not require --enable-dri, although
1377 # both of its backends do. Thus one can build libgbm without any
1378 # backends if --disable-dri is set.
1379 # To avoid unnecessary complexity of checking if at least one backend
1380 # is available when building, just mandate --enable-dri.
1381 AC_MSG_ERROR([gbm requires --enable-dri])
1384 AM_CONDITIONAL(HAVE_GBM, test "x$enable_gbm" = xyes)
1385 if test "x$need_pci_id$have_libudev" = xyesyes; then
1386 GBM_PC_REQ_PRIV="libudev >= $LIBUDEV_REQUIRED"
1390 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1391 AC_SUBST([GBM_PC_REQ_PRIV])
1392 AC_SUBST([GBM_PC_LIB_PRIV])
1395 dnl EGL configuration
1399 if test "x$enable_egl" = xyes; then
1400 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS $PTHREAD_LIBS"
1402 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1404 if test "$enable_static" != yes; then
1405 if test "x$enable_dri" = xyes; then
1406 HAVE_EGL_DRIVER_DRI2=1
1407 if test "x$enable_shared_glapi" = xno; then
1408 AC_MSG_ERROR([egl_dri2 requires --enable-shared-glapi])
1411 # Avoid building an "empty" libEGL. Drop/update this
1412 # when other backends (haiku?) come along.
1413 AC_MSG_ERROR([egl requires --enable-dri])
1418 AM_CONDITIONAL(HAVE_EGL, test "x$enable_egl" = xyes)
1419 AC_SUBST([EGL_LIB_DEPS])
1422 dnl XA configuration
1424 if test "x$enable_xa" = xyes; then
1425 if test "x$with_gallium_drivers" = xswrast; then
1427 Building xa requires at least one non swrast gallium driver.
1428 If you are looking to use libxatracker.so with the VMware driver,
1429 make sure to include svga in the gallium drivers list, apart from
1431 Example: ./configure --enable-xa --with-gallium-drivers=svga...])
1433 enable_gallium_loader=$enable_shared_pipe_drivers
1435 AM_CONDITIONAL(HAVE_ST_XA, test "x$enable_xa" = xyes)
1438 dnl Gallium G3DVL configuration
1440 if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then
1441 if test "x$enable_xvmc" = xauto; then
1442 PKG_CHECK_EXISTS([xvmc >= $XVMC_REQUIRED], [enable_xvmc=yes], [enable_xvmc=no])
1445 if test "x$enable_vdpau" = xauto; then
1446 PKG_CHECK_EXISTS([vdpau >= $VDPAU_REQUIRED], [enable_vdpau=yes], [enable_vdpau=no])
1449 if test "x$enable_omx" = xauto; then
1450 PKG_CHECK_EXISTS([libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED], [enable_omx=yes], [enable_omx=no])
1453 if test "x$enable_va" = xauto; then
1454 PKG_CHECK_EXISTS([libva >= $LIBVA_REQUIRED], [enable_va=yes], [enable_va=no])
1458 if test "x$enable_dri" = xyes -o \
1459 "x$enable_xvmc" = xyes -o \
1460 "x$enable_vdpau" = xyes -o \
1461 "x$enable_omx" = xyes -o \
1462 "x$enable_va" = xyes; then
1465 AM_CONDITIONAL(NEED_GALLIUM_VL, test "x$need_gallium_vl" = xyes)
1467 if test "x$enable_xvmc" = xyes -o \
1468 "x$enable_vdpau" = xyes -o \
1469 "x$enable_omx" = xyes -o \
1470 "x$enable_va" = xyes; then
1471 PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
1472 need_gallium_vl_winsys=yes
1474 AM_CONDITIONAL(NEED_GALLIUM_VL_WINSYS, test "x$need_gallium_vl_winsys" = xyes)
1476 if test "x$enable_xvmc" = xyes; then
1477 PKG_CHECK_MODULES([XVMC], [xvmc >= $XVMC_REQUIRED])
1478 enable_gallium_loader=$enable_shared_pipe_drivers
1480 AM_CONDITIONAL(HAVE_ST_XVMC, test "x$enable_xvmc" = xyes)
1482 if test "x$enable_vdpau" = xyes; then
1483 PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED])
1484 enable_gallium_loader=$enable_shared_pipe_drivers
1486 AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes)
1488 if test "x$enable_omx" = xyes; then
1489 PKG_CHECK_MODULES([OMX], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED])
1490 enable_gallium_loader=$enable_shared_pipe_drivers
1492 AM_CONDITIONAL(HAVE_ST_OMX, test "x$enable_omx" = xyes)
1494 if test "x$enable_va" = xyes; then
1495 PKG_CHECK_MODULES([VA], [libva >= $LIBVA_REQUIRED])
1496 enable_gallium_loader=$enable_shared_pipe_drivers
1498 AM_CONDITIONAL(HAVE_ST_VA, test "x$enable_va" = xyes)
1501 dnl Nine Direct3D9 configuration
1503 if test "x$enable_nine" = xyes; then
1504 if ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
1505 AC_MSG_ERROR([nine requires the gallium swrast driver])
1507 if test "x$with_gallium_drivers" = xswrast; then
1508 AC_MSG_ERROR([nine requires at least one non-swrast gallium driver])
1510 if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 6; then
1511 AC_MSG_ERROR([gcc >= 4.6 is required to build nine])
1514 if test "x$enable_dri3" = xno; then
1515 AC_MSG_WARN([using nine together with wine requires DRI3 enabled system])
1518 enable_gallium_loader=$enable_shared_pipe_drivers
1520 AM_CONDITIONAL(HAVE_ST_NINE, test "x$enable_nine" = xyes)
1523 dnl OpenCL configuration
1526 AC_ARG_WITH([clang-libdir],
1527 [AS_HELP_STRING([--with-clang-libdir],
1528 [Path to Clang libraries @<:@default=llvm-config --libdir@:>@])],
1529 [CLANG_LIBDIR="$withval"],
1532 PKG_CHECK_EXISTS([libclc], [have_libclc=yes], [have_libclc=no])
1533 PKG_CHECK_MODULES([LIBELF], [libelf], [have_libelf=yes], [have_libelf=no])
1535 if test "x$have_libelf" = xno; then
1538 AC_CHECK_LIB([elf], [elf_memory], [have_libelf=yes;LIBELF_LIBS=-lelf], [have_libelf=no])
1539 AC_SUBST([LIBELF_LIBS])
1540 AC_SUBST([LIBELF_CFLAGS])
1543 if test "x$enable_opencl" = xyes; then
1544 if test -z "$with_gallium_drivers"; then
1545 AC_MSG_ERROR([cannot enable OpenCL without Gallium])
1548 if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 7; then
1549 AC_MSG_ERROR([gcc >= 4.7 is required to build clover])
1552 if test "x$have_libclc" = xno; then
1553 AC_MSG_ERROR([pkg-config cannot find libclc.pc which is required to build clover.
1554 Make sure the directory containing libclc.pc is specified in your
1555 PKG_CONFIG_PATH environment variable.
1556 By default libclc.pc is installed to /usr/local/share/pkgconfig/])
1558 LIBCLC_INCLUDEDIR=`$PKG_CONFIG --variable=includedir libclc`
1559 LIBCLC_LIBEXECDIR=`$PKG_CONFIG --variable=libexecdir libclc`
1560 AC_SUBST([LIBCLC_INCLUDEDIR])
1561 AC_SUBST([LIBCLC_LIBEXECDIR])
1564 # XXX: Use $enable_shared_pipe_drivers once converted to use static/shared pipe-drivers
1565 enable_gallium_loader=yes
1567 if test "x$enable_opencl_icd" = xyes; then
1568 OPENCL_LIBNAME="MesaOpenCL"
1570 OPENCL_LIBNAME="OpenCL"
1573 if test "x$have_libelf" != xyes; then
1574 AC_MSG_ERROR([Clover requires libelf])
1577 AM_CONDITIONAL(HAVE_CLOVER, test "x$enable_opencl" = xyes)
1578 AM_CONDITIONAL(HAVE_CLOVER_ICD, test "x$enable_opencl_icd" = xyes)
1579 AC_SUBST([OPENCL_LIBNAME])
1582 dnl Gallium configuration
1584 AM_CONDITIONAL(HAVE_GALLIUM, test -n "$with_gallium_drivers")
1586 AC_SUBST([LLVM_BINDIR])
1587 AC_SUBST([LLVM_CFLAGS])
1588 AC_SUBST([LLVM_CPPFLAGS])
1589 AC_SUBST([LLVM_CXXFLAGS])
1590 AC_SUBST([LLVM_LIBDIR])
1591 AC_SUBST([LLVM_LIBS])
1592 AC_SUBST([LLVM_LDFLAGS])
1593 AC_SUBST([LLVM_INCLUDEDIR])
1594 AC_SUBST([LLVM_VERSION])
1595 AC_SUBST([CLANG_RESOURCE_DIR])
1597 case "x$enable_opengl$enable_gles1$enable_gles2" in
1599 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1603 AC_SUBST([VG_LIB_DEPS])
1604 AC_SUBST([EGL_CLIENT_APIS])
1607 dnl EGL Platforms configuration
1609 AC_ARG_WITH([egl-platforms],
1610 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1611 [comma delimited native platforms libEGL supports, e.g.
1612 "x11,drm" @<:@default=auto@:>@])],
1613 [with_egl_platforms="$withval"],
1614 [if test "x$enable_egl" = xyes; then
1615 with_egl_platforms="x11"
1617 with_egl_platforms=""
1620 if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then
1621 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1624 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland_scanner],
1625 WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland_scanner`,
1627 if test "x$WAYLAND_SCANNER" = x; then
1628 AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner])
1631 # Do per-EGL platform setups and checks
1632 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1633 for plat in $egl_platforms; do
1636 test "x$have_libdrm" != xyes &&
1637 AC_MSG_ERROR([EGL platform wayland requires libdrm >= $LIBDRM_REQUIRED])
1639 PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED])
1641 if test "x$WAYLAND_SCANNER" = x; then
1642 AC_MSG_ERROR([wayland-scanner is needed to compile the wayland egl platform])
1647 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED xcb-xfixes])
1651 test "x$enable_gbm" = "xno" &&
1652 AC_MSG_ERROR([EGL platform drm needs gbm])
1653 test "x$have_libdrm" != xyes &&
1654 AC_MSG_ERROR([EGL platform drm requires libdrm >= $LIBDRM_REQUIRED])
1658 test "x$have_libdrm" != xyes &&
1659 AC_MSG_ERROR([EGL platform surfaceless requires libdrm >= $LIBDRM_REQUIRED])
1663 AC_MSG_ERROR([EGL platform '$plat' does not exist])
1667 case "$plat$need_pci_id$have_pci_id" in
1668 waylandyesno|drmyesno)
1669 AC_MSG_ERROR([cannot build $plat platform without udev >= $LIBUDEV_REQUIRED or sysfs]) ;;
1673 # libEGL wants to default to the first platform specified in
1674 # ./configure. parse that here.
1675 if test "x$egl_platforms" != "x"; then
1676 FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr '[[a-z]]' '[[A-Z]]'`
1677 EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS"
1679 EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
1682 AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep -q 'x11')
1683 AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep -q 'wayland')
1684 AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep -q 'drm')
1685 AM_CONDITIONAL(HAVE_EGL_PLATFORM_SURFACELESS, echo "$egl_platforms" | grep -q 'surfaceless')
1686 AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep -q 'null')
1688 AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x")
1690 AC_SUBST([EGL_NATIVE_PLATFORM])
1691 AC_SUBST([EGL_CFLAGS])
1693 # If we don't have the X11 platform, set this define so we don't try to include
1695 if ! echo "$egl_platforms" | grep -q 'x11'; then
1696 DEFINES="$DEFINES -DMESA_EGL_NO_X11_HEADERS"
1697 GL_PC_CFLAGS="$GL_PC_CFLAGS -DMESA_EGL_NO_X11_HEADERS"
1703 AC_ARG_ENABLE([gallium-llvm],
1704 [AS_HELP_STRING([--enable-gallium-llvm],
1705 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1706 [enable_gallium_llvm="$enableval"],
1707 [enable_gallium_llvm=auto])
1709 AC_ARG_ENABLE([llvm-shared-libs],
1710 [AS_HELP_STRING([--enable-llvm-shared-libs],
1711 [link with LLVM shared libraries @<:@default=enabled@:>@])],
1712 [enable_llvm_shared_libs="$enableval"],
1713 [enable_llvm_shared_libs=yes])
1715 AC_ARG_WITH([llvm-prefix],
1716 [AS_HELP_STRING([--with-llvm-prefix],
1717 [Prefix for LLVM installations in non-standard locations])],
1718 [llvm_prefix="$withval"],
1722 # Call this inside ` ` to get the return value.
1723 # $1 is the llvm-config command with arguments.
1724 strip_unwanted_llvm_flags() {
1725 # Use \> (marks the end of the word)
1727 -e 's/-DNDEBUG\>//g' \
1728 -e 's/-D_GNU_SOURCE\>//g' \
1729 -e 's/-pedantic\>//g' \
1730 -e 's/-Wcovered-switch-default\>//g' \
1734 -e 's/-Wcast-qual\>//g' \
1735 -e 's/-Woverloaded-virtual\>//g' \
1736 -e 's/-fcolor-diagnostics\>//g' \
1737 -e 's/-fdata-sections\>//g' \
1738 -e 's/-ffunction-sections\>//g' \
1739 -e 's/-fno-exceptions\>//g' \
1740 -e 's/-fomit-frame-pointer\>//g' \
1741 -e 's/-fvisibility-inlines-hidden\>//g' \
1743 -e 's/-fstack-protector-strong\>//g'
1746 llvm_check_version_for() {
1747 if test "${LLVM_VERSION_INT}${LLVM_VERSION_PATCH}" -lt "${1}0${2}${3}"; then
1748 AC_MSG_ERROR([LLVM $1.$2.$3 or newer is required for $4])
1754 if test -z "$with_gallium_drivers"; then
1755 enable_gallium_llvm=no
1757 if test "x$enable_gallium_llvm" = xauto; then
1759 i*86|x86_64|amd64) enable_gallium_llvm=yes;;
1762 if test "x$enable_gallium_llvm" = xyes; then
1763 if test -n "$llvm_prefix"; then
1764 AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"])
1766 AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no])
1769 if test "x$LLVM_CONFIG" != xno; then
1770 LLVM_VERSION=`$LLVM_CONFIG --version | egrep -o '^[[0-9.]]+'`
1771 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1772 LLVM_BINDIR=`$LLVM_CONFIG --bindir`
1773 LLVM_CPPFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cppflags"`
1774 LLVM_CFLAGS=$LLVM_CPPFLAGS # CPPFLAGS seem to be sufficient
1775 LLVM_CXXFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cxxflags"`
1776 LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir`
1777 LLVM_LIBDIR=`$LLVM_CONFIG --libdir`
1779 AC_COMPUTE_INT([LLVM_VERSION_MAJOR], [LLVM_VERSION_MAJOR],
1780 [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
1781 AC_COMPUTE_INT([LLVM_VERSION_MINOR], [LLVM_VERSION_MINOR],
1782 [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
1784 LLVM_VERSION_PATCH=`echo $LLVM_VERSION | cut -d. -f3 | egrep -o '^[[0-9]]+'`
1785 if test -z "$LLVM_VERSION_PATCH"; then
1786 LLVM_VERSION_PATCH=0
1789 if test -n "${LLVM_VERSION_MAJOR}"; then
1790 LLVM_VERSION_INT="${LLVM_VERSION_MAJOR}0${LLVM_VERSION_MINOR}"
1792 LLVM_VERSION_INT=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/\10\2/g'`
1795 LLVM_REQUIRED_VERSION_MAJOR="3"
1796 LLVM_REQUIRED_VERSION_MINOR="3"
1797 if test "$LLVM_VERSION_INT" -lt "${LLVM_REQUIRED_VERSION_MAJOR}0${LLVM_REQUIRED_VERSION_MINOR}"; then
1798 AC_MSG_ERROR([LLVM $LLVM_REQUIRED_VERSION_MAJOR.$LLVM_REQUIRED_VERSION_MINOR or newer is required])
1801 LLVM_COMPONENTS="engine bitwriter mcjit mcdisassembler"
1803 if test "x$enable_opencl" = xyes; then
1804 llvm_check_version_for "3" "5" "0" "opencl"
1806 LLVM_COMPONENTS="${LLVM_COMPONENTS} all-targets ipo linker instrumentation"
1807 LLVM_COMPONENTS="${LLVM_COMPONENTS} irreader option objcarcopts profiledata"
1809 DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DMESA_LLVM_VERSION_PATCH=$LLVM_VERSION_PATCH"
1812 dnl Check for Clang internal headers
1813 if test "x$enable_opencl" = xyes; then
1814 if test -z "$CLANG_LIBDIR"; then
1815 CLANG_LIBDIR=${LLVM_LIBDIR}
1817 CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
1818 AS_IF([test ! -f "$CLANG_RESOURCE_DIR/include/stddef.h"],
1819 [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.])])
1829 if test "x$enable_opencl" = xyes; then
1830 AC_MSG_ERROR([cannot enable OpenCL without LLVM])
1834 dnl Directory for XVMC libs
1835 AC_ARG_WITH([xvmc-libdir],
1836 [AS_HELP_STRING([--with-xvmc-libdir=DIR],
1837 [directory for the XVMC libraries @<:@default=${libdir}@:>@])],
1838 [XVMC_LIB_INSTALL_DIR="$withval"],
1839 [XVMC_LIB_INSTALL_DIR='${libdir}'])
1840 AC_SUBST([XVMC_LIB_INSTALL_DIR])
1845 if test "x$enable_gallium_tests" = xyes; then
1846 # XXX: Use $enable_shared_pipe_drivers once converted to use static/shared pipe-drivers
1847 enable_gallium_loader=yes
1849 AM_CONDITIONAL(HAVE_GALLIUM_TESTS, test "x$enable_gallium_tests" = xyes)
1851 dnl Directory for VDPAU libs
1852 AC_ARG_WITH([vdpau-libdir],
1853 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1854 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1855 [VDPAU_LIB_INSTALL_DIR="$withval"],
1856 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1857 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1859 dnl Directory for OMX libs
1861 AC_ARG_WITH([omx-libdir],
1862 [AS_HELP_STRING([--with-omx-libdir=DIR],
1863 [directory for the OMX libraries])],
1864 [OMX_LIB_INSTALL_DIR="$withval"],
1865 [OMX_LIB_INSTALL_DIR=`$PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libomxil-bellagio`])
1866 AC_SUBST([OMX_LIB_INSTALL_DIR])
1868 dnl Directory for VA libs
1870 AC_ARG_WITH([va-libdir],
1871 [AS_HELP_STRING([--with-va-libdir=DIR],
1872 [directory for the VA libraries @<:@${libdir}/dri@:>@])],
1873 [VA_LIB_INSTALL_DIR="$withval"],
1874 [VA_LIB_INSTALL_DIR="${libdir}/dri"])
1875 AC_SUBST([VA_LIB_INSTALL_DIR])
1877 AC_ARG_WITH([d3d-libdir],
1878 [AS_HELP_STRING([--with-d3d-libdir=DIR],
1879 [directory for the D3D modules @<:@${libdir}/d3d@:>@])],
1880 [D3D_DRIVER_INSTALL_DIR="$withval"],
1881 [D3D_DRIVER_INSTALL_DIR="${libdir}/d3d"])
1882 AC_SUBST([D3D_DRIVER_INSTALL_DIR])
1885 dnl Gallium helper functions
1887 gallium_require_drm() {
1888 if test "x$have_libdrm" != xyes; then
1889 AC_MSG_ERROR([$1 requires libdrm >= $LIBDRM_REQUIRED])
1893 gallium_require_llvm() {
1894 if test "x$MESA_LLVM" = x0; then
1895 case "$host" in *gnux32) return;; esac
1897 i*86|x86_64|amd64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1902 gallium_require_drm_loader() {
1903 if test "x$enable_gallium_loader" = xyes; then
1904 if test "x$need_pci_id$have_pci_id" = xyesno; then
1905 AC_MSG_ERROR([Gallium drm loader requires libudev >= $LIBUDEV_REQUIRED or sysfs])
1907 enable_gallium_drm_loader=yes
1909 if test "x$enable_va" = xyes && test "x$7" != x; then
1910 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1915 case "$with_egl_platforms" in
1919 AC_MSG_ERROR([--with-egl-platforms=drm is required to build the $1 driver.])
1922 if test "x$enable_gbm" != xyes; then
1923 AC_MSG_ERROR([--enable-gbm is required to build the $1 driver.])
1927 radeon_llvm_check() {
1928 if test ${LLVM_VERSION_INT} -lt 307; then
1929 amdgpu_llvm_target_name='r600'
1931 amdgpu_llvm_target_name='amdgpu'
1933 if test "x$enable_gallium_llvm" != "xyes"; then
1934 AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
1936 llvm_check_version_for "3" "4" "2" $1
1937 if test true && $LLVM_CONFIG --targets-built | grep -iqvw $amdgpu_llvm_target_name ; then
1938 AC_MSG_ERROR([LLVM $amdgpu_llvm_target_name not enabled in your LLVM build.])
1940 LLVM_COMPONENTS="${LLVM_COMPONENTS} $amdgpu_llvm_target_name bitreader ipo"
1941 NEED_RADEON_LLVM=yes
1942 if test "x$have_libelf" != xyes; then
1943 AC_MSG_ERROR([$1 requires libelf when using llvm])
1947 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1948 if test -n "$with_gallium_drivers"; then
1949 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1950 for driver in $gallium_drivers; do
1953 HAVE_GALLIUM_SVGA=yes
1954 gallium_require_drm "svga"
1955 gallium_require_drm_loader
1958 HAVE_GALLIUM_I915=yes
1959 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1960 gallium_require_drm "Gallium i915"
1961 gallium_require_drm_loader
1964 HAVE_GALLIUM_ILO=yes
1965 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1966 gallium_require_drm "Gallium i965/ilo"
1967 gallium_require_drm_loader
1970 HAVE_GALLIUM_R300=yes
1971 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1972 gallium_require_drm "Gallium R300"
1973 gallium_require_drm_loader
1974 gallium_require_llvm "Gallium R300"
1977 HAVE_GALLIUM_R600=yes
1978 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1979 gallium_require_drm "Gallium R600"
1980 gallium_require_drm_loader
1981 if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then
1982 radeon_llvm_check "r600g"
1983 LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
1985 if test "x$enable_r600_llvm" = xyes; then
1986 USE_R600_LLVM_COMPILER=yes;
1988 if test "x$enable_opencl" = xyes; then
1989 LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
1993 HAVE_GALLIUM_RADEONSI=yes
1994 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1995 PKG_CHECK_MODULES([AMDGPU], [libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED])
1996 gallium_require_drm "radeonsi"
1997 gallium_require_drm_loader
1998 radeon_llvm_check "radeonsi"
1999 require_egl_drm "radeonsi"
2002 HAVE_GALLIUM_NOUVEAU=yes
2003 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
2004 gallium_require_drm "nouveau"
2005 gallium_require_drm_loader
2008 HAVE_GALLIUM_FREEDRENO=yes
2009 PKG_CHECK_MODULES([FREEDRENO], [libdrm_freedreno >= $LIBDRM_FREEDRENO_REQUIRED])
2010 gallium_require_drm "freedreno"
2011 gallium_require_drm_loader
2014 HAVE_GALLIUM_SOFTPIPE=yes
2015 if test "x$MESA_LLVM" = x1; then
2016 HAVE_GALLIUM_LLVMPIPE=yes
2020 HAVE_GALLIUM_VC4=yes
2021 gallium_require_drm "vc4"
2022 gallium_require_drm_loader
2025 i?86 | x86_64 | amd64)
2026 USE_VC4_SIMULATOR=yes
2031 AC_MSG_ERROR([Unknown Gallium driver: $driver])
2037 dnl Set LLVM_LIBS - This is done after the driver configuration so
2038 dnl that drivers can add additional components to LLVM_COMPONENTS.
2039 dnl Previously, gallium drivers were updating LLVM_LIBS directly
2040 dnl by calling llvm-config --libs ${DRIVER_LLVM_COMPONENTS}, but
2041 dnl this was causing the same libraries to be appear multiple times
2044 if test "x$MESA_LLVM" != x0; then
2046 LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
2048 if test "x$enable_llvm_shared_libs" = xyes; then
2049 dnl We can't use $LLVM_VERSION because it has 'svn' stripped out,
2050 LLVM_SO_NAME=LLVM-`$LLVM_CONFIG --version`
2051 AS_IF([test -f "$LLVM_LIBDIR/lib$LLVM_SO_NAME.so"], [llvm_have_one_so=yes])
2053 if test "x$llvm_have_one_so" = xyes; then
2054 dnl LLVM was built using auto*, so there is only one shared object.
2055 LLVM_LIBS="-l$LLVM_SO_NAME"
2057 dnl If LLVM was built with CMake, there will be one shared object per
2059 AS_IF([test ! -f "$LLVM_LIBDIR/libLLVMTarget.so"],
2060 [AC_MSG_ERROR([Could not find llvm shared libraries:
2061 Please make sure you have built llvm with the --enable-shared option
2062 and that your llvm libraries are installed in $LLVM_LIBDIR
2063 If you have installed your llvm libraries to a different directory you
2064 can use the --with-llvm-prefix= configure flag to specify this directory.
2065 NOTE: Mesa is attempting to use llvm shared libraries by default.
2066 If you do not want to build with llvm shared libraries and instead want to
2067 use llvm static libraries then add --disable-llvm-shared-libs to your configure
2068 invocation and rebuild.])])
2070 dnl We don't need to update LLVM_LIBS in this case because the LLVM
2071 dnl install uses a shared object for each component and we have
2072 dnl already added all of these objects to LLVM_LIBS.
2075 AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues])
2076 dnl We need to link to llvm system libs when using static libs
2077 dnl However, only llvm 3.5+ provides --system-libs
2078 if test $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then
2079 LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`"
2084 AM_CONDITIONAL(HAVE_GALLIUM_SVGA, test "x$HAVE_GALLIUM_SVGA" = xyes)
2085 AM_CONDITIONAL(HAVE_GALLIUM_I915, test "x$HAVE_GALLIUM_I915" = xyes)
2086 AM_CONDITIONAL(HAVE_GALLIUM_ILO, test "x$HAVE_GALLIUM_ILO" = xyes)
2087 AM_CONDITIONAL(HAVE_GALLIUM_R300, test "x$HAVE_GALLIUM_R300" = xyes)
2088 AM_CONDITIONAL(HAVE_GALLIUM_R600, test "x$HAVE_GALLIUM_R600" = xyes)
2089 AM_CONDITIONAL(HAVE_GALLIUM_RADEONSI, test "x$HAVE_GALLIUM_RADEONSI" = xyes)
2090 AM_CONDITIONAL(HAVE_GALLIUM_RADEON_COMMON, test "x$HAVE_GALLIUM_R600" = xyes -o \
2091 "x$HAVE_GALLIUM_RADEONSI" = xyes)
2092 AM_CONDITIONAL(HAVE_GALLIUM_NOUVEAU, test "x$HAVE_GALLIUM_NOUVEAU" = xyes)
2093 AM_CONDITIONAL(HAVE_GALLIUM_FREEDRENO, test "x$HAVE_GALLIUM_FREEDRENO" = xyes)
2094 AM_CONDITIONAL(HAVE_GALLIUM_SOFTPIPE, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes)
2095 AM_CONDITIONAL(HAVE_GALLIUM_LLVMPIPE, test "x$HAVE_GALLIUM_LLVMPIPE" = xyes)
2096 AM_CONDITIONAL(HAVE_GALLIUM_VC4, test "x$HAVE_GALLIUM_VC4" = xyes)
2098 AM_CONDITIONAL(HAVE_GALLIUM_STATIC_TARGETS, test "x$enable_shared_pipe_drivers" = xno)
2100 # NOTE: anything using xcb or other client side libs ends up in separate
2101 # _CLIENT variables. The pipe loader is built in two variants,
2102 # one that is standalone and does not link any x client libs (for
2103 # use by XA tracker in particular, but could be used in any case
2104 # where communication with xserver is not desired).
2105 if test "x$enable_gallium_loader" = xyes; then
2106 if test "x$enable_dri" = xyes; then
2107 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRI"
2110 if test "x$enable_gallium_drm_loader" = xyes; then
2111 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRM"
2114 AC_SUBST([GALLIUM_PIPE_LOADER_DEFINES])
2117 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
2118 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
2119 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
2120 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
2121 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
2122 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
2124 AM_CONDITIONAL(NEED_RADEON_DRM_WINSYS, test "x$HAVE_GALLIUM_R300" = xyes -o \
2125 "x$HAVE_GALLIUM_R600" = xyes -o \
2126 "x$HAVE_GALLIUM_RADEONSI" = xyes)
2127 AM_CONDITIONAL(NEED_WINSYS_XLIB, test "x$NEED_WINSYS_XLIB" = xyes)
2128 AM_CONDITIONAL(NEED_RADEON_LLVM, test x$NEED_RADEON_LLVM = xyes)
2129 AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes)
2130 AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes)
2131 AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes)
2132 AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
2133 AM_CONDITIONAL(HAVE_MESA_LLVM, test x$MESA_LLVM = x1)
2134 AM_CONDITIONAL(USE_VC4_SIMULATOR, test x$USE_VC4_SIMULATOR = xyes)
2135 if test "x$USE_VC4_SIMULATOR" = xyes -a "x$HAVE_GALLIUM_ILO" = xyes; then
2136 AC_MSG_ERROR([VC4 simulator on x86 replaces i965 driver build, so ilo must be disabled.])
2139 AM_CONDITIONAL(HAVE_LIBDRM, test "x$have_libdrm" = xyes)
2140 AM_CONDITIONAL(HAVE_X11_DRIVER, test "x$enable_xlib_glx" = xyes)
2141 AM_CONDITIONAL(HAVE_OSMESA, test "x$enable_osmesa" = xyes)
2142 AM_CONDITIONAL(HAVE_GALLIUM_OSMESA, test "x$enable_gallium_osmesa" = xyes)
2144 AM_CONDITIONAL(HAVE_X86_ASM, test "x$asm_arch" = xx86 -o "x$asm_arch" = xx86_64)
2145 AM_CONDITIONAL(HAVE_X86_64_ASM, test "x$asm_arch" = xx86_64)
2146 AM_CONDITIONAL(HAVE_SPARC_ASM, test "x$asm_arch" = xsparc)
2148 AC_SUBST([NINE_MAJOR], 1)
2149 AC_SUBST([NINE_MINOR], 0)
2150 AC_SUBST([NINE_TINY], 0)
2151 AC_SUBST([NINE_VERSION], "$NINE_MAJOR.$NINE_MINOR.$NINE_TINY")
2153 AC_SUBST([VDPAU_MAJOR], 1)
2154 AC_SUBST([VDPAU_MINOR], 0)
2156 VA_MAJOR=`$PKG_CONFIG --modversion libva | $SED -n 's/\([[^\.]]*\)\..*$/\1/p'`
2157 VA_MINOR=`$PKG_CONFIG --modversion libva | $SED -n 's/.*\.\(.*\)\..*$/\1/p'`
2158 AC_SUBST([VA_MAJOR], $VA_MAJOR)
2159 AC_SUBST([VA_MINOR], $VA_MINOR)
2161 AC_SUBST([XVMC_MAJOR], 1)
2162 AC_SUBST([XVMC_MINOR], 0)
2164 XA_HEADER="$srcdir/src/gallium/state_trackers/xa/xa_tracker.h"
2165 XA_MAJOR=`grep "#define XA_TRACKER_VERSION_MAJOR" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_MAJOR //'`
2166 XA_MINOR=`grep "#define XA_TRACKER_VERSION_MINOR" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_MINOR //'`
2167 XA_TINY=`grep "#define XA_TRACKER_VERSION_PATCH" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_PATCH //'`
2169 AC_SUBST([XA_MAJOR], $XA_MAJOR)
2170 AC_SUBST([XA_MINOR], $XA_MINOR)
2171 AC_SUBST([XA_TINY], $XA_TINY)
2172 AC_SUBST([XA_VERSION], "$XA_MAJOR.$XA_MINOR.$XA_TINY")
2174 dnl Restore LDFLAGS and CPPFLAGS
2175 LDFLAGS="$_SAVE_LDFLAGS"
2176 CPPFLAGS="$_SAVE_CPPFLAGS"
2178 dnl Suppress clang's warnings about unused CFLAGS and CXXFLAGS
2179 if test "x$acv_mesa_CLANG" = xyes; then
2180 CFLAGS="$CFLAGS -Qunused-arguments"
2181 CXXFLAGS="$CXXFLAGS -Qunused-arguments"
2184 dnl Add user CFLAGS and CXXFLAGS
2185 CFLAGS="$CFLAGS $USER_CFLAGS"
2186 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
2188 dnl Substitute the config
2189 AC_CONFIG_FILES([Makefile
2193 src/egl/wayland/wayland-drm/Makefile
2194 src/egl/wayland/wayland-egl/Makefile
2195 src/egl/wayland/wayland-egl/wayland-egl.pc
2196 src/gallium/Makefile
2197 src/gallium/auxiliary/Makefile
2198 src/gallium/auxiliary/pipe-loader/Makefile
2199 src/gallium/drivers/freedreno/Makefile
2200 src/gallium/drivers/i915/Makefile
2201 src/gallium/drivers/ilo/Makefile
2202 src/gallium/drivers/llvmpipe/Makefile
2203 src/gallium/drivers/noop/Makefile
2204 src/gallium/drivers/nouveau/Makefile
2205 src/gallium/drivers/r300/Makefile
2206 src/gallium/drivers/r600/Makefile
2207 src/gallium/drivers/radeon/Makefile
2208 src/gallium/drivers/radeonsi/Makefile
2209 src/gallium/drivers/rbug/Makefile
2210 src/gallium/drivers/softpipe/Makefile
2211 src/gallium/drivers/svga/Makefile
2212 src/gallium/drivers/trace/Makefile
2213 src/gallium/drivers/vc4/Makefile
2214 src/gallium/state_trackers/clover/Makefile
2215 src/gallium/state_trackers/dri/Makefile
2216 src/gallium/state_trackers/glx/xlib/Makefile
2217 src/gallium/state_trackers/nine/Makefile
2218 src/gallium/state_trackers/omx/Makefile
2219 src/gallium/state_trackers/osmesa/Makefile
2220 src/gallium/state_trackers/va/Makefile
2221 src/gallium/state_trackers/vdpau/Makefile
2222 src/gallium/state_trackers/xa/Makefile
2223 src/gallium/state_trackers/xvmc/Makefile
2224 src/gallium/targets/d3dadapter9/Makefile
2225 src/gallium/targets/d3dadapter9/d3d.pc
2226 src/gallium/targets/dri/Makefile
2227 src/gallium/targets/libgl-xlib/Makefile
2228 src/gallium/targets/omx/Makefile
2229 src/gallium/targets/opencl/Makefile
2230 src/gallium/targets/opencl/mesa.icd
2231 src/gallium/targets/osmesa/Makefile
2232 src/gallium/targets/osmesa/osmesa.pc
2233 src/gallium/targets/pipe-loader/Makefile
2234 src/gallium/targets/va/Makefile
2235 src/gallium/targets/vdpau/Makefile
2236 src/gallium/targets/xa/Makefile
2237 src/gallium/targets/xa/xatracker.pc
2238 src/gallium/targets/xvmc/Makefile
2239 src/gallium/tests/trivial/Makefile
2240 src/gallium/tests/unit/Makefile
2241 src/gallium/winsys/freedreno/drm/Makefile
2242 src/gallium/winsys/i915/drm/Makefile
2243 src/gallium/winsys/intel/drm/Makefile
2244 src/gallium/winsys/nouveau/drm/Makefile
2245 src/gallium/winsys/radeon/drm/Makefile
2246 src/gallium/winsys/amdgpu/drm/Makefile
2247 src/gallium/winsys/svga/drm/Makefile
2248 src/gallium/winsys/sw/dri/Makefile
2249 src/gallium/winsys/sw/kms-dri/Makefile
2250 src/gallium/winsys/sw/null/Makefile
2251 src/gallium/winsys/sw/wrapper/Makefile
2252 src/gallium/winsys/sw/xlib/Makefile
2253 src/gallium/winsys/vc4/drm/Makefile
2258 src/glx/apple/Makefile
2259 src/glx/tests/Makefile
2263 src/mapi/es1api/glesv1_cm.pc
2264 src/mapi/es2api/glesv2.pc
2265 src/mapi/glapi/gen/Makefile
2268 src/mesa/drivers/dri/dri.pc
2269 src/mesa/drivers/dri/common/Makefile
2270 src/mesa/drivers/dri/common/xmlpool/Makefile
2271 src/mesa/drivers/dri/i915/Makefile
2272 src/mesa/drivers/dri/i965/Makefile
2273 src/mesa/drivers/dri/Makefile
2274 src/mesa/drivers/dri/nouveau/Makefile
2275 src/mesa/drivers/dri/r200/Makefile
2276 src/mesa/drivers/dri/radeon/Makefile
2277 src/mesa/drivers/dri/swrast/Makefile
2278 src/mesa/drivers/osmesa/Makefile
2279 src/mesa/drivers/osmesa/osmesa.pc
2280 src/mesa/drivers/x11/Makefile
2281 src/mesa/main/tests/Makefile
2283 src/util/tests/hash_table/Makefile])
2288 dnl Output some configuration info for the user
2291 echo " prefix: $prefix"
2292 echo " exec_prefix: $exec_prefix"
2293 echo " libdir: $libdir"
2294 echo " includedir: $includedir"
2298 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
2302 case "x$enable_osmesa$enable_gallium_osmesa" in
2304 echo " OSMesa: lib$OSMESA_LIB (Gallium)"
2307 echo " OSMesa: lib$OSMESA_LIB"
2315 if test "x$enable_dri" != xno; then
2316 echo " DRI platform: $dri_platform"
2317 if test -z "$DRI_DIRS"; then
2318 echo " DRI drivers: no"
2320 echo " DRI drivers: $DRI_DIRS"
2322 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
2325 case "x$enable_glx$enable_xlib_glx" in
2327 echo " GLX: Xlib-based"
2330 echo " GLX: DRI-based"
2333 echo " GLX: $enable_glx"
2339 echo " EGL: $enable_egl"
2340 if test "$enable_egl" = yes; then
2341 echo " EGL platforms: $egl_platforms"
2344 if test "x$HAVE_EGL_DRIVER_DRI2" != "x"; then
2345 egl_drivers="$egl_drivers builtin:egl_dri2"
2348 echo " EGL drivers: $egl_drivers"
2352 if test "x$MESA_LLVM" = x1; then
2354 echo " llvm-config: $LLVM_CONFIG"
2355 echo " llvm-version: $LLVM_VERSION"
2361 if test -n "$with_gallium_drivers"; then
2362 echo " Gallium: yes"
2370 echo " Shared libs: $enable_shared"
2371 echo " Static libs: $enable_static"
2372 echo " Shared-glapi: $enable_shared_glapi"
2374 dnl Compiler options
2375 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2376 cflags=`echo $CFLAGS | \
2377 $SED 's/^ *//;s/ */ /;s/ *$//'`
2378 cxxflags=`echo $CXXFLAGS | \
2379 $SED 's/^ *//;s/ */ /;s/ *$//'`
2380 defines=`echo $DEFINES | $SED 's/^ *//;s/ */ /;s/ *$//'`
2382 echo " CFLAGS: $cflags"
2383 echo " CXXFLAGS: $cxxflags"
2384 echo " Macros: $defines"
2386 if test "x$MESA_LLVM" = x1; then
2387 echo " LLVM_CFLAGS: $LLVM_CFLAGS"
2388 echo " LLVM_CXXFLAGS: $LLVM_CXXFLAGS"
2389 echo " LLVM_CPPFLAGS: $LLVM_CPPFLAGS"
2390 echo " LLVM_LDFLAGS: $LLVM_LDFLAGS"
2393 echo " PYTHON2: $PYTHON2"
2396 echo " Run '${MAKE-make}' to build Mesa"