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 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>
379 __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
380 c = _mm_max_epu32(a, b);
382 }]])], SSE41_SUPPORTED=1)
383 CFLAGS="$save_CFLAGS"
384 if test "x$SSE41_SUPPORTED" = x1; then
385 DEFINES="$DEFINES -DUSE_SSE41"
387 AM_CONDITIONAL([SSE41_SUPPORTED], [test x$SSE41_SUPPORTED = x1])
388 AC_SUBST([SSE41_CFLAGS], $SSE41_CFLAGS)
390 dnl Can't have static and shared libraries, default to static if user
391 dnl explicitly requested. If both disabled, set to static since shared
392 dnl was explicitly requested.
393 case "x$enable_static$enable_shared" in
395 AC_MSG_WARN([Cannot build static and shared libraries, disabling shared])
399 AC_MSG_WARN([Cannot disable both static and shared libraries, enabling shared])
404 AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes)
407 dnl other compiler options
409 AC_ARG_ENABLE([debug],
410 [AS_HELP_STRING([--enable-debug],
411 [use debug compiler flags and macros @<:@default=disabled@:>@])],
412 [enable_debug="$enableval"],
415 if test "x$enable_debug" = xyes; then
416 DEFINES="$DEFINES -DDEBUG"
417 if test "x$GCC" = xyes; then
418 if ! echo "$CFLAGS" | grep -q -e '-g'; then
421 if ! echo "$CFLAGS" | grep -q -e '-O'; then
425 if test "x$GXX" = xyes; then
426 if ! echo "$CXXFLAGS" | grep -q -e '-g'; then
427 CXXFLAGS="$CXXFLAGS -g"
429 if ! echo "$CXXFLAGS" | grep -q -e '-O'; then
430 CXXFLAGS="$CXXFLAGS -O0"
434 DEFINES="$DEFINES -DNDEBUG"
438 dnl Check if linker supports -Bsymbolic
440 save_LDFLAGS=$LDFLAGS
441 LDFLAGS="$LDFLAGS -Wl,-Bsymbolic"
442 AC_MSG_CHECKING([if ld supports -Bsymbolic])
444 [AC_LANG_SOURCE([int main() { return 0;}])],
445 [AC_MSG_RESULT([yes])
446 BSYMBOLIC="-Wl,-Bsymbolic";],
449 LDFLAGS=$save_LDFLAGS
451 AC_SUBST([BSYMBOLIC])
454 dnl Check if linker supports garbage collection
456 save_LDFLAGS=$LDFLAGS
457 LDFLAGS="$LDFLAGS -Wl,--gc-sections"
458 AC_MSG_CHECKING([whether ld supports --gc-sections])
460 [AC_LANG_SOURCE([static char UnusedFunc() { return 5; } int main() { return 0;}])],
461 [AC_MSG_RESULT([yes])
462 GC_SECTIONS="-Wl,--gc-sections";],
465 LDFLAGS=$save_LDFLAGS
467 AC_SUBST([GC_SECTIONS])
470 dnl OpenBSD does not have DT_NEEDED entries for libc by design
471 dnl so when these flags are passed to ld via libtool the checks will fail
475 LD_NO_UNDEFINED="" ;;
477 LD_NO_UNDEFINED="-Wl,--no-undefined" ;;
480 AC_SUBST([LD_NO_UNDEFINED])
483 dnl Check if linker supports version scripts
485 AC_MSG_CHECKING([if the linker supports version-scripts])
486 save_LDFLAGS=$LDFLAGS
487 LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
488 cat > conftest.map <<EOF
498 [AC_LANG_SOURCE([int main() { return 0;}])],
499 [have_ld_version_script=yes;AC_MSG_RESULT(yes)],
500 [have_ld_version_script=no; AC_MSG_RESULT(no)])
501 LDFLAGS=$save_LDFLAGS
502 AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
505 dnl Check if linker supports dynamic list files
507 AC_MSG_CHECKING([if the linker supports --dynamic-list])
508 save_LDFLAGS=$LDFLAGS
509 LDFLAGS="$LDFLAGS -Wl,--dynamic-list=conftest.dyn"
510 cat > conftest.dyn <<EOF
512 radeon_drm_winsys_create;
516 [AC_LANG_SOURCE([int main() { return 0;}])],
517 [have_ld_dynamic_list=yes;AC_MSG_RESULT(yes)],
518 [have_ld_dynamic_list=no; AC_MSG_RESULT(no)])
519 LDFLAGS=$save_LDFLAGS
520 AM_CONDITIONAL(HAVE_LD_DYNAMIC_LIST, test "$have_ld_dynamic_list" = "yes")
523 dnl compatibility symlinks
527 HAVE_COMPAT_SYMLINKS=yes ;;
529 HAVE_COMPAT_SYMLINKS=no ;;
532 AM_CONDITIONAL(HAVE_COMPAT_SYMLINKS, test "x$HAVE_COMPAT_SYMLINKS" = xyes)
550 AC_ARG_WITH([gl-lib-name],
551 [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
552 [specify GL library name @<:@default=GL@:>@])],
555 AC_ARG_WITH([osmesa-lib-name],
556 [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
557 [specify OSMesa library name @<:@default=OSMesa@:>@])],
558 [OSMESA_LIB=$withval],
560 AS_IF([test "x$GL_LIB" = xyes], [GL_LIB=GL])
561 AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
564 dnl Mangled Mesa support
566 AC_ARG_ENABLE([mangling],
567 [AS_HELP_STRING([--enable-mangling],
568 [enable mangled symbols and library name @<:@default=disabled@:>@])],
569 [enable_mangling="${enableval}"],
572 if test "x${enable_mangling}" = "xyes" ; then
573 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
574 GL_LIB="Mangled${GL_LIB}"
575 OSMESA_LIB="Mangled${OSMESA_LIB}"
578 AC_SUBST([OSMESA_LIB])
581 dnl potentially-infringing-but-nobody-knows-for-sure stuff
583 AC_ARG_ENABLE([texture-float],
584 [AS_HELP_STRING([--enable-texture-float],
585 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
586 [enable_texture_float="$enableval"],
587 [enable_texture_float=no]
589 if test "x$enable_texture_float" = xyes; then
590 AC_MSG_WARN([Floating-point textures enabled.])
591 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
592 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
596 dnl Arch/platform-specific settings
599 [AS_HELP_STRING([--disable-asm],
600 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
601 [enable_asm="$enableval"],
605 AC_MSG_CHECKING([whether to enable assembly])
606 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
607 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
608 if test "x$enable_asm" = xyes -a "x$cross_compiling" = xyes; then
610 i?86 | x86_64 | amd64)
612 AC_MSG_RESULT([no, cross compiling])
616 # check for supported arches
617 if test "x$enable_asm" = xyes; then
621 linux* | *freebsd* | dragonfly* | *netbsd* | openbsd* | gnu*)
628 linux* | *freebsd* | dragonfly* | *netbsd* | openbsd*)
644 DEFINES="$DEFINES -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
645 AC_MSG_RESULT([yes, x86])
648 DEFINES="$DEFINES -DUSE_X86_64_ASM"
649 AC_MSG_RESULT([yes, x86_64])
652 DEFINES="$DEFINES -DUSE_SPARC_ASM"
653 AC_MSG_RESULT([yes, sparc])
656 AC_MSG_RESULT([no, platform not supported])
661 AC_CHECK_HEADER([xlocale.h], [DEFINES="$DEFINES -DHAVE_XLOCALE_H"])
662 AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"])
663 AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"])
664 AC_CHECK_FUNC([mkostemp], [DEFINES="$DEFINES -DHAVE_MKOSTEMP"])
666 dnl Check to see if dlopen is in default libraries (like Solaris, which
667 dnl has it in libc), or if libdl is needed to get it.
668 AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
669 [AC_CHECK_LIB([dl], [dlopen],
670 [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])])
671 AC_SUBST([DLOPEN_LIBS])
673 dnl Check if that library also has dladdr
675 LIBS="$LIBS $DLOPEN_LIBS"
676 AC_CHECK_FUNCS([dladdr])
683 AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],
684 [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt],
685 [AC_MSG_ERROR([Could not find clock_gettime])])])
686 AC_SUBST([CLOCK_LIB])
690 dnl See if posix_memalign is available
691 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
693 dnl Check for pthreads
695 if test "x$ax_pthread_ok" = xno; then
696 AC_MSG_ERROR([Building mesa on this platform requires pthreads])
698 dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS
699 dnl to -pthread, which causes problems if we need -lpthread to appear in
701 test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
703 dnl SELinux awareness.
704 AC_ARG_ENABLE([selinux],
705 [AS_HELP_STRING([--enable-selinux],
706 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
707 [MESA_SELINUX="$enableval"],
709 if test "x$enable_selinux" = "xyes"; then
710 PKG_CHECK_MODULES([SELINUX], [libselinux], [],
711 [AC_CHECK_HEADER([selinux/selinux.h],[],
712 [AC_MSG_ERROR([SELinux headers not found])])
713 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
714 [AC_MSG_ERROR([SELinux library not found])])
715 SELINUX_LIBS="-lselinux"])
716 DEFINES="$DEFINES -DMESA_SELINUX"
718 AC_SUBST([SELINUX_CFLAGS])
719 AC_SUBST([SELINUX_LIBS])
722 AC_ARG_ENABLE([opengl],
723 [AS_HELP_STRING([--disable-opengl],
724 [disable support for standard OpenGL API @<:@default=enabled@:>@])],
725 [enable_opengl="$enableval"],
727 AC_ARG_ENABLE([gles1],
728 [AS_HELP_STRING([--disable-gles1],
729 [disable support for OpenGL ES 1.x API @<:@default=enabled@:>@])],
730 [enable_gles1="$enableval"],
732 AC_ARG_ENABLE([gles2],
733 [AS_HELP_STRING([--disable-gles2],
734 [disable support for OpenGL ES 2.x API @<:@default=enabled@:>@])],
735 [enable_gles2="$enableval"],
739 [AS_HELP_STRING([--enable-dri],
740 [enable DRI modules @<:@default=enabled@:>@])],
741 [enable_dri="$enableval"],
752 AC_ARG_ENABLE([dri3],
753 [AS_HELP_STRING([--enable-dri3],
754 [enable DRI3 @<:@default=auto@:>@])],
755 [enable_dri3="$enableval"],
756 [enable_dri3="$dri3_default"])
758 [AS_HELP_STRING([--enable-glx],
759 [enable GLX library @<:@default=enabled@:>@])],
760 [enable_glx="$enableval"],
762 AC_ARG_ENABLE([osmesa],
763 [AS_HELP_STRING([--enable-osmesa],
764 [enable OSMesa library @<:@default=disabled@:>@])],
765 [enable_osmesa="$enableval"],
767 AC_ARG_ENABLE([gallium-osmesa],
768 [AS_HELP_STRING([--enable-gallium-osmesa],
769 [enable Gallium implementation of the OSMesa library @<:@default=disabled@:>@])],
770 [enable_gallium_osmesa="$enableval"],
771 [enable_gallium_osmesa=no])
773 [AS_HELP_STRING([--disable-egl],
774 [disable EGL library @<:@default=enabled@:>@])],
775 [enable_egl="$enableval"],
779 [AS_HELP_STRING([--enable-xa],
780 [enable build of the XA X Acceleration API @<:@default=disabled@:>@])],
781 [enable_xa="$enableval"],
784 [AS_HELP_STRING([--enable-gbm],
785 [enable gbm library @<:@default=auto@:>@])],
786 [enable_gbm="$enableval"],
788 AC_ARG_ENABLE([nine],
789 [AS_HELP_STRING([--enable-nine],
790 [enable build of the nine Direct3D9 API @<:@default=no@:>@])],
791 [enable_nine="$enableval"],
794 AC_ARG_ENABLE([xvmc],
795 [AS_HELP_STRING([--enable-xvmc],
796 [enable xvmc library @<:@default=auto@:>@])],
797 [enable_xvmc="$enableval"],
799 AC_ARG_ENABLE([vdpau],
800 [AS_HELP_STRING([--enable-vdpau],
801 [enable vdpau library @<:@default=auto@:>@])],
802 [enable_vdpau="$enableval"],
805 [AS_HELP_STRING([--enable-omx],
806 [enable OpenMAX library @<:@default=disabled@:>@])],
807 [enable_omx="$enableval"],
810 [AS_HELP_STRING([--enable-va],
811 [enable va library @<:@default=auto@:>@])],
812 [enable_va="$enableval"],
814 AC_ARG_ENABLE([opencl],
815 [AS_HELP_STRING([--enable-opencl],
816 [enable OpenCL library @<:@default=disabled@:>@])],
817 [enable_opencl="$enableval"],
819 AC_ARG_ENABLE([opencl_icd],
820 [AS_HELP_STRING([--enable-opencl-icd],
821 [Build an OpenCL ICD library to be loaded by an ICD implementation
822 @<:@default=disabled@:>@])],
823 [enable_opencl_icd="$enableval"],
824 [enable_opencl_icd=no])
825 AC_ARG_ENABLE([xlib-glx],
826 [AS_HELP_STRING([--enable-xlib-glx],
827 [make GLX library Xlib-based instead of DRI-based @<:@default=disabled@:>@])],
828 [enable_xlib_glx="$enableval"],
829 [enable_xlib_glx=no])
831 AC_ARG_ENABLE([r600-llvm-compiler],
832 [AS_HELP_STRING([--enable-r600-llvm-compiler],
833 [Enable experimental LLVM backend for graphics shaders @<:@default=disabled@:>@])],
834 [enable_r600_llvm="$enableval"],
835 [enable_r600_llvm=no])
837 AC_ARG_ENABLE([gallium-tests],
838 [AS_HELP_STRING([--enable-gallium-tests],
839 [Enable optional Gallium tests) @<:@default=disabled@:>@])],
840 [enable_gallium_tests="$enableval"],
841 [enable_gallium_tests=no])
843 # Option for Gallium drivers
845 # Keep this in sync with the --with-gallium-drivers help string default value
846 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
848 AC_ARG_WITH([gallium-drivers],
849 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
850 [comma delimited Gallium drivers list, e.g.
851 "i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4"
852 @<:@default=r300,r600,svga,swrast@:>@])],
853 [with_gallium_drivers="$withval"],
854 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
856 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
857 # here so that the script doesn't choke on an unknown driver name later.
858 case "$with_gallium_drivers" in
859 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
860 no) with_gallium_drivers='' ;;
863 if test "x$enable_opengl" = xno -a \
864 "x$enable_gles1" = xno -a \
865 "x$enable_gles2" = xno -a \
866 "x$enable_nine" = xno -a \
867 "x$enable_xa" = xno -a \
868 "x$enable_xvmc" = xno -a \
869 "x$enable_vdpau" = xno -a \
870 "x$enable_omx" = xno -a \
871 "x$enable_va" = xno -a \
872 "x$enable_opencl" = xno; then
873 AC_MSG_ERROR([at least one API should be enabled])
876 # Building OpenGL ES1 and/or ES2 without OpenGL is not supported on mesa 9.0.x
877 if test "x$enable_opengl" = xno -a \
878 "x$enable_gles1" = xyes; then
879 AC_MSG_ERROR([Building OpenGL ES1 without OpenGL is not supported])
882 if test "x$enable_opengl" = xno -a \
883 "x$enable_gles2" = xyes; then
884 AC_MSG_ERROR([Building OpenGL ES2 without OpenGL is not supported])
887 AM_CONDITIONAL(HAVE_OPENGL, test "x$enable_opengl" = xyes)
888 AM_CONDITIONAL(HAVE_OPENGL_ES1, test "x$enable_gles1" = xyes)
889 AM_CONDITIONAL(HAVE_OPENGL_ES2, test "x$enable_gles2" = xyes)
890 AM_CONDITIONAL(NEED_OPENGL_COMMON, test "x$enable_opengl" = xyes -o \
891 "x$enable_gles1" = xyes -o \
892 "x$enable_gles2" = xyes)
894 if test "x$enable_glx" = xno; then
895 AC_MSG_WARN([GLX disabled, disabling Xlib-GLX])
899 if test "x$enable_dri$enable_xlib_glx" = xyesyes; then
900 AC_MSG_ERROR([DRI and Xlib-GLX cannot be built together])
903 if test "x$enable_opengl$enable_xlib_glx" = xnoyes; then
904 AC_MSG_ERROR([Xlib-GLX cannot be built without OpenGL])
907 # Disable GLX if OpenGL is not enabled
908 if test "x$enable_glx$enable_opengl" = xyesno; then
909 AC_MSG_WARN([OpenGL not enabled, disabling GLX])
913 # Disable GLX if DRI and Xlib-GLX are not enabled
914 if test "x$enable_glx" = xyes -a \
915 "x$enable_dri" = xno -a \
916 "x$enable_xlib_glx" = xno; then
917 AC_MSG_WARN([Neither DRI nor Xlib-GLX enabled, disabling GLX])
921 AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xyes -a \
922 "x$enable_dri" = xyes)
925 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
926 [have_libdrm=yes], [have_libdrm=no])
927 if test "x$have_libdrm" = xyes; then
928 DEFINES="$DEFINES -DHAVE_LIBDRM"
931 # Select which platform-dependent DRI code gets built
934 dri_platform='apple' ;;
936 dri_platform='none' ;;
938 dri_platform='drm' ;;
941 AM_CONDITIONAL(HAVE_DRICOMMON, test "x$enable_dri" = xyes )
942 AM_CONDITIONAL(HAVE_DRISW, test "x$enable_dri" = xyes )
943 AM_CONDITIONAL(HAVE_DRI2, test "x$enable_dri" = xyes -a "x$dri_platform" = xdrm -a "x$have_libdrm" = xyes )
944 AM_CONDITIONAL(HAVE_DRI3, test "x$enable_dri3" = xyes -a "x$dri_platform" = xdrm -a "x$have_libdrm" = xyes )
945 AM_CONDITIONAL(HAVE_APPLEDRI, test "x$enable_dri" = xyes -a "x$dri_platform" = xapple )
947 AC_ARG_ENABLE([shared-glapi],
948 [AS_HELP_STRING([--enable-shared-glapi],
949 [Enable shared glapi for OpenGL @<:@default=enabled@:>@])],
950 [enable_shared_glapi="$enableval"],
951 [enable_shared_glapi=yes])
953 case "x$enable_opengl$enable_gles1$enable_gles2" in
955 if test "x$enable_shared_glapi" = xno; then
956 AC_MSG_ERROR([shared GLAPI required when building two or more of
957 the following APIs - opengl, gles1 gles2])
962 AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes)
964 # Build the pipe-drivers as separate libraries/modules.
965 # Do not touch this unless you know what you are doing.
966 # XXX: Expose via configure option ?
967 enable_shared_pipe_drivers=no
970 dnl Driver specific build directories
973 if test -n "$with_gallium_drivers" -a "x$enable_glx$enable_xlib_glx" = xyesyes; then
974 NEED_WINSYS_XLIB="yes"
977 if test "x$enable_dri" = xyes; then
978 enable_gallium_loader="$enable_shared_pipe_drivers"
981 if test "x$enable_gallium_osmesa" = xyes; then
982 if ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
983 AC_MSG_ERROR([gallium_osmesa requires the gallium swrast driver])
985 if test "x$enable_osmesa" = xyes; then
986 AC_MSG_ERROR([Cannot enable both classic and Gallium OSMesa implementations])
990 AC_SUBST([MESA_LLVM])
999 PKG_CHECK_MODULES([LIBUDEV], [libudev >= $LIBUDEV_REQUIRED],
1000 have_libudev=yes, have_libudev=no)
1002 AC_ARG_ENABLE([sysfs],
1003 [AS_HELP_STRING([--enable-sysfs],
1004 [enable /sys PCI identification @<:@default=disabled@:>@])],
1005 [have_sysfs="$enableval"],
1009 if test "x$enable_dri" = xyes; then
1010 if test "$enable_static" = yes; then
1011 AC_MSG_ERROR([Cannot use static libraries for DRI drivers])
1014 # not a hard requirement as swrast does not depend on it
1015 if test "x$have_libdrm" = xyes; then
1016 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
1020 AC_ARG_ENABLE([driglx-direct],
1021 [AS_HELP_STRING([--disable-driglx-direct],
1022 [disable direct rendering in GLX and EGL for DRI \
1023 @<:@default=auto@:>@])],
1024 [driglx_direct="$enableval"],
1025 [driglx_direct="yes"])
1028 dnl libGL configuration per driver
1030 case "x$enable_glx$enable_xlib_glx" in
1033 dri_modules="x11 xext xcb"
1034 PKG_CHECK_MODULES([XLIBGL], [$dri_modules])
1035 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1036 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
1037 GL_LIB_DEPS="$XLIBGL_LIBS"
1038 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1039 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm $PTHREAD_LIBS"
1043 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
1045 # find the DRI deps for libGL
1046 dri_modules="x11 xext xdamage xfixes x11-xcb xcb xcb-glx >= $XCBGLX_REQUIRED"
1048 if test x"$driglx_direct" = xyes; then
1049 if test x"$dri_platform" = xdrm ; then
1050 DEFINES="$DEFINES -DGLX_USE_DRM"
1051 if test "x$have_libdrm" != xyes; then
1052 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
1055 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
1056 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
1057 if test x"$enable_dri3" = xyes; then
1058 PKG_CHECK_MODULES([DRI3PROTO], [dri3proto >= $DRI3PROTO_REQUIRED])
1059 PKG_CHECK_MODULES([PRESENTPROTO], [presentproto >= $PRESENTPROTO_REQUIRED])
1062 if test x"$enable_dri" = xyes; then
1063 dri_modules="$dri_modules xcb-dri2 >= $XCBDRI2_REQUIRED"
1066 if test x"$enable_dri3" = xyes; then
1067 PKG_CHECK_EXISTS([xcb >= $XCB_REQUIRED], [], AC_MSG_ERROR([DRI3 requires xcb >= $XCB_REQUIRED]))
1068 dri_modules="$dri_modules xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
1071 if test x"$dri_platform" = xapple ; then
1072 DEFINES="$DEFINES -DGLX_USE_APPLEGL"
1076 # add xf86vidmode if available
1077 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
1078 if test "$HAVE_XF86VIDMODE" = yes ; then
1079 dri_modules="$dri_modules xxf86vm"
1082 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
1083 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1084 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
1085 GL_LIB_DEPS="$DRIGL_LIBS"
1087 # need DRM libs, $PTHREAD_LIBS, etc.
1088 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1089 GL_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1094 if test "$have_libudev" = yes; then
1095 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1099 if test "$have_sysfs" = yes; then
1100 DEFINES="$DEFINES -DHAVE_SYSFS"
1104 # This is outside the case (above) so that it is invoked even for non-GLX
1106 AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes)
1108 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1109 GLESv1_CM_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1110 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1111 GLESv2_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1113 AC_SUBST([X11_INCLUDES])
1114 AC_SUBST([GL_LIB_DEPS])
1115 AC_SUBST([GL_PC_REQ_PRIV])
1116 AC_SUBST([GL_PC_LIB_PRIV])
1117 AC_SUBST([GL_PC_CFLAGS])
1118 AC_SUBST([DRI_PC_REQ_PRIV])
1119 AC_SUBST([GLESv1_CM_LIB_DEPS])
1120 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1121 AC_SUBST([GLESv2_LIB_DEPS])
1122 AC_SUBST([GLESv2_PC_LIB_PRIV])
1124 AC_SUBST([HAVE_XF86VIDMODE])
1129 case "x$enable_glx$enable_xlib_glx" in
1131 DEFINES="$DEFINES -DUSE_XSHM"
1134 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1135 if test "x$driglx_direct" = xyes; then
1136 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1145 AC_ARG_ENABLE([glx-tls],
1146 [AS_HELP_STRING([--enable-glx-tls],
1147 [enable TLS support in GLX @<:@default=disabled@:>@])],
1148 [GLX_USE_TLS="$enableval"],
1150 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1152 AS_IF([test "x$GLX_USE_TLS" = xyes -a "x$ax_pthread_ok" = xyes],
1153 [DEFINES="${DEFINES} -DGLX_USE_TLS"])
1155 dnl Read-only text section on x86 hardened platforms
1156 AC_ARG_ENABLE([glx-read-only-text],
1157 [AS_HELP_STRING([--enable-glx-read-only-text],
1158 [Disable writable .text section on x86 (decreases performance) @<:@default=disabled@:>@])],
1159 [enable_glx_read_only_text="$enableval"],
1160 [enable_glx_read_only_text=no])
1161 if test "x$enable_glx_read_only_text" = xyes; then
1162 DEFINES="$DEFINES -DGLX_X86_READONLY_TEXT"
1168 dnl Directory for DRI drivers
1169 AC_ARG_WITH([dri-driverdir],
1170 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1171 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1172 [DRI_DRIVER_INSTALL_DIR="$withval"],
1173 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1174 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1175 dnl Extra search path for DRI drivers
1176 AC_ARG_WITH([dri-searchpath],
1177 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1178 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1179 [DRI_DRIVER_SEARCH_DIR="$withval"],
1180 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1181 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1182 dnl Which drivers to build - default is chosen by platform
1183 AC_ARG_WITH([dri-drivers],
1184 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1185 [comma delimited classic DRI drivers list, e.g.
1186 "swrast,i965,radeon" @<:@default=auto@:>@])],
1187 [with_dri_drivers="$withval"],
1188 [with_dri_drivers=auto])
1190 if test "x$with_dri_drivers" = xauto; then
1191 if test "x$enable_opengl" = xyes -a "x$enable_dri" = xyes; then
1192 with_dri_drivers="yes"
1194 with_dri_drivers="no"
1197 if test "x$with_dri_drivers" = xno; then
1201 dnl If $with_dri_drivers is yes, drivers will be added through
1202 dnl platform checks. Set DEFINES and LIB_DEPS
1203 if test "x$enable_dri" = xyes; then
1204 # Platform specific settings and drivers to build
1207 DEFINES="$DEFINES -DHAVE_ALIAS"
1208 if test "x$enable_dri3" = xyes; then
1209 DEFINES="$DEFINES -DHAVE_DRI3"
1212 if test "x$have_pci_id" != xyes; then
1213 AC_MSG_ERROR([libudev-dev or sysfs required for building DRI])
1218 # Build only the drivers for cards that exist on PowerPC/sparc
1219 if test "x$with_dri_drivers" = "xyes"; then
1220 with_dri_drivers="r200 radeon swrast"
1225 *freebsd* | dragonfly* | *netbsd* | openbsd*)
1226 DEFINES="$DEFINES -DHAVE_ALIAS"
1229 DEFINES="$DEFINES -DHAVE_ALIAS"
1232 if test "x$with_dri_drivers" = "xyes"; then
1233 with_dri_drivers="swrast"
1237 DEFINES="$DEFINES -DGLX_ALIAS_UNSUPPORTED -DBUILDING_MESA"
1238 if test "x$with_dri_drivers" = "xyes"; then
1239 with_dri_drivers="swrast"
1245 if test "x$with_dri_drivers" = "xyes"; then
1246 with_dri_drivers="i915 i965 nouveau r200 radeon swrast"
1250 PKG_CHECK_MODULES([EXPAT], [expat], [],
1251 # expat version 2.0 and earlier do not provide expat.pc
1252 [AC_CHECK_HEADER([expat.h],[],
1253 [AC_MSG_ERROR([Expat headers required for DRI not found])])
1254 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1255 [AC_MSG_ERROR([Expat library required for DRI not found])])
1256 EXPAT_LIBS="-lexpat"])
1258 # put all the necessary libs together
1259 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1262 AC_SUBST([DRI_LIB_DEPS])
1265 dnl Duplicates in DRI_DIRS are removed by sorting it at the end of this block
1266 if test -n "$with_dri_drivers"; then
1267 if test "x$enable_opengl" != xyes; then
1268 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1271 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1272 for driver in $dri_drivers; do
1273 DRI_DIRS="$DRI_DIRS $driver"
1277 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1281 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1284 HAVE_NOUVEAU_DRI=yes;
1285 PKG_CHECK_MODULES([NVVIEUX], [libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED])
1288 HAVE_RADEON_DRI=yes;
1289 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1293 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1296 HAVE_SWRAST_DRI=yes;
1299 AC_MSG_ERROR([classic DRI driver '$driver' does not exist])
1303 DRI_DIRS=`echo $DRI_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1306 AM_CONDITIONAL(NEED_MEGADRIVER, test -n "$DRI_DIRS")
1307 AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_xlib_glx" = xyes -o \
1308 "x$enable_osmesa" = xyes -o \
1312 dnl OSMesa configuration
1315 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1316 AC_ARG_WITH([osmesa-bits],
1317 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1318 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1319 [osmesa_bits="$withval"],
1321 if test "x$osmesa_bits" != x8; then
1322 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1323 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1327 case "x$osmesa_bits" in
1329 OSMESA_LIB="${OSMESA_LIB}"
1332 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1333 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1336 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1340 if test "x$enable_osmesa" = xyes -o "x$enable_gallium_osmesa" = xyes; then
1341 # only link libraries with osmesa if shared
1342 if test "$enable_static" = no; then
1343 OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1347 OSMESA_PC_LIB_PRIV="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1350 AC_SUBST([OSMESA_LIB_DEPS])
1351 AC_SUBST([OSMESA_PC_REQ])
1352 AC_SUBST([OSMESA_PC_LIB_PRIV])
1355 dnl gbm configuration
1357 if test "x$enable_gbm" = xauto; then
1358 case "$with_egl_platforms" in
1365 if test "x$enable_gbm" = xyes; then
1366 if test "x$need_pci_id$have_pci_id" = xyesno; then
1367 AC_MSG_ERROR([gbm requires udev >= $LIBUDEV_REQUIRED or sysfs])
1370 if test "x$enable_dri" = xyes; then
1371 if test "x$enable_shared_glapi" = xno; then
1372 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1375 # Strictly speaking libgbm does not require --enable-dri, although
1376 # both of its backends do. Thus one can build libgbm without any
1377 # backends if --disable-dri is set.
1378 # To avoid unnecessary complexity of checking if at least one backend
1379 # is available when building, just mandate --enable-dri.
1380 AC_MSG_ERROR([gbm requires --enable-dri])
1383 AM_CONDITIONAL(HAVE_GBM, test "x$enable_gbm" = xyes)
1384 if test "x$need_pci_id$have_libudev" = xyesyes; then
1385 GBM_PC_REQ_PRIV="libudev >= $LIBUDEV_REQUIRED"
1389 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1390 AC_SUBST([GBM_PC_REQ_PRIV])
1391 AC_SUBST([GBM_PC_LIB_PRIV])
1394 dnl EGL configuration
1398 if test "x$enable_egl" = xyes; then
1399 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS $PTHREAD_LIBS"
1401 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1403 if test "$enable_static" != yes; then
1404 if test "x$enable_dri" = xyes; then
1405 HAVE_EGL_DRIVER_DRI2=1
1406 if test "x$enable_shared_glapi" = xno; then
1407 AC_MSG_ERROR([egl_dri2 requires --enable-shared-glapi])
1410 # Avoid building an "empty" libEGL. Drop/update this
1411 # when other backends (haiku?) come along.
1412 AC_MSG_ERROR([egl requires --enable-dri])
1417 AM_CONDITIONAL(HAVE_EGL, test "x$enable_egl" = xyes)
1418 AC_SUBST([EGL_LIB_DEPS])
1421 dnl XA configuration
1423 if test "x$enable_xa" = xyes; then
1424 if test "x$with_gallium_drivers" = xswrast; then
1426 Building xa requires at least one non swrast gallium driver.
1427 If you are looking to use libxatracker.so with the VMware driver,
1428 make sure to include svga in the gallium drivers list, apart from
1430 Example: ./configure --enable-xa --with-gallium-drivers=svga...])
1432 enable_gallium_loader=$enable_shared_pipe_drivers
1434 AM_CONDITIONAL(HAVE_ST_XA, test "x$enable_xa" = xyes)
1437 dnl Gallium G3DVL configuration
1439 if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then
1440 if test "x$enable_xvmc" = xauto; then
1441 PKG_CHECK_EXISTS([xvmc >= $XVMC_REQUIRED], [enable_xvmc=yes], [enable_xvmc=no])
1444 if test "x$enable_vdpau" = xauto; then
1445 PKG_CHECK_EXISTS([vdpau >= $VDPAU_REQUIRED], [enable_vdpau=yes], [enable_vdpau=no])
1448 if test "x$enable_omx" = xauto; then
1449 PKG_CHECK_EXISTS([libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED], [enable_omx=yes], [enable_omx=no])
1452 if test "x$enable_va" = xauto; then
1453 PKG_CHECK_EXISTS([libva >= $LIBVA_REQUIRED], [enable_va=yes], [enable_va=no])
1457 if test "x$enable_dri" = xyes -o \
1458 "x$enable_xvmc" = xyes -o \
1459 "x$enable_vdpau" = xyes -o \
1460 "x$enable_omx" = xyes -o \
1461 "x$enable_va" = xyes; then
1464 AM_CONDITIONAL(NEED_GALLIUM_VL, test "x$need_gallium_vl" = xyes)
1466 if test "x$enable_xvmc" = xyes -o \
1467 "x$enable_vdpau" = xyes -o \
1468 "x$enable_omx" = xyes -o \
1469 "x$enable_va" = xyes; then
1470 PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
1471 need_gallium_vl_winsys=yes
1473 AM_CONDITIONAL(NEED_GALLIUM_VL_WINSYS, test "x$need_gallium_vl_winsys" = xyes)
1475 if test "x$enable_xvmc" = xyes; then
1476 PKG_CHECK_MODULES([XVMC], [xvmc >= $XVMC_REQUIRED])
1477 enable_gallium_loader=$enable_shared_pipe_drivers
1479 AM_CONDITIONAL(HAVE_ST_XVMC, test "x$enable_xvmc" = xyes)
1481 if test "x$enable_vdpau" = xyes; then
1482 PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED])
1483 enable_gallium_loader=$enable_shared_pipe_drivers
1485 AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes)
1487 if test "x$enable_omx" = xyes; then
1488 PKG_CHECK_MODULES([OMX], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED])
1489 enable_gallium_loader=$enable_shared_pipe_drivers
1491 AM_CONDITIONAL(HAVE_ST_OMX, test "x$enable_omx" = xyes)
1493 if test "x$enable_va" = xyes; then
1494 PKG_CHECK_MODULES([VA], [libva >= $LIBVA_REQUIRED])
1495 enable_gallium_loader=$enable_shared_pipe_drivers
1497 AM_CONDITIONAL(HAVE_ST_VA, test "x$enable_va" = xyes)
1500 dnl Nine Direct3D9 configuration
1502 if test "x$enable_nine" = xyes; then
1503 if ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
1504 AC_MSG_ERROR([nine requires the gallium swrast driver])
1506 if test "x$with_gallium_drivers" = xswrast; then
1507 AC_MSG_ERROR([nine requires at least one non-swrast gallium driver])
1509 if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 6; then
1510 AC_MSG_ERROR([gcc >= 4.6 is required to build nine])
1513 if test "x$enable_dri3" = xno; then
1514 AC_MSG_WARN([using nine together with wine requires DRI3 enabled system])
1517 enable_gallium_loader=$enable_shared_pipe_drivers
1519 AM_CONDITIONAL(HAVE_ST_NINE, test "x$enable_nine" = xyes)
1522 dnl OpenCL configuration
1525 AC_ARG_WITH([clang-libdir],
1526 [AS_HELP_STRING([--with-clang-libdir],
1527 [Path to Clang libraries @<:@default=llvm-config --libdir@:>@])],
1528 [CLANG_LIBDIR="$withval"],
1531 PKG_CHECK_EXISTS([libclc], [have_libclc=yes], [have_libclc=no])
1532 AC_CHECK_LIB([elf], [elf_memory], [have_libelf=yes;ELF_LIB=-lelf])
1534 if test "x$enable_opencl" = xyes; then
1535 if test -z "$with_gallium_drivers"; then
1536 AC_MSG_ERROR([cannot enable OpenCL without Gallium])
1539 if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 7; then
1540 AC_MSG_ERROR([gcc >= 4.7 is required to build clover])
1543 if test "x$have_libclc" = xno; then
1544 AC_MSG_ERROR([pkg-config cannot find libclc.pc which is required to build clover.
1545 Make sure the directory containing libclc.pc is specified in your
1546 PKG_CONFIG_PATH environment variable.
1547 By default libclc.pc is installed to /usr/local/share/pkgconfig/])
1549 LIBCLC_INCLUDEDIR=`$PKG_CONFIG --variable=includedir libclc`
1550 LIBCLC_LIBEXECDIR=`$PKG_CONFIG --variable=libexecdir libclc`
1551 AC_SUBST([LIBCLC_INCLUDEDIR])
1552 AC_SUBST([LIBCLC_LIBEXECDIR])
1555 # XXX: Use $enable_shared_pipe_drivers once converted to use static/shared pipe-drivers
1556 enable_gallium_loader=yes
1558 if test "x$enable_opencl_icd" = xyes; then
1559 OPENCL_LIBNAME="MesaOpenCL"
1561 OPENCL_LIBNAME="OpenCL"
1564 if test "x$have_libelf" != xyes; then
1565 AC_MSG_ERROR([Clover requires libelf])
1568 AM_CONDITIONAL(HAVE_CLOVER, test "x$enable_opencl" = xyes)
1569 AM_CONDITIONAL(HAVE_CLOVER_ICD, test "x$enable_opencl_icd" = xyes)
1570 AC_SUBST([OPENCL_LIBNAME])
1573 dnl Gallium configuration
1575 AM_CONDITIONAL(HAVE_GALLIUM, test -n "$with_gallium_drivers")
1577 AC_SUBST([LLVM_BINDIR])
1578 AC_SUBST([LLVM_CFLAGS])
1579 AC_SUBST([LLVM_CPPFLAGS])
1580 AC_SUBST([LLVM_CXXFLAGS])
1581 AC_SUBST([LLVM_LIBDIR])
1582 AC_SUBST([LLVM_LIBS])
1583 AC_SUBST([LLVM_LDFLAGS])
1584 AC_SUBST([LLVM_INCLUDEDIR])
1585 AC_SUBST([LLVM_VERSION])
1586 AC_SUBST([CLANG_RESOURCE_DIR])
1588 case "x$enable_opengl$enable_gles1$enable_gles2" in
1590 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1594 AC_SUBST([VG_LIB_DEPS])
1595 AC_SUBST([EGL_CLIENT_APIS])
1598 dnl EGL Platforms configuration
1600 AC_ARG_WITH([egl-platforms],
1601 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1602 [comma delimited native platforms libEGL supports, e.g.
1603 "x11,drm" @<:@default=auto@:>@])],
1604 [with_egl_platforms="$withval"],
1605 [if test "x$enable_egl" = xyes; then
1606 with_egl_platforms="x11"
1608 with_egl_platforms=""
1611 if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then
1612 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1615 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland_scanner],
1616 WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland_scanner`,
1618 if test "x$WAYLAND_SCANNER" = x; then
1619 AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner])
1622 # Do per-EGL platform setups and checks
1623 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1624 for plat in $egl_platforms; do
1627 test "x$have_libdrm" != xyes &&
1628 AC_MSG_ERROR([EGL platform wayland requires libdrm >= $LIBDRM_REQUIRED])
1630 PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED])
1632 if test "x$WAYLAND_SCANNER" = x; then
1633 AC_MSG_ERROR([wayland-scanner is needed to compile the wayland egl platform])
1638 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED xcb-xfixes])
1642 test "x$enable_gbm" = "xno" &&
1643 AC_MSG_ERROR([EGL platform drm needs gbm])
1644 test "x$have_libdrm" != xyes &&
1645 AC_MSG_ERROR([EGL platform drm requires libdrm >= $LIBDRM_REQUIRED])
1649 test "x$have_libdrm" != xyes &&
1650 AC_MSG_ERROR([EGL platform surfaceless requires libdrm >= $LIBDRM_REQUIRED])
1654 AC_MSG_ERROR([EGL platform '$plat' does not exist])
1658 case "$plat$need_pci_id$have_pci_id" in
1659 waylandyesno|drmyesno)
1660 AC_MSG_ERROR([cannot build $plat platform without udev >= $LIBUDEV_REQUIRED or sysfs]) ;;
1664 # libEGL wants to default to the first platform specified in
1665 # ./configure. parse that here.
1666 if test "x$egl_platforms" != "x"; then
1667 FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr '[[a-z]]' '[[A-Z]]'`
1668 EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS"
1670 EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
1673 AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep -q 'x11')
1674 AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep -q 'wayland')
1675 AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep -q 'drm')
1676 AM_CONDITIONAL(HAVE_EGL_PLATFORM_SURFACELESS, echo "$egl_platforms" | grep -q 'surfaceless')
1677 AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep -q 'null')
1679 AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x")
1681 AC_SUBST([EGL_NATIVE_PLATFORM])
1682 AC_SUBST([EGL_CFLAGS])
1684 # If we don't have the X11 platform, set this define so we don't try to include
1686 if ! echo "$egl_platforms" | grep -q 'x11'; then
1687 DEFINES="$DEFINES -DMESA_EGL_NO_X11_HEADERS"
1688 GL_PC_CFLAGS="$GL_PC_CFLAGS -DMESA_EGL_NO_X11_HEADERS"
1694 AC_ARG_ENABLE([gallium-llvm],
1695 [AS_HELP_STRING([--enable-gallium-llvm],
1696 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1697 [enable_gallium_llvm="$enableval"],
1698 [enable_gallium_llvm=auto])
1700 AC_ARG_ENABLE([llvm-shared-libs],
1701 [AS_HELP_STRING([--enable-llvm-shared-libs],
1702 [link with LLVM shared libraries @<:@default=enabled@:>@])],
1703 [enable_llvm_shared_libs="$enableval"],
1704 [enable_llvm_shared_libs=yes])
1706 AC_ARG_WITH([llvm-prefix],
1707 [AS_HELP_STRING([--with-llvm-prefix],
1708 [Prefix for LLVM installations in non-standard locations])],
1709 [llvm_prefix="$withval"],
1713 # Call this inside ` ` to get the return value.
1714 # $1 is the llvm-config command with arguments.
1715 strip_unwanted_llvm_flags() {
1716 # Use \> (marks the end of the word)
1718 -e 's/-DNDEBUG\>//g' \
1719 -e 's/-D_GNU_SOURCE\>//g' \
1720 -e 's/-pedantic\>//g' \
1721 -e 's/-Wcovered-switch-default\>//g' \
1725 -e 's/-Wcast-qual\>//g' \
1726 -e 's/-Woverloaded-virtual\>//g' \
1727 -e 's/-fcolor-diagnostics\>//g' \
1728 -e 's/-fdata-sections\>//g' \
1729 -e 's/-ffunction-sections\>//g' \
1730 -e 's/-fno-exceptions\>//g' \
1731 -e 's/-fomit-frame-pointer\>//g' \
1732 -e 's/-fvisibility-inlines-hidden\>//g' \
1734 -e 's/-fstack-protector-strong\>//g'
1737 llvm_check_version_for() {
1738 if test "${LLVM_VERSION_INT}${LLVM_VERSION_PATCH}" -lt "${1}0${2}${3}"; then
1739 AC_MSG_ERROR([LLVM $1.$2.$3 or newer is required for $4])
1745 if test -z "$with_gallium_drivers"; then
1746 enable_gallium_llvm=no
1748 if test "x$enable_gallium_llvm" = xauto; then
1750 i*86|x86_64|amd64) enable_gallium_llvm=yes;;
1753 if test "x$enable_gallium_llvm" = xyes; then
1754 if test -n "$llvm_prefix"; then
1755 AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"])
1757 AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no])
1760 if test "x$LLVM_CONFIG" != xno; then
1761 LLVM_VERSION=`$LLVM_CONFIG --version | egrep -o '^[[0-9.]]+'`
1762 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1763 LLVM_BINDIR=`$LLVM_CONFIG --bindir`
1764 LLVM_CPPFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cppflags"`
1765 LLVM_CFLAGS=$LLVM_CPPFLAGS # CPPFLAGS seem to be sufficient
1766 LLVM_CXXFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cxxflags"`
1767 LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir`
1768 LLVM_LIBDIR=`$LLVM_CONFIG --libdir`
1770 AC_COMPUTE_INT([LLVM_VERSION_MAJOR], [LLVM_VERSION_MAJOR],
1771 [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
1772 AC_COMPUTE_INT([LLVM_VERSION_MINOR], [LLVM_VERSION_MINOR],
1773 [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
1775 LLVM_VERSION_PATCH=`echo $LLVM_VERSION | cut -d. -f3 | egrep -o '^[[0-9]]+'`
1776 if test -z "$LLVM_VERSION_PATCH"; then
1777 LLVM_VERSION_PATCH=0
1780 if test -n "${LLVM_VERSION_MAJOR}"; then
1781 LLVM_VERSION_INT="${LLVM_VERSION_MAJOR}0${LLVM_VERSION_MINOR}"
1783 LLVM_VERSION_INT=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/\10\2/g'`
1786 LLVM_REQUIRED_VERSION_MAJOR="3"
1787 LLVM_REQUIRED_VERSION_MINOR="3"
1788 if test "$LLVM_VERSION_INT" -lt "${LLVM_REQUIRED_VERSION_MAJOR}0${LLVM_REQUIRED_VERSION_MINOR}"; then
1789 AC_MSG_ERROR([LLVM $LLVM_REQUIRED_VERSION_MAJOR.$LLVM_REQUIRED_VERSION_MINOR or newer is required])
1792 LLVM_COMPONENTS="engine bitwriter mcjit mcdisassembler"
1794 if test "x$enable_opencl" = xyes; then
1795 llvm_check_version_for "3" "5" "0" "opencl"
1797 LLVM_COMPONENTS="${LLVM_COMPONENTS} all-targets ipo linker instrumentation"
1798 LLVM_COMPONENTS="${LLVM_COMPONENTS} irreader option objcarcopts profiledata"
1800 DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DMESA_LLVM_VERSION_PATCH=$LLVM_VERSION_PATCH"
1803 dnl Check for Clang internal headers
1804 if test "x$enable_opencl" = xyes; then
1805 if test -z "$CLANG_LIBDIR"; then
1806 CLANG_LIBDIR=${LLVM_LIBDIR}
1808 CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
1809 AS_IF([test ! -f "$CLANG_RESOURCE_DIR/include/stddef.h"],
1810 [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.])])
1820 if test "x$enable_opencl" = xyes; then
1821 AC_MSG_ERROR([cannot enable OpenCL without LLVM])
1825 dnl Directory for XVMC libs
1826 AC_ARG_WITH([xvmc-libdir],
1827 [AS_HELP_STRING([--with-xvmc-libdir=DIR],
1828 [directory for the XVMC libraries @<:@default=${libdir}@:>@])],
1829 [XVMC_LIB_INSTALL_DIR="$withval"],
1830 [XVMC_LIB_INSTALL_DIR='${libdir}'])
1831 AC_SUBST([XVMC_LIB_INSTALL_DIR])
1836 if test "x$enable_gallium_tests" = xyes; then
1837 # XXX: Use $enable_shared_pipe_drivers once converted to use static/shared pipe-drivers
1838 enable_gallium_loader=yes
1840 AM_CONDITIONAL(HAVE_GALLIUM_TESTS, test "x$enable_gallium_tests" = xyes)
1842 dnl Directory for VDPAU libs
1843 AC_ARG_WITH([vdpau-libdir],
1844 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1845 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1846 [VDPAU_LIB_INSTALL_DIR="$withval"],
1847 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1848 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1850 dnl Directory for OMX libs
1852 AC_ARG_WITH([omx-libdir],
1853 [AS_HELP_STRING([--with-omx-libdir=DIR],
1854 [directory for the OMX libraries])],
1855 [OMX_LIB_INSTALL_DIR="$withval"],
1856 [OMX_LIB_INSTALL_DIR=`$PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libomxil-bellagio`])
1857 AC_SUBST([OMX_LIB_INSTALL_DIR])
1859 dnl Directory for VA libs
1861 AC_ARG_WITH([va-libdir],
1862 [AS_HELP_STRING([--with-va-libdir=DIR],
1863 [directory for the VA libraries @<:@${libdir}/dri@:>@])],
1864 [VA_LIB_INSTALL_DIR="$withval"],
1865 [VA_LIB_INSTALL_DIR="${libdir}/dri"])
1866 AC_SUBST([VA_LIB_INSTALL_DIR])
1868 AC_ARG_WITH([d3d-libdir],
1869 [AS_HELP_STRING([--with-d3d-libdir=DIR],
1870 [directory for the D3D modules @<:@${libdir}/d3d@:>@])],
1871 [D3D_DRIVER_INSTALL_DIR="$withval"],
1872 [D3D_DRIVER_INSTALL_DIR="${libdir}/d3d"])
1873 AC_SUBST([D3D_DRIVER_INSTALL_DIR])
1876 dnl Gallium helper functions
1878 gallium_require_drm() {
1879 if test "x$have_libdrm" != xyes; then
1880 AC_MSG_ERROR([$1 requires libdrm >= $LIBDRM_REQUIRED])
1884 gallium_require_llvm() {
1885 if test "x$MESA_LLVM" = x0; then
1886 case "$host" in *gnux32) return;; esac
1888 i*86|x86_64|amd64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1893 gallium_require_drm_loader() {
1894 if test "x$enable_gallium_loader" = xyes; then
1895 if test "x$need_pci_id$have_pci_id" = xyesno; then
1896 AC_MSG_ERROR([Gallium drm loader requires libudev >= $LIBUDEV_REQUIRED or sysfs])
1898 enable_gallium_drm_loader=yes
1900 if test "x$enable_va" = xyes && test "x$7" != x; then
1901 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1906 case "$with_egl_platforms" in
1910 AC_MSG_ERROR([--with-egl-platforms=drm is required to build the $1 driver.])
1913 if test "x$enable_gbm" != xyes; then
1914 AC_MSG_ERROR([--enable-gbm is required to build the $1 driver.])
1918 radeon_llvm_check() {
1919 if test ${LLVM_VERSION_INT} -lt 307; then
1920 amdgpu_llvm_target_name='r600'
1922 amdgpu_llvm_target_name='amdgpu'
1924 if test "x$enable_gallium_llvm" != "xyes"; then
1925 AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
1927 llvm_check_version_for "3" "4" "2" $1
1928 if test true && $LLVM_CONFIG --targets-built | grep -iqvw $amdgpu_llvm_target_name ; then
1929 AC_MSG_ERROR([LLVM $amdgpu_llvm_target_name not enabled in your LLVM build.])
1931 LLVM_COMPONENTS="${LLVM_COMPONENTS} $amdgpu_llvm_target_name bitreader ipo"
1932 NEED_RADEON_LLVM=yes
1933 if test "x$have_libelf" != xyes; then
1934 AC_MSG_ERROR([$1 requires libelf when using llvm])
1938 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1939 if test -n "$with_gallium_drivers"; then
1940 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1941 for driver in $gallium_drivers; do
1944 HAVE_GALLIUM_SVGA=yes
1945 gallium_require_drm "svga"
1946 gallium_require_drm_loader
1949 HAVE_GALLIUM_I915=yes
1950 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1951 gallium_require_drm "Gallium i915"
1952 gallium_require_drm_loader
1955 HAVE_GALLIUM_ILO=yes
1956 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1957 gallium_require_drm "Gallium i965/ilo"
1958 gallium_require_drm_loader
1961 HAVE_GALLIUM_R300=yes
1962 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1963 gallium_require_drm "Gallium R300"
1964 gallium_require_drm_loader
1965 gallium_require_llvm "Gallium R300"
1968 HAVE_GALLIUM_R600=yes
1969 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1970 gallium_require_drm "Gallium R600"
1971 gallium_require_drm_loader
1972 if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then
1973 radeon_llvm_check "r600g"
1974 LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
1976 if test "x$enable_r600_llvm" = xyes; then
1977 USE_R600_LLVM_COMPILER=yes;
1979 if test "x$enable_opencl" = xyes; then
1980 LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
1984 HAVE_GALLIUM_RADEONSI=yes
1985 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1986 PKG_CHECK_MODULES([AMDGPU], [libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED])
1987 gallium_require_drm "radeonsi"
1988 gallium_require_drm_loader
1989 radeon_llvm_check "radeonsi"
1990 require_egl_drm "radeonsi"
1993 HAVE_GALLIUM_NOUVEAU=yes
1994 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1995 gallium_require_drm "nouveau"
1996 gallium_require_drm_loader
1999 HAVE_GALLIUM_FREEDRENO=yes
2000 PKG_CHECK_MODULES([FREEDRENO], [libdrm_freedreno >= $LIBDRM_FREEDRENO_REQUIRED])
2001 gallium_require_drm "freedreno"
2002 gallium_require_drm_loader
2005 HAVE_GALLIUM_SOFTPIPE=yes
2006 if test "x$MESA_LLVM" = x1; then
2007 HAVE_GALLIUM_LLVMPIPE=yes
2011 HAVE_GALLIUM_VC4=yes
2012 gallium_require_drm "vc4"
2013 gallium_require_drm_loader
2016 i?86 | x86_64 | amd64)
2017 USE_VC4_SIMULATOR=yes
2022 AC_MSG_ERROR([Unknown Gallium driver: $driver])
2028 dnl Set LLVM_LIBS - This is done after the driver configuration so
2029 dnl that drivers can add additional components to LLVM_COMPONENTS.
2030 dnl Previously, gallium drivers were updating LLVM_LIBS directly
2031 dnl by calling llvm-config --libs ${DRIVER_LLVM_COMPONENTS}, but
2032 dnl this was causing the same libraries to be appear multiple times
2035 if test "x$MESA_LLVM" != x0; then
2037 LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
2039 if test "x$enable_llvm_shared_libs" = xyes; then
2040 dnl We can't use $LLVM_VERSION because it has 'svn' stripped out,
2041 LLVM_SO_NAME=LLVM-`$LLVM_CONFIG --version`
2042 AS_IF([test -f "$LLVM_LIBDIR/lib$LLVM_SO_NAME.so"], [llvm_have_one_so=yes])
2044 if test "x$llvm_have_one_so" = xyes; then
2045 dnl LLVM was built using auto*, so there is only one shared object.
2046 LLVM_LIBS="-l$LLVM_SO_NAME"
2048 dnl If LLVM was built with CMake, there will be one shared object per
2050 AS_IF([test ! -f "$LLVM_LIBDIR/libLLVMTarget.so"],
2051 [AC_MSG_ERROR([Could not find llvm shared libraries:
2052 Please make sure you have built llvm with the --enable-shared option
2053 and that your llvm libraries are installed in $LLVM_LIBDIR
2054 If you have installed your llvm libraries to a different directory you
2055 can use the --with-llvm-prefix= configure flag to specify this directory.
2056 NOTE: Mesa is attempting to use llvm shared libraries by default.
2057 If you do not want to build with llvm shared libraries and instead want to
2058 use llvm static libraries then add --disable-llvm-shared-libs to your configure
2059 invocation and rebuild.])])
2061 dnl We don't need to update LLVM_LIBS in this case because the LLVM
2062 dnl install uses a shared object for each component and we have
2063 dnl already added all of these objects to LLVM_LIBS.
2066 AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues])
2067 dnl We need to link to llvm system libs when using static libs
2068 dnl However, only llvm 3.5+ provides --system-libs
2069 if test $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then
2070 LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`"
2075 AM_CONDITIONAL(HAVE_GALLIUM_SVGA, test "x$HAVE_GALLIUM_SVGA" = xyes)
2076 AM_CONDITIONAL(HAVE_GALLIUM_I915, test "x$HAVE_GALLIUM_I915" = xyes)
2077 AM_CONDITIONAL(HAVE_GALLIUM_ILO, test "x$HAVE_GALLIUM_ILO" = xyes)
2078 AM_CONDITIONAL(HAVE_GALLIUM_R300, test "x$HAVE_GALLIUM_R300" = xyes)
2079 AM_CONDITIONAL(HAVE_GALLIUM_R600, test "x$HAVE_GALLIUM_R600" = xyes)
2080 AM_CONDITIONAL(HAVE_GALLIUM_RADEONSI, test "x$HAVE_GALLIUM_RADEONSI" = xyes)
2081 AM_CONDITIONAL(HAVE_GALLIUM_RADEON_COMMON, test "x$HAVE_GALLIUM_R600" = xyes -o \
2082 "x$HAVE_GALLIUM_RADEONSI" = xyes)
2083 AM_CONDITIONAL(HAVE_GALLIUM_NOUVEAU, test "x$HAVE_GALLIUM_NOUVEAU" = xyes)
2084 AM_CONDITIONAL(HAVE_GALLIUM_FREEDRENO, test "x$HAVE_GALLIUM_FREEDRENO" = xyes)
2085 AM_CONDITIONAL(HAVE_GALLIUM_SOFTPIPE, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes)
2086 AM_CONDITIONAL(HAVE_GALLIUM_LLVMPIPE, test "x$HAVE_GALLIUM_LLVMPIPE" = xyes)
2087 AM_CONDITIONAL(HAVE_GALLIUM_VC4, test "x$HAVE_GALLIUM_VC4" = xyes)
2089 AM_CONDITIONAL(HAVE_GALLIUM_STATIC_TARGETS, test "x$enable_shared_pipe_drivers" = xno)
2091 # NOTE: anything using xcb or other client side libs ends up in separate
2092 # _CLIENT variables. The pipe loader is built in two variants,
2093 # one that is standalone and does not link any x client libs (for
2094 # use by XA tracker in particular, but could be used in any case
2095 # where communication with xserver is not desired).
2096 if test "x$enable_gallium_loader" = xyes; then
2097 if test "x$enable_dri" = xyes; then
2098 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRI"
2101 if test "x$enable_gallium_drm_loader" = xyes; then
2102 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRM"
2105 AC_SUBST([GALLIUM_PIPE_LOADER_DEFINES])
2108 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
2109 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
2110 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
2111 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
2112 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
2113 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
2115 AM_CONDITIONAL(NEED_RADEON_DRM_WINSYS, test "x$HAVE_GALLIUM_R300" = xyes -o \
2116 "x$HAVE_GALLIUM_R600" = xyes -o \
2117 "x$HAVE_GALLIUM_RADEONSI" = xyes)
2118 AM_CONDITIONAL(NEED_WINSYS_XLIB, test "x$NEED_WINSYS_XLIB" = xyes)
2119 AM_CONDITIONAL(NEED_RADEON_LLVM, test x$NEED_RADEON_LLVM = xyes)
2120 AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes)
2121 AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes)
2122 AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes)
2123 AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
2124 AM_CONDITIONAL(HAVE_MESA_LLVM, test x$MESA_LLVM = x1)
2125 AM_CONDITIONAL(USE_VC4_SIMULATOR, test x$USE_VC4_SIMULATOR = xyes)
2126 if test "x$USE_VC4_SIMULATOR" = xyes -a "x$HAVE_GALLIUM_ILO" = xyes; then
2127 AC_MSG_ERROR([VC4 simulator on x86 replaces i965 driver build, so ilo must be disabled.])
2132 AM_CONDITIONAL(HAVE_LIBDRM, test "x$have_libdrm" = xyes)
2133 AM_CONDITIONAL(HAVE_X11_DRIVER, test "x$enable_xlib_glx" = xyes)
2134 AM_CONDITIONAL(HAVE_OSMESA, test "x$enable_osmesa" = xyes)
2135 AM_CONDITIONAL(HAVE_GALLIUM_OSMESA, test "x$enable_gallium_osmesa" = xyes)
2137 AM_CONDITIONAL(HAVE_X86_ASM, test "x$asm_arch" = xx86 -o "x$asm_arch" = xx86_64)
2138 AM_CONDITIONAL(HAVE_X86_64_ASM, test "x$asm_arch" = xx86_64)
2139 AM_CONDITIONAL(HAVE_SPARC_ASM, test "x$asm_arch" = xsparc)
2141 AC_SUBST([NINE_MAJOR], 1)
2142 AC_SUBST([NINE_MINOR], 0)
2143 AC_SUBST([NINE_TINY], 0)
2144 AC_SUBST([NINE_VERSION], "$NINE_MAJOR.$NINE_MINOR.$NINE_TINY")
2146 AC_SUBST([VDPAU_MAJOR], 1)
2147 AC_SUBST([VDPAU_MINOR], 0)
2149 VA_MAJOR=`$PKG_CONFIG --modversion libva | $SED -n 's/\([[^\.]]*\)\..*$/\1/p'`
2150 VA_MINOR=`$PKG_CONFIG --modversion libva | $SED -n 's/.*\.\(.*\)\..*$/\1/p'`
2151 AC_SUBST([VA_MAJOR], $VA_MAJOR)
2152 AC_SUBST([VA_MINOR], $VA_MINOR)
2154 AC_SUBST([XVMC_MAJOR], 1)
2155 AC_SUBST([XVMC_MINOR], 0)
2157 XA_HEADER="$srcdir/src/gallium/state_trackers/xa/xa_tracker.h"
2158 XA_MAJOR=`grep "#define XA_TRACKER_VERSION_MAJOR" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_MAJOR //'`
2159 XA_MINOR=`grep "#define XA_TRACKER_VERSION_MINOR" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_MINOR //'`
2160 XA_TINY=`grep "#define XA_TRACKER_VERSION_PATCH" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_PATCH //'`
2162 AC_SUBST([XA_MAJOR], $XA_MAJOR)
2163 AC_SUBST([XA_MINOR], $XA_MINOR)
2164 AC_SUBST([XA_TINY], $XA_TINY)
2165 AC_SUBST([XA_VERSION], "$XA_MAJOR.$XA_MINOR.$XA_TINY")
2167 dnl Restore LDFLAGS and CPPFLAGS
2168 LDFLAGS="$_SAVE_LDFLAGS"
2169 CPPFLAGS="$_SAVE_CPPFLAGS"
2171 dnl Suppress clang's warnings about unused CFLAGS and CXXFLAGS
2172 if test "x$acv_mesa_CLANG" = xyes; then
2173 CFLAGS="$CFLAGS -Qunused-arguments"
2174 CXXFLAGS="$CXXFLAGS -Qunused-arguments"
2177 dnl Add user CFLAGS and CXXFLAGS
2178 CFLAGS="$CFLAGS $USER_CFLAGS"
2179 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
2181 dnl Substitute the config
2182 AC_CONFIG_FILES([Makefile
2186 src/egl/wayland/wayland-drm/Makefile
2187 src/egl/wayland/wayland-egl/Makefile
2188 src/egl/wayland/wayland-egl/wayland-egl.pc
2189 src/gallium/Makefile
2190 src/gallium/auxiliary/Makefile
2191 src/gallium/auxiliary/pipe-loader/Makefile
2192 src/gallium/drivers/freedreno/Makefile
2193 src/gallium/drivers/i915/Makefile
2194 src/gallium/drivers/ilo/Makefile
2195 src/gallium/drivers/llvmpipe/Makefile
2196 src/gallium/drivers/noop/Makefile
2197 src/gallium/drivers/nouveau/Makefile
2198 src/gallium/drivers/r300/Makefile
2199 src/gallium/drivers/r600/Makefile
2200 src/gallium/drivers/radeon/Makefile
2201 src/gallium/drivers/radeonsi/Makefile
2202 src/gallium/drivers/rbug/Makefile
2203 src/gallium/drivers/softpipe/Makefile
2204 src/gallium/drivers/svga/Makefile
2205 src/gallium/drivers/trace/Makefile
2206 src/gallium/drivers/vc4/Makefile
2207 src/gallium/state_trackers/clover/Makefile
2208 src/gallium/state_trackers/dri/Makefile
2209 src/gallium/state_trackers/glx/xlib/Makefile
2210 src/gallium/state_trackers/nine/Makefile
2211 src/gallium/state_trackers/omx/Makefile
2212 src/gallium/state_trackers/osmesa/Makefile
2213 src/gallium/state_trackers/va/Makefile
2214 src/gallium/state_trackers/vdpau/Makefile
2215 src/gallium/state_trackers/xa/Makefile
2216 src/gallium/state_trackers/xvmc/Makefile
2217 src/gallium/targets/d3dadapter9/Makefile
2218 src/gallium/targets/d3dadapter9/d3d.pc
2219 src/gallium/targets/dri/Makefile
2220 src/gallium/targets/libgl-xlib/Makefile
2221 src/gallium/targets/omx/Makefile
2222 src/gallium/targets/opencl/Makefile
2223 src/gallium/targets/opencl/mesa.icd
2224 src/gallium/targets/osmesa/Makefile
2225 src/gallium/targets/osmesa/osmesa.pc
2226 src/gallium/targets/pipe-loader/Makefile
2227 src/gallium/targets/va/Makefile
2228 src/gallium/targets/vdpau/Makefile
2229 src/gallium/targets/xa/Makefile
2230 src/gallium/targets/xa/xatracker.pc
2231 src/gallium/targets/xvmc/Makefile
2232 src/gallium/tests/trivial/Makefile
2233 src/gallium/tests/unit/Makefile
2234 src/gallium/winsys/freedreno/drm/Makefile
2235 src/gallium/winsys/i915/drm/Makefile
2236 src/gallium/winsys/intel/drm/Makefile
2237 src/gallium/winsys/nouveau/drm/Makefile
2238 src/gallium/winsys/radeon/drm/Makefile
2239 src/gallium/winsys/amdgpu/drm/Makefile
2240 src/gallium/winsys/svga/drm/Makefile
2241 src/gallium/winsys/sw/dri/Makefile
2242 src/gallium/winsys/sw/kms-dri/Makefile
2243 src/gallium/winsys/sw/null/Makefile
2244 src/gallium/winsys/sw/wrapper/Makefile
2245 src/gallium/winsys/sw/xlib/Makefile
2246 src/gallium/winsys/vc4/drm/Makefile
2251 src/glx/apple/Makefile
2252 src/glx/tests/Makefile
2256 src/mapi/es1api/glesv1_cm.pc
2257 src/mapi/es2api/glesv2.pc
2258 src/mapi/glapi/gen/Makefile
2261 src/mesa/drivers/dri/dri.pc
2262 src/mesa/drivers/dri/common/Makefile
2263 src/mesa/drivers/dri/common/xmlpool/Makefile
2264 src/mesa/drivers/dri/i915/Makefile
2265 src/mesa/drivers/dri/i965/Makefile
2266 src/mesa/drivers/dri/Makefile
2267 src/mesa/drivers/dri/nouveau/Makefile
2268 src/mesa/drivers/dri/r200/Makefile
2269 src/mesa/drivers/dri/radeon/Makefile
2270 src/mesa/drivers/dri/swrast/Makefile
2271 src/mesa/drivers/osmesa/Makefile
2272 src/mesa/drivers/osmesa/osmesa.pc
2273 src/mesa/drivers/x11/Makefile
2274 src/mesa/main/tests/Makefile
2276 src/util/tests/hash_table/Makefile])
2281 dnl Output some configuration info for the user
2284 echo " prefix: $prefix"
2285 echo " exec_prefix: $exec_prefix"
2286 echo " libdir: $libdir"
2287 echo " includedir: $includedir"
2291 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
2295 case "x$enable_osmesa$enable_gallium_osmesa" in
2297 echo " OSMesa: lib$OSMESA_LIB (Gallium)"
2300 echo " OSMesa: lib$OSMESA_LIB"
2308 if test "x$enable_dri" != xno; then
2309 echo " DRI platform: $dri_platform"
2310 if test -z "$DRI_DIRS"; then
2311 echo " DRI drivers: no"
2313 echo " DRI drivers: $DRI_DIRS"
2315 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
2318 case "x$enable_glx$enable_xlib_glx" in
2320 echo " GLX: Xlib-based"
2323 echo " GLX: DRI-based"
2326 echo " GLX: $enable_glx"
2332 echo " EGL: $enable_egl"
2333 if test "$enable_egl" = yes; then
2334 echo " EGL platforms: $egl_platforms"
2337 if test "x$HAVE_EGL_DRIVER_DRI2" != "x"; then
2338 egl_drivers="$egl_drivers builtin:egl_dri2"
2341 echo " EGL drivers: $egl_drivers"
2345 if test "x$MESA_LLVM" = x1; then
2347 echo " llvm-config: $LLVM_CONFIG"
2348 echo " llvm-version: $LLVM_VERSION"
2354 if test -n "$with_gallium_drivers"; then
2355 echo " Gallium: yes"
2363 echo " Shared libs: $enable_shared"
2364 echo " Static libs: $enable_static"
2365 echo " Shared-glapi: $enable_shared_glapi"
2367 dnl Compiler options
2368 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2369 cflags=`echo $CFLAGS | \
2370 $SED 's/^ *//;s/ */ /;s/ *$//'`
2371 cxxflags=`echo $CXXFLAGS | \
2372 $SED 's/^ *//;s/ */ /;s/ *$//'`
2373 defines=`echo $DEFINES | $SED 's/^ *//;s/ */ /;s/ *$//'`
2375 echo " CFLAGS: $cflags"
2376 echo " CXXFLAGS: $cxxflags"
2377 echo " Macros: $defines"
2379 if test "x$MESA_LLVM" = x1; then
2380 echo " LLVM_CFLAGS: $LLVM_CFLAGS"
2381 echo " LLVM_CXXFLAGS: $LLVM_CXXFLAGS"
2382 echo " LLVM_CPPFLAGS: $LLVM_CPPFLAGS"
2383 echo " LLVM_LDFLAGS: $LLVM_LDFLAGS"
2386 echo " PYTHON2: $PYTHON2"
2389 echo " Run '${MAKE-make}' to build Mesa"