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])
50 AC_PATH_PROG([MKDEP], [makedepend])
52 if test "x$MKDEP" = "x"; then
53 AC_MSG_ERROR([makedepend is required to build Mesa])
56 AC_PATH_PROG([FLEX], [flex])
57 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
59 AC_PATH_PROG([BISON], [bison])
60 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
62 dnl Our fallback install-sh is a symlink to minstall. Use the existing
63 dnl configuration in that case.
65 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
67 dnl We need a POSIX shell for parts of the build. Assume we have one
71 # Solaris /bin/sh is too old/non-POSIX compliant
72 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
77 AC_PATH_PROG([GTESTCONFIG], [gtest-config])
78 if test "x$GTESTCONFIG" != "x"; then
79 GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
80 GTEST_LIBS=`gtest-config --ldflags --libs`
81 AC_SUBST([GTEST_CFLAGS])
82 AC_SUBST([GTEST_LIBS])
87 AM_CONDITIONAL(HAVE_GTEST, test x$HAVE_GTEST = xyes)
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 [CLANG=yes], [CLANG=no])
101 AC_MSG_RESULT([$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.
105 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
106 AC_MSG_CHECKING([whether gcc version is sufficient])
110 GCC_VERSION=`$CC -dumpversion`
111 if test $? -eq 0; then
112 major=`echo $GCC_VERSION | cut -d. -f1`
113 minor=`echo $GCC_VERSION | cut -d. -f2`
116 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
118 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
125 MKDEP_OPTIONS=-fdepend
126 dnl Ask gcc where it's keeping its secret headers
127 if test "x$GCC" = xyes; then
128 for dir in include include-fixed; do
129 GCC_INCLUDES=`$CC -print-file-name=$dir`
130 if test "x$GCC_INCLUDES" != x && \
131 test "$GCC_INCLUDES" != "$dir" && \
132 test -d "$GCC_INCLUDES"; then
133 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
137 AC_SUBST([MKDEP_OPTIONS])
139 dnl Make sure the pkg-config macros are defined
140 m4_ifndef([PKG_PROG_PKG_CONFIG],
141 [m4_fatal([Could not locate the pkg-config autoconf macros.
142 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
143 are in a different location, try setting the environment variable
144 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
145 PKG_PROG_PKG_CONFIG()
147 dnl LIB_DIR - library basename
148 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
151 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
152 _SAVE_LDFLAGS="$LDFLAGS"
153 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
154 AC_SUBST([EXTRA_LIB_PATH])
156 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
157 _SAVE_CPPFLAGS="$CPPFLAGS"
158 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
159 AC_SUBST([X11_INCLUDES])
166 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
169 DEFINES="$DEFINES -DPTHREADS -DSVR4"
172 DEFINES="$DEFINES -DPTHREADS"
176 dnl Add flags for gcc and g++
177 if test "x$GCC" = xyes; then
178 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
179 if test "x$CLANG" = "xno"; then
180 CFLAGS="$CFLAGS -ffast-math"
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])
237 dnl These should be unnecessary, but let the user set them if they want
238 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
239 Default is to use CFLAGS.])
240 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
241 compiler. Default is to use CFLAGS.])
242 AC_SUBST([OPT_FLAGS])
243 AC_SUBST([ARCH_FLAGS])
246 dnl Hacks to enable 32 or 64 bit build
248 AC_ARG_ENABLE([32-bit],
249 [AS_HELP_STRING([--enable-32-bit],
250 [build 32-bit libraries @<:@default=auto@:>@])],
251 [enable_32bit="$enableval"],
254 if test "x$enable_32bit" = xyes; then
255 if test "x$GCC" = xyes; then
256 CFLAGS="$CFLAGS -m32"
257 ARCH_FLAGS="$ARCH_FLAGS -m32"
259 if test "x$GXX" = xyes; then
260 CXXFLAGS="$CXXFLAGS -m32"
263 AC_ARG_ENABLE([64-bit],
264 [AS_HELP_STRING([--enable-64-bit],
265 [build 64-bit libraries @<:@default=auto@:>@])],
266 [enable_64bit="$enableval"],
269 if test "x$enable_64bit" = xyes; then
270 if test "x$GCC" = xyes; then
271 CFLAGS="$CFLAGS -m64"
273 if test "x$GXX" = xyes; then
274 CXXFLAGS="$CXXFLAGS -m64"
279 dnl shared/static libraries, mimic libtool options
281 AC_ARG_ENABLE([static],
282 [AS_HELP_STRING([--enable-static],
283 [build static libraries @<:@default=disabled@:>@])],
284 [enable_static="$enableval"],
287 case "x$enable_static" in
289 x ) enable_static=no ;;
291 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
294 AC_ARG_ENABLE([shared],
295 [AS_HELP_STRING([--disable-shared],
296 [build shared libraries @<:@default=enabled@:>@])],
297 [enable_shared="$enableval"],
300 case "x$enable_shared" in
302 x ) enable_shared=yes ;;
304 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
308 dnl Can't have static and shared libraries, default to static if user
309 dnl explicitly requested. If both disabled, set to static since shared
310 dnl was explicitly requirested.
311 case "x$enable_static$enable_shared" in
313 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
317 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
325 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
326 if test "$enable_static" = yes; then
327 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
329 AC_SUBST([MKLIB_OPTIONS])
332 dnl other compiler options
334 AC_ARG_ENABLE([debug],
335 [AS_HELP_STRING([--enable-debug],
336 [use debug compiler flags and macros @<:@default=disabled@:>@])],
337 [enable_debug="$enableval"],
340 if test "x$enable_debug" = xyes; then
341 DEFINES="$DEFINES -DDEBUG"
342 if test "x$GCC" = xyes; then
345 if test "x$GXX" = xyes; then
346 CXXFLAGS="$CXXFLAGS -g"
353 LIB_PREFIX_GLOB='lib'
354 LIB_VERSION_SEPARATOR='.'
355 if test "$enable_static" = yes; then
360 LIB_EXTENSION='dylib' ;;
362 dnl prefix can be 'cyg' or 'lib'
363 LIB_PREFIX_GLOB='???'
364 LIB_VERSION_SEPARATOR='-'
365 LIB_EXTENSION='dll' ;;
369 LIB_EXTENSION='so' ;;
374 dnl Mangled Mesa support
376 AC_ARG_ENABLE([mangling],
377 [AS_HELP_STRING([--enable-mangling],
378 [enable mangled symbols and library name @<:@default=disabled@:>@])],
379 [enable_mangling="${enableval}"],
385 if test "x${enable_mangling}" = "xyes" ; then
386 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
389 OSMESA_LIB="MangledOSMesa"
393 AC_SUBST([OSMESA_LIB])
396 dnl potentially-infringing-but-nobody-knows-for-sure stuff
398 AC_ARG_ENABLE([texture-float],
399 [AS_HELP_STRING([--enable-texture-float],
400 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
401 [enable_texture_float="$enableval"],
402 [enable_texture_float=no]
404 if test "x$enable_texture_float" = xyes; then
405 AC_MSG_WARN([Floating-point textures enabled.])
406 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
407 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
410 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
411 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
412 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
413 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
414 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
415 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
416 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
417 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
418 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
419 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
421 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
422 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
423 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
424 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
425 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
426 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
427 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
428 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
429 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
430 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
431 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
433 AC_SUBST([GL_LIB_NAME])
434 AC_SUBST([GLU_LIB_NAME])
435 AC_SUBST([OSMESA_LIB_NAME])
436 AC_SUBST([EGL_LIB_NAME])
437 AC_SUBST([GLESv1_CM_LIB_NAME])
438 AC_SUBST([GLESv2_LIB_NAME])
439 AC_SUBST([VG_LIB_NAME])
440 AC_SUBST([GLAPI_LIB_NAME])
441 AC_SUBST([WAYLAND_EGL_LIB_NAME])
442 AC_SUBST([GBM_LIB_NAME])
444 AC_SUBST([GL_LIB_GLOB])
445 AC_SUBST([GLU_LIB_GLOB])
446 AC_SUBST([OSMESA_LIB_GLOB])
447 AC_SUBST([EGL_LIB_GLOB])
448 AC_SUBST([GLESv1_CM_LIB_GLOB])
449 AC_SUBST([GLESv2_LIB_GLOB])
450 AC_SUBST([VG_LIB_GLOB])
451 AC_SUBST([GLAPI_LIB_GLOB])
452 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
453 AC_SUBST([GBM_LIB_GLOB])
456 dnl Arch/platform-specific settings
459 [AS_HELP_STRING([--disable-asm],
460 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
461 [enable_asm="$enableval"],
468 AC_MSG_CHECKING([whether to enable assembly])
469 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
470 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
471 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
475 AC_MSG_RESULT([no, cross compiling])
479 # check for supported arches
480 if test "x$enable_asm" = xyes; then
484 linux* | *freebsd* | dragonfly* | *netbsd*)
485 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
491 linux* | *freebsd* | dragonfly* | *netbsd*)
492 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
514 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
515 MESA_ASM_SOURCES='$(X86_SOURCES)'
516 GLAPI_ASM_SOURCES='$(X86_API)'
517 AC_MSG_RESULT([yes, x86])
520 ASM_FLAGS="-DUSE_X86_64_ASM"
521 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
522 GLAPI_ASM_SOURCES='$(X86-64_API)'
523 AC_MSG_RESULT([yes, x86_64])
526 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
527 MESA_ASM_SOURCES='$(PPC_SOURCES)'
528 AC_MSG_RESULT([yes, ppc])
531 ASM_FLAGS="-DUSE_SPARC_ASM"
532 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
533 GLAPI_ASM_SOURCES='$(SPARC_API)'
534 AC_MSG_RESULT([yes, sparc])
537 AC_MSG_RESULT([no, platform not supported])
541 AC_SUBST([ASM_FLAGS])
542 AC_SUBST([MESA_ASM_SOURCES])
543 AC_SUBST([GLAPI_ASM_SOURCES])
548 dnl Check to see if dlopen is in default libraries (like Solaris, which
549 dnl has it in libc), or if libdl is needed to get it.
550 AC_CHECK_FUNC([dlopen], [],
551 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
552 AC_SUBST([DLOPEN_LIBS])
554 dnl See if posix_memalign is available
555 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
557 dnl SELinux awareness.
558 AC_ARG_ENABLE([selinux],
559 [AS_HELP_STRING([--enable-selinux],
560 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
561 [MESA_SELINUX="$enableval"],
563 if test "x$enable_selinux" = "xyes"; then
564 AC_CHECK_HEADER([selinux/selinux.h],[],
565 [AC_MSG_ERROR([SELinux headers not found])])
566 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
567 [AC_MSG_ERROR([SELinux library not found])])
568 SELINUX_LIBS="-lselinux"
569 DEFINES="$DEFINES -DMESA_SELINUX"
573 AC_ARG_ENABLE([opengl],
574 [AS_HELP_STRING([--disable-opengl],
575 [disable support for standard OpenGL API @<:@default=no@:>@])],
576 [enable_opengl="$enableval"],
578 AC_ARG_ENABLE([gles1],
579 [AS_HELP_STRING([--enable-gles1],
580 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
581 [enable_gles1="$enableval"],
583 AC_ARG_ENABLE([gles2],
584 [AS_HELP_STRING([--enable-gles2],
585 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
586 [enable_gles2="$enableval"],
588 AC_ARG_ENABLE([openvg],
589 [AS_HELP_STRING([--enable-openvg],
590 [enable support for OpenVG API @<:@default=no@:>@])],
591 [enable_openvg="$enableval"],
595 [AS_HELP_STRING([--enable-dri],
596 [enable DRI modules @<:@default=auto@:>@])],
597 [enable_dri="$enableval"],
600 [AS_HELP_STRING([--enable-glx],
601 [enable GLX library @<:@default=auto@:>@])],
602 [enable_glx="$enableval"],
604 AC_ARG_ENABLE([osmesa],
605 [AS_HELP_STRING([--enable-osmesa],
606 [enable OSMesa library @<:@default=auto@:>@])],
607 [enable_osmesa="$enableval"],
608 [enable_osmesa=auto])
610 [AS_HELP_STRING([--disable-egl],
611 [disable EGL library @<:@default=enabled@:>@])],
612 [enable_egl="$enableval"],
615 AC_ARG_ENABLE([xorg],
616 [AS_HELP_STRING([--enable-xorg],
617 [enable support for X.Org DDX API @<:@default=no@:>@])],
618 [enable_xorg="$enableval"],
621 [AS_HELP_STRING([--enable-xa],
622 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
623 [enable_xa="$enableval"],
625 AC_ARG_ENABLE([d3d1x],
626 [AS_HELP_STRING([--enable-d3d1x],
627 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
628 [enable_d3d1x="$enableval"],
631 [AS_HELP_STRING([--enable-gbm],
632 [enable gbm library @<:@default=auto@:>@])],
633 [enable_gbm="$enableval"],
636 AC_ARG_ENABLE([xvmc],
637 [AS_HELP_STRING([--enable-xvmc],
638 [enable xvmc library @<:@default=auto@:>@])],
639 [enable_xvmc="$enableval"],
641 AC_ARG_ENABLE([vdpau],
642 [AS_HELP_STRING([--enable-vdpau],
643 [enable vdpau library @<:@default=auto@:>@])],
644 [enable_vdpau="$enableval"],
647 [AS_HELP_STRING([--enable-va],
648 [enable va library @<:@default=auto@:>@])],
649 [enable_va="$enableval"],
652 AC_ARG_ENABLE([xlib_glx],
653 [AS_HELP_STRING([--enable-xlib-glx],
654 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
655 [enable_xlib_glx="$enableval"],
656 [enable_xlib_glx=auto])
657 AC_ARG_ENABLE([gallium_egl],
658 [AS_HELP_STRING([--enable-gallium-egl],
659 [enable optional EGL state tracker (not required
660 for EGL support in Gallium with OpenGL and OpenGL ES)
661 @<:@default=disable@:>@])],
662 [enable_gallium_egl="$enableval"],
663 [enable_gallium_egl=no])
664 AC_ARG_ENABLE([gallium_gbm],
665 [AS_HELP_STRING([--enable-gallium-gbm],
666 [enable optional gbm state tracker (not required for
667 gbm support in Gallium)
668 @<:@default=auto@:>@])],
669 [enable_gallium_gbm="$enableval"],
670 [enable_gallium_gbm=auto])
672 # Option for Gallium drivers
673 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
675 AC_ARG_WITH([gallium-drivers],
676 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
677 [comma delimited Gallium drivers list, e.g.
678 "i915,nouveau,r300,r600,svga,swrast"
679 @<:@default=r300,r600,swrast@:>@])],
680 [with_gallium_drivers="$withval"],
681 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
683 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
684 # here so that the script doesn't choke on an unknown driver name later.
685 case "$with_gallium_drivers" in
686 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
687 no) with_gallium_drivers='' ;;
690 if test "x$enable_opengl" = xno -a \
691 "x$enable_gles1" = xno -a \
692 "x$enable_gles2" = xno -a \
693 "x$enable_openvg" = xno -a \
694 "x$enable_xorg" = xno -a \
695 "x$enable_xa" = xno -a \
696 "x$enable_d3d1x" = xno -a \
697 "x$enable_xvmc" = xno -a \
698 "x$enable_vdpau" = xno -a \
699 "x$enable_va" = xno; then
700 AC_MSG_ERROR([at least one API should be enabled])
704 if test "x$enable_opengl" = xno; then
705 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
707 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
709 if test "x$enable_gles1" = xyes; then
710 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
712 if test "x$enable_gles2" = xyes; then
713 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
715 AC_SUBST([API_DEFINES])
717 AC_ARG_ENABLE([shared-glapi],
718 [AS_HELP_STRING([--enable-shared-glapi],
719 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
720 [enable_shared_glapi="$enableval"],
721 [enable_shared_glapi=no])
724 if test "x$enable_shared_glapi" = xyes; then
727 AC_SUBST([SHARED_GLAPI])
730 dnl Driver configuration. Options are xlib, dri and osmesa right now.
731 dnl More later: fbdev, ...
733 default_driver="xlib"
738 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
741 *freebsd* | dragonfly* | *netbsd*)
743 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
748 if test "x$enable_opengl" = xno; then
752 AC_ARG_WITH([driver],
753 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
754 [mesa_driver="$withval"],
756 dnl Check for valid option
757 case "x$mesa_driver" in
758 xxlib|xdri|xosmesa|xno)
759 if test "x$enable_dri" != xauto -o \
760 "x$enable_glx" != xauto -o \
761 "x$enable_osmesa" != xauto -o \
762 "x$enable_xlib_glx" != xauto; then
763 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
767 mesa_driver="$default_driver"
770 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
774 # map $mesa_driver to APIs
775 if test "x$enable_dri" = xauto; then
776 case "x$mesa_driver" in
777 xdri) enable_dri=yes ;;
782 if test "x$enable_glx" = xauto; then
783 case "x$mesa_driver" in
784 xdri|xxlib) enable_glx=yes ;;
789 if test "x$enable_osmesa" = xauto; then
790 case "x$mesa_driver" in
791 xxlib|xosmesa) enable_osmesa=yes ;;
792 *) enable_osmesa=no ;;
796 if test "x$enable_xlib_glx" = xauto; then
797 case "x$mesa_driver" in
798 xxlib) enable_xlib_glx=yes ;;
799 *) enable_xlib_glx=no ;;
803 if test "x$enable_glx" = xno; then
808 dnl Driver specific build directories
811 dnl this variable will be prepended to SRC_DIRS and is not exported
816 GALLIUM_DIRS="auxiliary drivers state_trackers"
817 GALLIUM_TARGET_DIRS=""
818 GALLIUM_WINSYS_DIRS="sw"
819 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
820 GALLIUM_STATE_TRACKERS_DIRS=""
822 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
823 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
825 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
829 # build glapi if OpenGL is enabled
830 if test "x$enable_opengl" = xyes; then
831 CORE_DIRS="$CORE_DIRS mapi/glapi"
834 # build es1api if OpenGL ES 1.x is enabled
835 if test "x$enable_gles1" = xyes; then
836 CORE_DIRS="$CORE_DIRS mapi/es1api"
839 # build es2api if OpenGL ES 2.x is enabled
840 if test "x$enable_gles2" = xyes; then
841 CORE_DIRS="$CORE_DIRS mapi/es2api"
844 # build glsl and mesa if OpenGL or OpenGL ES is enabled
845 case "x$enable_opengl$enable_gles1$enable_gles2" in
847 CORE_DIRS="$CORE_DIRS glsl mesa"
851 case "x$enable_glx$enable_xlib_glx" in
853 DRIVER_DIRS="$DRIVER_DIRS x11"
854 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
855 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
856 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
857 HAVE_WINSYS_XLIB="yes"
861 SRC_DIRS="$SRC_DIRS glx"
865 if test "x$enable_dri" = xyes; then
866 DRIVER_DIRS="$DRIVER_DIRS dri"
868 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
869 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
873 if test "x$enable_osmesa" = xyes; then
874 # the empty space matters for osmesa... (see src/mesa/Makefile)
875 if test -n "$DRIVER_DIRS"; then
876 DRIVER_DIRS="$DRIVER_DIRS osmesa"
884 AC_SUBST([DRIVER_DIRS])
885 AC_SUBST([GALLIUM_DIRS])
886 AC_SUBST([GALLIUM_TARGET_DIRS])
887 AC_SUBST([GALLIUM_WINSYS_DIRS])
888 AC_SUBST([GALLIUM_DRIVERS_DIRS])
889 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
890 AC_SUBST([MESA_LLVM])
893 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
894 [have_libdrm=yes], [have_libdrm=no])
896 if test "x$enable_dri" = xyes; then
897 # DRI must be shared, I think
898 if test "$enable_static" = yes; then
899 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
902 # not a hard requirement as swrast does not depend on it
903 if test "x$have_libdrm" = xyes; then
904 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
909 dnl Find out if X is available. The variable have_x is set if libX11 is
910 dnl found to mimic AC_PATH_XTRA.
912 if test -n "$PKG_CONFIG"; then
913 AC_MSG_CHECKING([pkg-config files for X11 are available])
914 PKG_CHECK_EXISTS([x11],[
920 AC_MSG_RESULT([$x11_pkgconfig])
924 dnl Use the autoconf macro if no pkg-config files
925 if test "$x11_pkgconfig" = yes; then
926 PKG_CHECK_MODULES([X11], [x11])
929 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
930 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
931 AC_SUBST([X11_CFLAGS])
935 dnl Try to tell the user that the --x-* options are only used when
936 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
937 m4_divert_once([HELP_BEGIN],
938 [These options are only used when the X libraries cannot be found by the
939 pkg-config utility.])
941 dnl We need X for xlib and dri, so bomb now if it's not found
942 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
943 AC_MSG_ERROR([X11 development libraries needed for GLX])
946 if test "x$enable_glx" = xyes; then
947 DEFINES="$DEFINES -DUSE_XCB"
950 dnl Direct rendering or just indirect rendering
953 dnl Disable by default on GNU/Hurd
954 driglx_direct_default="no"
957 dnl Disable by default on cygwin
958 driglx_direct_default="no"
961 driglx_direct_default="yes"
964 AC_ARG_ENABLE([driglx-direct],
965 [AS_HELP_STRING([--disable-driglx-direct],
966 [enable direct rendering in GLX and EGL for DRI \
967 @<:@default=auto@:>@])],
968 [driglx_direct="$enableval"],
969 [driglx_direct="$driglx_direct_default"])
972 dnl libGL configuration per driver
974 case "x$enable_glx$enable_xlib_glx" in
977 if test "$x11_pkgconfig" = yes; then
978 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
979 GL_PC_REQ_PRIV="x11 xext"
980 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
981 GL_LIB_DEPS="$XLIBGL_LIBS"
983 # should check these...
984 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
985 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
986 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
987 GL_PC_CFLAGS="$X11_INCLUDES"
989 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
990 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
994 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
995 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
996 if test x"$driglx_direct" = xyes; then
997 if test "x$have_libdrm" != xyes; then
998 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
1000 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
1001 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
1004 # find the DRI deps for libGL
1005 if test "$x11_pkgconfig" = yes; then
1006 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
1008 # add xf86vidmode if available
1009 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
1010 if test "$HAVE_XF86VIDMODE" = yes ; then
1011 dri_modules="$dri_modules xxf86vm"
1014 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
1015 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1016 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
1017 GL_LIB_DEPS="$DRIGL_LIBS"
1019 # should check these...
1020 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
1021 if test "x$HAVE_XF86VIDMODE" == xyes; then
1022 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
1024 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1026 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1027 GL_PC_CFLAGS="$X11_INCLUDES"
1029 # XCB can only be used from pkg-config
1030 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1031 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1032 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1033 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1036 # Check to see if the xcb-glx library is new enough to support
1037 # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
1039 save_CPPFLAGS="$CPPFLAGS"
1040 save_LDFLAGS="$LDFLAGS"
1041 CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
1042 LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
1043 AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
1044 [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
1045 [HAVE_XCB_GLX_CREATE_CONTEXT=no])
1046 CPPFLAGS="$save_CPPFLAGS"
1047 LDFLAGS="$save_LDFLAGS"
1049 if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
1050 X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
1053 # need DRM libs, -lpthread, etc.
1054 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1055 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1059 # This is outside the case (above) so that it is invoked even for non-GLX
1061 AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
1062 test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
1064 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1065 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1066 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1067 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1069 AC_SUBST([GL_LIB_DEPS])
1070 AC_SUBST([GL_PC_REQ_PRIV])
1071 AC_SUBST([GL_PC_LIB_PRIV])
1072 AC_SUBST([GL_PC_CFLAGS])
1073 AC_SUBST([DRI_PC_REQ_PRIV])
1074 AC_SUBST([GLESv1_CM_LIB_DEPS])
1075 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1076 AC_SUBST([GLESv2_LIB_DEPS])
1077 AC_SUBST([GLESv2_PC_LIB_PRIV])
1079 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1080 AC_SUBST([GLAPI_LIB_DEPS])
1083 dnl Setup default DRI CFLAGS
1084 DRI_CFLAGS='$(CFLAGS)'
1085 DRI_CXXFLAGS='$(CXXFLAGS)'
1086 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1087 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1089 AC_ARG_ENABLE([shared-dricore],
1090 [AS_HELP_STRING([--enable-shared-dricore],
1091 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1092 [enable_dricore="$enableval"],
1093 [enable_dricore=no])
1094 if test "x$enable_dri" = xyes ; then
1095 if test "$enable_dricore" = yes ; then
1096 if test "$GCC$GXX" != yesyes ; then
1097 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1100 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1101 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1102 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1103 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1104 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1105 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1106 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1110 AC_SUBST([DRICORE_LIBS])
1111 AC_SUBST([DRICORE_GLSL_LIBS])
1112 AC_SUBST([DRICORE_LIB_DEPS])
1113 AC_SUBST([DRI_CXXFLAGS])
1114 AC_SUBST([DRI_CFLAGS])
1115 AC_SUBST([MESA_MODULES])
1117 AC_SUBST([HAVE_XF86VIDMODE])
1122 case "x$enable_glx$enable_xlib_glx" in
1124 DEFINES="$DEFINES -DUSE_XSHM"
1127 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1128 if test "x$driglx_direct" = xyes; then
1129 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1138 AC_ARG_ENABLE([glx-tls],
1139 [AS_HELP_STRING([--enable-glx-tls],
1140 [enable TLS support in GLX @<:@default=disabled@:>@])],
1141 [GLX_USE_TLS="$enableval"],
1143 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1145 AS_IF([test "x$GLX_USE_TLS" = xyes],
1146 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1151 dnl Directory for DRI drivers
1152 AC_ARG_WITH([dri-driverdir],
1153 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1154 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1155 [DRI_DRIVER_INSTALL_DIR="$withval"],
1156 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1157 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1158 dnl Extra search path for DRI drivers
1159 AC_ARG_WITH([dri-searchpath],
1160 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1161 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1162 [DRI_DRIVER_SEARCH_DIR="$withval"],
1163 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1164 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1165 dnl Which drivers to build - default is chosen by platform
1166 AC_ARG_WITH([dri-drivers],
1167 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1168 [comma delimited DRI drivers list, e.g.
1169 "swrast,i965,radeon" @<:@default=auto@:>@])],
1170 [with_dri_drivers="$withval"],
1171 [with_dri_drivers=yes])
1172 if test "x$with_dri_drivers" = x; then
1176 dnl If $with_dri_drivers is yes, directories will be added through
1179 case "$with_dri_drivers" in
1182 # classic DRI drivers require FEATURE_GL to build
1183 if test "x$enable_opengl" = xyes; then
1188 # verify the requested driver directories exist
1189 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1190 for driver in $dri_drivers; do
1191 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1192 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1194 DRI_DIRS="$dri_drivers"
1195 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1196 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1201 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1202 if test "x$enable_dri" = xyes; then
1203 # Platform specific settings and drivers to build
1206 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1207 DEFINES="$DEFINES -DHAVE_ALIAS"
1211 if test "x$DRI_DIRS" = "xyes"; then
1212 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1216 # Build only the drivers for cards that exist on PowerPC.
1217 if test "x$DRI_DIRS" = "xyes"; then
1218 DRI_DIRS="r200 radeon swrast"
1222 # Build only the drivers for cards that exist on sparc
1223 if test "x$DRI_DIRS" = "xyes"; then
1224 DRI_DIRS="r200 radeon swrast"
1229 freebsd* | dragonfly* | *netbsd*)
1230 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1231 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1233 if test "x$DRI_DIRS" = "xyes"; then
1234 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1238 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1239 DEFINES="$DEFINES -DHAVE_ALIAS"
1242 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1245 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1246 if test "x$DRI_DIRS" = "xyes"; then
1253 if test "x$DRI_DIRS" = "xyes"; then
1254 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1257 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1260 if test "x$enable_dri" = xyes; then
1263 AC_ARG_WITH([expat],
1264 [AS_HELP_STRING([--with-expat=DIR],
1265 [expat install directory])],[
1266 EXPAT_INCLUDES="-I$withval/include"
1267 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1268 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1269 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1271 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1272 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1273 [AC_MSG_ERROR([Expat required for DRI.])])
1276 # libdrm is required for all except swrast
1277 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1278 if test "x$have_libdrm" != xyes; then
1279 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1283 # put all the necessary libs together, including possibly libdricore
1284 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1286 AC_SUBST([DRI_DIRS])
1287 AC_SUBST([EXPAT_INCLUDES])
1288 AC_SUBST([DRI_LIB_DEPS])
1292 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1303 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1307 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1313 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1319 dnl OSMesa configuration
1322 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1323 AC_ARG_WITH([osmesa-bits],
1324 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1325 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1326 [osmesa_bits="$withval"],
1328 if test "x$osmesa_bits" != x8; then
1329 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1330 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1334 case "x$osmesa_bits" in
1336 OSMESA_LIB="${OSMESA_LIB}"
1339 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1340 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1343 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1347 if test "x$enable_osmesa" = xyes; then
1348 # only link libraries with osmesa if shared
1349 if test "$enable_static" = no; then
1350 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1355 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1357 AC_SUBST([OSMESA_LIB_DEPS])
1358 AC_SUBST([OSMESA_MESA_DEPS])
1359 AC_SUBST([OSMESA_PC_REQ])
1360 AC_SUBST([OSMESA_PC_LIB_PRIV])
1363 dnl gbm configuration
1365 if test "x$enable_gbm" = xauto; then
1366 case "$with_egl_platforms" in
1373 if test "x$enable_gbm" = xyes; then
1374 SRC_DIRS="$SRC_DIRS gbm"
1377 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1378 AC_MSG_ERROR([gbm needs udev]))
1379 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1381 if test "x$enable_dri" = xyes; then
1382 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1383 if test "$SHARED_GLAPI" -eq 0; then
1384 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1388 AC_SUBST([GBM_LIB_DEPS])
1389 AC_SUBST([GBM_BACKEND_DIRS])
1390 GBM_PC_REQ_PRIV="libudev"
1391 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1393 AC_SUBST([GBM_PC_REQ_PRIV])
1394 AC_SUBST([GBM_PC_LIB_PRIV])
1395 AC_SUBST([GBM_PC_CFLAGS])
1398 dnl EGL configuration
1402 if test "x$enable_egl" = xyes; then
1403 SRC_DIRS="$SRC_DIRS egl"
1404 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1407 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1409 if test "$enable_static" != yes; then
1410 # build egl_glx when libGL is built
1411 if test "x$enable_glx" = xyes; then
1412 EGL_DRIVERS_DIRS="glx"
1415 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1416 [have_libudev=yes],[have_libudev=no])
1417 if test "$have_libudev" = yes; then
1418 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1420 if test "x$enable_dri" = xyes; then
1421 # build egl_dri2 when xcb-dri2 is available
1422 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1423 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1425 if test "$have_xcb_dri2" = yes; then
1426 EGL_DRIVER_DRI2=dri2
1427 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1428 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1429 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1430 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1434 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1437 AC_SUBST([EGL_LIB_DEPS])
1438 AC_SUBST([EGL_DRIVERS_DIRS])
1441 dnl EGL Gallium configuration
1443 if test "x$enable_gallium_egl" = xyes; then
1444 if test "x$with_gallium_drivers" = x; then
1445 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1447 if test "x$enable_egl" = xno; then
1448 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1450 if test "x$have_libdrm" != xyes; then
1451 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1454 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1455 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1460 dnl gbm Gallium configuration
1462 if test "x$enable_gallium_gbm" = xauto; then
1463 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1465 enable_gallium_gbm=yes ;;
1467 enable_gallium_gbm=no ;;
1470 if test "x$enable_gallium_gbm" = xyes; then
1471 if test "x$with_gallium_drivers" = x; then
1472 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1474 if test "x$enable_gbm" = xno; then
1475 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1477 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1478 if test "x$enable_dri" = xno; then
1479 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1482 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1483 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1488 dnl X.Org DDX configuration
1490 if test "x$enable_xorg" = xyes; then
1491 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1492 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1493 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1494 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1495 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1496 HAVE_XEXTPROTO_71="no")
1497 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1502 dnl XA configuration
1504 if test "x$enable_xa" = xyes; then
1507 AC_CHECK_PROG(NM, nm, "nm")
1508 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1509 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1513 if test "x$enable_xa" = xyes; then
1514 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1522 dnl OpenVG configuration
1526 if test "x$enable_openvg" = xyes; then
1527 if test "x$enable_egl" = xno; then
1528 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1530 if test "x$with_gallium_drivers" = x; then
1531 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1533 if test "x$enable_gallium_egl" = xno; then
1534 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1537 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1538 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1539 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1540 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1545 dnl D3D1X configuration
1548 if test "x$enable_d3d1x" = xyes; then
1549 if test "x$with_gallium_drivers" = x; then
1550 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1553 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1558 dnl Gallium G3DVL configuration
1560 AC_ARG_ENABLE([gallium-g3dvl],
1561 [AS_HELP_STRING([--enable-gallium-g3dvl],
1562 [build gallium g3dvl @<:@default=disabled@:>@])],
1563 [enable_gallium_g3dvl="$enableval"],
1564 [enable_gallium_g3dvl=no])
1565 if test "x$enable_gallium_g3dvl" = xyes; then
1566 if test "x$with_gallium_drivers" = x; then
1567 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1570 if test "x$enable_xvmc" = xauto; then
1571 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1574 if test "x$enable_vdpau" = xauto; then
1575 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1578 if test "x$enable_va" = xauto; then
1579 #don't enable vaapi state tracker even if package exists
1580 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1585 if test "x$enable_xvmc" = xyes; then
1586 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1587 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1591 if test "x$enable_vdpau" = xyes; then
1592 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1593 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1597 if test "x$enable_va" = xyes; then
1598 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1599 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1600 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1605 dnl GLU configuration
1607 AC_ARG_ENABLE([glu],
1608 [AS_HELP_STRING([--disable-glu],
1609 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1610 [enable_glu="$enableval"],
1613 if test "x$enable_glu" = xyes; then
1614 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1615 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1620 if test "x$enable_glu" = xyes; then
1621 SRC_DIRS="$SRC_DIRS glu"
1623 if test "x$enable_glx" = xno; then
1624 # Link libGLU to libOSMesa instead of libGL
1627 if test "$enable_static" = no; then
1628 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1633 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1635 GLU_PC_LIB_PRIV="-lm"
1636 if test "$enable_static" = no; then
1638 GLU_MESA_DEPS='-l$(GL_LIB)'
1645 if test "$enable_static" = no; then
1646 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1648 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1649 AC_SUBST([GLU_LIB_DEPS])
1650 AC_SUBST([GLU_MESA_DEPS])
1651 AC_SUBST([GLU_PC_REQ])
1652 AC_SUBST([GLU_PC_REQ_PRIV])
1653 AC_SUBST([GLU_PC_LIB_PRIV])
1654 AC_SUBST([GLU_PC_CFLAGS])
1656 AC_SUBST([PROGRAM_DIRS])
1659 dnl Gallium configuration
1661 if test "x$with_gallium_drivers" != x; then
1662 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1665 AC_SUBST([LLVM_CFLAGS])
1666 AC_SUBST([LLVM_LIBS])
1667 AC_SUBST([LLVM_LDFLAGS])
1668 AC_SUBST([LLVM_VERSION])
1670 case "x$enable_opengl$enable_gles1$enable_gles2" in
1672 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1676 AC_SUBST([VG_LIB_DEPS])
1677 AC_SUBST([EGL_CLIENT_APIS])
1679 AC_ARG_WITH([egl-platforms],
1680 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1681 [comma delimited native platforms libEGL supports, e.g.
1682 "x11,drm" @<:@default=auto@:>@])],
1683 [with_egl_platforms="$withval"],
1684 [with_egl_platforms=yes])
1687 WAYLAND_EGL_LIB_DEPS=""
1689 case "$with_egl_platforms" in
1691 if test "x$enable_egl" = xyes; then
1696 if test "x$enable_egl" != xyes; then
1697 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1699 # verify the requested driver directories exist
1700 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1701 for plat in $egl_platforms; do
1702 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1703 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1704 if test "$plat" = "fbdev"; then
1705 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1707 if test "$plat" = "null"; then
1708 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1710 if test "$plat" = "wayland"; then
1711 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1712 [AC_MSG_ERROR([cannot find libwayland-client])])
1713 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1714 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1716 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1717 AC_MSG_ERROR([EGL platform drm needs gbm])
1719 case "$plat$have_libudev" in
1721 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1724 EGL_PLATFORMS="$egl_platforms"
1727 AC_SUBST([EGL_PLATFORMS])
1729 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1730 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1731 WAYLAND_EGL_PC_LIB_PRIV=
1732 WAYLAND_EGL_PC_CFLAGS=
1734 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1735 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1736 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1739 AC_ARG_WITH([egl-driver-dir],
1740 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1741 [directory for EGL drivers [[default=${libdir}/egl]]])],
1742 [EGL_DRIVER_INSTALL_DIR="$withval"],
1743 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1744 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1746 AC_ARG_WITH([xorg-driver-dir],
1747 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1748 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1749 [XORG_DRIVER_INSTALL_DIR="$withval"],
1750 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1751 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1753 AC_ARG_WITH([max-width],
1754 [AS_HELP_STRING([--with-max-width=N],
1755 [Maximum framebuffer width (4096)])],
1756 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1757 AS_IF([test "${withval}" -gt "4096"],
1758 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1760 AC_ARG_WITH([max-height],
1761 [AS_HELP_STRING([--with-max-height=N],
1762 [Maximum framebuffer height (4096)])],
1763 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1764 AS_IF([test "${withval}" -gt "4096"],
1765 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1771 AC_ARG_ENABLE([gallium-llvm],
1772 [AS_HELP_STRING([--enable-gallium-llvm],
1773 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1774 [enable_gallium_llvm="$enableval"],
1775 [enable_gallium_llvm=auto])
1776 if test "x$with_gallium_drivers" = x; then
1777 enable_gallium_llvm=no
1779 if test "x$enable_gallium_llvm" = xauto; then
1781 i*86|x86_64) enable_gallium_llvm=yes;;
1784 if test "x$enable_gallium_llvm" = xyes; then
1785 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1787 if test "x$LLVM_CONFIG" != xno; then
1788 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1789 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1790 LLVM_LIBS="`$LLVM_CONFIG --libs`"
1792 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1793 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1802 dnl Directory for VDPAU libs
1803 AC_ARG_WITH([vdpau-libdir],
1804 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1805 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1806 [VDPAU_LIB_INSTALL_DIR="$withval"],
1807 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1808 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1810 dnl Directory for VA libs
1811 AC_ARG_WITH([va-libdir],
1812 [AS_HELP_STRING([--with-va-libdir=DIR],
1813 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1814 [VA_LIB_INSTALL_DIR="$withval"],
1815 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1816 AC_SUBST([VA_LIB_INSTALL_DIR])
1819 dnl Gallium helper functions
1821 gallium_check_st() {
1822 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1823 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1824 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1825 if test "x$have_libdrm" != xyes; then
1826 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1828 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1830 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1831 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1833 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1834 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1836 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1837 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1839 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1840 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1841 NEED_G3DVL_DRI="yes"
1843 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1844 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1845 NEED_G3DVL_DRI="yes"
1847 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1848 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1849 NEED_G3DVL_DRI="yes"
1853 gallium_require_llvm() {
1854 if test "x$MESA_LLVM" = x0; then
1856 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1862 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1863 if test "x$with_gallium_drivers" != x; then
1864 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1865 for driver in $gallium_drivers; do
1868 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1869 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1872 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1873 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1874 if test "x$MESA_LLVM" = x1; then
1875 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1877 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1878 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1881 gallium_require_llvm "Gallium R300"
1882 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1883 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1886 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1887 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1890 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1891 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1892 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1895 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1896 if test "x$MESA_LLVM" = x1; then
1897 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1900 if test "x$HAVE_ST_DRI" = xyes; then
1901 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1903 if test "x$HAVE_ST_VDPAU" = xyes; then
1904 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1906 if test "x$HAVE_ST_XVMC" = xyes; then
1907 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1909 if test "x$HAVE_ST_VA" = xyes; then
1910 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1912 if test "x$HAVE_ST_VDPAU" = xyes ||
1913 test "x$HAVE_ST_XVMC" = xyes ||
1914 test "x$HAVE_ST_VA" = xyes; then
1915 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1916 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1921 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1927 if test "x$NEED_G3DVL_DRI" = xyes; then
1928 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1931 dnl prepend CORE_DIRS to SRC_DIRS
1932 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1934 dnl Restore LDFLAGS and CPPFLAGS
1935 LDFLAGS="$_SAVE_LDFLAGS"
1936 CPPFLAGS="$_SAVE_CPPFLAGS"
1938 dnl Add user CFLAGS and CXXFLAGS
1939 CFLAGS="$CFLAGS $USER_CFLAGS"
1940 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1942 dnl Substitute the config
1943 AC_CONFIG_FILES([configs/autoconf
1944 src/mesa/drivers/dri/i965/Makefile
1946 tests/glx/Makefile])
1948 dnl Replace the configs/current symlink
1949 AC_CONFIG_COMMANDS([configs],[
1950 if test -f configs/current || test -L configs/current; then
1951 rm -f configs/current
1953 ln -s autoconf configs/current
1956 dnl Sort the dirs alphabetically
1957 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1958 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1959 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1960 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1965 dnl Output some configuration info for the user
1968 echo " prefix: $prefix"
1969 echo " exec_prefix: $exec_prefix"
1970 echo " libdir: $libdir"
1971 echo " includedir: $includedir"
1975 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1976 echo " OpenVG: $enable_openvg"
1980 if test "x$enable_osmesa" != xno; then
1981 echo " OSMesa: lib$OSMESA_LIB"
1986 if test "x$enable_dri" != xno; then
1987 # cleanup the drivers var
1988 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1989 if test "x$DRI_DIRS" = x; then
1990 echo " DRI drivers: no"
1992 echo " DRI drivers: $dri_dirs"
1994 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1995 echo " Shared dricore: $enable_dricore"
1998 case "x$enable_glx$enable_xlib_glx" in
2000 echo " GLX: Xlib-based"
2003 echo " GLX: DRI-based"
2006 echo " GLX: $enable_glx"
2011 echo " GLU: $enable_glu"
2015 echo " EGL: $enable_egl"
2016 if test "$enable_egl" = yes; then
2017 echo " EGL platforms: $EGL_PLATFORMS"
2020 for d in $EGL_DRIVERS_DIRS; do
2021 egl_drivers="$egl_drivers builtin:egl_$d"
2024 if test "x$HAVE_ST_EGL" = xyes; then
2025 echo " EGL drivers: ${egl_drivers} egl_gallium"
2026 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2028 echo " EGL drivers: $egl_drivers"
2033 if test "x$MESA_LLVM" = x1; then
2035 echo " llvm-config: $LLVM_CONFIG"
2036 echo " llvm-version: $LLVM_VERSION"
2042 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2043 echo " Gallium: yes"
2044 echo " Gallium dirs: $GALLIUM_DIRS"
2045 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2046 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2047 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2048 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2056 echo " Shared libs: $enable_shared"
2057 echo " Static libs: $enable_static"
2059 dnl Compiler options
2060 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2061 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2062 $SED 's/^ *//;s/ */ /;s/ *$//'`
2063 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2064 $SED 's/^ *//;s/ */ /;s/ *$//'`
2065 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2067 echo " CFLAGS: $cflags"
2068 echo " CXXFLAGS: $cxxflags"
2069 echo " Macros: $defines"
2071 echo " PYTHON2: $PYTHON2"
2074 echo " Run '${MAKE-make}' to build Mesa"