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 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
23 USER_CXXFLAGS="$CXXFLAGS"
25 dnl Versions for external dependencies
26 LIBDRM_REQUIRED=2.4.24
27 LIBDRM_RADEON_REQUIRED=2.4.24
28 LIBDRM_INTEL_REQUIRED=2.4.27
29 LIBDRM_NOUVEAU_REQUIRED=0.6
30 DRI2PROTO_REQUIRED=2.6
31 GLPROTO_REQUIRED=1.4.14
32 LIBDRM_XORG_REQUIRED=2.4.24
33 LIBKMS_XORG_REQUIRED=1.0.0
39 AC_CHECK_PROGS([MAKE], [gmake make])
40 AC_CHECK_PROGS([PYTHON2], [python2 python])
41 AC_PATH_PROG([MKDEP], [makedepend])
42 AC_PATH_PROG([SED], [sed])
44 if test "x$MKDEP" = "x"; then
45 AC_MSG_ERROR([makedepend is required to build Mesa])
48 AC_PATH_PROG([FLEX], [flex])
49 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
51 AC_PATH_PROG([BISON], [bison])
52 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
54 dnl Our fallback install-sh is a symlink to minstall. Use the existing
55 dnl configuration in that case.
57 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
59 dnl We need a POSIX shell for parts of the build. Assume we have one
63 # Solaris /bin/sh is too old/non-POSIX compliant
64 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
69 AC_PATH_PROG([GTESTCONFIG], [gtest-config])
70 if test "x$GTESTCONFIG" != "x"; then
71 GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
72 GTEST_LIBS=`gtest-config --ldflags --libs`
74 AC_SUBST([GTEST_CFLAGS])
75 AC_SUBST([GTEST_LIBS])
80 AM_CONDITIONAL(HAVE_GTEST, test x$HAVE_GTEST = xyes)
82 dnl clang is mostly GCC-compatible, but its version is much lower,
83 dnl so we have to check for it.
84 AC_MSG_CHECKING([if compiling with clang])
87 [AC_LANG_PROGRAM([], [[
92 [CLANG=yes], [CLANG=no])
94 AC_MSG_RESULT([$CLANG])
96 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
97 dnl versions are explictly not supported.
98 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
99 AC_MSG_CHECKING([whether gcc version is sufficient])
103 GCC_VERSION=`$CC -dumpversion`
104 if test $? -eq 0; then
105 major=`echo $GCC_VERSION | cut -d. -f1`
106 minor=`echo $GCC_VERSION | cut -d. -f2`
109 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
111 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
118 MKDEP_OPTIONS=-fdepend
119 dnl Ask gcc where it's keeping its secret headers
120 if test "x$GCC" = xyes; then
121 for dir in include include-fixed; do
122 GCC_INCLUDES=`$CC -print-file-name=$dir`
123 if test "x$GCC_INCLUDES" != x && \
124 test "$GCC_INCLUDES" != "$dir" && \
125 test -d "$GCC_INCLUDES"; then
126 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
130 AC_SUBST([MKDEP_OPTIONS])
132 dnl Make sure the pkg-config macros are defined
133 m4_ifndef([PKG_PROG_PKG_CONFIG],
134 [m4_fatal([Could not locate the pkg-config autoconf macros.
135 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
136 are in a different location, try setting the environment variable
137 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
138 PKG_PROG_PKG_CONFIG()
140 dnl LIB_DIR - library basename
141 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
144 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
145 _SAVE_LDFLAGS="$LDFLAGS"
146 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
147 AC_SUBST([EXTRA_LIB_PATH])
149 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
150 _SAVE_CPPFLAGS="$CPPFLAGS"
151 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
152 AC_SUBST([X11_INCLUDES])
159 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
162 DEFINES="$DEFINES -DPTHREADS -DSVR4"
165 DEFINES="$DEFINES -DPTHREADS"
169 dnl Add flags for gcc and g++
170 if test "x$GCC" = xyes; then
171 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
172 if test "x$CLANG" = "xno"; then
173 CFLAGS="$CFLAGS -ffast-math"
176 # Enable -fvisibility=hidden if using a gcc that supports it
177 save_CFLAGS="$CFLAGS"
178 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
179 VISIBILITY_CFLAGS="-fvisibility=hidden"
180 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
181 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
182 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
184 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
187 # Work around aliasing bugs - developers should comment this out
188 CFLAGS="$CFLAGS -fno-strict-aliasing"
190 # gcc's builtin memcmp is slower than glibc's
191 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
192 CFLAGS="$CFLAGS -fno-builtin-memcmp"
194 if test "x$GXX" = xyes; then
195 CXXFLAGS="$CXXFLAGS -Wall"
197 # Enable -fvisibility=hidden if using a gcc that supports it
198 save_CXXFLAGS="$CXXFLAGS"
199 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
200 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
201 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
203 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
204 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
207 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
208 CXXFLAGS=$save_CXXFLAGS
210 # Work around aliasing bugs - developers should comment this out
211 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
213 # gcc's builtin memcmp is slower than glibc's
214 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
215 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
218 dnl even if the compiler appears to support it, using visibility attributes isn't
219 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
223 VISIBILITY_CXXFLAGS=""
227 AC_SUBST([VISIBILITY_CFLAGS])
228 AC_SUBST([VISIBILITY_CXXFLAGS])
230 dnl These should be unnecessary, but let the user set them if they want
231 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
232 Default is to use CFLAGS.])
233 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
234 compiler. Default is to use CFLAGS.])
235 AC_SUBST([OPT_FLAGS])
236 AC_SUBST([ARCH_FLAGS])
239 dnl Hacks to enable 32 or 64 bit build
241 AC_ARG_ENABLE([32-bit],
242 [AS_HELP_STRING([--enable-32-bit],
243 [build 32-bit libraries @<:@default=auto@:>@])],
244 [enable_32bit="$enableval"],
247 if test "x$enable_32bit" = xyes; then
248 if test "x$GCC" = xyes; then
249 CFLAGS="$CFLAGS -m32"
250 ARCH_FLAGS="$ARCH_FLAGS -m32"
252 if test "x$GXX" = xyes; then
253 CXXFLAGS="$CXXFLAGS -m32"
256 AC_ARG_ENABLE([64-bit],
257 [AS_HELP_STRING([--enable-64-bit],
258 [build 64-bit libraries @<:@default=auto@:>@])],
259 [enable_64bit="$enableval"],
262 if test "x$enable_64bit" = xyes; then
263 if test "x$GCC" = xyes; then
264 CFLAGS="$CFLAGS -m64"
266 if test "x$GXX" = xyes; then
267 CXXFLAGS="$CXXFLAGS -m64"
272 dnl shared/static libraries, mimic libtool options
274 AC_ARG_ENABLE([static],
275 [AS_HELP_STRING([--enable-static],
276 [build static libraries @<:@default=disabled@:>@])],
277 [enable_static="$enableval"],
280 case "x$enable_static" in
282 x ) enable_static=no ;;
284 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
287 AC_ARG_ENABLE([shared],
288 [AS_HELP_STRING([--disable-shared],
289 [build shared libraries @<:@default=enabled@:>@])],
290 [enable_shared="$enableval"],
293 case "x$enable_shared" in
295 x ) enable_shared=yes ;;
297 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
301 dnl Can't have static and shared libraries, default to static if user
302 dnl explicitly requested. If both disabled, set to static since shared
303 dnl was explicitly requirested.
304 case "x$enable_static$enable_shared" in
306 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
310 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
318 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
319 if test "$enable_static" = yes; then
320 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
322 AC_SUBST([MKLIB_OPTIONS])
325 dnl other compiler options
327 AC_ARG_ENABLE([debug],
328 [AS_HELP_STRING([--enable-debug],
329 [use debug compiler flags and macros @<:@default=disabled@:>@])],
330 [enable_debug="$enableval"],
333 if test "x$enable_debug" = xyes; then
334 DEFINES="$DEFINES -DDEBUG"
335 if test "x$GCC" = xyes; then
338 if test "x$GXX" = xyes; then
339 CXXFLAGS="$CXXFLAGS -g"
346 LIB_PREFIX_GLOB='lib'
347 LIB_VERSION_SEPARATOR='.'
348 if test "$enable_static" = yes; then
353 LIB_EXTENSION='dylib' ;;
355 dnl prefix can be 'cyg' or 'lib'
356 LIB_PREFIX_GLOB='???'
357 LIB_VERSION_SEPARATOR='-'
358 LIB_EXTENSION='dll' ;;
362 LIB_EXTENSION='so' ;;
367 dnl Mangled Mesa support
369 AC_ARG_ENABLE([mangling],
370 [AS_HELP_STRING([--enable-mangling],
371 [enable mangled symbols and library name @<:@default=disabled@:>@])],
372 [enable_mangling="${enableval}"],
378 if test "x${enable_mangling}" = "xyes" ; then
379 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
382 OSMESA_LIB="MangledOSMesa"
386 AC_SUBST([OSMESA_LIB])
389 dnl potentially-infringing-but-nobody-knows-for-sure stuff
391 AC_ARG_ENABLE([texture-float],
392 [AS_HELP_STRING([--enable-texture-float],
393 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
394 [enable_texture_float="$enableval"],
395 [enable_texture_float=no]
397 if test "x$enable_texture_float" = xyes; then
398 AC_MSG_WARN([Floating-point textures enabled.])
399 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
400 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
403 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
404 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
405 GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
406 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
407 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
408 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
409 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
410 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
411 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
412 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
413 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
415 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
416 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
417 GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
418 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
419 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
420 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
421 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
422 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
423 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
424 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
425 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
426 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
428 AC_SUBST([GL_LIB_NAME])
429 AC_SUBST([GLU_LIB_NAME])
430 AC_SUBST([GLUT_LIB_NAME])
431 AC_SUBST([OSMESA_LIB_NAME])
432 AC_SUBST([EGL_LIB_NAME])
433 AC_SUBST([GLESv1_CM_LIB_NAME])
434 AC_SUBST([GLESv2_LIB_NAME])
435 AC_SUBST([VG_LIB_NAME])
436 AC_SUBST([GLAPI_LIB_NAME])
437 AC_SUBST([WAYLAND_EGL_LIB_NAME])
438 AC_SUBST([GBM_LIB_NAME])
440 AC_SUBST([GL_LIB_GLOB])
441 AC_SUBST([GLU_LIB_GLOB])
442 AC_SUBST([GLUT_LIB_GLOB])
443 AC_SUBST([OSMESA_LIB_GLOB])
444 AC_SUBST([EGL_LIB_GLOB])
445 AC_SUBST([GLESv1_CM_LIB_GLOB])
446 AC_SUBST([GLESv2_LIB_GLOB])
447 AC_SUBST([VG_LIB_GLOB])
448 AC_SUBST([GLAPI_LIB_GLOB])
449 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
450 AC_SUBST([GBM_LIB_GLOB])
453 dnl Arch/platform-specific settings
456 [AS_HELP_STRING([--disable-asm],
457 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
458 [enable_asm="$enableval"],
465 AC_MSG_CHECKING([whether to enable assembly])
466 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
467 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
468 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
472 AC_MSG_RESULT([no, cross compiling])
476 # check for supported arches
477 if test "x$enable_asm" = xyes; then
481 linux* | *freebsd* | dragonfly* | *netbsd*)
482 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
488 linux* | *freebsd* | dragonfly* | *netbsd*)
489 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
511 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
512 MESA_ASM_SOURCES='$(X86_SOURCES)'
513 GLAPI_ASM_SOURCES='$(X86_API)'
514 AC_MSG_RESULT([yes, x86])
517 ASM_FLAGS="-DUSE_X86_64_ASM"
518 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
519 GLAPI_ASM_SOURCES='$(X86-64_API)'
520 AC_MSG_RESULT([yes, x86_64])
523 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
524 MESA_ASM_SOURCES='$(PPC_SOURCES)'
525 AC_MSG_RESULT([yes, ppc])
528 ASM_FLAGS="-DUSE_SPARC_ASM"
529 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
530 GLAPI_ASM_SOURCES='$(SPARC_API)'
531 AC_MSG_RESULT([yes, sparc])
534 AC_MSG_RESULT([no, platform not supported])
538 AC_SUBST([ASM_FLAGS])
539 AC_SUBST([MESA_ASM_SOURCES])
540 AC_SUBST([GLAPI_ASM_SOURCES])
545 dnl Check to see if dlopen is in default libraries (like Solaris, which
546 dnl has it in libc), or if libdl is needed to get it.
547 AC_CHECK_FUNC([dlopen], [],
548 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
549 AC_SUBST([DLOPEN_LIBS])
551 dnl See if posix_memalign is available
552 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
554 dnl SELinux awareness.
555 AC_ARG_ENABLE([selinux],
556 [AS_HELP_STRING([--enable-selinux],
557 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
558 [MESA_SELINUX="$enableval"],
560 if test "x$enable_selinux" = "xyes"; then
561 AC_CHECK_HEADER([selinux/selinux.h],[],
562 [AC_MSG_ERROR([SELinux headers not found])])
563 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
564 [AC_MSG_ERROR([SELinux library not found])])
565 SELINUX_LIBS="-lselinux"
566 DEFINES="$DEFINES -DMESA_SELINUX"
570 AC_ARG_ENABLE([opengl],
571 [AS_HELP_STRING([--disable-opengl],
572 [disable support for standard OpenGL API @<:@default=no@:>@])],
573 [enable_opengl="$enableval"],
575 AC_ARG_ENABLE([gles1],
576 [AS_HELP_STRING([--enable-gles1],
577 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
578 [enable_gles1="$enableval"],
580 AC_ARG_ENABLE([gles2],
581 [AS_HELP_STRING([--enable-gles2],
582 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
583 [enable_gles2="$enableval"],
585 AC_ARG_ENABLE([openvg],
586 [AS_HELP_STRING([--enable-openvg],
587 [enable support for OpenVG API @<:@default=no@:>@])],
588 [enable_openvg="$enableval"],
592 [AS_HELP_STRING([--enable-dri],
593 [enable DRI modules @<:@default=auto@:>@])],
594 [enable_dri="$enableval"],
597 [AS_HELP_STRING([--enable-glx],
598 [enable GLX library @<:@default=auto@:>@])],
599 [enable_glx="$enableval"],
601 AC_ARG_ENABLE([osmesa],
602 [AS_HELP_STRING([--enable-osmesa],
603 [enable OSMesa library @<:@default=auto@:>@])],
604 [enable_osmesa="$enableval"],
605 [enable_osmesa=auto])
607 [AS_HELP_STRING([--disable-egl],
608 [disable EGL library @<:@default=enabled@:>@])],
609 [enable_egl="$enableval"],
612 AC_ARG_ENABLE([xorg],
613 [AS_HELP_STRING([--enable-xorg],
614 [enable support for X.Org DDX API @<:@default=no@:>@])],
615 [enable_xorg="$enableval"],
618 [AS_HELP_STRING([--enable-xa],
619 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
620 [enable_xa="$enableval"],
622 AC_ARG_ENABLE([d3d1x],
623 [AS_HELP_STRING([--enable-d3d1x],
624 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
625 [enable_d3d1x="$enableval"],
628 [AS_HELP_STRING([--enable-gbm],
629 [enable gbm library @<:@default=auto@:>@])],
630 [enable_gbm="$enableval"],
633 AC_ARG_ENABLE([xvmc],
634 [AS_HELP_STRING([--enable-xvmc],
635 [enable xvmc library @<:@default=auto@:>@])],
636 [enable_xvmc="$enableval"],
638 AC_ARG_ENABLE([vdpau],
639 [AS_HELP_STRING([--enable-vdpau],
640 [enable vdpau library @<:@default=auto@:>@])],
641 [enable_vdpau="$enableval"],
644 [AS_HELP_STRING([--enable-va],
645 [enable va library @<:@default=auto@:>@])],
646 [enable_va="$enableval"],
649 AC_ARG_ENABLE([xlib_glx],
650 [AS_HELP_STRING([--enable-xlib-glx],
651 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
652 [enable_xlib_glx="$enableval"],
653 [enable_xlib_glx=auto])
654 AC_ARG_ENABLE([gallium_egl],
655 [AS_HELP_STRING([--enable-gallium-egl],
656 [enable optional EGL state tracker (not required
657 for EGL support in Gallium with OpenGL and OpenGL ES)
658 @<:@default=disable@:>@])],
659 [enable_gallium_egl="$enableval"],
660 [enable_gallium_egl=no])
661 AC_ARG_ENABLE([gallium_gbm],
662 [AS_HELP_STRING([--enable-gallium-gbm],
663 [enable optional gbm state tracker (not required for
664 gbm support in Gallium)
665 @<:@default=auto@:>@])],
666 [enable_gallium_gbm="$enableval"],
667 [enable_gallium_gbm=auto])
669 # Option for Gallium drivers
670 GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
672 AC_ARG_WITH([gallium-drivers],
673 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
674 [comma delimited Gallium drivers list, e.g.
675 "i915,nouveau,r300,r600,svga,swrast"
676 @<:@default=r300,r600,swrast@:>@])],
677 [with_gallium_drivers="$withval"],
678 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
680 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
681 # here so that the script doesn't choke on an unknown driver name later.
682 case "$with_gallium_drivers" in
683 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
684 no) with_gallium_drivers='' ;;
687 if test "x$enable_opengl" = xno -a \
688 "x$enable_gles1" = xno -a \
689 "x$enable_gles2" = xno -a \
690 "x$enable_openvg" = xno -a \
691 "x$enable_xorg" = xno -a \
692 "x$enable_xa" = xno -a \
693 "x$enable_d3d1x" = xno -a \
694 "x$enable_xvmc" = xno -a \
695 "x$enable_vdpau" = xno -a \
696 "x$enable_va" = xno; then
697 AC_MSG_ERROR([at least one API should be enabled])
701 if test "x$enable_opengl" = xno; then
702 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
704 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
706 if test "x$enable_gles1" = xyes; then
707 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
709 if test "x$enable_gles2" = xyes; then
710 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
712 AC_SUBST([API_DEFINES])
714 AC_ARG_ENABLE([shared-glapi],
715 [AS_HELP_STRING([--enable-shared-glapi],
716 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
717 [enable_shared_glapi="$enableval"],
718 [enable_shared_glapi=no])
721 if test "x$enable_shared_glapi" = xyes; then
724 AC_SUBST([SHARED_GLAPI])
727 dnl Driver configuration. Options are xlib, dri and osmesa right now.
728 dnl More later: fbdev, ...
730 default_driver="xlib"
735 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
738 *freebsd* | dragonfly* | *netbsd*)
740 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
745 if test "x$enable_opengl" = xno; then
749 AC_ARG_WITH([driver],
750 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
751 [mesa_driver="$withval"],
753 dnl Check for valid option
754 case "x$mesa_driver" in
755 xxlib|xdri|xosmesa|xno)
756 if test "x$enable_dri" != xauto -o \
757 "x$enable_glx" != xauto -o \
758 "x$enable_osmesa" != xauto -o \
759 "x$enable_xlib_glx" != xauto; then
760 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
764 mesa_driver="$default_driver"
767 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
771 # map $mesa_driver to APIs
772 if test "x$enable_dri" = xauto; then
773 case "x$mesa_driver" in
774 xdri) enable_dri=yes ;;
779 if test "x$enable_glx" = xauto; then
780 case "x$mesa_driver" in
781 xdri|xxlib) enable_glx=yes ;;
786 if test "x$enable_osmesa" = xauto; then
787 case "x$mesa_driver" in
788 xxlib|xosmesa) enable_osmesa=yes ;;
789 *) enable_osmesa=no ;;
793 if test "x$enable_xlib_glx" = xauto; then
794 case "x$mesa_driver" in
795 xxlib) enable_xlib_glx=yes ;;
796 *) enable_xlib_glx=no ;;
800 if test "x$enable_glx" = xno; then
805 dnl Driver specific build directories
808 dnl this variable will be prepended to SRC_DIRS and is not exported
813 GALLIUM_DIRS="auxiliary drivers state_trackers"
814 GALLIUM_TARGET_DIRS=""
815 GALLIUM_WINSYS_DIRS="sw"
816 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
817 GALLIUM_STATE_TRACKERS_DIRS=""
819 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
820 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
822 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
826 # build glapi if OpenGL is enabled
827 if test "x$enable_opengl" = xyes; then
828 CORE_DIRS="$CORE_DIRS mapi/glapi"
831 # build es1api if OpenGL ES 1.x is enabled
832 if test "x$enable_gles1" = xyes; then
833 CORE_DIRS="$CORE_DIRS mapi/es1api"
836 # build es2api if OpenGL ES 2.x is enabled
837 if test "x$enable_gles2" = xyes; then
838 CORE_DIRS="$CORE_DIRS mapi/es2api"
841 # build glsl and mesa if OpenGL or OpenGL ES is enabled
842 case "x$enable_opengl$enable_gles1$enable_gles2" in
844 CORE_DIRS="$CORE_DIRS glsl mesa"
848 case "x$enable_glx$enable_xlib_glx" in
850 DRIVER_DIRS="$DRIVER_DIRS x11"
851 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
852 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
853 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
854 HAVE_WINSYS_XLIB="yes"
858 SRC_DIRS="$SRC_DIRS glx"
862 if test "x$enable_dri" = xyes; then
863 DRIVER_DIRS="$DRIVER_DIRS dri"
865 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
866 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
870 if test "x$enable_osmesa" = xyes; then
871 # the empty space matters for osmesa... (see src/mesa/Makefile)
872 if test -n "$DRIVER_DIRS"; then
873 DRIVER_DIRS="$DRIVER_DIRS osmesa"
881 AC_SUBST([DRIVER_DIRS])
882 AC_SUBST([GALLIUM_DIRS])
883 AC_SUBST([GALLIUM_TARGET_DIRS])
884 AC_SUBST([GALLIUM_WINSYS_DIRS])
885 AC_SUBST([GALLIUM_DRIVERS_DIRS])
886 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
887 AC_SUBST([MESA_LLVM])
890 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
891 [have_libdrm=yes], [have_libdrm=no])
893 if test "x$enable_dri" = xyes; then
894 # DRI must be shared, I think
895 if test "$enable_static" = yes; then
896 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
899 # not a hard requirement as swrast does not depend on it
900 if test "x$have_libdrm" = xyes; then
901 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
906 dnl Find out if X is available. The variable have_x is set if libX11 is
907 dnl found to mimic AC_PATH_XTRA.
909 if test -n "$PKG_CONFIG"; then
910 AC_MSG_CHECKING([pkg-config files for X11 are available])
911 PKG_CHECK_EXISTS([x11],[
917 AC_MSG_RESULT([$x11_pkgconfig])
921 dnl Use the autoconf macro if no pkg-config files
922 if test "$x11_pkgconfig" = yes; then
923 PKG_CHECK_MODULES([X11], [x11])
926 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
927 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
928 AC_SUBST([X11_CFLAGS])
932 dnl Try to tell the user that the --x-* options are only used when
933 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
934 m4_divert_once([HELP_BEGIN],
935 [These options are only used when the X libraries cannot be found by the
936 pkg-config utility.])
938 dnl We need X for xlib and dri, so bomb now if it's not found
939 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
940 AC_MSG_ERROR([X11 development libraries needed for GLX])
943 if test "x$enable_glx" = xyes; then
944 DEFINES="$DEFINES -DUSE_XCB"
947 dnl Direct rendering or just indirect rendering
950 dnl Disable by default on GNU/Hurd
951 driglx_direct_default="no"
954 dnl Disable by default on cygwin
955 driglx_direct_default="no"
958 driglx_direct_default="yes"
961 AC_ARG_ENABLE([driglx-direct],
962 [AS_HELP_STRING([--disable-driglx-direct],
963 [enable direct rendering in GLX and EGL for DRI \
964 @<:@default=auto@:>@])],
965 [driglx_direct="$enableval"],
966 [driglx_direct="$driglx_direct_default"])
969 dnl libGL configuration per driver
971 case "x$enable_glx$enable_xlib_glx" in
974 if test "$x11_pkgconfig" = yes; then
975 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
976 GL_PC_REQ_PRIV="x11 xext"
977 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
978 GL_LIB_DEPS="$XLIBGL_LIBS"
980 # should check these...
981 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
982 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
983 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
984 GL_PC_CFLAGS="$X11_INCLUDES"
986 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
987 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
991 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
992 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
993 if test x"$driglx_direct" = xyes; then
994 if test "x$have_libdrm" != xyes; then
995 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
997 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
998 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
1001 # find the DRI deps for libGL
1002 if test "$x11_pkgconfig" = yes; then
1003 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
1005 # add xf86vidmode if available
1006 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
1007 if test "$HAVE_XF86VIDMODE" = yes ; then
1008 dri_modules="$dri_modules xxf86vm"
1011 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
1012 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1013 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
1014 GL_LIB_DEPS="$DRIGL_LIBS"
1016 # should check these...
1017 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
1018 if test "x$HAVE_XF86VIDMODE" == xyes; then
1019 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
1021 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1023 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1024 GL_PC_CFLAGS="$X11_INCLUDES"
1026 # XCB can only be used from pkg-config
1027 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1028 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1029 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1030 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1033 # Check to see if the xcb-glx library is new enough to support
1034 # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
1036 save_CPPFLAGS="$CPPFLAGS"
1037 save_LDFLAGS="$LDFLAGS"
1038 CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
1039 LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
1040 AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
1041 [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
1042 [HAVE_XCB_GLX_CREATE_CONTEXT=no])
1043 CPPFLAGS="$save_CPPFLAGS"
1044 LDFLAGS="$save_LDFLAGS"
1046 if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
1047 X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
1050 # need DRM libs, -lpthread, etc.
1051 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1052 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1056 # This is outside the case (above) so that it is invoked even for non-GLX
1058 AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
1059 test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
1061 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1062 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1063 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1064 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1066 AC_SUBST([GL_LIB_DEPS])
1067 AC_SUBST([GL_PC_REQ_PRIV])
1068 AC_SUBST([GL_PC_LIB_PRIV])
1069 AC_SUBST([GL_PC_CFLAGS])
1070 AC_SUBST([DRI_PC_REQ_PRIV])
1071 AC_SUBST([GLESv1_CM_LIB_DEPS])
1072 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1073 AC_SUBST([GLESv2_LIB_DEPS])
1074 AC_SUBST([GLESv2_PC_LIB_PRIV])
1076 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1077 AC_SUBST([GLAPI_LIB_DEPS])
1080 dnl Setup default DRI CFLAGS
1081 DRI_CFLAGS='$(CFLAGS)'
1082 DRI_CXXFLAGS='$(CXXFLAGS)'
1083 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1084 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1086 AC_ARG_ENABLE([shared-dricore],
1087 [AS_HELP_STRING([--enable-shared-dricore],
1088 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1089 [enable_dricore="$enableval"],
1090 [enable_dricore=no])
1091 if test "x$enable_dri" = xyes ; then
1092 if test "$enable_dricore" = yes ; then
1093 if test "$GCC$GXX" != yesyes ; then
1094 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1097 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1098 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1099 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1100 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1101 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1102 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1103 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1107 AC_SUBST([DRICORE_LIBS])
1108 AC_SUBST([DRICORE_GLSL_LIBS])
1109 AC_SUBST([DRICORE_LIB_DEPS])
1110 AC_SUBST([DRI_CXXFLAGS])
1111 AC_SUBST([DRI_CFLAGS])
1112 AC_SUBST([MESA_MODULES])
1114 AC_SUBST([HAVE_XF86VIDMODE])
1119 case "x$enable_glx$enable_xlib_glx" in
1121 DEFINES="$DEFINES -DUSE_XSHM"
1124 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1125 if test "x$driglx_direct" = xyes; then
1126 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1135 AC_ARG_ENABLE([glx-tls],
1136 [AS_HELP_STRING([--enable-glx-tls],
1137 [enable TLS support in GLX @<:@default=disabled@:>@])],
1138 [GLX_USE_TLS="$enableval"],
1140 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1142 AS_IF([test "x$GLX_USE_TLS" = xyes],
1143 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1148 dnl Directory for DRI drivers
1149 AC_ARG_WITH([dri-driverdir],
1150 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1151 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1152 [DRI_DRIVER_INSTALL_DIR="$withval"],
1153 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1154 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1155 dnl Extra search path for DRI drivers
1156 AC_ARG_WITH([dri-searchpath],
1157 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1158 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1159 [DRI_DRIVER_SEARCH_DIR="$withval"],
1160 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1161 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1162 dnl Which drivers to build - default is chosen by platform
1163 AC_ARG_WITH([dri-drivers],
1164 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1165 [comma delimited DRI drivers list, e.g.
1166 "swrast,i965,radeon" @<:@default=auto@:>@])],
1167 [with_dri_drivers="$withval"],
1168 [with_dri_drivers=yes])
1169 if test "x$with_dri_drivers" = x; then
1173 dnl If $with_dri_drivers is yes, directories will be added through
1176 case "$with_dri_drivers" in
1179 # classic DRI drivers require FEATURE_GL to build
1180 if test "x$enable_opengl" = xyes; then
1185 # verify the requested driver directories exist
1186 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1187 for driver in $dri_drivers; do
1188 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1189 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1191 DRI_DIRS="$dri_drivers"
1192 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1193 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1198 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1199 if test "x$enable_dri" = xyes; then
1200 # Platform specific settings and drivers to build
1203 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1204 DEFINES="$DEFINES -DHAVE_ALIAS"
1208 if test "x$DRI_DIRS" = "xyes"; then
1209 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1213 # Build only the drivers for cards that exist on PowerPC.
1214 if test "x$DRI_DIRS" = "xyes"; then
1215 DRI_DIRS="r200 radeon swrast"
1219 # Build only the drivers for cards that exist on sparc
1220 if test "x$DRI_DIRS" = "xyes"; then
1221 DRI_DIRS="r200 radeon swrast"
1226 freebsd* | dragonfly* | *netbsd*)
1227 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1228 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1230 if test "x$DRI_DIRS" = "xyes"; then
1231 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1235 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1236 DEFINES="$DEFINES -DHAVE_ALIAS"
1239 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1242 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1243 if test "x$DRI_DIRS" = "xyes"; then
1250 if test "x$DRI_DIRS" = "xyes"; then
1251 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1254 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1257 if test "x$enable_dri" = xyes; then
1260 AC_ARG_WITH([expat],
1261 [AS_HELP_STRING([--with-expat=DIR],
1262 [expat install directory])],[
1263 EXPAT_INCLUDES="-I$withval/include"
1264 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1265 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1266 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1268 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1269 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1270 [AC_MSG_ERROR([Expat required for DRI.])])
1273 # libdrm is required for all except swrast
1274 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1275 if test "x$have_libdrm" != xyes; then
1276 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1280 # put all the necessary libs together, including possibly libdricore
1281 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1283 AC_SUBST([DRI_DIRS])
1284 AC_SUBST([EXPAT_INCLUDES])
1285 AC_SUBST([DRI_LIB_DEPS])
1289 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1295 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1301 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1307 dnl OSMesa configuration
1310 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1311 AC_ARG_WITH([osmesa-bits],
1312 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1313 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1314 [osmesa_bits="$withval"],
1316 if test "x$osmesa_bits" != x8; then
1317 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1318 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1322 case "x$osmesa_bits" in
1324 OSMESA_LIB="${OSMESA_LIB}"
1327 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1328 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1331 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1335 if test "x$enable_osmesa" = xyes; then
1336 # only link libraries with osmesa if shared
1337 if test "$enable_static" = no; then
1338 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1343 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1345 AC_SUBST([OSMESA_LIB_DEPS])
1346 AC_SUBST([OSMESA_MESA_DEPS])
1347 AC_SUBST([OSMESA_PC_REQ])
1348 AC_SUBST([OSMESA_PC_LIB_PRIV])
1351 dnl gbm configuration
1353 if test "x$enable_gbm" = xauto; then
1354 case "$with_egl_platforms" in
1361 if test "x$enable_gbm" = xyes; then
1362 SRC_DIRS="$SRC_DIRS gbm"
1365 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1366 AC_MSG_ERROR([gbm needs udev]))
1367 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1369 if test "x$enable_dri" = xyes; then
1370 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1371 if test "$SHARED_GLAPI" -eq 0; then
1372 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1376 AC_SUBST([GBM_LIB_DEPS])
1377 AC_SUBST([GBM_BACKEND_DIRS])
1378 GBM_PC_REQ_PRIV="libudev"
1379 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1381 AC_SUBST([GBM_PC_REQ_PRIV])
1382 AC_SUBST([GBM_PC_LIB_PRIV])
1383 AC_SUBST([GBM_PC_CFLAGS])
1386 dnl EGL configuration
1390 if test "x$enable_egl" = xyes; then
1391 SRC_DIRS="$SRC_DIRS egl"
1392 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1395 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1397 if test "$enable_static" != yes; then
1398 # build egl_glx when libGL is built
1399 if test "x$enable_glx" = xyes; then
1400 EGL_DRIVERS_DIRS="glx"
1403 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1404 [have_libudev=yes],[have_libudev=no])
1405 if test "$have_libudev" = yes; then
1406 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1408 if test "x$enable_dri" = xyes; then
1409 # build egl_dri2 when xcb-dri2 is available
1410 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1411 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1413 if test "$have_xcb_dri2" = yes; then
1414 EGL_DRIVER_DRI2=dri2
1415 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1416 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1417 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1418 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1422 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1425 AC_SUBST([EGL_LIB_DEPS])
1426 AC_SUBST([EGL_DRIVERS_DIRS])
1429 dnl EGL Gallium configuration
1431 if test "x$enable_gallium_egl" = xyes; then
1432 if test "x$with_gallium_drivers" = x; then
1433 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1435 if test "x$enable_egl" = xno; then
1436 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1438 if test "x$have_libdrm" != xyes; then
1439 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1442 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1443 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1448 dnl gbm Gallium configuration
1450 if test "x$enable_gallium_gbm" = xauto; then
1451 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1453 enable_gallium_gbm=yes ;;
1455 enable_gallium_gbm=no ;;
1458 if test "x$enable_gallium_gbm" = xyes; then
1459 if test "x$with_gallium_drivers" = x; then
1460 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1462 if test "x$enable_gbm" = xno; then
1463 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1465 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1466 if test "x$enable_dri" = xno; then
1467 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1470 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1471 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1476 dnl X.Org DDX configuration
1478 if test "x$enable_xorg" = xyes; then
1479 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1480 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1481 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1482 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1483 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1484 HAVE_XEXTPROTO_71="no")
1485 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1490 dnl XA configuration
1492 if test "x$enable_xa" = xyes; then
1495 AC_CHECK_PROG(NM, nm, "nm")
1496 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1497 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1501 if test "x$enable_xa" = xyes; then
1502 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1510 dnl OpenVG configuration
1514 if test "x$enable_openvg" = xyes; then
1515 if test "x$enable_egl" = xno; then
1516 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1518 if test "x$with_gallium_drivers" = x; then
1519 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1521 if test "x$enable_gallium_egl" = xno; then
1522 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1525 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1526 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1527 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1528 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1533 dnl D3D1X configuration
1536 if test "x$enable_d3d1x" = xyes; then
1537 if test "x$with_gallium_drivers" = x; then
1538 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1541 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1546 dnl Gallium G3DVL configuration
1548 AC_ARG_ENABLE([gallium-g3dvl],
1549 [AS_HELP_STRING([--enable-gallium-g3dvl],
1550 [build gallium g3dvl @<:@default=disabled@:>@])],
1551 [enable_gallium_g3dvl="$enableval"],
1552 [enable_gallium_g3dvl=no])
1553 if test "x$enable_gallium_g3dvl" = xyes; then
1554 if test "x$with_gallium_drivers" = x; then
1555 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1558 if test "x$enable_xvmc" = xauto; then
1559 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1562 if test "x$enable_vdpau" = xauto; then
1563 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1566 if test "x$enable_va" = xauto; then
1567 #don't enable vaapi state tracker even if package exists
1568 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1573 if test "x$enable_xvmc" = xyes; then
1574 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1575 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1579 if test "x$enable_vdpau" = xyes; then
1580 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1581 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1585 if test "x$enable_va" = xyes; then
1586 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1587 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1588 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1593 dnl GLU configuration
1595 AC_ARG_ENABLE([glu],
1596 [AS_HELP_STRING([--disable-glu],
1597 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1598 [enable_glu="$enableval"],
1601 if test "x$enable_glu" = xyes; then
1602 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1603 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1608 if test "x$enable_glu" = xyes; then
1609 SRC_DIRS="$SRC_DIRS glu"
1611 if test "x$enable_glx" = xno; then
1612 # Link libGLU to libOSMesa instead of libGL
1615 if test "$enable_static" = no; then
1616 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1621 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1623 GLU_PC_LIB_PRIV="-lm"
1624 if test "$enable_static" = no; then
1626 GLU_MESA_DEPS='-l$(GL_LIB)'
1633 if test "$enable_static" = no; then
1634 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1636 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1637 AC_SUBST([GLU_LIB_DEPS])
1638 AC_SUBST([GLU_MESA_DEPS])
1639 AC_SUBST([GLU_PC_REQ])
1640 AC_SUBST([GLU_PC_REQ_PRIV])
1641 AC_SUBST([GLU_PC_LIB_PRIV])
1642 AC_SUBST([GLU_PC_CFLAGS])
1644 AC_SUBST([PROGRAM_DIRS])
1647 dnl Gallium configuration
1649 if test "x$with_gallium_drivers" != x; then
1650 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1653 AC_SUBST([LLVM_CFLAGS])
1654 AC_SUBST([LLVM_LIBS])
1655 AC_SUBST([LLVM_LDFLAGS])
1656 AC_SUBST([LLVM_VERSION])
1658 case "x$enable_opengl$enable_gles1$enable_gles2" in
1660 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1664 AC_SUBST([VG_LIB_DEPS])
1665 AC_SUBST([EGL_CLIENT_APIS])
1667 AC_ARG_WITH([egl-platforms],
1668 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1669 [comma delimited native platforms libEGL supports, e.g.
1670 "x11,drm" @<:@default=auto@:>@])],
1671 [with_egl_platforms="$withval"],
1672 [with_egl_platforms=yes])
1675 WAYLAND_EGL_LIB_DEPS=""
1677 case "$with_egl_platforms" in
1679 if test "x$enable_egl" = xyes; then
1684 if test "x$enable_egl" != xyes; then
1685 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1687 # verify the requested driver directories exist
1688 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1689 for plat in $egl_platforms; do
1690 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1691 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1692 if test "$plat" = "fbdev"; then
1693 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1695 if test "$plat" = "null"; then
1696 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1698 if test "$plat" = "wayland"; then
1699 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1700 [AC_MSG_ERROR([cannot find libwayland-client])])
1701 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1702 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1704 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1705 AC_MSG_ERROR([EGL platform drm needs gbm])
1707 case "$plat$have_libudev" in
1709 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1712 EGL_PLATFORMS="$egl_platforms"
1715 AC_SUBST([EGL_PLATFORMS])
1717 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1718 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1719 WAYLAND_EGL_PC_LIB_PRIV=
1720 WAYLAND_EGL_PC_CFLAGS=
1722 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1723 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1724 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1727 AC_ARG_WITH([egl-driver-dir],
1728 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1729 [directory for EGL drivers [[default=${libdir}/egl]]])],
1730 [EGL_DRIVER_INSTALL_DIR="$withval"],
1731 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1732 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1734 AC_ARG_WITH([xorg-driver-dir],
1735 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1736 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1737 [XORG_DRIVER_INSTALL_DIR="$withval"],
1738 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1739 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1741 AC_ARG_WITH([max-width],
1742 [AS_HELP_STRING([--with-max-width=N],
1743 [Maximum framebuffer width (4096)])],
1744 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1745 AS_IF([test "${withval}" -gt "4096"],
1746 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1748 AC_ARG_WITH([max-height],
1749 [AS_HELP_STRING([--with-max-height=N],
1750 [Maximum framebuffer height (4096)])],
1751 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1752 AS_IF([test "${withval}" -gt "4096"],
1753 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1759 AC_ARG_ENABLE([gallium-llvm],
1760 [AS_HELP_STRING([--enable-gallium-llvm],
1761 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1762 [enable_gallium_llvm="$enableval"],
1763 [enable_gallium_llvm=auto])
1764 if test "x$with_gallium_drivers" = x; then
1765 enable_gallium_llvm=no
1767 if test "x$enable_gallium_llvm" = xauto; then
1769 i*86|x86_64) enable_gallium_llvm=yes;;
1772 if test "x$enable_gallium_llvm" = xyes; then
1773 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1775 if test "x$LLVM_CONFIG" != xno; then
1776 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1777 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1778 LLVM_LIBS="`$LLVM_CONFIG --libs`"
1780 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1781 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1790 dnl Directory for VDPAU libs
1791 AC_ARG_WITH([vdpau-libdir],
1792 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1793 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1794 [VDPAU_LIB_INSTALL_DIR="$withval"],
1795 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1796 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1798 dnl Directory for VA libs
1799 AC_ARG_WITH([va-libdir],
1800 [AS_HELP_STRING([--with-va-libdir=DIR],
1801 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1802 [VA_LIB_INSTALL_DIR="$withval"],
1803 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1804 AC_SUBST([VA_LIB_INSTALL_DIR])
1807 dnl Gallium helper functions
1809 gallium_check_st() {
1810 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1811 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1812 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1813 if test "x$have_libdrm" != xyes; then
1814 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1816 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1818 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1819 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1821 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1822 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1824 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1825 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1827 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1828 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1829 NEED_G3DVL_DRI="yes"
1831 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1832 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1833 NEED_G3DVL_DRI="yes"
1835 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1836 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1837 NEED_G3DVL_DRI="yes"
1841 gallium_require_llvm() {
1842 if test "x$MESA_LLVM" = x0; then
1844 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1850 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1851 if test "x$with_gallium_drivers" != x; then
1852 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1853 for driver in $gallium_drivers; do
1856 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1857 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1860 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1861 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1862 if test "x$MESA_LLVM" = x1; then
1863 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1865 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1866 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1869 gallium_require_llvm "Gallium R300"
1870 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1871 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1874 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1875 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1878 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1879 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1880 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1883 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1884 if test "x$MESA_LLVM" = x1; then
1885 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1888 if test "x$HAVE_ST_DRI" = xyes; then
1889 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1891 if test "x$HAVE_ST_VDPAU" = xyes; then
1892 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1894 if test "x$HAVE_ST_XVMC" = xyes; then
1895 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1897 if test "x$HAVE_ST_VA" = xyes; then
1898 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1900 if test "x$HAVE_ST_VDPAU" = xyes ||
1901 test "x$HAVE_ST_XVMC" = xyes ||
1902 test "x$HAVE_ST_VA" = xyes; then
1903 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1904 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1909 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1915 if test "x$NEED_G3DVL_DRI" = xyes; then
1916 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1919 dnl prepend CORE_DIRS to SRC_DIRS
1920 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1922 dnl Restore LDFLAGS and CPPFLAGS
1923 LDFLAGS="$_SAVE_LDFLAGS"
1924 CPPFLAGS="$_SAVE_CPPFLAGS"
1926 dnl Add user CFLAGS and CXXFLAGS
1927 CFLAGS="$CFLAGS $USER_CFLAGS"
1928 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1930 dnl Substitute the config
1931 AC_CONFIG_FILES([configs/autoconf
1933 tests/glx/Makefile])
1935 dnl Replace the configs/current symlink
1936 AC_CONFIG_COMMANDS([configs],[
1937 if test -f configs/current || test -L configs/current; then
1938 rm -f configs/current
1940 ln -s autoconf configs/current
1943 dnl Sort the dirs alphabetically
1944 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1945 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1946 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1947 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1952 dnl Output some configuration info for the user
1955 echo " prefix: $prefix"
1956 echo " exec_prefix: $exec_prefix"
1957 echo " libdir: $libdir"
1958 echo " includedir: $includedir"
1962 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1963 echo " OpenVG: $enable_openvg"
1967 if test "x$enable_osmesa" != xno; then
1968 echo " OSMesa: lib$OSMESA_LIB"
1973 if test "x$enable_dri" != xno; then
1974 # cleanup the drivers var
1975 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1976 if test "x$DRI_DIRS" = x; then
1977 echo " DRI drivers: no"
1979 echo " DRI drivers: $dri_dirs"
1981 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1982 echo " Shared dricore: $enable_dricore"
1985 case "x$enable_glx$enable_xlib_glx" in
1987 echo " GLX: Xlib-based"
1990 echo " GLX: DRI-based"
1993 echo " GLX: $enable_glx"
1998 echo " GLU: $enable_glu"
2002 echo " EGL: $enable_egl"
2003 if test "$enable_egl" = yes; then
2004 echo " EGL platforms: $EGL_PLATFORMS"
2007 for d in $EGL_DRIVERS_DIRS; do
2008 egl_drivers="$egl_drivers builtin:egl_$d"
2011 if test "x$HAVE_ST_EGL" = xyes; then
2012 echo " EGL drivers: ${egl_drivers} egl_gallium"
2013 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2015 echo " EGL drivers: $egl_drivers"
2020 if test "x$MESA_LLVM" = x1; then
2022 echo " llvm-config: $LLVM_CONFIG"
2023 echo " llvm-version: $LLVM_VERSION"
2029 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2030 echo " Gallium: yes"
2031 echo " Gallium dirs: $GALLIUM_DIRS"
2032 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2033 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2034 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2035 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2043 echo " Shared libs: $enable_shared"
2044 echo " Static libs: $enable_static"
2046 dnl Compiler options
2047 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2048 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2049 $SED 's/^ *//;s/ */ /;s/ *$//'`
2050 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2051 $SED 's/^ *//;s/ */ /;s/ *$//'`
2052 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2054 echo " CFLAGS: $cflags"
2055 echo " CXXFLAGS: $cxxflags"
2056 echo " Macros: $defines"
2058 echo " PYTHON2: $PYTHON2"
2061 echo " Run '${MAKE-make}' to build Mesa"