1 dnl Process this file with autoconf to create configure.
5 dnl Versioning - scrape the version from configs/default
6 m4_define([mesa_version],
7 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
8 m4_ifval(mesa_version,,
9 [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
11 dnl Tell the user about autoconf.html in the --help output
12 m4_divert_once([HELP_END], [
13 See docs/autoconf.html for more details on the options for Mesa.])
15 AC_INIT([Mesa],[mesa_version],
16 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17 AC_CONFIG_AUX_DIR([bin])
19 AM_INIT_AUTOMAKE([foreign])
21 # Support silent build rules, requires at least automake-1.11. Disable
22 # by either passing --disable-silent-rules to configure or passing V=1
24 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
27 LT_INIT([disable-static])
29 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
31 USER_CXXFLAGS="$CXXFLAGS"
33 dnl Versions for external dependencies
34 LIBDRM_REQUIRED=2.4.24
35 LIBDRM_RADEON_REQUIRED=2.4.24
36 LIBDRM_INTEL_REQUIRED=2.4.30
37 LIBDRM_NOUVEAU_REQUIRED=0.6
38 DRI2PROTO_REQUIRED=2.6
39 GLPROTO_REQUIRED=1.4.14
40 LIBDRM_XORG_REQUIRED=2.4.24
41 LIBKMS_XORG_REQUIRED=1.0.0
47 AC_CHECK_PROGS([MAKE], [gmake make])
48 AC_CHECK_PROGS([PYTHON2], [python2 python])
51 AC_PATH_PROG([MKDEP], [makedepend])
53 if test "x$MKDEP" = "x"; then
54 AC_MSG_ERROR([makedepend is required to build Mesa])
57 AC_PATH_PROG([FLEX], [flex])
58 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
60 AC_PATH_PROG([BISON], [bison])
61 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
63 dnl Our fallback install-sh is a symlink to minstall. Use the existing
64 dnl configuration in that case.
66 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
68 dnl We need a POSIX shell for parts of the build. Assume we have one
72 # Solaris /bin/sh is too old/non-POSIX compliant
73 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
78 AC_PATH_PROG([GTESTCONFIG], [gtest-config])
79 if test "x$GTESTCONFIG" != "x"; then
80 GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
81 GTEST_LIBS=`gtest-config --ldflags --libs`
82 AC_SUBST([GTEST_CFLAGS])
83 AC_SUBST([GTEST_LIBS])
88 AM_CONDITIONAL(HAVE_GTEST, test x$HAVE_GTEST = xyes)
90 dnl clang is mostly GCC-compatible, but its version is much lower,
91 dnl so we have to check for it.
92 AC_MSG_CHECKING([if compiling with clang])
95 [AC_LANG_PROGRAM([], [[
100 [CLANG=yes], [CLANG=no])
102 AC_MSG_RESULT([$CLANG])
104 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
105 dnl versions are explictly not supported.
106 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
107 AC_MSG_CHECKING([whether gcc version is sufficient])
111 GCC_VERSION=`$CC -dumpversion`
112 if test $? -eq 0; then
113 major=`echo $GCC_VERSION | cut -d. -f1`
114 minor=`echo $GCC_VERSION | cut -d. -f2`
117 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
119 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
126 MKDEP_OPTIONS=-fdepend
127 dnl Ask gcc where it's keeping its secret headers
128 if test "x$GCC" = xyes; then
129 for dir in include include-fixed; do
130 GCC_INCLUDES=`$CC -print-file-name=$dir`
131 if test "x$GCC_INCLUDES" != x && \
132 test "$GCC_INCLUDES" != "$dir" && \
133 test -d "$GCC_INCLUDES"; then
134 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
138 AC_SUBST([MKDEP_OPTIONS])
140 dnl Make sure the pkg-config macros are defined
141 m4_ifndef([PKG_PROG_PKG_CONFIG],
142 [m4_fatal([Could not locate the pkg-config autoconf macros.
143 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
144 are in a different location, try setting the environment variable
145 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
146 PKG_PROG_PKG_CONFIG()
148 dnl LIB_DIR - library basename
149 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
152 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
153 _SAVE_LDFLAGS="$LDFLAGS"
154 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
155 AC_SUBST([EXTRA_LIB_PATH])
157 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
158 _SAVE_CPPFLAGS="$CPPFLAGS"
159 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
160 AC_SUBST([X11_INCLUDES])
167 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
170 DEFINES="$DEFINES -DPTHREADS -DSVR4"
173 DEFINES="$DEFINES -DPTHREADS"
177 dnl Add flags for gcc and g++
178 if test "x$GCC" = xyes; then
179 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
181 # Enable -fvisibility=hidden if using a gcc that supports it
182 save_CFLAGS="$CFLAGS"
183 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
184 VISIBILITY_CFLAGS="-fvisibility=hidden"
185 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
186 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
187 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
189 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
192 # Work around aliasing bugs - developers should comment this out
193 CFLAGS="$CFLAGS -fno-strict-aliasing"
195 # gcc's builtin memcmp is slower than glibc's
196 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
197 CFLAGS="$CFLAGS -fno-builtin-memcmp"
199 if test "x$GXX" = xyes; then
200 CXXFLAGS="$CXXFLAGS -Wall"
202 # Enable -fvisibility=hidden if using a gcc that supports it
203 save_CXXFLAGS="$CXXFLAGS"
204 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
205 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
206 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
208 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
209 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
212 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
213 CXXFLAGS=$save_CXXFLAGS
215 # Work around aliasing bugs - developers should comment this out
216 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
218 # gcc's builtin memcmp is slower than glibc's
219 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
220 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
223 dnl even if the compiler appears to support it, using visibility attributes isn't
224 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
228 VISIBILITY_CXXFLAGS=""
232 AC_SUBST([VISIBILITY_CFLAGS])
233 AC_SUBST([VISIBILITY_CXXFLAGS])
235 dnl These should be unnecessary, but let the user set them if they want
236 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
237 Default is to use CFLAGS.])
238 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
239 compiler. Default is to use CFLAGS.])
240 AC_SUBST([OPT_FLAGS])
241 AC_SUBST([ARCH_FLAGS])
244 dnl Hacks to enable 32 or 64 bit build
246 AC_ARG_ENABLE([32-bit],
247 [AS_HELP_STRING([--enable-32-bit],
248 [build 32-bit libraries @<:@default=auto@:>@])],
249 [enable_32bit="$enableval"],
252 if test "x$enable_32bit" = xyes; then
253 if test "x$GCC" = xyes; then
254 CFLAGS="$CFLAGS -m32"
255 ARCH_FLAGS="$ARCH_FLAGS -m32"
257 if test "x$GXX" = xyes; then
258 CXXFLAGS="$CXXFLAGS -m32"
261 AC_ARG_ENABLE([64-bit],
262 [AS_HELP_STRING([--enable-64-bit],
263 [build 64-bit libraries @<:@default=auto@:>@])],
264 [enable_64bit="$enableval"],
267 if test "x$enable_64bit" = xyes; then
268 if test "x$GCC" = xyes; then
269 CFLAGS="$CFLAGS -m64"
271 if test "x$GXX" = xyes; then
272 CXXFLAGS="$CXXFLAGS -m64"
277 dnl shared/static libraries, mimic libtool options
279 AC_ARG_ENABLE([static],
280 [AS_HELP_STRING([--enable-static],
281 [build static libraries @<:@default=disabled@:>@])],
282 [enable_static="$enableval"],
285 case "x$enable_static" in
287 x ) enable_static=no ;;
289 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
292 AC_ARG_ENABLE([shared],
293 [AS_HELP_STRING([--disable-shared],
294 [build shared libraries @<:@default=enabled@:>@])],
295 [enable_shared="$enableval"],
298 case "x$enable_shared" in
300 x ) enable_shared=yes ;;
302 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
306 dnl Can't have static and shared libraries, default to static if user
307 dnl explicitly requested. If both disabled, set to static since shared
308 dnl was explicitly requirested.
309 case "x$enable_static$enable_shared" in
311 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
315 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
323 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
324 if test "$enable_static" = yes; then
325 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
327 AC_SUBST([MKLIB_OPTIONS])
330 dnl other compiler options
332 AC_ARG_ENABLE([debug],
333 [AS_HELP_STRING([--enable-debug],
334 [use debug compiler flags and macros @<:@default=disabled@:>@])],
335 [enable_debug="$enableval"],
338 if test "x$enable_debug" = xyes; then
339 DEFINES="$DEFINES -DDEBUG"
340 if test "x$GCC" = xyes; then
343 if test "x$GXX" = xyes; then
344 CXXFLAGS="$CXXFLAGS -g"
351 LIB_PREFIX_GLOB='lib'
352 LIB_VERSION_SEPARATOR='.'
353 if test "$enable_static" = yes; then
358 LIB_EXTENSION='dylib' ;;
360 dnl prefix can be 'cyg' or 'lib'
361 LIB_PREFIX_GLOB='???'
362 LIB_VERSION_SEPARATOR='-'
363 LIB_EXTENSION='dll' ;;
367 LIB_EXTENSION='so' ;;
372 dnl Mangled Mesa support
374 AC_ARG_ENABLE([mangling],
375 [AS_HELP_STRING([--enable-mangling],
376 [enable mangled symbols and library name @<:@default=disabled@:>@])],
377 [enable_mangling="${enableval}"],
383 if test "x${enable_mangling}" = "xyes" ; then
384 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
387 OSMESA_LIB="MangledOSMesa"
391 AC_SUBST([OSMESA_LIB])
394 dnl potentially-infringing-but-nobody-knows-for-sure stuff
396 AC_ARG_ENABLE([texture-float],
397 [AS_HELP_STRING([--enable-texture-float],
398 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
399 [enable_texture_float="$enableval"],
400 [enable_texture_float=no]
402 if test "x$enable_texture_float" = xyes; then
403 AC_MSG_WARN([Floating-point textures enabled.])
404 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
405 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
408 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
409 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
410 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
411 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
412 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
413 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
414 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
415 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
416 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
417 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
419 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
420 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
421 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
422 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
423 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
424 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
425 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
426 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
427 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
428 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
429 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
431 AC_SUBST([GL_LIB_NAME])
432 AC_SUBST([GLU_LIB_NAME])
433 AC_SUBST([OSMESA_LIB_NAME])
434 AC_SUBST([EGL_LIB_NAME])
435 AC_SUBST([GLESv1_CM_LIB_NAME])
436 AC_SUBST([GLESv2_LIB_NAME])
437 AC_SUBST([VG_LIB_NAME])
438 AC_SUBST([GLAPI_LIB_NAME])
439 AC_SUBST([WAYLAND_EGL_LIB_NAME])
440 AC_SUBST([GBM_LIB_NAME])
442 AC_SUBST([GL_LIB_GLOB])
443 AC_SUBST([GLU_LIB_GLOB])
444 AC_SUBST([OSMESA_LIB_GLOB])
445 AC_SUBST([EGL_LIB_GLOB])
446 AC_SUBST([GLESv1_CM_LIB_GLOB])
447 AC_SUBST([GLESv2_LIB_GLOB])
448 AC_SUBST([VG_LIB_GLOB])
449 AC_SUBST([GLAPI_LIB_GLOB])
450 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
451 AC_SUBST([GBM_LIB_GLOB])
454 dnl Arch/platform-specific settings
457 [AS_HELP_STRING([--disable-asm],
458 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
459 [enable_asm="$enableval"],
466 AC_MSG_CHECKING([whether to enable assembly])
467 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
468 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
469 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
473 AC_MSG_RESULT([no, cross compiling])
477 # check for supported arches
478 if test "x$enable_asm" = xyes; then
482 linux* | *freebsd* | dragonfly* | *netbsd*)
483 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
489 linux* | *freebsd* | dragonfly* | *netbsd*)
490 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
512 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
513 MESA_ASM_SOURCES='$(X86_SOURCES)'
514 GLAPI_ASM_SOURCES='$(X86_API)'
515 AC_MSG_RESULT([yes, x86])
518 ASM_FLAGS="-DUSE_X86_64_ASM"
519 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
520 GLAPI_ASM_SOURCES='$(X86-64_API)'
521 AC_MSG_RESULT([yes, x86_64])
524 ASM_FLAGS="-DUSE_SPARC_ASM"
525 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
526 GLAPI_ASM_SOURCES='$(SPARC_API)'
527 AC_MSG_RESULT([yes, sparc])
530 AC_MSG_RESULT([no, platform not supported])
534 AC_SUBST([ASM_FLAGS])
535 AC_SUBST([MESA_ASM_SOURCES])
536 AC_SUBST([GLAPI_ASM_SOURCES])
541 dnl Check to see if dlopen is in default libraries (like Solaris, which
542 dnl has it in libc), or if libdl is needed to get it.
543 AC_CHECK_FUNC([dlopen], [],
544 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
545 AC_SUBST([DLOPEN_LIBS])
547 dnl See if posix_memalign is available
548 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
550 dnl SELinux awareness.
551 AC_ARG_ENABLE([selinux],
552 [AS_HELP_STRING([--enable-selinux],
553 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
554 [MESA_SELINUX="$enableval"],
556 if test "x$enable_selinux" = "xyes"; then
557 AC_CHECK_HEADER([selinux/selinux.h],[],
558 [AC_MSG_ERROR([SELinux headers not found])])
559 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
560 [AC_MSG_ERROR([SELinux library not found])])
561 SELINUX_LIBS="-lselinux"
562 DEFINES="$DEFINES -DMESA_SELINUX"
566 AC_ARG_ENABLE([opengl],
567 [AS_HELP_STRING([--disable-opengl],
568 [disable support for standard OpenGL API @<:@default=no@:>@])],
569 [enable_opengl="$enableval"],
571 AC_ARG_ENABLE([gles1],
572 [AS_HELP_STRING([--enable-gles1],
573 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
574 [enable_gles1="$enableval"],
576 AC_ARG_ENABLE([gles2],
577 [AS_HELP_STRING([--enable-gles2],
578 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
579 [enable_gles2="$enableval"],
581 AC_ARG_ENABLE([openvg],
582 [AS_HELP_STRING([--enable-openvg],
583 [enable support for OpenVG API @<:@default=no@:>@])],
584 [enable_openvg="$enableval"],
588 [AS_HELP_STRING([--enable-dri],
589 [enable DRI modules @<:@default=auto@:>@])],
590 [enable_dri="$enableval"],
593 [AS_HELP_STRING([--enable-glx],
594 [enable GLX library @<:@default=auto@:>@])],
595 [enable_glx="$enableval"],
597 AC_ARG_ENABLE([osmesa],
598 [AS_HELP_STRING([--enable-osmesa],
599 [enable OSMesa library @<:@default=auto@:>@])],
600 [enable_osmesa="$enableval"],
601 [enable_osmesa=auto])
603 [AS_HELP_STRING([--disable-egl],
604 [disable EGL library @<:@default=enabled@:>@])],
605 [enable_egl="$enableval"],
608 AC_ARG_ENABLE([xorg],
609 [AS_HELP_STRING([--enable-xorg],
610 [enable support for X.Org DDX API @<:@default=no@:>@])],
611 [enable_xorg="$enableval"],
614 [AS_HELP_STRING([--enable-xa],
615 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
616 [enable_xa="$enableval"],
618 AC_ARG_ENABLE([d3d1x],
619 [AS_HELP_STRING([--enable-d3d1x],
620 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
621 [enable_d3d1x="$enableval"],
624 [AS_HELP_STRING([--enable-gbm],
625 [enable gbm library @<:@default=auto@:>@])],
626 [enable_gbm="$enableval"],
629 AC_ARG_ENABLE([xvmc],
630 [AS_HELP_STRING([--enable-xvmc],
631 [enable xvmc library @<:@default=auto@:>@])],
632 [enable_xvmc="$enableval"],
634 AC_ARG_ENABLE([vdpau],
635 [AS_HELP_STRING([--enable-vdpau],
636 [enable vdpau library @<:@default=auto@:>@])],
637 [enable_vdpau="$enableval"],
640 [AS_HELP_STRING([--enable-va],
641 [enable va library @<:@default=auto@:>@])],
642 [enable_va="$enableval"],
645 AC_ARG_ENABLE([xlib_glx],
646 [AS_HELP_STRING([--enable-xlib-glx],
647 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
648 [enable_xlib_glx="$enableval"],
649 [enable_xlib_glx=auto])
650 AC_ARG_ENABLE([gallium_egl],
651 [AS_HELP_STRING([--enable-gallium-egl],
652 [enable optional EGL state tracker (not required
653 for EGL support in Gallium with OpenGL and OpenGL ES)
654 @<:@default=disable@:>@])],
655 [enable_gallium_egl="$enableval"],
656 [enable_gallium_egl=no])
657 AC_ARG_ENABLE([gallium_gbm],
658 [AS_HELP_STRING([--enable-gallium-gbm],
659 [enable optional gbm state tracker (not required for
660 gbm support in Gallium)
661 @<:@default=auto@:>@])],
662 [enable_gallium_gbm="$enableval"],
663 [enable_gallium_gbm=auto])
665 # Option for Gallium drivers
666 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
668 AC_ARG_WITH([gallium-drivers],
669 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
670 [comma delimited Gallium drivers list, e.g.
671 "i915,nouveau,r300,r600,svga,swrast"
672 @<:@default=r300,r600,swrast@:>@])],
673 [with_gallium_drivers="$withval"],
674 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
676 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
677 # here so that the script doesn't choke on an unknown driver name later.
678 case "$with_gallium_drivers" in
679 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
680 no) with_gallium_drivers='' ;;
683 if test "x$enable_opengl" = xno -a \
684 "x$enable_gles1" = xno -a \
685 "x$enable_gles2" = xno -a \
686 "x$enable_openvg" = xno -a \
687 "x$enable_xorg" = xno -a \
688 "x$enable_xa" = xno -a \
689 "x$enable_d3d1x" = xno -a \
690 "x$enable_xvmc" = xno -a \
691 "x$enable_vdpau" = xno -a \
692 "x$enable_va" = xno; then
693 AC_MSG_ERROR([at least one API should be enabled])
697 if test "x$enable_opengl" = xno; then
698 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
700 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
702 if test "x$enable_gles1" = xyes; then
703 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
705 if test "x$enable_gles2" = xyes; then
706 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
708 AC_SUBST([API_DEFINES])
711 dnl Driver configuration. Options are xlib, dri and osmesa right now.
712 dnl More later: fbdev, ...
714 default_driver="xlib"
719 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
722 *freebsd* | dragonfly* | *netbsd*)
724 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
729 if test "x$enable_opengl" = xno; then
733 AC_ARG_WITH([driver],
734 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
735 [mesa_driver="$withval"],
737 dnl Check for valid option
738 case "x$mesa_driver" in
739 xxlib|xdri|xosmesa|xno)
740 if test "x$enable_dri" != xauto -o \
741 "x$enable_glx" != xauto -o \
742 "x$enable_osmesa" != xauto -o \
743 "x$enable_xlib_glx" != xauto; then
744 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
748 mesa_driver="$default_driver"
751 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
755 # map $mesa_driver to APIs
756 if test "x$enable_dri" = xauto; then
757 case "x$mesa_driver" in
758 xdri) enable_dri=yes ;;
763 if test "x$enable_glx" = xauto; then
764 case "x$mesa_driver" in
765 xdri|xxlib) enable_glx=yes ;;
770 if test "x$enable_osmesa" = xauto; then
771 case "x$mesa_driver" in
772 xxlib|xosmesa) enable_osmesa=yes ;;
773 *) enable_osmesa=no ;;
777 if test "x$enable_xlib_glx" = xauto; then
778 case "x$mesa_driver" in
779 xxlib) enable_xlib_glx=yes ;;
780 *) enable_xlib_glx=no ;;
784 if test "x$enable_glx" = xno; then
789 dnl Driver specific build directories
792 dnl this variable will be prepended to SRC_DIRS and is not exported
793 CORE_DIRS="mapi/shared-glapi"
797 GALLIUM_DIRS="auxiliary drivers state_trackers"
798 GALLIUM_TARGET_DIRS=""
799 GALLIUM_WINSYS_DIRS="sw"
800 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
801 GALLIUM_STATE_TRACKERS_DIRS=""
803 # build glapi if OpenGL is enabled
804 if test "x$enable_opengl" = xyes; then
805 CORE_DIRS="$CORE_DIRS mapi/glapi"
808 # build es1api if OpenGL ES 1.x is enabled
809 if test "x$enable_gles1" = xyes; then
810 CORE_DIRS="$CORE_DIRS mapi/es1api"
813 # build es2api if OpenGL ES 2.x is enabled
814 if test "x$enable_gles2" = xyes; then
815 CORE_DIRS="$CORE_DIRS mapi/es2api"
818 # build glsl and mesa if OpenGL or OpenGL ES is enabled
819 case "x$enable_opengl$enable_gles1$enable_gles2" in
821 CORE_DIRS="$CORE_DIRS glsl mesa"
825 case "x$enable_glx$enable_xlib_glx" in
827 DRIVER_DIRS="$DRIVER_DIRS x11"
828 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
829 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
830 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
831 HAVE_WINSYS_XLIB="yes"
835 SRC_DIRS="$SRC_DIRS glx"
839 if test "x$enable_dri" = xyes; then
840 DRIVER_DIRS="$DRIVER_DIRS dri"
842 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
843 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
847 if test "x$enable_osmesa" = xyes; then
848 # the empty space matters for osmesa... (see src/mesa/Makefile)
849 if test -n "$DRIVER_DIRS"; then
850 DRIVER_DIRS="$DRIVER_DIRS osmesa"
858 AC_SUBST([DRIVER_DIRS])
859 AC_SUBST([GALLIUM_DIRS])
860 AC_SUBST([GALLIUM_TARGET_DIRS])
861 AC_SUBST([GALLIUM_WINSYS_DIRS])
862 AC_SUBST([GALLIUM_DRIVERS_DIRS])
863 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
864 AC_SUBST([MESA_LLVM])
867 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
868 [have_libdrm=yes], [have_libdrm=no])
870 if test "x$enable_dri" = xyes; then
871 # DRI must be shared, I think
872 if test "$enable_static" = yes; then
873 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
876 # not a hard requirement as swrast does not depend on it
877 if test "x$have_libdrm" = xyes; then
878 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
883 dnl Find out if X is available. The variable have_x is set if libX11 is
884 dnl found to mimic AC_PATH_XTRA.
886 if test -n "$PKG_CONFIG"; then
887 AC_MSG_CHECKING([pkg-config files for X11 are available])
888 PKG_CHECK_EXISTS([x11],[
894 AC_MSG_RESULT([$x11_pkgconfig])
898 dnl Use the autoconf macro if no pkg-config files
899 if test "$x11_pkgconfig" = yes; then
900 PKG_CHECK_MODULES([X11], [x11])
903 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
904 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
905 AC_SUBST([X11_CFLAGS])
909 dnl Try to tell the user that the --x-* options are only used when
910 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
911 m4_divert_once([HELP_BEGIN],
912 [These options are only used when the X libraries cannot be found by the
913 pkg-config utility.])
915 dnl We need X for xlib and dri, so bomb now if it's not found
916 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
917 AC_MSG_ERROR([X11 development libraries needed for GLX])
920 if test "x$enable_glx" = xyes; then
921 DEFINES="$DEFINES -DUSE_XCB"
924 dnl Direct rendering or just indirect rendering
927 dnl Disable by default on GNU/Hurd
928 driglx_direct_default="no"
931 dnl Disable by default on cygwin
932 driglx_direct_default="no"
935 driglx_direct_default="yes"
938 AC_ARG_ENABLE([driglx-direct],
939 [AS_HELP_STRING([--disable-driglx-direct],
940 [enable direct rendering in GLX and EGL for DRI \
941 @<:@default=auto@:>@])],
942 [driglx_direct="$enableval"],
943 [driglx_direct="$driglx_direct_default"])
946 dnl libGL configuration per driver
948 case "x$enable_glx$enable_xlib_glx" in
951 if test "$x11_pkgconfig" = yes; then
952 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
953 GL_PC_REQ_PRIV="x11 xext"
954 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
955 GL_LIB_DEPS="$XLIBGL_LIBS"
957 # should check these...
958 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
959 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
960 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
961 GL_PC_CFLAGS="$X11_INCLUDES"
963 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
964 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
968 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
969 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
970 if test x"$driglx_direct" = xyes; then
971 if test "x$have_libdrm" != xyes; then
972 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
974 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
975 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
978 # find the DRI deps for libGL
979 if test "$x11_pkgconfig" = yes; then
980 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
982 # add xf86vidmode if available
983 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
984 if test "$HAVE_XF86VIDMODE" = yes ; then
985 dri_modules="$dri_modules xxf86vm"
988 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
989 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
990 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
991 GL_LIB_DEPS="$DRIGL_LIBS"
993 # should check these...
994 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
995 if test "x$HAVE_XF86VIDMODE" == xyes; then
996 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
998 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1000 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1001 GL_PC_CFLAGS="$X11_INCLUDES"
1003 # XCB can only be used from pkg-config
1004 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1005 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1006 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1007 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1010 # Check to see if the xcb-glx library is new enough to support
1011 # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
1013 save_CPPFLAGS="$CPPFLAGS"
1014 save_LDFLAGS="$LDFLAGS"
1015 CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
1016 LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
1017 AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
1018 [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
1019 [HAVE_XCB_GLX_CREATE_CONTEXT=no])
1020 CPPFLAGS="$save_CPPFLAGS"
1021 LDFLAGS="$save_LDFLAGS"
1023 if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
1024 X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
1027 # need DRM libs, -lpthread, etc.
1028 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1029 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1033 # This is outside the case (above) so that it is invoked even for non-GLX
1035 AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
1036 test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
1038 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1039 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1040 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1041 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1043 AC_SUBST([GL_LIB_DEPS])
1044 AC_SUBST([GL_PC_REQ_PRIV])
1045 AC_SUBST([GL_PC_LIB_PRIV])
1046 AC_SUBST([GL_PC_CFLAGS])
1047 AC_SUBST([DRI_PC_REQ_PRIV])
1048 AC_SUBST([GLESv1_CM_LIB_DEPS])
1049 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1050 AC_SUBST([GLESv2_LIB_DEPS])
1051 AC_SUBST([GLESv2_PC_LIB_PRIV])
1053 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1054 AC_SUBST([GLAPI_LIB_DEPS])
1057 dnl Setup default DRI CFLAGS
1058 DRI_CFLAGS='$(CFLAGS)'
1059 DRI_CXXFLAGS='$(CXXFLAGS)'
1060 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1061 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1063 if test "x$enable_dri" = xyes && test "x$driglx_direct" = xyes ; then
1064 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1065 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1066 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1067 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1068 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1069 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1070 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1072 AC_SUBST([DRICORE_LIBS])
1073 AC_SUBST([DRICORE_GLSL_LIBS])
1074 AC_SUBST([DRICORE_LIB_DEPS])
1075 AC_SUBST([DRI_CXXFLAGS])
1076 AC_SUBST([DRI_CFLAGS])
1077 AC_SUBST([MESA_MODULES])
1079 AC_SUBST([HAVE_XF86VIDMODE])
1084 case "x$enable_glx$enable_xlib_glx" in
1086 DEFINES="$DEFINES -DUSE_XSHM"
1089 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1090 if test "x$driglx_direct" = xyes; then
1091 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1100 AC_ARG_ENABLE([glx-tls],
1101 [AS_HELP_STRING([--enable-glx-tls],
1102 [enable TLS support in GLX @<:@default=disabled@:>@])],
1103 [GLX_USE_TLS="$enableval"],
1105 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1107 AS_IF([test "x$GLX_USE_TLS" = xyes],
1108 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1113 dnl Directory for DRI drivers
1114 AC_ARG_WITH([dri-driverdir],
1115 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1116 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1117 [DRI_DRIVER_INSTALL_DIR="$withval"],
1118 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1119 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1120 dnl Extra search path for DRI drivers
1121 AC_ARG_WITH([dri-searchpath],
1122 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1123 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1124 [DRI_DRIVER_SEARCH_DIR="$withval"],
1125 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1126 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1127 dnl Which drivers to build - default is chosen by platform
1128 AC_ARG_WITH([dri-drivers],
1129 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1130 [comma delimited DRI drivers list, e.g.
1131 "swrast,i965,radeon" @<:@default=auto@:>@])],
1132 [with_dri_drivers="$withval"],
1133 [with_dri_drivers=yes])
1134 if test "x$with_dri_drivers" = x; then
1138 dnl If $with_dri_drivers is yes, directories will be added through
1141 case "$with_dri_drivers" in
1144 # classic DRI drivers require FEATURE_GL to build
1145 if test "x$enable_opengl" = xyes; then
1150 # verify the requested driver directories exist
1151 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1152 for driver in $dri_drivers; do
1153 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1154 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1156 DRI_DIRS="$dri_drivers"
1157 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1158 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1163 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1164 if test "x$enable_dri" = xyes; then
1165 # Platform specific settings and drivers to build
1168 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1169 DEFINES="$DEFINES -DHAVE_ALIAS"
1173 if test "x$DRI_DIRS" = "xyes"; then
1174 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1178 # Build only the drivers for cards that exist on PowerPC.
1179 if test "x$DRI_DIRS" = "xyes"; then
1180 DRI_DIRS="r200 radeon swrast"
1184 # Build only the drivers for cards that exist on sparc
1185 if test "x$DRI_DIRS" = "xyes"; then
1186 DRI_DIRS="r200 radeon swrast"
1191 freebsd* | dragonfly* | *netbsd*)
1192 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1193 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1195 if test "x$DRI_DIRS" = "xyes"; then
1196 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1200 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1201 DEFINES="$DEFINES -DHAVE_ALIAS"
1204 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1207 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1208 if test "x$DRI_DIRS" = "xyes"; then
1215 if test "x$DRI_DIRS" = "xyes"; then
1216 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1219 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1222 if test "x$enable_dri" = xyes; then
1225 AC_ARG_WITH([expat],
1226 [AS_HELP_STRING([--with-expat=DIR],
1227 [expat install directory])],[
1228 EXPAT_INCLUDES="-I$withval/include"
1229 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1230 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1231 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1233 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1235 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1236 [AC_MSG_ERROR([Expat required for DRI.])])
1240 # libdrm is required for all except swrast
1241 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1242 if test "x$have_libdrm" != xyes; then
1243 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1247 # put all the necessary libs together
1248 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1250 AC_SUBST([DRI_DIRS])
1251 AC_SUBST([EXPAT_INCLUDES])
1252 AC_SUBST([DRI_LIB_DEPS])
1256 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1258 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1274 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1275 HAVE_NOUVEAU_DRI=yes;
1281 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1283 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1286 HAVE_RADEON_DRI=yes;
1299 HAVE_SWRAST_DRI=yes;
1303 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
1304 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1305 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
1306 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
1307 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
1308 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
1311 dnl OSMesa configuration
1314 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1315 AC_ARG_WITH([osmesa-bits],
1316 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1317 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1318 [osmesa_bits="$withval"],
1320 if test "x$osmesa_bits" != x8; then
1321 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1322 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1326 case "x$osmesa_bits" in
1328 OSMESA_LIB="${OSMESA_LIB}"
1331 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1332 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1335 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1339 if test "x$enable_osmesa" = xyes; then
1340 # only link libraries with osmesa if shared
1341 if test "$enable_static" = no; then
1342 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1347 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1349 AC_SUBST([OSMESA_LIB_DEPS])
1350 AC_SUBST([OSMESA_MESA_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 SRC_DIRS="$SRC_DIRS gbm"
1369 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1370 AC_MSG_ERROR([gbm needs udev]))
1371 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1373 if test "x$enable_dri" = xyes; then
1374 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1377 AC_SUBST([GBM_LIB_DEPS])
1378 AC_SUBST([GBM_BACKEND_DIRS])
1379 GBM_PC_REQ_PRIV="libudev"
1380 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1382 AC_SUBST([GBM_PC_REQ_PRIV])
1383 AC_SUBST([GBM_PC_LIB_PRIV])
1384 AC_SUBST([GBM_PC_CFLAGS])
1387 dnl EGL configuration
1391 if test "x$enable_egl" = xyes; then
1392 SRC_DIRS="$SRC_DIRS egl"
1393 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1396 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1398 if test "$enable_static" != yes; then
1399 # build egl_glx when libGL is built
1400 if test "x$enable_glx" = xyes; then
1401 EGL_DRIVERS_DIRS="glx"
1404 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1405 [have_libudev=yes],[have_libudev=no])
1406 if test "$have_libudev" = yes; then
1407 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1409 if test "x$enable_dri" = xyes; then
1410 # build egl_dri2 when xcb-dri2 is available
1411 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1412 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1414 if test "$have_xcb_dri2" = yes; then
1415 EGL_DRIVER_DRI2=dri2
1416 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1417 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1418 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1419 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1423 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1426 AC_SUBST([EGL_LIB_DEPS])
1427 AC_SUBST([EGL_DRIVERS_DIRS])
1430 dnl EGL Gallium configuration
1432 if test "x$enable_gallium_egl" = xyes; then
1433 if test "x$with_gallium_drivers" = x; then
1434 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1436 if test "x$enable_egl" = xno; then
1437 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1439 if test "x$have_libdrm" != xyes; then
1440 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1443 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1444 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1449 dnl gbm Gallium configuration
1451 if test "x$enable_gallium_gbm" = xauto; then
1452 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1454 enable_gallium_gbm=yes ;;
1456 enable_gallium_gbm=no ;;
1459 if test "x$enable_gallium_gbm" = xyes; then
1460 if test "x$with_gallium_drivers" = x; then
1461 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1463 if test "x$enable_gbm" = xno; then
1464 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1466 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1467 if test "x$enable_dri" = xno; then
1468 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1471 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1472 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1477 dnl X.Org DDX configuration
1479 if test "x$enable_xorg" = xyes; then
1480 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1481 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1482 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1483 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1484 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1485 HAVE_XEXTPROTO_71="no")
1486 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1491 dnl XA configuration
1493 if test "x$enable_xa" = xyes; then
1496 AC_CHECK_PROG(NM, nm, "nm")
1497 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1498 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1502 if test "x$enable_xa" = xyes; then
1503 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1511 dnl OpenVG configuration
1515 if test "x$enable_openvg" = xyes; then
1516 if test "x$enable_egl" = xno; then
1517 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1519 if test "x$with_gallium_drivers" = x; then
1520 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1522 if test "x$enable_gallium_egl" = xno; then
1523 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1526 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1527 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1528 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1529 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1534 dnl D3D1X configuration
1537 if test "x$enable_d3d1x" = xyes; then
1538 if test "x$with_gallium_drivers" = x; then
1539 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1542 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1547 dnl Gallium G3DVL configuration
1549 AC_ARG_ENABLE([gallium-g3dvl],
1550 [AS_HELP_STRING([--enable-gallium-g3dvl],
1551 [build gallium g3dvl @<:@default=disabled@:>@])],
1552 [enable_gallium_g3dvl="$enableval"],
1553 [enable_gallium_g3dvl=no])
1554 if test "x$enable_gallium_g3dvl" = xyes; then
1555 if test "x$with_gallium_drivers" = x; then
1556 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1559 if test "x$enable_xvmc" = xauto; then
1560 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1563 if test "x$enable_vdpau" = xauto; then
1564 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1567 if test "x$enable_va" = xauto; then
1568 #don't enable vaapi state tracker even if package exists
1569 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1574 if test "x$enable_xvmc" = xyes; then
1575 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1576 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1580 if test "x$enable_vdpau" = xyes; then
1581 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1582 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1586 if test "x$enable_va" = xyes; then
1587 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1588 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1589 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1594 dnl GLU configuration
1596 AC_ARG_ENABLE([glu],
1597 [AS_HELP_STRING([--disable-glu],
1598 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1599 [enable_glu="$enableval"],
1602 if test "x$enable_glu" = xyes; then
1603 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1604 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1609 if test "x$enable_glu" = xyes; then
1610 SRC_DIRS="$SRC_DIRS glu"
1612 if test "x$enable_glx" = xno; then
1613 # Link libGLU to libOSMesa instead of libGL
1616 if test "$enable_static" = no; then
1617 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1622 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1624 GLU_PC_LIB_PRIV="-lm"
1625 if test "$enable_static" = no; then
1627 GLU_MESA_DEPS='-l$(GL_LIB)'
1634 if test "$enable_static" = no; then
1635 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1637 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1638 AC_SUBST([GLU_LIB_DEPS])
1639 AC_SUBST([GLU_MESA_DEPS])
1640 AC_SUBST([GLU_PC_REQ])
1641 AC_SUBST([GLU_PC_REQ_PRIV])
1642 AC_SUBST([GLU_PC_LIB_PRIV])
1643 AC_SUBST([GLU_PC_CFLAGS])
1645 AC_SUBST([PROGRAM_DIRS])
1648 dnl Gallium configuration
1650 if test "x$with_gallium_drivers" != x; then
1651 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1654 AC_SUBST([LLVM_CFLAGS])
1655 AC_SUBST([LLVM_LIBS])
1656 AC_SUBST([LLVM_LDFLAGS])
1657 AC_SUBST([LLVM_VERSION])
1659 case "x$enable_opengl$enable_gles1$enable_gles2" in
1661 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1665 AC_SUBST([VG_LIB_DEPS])
1666 AC_SUBST([EGL_CLIENT_APIS])
1668 AC_ARG_WITH([egl-platforms],
1669 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1670 [comma delimited native platforms libEGL supports, e.g.
1671 "x11,drm" @<:@default=auto@:>@])],
1672 [with_egl_platforms="$withval"],
1673 [with_egl_platforms=yes])
1676 WAYLAND_EGL_LIB_DEPS=""
1678 case "$with_egl_platforms" in
1680 if test "x$enable_egl" = xyes; then
1685 if test "x$enable_egl" != xyes; then
1686 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1688 # verify the requested driver directories exist
1689 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1690 for plat in $egl_platforms; do
1691 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1692 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1693 if test "$plat" = "fbdev"; then
1694 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1696 if test "$plat" = "null"; then
1697 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1699 if test "$plat" = "wayland"; then
1700 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1701 [AC_MSG_ERROR([cannot find libwayland-client])])
1702 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1703 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1705 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1706 AC_MSG_ERROR([EGL platform drm needs gbm])
1708 case "$plat$have_libudev" in
1710 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1713 EGL_PLATFORMS="$egl_platforms"
1716 AC_SUBST([EGL_PLATFORMS])
1718 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1719 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1720 WAYLAND_EGL_PC_LIB_PRIV=
1721 WAYLAND_EGL_PC_CFLAGS=
1723 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1724 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1725 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1728 AC_ARG_WITH([egl-driver-dir],
1729 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1730 [directory for EGL drivers [[default=${libdir}/egl]]])],
1731 [EGL_DRIVER_INSTALL_DIR="$withval"],
1732 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1733 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1735 AC_ARG_WITH([xorg-driver-dir],
1736 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1737 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1738 [XORG_DRIVER_INSTALL_DIR="$withval"],
1739 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1740 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1742 AC_ARG_WITH([max-width],
1743 [AS_HELP_STRING([--with-max-width=N],
1744 [Maximum framebuffer width (4096)])],
1745 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1746 AS_IF([test "${withval}" -gt "4096"],
1747 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1749 AC_ARG_WITH([max-height],
1750 [AS_HELP_STRING([--with-max-height=N],
1751 [Maximum framebuffer height (4096)])],
1752 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1753 AS_IF([test "${withval}" -gt "4096"],
1754 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1760 AC_ARG_ENABLE([gallium-llvm],
1761 [AS_HELP_STRING([--enable-gallium-llvm],
1762 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1763 [enable_gallium_llvm="$enableval"],
1764 [enable_gallium_llvm=auto])
1765 if test "x$with_gallium_drivers" = x; then
1766 enable_gallium_llvm=no
1768 if test "x$enable_gallium_llvm" = xauto; then
1770 i*86|x86_64) enable_gallium_llvm=yes;;
1773 if test "x$enable_gallium_llvm" = xyes; then
1774 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1776 if test "x$LLVM_CONFIG" != xno; then
1777 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1778 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1779 LLVM_LIBS="`$LLVM_CONFIG --libs`"
1781 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1782 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1791 dnl Directory for VDPAU libs
1792 AC_ARG_WITH([vdpau-libdir],
1793 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1794 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1795 [VDPAU_LIB_INSTALL_DIR="$withval"],
1796 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1797 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1799 dnl Directory for VA libs
1800 AC_ARG_WITH([va-libdir],
1801 [AS_HELP_STRING([--with-va-libdir=DIR],
1802 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1803 [VA_LIB_INSTALL_DIR="$withval"],
1804 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1805 AC_SUBST([VA_LIB_INSTALL_DIR])
1808 dnl Gallium helper functions
1810 gallium_check_st() {
1811 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1812 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1813 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1814 if test "x$have_libdrm" != xyes; then
1815 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1817 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1819 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1820 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1822 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1823 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1825 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1826 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1828 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1829 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1830 NEED_G3DVL_DRI="yes"
1832 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1833 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1834 NEED_G3DVL_DRI="yes"
1836 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1837 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1838 NEED_G3DVL_DRI="yes"
1842 gallium_require_llvm() {
1843 if test "x$MESA_LLVM" = x0; then
1845 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1851 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1852 if test "x$with_gallium_drivers" != x; then
1853 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1854 for driver in $gallium_drivers; do
1857 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1858 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1861 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1862 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1863 if test "x$MESA_LLVM" = x1; then
1864 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1866 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1867 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1870 gallium_require_llvm "Gallium R300"
1871 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1872 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1875 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1876 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1879 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1880 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1881 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1884 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1885 if test "x$MESA_LLVM" = x1; then
1886 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1889 if test "x$HAVE_ST_DRI" = xyes; then
1890 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1892 if test "x$HAVE_ST_VDPAU" = xyes; then
1893 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1895 if test "x$HAVE_ST_XVMC" = xyes; then
1896 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1898 if test "x$HAVE_ST_VA" = xyes; then
1899 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1901 if test "x$HAVE_ST_VDPAU" = xyes ||
1902 test "x$HAVE_ST_XVMC" = xyes ||
1903 test "x$HAVE_ST_VA" = xyes; then
1904 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1905 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1910 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1916 if test "x$NEED_G3DVL_DRI" = xyes; then
1917 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1920 dnl prepend CORE_DIRS to SRC_DIRS
1921 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1923 dnl Restore LDFLAGS and CPPFLAGS
1924 LDFLAGS="$_SAVE_LDFLAGS"
1925 CPPFLAGS="$_SAVE_CPPFLAGS"
1927 dnl Add user CFLAGS and CXXFLAGS
1928 CFLAGS="$CFLAGS $USER_CFLAGS"
1929 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1931 dnl Substitute the config
1932 AC_CONFIG_FILES([configs/autoconf
1933 src/mesa/drivers/dri/dri.pc
1934 src/mesa/drivers/dri/Makefile
1935 src/mesa/drivers/dri/i915/Makefile
1936 src/mesa/drivers/dri/i965/Makefile
1937 src/mesa/drivers/dri/nouveau/Makefile
1938 src/mesa/drivers/dri/r200/Makefile
1939 src/mesa/drivers/dri/radeon/Makefile
1940 src/mesa/drivers/dri/swrast/Makefile
1942 tests/glx/Makefile])
1944 dnl Replace the configs/current symlink
1945 AC_CONFIG_COMMANDS([configs],[
1946 if test -f configs/current || test -L configs/current; then
1947 rm -f configs/current
1949 ln -s autoconf configs/current
1952 dnl Sort the dirs alphabetically
1953 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1954 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1955 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1956 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1961 dnl Output some configuration info for the user
1964 echo " prefix: $prefix"
1965 echo " exec_prefix: $exec_prefix"
1966 echo " libdir: $libdir"
1967 echo " includedir: $includedir"
1971 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1972 echo " OpenVG: $enable_openvg"
1976 if test "x$enable_osmesa" != xno; then
1977 echo " OSMesa: lib$OSMESA_LIB"
1982 if test "x$enable_dri" != xno; then
1983 # cleanup the drivers var
1984 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1985 if test "x$DRI_DIRS" = x; then
1986 echo " DRI drivers: no"
1988 echo " DRI drivers: $dri_dirs"
1990 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1993 case "x$enable_glx$enable_xlib_glx" in
1995 echo " GLX: Xlib-based"
1998 echo " GLX: DRI-based"
2001 echo " GLX: $enable_glx"
2006 echo " GLU: $enable_glu"
2010 echo " EGL: $enable_egl"
2011 if test "$enable_egl" = yes; then
2012 echo " EGL platforms: $EGL_PLATFORMS"
2015 for d in $EGL_DRIVERS_DIRS; do
2016 egl_drivers="$egl_drivers builtin:egl_$d"
2019 if test "x$HAVE_ST_EGL" = xyes; then
2020 echo " EGL drivers: ${egl_drivers} egl_gallium"
2021 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2023 echo " EGL drivers: $egl_drivers"
2028 if test "x$MESA_LLVM" = x1; then
2030 echo " llvm-config: $LLVM_CONFIG"
2031 echo " llvm-version: $LLVM_VERSION"
2037 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2038 echo " Gallium: yes"
2039 echo " Gallium dirs: $GALLIUM_DIRS"
2040 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2041 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2042 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2043 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2051 echo " Shared libs: $enable_shared"
2052 echo " Static libs: $enable_static"
2054 dnl Compiler options
2055 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2056 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2057 $SED 's/^ *//;s/ */ /;s/ *$//'`
2058 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2059 $SED 's/^ *//;s/ */ /;s/ *$//'`
2060 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2062 echo " CFLAGS: $cflags"
2063 echo " CXXFLAGS: $cxxflags"
2064 echo " Macros: $defines"
2066 echo " PYTHON2: $PYTHON2"
2069 echo " Run '${MAKE-make}' to build Mesa"