1 dnl Process this file with autoconf to create configure.
5 dnl Tell the user about autoconf.html in the --help output
6 m4_divert_once([HELP_END], [
7 See docs/autoconf.html for more details on the options for Mesa.])
9 m4_define(MESA_VERSION, m4_normalize(m4_include(VERSION)))
10 AC_INIT([Mesa], [MESA_VERSION],
11 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
12 AC_CONFIG_AUX_DIR([bin])
13 AC_CONFIG_MACRO_DIR([m4])
15 AM_INIT_AUTOMAKE([foreign])
17 # Support silent build rules, requires at least automake-1.11. Disable
18 # by either passing --disable-silent-rules to configure or passing V=1
20 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
21 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
23 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
25 dnl Set internal versions
27 AC_SUBST([OSMESA_VERSION])
29 dnl Versions for external dependencies
30 LIBDRM_REQUIRED=2.4.38
31 LIBDRM_RADEON_REQUIRED=2.4.56
32 LIBDRM_INTEL_REQUIRED=2.4.52
33 LIBDRM_NVVIEUX_REQUIRED=2.4.33
34 LIBDRM_NOUVEAU_REQUIRED="2.4.33 libdrm >= 2.4.41"
35 LIBDRM_FREEDRENO_REQUIRED=2.4.55
36 DRI2PROTO_REQUIRED=2.6
37 DRI3PROTO_REQUIRED=1.0
38 PRESENTPROTO_REQUIRED=1.0
40 GLPROTO_REQUIRED=1.4.14
41 LIBOMXIL_BELLAGIO_REQUIRED=0.0
43 WAYLAND_REQUIRED=1.2.0
46 XSHMFENCE_REQUIRED=1.1
55 AC_CHECK_PROGS([MAKE], [gmake make])
56 AC_CHECK_PROGS([PYTHON2], [python2 python])
61 LT_INIT([disable-static])
64 AS_IF([test ! -f "$srcdir/src/glsl/glcpp/glcpp-parse.c"],
65 [AC_MSG_ERROR([bison not found - unable to compile glcpp-parse.y])]))
67 AS_IF([test ! -f "$srcdir/src/glsl/glcpp/glcpp-lex.c"],
68 [AC_MSG_ERROR([flex not found - unable to compile glcpp-lex.l])]))
70 AC_PATH_PROG([PERL], [perl])
72 AC_CHECK_PROG(INDENT, indent, indent, cat)
73 if test "x$INDENT" != "xcat"; then
74 AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -TGLubyte -TGLbyte -TBool')
79 dnl We need a POSIX shell for parts of the build. Assume we have one
83 # Solaris /bin/sh is too old/non-POSIX compliant
84 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
89 dnl clang is mostly GCC-compatible, but its version is much lower,
90 dnl so we have to check for it.
91 AC_MSG_CHECKING([if compiling with clang])
94 [AC_LANG_PROGRAM([], [[
99 [acv_mesa_CLANG=yes], [acv_mesa_CLANG=no])
101 AC_MSG_RESULT([$acv_mesa_CLANG])
103 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
104 dnl versions are explictly not supported.
106 if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
107 AC_MSG_CHECKING([whether gcc version is sufficient])
111 GCC_VERSION=`$CC -dumpversion`
112 if test $? -eq 0; then
113 GCC_VERSION_MAJOR=`echo $GCC_VERSION | cut -d. -f1`
114 GCC_VERSION_MINOR=`echo $GCC_VERSION | cut -d. -f2`
117 if test $GCC_VERSION_MAJOR -lt 3 -o $GCC_VERSION_MAJOR -eq 3 -a $GCC_VERSION_MINOR -lt 3 ; then
119 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
124 if test "x$cross_compiling" = xyes; then
129 dnl Check for compiler builtins
130 AX_GCC_BUILTIN([__builtin_bswap32])
131 AX_GCC_BUILTIN([__builtin_bswap64])
133 AM_CONDITIONAL([GEN_ASM_OFFSETS], test "x$GEN_ASM_OFFSETS" = xyes)
135 dnl Make sure the pkg-config macros are defined
136 m4_ifndef([PKG_PROG_PKG_CONFIG],
137 [m4_fatal([Could not locate the pkg-config autoconf macros.
138 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
139 are in a different location, try setting the environment variable
140 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
141 PKG_PROG_PKG_CONFIG()
143 dnl LIB_DIR - library basename
144 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
147 dnl Cache LDFLAGS and CPPFLAGS so we can add to them and restore later
148 _SAVE_LDFLAGS="$LDFLAGS"
149 _SAVE_CPPFLAGS="$CPPFLAGS"
152 DEFINES="-DUSE_EXTERNAL_DXTN_LIB=1"
156 DEFINES="$DEFINES -D_GNU_SOURCE -DHAVE_PTHREAD"
159 DEFINES="$DEFINES -DHAVE_PTHREAD -DSVR4"
162 DEFINES="$DEFINES -D_XOPEN_SOURCE=700 -DHAVE_PTHREAD"
166 dnl Add flags for gcc and g++
167 if test "x$GCC" = xyes; then
168 CFLAGS="$CFLAGS -Wall -std=c99"
170 # Enable -Werror=implicit-function-declaration and
171 # -Werror=missing-prototypes, if available, or otherwise, just
172 # -Wmissing-prototypes. This is particularly useful to avoid
173 # generating a loadable driver module that has undefined symbols.
174 save_CFLAGS="$CFLAGS"
175 AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
176 CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
177 CFLAGS="$CFLAGS -Werror=missing-prototypes"
178 AC_LINK_IFELSE([AC_LANG_PROGRAM()],
179 AC_MSG_RESULT([yes]),
180 [CFLAGS="$save_CFLAGS -Wmissing-prototypes";
181 AC_MSG_RESULT([no])]);
183 # Enable -fvisibility=hidden if using a gcc that supports it
184 save_CFLAGS="$CFLAGS"
185 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
186 VISIBILITY_CFLAGS="-fvisibility=hidden"
187 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
188 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
189 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
191 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
194 # Work around aliasing bugs - developers should comment this out
195 CFLAGS="$CFLAGS -fno-strict-aliasing"
197 # gcc's builtin memcmp is slower than glibc's
198 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
199 CFLAGS="$CFLAGS -fno-builtin-memcmp"
201 if test "x$GXX" = xyes; then
202 CXXFLAGS="$CXXFLAGS -Wall"
204 # Enable -fvisibility=hidden if using a gcc that supports it
205 save_CXXFLAGS="$CXXFLAGS"
206 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
207 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
208 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
210 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
211 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
214 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
215 CXXFLAGS=$save_CXXFLAGS
217 # Work around aliasing bugs - developers should comment this out
218 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
220 # gcc's builtin memcmp is slower than glibc's
221 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
222 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
225 dnl even if the compiler appears to support it, using visibility attributes isn't
226 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
230 VISIBILITY_CXXFLAGS=""
234 AC_SUBST([VISIBILITY_CFLAGS])
235 AC_SUBST([VISIBILITY_CXXFLAGS])
238 dnl Optional flags, check for compiler support
240 AX_CHECK_COMPILE_FLAG([-msse4.1], [SSE41_SUPPORTED=1], [SSE41_SUPPORTED=0])
241 if test "x$SSE41_SUPPORTED" = x1; then
242 DEFINES="$DEFINES -DUSE_SSE41"
244 AM_CONDITIONAL([SSE41_SUPPORTED], [test x$SSE41_SUPPORTED = x1])
247 dnl Hacks to enable 32 or 64 bit build
249 AC_ARG_ENABLE([32-bit],
250 [AS_HELP_STRING([--enable-32-bit],
251 [build 32-bit libraries @<:@default=auto@:>@])],
252 [enable_32bit="$enableval"],
255 if test "x$enable_32bit" = xyes; then
256 if test "x$GCC" = xyes; then
257 CFLAGS="$CFLAGS -m32"
258 CCASFLAGS="$CCASFLAGS -m32"
260 if test "x$GXX" = xyes; then
261 CXXFLAGS="$CXXFLAGS -m32"
264 AC_ARG_ENABLE([64-bit],
265 [AS_HELP_STRING([--enable-64-bit],
266 [build 64-bit libraries @<:@default=auto@:>@])],
267 [enable_64bit="$enableval"],
270 if test "x$enable_64bit" = xyes; then
271 if test "x$GCC" = xyes; then
272 CFLAGS="$CFLAGS -m64"
274 if test "x$GXX" = xyes; then
275 CXXFLAGS="$CXXFLAGS -m64"
279 dnl Can't have static and shared libraries, default to static if user
280 dnl explicitly requested. If both disabled, set to static since shared
281 dnl was explicitly requested.
282 case "x$enable_static$enable_shared" in
284 AC_MSG_WARN([Cannot build static and shared libraries, disabling shared])
288 AC_MSG_WARN([Cannot disable both static and shared libraries, enabling shared])
293 AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes)
296 dnl other compiler options
298 AC_ARG_ENABLE([debug],
299 [AS_HELP_STRING([--enable-debug],
300 [use debug compiler flags and macros @<:@default=disabled@:>@])],
301 [enable_debug="$enableval"],
304 if test "x$enable_debug" = xyes; then
305 DEFINES="$DEFINES -DDEBUG"
306 if test "x$GCC" = xyes; then
307 if ! echo "$CFLAGS" | grep -q -e '-g'; then
310 if ! echo "$CFLAGS" | grep -q -e '-O'; then
314 if test "x$GXX" = xyes; then
315 if ! echo "$CXXFLAGS" | grep -q -e '-g'; then
316 CXXFLAGS="$CXXFLAGS -g"
318 if ! echo "$CXXFLAGS" | grep -q -e '-O'; then
319 CXXFLAGS="$CXXFLAGS -O0"
325 dnl Check if linker supports -Bsymbolic
327 save_LDFLAGS=$LDFLAGS
328 LDFLAGS="$LDFLAGS -Wl,-Bsymbolic"
329 AC_MSG_CHECKING([if ld supports -Bsymbolic])
331 [AC_LANG_SOURCE([int main() { return 0;}])],
332 [AC_MSG_RESULT([yes])
333 BSYMBOLIC="-Wl,-Bsymbolic";],
336 LDFLAGS=$save_LDFLAGS
338 AC_SUBST([BSYMBOLIC])
341 dnl Check if linker supports garbage collection
343 save_LDFLAGS=$LDFLAGS
344 LDFLAGS="$LDFLAGS -Wl,--gc-sections"
345 AC_MSG_CHECKING([whether ld supports --gc-sections])
347 [AC_LANG_SOURCE([static char UnusedFunc() { return 5; } int main() { return 0;}])],
348 [AC_MSG_RESULT([yes])
349 GC_SECTIONS="-Wl,--gc-sections";],
352 LDFLAGS=$save_LDFLAGS
354 AC_SUBST([GC_SECTIONS])
357 dnl OpenBSD does not have DT_NEEDED entries for libc by design
358 dnl so when these flags are passed to ld via libtool the checks will fail
362 LD_NO_UNDEFINED="" ;;
364 LD_NO_UNDEFINED="-Wl,--no-undefined" ;;
367 AC_SUBST([LD_NO_UNDEFINED])
370 dnl Check if linker supports version scripts
372 AC_MSG_CHECKING([if the linker supports version-scripts])
373 save_LDFLAGS=$LDFLAGS
374 LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
375 cat > conftest.map <<EOF
385 [AC_LANG_SOURCE([int main() { return 0;}])],
386 [have_ld_version_script=yes;AC_MSG_RESULT(yes)],
387 [have_ld_version_script=no; AC_MSG_RESULT(no)])
388 LDFLAGS=$save_LDFLAGS
389 AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
392 dnl compatibility symlinks
396 HAVE_COMPAT_SYMLINKS=yes ;;
398 HAVE_COMPAT_SYMLINKS=no ;;
401 AM_CONDITIONAL(HAVE_COMPAT_SYMLINKS, test "x$HAVE_COMPAT_SYMLINKS" = xyes)
419 AC_ARG_WITH([gl-lib-name],
420 [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
421 [specify GL library name @<:@default=GL@:>@])],
424 AC_ARG_WITH([osmesa-lib-name],
425 [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
426 [specify OSMesa library name @<:@default=OSMesa@:>@])],
427 [OSMESA_LIB=$withval],
429 AS_IF([test "x$GL_LIB" = xyes], [GL_LIB=GL])
430 AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
433 dnl Mangled Mesa support
435 AC_ARG_ENABLE([mangling],
436 [AS_HELP_STRING([--enable-mangling],
437 [enable mangled symbols and library name @<:@default=disabled@:>@])],
438 [enable_mangling="${enableval}"],
441 if test "x${enable_mangling}" = "xyes" ; then
442 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
443 GL_LIB="Mangled${GL_LIB}"
444 OSMESA_LIB="Mangled${OSMESA_LIB}"
447 AC_SUBST([OSMESA_LIB])
450 dnl potentially-infringing-but-nobody-knows-for-sure stuff
452 AC_ARG_ENABLE([texture-float],
453 [AS_HELP_STRING([--enable-texture-float],
454 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
455 [enable_texture_float="$enableval"],
456 [enable_texture_float=no]
458 if test "x$enable_texture_float" = xyes; then
459 AC_MSG_WARN([Floating-point textures enabled.])
460 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
461 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
465 dnl Arch/platform-specific settings
468 [AS_HELP_STRING([--disable-asm],
469 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
470 [enable_asm="$enableval"],
474 AC_MSG_CHECKING([whether to enable assembly])
475 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
476 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
477 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
479 i?86 | x86_64 | amd64)
481 AC_MSG_RESULT([no, cross compiling])
485 # check for supported arches
486 if test "x$enable_asm" = xyes; then
490 linux* | *freebsd* | dragonfly* | *netbsd* | openbsd*)
491 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
500 linux* | *freebsd* | dragonfly* | *netbsd* | openbsd*)
501 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
516 DEFINES="$DEFINES -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
517 AC_MSG_RESULT([yes, x86])
520 DEFINES="$DEFINES -DUSE_X86_64_ASM"
521 AC_MSG_RESULT([yes, x86_64])
524 DEFINES="$DEFINES -DUSE_SPARC_ASM"
525 AC_MSG_RESULT([yes, sparc])
528 AC_MSG_RESULT([no, platform not supported])
533 dnl Check to see if dlopen is in default libraries (like Solaris, which
534 dnl has it in libc), or if libdl is needed to get it.
535 AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
536 [AC_CHECK_LIB([dl], [dlopen],
537 [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])])
538 AC_SUBST([DLOPEN_LIBS])
540 dnl Check if that library also has dladdr
542 LIBS="$LIBS $DLOPEN_LIBS"
543 AC_CHECK_FUNCS([dladdr])
550 AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],
551 [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt],
552 [AC_MSG_ERROR([Could not find clock_gettime])])])
553 AC_SUBST([CLOCK_LIB])
557 dnl See if posix_memalign is available
558 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
560 dnl Check for pthreads
568 dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS
569 dnl to -pthread, which causes problems if we need -lpthread to appear in
571 test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
573 dnl SELinux awareness.
574 AC_ARG_ENABLE([selinux],
575 [AS_HELP_STRING([--enable-selinux],
576 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
577 [MESA_SELINUX="$enableval"],
579 if test "x$enable_selinux" = "xyes"; then
580 PKG_CHECK_MODULES([SELINUX], [libselinux], [],
581 [AC_CHECK_HEADER([selinux/selinux.h],[],
582 [AC_MSG_ERROR([SELinux headers not found])])
583 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
584 [AC_MSG_ERROR([SELinux library not found])])
585 SELINUX_LIBS="-lselinux"])
586 DEFINES="$DEFINES -DMESA_SELINUX"
588 AC_SUBST([SELINUX_CFLAGS])
589 AC_SUBST([SELINUX_LIBS])
592 AC_ARG_ENABLE([opengl],
593 [AS_HELP_STRING([--disable-opengl],
594 [disable support for standard OpenGL API @<:@default=no@:>@])],
595 [enable_opengl="$enableval"],
597 AC_ARG_ENABLE([gles1],
598 [AS_HELP_STRING([--enable-gles1],
599 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
600 [enable_gles1="$enableval"],
602 AC_ARG_ENABLE([gles2],
603 [AS_HELP_STRING([--enable-gles2],
604 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
605 [enable_gles2="$enableval"],
607 AC_ARG_ENABLE([openvg],
608 [AS_HELP_STRING([--enable-openvg],
609 [enable support for OpenVG API @<:@default=no@:>@])],
610 [enable_openvg="$enableval"],
614 [AS_HELP_STRING([--enable-dri],
615 [enable DRI modules @<:@default=enabled@:>@])],
616 [enable_dri="$enableval"],
627 AC_ARG_ENABLE([dri3],
628 [AS_HELP_STRING([--enable-dri3],
629 [enable DRI3 @<:@default=auto@:>@])],
630 [enable_dri3="$enableval"],
631 [enable_dri3="$dri3_default"])
633 [AS_HELP_STRING([--enable-glx],
634 [enable GLX library @<:@default=enabled@:>@])],
635 [enable_glx="$enableval"],
637 AC_ARG_ENABLE([osmesa],
638 [AS_HELP_STRING([--enable-osmesa],
639 [enable OSMesa library @<:@default=disabled@:>@])],
640 [enable_osmesa="$enableval"],
642 AC_ARG_ENABLE([gallium-osmesa],
643 [AS_HELP_STRING([--enable-gallium-osmesa],
644 [enable Gallium implementation of the OSMesa library @<:@default=disabled@:>@])],
645 [enable_gallium_osmesa="$enableval"],
646 [enable_gallium_osmesa=no])
648 [AS_HELP_STRING([--disable-egl],
649 [disable EGL library @<:@default=enabled@:>@])],
650 [enable_egl="$enableval"],
654 [AS_HELP_STRING([--enable-xa],
655 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
656 [enable_xa="$enableval"],
659 [AS_HELP_STRING([--enable-gbm],
660 [enable gbm library @<:@default=auto@:>@])],
661 [enable_gbm="$enableval"],
664 AC_ARG_ENABLE([xvmc],
665 [AS_HELP_STRING([--enable-xvmc],
666 [enable xvmc library @<:@default=auto@:>@])],
667 [enable_xvmc="$enableval"],
669 AC_ARG_ENABLE([vdpau],
670 [AS_HELP_STRING([--enable-vdpau],
671 [enable vdpau library @<:@default=auto@:>@])],
672 [enable_vdpau="$enableval"],
675 [AS_HELP_STRING([--enable-omx],
676 [enable OpenMAX library @<:@default=no@:>@])],
677 [enable_omx="$enableval"],
679 AC_ARG_ENABLE([opencl],
680 [AS_HELP_STRING([--enable-opencl],
681 [enable OpenCL library @<:@default=no@:>@])],
682 [enable_opencl="$enableval"],
684 AC_ARG_ENABLE([opencl_icd],
685 [AS_HELP_STRING([--enable-opencl-icd],
686 [Build an OpenCL ICD library to be loaded by an ICD implementation
687 @<:@default=no@:>@])],
688 [enable_opencl_icd="$enableval"],
689 [enable_opencl_icd=no])
690 AC_ARG_ENABLE([xlib-glx],
691 [AS_HELP_STRING([--enable-xlib-glx],
692 [make GLX library Xlib-based instead of DRI-based @<:@default=disabled@:>@])],
693 [enable_xlib_glx="$enableval"],
694 [enable_xlib_glx=no])
695 AC_ARG_ENABLE([gallium-egl],
696 [AS_HELP_STRING([--enable-gallium-egl],
697 [enable optional EGL state tracker (not required
698 for EGL support in Gallium with OpenGL and OpenGL ES)
699 @<:@default=disable@:>@])],
700 [enable_gallium_egl="$enableval"],
701 [enable_gallium_egl=no])
702 AC_ARG_ENABLE([gallium-gbm],
703 [AS_HELP_STRING([--enable-gallium-gbm],
704 [enable optional gbm state tracker (not required for
705 gbm support in Gallium)
706 @<:@default=auto@:>@])],
707 [enable_gallium_gbm="$enableval"],
708 [enable_gallium_gbm=auto])
710 AC_ARG_ENABLE([r600-llvm-compiler],
711 [AS_HELP_STRING([--enable-r600-llvm-compiler],
712 [Enable experimental LLVM backend for graphics shaders @<:@default=disable@:>@])],
713 [enable_r600_llvm="$enableval"],
714 [enable_r600_llvm=no])
716 AC_ARG_ENABLE([gallium-tests],
717 [AS_HELP_STRING([--enable-gallium-tests],
718 [Enable optional Gallium tests) @<:@default=disable@:>@])],
719 [enable_gallium_tests="$enableval"],
720 [enable_gallium_tests=no])
722 # Option for Gallium drivers
724 # Keep this in sync with the --with-gallium-drivers help string default value
725 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
727 AC_ARG_WITH([gallium-drivers],
728 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
729 [comma delimited Gallium drivers list, e.g.
730 "i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4"
731 @<:@default=r300,r600,svga,swrast@:>@])],
732 [with_gallium_drivers="$withval"],
733 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
735 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
736 # here so that the script doesn't choke on an unknown driver name later.
737 case "$with_gallium_drivers" in
738 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
739 no) with_gallium_drivers='' ;;
742 if test "x$enable_opengl" = xno -a \
743 "x$enable_gles1" = xno -a \
744 "x$enable_gles2" = xno -a \
745 "x$enable_openvg" = xno -a \
746 "x$enable_xa" = xno -a \
747 "x$enable_xvmc" = xno -a \
748 "x$enable_vdpau" = xno -a \
749 "x$enable_omx" = xno -a \
750 "x$enable_opencl" = xno; then
751 AC_MSG_ERROR([at least one API should be enabled])
754 # Building OpenGL ES1 and/or ES2 without OpenGL is not supported on mesa 9.0.x
755 if test "x$enable_opengl" = xno -a \
756 "x$enable_gles1" = xyes; then
757 AC_MSG_ERROR([Building OpenGL ES1 without OpenGL is not supported])
760 if test "x$enable_opengl" = xno -a \
761 "x$enable_gles2" = xyes; then
762 AC_MSG_ERROR([Building OpenGL ES2 without OpenGL is not supported])
765 AM_CONDITIONAL(HAVE_OPENGL, test "x$enable_opengl" = xyes)
766 AM_CONDITIONAL(HAVE_OPENGL_ES1, test "x$enable_gles1" = xyes)
767 AM_CONDITIONAL(HAVE_OPENGL_ES2, test "x$enable_gles2" = xyes)
768 AM_CONDITIONAL(NEED_OPENGL_COMMON, test "x$enable_opengl" = xyes -o \
769 "x$enable_gles1" = xyes -o \
770 "x$enable_gles2" = xyes)
772 if test "x$enable_glx" = xno; then
773 AC_MSG_WARN([GLX disabled, disabling Xlib-GLX])
777 if test "x$enable_dri$enable_xlib_glx" = xyesyes; then
778 AC_MSG_ERROR([DRI and Xlib-GLX cannot be built together])
781 if test "x$enable_opengl$enable_xlib_glx" = xnoyes; then
782 AC_MSG_ERROR([Xlib-GLX cannot be built without OpenGL])
785 # Disable GLX if OpenGL is not enabled
786 if test "x$enable_glx$enable_opengl" = xyesno; then
787 AC_MSG_WARN([OpenGL not enabled, disabling GLX])
791 # Disable GLX if DRI and Xlib-GLX are not enabled
792 if test "x$enable_glx" = xyes -a \
793 "x$enable_dri" = xno -a \
794 "x$enable_xlib_glx" = xno; then
795 AC_MSG_WARN([Neither DRI nor Xlib-GLX enabled, disabling GLX])
799 AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xyes -a \
800 "x$enable_dri" = xyes)
802 # Select which platform-dependent DRI code gets built
805 dri_platform='apple' ;;
807 dri_platform='none' ;;
809 dri_platform='drm' ;;
812 AM_CONDITIONAL(HAVE_DRICOMMON, test "x$enable_dri" = xyes )
813 AM_CONDITIONAL(HAVE_DRISW, test "x$enable_dri" = xyes )
814 AM_CONDITIONAL(HAVE_DRI2, test "x$enable_dri" = xyes && test "x$dri_platform" = xdrm )
815 AM_CONDITIONAL(HAVE_DRI3, test "x$enable_dri3" = xyes && test "x$dri_platform" = xdrm )
816 AM_CONDITIONAL(HAVE_APPLEDRI, test "x$enable_dri" = xyes && test "x$dri_platform" = xapple )
818 AC_ARG_ENABLE([shared-glapi],
819 [AS_HELP_STRING([--enable-shared-glapi],
820 [Enable shared glapi for OpenGL @<:@default=yes@:>@])],
821 [enable_shared_glapi="$enableval"],
822 [enable_shared_glapi=yes])
824 case "x$enable_opengl$enable_gles1$enable_gles2" in
826 if test "x$enable_shared_glapi" = xno; then
827 AC_MSG_ERROR([shared GLAPI required when building two or more of
828 the following APIs - opengl, gles1 gles2])
833 # Building Xlib-GLX requires shared glapi to be disabled.
834 if test "x$enable_xlib_glx" = xyes; then
835 AC_MSG_NOTICE([Shared GLAPI should not used with Xlib-GLX, disabling])
836 enable_shared_glapi=no
839 AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes)
842 dnl Driver specific build directories
844 GALLIUM_TARGET_DIRS=""
845 GALLIUM_WINSYS_DIRS="sw"
846 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
847 GALLIUM_STATE_TRACKERS_DIRS=""
849 case "x$enable_glx$enable_xlib_glx" in
851 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
852 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
853 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
854 NEED_WINSYS_XLIB="yes"
858 if test "x$enable_dri" = xyes; then
859 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
860 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
861 enable_gallium_loader=yes
864 if test "x$enable_gallium_osmesa" = xyes; then
865 if ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
866 AC_MSG_ERROR([gallium_osmesa requires the gallium swrast driver])
868 if test "x$enable_osmesa" = xyes; then
869 AC_MSG_ERROR([Cannot enable both classic and Gallium OSMesa implementations])
871 GALLIUM_STATE_TRACKERS_DIRS="osmesa $GALLIUM_STATE_TRACKERS_DIRS"
872 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS osmesa"
875 AC_SUBST([MESA_LLVM])
878 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
879 [have_libdrm=yes], [have_libdrm=no])
880 if test "x$have_libdrm" = xyes; then
881 DEFINES="$DEFINES -DHAVE_LIBDRM"
891 PKG_CHECK_MODULES([LIBUDEV], [libudev >= $LIBUDEV_REQUIRED],
892 have_libudev=yes, have_libudev=no)
894 AC_ARG_ENABLE([sysfs],
895 [AS_HELP_STRING([--enable-sysfs],
896 [enable /sys PCI identification @<:@default=disabled@:>@])],
897 [have_sysfs="$enableval"],
901 if test "x$enable_dri" = xyes; then
902 if test "$enable_static" = yes; then
903 AC_MSG_ERROR([Cannot use static libraries for DRI drivers])
906 # not a hard requirement as swrast does not depend on it
907 if test "x$have_libdrm" = xyes; then
908 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
912 AC_ARG_ENABLE([driglx-direct],
913 [AS_HELP_STRING([--disable-driglx-direct],
914 [disable direct rendering in GLX and EGL for DRI \
915 @<:@default=auto@:>@])],
916 [driglx_direct="$enableval"],
917 [driglx_direct="yes"])
920 dnl libGL configuration per driver
922 case "x$enable_glx$enable_xlib_glx" in
925 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
926 GL_PC_REQ_PRIV="x11 xext"
927 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
928 GL_LIB_DEPS="$XLIBGL_LIBS"
929 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
930 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm $PTHREAD_LIBS"
934 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
936 # find the DRI deps for libGL
937 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= $XCBGLX_REQUIRED"
939 if test x"$driglx_direct" = xyes; then
940 if test x"$dri_platform" = xdrm ; then
941 DEFINES="$DEFINES -DGLX_USE_DRM"
942 if test "x$have_libdrm" != xyes; then
943 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
946 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
947 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
948 if test x"$enable_dri3" = xyes; then
949 PKG_CHECK_MODULES([DRI3PROTO], [dri3proto >= $DRI3PROTO_REQUIRED])
950 PKG_CHECK_MODULES([PRESENTPROTO], [presentproto >= $PRESENTPROTO_REQUIRED])
953 if test x"$enable_dri" = xyes; then
954 dri_modules="$dri_modules xcb-dri2 >= $XCBDRI2_REQUIRED"
957 if test x"$enable_dri3" = xyes; then
958 dri_modules="$dri_modules xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
961 if test x"$dri_platform" = xapple ; then
962 DEFINES="$DEFINES -DGLX_USE_APPLEGL"
966 # add xf86vidmode if available
967 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
968 if test "$HAVE_XF86VIDMODE" = yes ; then
969 dri_modules="$dri_modules xxf86vm"
972 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
973 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
974 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
975 GL_LIB_DEPS="$DRIGL_LIBS"
977 # need DRM libs, $PTHREAD_LIBS, etc.
978 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
979 GL_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
984 if test "$have_libudev" = yes; then
985 DEFINES="$DEFINES -DHAVE_LIBUDEV"
989 if test "$have_sysfs" = yes; then
990 DEFINES="$DEFINES -DHAVE_SYSFS"
994 # This is outside the case (above) so that it is invoked even for non-GLX
996 AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes)
998 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
999 GLESv1_CM_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1000 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1001 GLESv2_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1003 AC_SUBST([X11_INCLUDES])
1004 AC_SUBST([GL_LIB_DEPS])
1005 AC_SUBST([GL_PC_REQ_PRIV])
1006 AC_SUBST([GL_PC_LIB_PRIV])
1007 AC_SUBST([GL_PC_CFLAGS])
1008 AC_SUBST([DRI_PC_REQ_PRIV])
1009 AC_SUBST([GLESv1_CM_LIB_DEPS])
1010 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1011 AC_SUBST([GLESv2_LIB_DEPS])
1012 AC_SUBST([GLESv2_PC_LIB_PRIV])
1014 AC_SUBST([HAVE_XF86VIDMODE])
1019 case "x$enable_glx$enable_xlib_glx" in
1021 DEFINES="$DEFINES -DUSE_XSHM"
1024 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1025 if test "x$driglx_direct" = xyes; then
1026 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1035 AC_ARG_ENABLE([glx-tls],
1036 [AS_HELP_STRING([--enable-glx-tls],
1037 [enable TLS support in GLX @<:@default=disabled@:>@])],
1038 [GLX_USE_TLS="$enableval"],
1040 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1042 AS_IF([test "x$GLX_USE_TLS" = xyes -a "x$ax_pthread_ok" = xyes],
1043 [DEFINES="${DEFINES} -DGLX_USE_TLS -DHAVE_PTHREAD"])
1048 dnl Directory for DRI drivers
1049 AC_ARG_WITH([dri-driverdir],
1050 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1051 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1052 [DRI_DRIVER_INSTALL_DIR="$withval"],
1053 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1054 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1055 dnl Extra search path for DRI drivers
1056 AC_ARG_WITH([dri-searchpath],
1057 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1058 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1059 [DRI_DRIVER_SEARCH_DIR="$withval"],
1060 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1061 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1062 dnl Which drivers to build - default is chosen by platform
1063 AC_ARG_WITH([dri-drivers],
1064 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1065 [comma delimited classic DRI drivers list, e.g.
1066 "swrast,i965,radeon" @<:@default=auto@:>@])],
1067 [with_dri_drivers="$withval"],
1068 [with_dri_drivers=auto])
1070 if test "x$with_dri_drivers" = xauto; then
1071 if test "x$enable_opengl" = xyes -a "x$enable_dri" = xyes; then
1072 with_dri_drivers="yes"
1074 with_dri_drivers="no"
1077 if test "x$with_dri_drivers" = xno; then
1081 dnl If $with_dri_drivers is yes, drivers will be added through
1082 dnl platform checks. Set DEFINES and LIB_DEPS
1083 if test "x$enable_dri" = xyes; then
1084 # Platform specific settings and drivers to build
1087 DEFINES="$DEFINES -DHAVE_ALIAS"
1088 if test "x$enable_dri3" = xyes; then
1089 DEFINES="$DEFINES -DHAVE_DRI3"
1092 if test "x$have_pci_id" != xyes; then
1093 AC_MSG_ERROR([libudev-dev or sysfs required for building DRI])
1098 # Build only the drivers for cards that exist on PowerPC/sparc
1099 if test "x$with_dri_drivers" = "xyes"; then
1100 with_dri_drivers="r200 radeon swrast"
1105 *freebsd* | dragonfly* | *netbsd* | openbsd*)
1106 DEFINES="$DEFINES -DHAVE_PTHREAD"
1107 DEFINES="$DEFINES -DHAVE_ALIAS"
1110 DEFINES="$DEFINES -DHAVE_ALIAS"
1113 if test "x$with_dri_drivers" = "xyes"; then
1114 with_dri_drivers="swrast"
1118 DEFINES="$DEFINES -DGLX_ALIAS_UNSUPPORTED"
1119 if test "x$with_dri_drivers" = "xyes"; then
1120 with_dri_drivers="swrast"
1126 if test "x$with_dri_drivers" = "xyes"; then
1127 with_dri_drivers="i915 i965 nouveau r200 radeon swrast"
1131 PKG_CHECK_EXISTS([expat], [have_expat=yes], [have_expat=no])
1132 if test "x$have_expat" = "xyes"; then
1133 PKG_CHECK_MODULES([EXPAT], [expat], [],
1134 AC_MSG_ERROR([Expat required for DRI.]))
1136 # expat version 2.0 and earlier do not provide expat.pc
1140 DRICOMMON_NEED_LIBDRM=no
1141 # If we are building any DRI driver other than swrast.
1142 if test -n "$with_dri_drivers"; then
1143 if test "x$with_dri_drivers" != xswrast; then
1144 # ... libdrm is required
1145 if test "x$have_libdrm" != xyes; then
1146 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1148 DRICOMMON_NEED_LIBDRM=yes
1152 # If we're building any gallium DRI driver other than swrast
1153 if test -n "$with_gallium_drivers" -a "x$DRICOMMON_NEED_LIBDRM" = xno; then
1154 if test "x$with_gallium_drivers" != xswrast; then
1155 # ... build a libdrm aware dricommon
1156 DRICOMMON_NEED_LIBDRM=yes
1160 # put all the necessary libs together
1161 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1164 AC_SUBST([DRI_LIB_DEPS])
1167 dnl Duplicates in DRI_DIRS are removed by sorting it at the end of this block
1168 if test -n "$with_dri_drivers"; then
1169 if test "x$enable_opengl" != xyes; then
1170 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1173 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1174 for driver in $dri_drivers; do
1175 DRI_DIRS="$DRI_DIRS $driver"
1179 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1183 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1186 HAVE_NOUVEAU_DRI=yes;
1187 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED])
1190 HAVE_RADEON_DRI=yes;
1191 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1195 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1198 HAVE_SWRAST_DRI=yes;
1201 AC_MSG_ERROR([classic DRI driver '$driver' does not exist])
1205 DRI_DIRS=`echo $DRI_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1208 AM_CONDITIONAL(NEED_MEGADRIVER, test -n "$DRI_DIRS")
1209 AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_xlib_glx" = xyes -o \
1210 "x$enable_osmesa" = xyes -o \
1214 dnl OSMesa configuration
1217 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1218 AC_ARG_WITH([osmesa-bits],
1219 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1220 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1221 [osmesa_bits="$withval"],
1223 if test "x$osmesa_bits" != x8; then
1224 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1225 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1229 case "x$osmesa_bits" in
1231 OSMESA_LIB="${OSMESA_LIB}"
1234 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1235 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1238 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1242 if test "x$enable_osmesa" = xyes -o "x$enable_gallium_osmesa" = xyes; then
1243 # only link libraries with osmesa if shared
1244 if test "$enable_static" = no; then
1245 OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1250 OSMESA_PC_LIB_PRIV="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1253 AC_SUBST([OSMESA_LIB_DEPS])
1254 AC_SUBST([OSMESA_MESA_DEPS])
1255 AC_SUBST([OSMESA_PC_REQ])
1256 AC_SUBST([OSMESA_PC_LIB_PRIV])
1259 dnl gbm configuration
1261 if test "x$enable_gbm" = xauto; then
1262 case "$with_egl_platforms" in
1269 if test "x$enable_gbm" = xyes; then
1270 if test "x$need_pci_id$have_pci_id" = xyesno; then
1271 AC_MSG_ERROR([gbm requires udev >= $LIBUDEV_REQUIRED or sysfs])
1274 if test "x$enable_dri" = xyes; then
1275 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1276 if test "x$enable_shared_glapi" = xno; then
1277 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1280 # Strictly speaking libgbm does not require --enable-dri, although
1281 # both of its backends do. Thus one can build libgbm without any
1282 # backends if --disable-dri is set.
1283 # To avoid unnecessary complexity of checking if at least one backend
1284 # is available when building, just mandate --enable-dri.
1285 AC_MSG_ERROR([gbm requires --enable-dri])
1288 AM_CONDITIONAL(HAVE_GBM, test "x$enable_gbm" = xyes)
1289 if test "x$need_pci_id$have_libudev" = xyesyes; then
1290 GBM_PC_REQ_PRIV="libudev >= $LIBUDEV_REQUIRED"
1294 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1295 AC_SUBST([GBM_PC_REQ_PRIV])
1296 AC_SUBST([GBM_PC_LIB_PRIV])
1299 dnl EGL configuration
1303 if test "x$enable_egl" = xyes; then
1304 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS $PTHREAD_LIBS"
1306 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1308 if test "$enable_static" != yes; then
1309 if test "x$enable_dri" = xyes; then
1310 HAVE_EGL_DRIVER_DRI2=1
1315 AM_CONDITIONAL(HAVE_EGL, test "x$enable_egl" = xyes)
1316 AC_SUBST([EGL_LIB_DEPS])
1319 dnl EGL Gallium configuration
1321 if test "x$enable_gallium_egl" = xyes; then
1322 if test -z "$with_gallium_drivers"; then
1323 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1325 if test "x$enable_egl" = xno; then
1326 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1328 if test "x$have_libdrm" != xyes; then
1329 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1332 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1333 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1334 # enable_gallium_loader=yes
1336 AM_CONDITIONAL(HAVE_GALLIUM_EGL, test "x$enable_gallium_egl" = xyes)
1339 dnl gbm Gallium configuration
1341 if test "x$enable_gallium_gbm" = xauto; then
1342 case "$enable_gbm$enable_gallium_egl$enable_dri$with_egl_platforms" in
1344 enable_gallium_gbm=yes ;;
1346 enable_gallium_gbm=no ;;
1349 if test "x$enable_gallium_gbm" = xyes; then
1350 if test -z "$with_gallium_drivers"; then
1351 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1353 if test "x$enable_gbm" = xno; then
1354 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1357 if test "x$enable_gallium_egl" != xyes; then
1358 AC_MSG_ERROR([gbm_gallium is only used by egl_gallium])
1361 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1362 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1363 enable_gallium_loader=yes
1365 AM_CONDITIONAL(HAVE_GALLIUM_GBM, test "x$enable_gallium_gbm" = xyes)
1368 dnl XA configuration
1370 if test "x$enable_xa" = xyes; then
1371 if test "x$with_gallium_drivers" = xswrast; then
1373 Building xa requires at least one non swrast gallium driver.
1374 If you are looking to use libxatracker.so with the VMware driver,
1375 make sure to include svga in the gallium drivers list, apart from
1377 Example: ./configure --enable-xa --with-gallium-drivers=svga...])
1379 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1380 enable_gallium_loader=yes
1382 AM_CONDITIONAL(HAVE_ST_XA, test "x$enable_xa" = xyes)
1385 dnl OpenVG configuration
1389 if test "x$enable_openvg" = xyes; then
1390 if test "x$enable_egl" = xno; then
1391 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1393 if test -z "$with_gallium_drivers"; then
1394 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1396 if test "x$enable_gallium_egl" = xno; then
1397 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1400 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1401 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS $PTHREAD_LIBS"
1402 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1403 VG_PC_LIB_PRIV="-lm $CLOCK_LIB $PTHREAD_LIBS $DLOPEN_LIBS"
1404 AC_SUBST([VG_PC_LIB_PRIV])
1406 AM_CONDITIONAL(HAVE_OPENVG, test "x$enable_openvg" = xyes)
1409 dnl Gallium G3DVL configuration
1411 if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then
1412 if test "x$enable_xvmc" = xauto; then
1413 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1416 if test "x$enable_vdpau" = xauto; then
1417 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1420 if test "x$enable_omx" = xauto; then
1421 PKG_CHECK_EXISTS([libomxil-bellagio], [enable_omx=yes], [enable_omx=no])
1425 if test "x$enable_xvmc" = xyes; then
1426 PKG_CHECK_MODULES([XVMC], [xvmc >= $XVMC_REQUIRED x11-xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
1427 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xvmc"
1428 enable_gallium_loader=yes
1430 AM_CONDITIONAL(HAVE_ST_XVMC, test "x$enable_xvmc" = xyes)
1432 if test "x$enable_vdpau" = xyes; then
1433 PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED x11-xcb xcb-dri2 >= $XCBDRI2_REQUIRED],
1434 [VDPAU_LIBS="`$PKG_CONFIG --libs x11-xcb xcb-dri2`"])
1435 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1436 enable_gallium_loader=yes
1438 AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes)
1440 if test "x$enable_omx" = xyes; then
1441 PKG_CHECK_MODULES([OMX], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED x11-xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
1442 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS omx"
1443 enable_gallium_loader=yes
1445 AM_CONDITIONAL(HAVE_ST_OMX, test "x$enable_omx" = xyes)
1448 dnl OpenCL configuration
1451 AC_ARG_WITH([libclc-path],
1452 [AS_HELP_STRING([--with-libclc-path],
1453 [DEPRECATED: See http://dri.freedesktop.org/wiki/GalliumCompute#How_to_Install])],
1454 [LIBCLC_PATH="$withval"],
1457 if test -n "$LIBCLC_PATH"; then
1458 AC_MSG_ERROR([The --with-libclc-path option has been deprecated.
1459 Please review the updated build instructions for clover:
1460 http://dri.freedesktop.org/wiki/GalliumCompute])
1464 AC_ARG_WITH([clang-libdir],
1465 [AS_HELP_STRING([--with-clang-libdir],
1466 [Path to Clang libraries @<:@default=llvm-config --libdir@:>@])],
1467 [CLANG_LIBDIR="$withval"],
1470 PKG_CHECK_EXISTS([libclc], [have_libclc=yes], [have_libclc=no])
1472 if test "x$enable_opencl" = xyes; then
1473 if test -z "$with_gallium_drivers"; then
1474 AC_MSG_ERROR([cannot enable OpenCL without Gallium])
1477 if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 7; then
1478 AC_MSG_ERROR([gcc >= 4.7 is required to build clover])
1481 if test "x$have_libclc" = xno; then
1482 AC_MSG_ERROR([pkg-config cannot find libclc.pc which is required to build clover.
1483 Make sure the directory containing libclc.pc is specified in your
1484 PKG_CONFIG_PATH environment variable.
1485 By default libclc.pc is installed to /usr/local/share/pkgconfig/])
1487 LIBCLC_INCLUDEDIR=`$PKG_CONFIG --variable=includedir libclc`
1488 LIBCLC_LIBEXECDIR=`$PKG_CONFIG --variable=libexecdir libclc`
1489 AC_SUBST([LIBCLC_INCLUDEDIR])
1490 AC_SUBST([LIBCLC_LIBEXECDIR])
1493 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS clover"
1494 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS opencl"
1495 enable_gallium_loader=yes
1497 if test "x$enable_opencl_icd" = xyes; then
1498 OPENCL_LIBNAME="MesaOpenCL"
1500 OPENCL_LIBNAME="OpenCL"
1503 AM_CONDITIONAL(HAVE_CLOVER, test "x$enable_opencl" = xyes)
1504 AM_CONDITIONAL(HAVE_CLOVER_ICD, test "x$enable_opencl_icd" = xyes)
1505 AC_SUBST([OPENCL_LIBNAME])
1508 dnl Gallium configuration
1510 AM_CONDITIONAL(HAVE_GALLIUM, test -n "$with_gallium_drivers")
1512 AC_SUBST([LLVM_BINDIR])
1513 AC_SUBST([LLVM_CFLAGS])
1514 AC_SUBST([LLVM_CPPFLAGS])
1515 AC_SUBST([LLVM_CXXFLAGS])
1516 AC_SUBST([LLVM_LIBDIR])
1517 AC_SUBST([LLVM_LIBS])
1518 AC_SUBST([LLVM_LDFLAGS])
1519 AC_SUBST([LLVM_INCLUDEDIR])
1520 AC_SUBST([LLVM_VERSION])
1521 AC_SUBST([CLANG_RESOURCE_DIR])
1523 case "x$enable_opengl$enable_gles1$enable_gles2" in
1525 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1529 AC_SUBST([VG_LIB_DEPS])
1530 AC_SUBST([EGL_CLIENT_APIS])
1533 dnl EGL Platforms configuration
1535 AC_ARG_WITH([egl-platforms],
1536 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1537 [comma delimited native platforms libEGL supports, e.g.
1538 "x11,drm" @<:@default=auto@:>@])],
1539 [with_egl_platforms="$withval"],
1540 [if test "x$enable_egl" = xyes; then
1541 with_egl_platforms="x11"
1543 with_egl_platforms=""
1546 if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then
1547 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1550 # Do per-EGL platform setups and checks
1551 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1552 for plat in $egl_platforms; do
1555 PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED])
1556 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1558 WAYLAND_PREFIX=`$PKG_CONFIG --variable=prefix wayland-client`
1559 AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner],,
1560 [${WAYLAND_PREFIX}/bin$PATH_SEPARATOR$PATH])
1564 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 >= $XCBDRI2_REQUIRED xcb-xfixes])
1568 test "x$enable_gbm" = "xno" &&
1569 AC_MSG_ERROR([EGL platform drm needs gbm])
1570 test "x$have_libdrm" != xyes &&
1571 AC_MSG_ERROR([EGL platform drm requires libdrm >= $LIBDRM_REQUIRED])
1574 android|fbdev|gdi|null)
1578 AC_MSG_ERROR([EGL platform '$plat' does not exist])
1582 case "$plat$need_pci_id$have_pci_id" in
1583 waylandyesno|drmyesno)
1584 AC_MSG_ERROR([cannot build $plat platform without udev >= $LIBUDEV_REQUIRED or sysfs]) ;;
1588 # libEGL wants to default to the first platform specified in
1589 # ./configure. parse that here.
1590 if test "x$egl_platforms" != "x"; then
1591 FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr 'a-z' 'A-Z'`
1592 EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS"
1594 EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
1597 if echo "$egl_platforms" | grep -q 'x11'; then
1598 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1599 NEED_WINSYS_XLIB=yes
1601 AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep -q 'x11')
1602 AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep -q 'wayland')
1603 AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep -q 'drm')
1604 AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep -q 'fbdev')
1605 AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep -q 'null')
1607 AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x")
1609 AC_SUBST([EGL_NATIVE_PLATFORM])
1610 AC_SUBST([EGL_CFLAGS])
1612 # If we don't have the X11 platform, set this define so we don't try to include
1614 if ! echo "$egl_platforms" | grep -q 'x11'; then
1615 DEFINES="$DEFINES -DMESA_EGL_NO_X11_HEADERS"
1616 GL_PC_CFLAGS="$GL_PC_CFLAGS -DMESA_EGL_NO_X11_HEADERS"
1619 AC_ARG_WITH([egl-driver-dir],
1620 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1621 [directory for EGL drivers @<:@default=${libdir}/egl@:>@])],
1622 [EGL_DRIVER_INSTALL_DIR="$withval"],
1623 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1624 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1626 AC_ARG_WITH([max-width],
1627 [AS_HELP_STRING([--with-max-width=N],
1628 [Maximum framebuffer width (4096)])],
1629 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1630 AS_IF([test "${withval}" -gt "4096"],
1631 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1633 AC_ARG_WITH([max-height],
1634 [AS_HELP_STRING([--with-max-height=N],
1635 [Maximum framebuffer height (4096)])],
1636 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1637 AS_IF([test "${withval}" -gt "4096"],
1638 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1644 AC_ARG_ENABLE([gallium-llvm],
1645 [AS_HELP_STRING([--enable-gallium-llvm],
1646 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1647 [enable_gallium_llvm="$enableval"],
1648 [enable_gallium_llvm=auto])
1650 AC_ARG_ENABLE([llvm-shared-libs],
1651 [AS_HELP_STRING([--enable-llvm-shared-libs],
1652 [link with LLVM shared libraries @<:@default=enabled@:>@])],
1653 [enable_llvm_shared_libs="$enableval"],
1654 [enable_llvm_shared_libs=yes])
1656 AC_ARG_WITH([llvm-prefix],
1657 [AS_HELP_STRING([--with-llvm-prefix],
1658 [Prefix for LLVM installations in non-standard locations])],
1659 [llvm_prefix="$withval"],
1663 # Call this inside ` ` to get the return value.
1664 # $1 is the llvm-config command with arguments.
1665 strip_unwanted_llvm_flags() {
1666 # Use \> (marks the end of the word)
1668 -e 's/-DNDEBUG\>//g' \
1669 -e 's/-pedantic\>//g' \
1670 -e 's/-Wcovered-switch-default\>//g' \
1674 -e 's/-Wcast-qual\>//g' \
1675 -e 's/-Woverloaded-virtual\>//g' \
1676 -e 's/-fcolor-diagnostics\>//g' \
1677 -e 's/-fdata-sections\>//g' \
1678 -e 's/-ffunction-sections\>//g' \
1679 -e 's/-fno-exceptions\>//g' \
1680 -e 's/-fomit-frame-pointer\>//g' \
1681 -e 's/-fvisibility-inlines-hidden\>//g' \
1683 -e 's/-fstack-protector-strong\>//g'
1687 if test -z "$with_gallium_drivers"; then
1688 enable_gallium_llvm=no
1690 if test "x$enable_gallium_llvm" = xauto; then
1692 i*86|x86_64|amd64) enable_gallium_llvm=yes;;
1695 if test "x$enable_gallium_llvm" = xyes; then
1696 if test -n "$llvm_prefix"; then
1697 AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"])
1699 AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no])
1702 if test "x$LLVM_CONFIG" != xno; then
1703 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1704 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1705 LLVM_BINDIR=`$LLVM_CONFIG --bindir`
1706 LLVM_CPPFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cppflags"`
1707 LLVM_CFLAGS=$LLVM_CPPFLAGS # CPPFLAGS seem to be sufficient
1708 LLVM_CXXFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cxxflags"`
1709 LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir`
1710 LLVM_LIBDIR=`$LLVM_CONFIG --libdir`
1712 AC_COMPUTE_INT([LLVM_VERSION_MAJOR], [LLVM_VERSION_MAJOR],
1713 [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
1714 AC_COMPUTE_INT([LLVM_VERSION_MINOR], [LLVM_VERSION_MINOR],
1715 [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
1717 dnl In LLVM 3.4.1 patch level was defined in config.h and not
1719 AC_COMPUTE_INT([LLVM_VERSION_PATCH], [LLVM_VERSION_PATCH],
1720 [#include "${LLVM_INCLUDEDIR}/llvm/Config/config.h"],
1721 LLVM_VERSION_PATCH=0) dnl Default if LLVM_VERSION_PATCH not found
1723 if test -n "${LLVM_VERSION_MAJOR}"; then
1724 LLVM_VERSION_INT="${LLVM_VERSION_MAJOR}0${LLVM_VERSION_MINOR}"
1726 LLVM_VERSION_INT=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/\10\2/g'`
1729 LLVM_REQUIRED_VERSION_MAJOR="3"
1730 LLVM_REQUIRED_VERSION_MINOR="1"
1731 if test "$LLVM_VERSION_INT" -lt "${LLVM_REQUIRED_VERSION_MAJOR}0${LLVM_REQUIRED_VERSION_MINOR}"; then
1732 AC_MSG_ERROR([LLVM $LLVM_REQUIRED_VERSION_MAJOR.$LLVM_REQUIRED_VERSION_MINOR or newer is required])
1735 LLVM_COMPONENTS="engine bitwriter"
1736 if $LLVM_CONFIG --components | grep -qw 'mcjit'; then
1737 LLVM_COMPONENTS="${LLVM_COMPONENTS} mcjit"
1740 if test "x$enable_opencl" = xyes; then
1741 LLVM_COMPONENTS="${LLVM_COMPONENTS} ipo linker instrumentation"
1742 # LLVM 3.3 >= 177971 requires IRReader
1743 if $LLVM_CONFIG --components | grep -qw 'irreader'; then
1744 LLVM_COMPONENTS="${LLVM_COMPONENTS} irreader"
1746 # LLVM 3.4 requires Option
1747 if $LLVM_CONFIG --components | grep -qw 'option'; then
1748 LLVM_COMPONENTS="${LLVM_COMPONENTS} option"
1750 # Current OpenCL/Clover and LLVM 3.5 require ObjCARCOpts and ProfileData
1751 if $LLVM_CONFIG --components | grep -qw 'objcarcopts'; then
1752 LLVM_COMPONENTS="${LLVM_COMPONENTS} objcarcopts"
1754 if $LLVM_CONFIG --components | grep -qw 'profiledata'; then
1755 LLVM_COMPONENTS="${LLVM_COMPONENTS} profiledata"
1758 DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DLLVM_VERSION_PATCH=$LLVM_VERSION_PATCH"
1761 dnl Check for Clang internal headers
1762 if test "x$enable_opencl" = xyes; then
1763 if test -z "$CLANG_LIBDIR"; then
1764 CLANG_LIBDIR=${LLVM_LIBDIR}
1766 CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
1767 AS_IF([test ! -f "$CLANG_RESOURCE_DIR/include/stddef.h"],
1768 [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.])])
1778 if test "x$enable_opencl" = xyes; then
1779 AC_MSG_ERROR([cannot enable OpenCL without LLVM])
1783 dnl Directory for XVMC libs
1784 AC_ARG_WITH([xvmc-libdir],
1785 [AS_HELP_STRING([--with-xvmc-libdir=DIR],
1786 [directory for the XVMC libraries @<:@default=${libdir}@:>@])],
1787 [XVMC_LIB_INSTALL_DIR="$withval"],
1788 [XVMC_LIB_INSTALL_DIR='${libdir}'])
1789 AC_SUBST([XVMC_LIB_INSTALL_DIR])
1794 if test "x$enable_gallium_tests" = xyes; then
1795 enable_gallium_loader=yes
1797 AM_CONDITIONAL(HAVE_GALLIUM_TESTS, test "x$enable_gallium_tests" = xyes)
1799 if test "x$enable_gallium_loader" = xyes; then
1800 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS pipe-loader"
1802 AM_CONDITIONAL(NEED_GALLIUM_LOADER, test "x$enable_gallium_loader" = xyes)
1804 dnl Directory for VDPAU libs
1805 AC_ARG_WITH([vdpau-libdir],
1806 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1807 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1808 [VDPAU_LIB_INSTALL_DIR="$withval"],
1809 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1810 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1812 OMX_LIB_INSTALL_DIR_DEFAULT=''
1813 if test "x$enable_omx" = xyes; then
1814 OMX_LIB_INSTALL_DIR_DEFAULT=`$PKG_CONFIG --variable=pluginsdir libomxil-bellagio`
1817 AC_ARG_WITH([omx-libdir],
1818 [AS_HELP_STRING([--with-omx-libdir=DIR],
1819 [directory for the OMX libraries])],
1820 [OMX_LIB_INSTALL_DIR="$withval"],
1821 [OMX_LIB_INSTALL_DIR="$OMX_LIB_INSTALL_DIR_DEFAULT"])
1822 AC_SUBST([OMX_LIB_INSTALL_DIR])
1824 dnl Directory for OpenCL libs
1825 AC_ARG_WITH([opencl-libdir],
1826 [AS_HELP_STRING([--with-opencl-libdir=DIR],
1827 [directory for auxiliary libraries used by the OpenCL implementation @<:@default=${libdir}/opencl@:>@])],
1828 [OPENCL_LIB_INSTALL_DIR="$withval"],
1829 [OPENCL_LIB_INSTALL_DIR='${libdir}/opencl'])
1830 AC_SUBST([OPENCL_LIB_INSTALL_DIR])
1833 dnl Gallium helper functions
1835 gallium_check_st() {
1836 if test "x$NEED_NONNULL_WINSYS" = xyes; then
1837 if test "x$have_libdrm" != xyes; then
1838 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1840 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1842 if test "x$enable_dri" = xyes && test -n "$2"; then
1843 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1845 if test "x$enable_xa" = xyes && test -n "$3"; then
1846 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1848 if test "x$enable_xvmc" = xyes && test -n "$4"; then
1849 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1851 if test "x$enable_vdpau" = xyes && test -n "$5"; then
1852 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1854 if test "x$enable_omx" = xyes && test "x$6" != x; then
1855 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1859 gallium_require_llvm() {
1860 if test "x$MESA_LLVM" = x0; then
1861 case "$host" in *gnux32) return;; esac
1863 i*86|x86_64|amd64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1868 gallium_require_drm_loader() {
1869 if test "x$enable_gallium_loader" = xyes; then
1870 if test "x$need_pci_id$have_pci_id" = xyesno; then
1871 AC_MSG_ERROR([Gallium drm loader requires libudev >= $LIBUDEV_REQUIRED or sysfs])
1873 if test "x$have_libdrm" != xyes; then
1874 AC_MSG_ERROR([Gallium drm loader requires libdrm >= $LIBDRM_REQUIRED])
1876 enable_gallium_drm_loader=yes
1881 case "$with_egl_platforms" in
1885 AC_MSG_ERROR([--with-egl-platforms=drm is required to build the $1 driver.])
1888 if test "x$enable_gbm" != xyes; then
1889 AC_MSG_ERROR([--enable-gbm is required to build the $1 driver.])
1893 radeon_llvm_check() {
1894 if test "x$enable_gallium_llvm" != "xyes"; then
1895 AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
1897 LLVM_REQUIRED_VERSION_MAJOR="3"
1898 LLVM_REQUIRED_VERSION_MINOR="4"
1899 LLVM_REQUIRED_VERSION_PATCH="2"
1900 if test "${LLVM_VERSION_INT}${LLVM_VERSION_PATCH}" -lt "${LLVM_REQUIRED_VERSION_MAJOR}0${LLVM_REQUIRED_VERSION_MINOR}${LLVM_REQUIRED_VERSION_PATCH}"; then
1901 AC_MSG_ERROR([LLVM $LLVM_REQUIRED_VERSION_MAJOR.$LLVM_REQUIRED_VERSION_MINOR.$LLVM_REQUIRED_VERSION_PATCH or newer is required for $1])
1903 if test true && $LLVM_CONFIG --targets-built | grep -qvw 'R600' ; then
1904 AC_MSG_ERROR([LLVM R600 Target not enabled. You can enable it when building the LLVM
1905 sources with the --enable-experimental-targets=R600
1908 LLVM_COMPONENTS="${LLVM_COMPONENTS} r600 bitreader ipo"
1909 NEED_RADEON_LLVM=yes
1910 AC_CHECK_LIB([elf], [elf_memory], [ELF_LIB=-lelf],
1911 [AC_MSG_ERROR([$1 requires libelf when using LLVM])])
1915 if test "x$enable_dri" = xyes -o "x$enable_xa" = xyes -o \
1916 "x$enable_xvmc" = xyes -o "x$enable_vdpau" = xyes; then
1917 NEED_NONNULL_WINSYS=yes
1919 AM_CONDITIONAL(NEED_NONNULL_WINSYS, test "x$NEED_NONNULL_WINSYS" = xyes)
1921 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1922 if test -n "$with_gallium_drivers"; then
1923 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1924 for driver in $gallium_drivers; do
1927 HAVE_GALLIUM_SVGA=yes
1928 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1929 gallium_require_drm_loader
1930 gallium_check_st "svga/drm" "dri/vmwgfx" "xa/vmwgfx"
1933 HAVE_GALLIUM_I915=yes
1934 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1935 gallium_require_drm_loader
1936 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
1937 gallium_check_st "i915/drm" "dri/i915" "xa/i915"
1940 HAVE_GALLIUM_ILO=yes
1941 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1942 gallium_require_drm_loader
1943 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS ilo"
1944 gallium_check_st "intel/drm" "dri/ilo" "xa/ilo"
1947 HAVE_GALLIUM_R300=yes
1948 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1949 gallium_require_drm_loader
1950 gallium_require_llvm "Gallium R300"
1951 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1952 gallium_check_st "radeon/drm" "dri/r300"
1955 HAVE_GALLIUM_R600=yes
1956 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1957 gallium_require_drm_loader
1958 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1959 if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then
1960 radeon_llvm_check "r600g"
1961 LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
1963 if test "x$enable_r600_llvm" = xyes; then
1964 USE_R600_LLVM_COMPILER=yes;
1966 if test "x$enable_opencl" = xyes; then
1967 LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
1969 gallium_check_st "radeon/drm" "dri/r600" "" "xvmc/r600" "vdpau/r600" "omx/r600"
1972 HAVE_GALLIUM_RADEONSI=yes
1973 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1974 gallium_require_drm_loader
1975 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS radeonsi"
1976 radeon_llvm_check "radeonsi"
1977 require_egl_drm "radeonsi"
1978 gallium_check_st "radeon/drm" "dri/radeonsi" "" "" "vdpau/radeonsi" "omx/radeonsi"
1981 HAVE_GALLIUM_NOUVEAU=yes
1982 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1983 gallium_require_drm_loader
1984 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau"
1985 gallium_check_st "nouveau/drm" "dri/nouveau" "xa/nouveau" "xvmc/nouveau" "vdpau/nouveau" "omx/nouveau"
1988 HAVE_GALLIUM_FREEDRENO=yes
1989 PKG_CHECK_MODULES([FREEDRENO], [libdrm_freedreno >= $LIBDRM_FREEDRENO_REQUIRED])
1990 gallium_require_drm_loader
1991 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS freedreno"
1992 gallium_check_st "freedreno/drm" "dri/freedreno" "xa/freedreno" "" ""
1995 HAVE_GALLIUM_SOFTPIPE=yes
1996 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1997 if test "x$MESA_LLVM" = x1; then
1998 HAVE_GALLIUM_LLVMPIPE=yes
1999 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
2002 if test "x$enable_dri" = xyes; then
2003 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri/swrast"
2006 if test "x$have_libdrm" = xyes; then
2007 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri/kms-swrast"
2011 HAVE_GALLIUM_VC4=yes
2012 gallium_require_drm_loader
2013 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS vc4"
2014 gallium_check_st "vc4/drm" "dri-vc4" "" "" ""
2017 i?86 | x86_64 | amd64)
2018 USE_VC4_SIMULATOR=yes
2023 AC_MSG_ERROR([Unknown Gallium driver: $driver])
2029 dnl Set LLVM_LIBS - This is done after the driver configuration so
2030 dnl that drivers can add additonal components to LLVM_COMPONENTS.
2031 dnl Previously, gallium drivers were updating LLVM_LIBS directly
2032 dnl by calling llvm-config --libs ${DRIVER_LLVM_COMPONENTS}, but
2033 dnl this was causing the same libraries to be appear multiple times
2036 if test "x$MESA_LLVM" != x0; then
2038 LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
2040 if test "x$enable_llvm_shared_libs" = xyes; then
2041 dnl We can't use $LLVM_VERSION because it has 'svn' stripped out,
2042 LLVM_SO_NAME=LLVM-`$LLVM_CONFIG --version`
2043 AS_IF([test -f "$LLVM_LIBDIR/lib$LLVM_SO_NAME.so"], [llvm_have_one_so=yes])
2045 if test "x$llvm_have_one_so" = xyes; then
2046 dnl LLVM was built using auto*, so there is only one shared object.
2047 LLVM_LIBS="-l$LLVM_SO_NAME"
2049 dnl If LLVM was built with CMake, there will be one shared object per
2051 AS_IF([test ! -f "$LLVM_LIBDIR/libLLVMTarget.so"],
2052 [AC_MSG_ERROR([Could not find llvm shared libraries:
2053 Please make sure you have built llvm with the --enable-shared option
2054 and that your llvm libraries are installed in $LLVM_LIBDIR
2055 If you have installed your llvm libraries to a different directory you
2056 can use the --with-llvm-prefix= configure flag to specify this directory.
2057 NOTE: Mesa is attempting to use llvm shared libraries by default.
2058 If you do not want to build with llvm shared libraries and instead want to
2059 use llvm static libraries then add --disable-llvm-shared-libs to your configure
2060 invocation and rebuild.])])
2062 dnl We don't need to update LLVM_LIBS in this case because the LLVM
2063 dnl install uses a shared object for each compoenent and we have
2064 dnl already added all of these objects to LLVM_LIBS.
2067 AC_MSG_WARN([Building mesa with staticly linked LLVM may cause compilation issues])
2071 AM_CONDITIONAL(HAVE_GALLIUM_SVGA, test "x$HAVE_GALLIUM_SVGA" = xyes)
2072 AM_CONDITIONAL(HAVE_GALLIUM_I915, test "x$HAVE_GALLIUM_I915" = xyes)
2073 AM_CONDITIONAL(HAVE_GALLIUM_ILO, test "x$HAVE_GALLIUM_ILO" = xyes)
2074 AM_CONDITIONAL(HAVE_GALLIUM_R300, test "x$HAVE_GALLIUM_R300" = xyes)
2075 AM_CONDITIONAL(HAVE_GALLIUM_R600, test "x$HAVE_GALLIUM_R600" = xyes)
2076 AM_CONDITIONAL(HAVE_GALLIUM_RADEONSI, test "x$HAVE_GALLIUM_RADEONSI" = xyes)
2077 AM_CONDITIONAL(HAVE_GALLIUM_RADEON_COMMON, test "x$HAVE_GALLIUM_R600" = xyes -o \
2078 "x$HAVE_GALLIUM_RADEONSI" = xyes)
2079 AM_CONDITIONAL(HAVE_GALLIUM_NOUVEAU, test "x$HAVE_GALLIUM_NOUVEAU" = xyes)
2080 AM_CONDITIONAL(HAVE_GALLIUM_FREEDRENO, test "x$HAVE_GALLIUM_FREEDRENO" = xyes)
2081 AM_CONDITIONAL(HAVE_GALLIUM_SOFTPIPE, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes)
2082 AM_CONDITIONAL(HAVE_GALLIUM_LLVMPIPE, test "x$HAVE_GALLIUM_LLVMPIPE" = xyes)
2083 AM_CONDITIONAL(HAVE_GALLIUM_VC4, test "x$HAVE_GALLIUM_VC4" = xyes)
2085 AM_CONDITIONAL(NEED_GALLIUM_SOFTPIPE_DRIVER, test "x$HAVE_GALLIUM_SVGA" = xyes -o \
2086 "x$HAVE_GALLIUM_SOFTPIPE" = xyes)
2087 AM_CONDITIONAL(NEED_GALLIUM_LLVMPIPE_DRIVER, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes \
2088 && test "x$MESA_LLVM" = x1)
2090 # Enable static gallium targets for now.
2091 # Do not touch this unless you know what you are doing.
2092 AM_CONDITIONAL(HAVE_GALLIUM_STATIC_TARGETS, test "xyes" = xyes)
2094 # NOTE: anything using xcb or other client side libs ends up in separate
2095 # _CLIENT variables. The pipe loader is built in two variants,
2096 # one that is standalone and does not link any x client libs (for
2097 # use by XA tracker in particular, but could be used in any case
2098 # where communication with xserver is not desired).
2099 if test "x$enable_gallium_loader" = xyes; then
2100 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
2102 if test "x$NEED_WINSYS_XLIB" = xyes; then
2103 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_XLIB"
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"
2112 PKG_CHECK_MODULES([GALLIUM_PIPE_LOADER_XCB], [xcb xcb-dri2],
2113 pipe_loader_have_xcb=yes, pipe_loader_have_xcb=no)
2114 if test "x$pipe_loader_have_xcb" = xyes; then
2115 GALLIUM_PIPE_LOADER_CLIENT_DEFINES="$GALLIUM_PIPE_LOADER_CLIENT_DEFINES -DHAVE_PIPE_LOADER_XCB"
2116 GALLIUM_PIPE_LOADER_CLIENT_LIBS="$GALLIUM_PIPE_LOADER_CLIENT_LIBS $GALLIUM_PIPE_LOADER_XCB_LIBS $LIBDRM_LIBS"
2120 GALLIUM_PIPE_LOADER_CLIENT_DEFINES="$GALLIUM_PIPE_LOADER_CLIENT_DEFINES $GALLIUM_PIPE_LOADER_DEFINES"
2121 GALLIUM_PIPE_LOADER_CLIENT_LIBS="$GALLIUM_PIPE_LOADER_CLIENT_LIBS $GALLIUM_PIPE_LOADER_LIBS"
2123 AC_SUBST([GALLIUM_PIPE_LOADER_DEFINES])
2124 AC_SUBST([GALLIUM_PIPE_LOADER_LIBS])
2125 AC_SUBST([GALLIUM_PIPE_LOADER_CLIENT_DEFINES])
2126 AC_SUBST([GALLIUM_PIPE_LOADER_CLIENT_LIBS])
2129 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
2130 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
2131 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
2132 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
2133 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
2134 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
2136 AM_CONDITIONAL(NEED_RADEON_DRM_WINSYS, test "x$NEED_NONNULL_WINSYS" = xyes -a \
2137 "x$HAVE_GALLIUM_R300" = xyes -o \
2138 "x$HAVE_GALLIUM_R600" = xyes -o \
2139 "x$HAVE_GALLIUM_RADEONSI" = xyes)
2140 AM_CONDITIONAL(NEED_WINSYS_WRAPPER, test "x$HAVE_GALLIUM_I915" = xyes -o \
2141 "x$HAVE_GALLIUM_SVGA" = xyes)
2142 AM_CONDITIONAL(NEED_WINSYS_XLIB, test "x$NEED_WINSYS_XLIB" = xyes)
2143 AM_CONDITIONAL(NEED_RADEON_LLVM, test x$NEED_RADEON_LLVM = xyes)
2144 AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes)
2145 AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes)
2146 AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes)
2147 AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
2148 AM_CONDITIONAL(HAVE_MESA_LLVM, test x$MESA_LLVM = x1)
2149 AM_CONDITIONAL(USE_VC4_SIMULATOR, test x$USE_VC4_SIMULATOR = xyes)
2150 if test "x$USE_VC4_SIMULATOR" = xyes -a "x$HAVE_GALLIUM_ILO" = xyes; then
2151 AC_MSG_ERROR([VC4 simulator on x86 replaces i965 driver build, so ilo must be disabled.])
2156 AM_CONDITIONAL(DRICOMMON_NEED_LIBDRM, test "x$DRICOMMON_NEED_LIBDRM" = xyes)
2157 AM_CONDITIONAL(HAVE_LIBDRM, test "x$have_libdrm" = xyes)
2158 AM_CONDITIONAL(HAVE_X11_DRIVER, test "x$enable_xlib_glx" = xyes)
2159 AM_CONDITIONAL(HAVE_OSMESA, test "x$enable_osmesa" = xyes)
2160 AM_CONDITIONAL(HAVE_GALLIUM_OSMESA, test "x$enable_gallium_osmesa" = xyes)
2162 AM_CONDITIONAL(HAVE_X86_ASM, test "x$asm_arch" = xx86 -o "x$asm_arch" = xx86_64)
2163 AM_CONDITIONAL(HAVE_X86_64_ASM, test "x$asm_arch" = xx86_64)
2164 AM_CONDITIONAL(HAVE_SPARC_ASM, test "x$asm_arch" = xsparc)
2166 AC_SUBST([VDPAU_MAJOR], 1)
2167 AC_SUBST([VDPAU_MINOR], 0)
2169 AC_SUBST([XVMC_MAJOR], 1)
2170 AC_SUBST([XVMC_MINOR], 0)
2172 XA_HEADER="$srcdir/src/gallium/state_trackers/xa/xa_tracker.h"
2173 XA_MAJOR=`grep "#define XA_TRACKER_VERSION_MAJOR" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_MAJOR //'`
2174 XA_MINOR=`grep "#define XA_TRACKER_VERSION_MINOR" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_MINOR //'`
2175 XA_TINY=`grep "#define XA_TRACKER_VERSION_PATCH" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_PATCH //'`
2177 AC_SUBST([XA_MAJOR], $XA_MAJOR)
2178 AC_SUBST([XA_MINOR], $XA_MINOR)
2179 AC_SUBST([XA_TINY], $XA_TINY)
2180 AC_SUBST([XA_VERSION], "$XA_MAJOR.$XA_MINOR.$XA_TINY")
2182 dnl Restore LDFLAGS and CPPFLAGS
2183 LDFLAGS="$_SAVE_LDFLAGS"
2184 CPPFLAGS="$_SAVE_CPPFLAGS"
2186 dnl Suppress clang's warnings about unused CFLAGS and CXXFLAGS
2187 if test "x$acv_mesa_CLANG" = xyes; then
2188 CFLAGS="$CFLAGS -Qunused-arguments"
2189 CXXFLAGS="$CXXFLAGS -Qunused-arguments"
2192 dnl Add user CFLAGS and CXXFLAGS
2193 CFLAGS="$CFLAGS $USER_CFLAGS"
2194 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
2196 dnl Substitute the config
2197 AC_CONFIG_FILES([Makefile
2199 src/egl/drivers/dri2/Makefile
2200 src/egl/main/Makefile
2202 src/egl/wayland/Makefile
2203 src/egl/wayland/wayland-drm/Makefile
2204 src/egl/wayland/wayland-egl/Makefile
2205 src/egl/wayland/wayland-egl/wayland-egl.pc
2206 src/gallium/Makefile
2207 src/gallium/auxiliary/Makefile
2208 src/gallium/auxiliary/pipe-loader/Makefile
2209 src/gallium/drivers/freedreno/Makefile
2210 src/gallium/drivers/galahad/Makefile
2211 src/gallium/drivers/i915/Makefile
2212 src/gallium/drivers/identity/Makefile
2213 src/gallium/drivers/ilo/Makefile
2214 src/gallium/drivers/llvmpipe/Makefile
2215 src/gallium/drivers/noop/Makefile
2216 src/gallium/drivers/nouveau/Makefile
2217 src/gallium/drivers/r300/Makefile
2218 src/gallium/drivers/r600/Makefile
2219 src/gallium/drivers/radeon/Makefile
2220 src/gallium/drivers/radeonsi/Makefile
2221 src/gallium/drivers/rbug/Makefile
2222 src/gallium/drivers/softpipe/Makefile
2223 src/gallium/drivers/svga/Makefile
2224 src/gallium/drivers/trace/Makefile
2225 src/gallium/drivers/vc4/Makefile
2226 src/gallium/state_trackers/clover/Makefile
2227 src/gallium/state_trackers/dri/Makefile
2228 src/gallium/state_trackers/egl/Makefile
2229 src/gallium/state_trackers/gbm/Makefile
2230 src/gallium/state_trackers/glx/xlib/Makefile
2231 src/gallium/state_trackers/omx/Makefile
2232 src/gallium/state_trackers/osmesa/Makefile
2233 src/gallium/state_trackers/vdpau/Makefile
2234 src/gallium/state_trackers/vega/Makefile
2235 src/gallium/state_trackers/xa/Makefile
2236 src/gallium/state_trackers/xvmc/Makefile
2237 src/gallium/targets/dri/Makefile
2238 src/gallium/targets/egl-static/Makefile
2239 src/gallium/targets/gbm/Makefile
2240 src/gallium/targets/libgl-xlib/Makefile
2241 src/gallium/targets/omx/Makefile
2242 src/gallium/targets/opencl/Makefile
2243 src/gallium/targets/osmesa/Makefile
2244 src/gallium/targets/osmesa/osmesa.pc
2245 src/gallium/targets/pipe-loader/Makefile
2246 src/gallium/targets/vdpau/Makefile
2247 src/gallium/targets/xa/Makefile
2248 src/gallium/targets/xa/xatracker.pc
2249 src/gallium/targets/xvmc/Makefile
2250 src/gallium/tests/trivial/Makefile
2251 src/gallium/tests/unit/Makefile
2252 src/gallium/winsys/freedreno/drm/Makefile
2253 src/gallium/winsys/i915/drm/Makefile
2254 src/gallium/winsys/intel/drm/Makefile
2255 src/gallium/winsys/nouveau/drm/Makefile
2256 src/gallium/winsys/radeon/drm/Makefile
2257 src/gallium/winsys/svga/drm/Makefile
2258 src/gallium/winsys/sw/dri/Makefile
2259 src/gallium/winsys/sw/fbdev/Makefile
2260 src/gallium/winsys/sw/kms-dri/Makefile
2261 src/gallium/winsys/sw/null/Makefile
2262 src/gallium/winsys/sw/wayland/Makefile
2263 src/gallium/winsys/sw/wrapper/Makefile
2264 src/gallium/winsys/sw/xlib/Makefile
2265 src/gallium/winsys/vc4/drm/Makefile
2270 src/glx/apple/Makefile
2271 src/glx/tests/Makefile
2275 src/mapi/es1api/Makefile
2276 src/mapi/es1api/glesv1_cm.pc
2277 src/mapi/es2api/Makefile
2278 src/mapi/es2api/glesv2.pc
2279 src/mapi/glapi/Makefile
2280 src/mapi/glapi/gen/Makefile
2281 src/mapi/glapi/tests/Makefile
2282 src/mapi/shared-glapi/Makefile
2283 src/mapi/shared-glapi/tests/Makefile
2284 src/mapi/vgapi/Makefile
2285 src/mapi/vgapi/vg.pc
2288 src/mesa/drivers/dri/dri.pc
2289 src/mesa/drivers/dri/common/Makefile
2290 src/mesa/drivers/dri/common/xmlpool/Makefile
2291 src/mesa/drivers/dri/i915/Makefile
2292 src/mesa/drivers/dri/i965/Makefile
2293 src/mesa/drivers/dri/Makefile
2294 src/mesa/drivers/dri/nouveau/Makefile
2295 src/mesa/drivers/dri/r200/Makefile
2296 src/mesa/drivers/dri/radeon/Makefile
2297 src/mesa/drivers/dri/swrast/Makefile
2298 src/mesa/drivers/osmesa/Makefile
2299 src/mesa/drivers/osmesa/osmesa.pc
2300 src/mesa/drivers/x11/Makefile
2301 src/mesa/main/tests/Makefile
2303 src/util/tests/hash_table/Makefile])
2305 dnl Sort the dirs alphabetically
2306 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2307 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2308 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2309 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2314 dnl Output some configuration info for the user
2317 echo " prefix: $prefix"
2318 echo " exec_prefix: $exec_prefix"
2319 echo " libdir: $libdir"
2320 echo " includedir: $includedir"
2324 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
2325 echo " OpenVG: $enable_openvg"
2329 case "x$enable_osmesa$enable_gallium_osmesa" in
2331 echo " OSMesa: lib$OSMESA_LIB (Gallium)"
2334 echo " OSMesa: lib$OSMESA_LIB"
2342 if test "x$enable_dri" != xno; then
2343 echo " DRI platform: $dri_platform"
2344 if test -z "$DRI_DIRS"; then
2345 echo " DRI drivers: no"
2347 echo " DRI drivers: $DRI_DIRS"
2349 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
2352 case "x$enable_glx$enable_xlib_glx" in
2354 echo " GLX: Xlib-based"
2357 echo " GLX: DRI-based"
2360 echo " GLX: $enable_glx"
2366 echo " EGL: $enable_egl"
2367 if test "$enable_egl" = yes; then
2368 echo " EGL platforms: $egl_platforms"
2371 if test "x$HAVE_EGL_DRIVER_DRI2" != "x"; then
2372 egl_drivers="$egl_drivers builtin:egl_dri2"
2375 if test "x$enable_gallium_egl" = xyes; then
2376 echo " EGL drivers: ${egl_drivers} egl_gallium"
2377 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2379 echo " EGL drivers: $egl_drivers"
2384 if test "x$MESA_LLVM" = x1; then
2386 echo " llvm-config: $LLVM_CONFIG"
2387 echo " llvm-version: $LLVM_VERSION"
2393 if test -n "$with_gallium_drivers"; then
2394 echo " Gallium: yes"
2395 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2396 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2397 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2398 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2406 echo " Shared libs: $enable_shared"
2407 echo " Static libs: $enable_static"
2408 echo " Shared-glapi: $enable_shared_glapi"
2410 dnl Compiler options
2411 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2412 cflags=`echo $CFLAGS | \
2413 $SED 's/^ *//;s/ */ /;s/ *$//'`
2414 cxxflags=`echo $CXXFLAGS | \
2415 $SED 's/^ *//;s/ */ /;s/ *$//'`
2416 defines=`echo $DEFINES | $SED 's/^ *//;s/ */ /;s/ *$//'`
2418 echo " CFLAGS: $cflags"
2419 echo " CXXFLAGS: $cxxflags"
2420 echo " Macros: $defines"
2422 if test "x$MESA_LLVM" = x1; then
2423 echo " LLVM_CFLAGS: $LLVM_CFLAGS"
2424 echo " LLVM_CXXFLAGS: $LLVM_CXXFLAGS"
2425 echo " LLVM_CPPFLAGS: $LLVM_CPPFLAGS"
2428 echo " PYTHON2: $PYTHON2"
2431 echo " Run '${MAKE-make}' to build Mesa"