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.30
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 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
406 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
407 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
408 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
409 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
410 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
411 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
412 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
414 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
415 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
416 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
417 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
418 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
419 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
420 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
421 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
422 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
423 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
424 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
426 AC_SUBST([GL_LIB_NAME])
427 AC_SUBST([GLU_LIB_NAME])
428 AC_SUBST([OSMESA_LIB_NAME])
429 AC_SUBST([EGL_LIB_NAME])
430 AC_SUBST([GLESv1_CM_LIB_NAME])
431 AC_SUBST([GLESv2_LIB_NAME])
432 AC_SUBST([VG_LIB_NAME])
433 AC_SUBST([GLAPI_LIB_NAME])
434 AC_SUBST([WAYLAND_EGL_LIB_NAME])
435 AC_SUBST([GBM_LIB_NAME])
437 AC_SUBST([GL_LIB_GLOB])
438 AC_SUBST([GLU_LIB_GLOB])
439 AC_SUBST([OSMESA_LIB_GLOB])
440 AC_SUBST([EGL_LIB_GLOB])
441 AC_SUBST([GLESv1_CM_LIB_GLOB])
442 AC_SUBST([GLESv2_LIB_GLOB])
443 AC_SUBST([VG_LIB_GLOB])
444 AC_SUBST([GLAPI_LIB_GLOB])
445 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
446 AC_SUBST([GBM_LIB_GLOB])
449 dnl Arch/platform-specific settings
452 [AS_HELP_STRING([--disable-asm],
453 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
454 [enable_asm="$enableval"],
461 AC_MSG_CHECKING([whether to enable assembly])
462 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
463 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
464 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
468 AC_MSG_RESULT([no, cross compiling])
472 # check for supported arches
473 if test "x$enable_asm" = xyes; then
477 linux* | *freebsd* | dragonfly* | *netbsd*)
478 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
484 linux* | *freebsd* | dragonfly* | *netbsd*)
485 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
507 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
508 MESA_ASM_SOURCES='$(X86_SOURCES)'
509 GLAPI_ASM_SOURCES='$(X86_API)'
510 AC_MSG_RESULT([yes, x86])
513 ASM_FLAGS="-DUSE_X86_64_ASM"
514 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
515 GLAPI_ASM_SOURCES='$(X86-64_API)'
516 AC_MSG_RESULT([yes, x86_64])
519 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
520 MESA_ASM_SOURCES='$(PPC_SOURCES)'
521 AC_MSG_RESULT([yes, ppc])
524 ASM_FLAGS="-DUSE_SPARC_ASM"
525 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
526 GLAPI_ASM_SOURCES='$(SPARC_API)'
527 AC_MSG_RESULT([yes, sparc])
530 AC_MSG_RESULT([no, platform not supported])
534 AC_SUBST([ASM_FLAGS])
535 AC_SUBST([MESA_ASM_SOURCES])
536 AC_SUBST([GLAPI_ASM_SOURCES])
541 dnl Check to see if dlopen is in default libraries (like Solaris, which
542 dnl has it in libc), or if libdl is needed to get it.
543 AC_CHECK_FUNC([dlopen], [],
544 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
545 AC_SUBST([DLOPEN_LIBS])
547 dnl See if posix_memalign is available
548 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
550 dnl SELinux awareness.
551 AC_ARG_ENABLE([selinux],
552 [AS_HELP_STRING([--enable-selinux],
553 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
554 [MESA_SELINUX="$enableval"],
556 if test "x$enable_selinux" = "xyes"; then
557 AC_CHECK_HEADER([selinux/selinux.h],[],
558 [AC_MSG_ERROR([SELinux headers not found])])
559 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
560 [AC_MSG_ERROR([SELinux library not found])])
561 SELINUX_LIBS="-lselinux"
562 DEFINES="$DEFINES -DMESA_SELINUX"
566 AC_ARG_ENABLE([opengl],
567 [AS_HELP_STRING([--disable-opengl],
568 [disable support for standard OpenGL API @<:@default=no@:>@])],
569 [enable_opengl="$enableval"],
571 AC_ARG_ENABLE([gles1],
572 [AS_HELP_STRING([--enable-gles1],
573 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
574 [enable_gles1="$enableval"],
576 AC_ARG_ENABLE([gles2],
577 [AS_HELP_STRING([--enable-gles2],
578 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
579 [enable_gles2="$enableval"],
581 AC_ARG_ENABLE([openvg],
582 [AS_HELP_STRING([--enable-openvg],
583 [enable support for OpenVG API @<:@default=no@:>@])],
584 [enable_openvg="$enableval"],
588 [AS_HELP_STRING([--enable-dri],
589 [enable DRI modules @<:@default=auto@:>@])],
590 [enable_dri="$enableval"],
593 [AS_HELP_STRING([--enable-glx],
594 [enable GLX library @<:@default=auto@:>@])],
595 [enable_glx="$enableval"],
597 AC_ARG_ENABLE([osmesa],
598 [AS_HELP_STRING([--enable-osmesa],
599 [enable OSMesa library @<:@default=auto@:>@])],
600 [enable_osmesa="$enableval"],
601 [enable_osmesa=auto])
603 [AS_HELP_STRING([--disable-egl],
604 [disable EGL library @<:@default=enabled@:>@])],
605 [enable_egl="$enableval"],
608 AC_ARG_ENABLE([xorg],
609 [AS_HELP_STRING([--enable-xorg],
610 [enable support for X.Org DDX API @<:@default=no@:>@])],
611 [enable_xorg="$enableval"],
614 [AS_HELP_STRING([--enable-xa],
615 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
616 [enable_xa="$enableval"],
618 AC_ARG_ENABLE([d3d1x],
619 [AS_HELP_STRING([--enable-d3d1x],
620 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
621 [enable_d3d1x="$enableval"],
624 [AS_HELP_STRING([--enable-gbm],
625 [enable gbm library @<:@default=auto@:>@])],
626 [enable_gbm="$enableval"],
629 AC_ARG_ENABLE([xvmc],
630 [AS_HELP_STRING([--enable-xvmc],
631 [enable xvmc library @<:@default=auto@:>@])],
632 [enable_xvmc="$enableval"],
634 AC_ARG_ENABLE([vdpau],
635 [AS_HELP_STRING([--enable-vdpau],
636 [enable vdpau library @<:@default=auto@:>@])],
637 [enable_vdpau="$enableval"],
640 [AS_HELP_STRING([--enable-va],
641 [enable va library @<:@default=auto@:>@])],
642 [enable_va="$enableval"],
645 AC_ARG_ENABLE([xlib_glx],
646 [AS_HELP_STRING([--enable-xlib-glx],
647 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
648 [enable_xlib_glx="$enableval"],
649 [enable_xlib_glx=auto])
650 AC_ARG_ENABLE([gallium_egl],
651 [AS_HELP_STRING([--enable-gallium-egl],
652 [enable optional EGL state tracker (not required
653 for EGL support in Gallium with OpenGL and OpenGL ES)
654 @<:@default=disable@:>@])],
655 [enable_gallium_egl="$enableval"],
656 [enable_gallium_egl=no])
657 AC_ARG_ENABLE([gallium_gbm],
658 [AS_HELP_STRING([--enable-gallium-gbm],
659 [enable optional gbm state tracker (not required for
660 gbm support in Gallium)
661 @<:@default=auto@:>@])],
662 [enable_gallium_gbm="$enableval"],
663 [enable_gallium_gbm=auto])
665 # Option for Gallium drivers
666 GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
668 AC_ARG_WITH([gallium-drivers],
669 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
670 [comma delimited Gallium drivers list, e.g.
671 "i915,nouveau,r300,r600,svga,swrast"
672 @<:@default=r300,r600,swrast@:>@])],
673 [with_gallium_drivers="$withval"],
674 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
676 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
677 # here so that the script doesn't choke on an unknown driver name later.
678 case "$with_gallium_drivers" in
679 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
680 no) with_gallium_drivers='' ;;
683 if test "x$enable_opengl" = xno -a \
684 "x$enable_gles1" = xno -a \
685 "x$enable_gles2" = xno -a \
686 "x$enable_openvg" = xno -a \
687 "x$enable_xorg" = xno -a \
688 "x$enable_xa" = xno -a \
689 "x$enable_d3d1x" = xno -a \
690 "x$enable_xvmc" = xno -a \
691 "x$enable_vdpau" = xno -a \
692 "x$enable_va" = xno; then
693 AC_MSG_ERROR([at least one API should be enabled])
697 if test "x$enable_opengl" = xno; then
698 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
700 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
702 if test "x$enable_gles1" = xyes; then
703 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
705 if test "x$enable_gles2" = xyes; then
706 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
708 AC_SUBST([API_DEFINES])
710 AC_ARG_ENABLE([shared-glapi],
711 [AS_HELP_STRING([--enable-shared-glapi],
712 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
713 [enable_shared_glapi="$enableval"],
714 [enable_shared_glapi=no])
717 if test "x$enable_shared_glapi" = xyes; then
720 AC_SUBST([SHARED_GLAPI])
723 dnl Driver configuration. Options are xlib, dri and osmesa right now.
724 dnl More later: fbdev, ...
726 default_driver="xlib"
731 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
734 *freebsd* | dragonfly* | *netbsd*)
736 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
741 if test "x$enable_opengl" = xno; then
745 AC_ARG_WITH([driver],
746 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
747 [mesa_driver="$withval"],
749 dnl Check for valid option
750 case "x$mesa_driver" in
751 xxlib|xdri|xosmesa|xno)
752 if test "x$enable_dri" != xauto -o \
753 "x$enable_glx" != xauto -o \
754 "x$enable_osmesa" != xauto -o \
755 "x$enable_xlib_glx" != xauto; then
756 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
760 mesa_driver="$default_driver"
763 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
767 # map $mesa_driver to APIs
768 if test "x$enable_dri" = xauto; then
769 case "x$mesa_driver" in
770 xdri) enable_dri=yes ;;
775 if test "x$enable_glx" = xauto; then
776 case "x$mesa_driver" in
777 xdri|xxlib) enable_glx=yes ;;
782 if test "x$enable_osmesa" = xauto; then
783 case "x$mesa_driver" in
784 xxlib|xosmesa) enable_osmesa=yes ;;
785 *) enable_osmesa=no ;;
789 if test "x$enable_xlib_glx" = xauto; then
790 case "x$mesa_driver" in
791 xxlib) enable_xlib_glx=yes ;;
792 *) enable_xlib_glx=no ;;
796 if test "x$enable_glx" = xno; then
801 dnl Driver specific build directories
804 dnl this variable will be prepended to SRC_DIRS and is not exported
809 GALLIUM_DIRS="auxiliary drivers state_trackers"
810 GALLIUM_TARGET_DIRS=""
811 GALLIUM_WINSYS_DIRS="sw"
812 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
813 GALLIUM_STATE_TRACKERS_DIRS=""
815 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
816 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
818 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
822 # build glapi if OpenGL is enabled
823 if test "x$enable_opengl" = xyes; then
824 CORE_DIRS="$CORE_DIRS mapi/glapi"
827 # build es1api if OpenGL ES 1.x is enabled
828 if test "x$enable_gles1" = xyes; then
829 CORE_DIRS="$CORE_DIRS mapi/es1api"
832 # build es2api if OpenGL ES 2.x is enabled
833 if test "x$enable_gles2" = xyes; then
834 CORE_DIRS="$CORE_DIRS mapi/es2api"
837 # build glsl and mesa if OpenGL or OpenGL ES is enabled
838 case "x$enable_opengl$enable_gles1$enable_gles2" in
840 CORE_DIRS="$CORE_DIRS glsl mesa"
844 case "x$enable_glx$enable_xlib_glx" in
846 DRIVER_DIRS="$DRIVER_DIRS x11"
847 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
848 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
849 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
850 HAVE_WINSYS_XLIB="yes"
854 SRC_DIRS="$SRC_DIRS glx"
858 if test "x$enable_dri" = xyes; then
859 DRIVER_DIRS="$DRIVER_DIRS dri"
861 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
862 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
866 if test "x$enable_osmesa" = xyes; then
867 # the empty space matters for osmesa... (see src/mesa/Makefile)
868 if test -n "$DRIVER_DIRS"; then
869 DRIVER_DIRS="$DRIVER_DIRS osmesa"
877 AC_SUBST([DRIVER_DIRS])
878 AC_SUBST([GALLIUM_DIRS])
879 AC_SUBST([GALLIUM_TARGET_DIRS])
880 AC_SUBST([GALLIUM_WINSYS_DIRS])
881 AC_SUBST([GALLIUM_DRIVERS_DIRS])
882 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
883 AC_SUBST([MESA_LLVM])
886 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
887 [have_libdrm=yes], [have_libdrm=no])
889 if test "x$enable_dri" = xyes; then
890 # DRI must be shared, I think
891 if test "$enable_static" = yes; then
892 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
895 # not a hard requirement as swrast does not depend on it
896 if test "x$have_libdrm" = xyes; then
897 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
902 dnl Find out if X is available. The variable have_x is set if libX11 is
903 dnl found to mimic AC_PATH_XTRA.
905 if test -n "$PKG_CONFIG"; then
906 AC_MSG_CHECKING([pkg-config files for X11 are available])
907 PKG_CHECK_EXISTS([x11],[
913 AC_MSG_RESULT([$x11_pkgconfig])
917 dnl Use the autoconf macro if no pkg-config files
918 if test "$x11_pkgconfig" = yes; then
919 PKG_CHECK_MODULES([X11], [x11])
922 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
923 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
924 AC_SUBST([X11_CFLAGS])
928 dnl Try to tell the user that the --x-* options are only used when
929 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
930 m4_divert_once([HELP_BEGIN],
931 [These options are only used when the X libraries cannot be found by the
932 pkg-config utility.])
934 dnl We need X for xlib and dri, so bomb now if it's not found
935 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
936 AC_MSG_ERROR([X11 development libraries needed for GLX])
939 if test "x$enable_glx" = xyes; then
940 DEFINES="$DEFINES -DUSE_XCB"
943 dnl Direct rendering or just indirect rendering
946 dnl Disable by default on GNU/Hurd
947 driglx_direct_default="no"
950 dnl Disable by default on cygwin
951 driglx_direct_default="no"
954 driglx_direct_default="yes"
957 AC_ARG_ENABLE([driglx-direct],
958 [AS_HELP_STRING([--disable-driglx-direct],
959 [enable direct rendering in GLX and EGL for DRI \
960 @<:@default=auto@:>@])],
961 [driglx_direct="$enableval"],
962 [driglx_direct="$driglx_direct_default"])
965 dnl libGL configuration per driver
967 case "x$enable_glx$enable_xlib_glx" in
970 if test "$x11_pkgconfig" = yes; then
971 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
972 GL_PC_REQ_PRIV="x11 xext"
973 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
974 GL_LIB_DEPS="$XLIBGL_LIBS"
976 # should check these...
977 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
978 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
979 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
980 GL_PC_CFLAGS="$X11_INCLUDES"
982 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
983 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
987 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
988 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
989 if test x"$driglx_direct" = xyes; then
990 if test "x$have_libdrm" != xyes; then
991 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
993 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
994 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
997 # find the DRI deps for libGL
998 if test "$x11_pkgconfig" = yes; then
999 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
1001 # add xf86vidmode if available
1002 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
1003 if test "$HAVE_XF86VIDMODE" = yes ; then
1004 dri_modules="$dri_modules xxf86vm"
1007 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
1008 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1009 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
1010 GL_LIB_DEPS="$DRIGL_LIBS"
1012 # should check these...
1013 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
1014 if test "x$HAVE_XF86VIDMODE" == xyes; then
1015 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
1017 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1019 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1020 GL_PC_CFLAGS="$X11_INCLUDES"
1022 # XCB can only be used from pkg-config
1023 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1024 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1025 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1026 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1029 # Check to see if the xcb-glx library is new enough to support
1030 # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
1032 save_CPPFLAGS="$CPPFLAGS"
1033 save_LDFLAGS="$LDFLAGS"
1034 CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
1035 LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
1036 AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
1037 [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
1038 [HAVE_XCB_GLX_CREATE_CONTEXT=no])
1039 CPPFLAGS="$save_CPPFLAGS"
1040 LDFLAGS="$save_LDFLAGS"
1042 if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
1043 X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
1046 # need DRM libs, -lpthread, etc.
1047 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1048 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1052 # This is outside the case (above) so that it is invoked even for non-GLX
1054 AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
1055 test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
1057 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1058 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1059 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1060 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1062 AC_SUBST([GL_LIB_DEPS])
1063 AC_SUBST([GL_PC_REQ_PRIV])
1064 AC_SUBST([GL_PC_LIB_PRIV])
1065 AC_SUBST([GL_PC_CFLAGS])
1066 AC_SUBST([DRI_PC_REQ_PRIV])
1067 AC_SUBST([GLESv1_CM_LIB_DEPS])
1068 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1069 AC_SUBST([GLESv2_LIB_DEPS])
1070 AC_SUBST([GLESv2_PC_LIB_PRIV])
1072 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1073 AC_SUBST([GLAPI_LIB_DEPS])
1076 dnl Setup default DRI CFLAGS
1077 DRI_CFLAGS='$(CFLAGS)'
1078 DRI_CXXFLAGS='$(CXXFLAGS)'
1079 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1080 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1082 AC_ARG_ENABLE([shared-dricore],
1083 [AS_HELP_STRING([--enable-shared-dricore],
1084 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1085 [enable_dricore="$enableval"],
1086 [enable_dricore=no])
1087 if test "x$enable_dri" = xyes ; then
1088 if test "$enable_dricore" = yes ; then
1089 if test "$GCC$GXX" != yesyes ; then
1090 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1093 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1094 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1095 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1096 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1097 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1098 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1099 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1103 AC_SUBST([DRICORE_LIBS])
1104 AC_SUBST([DRICORE_GLSL_LIBS])
1105 AC_SUBST([DRICORE_LIB_DEPS])
1106 AC_SUBST([DRI_CXXFLAGS])
1107 AC_SUBST([DRI_CFLAGS])
1108 AC_SUBST([MESA_MODULES])
1110 AC_SUBST([HAVE_XF86VIDMODE])
1115 case "x$enable_glx$enable_xlib_glx" in
1117 DEFINES="$DEFINES -DUSE_XSHM"
1120 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1121 if test "x$driglx_direct" = xyes; then
1122 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1131 AC_ARG_ENABLE([glx-tls],
1132 [AS_HELP_STRING([--enable-glx-tls],
1133 [enable TLS support in GLX @<:@default=disabled@:>@])],
1134 [GLX_USE_TLS="$enableval"],
1136 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1138 AS_IF([test "x$GLX_USE_TLS" = xyes],
1139 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1144 dnl Directory for DRI drivers
1145 AC_ARG_WITH([dri-driverdir],
1146 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1147 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1148 [DRI_DRIVER_INSTALL_DIR="$withval"],
1149 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1150 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1151 dnl Extra search path for DRI drivers
1152 AC_ARG_WITH([dri-searchpath],
1153 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1154 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1155 [DRI_DRIVER_SEARCH_DIR="$withval"],
1156 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1157 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1158 dnl Which drivers to build - default is chosen by platform
1159 AC_ARG_WITH([dri-drivers],
1160 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1161 [comma delimited DRI drivers list, e.g.
1162 "swrast,i965,radeon" @<:@default=auto@:>@])],
1163 [with_dri_drivers="$withval"],
1164 [with_dri_drivers=yes])
1165 if test "x$with_dri_drivers" = x; then
1169 dnl If $with_dri_drivers is yes, directories will be added through
1172 case "$with_dri_drivers" in
1175 # classic DRI drivers require FEATURE_GL to build
1176 if test "x$enable_opengl" = xyes; then
1181 # verify the requested driver directories exist
1182 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1183 for driver in $dri_drivers; do
1184 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1185 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1187 DRI_DIRS="$dri_drivers"
1188 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1189 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1194 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1195 if test "x$enable_dri" = xyes; then
1196 # Platform specific settings and drivers to build
1199 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1200 DEFINES="$DEFINES -DHAVE_ALIAS"
1204 if test "x$DRI_DIRS" = "xyes"; then
1205 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1209 # Build only the drivers for cards that exist on PowerPC.
1210 if test "x$DRI_DIRS" = "xyes"; then
1211 DRI_DIRS="r200 radeon swrast"
1215 # Build only the drivers for cards that exist on sparc
1216 if test "x$DRI_DIRS" = "xyes"; then
1217 DRI_DIRS="r200 radeon swrast"
1222 freebsd* | dragonfly* | *netbsd*)
1223 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1224 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1226 if test "x$DRI_DIRS" = "xyes"; then
1227 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1231 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1232 DEFINES="$DEFINES -DHAVE_ALIAS"
1235 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1238 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1239 if test "x$DRI_DIRS" = "xyes"; then
1246 if test "x$DRI_DIRS" = "xyes"; then
1247 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1250 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1253 if test "x$enable_dri" = xyes; then
1256 AC_ARG_WITH([expat],
1257 [AS_HELP_STRING([--with-expat=DIR],
1258 [expat install directory])],[
1259 EXPAT_INCLUDES="-I$withval/include"
1260 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1261 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1262 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1264 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1265 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1266 [AC_MSG_ERROR([Expat required for DRI.])])
1269 # libdrm is required for all except swrast
1270 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1271 if test "x$have_libdrm" != xyes; then
1272 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1276 # put all the necessary libs together, including possibly libdricore
1277 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1279 AC_SUBST([DRI_DIRS])
1280 AC_SUBST([EXPAT_INCLUDES])
1281 AC_SUBST([DRI_LIB_DEPS])
1285 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1291 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1297 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1303 dnl OSMesa configuration
1306 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1307 AC_ARG_WITH([osmesa-bits],
1308 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1309 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1310 [osmesa_bits="$withval"],
1312 if test "x$osmesa_bits" != x8; then
1313 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1314 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1318 case "x$osmesa_bits" in
1320 OSMESA_LIB="${OSMESA_LIB}"
1323 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1324 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1327 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1331 if test "x$enable_osmesa" = xyes; then
1332 # only link libraries with osmesa if shared
1333 if test "$enable_static" = no; then
1334 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1339 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1341 AC_SUBST([OSMESA_LIB_DEPS])
1342 AC_SUBST([OSMESA_MESA_DEPS])
1343 AC_SUBST([OSMESA_PC_REQ])
1344 AC_SUBST([OSMESA_PC_LIB_PRIV])
1347 dnl gbm configuration
1349 if test "x$enable_gbm" = xauto; then
1350 case "$with_egl_platforms" in
1357 if test "x$enable_gbm" = xyes; then
1358 SRC_DIRS="$SRC_DIRS gbm"
1361 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1362 AC_MSG_ERROR([gbm needs udev]))
1363 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1365 if test "x$enable_dri" = xyes; then
1366 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1367 if test "$SHARED_GLAPI" -eq 0; then
1368 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1372 AC_SUBST([GBM_LIB_DEPS])
1373 AC_SUBST([GBM_BACKEND_DIRS])
1374 GBM_PC_REQ_PRIV="libudev"
1375 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1377 AC_SUBST([GBM_PC_REQ_PRIV])
1378 AC_SUBST([GBM_PC_LIB_PRIV])
1379 AC_SUBST([GBM_PC_CFLAGS])
1382 dnl EGL configuration
1386 if test "x$enable_egl" = xyes; then
1387 SRC_DIRS="$SRC_DIRS egl"
1388 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1391 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1393 if test "$enable_static" != yes; then
1394 # build egl_glx when libGL is built
1395 if test "x$enable_glx" = xyes; then
1396 EGL_DRIVERS_DIRS="glx"
1399 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1400 [have_libudev=yes],[have_libudev=no])
1401 if test "$have_libudev" = yes; then
1402 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1404 if test "x$enable_dri" = xyes; then
1405 # build egl_dri2 when xcb-dri2 is available
1406 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1407 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1409 if test "$have_xcb_dri2" = yes; then
1410 EGL_DRIVER_DRI2=dri2
1411 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1412 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1413 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1414 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1418 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1421 AC_SUBST([EGL_LIB_DEPS])
1422 AC_SUBST([EGL_DRIVERS_DIRS])
1425 dnl EGL Gallium configuration
1427 if test "x$enable_gallium_egl" = xyes; then
1428 if test "x$with_gallium_drivers" = x; then
1429 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1431 if test "x$enable_egl" = xno; then
1432 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1434 if test "x$have_libdrm" != xyes; then
1435 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1438 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1439 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1444 dnl gbm Gallium configuration
1446 if test "x$enable_gallium_gbm" = xauto; then
1447 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1449 enable_gallium_gbm=yes ;;
1451 enable_gallium_gbm=no ;;
1454 if test "x$enable_gallium_gbm" = xyes; then
1455 if test "x$with_gallium_drivers" = x; then
1456 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1458 if test "x$enable_gbm" = xno; then
1459 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1461 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1462 if test "x$enable_dri" = xno; then
1463 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1466 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1467 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1472 dnl X.Org DDX configuration
1474 if test "x$enable_xorg" = xyes; then
1475 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1476 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1477 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1478 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1479 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1480 HAVE_XEXTPROTO_71="no")
1481 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1486 dnl XA configuration
1488 if test "x$enable_xa" = xyes; then
1491 AC_CHECK_PROG(NM, nm, "nm")
1492 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1493 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1497 if test "x$enable_xa" = xyes; then
1498 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1506 dnl OpenVG configuration
1510 if test "x$enable_openvg" = xyes; then
1511 if test "x$enable_egl" = xno; then
1512 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1514 if test "x$with_gallium_drivers" = x; then
1515 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1517 if test "x$enable_gallium_egl" = xno; then
1518 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1521 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1522 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1523 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1524 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1529 dnl D3D1X configuration
1532 if test "x$enable_d3d1x" = xyes; then
1533 if test "x$with_gallium_drivers" = x; then
1534 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1537 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1542 dnl Gallium G3DVL configuration
1544 AC_ARG_ENABLE([gallium-g3dvl],
1545 [AS_HELP_STRING([--enable-gallium-g3dvl],
1546 [build gallium g3dvl @<:@default=disabled@:>@])],
1547 [enable_gallium_g3dvl="$enableval"],
1548 [enable_gallium_g3dvl=no])
1549 if test "x$enable_gallium_g3dvl" = xyes; then
1550 if test "x$with_gallium_drivers" = x; then
1551 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1554 if test "x$enable_xvmc" = xauto; then
1555 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1558 if test "x$enable_vdpau" = xauto; then
1559 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1562 if test "x$enable_va" = xauto; then
1563 #don't enable vaapi state tracker even if package exists
1564 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1569 if test "x$enable_xvmc" = xyes; then
1570 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1571 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1575 if test "x$enable_vdpau" = xyes; then
1576 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1577 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1581 if test "x$enable_va" = xyes; then
1582 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1583 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1584 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1589 dnl GLU configuration
1591 AC_ARG_ENABLE([glu],
1592 [AS_HELP_STRING([--disable-glu],
1593 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1594 [enable_glu="$enableval"],
1597 if test "x$enable_glu" = xyes; then
1598 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1599 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1604 if test "x$enable_glu" = xyes; then
1605 SRC_DIRS="$SRC_DIRS glu"
1607 if test "x$enable_glx" = xno; then
1608 # Link libGLU to libOSMesa instead of libGL
1611 if test "$enable_static" = no; then
1612 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1617 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1619 GLU_PC_LIB_PRIV="-lm"
1620 if test "$enable_static" = no; then
1622 GLU_MESA_DEPS='-l$(GL_LIB)'
1629 if test "$enable_static" = no; then
1630 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1632 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1633 AC_SUBST([GLU_LIB_DEPS])
1634 AC_SUBST([GLU_MESA_DEPS])
1635 AC_SUBST([GLU_PC_REQ])
1636 AC_SUBST([GLU_PC_REQ_PRIV])
1637 AC_SUBST([GLU_PC_LIB_PRIV])
1638 AC_SUBST([GLU_PC_CFLAGS])
1640 AC_SUBST([PROGRAM_DIRS])
1643 dnl Gallium configuration
1645 if test "x$with_gallium_drivers" != x; then
1646 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1649 AC_SUBST([LLVM_CFLAGS])
1650 AC_SUBST([LLVM_LIBS])
1651 AC_SUBST([LLVM_LDFLAGS])
1652 AC_SUBST([LLVM_VERSION])
1654 case "x$enable_opengl$enable_gles1$enable_gles2" in
1656 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1660 AC_SUBST([VG_LIB_DEPS])
1661 AC_SUBST([EGL_CLIENT_APIS])
1663 AC_ARG_WITH([egl-platforms],
1664 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1665 [comma delimited native platforms libEGL supports, e.g.
1666 "x11,drm" @<:@default=auto@:>@])],
1667 [with_egl_platforms="$withval"],
1668 [with_egl_platforms=yes])
1671 WAYLAND_EGL_LIB_DEPS=""
1673 case "$with_egl_platforms" in
1675 if test "x$enable_egl" = xyes; then
1680 if test "x$enable_egl" != xyes; then
1681 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1683 # verify the requested driver directories exist
1684 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1685 for plat in $egl_platforms; do
1686 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1687 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1688 if test "$plat" = "fbdev"; then
1689 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1691 if test "$plat" = "null"; then
1692 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1694 if test "$plat" = "wayland"; then
1695 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1696 [AC_MSG_ERROR([cannot find libwayland-client])])
1697 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1698 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1700 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1701 AC_MSG_ERROR([EGL platform drm needs gbm])
1703 case "$plat$have_libudev" in
1705 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1708 EGL_PLATFORMS="$egl_platforms"
1711 AC_SUBST([EGL_PLATFORMS])
1713 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1714 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1715 WAYLAND_EGL_PC_LIB_PRIV=
1716 WAYLAND_EGL_PC_CFLAGS=
1718 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1719 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1720 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1723 AC_ARG_WITH([egl-driver-dir],
1724 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1725 [directory for EGL drivers [[default=${libdir}/egl]]])],
1726 [EGL_DRIVER_INSTALL_DIR="$withval"],
1727 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1728 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1730 AC_ARG_WITH([xorg-driver-dir],
1731 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1732 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1733 [XORG_DRIVER_INSTALL_DIR="$withval"],
1734 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1735 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1737 AC_ARG_WITH([max-width],
1738 [AS_HELP_STRING([--with-max-width=N],
1739 [Maximum framebuffer width (4096)])],
1740 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1741 AS_IF([test "${withval}" -gt "4096"],
1742 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1744 AC_ARG_WITH([max-height],
1745 [AS_HELP_STRING([--with-max-height=N],
1746 [Maximum framebuffer height (4096)])],
1747 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1748 AS_IF([test "${withval}" -gt "4096"],
1749 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1755 AC_ARG_ENABLE([gallium-llvm],
1756 [AS_HELP_STRING([--enable-gallium-llvm],
1757 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1758 [enable_gallium_llvm="$enableval"],
1759 [enable_gallium_llvm=auto])
1760 if test "x$with_gallium_drivers" = x; then
1761 enable_gallium_llvm=no
1763 if test "x$enable_gallium_llvm" = xauto; then
1765 i*86|x86_64) enable_gallium_llvm=yes;;
1768 if test "x$enable_gallium_llvm" = xyes; then
1769 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1771 if test "x$LLVM_CONFIG" != xno; then
1772 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1773 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1774 LLVM_LIBS="`$LLVM_CONFIG --libs`"
1776 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1777 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1786 dnl Directory for VDPAU libs
1787 AC_ARG_WITH([vdpau-libdir],
1788 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1789 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1790 [VDPAU_LIB_INSTALL_DIR="$withval"],
1791 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1792 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1794 dnl Directory for VA libs
1795 AC_ARG_WITH([va-libdir],
1796 [AS_HELP_STRING([--with-va-libdir=DIR],
1797 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1798 [VA_LIB_INSTALL_DIR="$withval"],
1799 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1800 AC_SUBST([VA_LIB_INSTALL_DIR])
1803 dnl Gallium helper functions
1805 gallium_check_st() {
1806 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1807 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1808 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1809 if test "x$have_libdrm" != xyes; then
1810 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1812 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1814 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1815 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1817 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1818 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1820 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1821 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1823 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1824 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1825 NEED_G3DVL_DRI="yes"
1827 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1828 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1829 NEED_G3DVL_DRI="yes"
1831 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1832 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1833 NEED_G3DVL_DRI="yes"
1837 gallium_require_llvm() {
1838 if test "x$MESA_LLVM" = x0; then
1840 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1846 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1847 if test "x$with_gallium_drivers" != x; then
1848 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1849 for driver in $gallium_drivers; do
1852 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1853 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1856 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1857 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1858 if test "x$MESA_LLVM" = x1; then
1859 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1861 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1862 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1865 gallium_require_llvm "Gallium R300"
1866 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1867 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1870 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1871 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1874 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1875 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1876 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1879 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1880 if test "x$MESA_LLVM" = x1; then
1881 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1884 if test "x$HAVE_ST_DRI" = xyes; then
1885 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1887 if test "x$HAVE_ST_VDPAU" = xyes; then
1888 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1890 if test "x$HAVE_ST_XVMC" = xyes; then
1891 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1893 if test "x$HAVE_ST_VA" = xyes; then
1894 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1896 if test "x$HAVE_ST_VDPAU" = xyes ||
1897 test "x$HAVE_ST_XVMC" = xyes ||
1898 test "x$HAVE_ST_VA" = xyes; then
1899 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1900 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1905 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1911 if test "x$NEED_G3DVL_DRI" = xyes; then
1912 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1915 dnl prepend CORE_DIRS to SRC_DIRS
1916 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1918 dnl Restore LDFLAGS and CPPFLAGS
1919 LDFLAGS="$_SAVE_LDFLAGS"
1920 CPPFLAGS="$_SAVE_CPPFLAGS"
1922 dnl Add user CFLAGS and CXXFLAGS
1923 CFLAGS="$CFLAGS $USER_CFLAGS"
1924 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1926 dnl Substitute the config
1927 AC_CONFIG_FILES([configs/autoconf
1929 tests/glx/Makefile])
1931 dnl Replace the configs/current symlink
1932 AC_CONFIG_COMMANDS([configs],[
1933 if test -f configs/current || test -L configs/current; then
1934 rm -f configs/current
1936 ln -s autoconf configs/current
1939 dnl Sort the dirs alphabetically
1940 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1941 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1942 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1943 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1948 dnl Output some configuration info for the user
1951 echo " prefix: $prefix"
1952 echo " exec_prefix: $exec_prefix"
1953 echo " libdir: $libdir"
1954 echo " includedir: $includedir"
1958 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1959 echo " OpenVG: $enable_openvg"
1963 if test "x$enable_osmesa" != xno; then
1964 echo " OSMesa: lib$OSMESA_LIB"
1969 if test "x$enable_dri" != xno; then
1970 # cleanup the drivers var
1971 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1972 if test "x$DRI_DIRS" = x; then
1973 echo " DRI drivers: no"
1975 echo " DRI drivers: $dri_dirs"
1977 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1978 echo " Shared dricore: $enable_dricore"
1981 case "x$enable_glx$enable_xlib_glx" in
1983 echo " GLX: Xlib-based"
1986 echo " GLX: DRI-based"
1989 echo " GLX: $enable_glx"
1994 echo " GLU: $enable_glu"
1998 echo " EGL: $enable_egl"
1999 if test "$enable_egl" = yes; then
2000 echo " EGL platforms: $EGL_PLATFORMS"
2003 for d in $EGL_DRIVERS_DIRS; do
2004 egl_drivers="$egl_drivers builtin:egl_$d"
2007 if test "x$HAVE_ST_EGL" = xyes; then
2008 echo " EGL drivers: ${egl_drivers} egl_gallium"
2009 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2011 echo " EGL drivers: $egl_drivers"
2016 if test "x$MESA_LLVM" = x1; then
2018 echo " llvm-config: $LLVM_CONFIG"
2019 echo " llvm-version: $LLVM_VERSION"
2025 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2026 echo " Gallium: yes"
2027 echo " Gallium dirs: $GALLIUM_DIRS"
2028 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2029 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2030 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2031 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2039 echo " Shared libs: $enable_shared"
2040 echo " Static libs: $enable_static"
2042 dnl Compiler options
2043 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2044 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2045 $SED 's/^ *//;s/ */ /;s/ *$//'`
2046 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2047 $SED 's/^ *//;s/ */ /;s/ *$//'`
2048 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2050 echo " CFLAGS: $cflags"
2051 echo " CXXFLAGS: $cxxflags"
2052 echo " Macros: $defines"
2054 echo " PYTHON2: $PYTHON2"
2057 echo " Run '${MAKE-make}' to build Mesa"