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])
728 dnl Driver specific build directories
731 dnl this variable will be prepended to SRC_DIRS and is not exported
736 GALLIUM_DIRS="auxiliary drivers state_trackers"
737 GALLIUM_TARGET_DIRS=""
738 GALLIUM_WINSYS_DIRS="sw"
739 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
740 GALLIUM_STATE_TRACKERS_DIRS=""
742 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
743 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
745 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
749 # build glapi if OpenGL is enabled
750 if test "x$enable_opengl" = xyes; then
751 CORE_DIRS="$CORE_DIRS mapi/glapi"
754 # build es1api if OpenGL ES 1.x is enabled
755 if test "x$enable_gles1" = xyes; then
756 CORE_DIRS="$CORE_DIRS mapi/es1api"
759 # build es2api if OpenGL ES 2.x is enabled
760 if test "x$enable_gles2" = xyes; then
761 CORE_DIRS="$CORE_DIRS mapi/es2api"
764 # build glsl and mesa if OpenGL or OpenGL ES is enabled
765 case "x$enable_opengl$enable_gles1$enable_gles2" in
767 CORE_DIRS="$CORE_DIRS glsl mesa"
771 case "x$enable_glx$enable_xlib_glx" in
773 DRIVER_DIRS="$DRIVER_DIRS x11"
774 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
775 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
776 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
777 HAVE_WINSYS_XLIB="yes"
781 SRC_DIRS="$SRC_DIRS glx"
785 if test "x$enable_dri" = xyes; then
786 DRIVER_DIRS="$DRIVER_DIRS dri"
788 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
789 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
793 if test "x$enable_osmesa" = xyes; then
794 # the empty space matters for osmesa... (see src/mesa/Makefile)
795 if test -n "$DRIVER_DIRS"; then
796 DRIVER_DIRS="$DRIVER_DIRS osmesa"
804 AC_SUBST([DRIVER_DIRS])
805 AC_SUBST([GALLIUM_DIRS])
806 AC_SUBST([GALLIUM_TARGET_DIRS])
807 AC_SUBST([GALLIUM_WINSYS_DIRS])
808 AC_SUBST([GALLIUM_DRIVERS_DIRS])
809 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
810 AC_SUBST([MESA_LLVM])
813 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
814 [have_libdrm=yes], [have_libdrm=no])
816 if test "x$enable_dri" = xyes; then
817 # DRI must be shared, I think
818 if test "$enable_static" = yes; then
819 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
822 # not a hard requirement as swrast does not depend on it
823 if test "x$have_libdrm" = xyes; then
824 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
829 dnl Find out if X is available. The variable have_x is set if libX11 is
830 dnl found to mimic AC_PATH_XTRA.
832 if test -n "$PKG_CONFIG"; then
833 AC_MSG_CHECKING([pkg-config files for X11 are available])
834 PKG_CHECK_EXISTS([x11],[
840 AC_MSG_RESULT([$x11_pkgconfig])
844 dnl Use the autoconf macro if no pkg-config files
845 if test "$x11_pkgconfig" = yes; then
846 PKG_CHECK_MODULES([X11], [x11])
849 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
850 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
851 AC_SUBST([X11_CFLAGS])
855 dnl Try to tell the user that the --x-* options are only used when
856 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
857 m4_divert_once([HELP_BEGIN],
858 [These options are only used when the X libraries cannot be found by the
859 pkg-config utility.])
861 dnl We need X for xlib and dri, so bomb now if it's not found
862 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
863 AC_MSG_ERROR([X11 development libraries needed for GLX])
866 if test "x$enable_glx" = xyes; then
867 DEFINES="$DEFINES -DUSE_XCB"
870 dnl Direct rendering or just indirect rendering
873 dnl Disable by default on GNU/Hurd
874 driglx_direct_default="no"
877 dnl Disable by default on cygwin
878 driglx_direct_default="no"
881 driglx_direct_default="yes"
884 AC_ARG_ENABLE([driglx-direct],
885 [AS_HELP_STRING([--disable-driglx-direct],
886 [enable direct rendering in GLX and EGL for DRI \
887 @<:@default=auto@:>@])],
888 [driglx_direct="$enableval"],
889 [driglx_direct="$driglx_direct_default"])
892 dnl libGL configuration per driver
894 case "x$enable_glx$enable_xlib_glx" in
897 if test "$x11_pkgconfig" = yes; then
898 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
899 GL_PC_REQ_PRIV="x11 xext"
900 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
901 GL_LIB_DEPS="$XLIBGL_LIBS"
903 # should check these...
904 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
905 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
906 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
907 GL_PC_CFLAGS="$X11_INCLUDES"
909 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
910 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
914 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
915 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
916 if test x"$driglx_direct" = xyes; then
917 if test "x$have_libdrm" != xyes; then
918 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
920 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
921 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
924 # find the DRI deps for libGL
925 if test "$x11_pkgconfig" = yes; then
926 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
928 # add xf86vidmode if available
929 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
930 if test "$HAVE_XF86VIDMODE" = yes ; then
931 dri_modules="$dri_modules xxf86vm"
934 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
935 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
936 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
937 GL_LIB_DEPS="$DRIGL_LIBS"
939 # should check these...
940 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
941 if test "x$HAVE_XF86VIDMODE" == xyes; then
942 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
944 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
946 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
947 GL_PC_CFLAGS="$X11_INCLUDES"
949 # XCB can only be used from pkg-config
950 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
951 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
952 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
953 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
956 # Check to see if the xcb-glx library is new enough to support
957 # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
959 save_CPPFLAGS="$CPPFLAGS"
960 save_LDFLAGS="$LDFLAGS"
961 CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
962 LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
963 AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
964 [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
965 [HAVE_XCB_GLX_CREATE_CONTEXT=no])
966 CPPFLAGS="$save_CPPFLAGS"
967 LDFLAGS="$save_LDFLAGS"
969 if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
970 X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
973 # need DRM libs, -lpthread, etc.
974 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
975 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
979 # This is outside the case (above) so that it is invoked even for non-GLX
981 AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
982 test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
984 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
985 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
986 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
987 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
989 AC_SUBST([GL_LIB_DEPS])
990 AC_SUBST([GL_PC_REQ_PRIV])
991 AC_SUBST([GL_PC_LIB_PRIV])
992 AC_SUBST([GL_PC_CFLAGS])
993 AC_SUBST([DRI_PC_REQ_PRIV])
994 AC_SUBST([GLESv1_CM_LIB_DEPS])
995 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
996 AC_SUBST([GLESv2_LIB_DEPS])
997 AC_SUBST([GLESv2_PC_LIB_PRIV])
999 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1000 AC_SUBST([GLAPI_LIB_DEPS])
1003 dnl Setup default DRI CFLAGS
1004 DRI_CFLAGS='$(CFLAGS)'
1005 DRI_CXXFLAGS='$(CXXFLAGS)'
1006 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1007 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1009 AC_ARG_ENABLE([shared-dricore],
1010 [AS_HELP_STRING([--enable-shared-dricore],
1011 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1012 [enable_dricore="$enableval"],
1013 [enable_dricore=no])
1014 if test "x$enable_dri" = xyes ; then
1015 if test "$enable_dricore" = yes ; then
1016 if test "$GCC$GXX" != yesyes ; then
1017 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1020 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1021 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1022 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1023 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1024 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1025 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1026 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1030 AC_SUBST([DRICORE_LIBS])
1031 AC_SUBST([DRICORE_GLSL_LIBS])
1032 AC_SUBST([DRICORE_LIB_DEPS])
1033 AC_SUBST([DRI_CXXFLAGS])
1034 AC_SUBST([DRI_CFLAGS])
1035 AC_SUBST([MESA_MODULES])
1037 AC_SUBST([HAVE_XF86VIDMODE])
1042 case "x$enable_glx$enable_xlib_glx" in
1044 DEFINES="$DEFINES -DUSE_XSHM"
1047 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1048 if test "x$driglx_direct" = xyes; then
1049 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1058 AC_ARG_ENABLE([glx-tls],
1059 [AS_HELP_STRING([--enable-glx-tls],
1060 [enable TLS support in GLX @<:@default=disabled@:>@])],
1061 [GLX_USE_TLS="$enableval"],
1063 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1065 AS_IF([test "x$GLX_USE_TLS" = xyes],
1066 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1071 dnl Directory for DRI drivers
1072 AC_ARG_WITH([dri-driverdir],
1073 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1074 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1075 [DRI_DRIVER_INSTALL_DIR="$withval"],
1076 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1077 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1078 dnl Extra search path for DRI drivers
1079 AC_ARG_WITH([dri-searchpath],
1080 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1081 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1082 [DRI_DRIVER_SEARCH_DIR="$withval"],
1083 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1084 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1085 dnl Which drivers to build - default is chosen by platform
1086 AC_ARG_WITH([dri-drivers],
1087 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1088 [comma delimited DRI drivers list, e.g.
1089 "swrast,i965,radeon" @<:@default=auto@:>@])],
1090 [with_dri_drivers="$withval"],
1091 [with_dri_drivers=yes])
1092 if test "x$with_dri_drivers" = x; then
1096 dnl If $with_dri_drivers is yes, directories will be added through
1099 case "$with_dri_drivers" in
1102 # classic DRI drivers require FEATURE_GL to build
1103 if test "x$enable_opengl" = xyes; then
1108 # verify the requested driver directories exist
1109 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1110 for driver in $dri_drivers; do
1111 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1112 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1114 DRI_DIRS="$dri_drivers"
1115 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1116 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1121 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1122 if test "x$enable_dri" = xyes; then
1123 # Platform specific settings and drivers to build
1126 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1127 DEFINES="$DEFINES -DHAVE_ALIAS"
1131 if test "x$DRI_DIRS" = "xyes"; then
1132 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1136 # Build only the drivers for cards that exist on PowerPC.
1137 if test "x$DRI_DIRS" = "xyes"; then
1138 DRI_DIRS="r200 radeon swrast"
1142 # Build only the drivers for cards that exist on sparc
1143 if test "x$DRI_DIRS" = "xyes"; then
1144 DRI_DIRS="r200 radeon swrast"
1149 freebsd* | dragonfly* | *netbsd*)
1150 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1151 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1153 if test "x$DRI_DIRS" = "xyes"; then
1154 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1158 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1159 DEFINES="$DEFINES -DHAVE_ALIAS"
1162 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1165 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1166 if test "x$DRI_DIRS" = "xyes"; then
1173 if test "x$DRI_DIRS" = "xyes"; then
1174 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1177 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1180 if test "x$enable_dri" = xyes; then
1183 AC_ARG_WITH([expat],
1184 [AS_HELP_STRING([--with-expat=DIR],
1185 [expat install directory])],[
1186 EXPAT_INCLUDES="-I$withval/include"
1187 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1188 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1189 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1191 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1192 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1193 [AC_MSG_ERROR([Expat required for DRI.])])
1196 # libdrm is required for all except swrast
1197 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1198 if test "x$have_libdrm" != xyes; then
1199 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1203 # put all the necessary libs together, including possibly libdricore
1204 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1206 AC_SUBST([DRI_DIRS])
1207 AC_SUBST([EXPAT_INCLUDES])
1208 AC_SUBST([DRI_LIB_DEPS])
1212 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1218 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1224 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1230 dnl OSMesa configuration
1233 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1234 AC_ARG_WITH([osmesa-bits],
1235 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1236 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1237 [osmesa_bits="$withval"],
1239 if test "x$osmesa_bits" != x8; then
1240 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1241 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1245 case "x$osmesa_bits" in
1247 OSMESA_LIB="${OSMESA_LIB}"
1250 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1251 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1254 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1258 if test "x$enable_osmesa" = xyes; then
1259 # only link libraries with osmesa if shared
1260 if test "$enable_static" = no; then
1261 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1266 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1268 AC_SUBST([OSMESA_LIB_DEPS])
1269 AC_SUBST([OSMESA_MESA_DEPS])
1270 AC_SUBST([OSMESA_PC_REQ])
1271 AC_SUBST([OSMESA_PC_LIB_PRIV])
1274 dnl gbm configuration
1276 if test "x$enable_gbm" = xauto; then
1277 case "$with_egl_platforms" in
1284 if test "x$enable_gbm" = xyes; then
1285 SRC_DIRS="$SRC_DIRS gbm"
1288 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1289 AC_MSG_ERROR([gbm needs udev]))
1290 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1292 if test "x$enable_dri" = xyes; then
1293 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1294 if test "$SHARED_GLAPI" -eq 0; then
1295 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1299 AC_SUBST([GBM_LIB_DEPS])
1300 AC_SUBST([GBM_BACKEND_DIRS])
1301 GBM_PC_REQ_PRIV="libudev"
1302 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1304 AC_SUBST([GBM_PC_REQ_PRIV])
1305 AC_SUBST([GBM_PC_LIB_PRIV])
1306 AC_SUBST([GBM_PC_CFLAGS])
1309 dnl EGL configuration
1313 if test "x$enable_egl" = xyes; then
1314 SRC_DIRS="$SRC_DIRS egl"
1315 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1318 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1320 if test "$enable_static" != yes; then
1321 # build egl_glx when libGL is built
1322 if test "x$enable_glx" = xyes; then
1323 EGL_DRIVERS_DIRS="glx"
1326 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1327 [have_libudev=yes],[have_libudev=no])
1328 if test "$have_libudev" = yes; then
1329 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1331 if test "x$enable_dri" = xyes; then
1332 # build egl_dri2 when xcb-dri2 is available
1333 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1334 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1336 if test "$have_xcb_dri2" = yes; then
1337 EGL_DRIVER_DRI2=dri2
1338 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1339 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1340 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1341 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1345 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1348 AC_SUBST([EGL_LIB_DEPS])
1349 AC_SUBST([EGL_DRIVERS_DIRS])
1352 dnl EGL Gallium configuration
1354 if test "x$enable_gallium_egl" = xyes; then
1355 if test "x$with_gallium_drivers" = x; then
1356 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1358 if test "x$enable_egl" = xno; then
1359 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1361 if test "x$have_libdrm" != xyes; then
1362 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1365 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1366 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1371 dnl gbm Gallium configuration
1373 if test "x$enable_gallium_gbm" = xauto; then
1374 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1376 enable_gallium_gbm=yes ;;
1378 enable_gallium_gbm=no ;;
1381 if test "x$enable_gallium_gbm" = xyes; then
1382 if test "x$with_gallium_drivers" = x; then
1383 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1385 if test "x$enable_gbm" = xno; then
1386 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1388 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1389 if test "x$enable_dri" = xno; then
1390 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1393 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1394 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1399 dnl X.Org DDX configuration
1401 if test "x$enable_xorg" = xyes; then
1402 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1403 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1404 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1405 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1406 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1407 HAVE_XEXTPROTO_71="no")
1408 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1413 dnl XA configuration
1415 if test "x$enable_xa" = xyes; then
1418 AC_CHECK_PROG(NM, nm, "nm")
1419 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1420 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1424 if test "x$enable_xa" = xyes; then
1425 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1433 dnl OpenVG configuration
1437 if test "x$enable_openvg" = xyes; then
1438 if test "x$enable_egl" = xno; then
1439 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1441 if test "x$with_gallium_drivers" = x; then
1442 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1444 if test "x$enable_gallium_egl" = xno; then
1445 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1448 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1449 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1450 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1451 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1456 dnl D3D1X configuration
1459 if test "x$enable_d3d1x" = xyes; then
1460 if test "x$with_gallium_drivers" = x; then
1461 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1464 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1469 dnl Gallium G3DVL configuration
1471 AC_ARG_ENABLE([gallium-g3dvl],
1472 [AS_HELP_STRING([--enable-gallium-g3dvl],
1473 [build gallium g3dvl @<:@default=disabled@:>@])],
1474 [enable_gallium_g3dvl="$enableval"],
1475 [enable_gallium_g3dvl=no])
1476 if test "x$enable_gallium_g3dvl" = xyes; then
1477 if test "x$with_gallium_drivers" = x; then
1478 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1481 if test "x$enable_xvmc" = xauto; then
1482 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1485 if test "x$enable_vdpau" = xauto; then
1486 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1489 if test "x$enable_va" = xauto; then
1490 #don't enable vaapi state tracker even if package exists
1491 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1496 if test "x$enable_xvmc" = xyes; then
1497 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1498 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1502 if test "x$enable_vdpau" = xyes; then
1503 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1504 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1508 if test "x$enable_va" = xyes; then
1509 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1510 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1511 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1516 dnl GLU configuration
1518 AC_ARG_ENABLE([glu],
1519 [AS_HELP_STRING([--disable-glu],
1520 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1521 [enable_glu="$enableval"],
1524 if test "x$enable_glu" = xyes; then
1525 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1526 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1531 if test "x$enable_glu" = xyes; then
1532 SRC_DIRS="$SRC_DIRS glu"
1534 if test "x$enable_glx" = xno; then
1535 # Link libGLU to libOSMesa instead of libGL
1538 if test "$enable_static" = no; then
1539 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1544 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1546 GLU_PC_LIB_PRIV="-lm"
1547 if test "$enable_static" = no; then
1549 GLU_MESA_DEPS='-l$(GL_LIB)'
1556 if test "$enable_static" = no; then
1557 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1559 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1560 AC_SUBST([GLU_LIB_DEPS])
1561 AC_SUBST([GLU_MESA_DEPS])
1562 AC_SUBST([GLU_PC_REQ])
1563 AC_SUBST([GLU_PC_REQ_PRIV])
1564 AC_SUBST([GLU_PC_LIB_PRIV])
1565 AC_SUBST([GLU_PC_CFLAGS])
1567 AC_SUBST([PROGRAM_DIRS])
1570 dnl Gallium configuration
1572 if test "x$with_gallium_drivers" != x; then
1573 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1576 AC_SUBST([LLVM_CFLAGS])
1577 AC_SUBST([LLVM_LIBS])
1578 AC_SUBST([LLVM_LDFLAGS])
1579 AC_SUBST([LLVM_VERSION])
1581 case "x$enable_opengl$enable_gles1$enable_gles2" in
1583 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1587 AC_SUBST([VG_LIB_DEPS])
1588 AC_SUBST([EGL_CLIENT_APIS])
1590 AC_ARG_WITH([egl-platforms],
1591 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1592 [comma delimited native platforms libEGL supports, e.g.
1593 "x11,drm" @<:@default=auto@:>@])],
1594 [with_egl_platforms="$withval"],
1595 [with_egl_platforms=yes])
1598 WAYLAND_EGL_LIB_DEPS=""
1600 case "$with_egl_platforms" in
1602 if test "x$enable_egl" = xyes; then
1607 if test "x$enable_egl" != xyes; then
1608 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1610 # verify the requested driver directories exist
1611 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1612 for plat in $egl_platforms; do
1613 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1614 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1615 if test "$plat" = "fbdev"; then
1616 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1618 if test "$plat" = "null"; then
1619 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1621 if test "$plat" = "wayland"; then
1622 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1623 [AC_MSG_ERROR([cannot find libwayland-client])])
1624 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1625 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1627 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1628 AC_MSG_ERROR([EGL platform drm needs gbm])
1630 case "$plat$have_libudev" in
1632 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1635 EGL_PLATFORMS="$egl_platforms"
1638 AC_SUBST([EGL_PLATFORMS])
1640 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1641 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1642 WAYLAND_EGL_PC_LIB_PRIV=
1643 WAYLAND_EGL_PC_CFLAGS=
1645 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1646 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1647 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1650 AC_ARG_WITH([egl-driver-dir],
1651 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1652 [directory for EGL drivers [[default=${libdir}/egl]]])],
1653 [EGL_DRIVER_INSTALL_DIR="$withval"],
1654 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1655 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1657 AC_ARG_WITH([xorg-driver-dir],
1658 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1659 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1660 [XORG_DRIVER_INSTALL_DIR="$withval"],
1661 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1662 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1664 AC_ARG_WITH([max-width],
1665 [AS_HELP_STRING([--with-max-width=N],
1666 [Maximum framebuffer width (4096)])],
1667 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1668 AS_IF([test "${withval}" -gt "4096"],
1669 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1671 AC_ARG_WITH([max-height],
1672 [AS_HELP_STRING([--with-max-height=N],
1673 [Maximum framebuffer height (4096)])],
1674 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1675 AS_IF([test "${withval}" -gt "4096"],
1676 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1682 AC_ARG_ENABLE([gallium-llvm],
1683 [AS_HELP_STRING([--enable-gallium-llvm],
1684 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1685 [enable_gallium_llvm="$enableval"],
1686 [enable_gallium_llvm=auto])
1687 if test "x$with_gallium_drivers" = x; then
1688 enable_gallium_llvm=no
1690 if test "x$enable_gallium_llvm" = xauto; then
1692 i*86|x86_64) enable_gallium_llvm=yes;;
1695 if test "x$enable_gallium_llvm" = xyes; then
1696 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1698 if test "x$LLVM_CONFIG" != xno; then
1699 LLVM_VERSION=`$LLVM_CONFIG --version`
1700 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1701 LLVM_LIBS="`$LLVM_CONFIG --libs`"
1703 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1704 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1713 dnl Directory for VDPAU libs
1714 AC_ARG_WITH([vdpau-libdir],
1715 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1716 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1717 [VDPAU_LIB_INSTALL_DIR="$withval"],
1718 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1719 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1721 dnl Directory for VA libs
1722 AC_ARG_WITH([va-libdir],
1723 [AS_HELP_STRING([--with-va-libdir=DIR],
1724 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1725 [VA_LIB_INSTALL_DIR="$withval"],
1726 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1727 AC_SUBST([VA_LIB_INSTALL_DIR])
1730 dnl Gallium helper functions
1732 gallium_check_st() {
1733 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1734 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1735 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1736 if test "x$have_libdrm" != xyes; then
1737 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1739 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1741 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1742 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1744 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1745 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1747 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1748 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1750 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1751 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1752 NEED_G3DVL_DRI="yes"
1754 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1755 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1756 NEED_G3DVL_DRI="yes"
1758 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1759 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1760 NEED_G3DVL_DRI="yes"
1764 gallium_require_llvm() {
1765 if test "x$MESA_LLVM" = x0; then
1767 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1773 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1774 if test "x$with_gallium_drivers" != x; then
1775 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1776 for driver in $gallium_drivers; do
1779 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1780 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1783 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1784 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1785 if test "x$MESA_LLVM" = x1; then
1786 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1788 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1789 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1792 gallium_require_llvm "Gallium R300"
1793 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1794 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1797 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1798 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1801 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1802 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1803 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1806 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1807 if test "x$MESA_LLVM" = x1; then
1808 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1811 if test "x$HAVE_ST_DRI" = xyes; then
1812 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1814 if test "x$HAVE_ST_VDPAU" = xyes; then
1815 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1817 if test "x$HAVE_ST_XVMC" = xyes; then
1818 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1820 if test "x$HAVE_ST_VA" = xyes; then
1821 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1823 if test "x$HAVE_ST_VDPAU" = xyes ||
1824 test "x$HAVE_ST_XVMC" = xyes ||
1825 test "x$HAVE_ST_VA" = xyes; then
1826 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1827 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1832 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1838 if test "x$NEED_G3DVL_DRI" = xyes; then
1839 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1842 dnl prepend CORE_DIRS to SRC_DIRS
1843 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1845 dnl Restore LDFLAGS and CPPFLAGS
1846 LDFLAGS="$_SAVE_LDFLAGS"
1847 CPPFLAGS="$_SAVE_CPPFLAGS"
1849 dnl Add user CFLAGS and CXXFLAGS
1850 CFLAGS="$CFLAGS $USER_CFLAGS"
1851 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1853 dnl Substitute the config
1854 AC_CONFIG_FILES([configs/autoconf
1856 tests/glx/Makefile])
1858 dnl Replace the configs/current symlink
1859 AC_CONFIG_COMMANDS([configs],[
1860 if test -f configs/current || test -L configs/current; then
1861 rm -f configs/current
1863 ln -s autoconf configs/current
1866 dnl Sort the dirs alphabetically
1867 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1868 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1869 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1870 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1875 dnl Output some configuration info for the user
1878 echo " prefix: $prefix"
1879 echo " exec_prefix: $exec_prefix"
1880 echo " libdir: $libdir"
1881 echo " includedir: $includedir"
1885 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1886 echo " OpenVG: $enable_openvg"
1890 if test "x$enable_osmesa" != xno; then
1891 echo " OSMesa: lib$OSMESA_LIB"
1896 if test "x$enable_dri" != xno; then
1897 # cleanup the drivers var
1898 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1899 if test "x$DRI_DIRS" = x; then
1900 echo " DRI drivers: no"
1902 echo " DRI drivers: $dri_dirs"
1904 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1905 echo " Shared dricore: $enable_dricore"
1908 case "x$enable_glx$enable_xlib_glx" in
1910 echo " GLX: Xlib-based"
1913 echo " GLX: DRI-based"
1916 echo " GLX: $enable_glx"
1921 echo " GLU: $enable_glu"
1925 echo " EGL: $enable_egl"
1926 if test "$enable_egl" = yes; then
1927 echo " EGL platforms: $EGL_PLATFORMS"
1930 for d in $EGL_DRIVERS_DIRS; do
1931 egl_drivers="$egl_drivers builtin:egl_$d"
1934 if test "x$HAVE_ST_EGL" = xyes; then
1935 echo " EGL drivers: ${egl_drivers} egl_gallium"
1936 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
1938 echo " EGL drivers: $egl_drivers"
1943 if test "x$MESA_LLVM" = x1; then
1945 echo " llvm-config: $LLVM_CONFIG"
1946 echo " llvm-version: $LLVM_VERSION"
1952 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1953 echo " Gallium: yes"
1954 echo " Gallium dirs: $GALLIUM_DIRS"
1955 echo " Target dirs: $GALLIUM_TARGET_DIRS"
1956 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
1957 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
1958 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1966 echo " Shared libs: $enable_shared"
1967 echo " Static libs: $enable_static"
1969 dnl Compiler options
1970 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1971 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1972 $SED 's/^ *//;s/ */ /;s/ *$//'`
1973 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1974 $SED 's/^ *//;s/ */ /;s/ *$//'`
1975 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1977 echo " CFLAGS: $cflags"
1978 echo " CXXFLAGS: $cxxflags"
1979 echo " Macros: $defines"
1981 echo " PYTHON2: $PYTHON2"
1984 echo " Run '${MAKE-make}' to build Mesa"