1 nl Process this file with autoconf to create configure.
5 dnl Versioning - scrape the version from configs/default
6 m4_define([mesa_version],
7 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
8 m4_ifval(mesa_version,,
9 [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
11 dnl Tell the user about autoconf.html in the --help output
12 m4_divert_once([HELP_END], [
13 See docs/autoconf.html for more details on the options for Mesa.])
15 AC_INIT([Mesa],[mesa_version],
16 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17 AC_CONFIG_AUX_DIR([bin])
19 AM_INIT_AUTOMAKE([foreign])
21 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
23 USER_CXXFLAGS="$CXXFLAGS"
25 dnl Versions for external dependencies
26 LIBDRM_REQUIRED=2.4.24
27 LIBDRM_RADEON_REQUIRED=2.4.24
28 LIBDRM_INTEL_REQUIRED=2.4.27
29 LIBDRM_NOUVEAU_REQUIRED=0.6
30 DRI2PROTO_REQUIRED=2.6
31 GLPROTO_REQUIRED=1.4.14
32 LIBDRM_XORG_REQUIRED=2.4.24
33 LIBKMS_XORG_REQUIRED=1.0.0
39 AC_CHECK_PROGS([MAKE], [gmake make])
40 AC_CHECK_PROGS([PYTHON2], [python2 python])
41 AC_PATH_PROG([MKDEP], [makedepend])
42 AC_PATH_PROG([SED], [sed])
44 if test "x$MKDEP" = "x"; then
45 AC_MSG_ERROR([makedepend is required to build Mesa])
48 AC_PATH_PROG([FLEX], [flex])
49 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
51 AC_PATH_PROG([BISON], [bison])
52 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
54 dnl Our fallback install-sh is a symlink to minstall. Use the existing
55 dnl configuration in that case.
57 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
59 dnl We need a POSIX shell for parts of the build. Assume we have one
63 # Solaris /bin/sh is too old/non-POSIX compliant
64 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
69 AC_PATH_PROG([GTESTCONFIG], [gtest-config])
70 if test "x$GTESTCONFIG" != "x"; then
71 GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
72 GTEST_LIBS=`gtest-config --ldflags --libs`
74 AC_SUBST([GTEST_CFLAGS])
75 AC_SUBST([GTEST_LIBS])
80 AM_CONDITIONAL(HAVE_GTEST, test x$HAVE_GTEST = xyes)
82 dnl clang is mostly GCC-compatible, but its version is much lower,
83 dnl so we have to check for it.
84 AC_MSG_CHECKING([if compiling with clang])
87 [AC_LANG_PROGRAM([], [[
92 [CLANG=yes], [CLANG=no])
94 AC_MSG_RESULT([$CLANG])
96 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
97 dnl versions are explictly not supported.
98 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
99 AC_MSG_CHECKING([whether gcc version is sufficient])
103 GCC_VERSION=`$CC -dumpversion`
104 if test $? -eq 0; then
105 major=`echo $GCC_VERSION | cut -d. -f1`
106 minor=`echo $GCC_VERSION | cut -d. -f2`
109 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
111 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
118 MKDEP_OPTIONS=-fdepend
119 dnl Ask gcc where it's keeping its secret headers
120 if test "x$GCC" = xyes; then
121 for dir in include include-fixed; do
122 GCC_INCLUDES=`$CC -print-file-name=$dir`
123 if test "x$GCC_INCLUDES" != x && \
124 test "$GCC_INCLUDES" != "$dir" && \
125 test -d "$GCC_INCLUDES"; then
126 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
130 AC_SUBST([MKDEP_OPTIONS])
132 dnl Make sure the pkg-config macros are defined
133 m4_ifndef([PKG_PROG_PKG_CONFIG],
134 [m4_fatal([Could not locate the pkg-config autoconf macros.
135 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
136 are in a different location, try setting the environment variable
137 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
138 PKG_PROG_PKG_CONFIG()
140 dnl LIB_DIR - library basename
141 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
144 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
145 _SAVE_LDFLAGS="$LDFLAGS"
146 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
147 AC_SUBST([EXTRA_LIB_PATH])
149 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
150 _SAVE_CPPFLAGS="$CPPFLAGS"
151 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
152 AC_SUBST([X11_INCLUDES])
159 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
162 DEFINES="$DEFINES -DPTHREADS -DSVR4"
165 DEFINES="$DEFINES -DPTHREADS"
169 dnl Add flags for gcc and g++
170 if test "x$GCC" = xyes; then
171 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
172 if test "x$CLANG" = "xno"; then
173 CFLAGS="$CFLAGS -ffast-math"
176 # Enable -fvisibility=hidden if using a gcc that supports it
177 save_CFLAGS="$CFLAGS"
178 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
179 VISIBILITY_CFLAGS="-fvisibility=hidden"
180 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
181 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
182 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
184 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
187 # Work around aliasing bugs - developers should comment this out
188 CFLAGS="$CFLAGS -fno-strict-aliasing"
190 # gcc's builtin memcmp is slower than glibc's
191 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
192 CFLAGS="$CFLAGS -fno-builtin-memcmp"
194 if test "x$GXX" = xyes; then
195 CXXFLAGS="$CXXFLAGS -Wall"
197 # Enable -fvisibility=hidden if using a gcc that supports it
198 save_CXXFLAGS="$CXXFLAGS"
199 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
200 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
201 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
203 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
204 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
207 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
208 CXXFLAGS=$save_CXXFLAGS
210 # Work around aliasing bugs - developers should comment this out
211 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
213 # gcc's builtin memcmp is slower than glibc's
214 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
215 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
218 dnl even if the compiler appears to support it, using visibility attributes isn't
219 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
223 VISIBILITY_CXXFLAGS=""
227 AC_SUBST([VISIBILITY_CFLAGS])
228 AC_SUBST([VISIBILITY_CXXFLAGS])
230 dnl These should be unnecessary, but let the user set them if they want
231 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
232 Default is to use CFLAGS.])
233 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
234 compiler. Default is to use CFLAGS.])
235 AC_SUBST([OPT_FLAGS])
236 AC_SUBST([ARCH_FLAGS])
239 dnl Hacks to enable 32 or 64 bit build
241 AC_ARG_ENABLE([32-bit],
242 [AS_HELP_STRING([--enable-32-bit],
243 [build 32-bit libraries @<:@default=auto@:>@])],
244 [enable_32bit="$enableval"],
247 if test "x$enable_32bit" = xyes; then
248 if test "x$GCC" = xyes; then
249 CFLAGS="$CFLAGS -m32"
250 ARCH_FLAGS="$ARCH_FLAGS -m32"
252 if test "x$GXX" = xyes; then
253 CXXFLAGS="$CXXFLAGS -m32"
256 AC_ARG_ENABLE([64-bit],
257 [AS_HELP_STRING([--enable-64-bit],
258 [build 64-bit libraries @<:@default=auto@:>@])],
259 [enable_64bit="$enableval"],
262 if test "x$enable_64bit" = xyes; then
263 if test "x$GCC" = xyes; then
264 CFLAGS="$CFLAGS -m64"
266 if test "x$GXX" = xyes; then
267 CXXFLAGS="$CXXFLAGS -m64"
272 dnl shared/static libraries, mimic libtool options
274 AC_ARG_ENABLE([static],
275 [AS_HELP_STRING([--enable-static],
276 [build static libraries @<:@default=disabled@:>@])],
277 [enable_static="$enableval"],
280 case "x$enable_static" in
282 x ) enable_static=no ;;
284 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
287 AC_ARG_ENABLE([shared],
288 [AS_HELP_STRING([--disable-shared],
289 [build shared libraries @<:@default=enabled@:>@])],
290 [enable_shared="$enableval"],
293 case "x$enable_shared" in
295 x ) enable_shared=yes ;;
297 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
301 dnl Can't have static and shared libraries, default to static if user
302 dnl explicitly requested. If both disabled, set to static since shared
303 dnl was explicitly requirested.
304 case "x$enable_static$enable_shared" in
306 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
310 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
318 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
319 if test "$enable_static" = yes; then
320 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
322 AC_SUBST([MKLIB_OPTIONS])
325 dnl other compiler options
327 AC_ARG_ENABLE([debug],
328 [AS_HELP_STRING([--enable-debug],
329 [use debug compiler flags and macros @<:@default=disabled@:>@])],
330 [enable_debug="$enableval"],
333 if test "x$enable_debug" = xyes; then
334 DEFINES="$DEFINES -DDEBUG"
335 if test "x$GCC" = xyes; then
338 if test "x$GXX" = xyes; then
339 CXXFLAGS="$CXXFLAGS -g"
346 LIB_PREFIX_GLOB='lib'
347 LIB_VERSION_SEPARATOR='.'
348 if test "$enable_static" = yes; then
353 LIB_EXTENSION='dylib' ;;
355 dnl prefix can be 'cyg' or 'lib'
356 LIB_PREFIX_GLOB='???'
357 LIB_VERSION_SEPARATOR='-'
358 LIB_EXTENSION='dll' ;;
362 LIB_EXTENSION='so' ;;
367 dnl Mangled Mesa support
369 AC_ARG_ENABLE([mangling],
370 [AS_HELP_STRING([--enable-mangling],
371 [enable mangled symbols and library name @<:@default=disabled@:>@])],
372 [enable_mangling="${enableval}"],
378 if test "x${enable_mangling}" = "xyes" ; then
379 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
382 OSMESA_LIB="MangledOSMesa"
386 AC_SUBST([OSMESA_LIB])
389 dnl potentially-infringing-but-nobody-knows-for-sure stuff
391 AC_ARG_ENABLE([texture-float],
392 [AS_HELP_STRING([--enable-texture-float],
393 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
394 [enable_texture_float="$enableval"],
395 [enable_texture_float=no]
397 if test "x$enable_texture_float" = xyes; then
398 AC_MSG_WARN([Floating-point textures enabled.])
399 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
400 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
403 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
404 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
405 GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
406 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
407 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
408 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
409 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
410 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
411 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
412 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
413 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
415 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
416 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
417 GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
418 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
419 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
420 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
421 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
422 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
423 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
424 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
425 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
426 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
428 AC_SUBST([GL_LIB_NAME])
429 AC_SUBST([GLU_LIB_NAME])
430 AC_SUBST([GLUT_LIB_NAME])
431 AC_SUBST([OSMESA_LIB_NAME])
432 AC_SUBST([EGL_LIB_NAME])
433 AC_SUBST([GLESv1_CM_LIB_NAME])
434 AC_SUBST([GLESv2_LIB_NAME])
435 AC_SUBST([VG_LIB_NAME])
436 AC_SUBST([GLAPI_LIB_NAME])
437 AC_SUBST([WAYLAND_EGL_LIB_NAME])
438 AC_SUBST([GBM_LIB_NAME])
440 AC_SUBST([GL_LIB_GLOB])
441 AC_SUBST([GLU_LIB_GLOB])
442 AC_SUBST([GLUT_LIB_GLOB])
443 AC_SUBST([OSMESA_LIB_GLOB])
444 AC_SUBST([EGL_LIB_GLOB])
445 AC_SUBST([GLESv1_CM_LIB_GLOB])
446 AC_SUBST([GLESv2_LIB_GLOB])
447 AC_SUBST([VG_LIB_GLOB])
448 AC_SUBST([GLAPI_LIB_GLOB])
449 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
450 AC_SUBST([GBM_LIB_GLOB])
453 dnl Arch/platform-specific settings
456 [AS_HELP_STRING([--disable-asm],
457 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
458 [enable_asm="$enableval"],
465 AC_MSG_CHECKING([whether to enable assembly])
466 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
467 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
468 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
472 AC_MSG_RESULT([no, cross compiling])
476 # check for supported arches
477 if test "x$enable_asm" = xyes; then
481 linux* | *freebsd* | dragonfly* | *netbsd*)
482 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
488 linux* | *freebsd* | dragonfly* | *netbsd*)
489 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
511 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
512 MESA_ASM_SOURCES='$(X86_SOURCES)'
513 GLAPI_ASM_SOURCES='$(X86_API)'
514 AC_MSG_RESULT([yes, x86])
517 ASM_FLAGS="-DUSE_X86_64_ASM"
518 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
519 GLAPI_ASM_SOURCES='$(X86-64_API)'
520 AC_MSG_RESULT([yes, x86_64])
523 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
524 MESA_ASM_SOURCES='$(PPC_SOURCES)'
525 AC_MSG_RESULT([yes, ppc])
528 ASM_FLAGS="-DUSE_SPARC_ASM"
529 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
530 GLAPI_ASM_SOURCES='$(SPARC_API)'
531 AC_MSG_RESULT([yes, sparc])
534 AC_MSG_RESULT([no, platform not supported])
538 AC_SUBST([ASM_FLAGS])
539 AC_SUBST([MESA_ASM_SOURCES])
540 AC_SUBST([GLAPI_ASM_SOURCES])
545 dnl Check to see if dlopen is in default libraries (like Solaris, which
546 dnl has it in libc), or if libdl is needed to get it.
547 AC_CHECK_FUNC([dlopen], [],
548 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
549 AC_SUBST([DLOPEN_LIBS])
551 dnl See if posix_memalign is available
552 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
554 dnl SELinux awareness.
555 AC_ARG_ENABLE([selinux],
556 [AS_HELP_STRING([--enable-selinux],
557 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
558 [MESA_SELINUX="$enableval"],
560 if test "x$enable_selinux" = "xyes"; then
561 AC_CHECK_HEADER([selinux/selinux.h],[],
562 [AC_MSG_ERROR([SELinux headers not found])])
563 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
564 [AC_MSG_ERROR([SELinux library not found])])
565 SELINUX_LIBS="-lselinux"
566 DEFINES="$DEFINES -DMESA_SELINUX"
570 AC_ARG_ENABLE([opengl],
571 [AS_HELP_STRING([--disable-opengl],
572 [disable support for standard OpenGL API @<:@default=no@:>@])],
573 [enable_opengl="$enableval"],
575 AC_ARG_ENABLE([gles1],
576 [AS_HELP_STRING([--enable-gles1],
577 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
578 [enable_gles1="$enableval"],
580 AC_ARG_ENABLE([gles2],
581 [AS_HELP_STRING([--enable-gles2],
582 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
583 [enable_gles2="$enableval"],
585 AC_ARG_ENABLE([openvg],
586 [AS_HELP_STRING([--enable-openvg],
587 [enable support for OpenVG API @<:@default=no@:>@])],
588 [enable_openvg="$enableval"],
592 [AS_HELP_STRING([--enable-dri],
593 [enable DRI modules @<:@default=auto@:>@])],
594 [enable_dri="$enableval"],
597 [AS_HELP_STRING([--enable-glx],
598 [enable GLX library @<:@default=auto@:>@])],
599 [enable_glx="$enableval"],
601 AC_ARG_ENABLE([osmesa],
602 [AS_HELP_STRING([--enable-osmesa],
603 [enable OSMesa library @<:@default=auto@:>@])],
604 [enable_osmesa="$enableval"],
605 [enable_osmesa=auto])
607 [AS_HELP_STRING([--disable-egl],
608 [disable EGL library @<:@default=enabled@:>@])],
609 [enable_egl="$enableval"],
612 AC_ARG_ENABLE([xorg],
613 [AS_HELP_STRING([--enable-xorg],
614 [enable support for X.Org DDX API @<:@default=no@:>@])],
615 [enable_xorg="$enableval"],
618 [AS_HELP_STRING([--enable-xa],
619 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
620 [enable_xa="$enableval"],
622 AC_ARG_ENABLE([d3d1x],
623 [AS_HELP_STRING([--enable-d3d1x],
624 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
625 [enable_d3d1x="$enableval"],
628 [AS_HELP_STRING([--enable-gbm],
629 [enable gbm library @<:@default=auto@:>@])],
630 [enable_gbm="$enableval"],
633 AC_ARG_ENABLE([xvmc],
634 [AS_HELP_STRING([--enable-xvmc],
635 [enable xvmc library @<:@default=auto@:>@])],
636 [enable_xvmc="$enableval"],
638 AC_ARG_ENABLE([vdpau],
639 [AS_HELP_STRING([--enable-vdpau],
640 [enable vdpau library @<:@default=auto@:>@])],
641 [enable_vdpau="$enableval"],
644 [AS_HELP_STRING([--enable-va],
645 [enable va library @<:@default=auto@:>@])],
646 [enable_va="$enableval"],
649 AC_ARG_ENABLE([xlib_glx],
650 [AS_HELP_STRING([--enable-xlib-glx],
651 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
652 [enable_xlib_glx="$enableval"],
653 [enable_xlib_glx=auto])
654 AC_ARG_ENABLE([gallium_egl],
655 [AS_HELP_STRING([--enable-gallium-egl],
656 [enable optional EGL state tracker (not required
657 for EGL support in Gallium with OpenGL and OpenGL ES)
658 @<:@default=disable@:>@])],
659 [enable_gallium_egl="$enableval"],
660 [enable_gallium_egl=no])
661 AC_ARG_ENABLE([gallium_gbm],
662 [AS_HELP_STRING([--enable-gallium-gbm],
663 [enable optional gbm state tracker (not required for
664 gbm support in Gallium)
665 @<:@default=auto@:>@])],
666 [enable_gallium_gbm="$enableval"],
667 [enable_gallium_gbm=auto])
669 # Option for Gallium drivers
670 GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
672 AC_ARG_WITH([gallium-drivers],
673 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
674 [comma delimited Gallium drivers list, e.g.
675 "i915,nouveau,r300,r600,svga,swrast"
676 @<:@default=r300,r600,swrast@:>@])],
677 [with_gallium_drivers="$withval"],
678 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
680 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
681 # here so that the script doesn't choke on an unknown driver name later.
682 case "$with_gallium_drivers" in
683 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
684 no) with_gallium_drivers='' ;;
687 if test "x$enable_opengl" = xno -a \
688 "x$enable_gles1" = xno -a \
689 "x$enable_gles2" = xno -a \
690 "x$enable_openvg" = xno -a \
691 "x$enable_xorg" = xno -a \
692 "x$enable_xa" = xno -a \
693 "x$enable_d3d1x" = xno -a \
694 "x$enable_xvmc" = xno -a \
695 "x$enable_vdpau" = xno -a \
696 "x$enable_va" = xno; then
697 AC_MSG_ERROR([at least one API should be enabled])
701 if test "x$enable_opengl" = xno; then
702 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
704 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
706 if test "x$enable_gles1" = xyes; then
707 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
709 if test "x$enable_gles2" = xyes; then
710 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
712 AC_SUBST([API_DEFINES])
714 AC_ARG_ENABLE([shared-glapi],
715 [AS_HELP_STRING([--enable-shared-glapi],
716 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
717 [enable_shared_glapi="$enableval"],
718 [enable_shared_glapi=no])
721 if test "x$enable_shared_glapi" = xyes; then
724 AC_SUBST([SHARED_GLAPI])
727 dnl Driver configuration. Options are xlib, dri and osmesa right now.
728 dnl More later: fbdev, ...
730 default_driver="xlib"
735 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
738 *freebsd* | dragonfly* | *netbsd*)
740 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
745 if test "x$enable_opengl" = xno; then
749 AC_ARG_WITH([driver],
750 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
751 [mesa_driver="$withval"],
753 dnl Check for valid option
754 case "x$mesa_driver" in
755 xxlib|xdri|xosmesa|xno)
756 if test "x$enable_dri" != xauto -o \
757 "x$enable_glx" != xauto -o \
758 "x$enable_osmesa" != xauto -o \
759 "x$enable_xlib_glx" != xauto; then
760 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
764 mesa_driver="$default_driver"
767 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
771 # map $mesa_driver to APIs
772 if test "x$enable_dri" = xauto; then
773 case "x$mesa_driver" in
774 xdri) enable_dri=yes ;;
779 if test "x$enable_glx" = xauto; then
780 case "x$mesa_driver" in
781 xdri|xxlib) enable_glx=yes ;;
786 if test "x$enable_osmesa" = xauto; then
787 case "x$mesa_driver" in
788 xxlib|xosmesa) enable_osmesa=yes ;;
789 *) enable_osmesa=no ;;
793 if test "x$enable_xlib_glx" = xauto; then
794 case "x$mesa_driver" in
795 xxlib) enable_xlib_glx=yes ;;
796 *) enable_xlib_glx=no ;;
800 if test "x$enable_glx" = xno; then
805 dnl Driver specific build directories
808 dnl this variable will be prepended to SRC_DIRS and is not exported
813 GALLIUM_DIRS="auxiliary drivers state_trackers"
814 GALLIUM_TARGET_DIRS=""
815 GALLIUM_WINSYS_DIRS="sw"
816 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
817 GALLIUM_STATE_TRACKERS_DIRS=""
819 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
820 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
822 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
826 # build glapi if OpenGL is enabled
827 if test "x$enable_opengl" = xyes; then
828 CORE_DIRS="$CORE_DIRS mapi/glapi"
831 # build es1api if OpenGL ES 1.x is enabled
832 if test "x$enable_gles1" = xyes; then
833 CORE_DIRS="$CORE_DIRS mapi/es1api"
836 # build es2api if OpenGL ES 2.x is enabled
837 if test "x$enable_gles2" = xyes; then
838 CORE_DIRS="$CORE_DIRS mapi/es2api"
841 # build glsl and mesa if OpenGL or OpenGL ES is enabled
842 case "x$enable_opengl$enable_gles1$enable_gles2" in
844 CORE_DIRS="$CORE_DIRS glsl mesa"
848 case "x$enable_glx$enable_xlib_glx" in
850 DRIVER_DIRS="$DRIVER_DIRS x11"
851 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
852 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
853 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
854 HAVE_WINSYS_XLIB="yes"
858 SRC_DIRS="$SRC_DIRS glx"
862 if test "x$enable_dri" = xyes; then
863 DRIVER_DIRS="$DRIVER_DIRS dri"
865 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
866 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
870 if test "x$enable_osmesa" = xyes; then
871 # the empty space matters for osmesa... (see src/mesa/Makefile)
872 if test -n "$DRIVER_DIRS"; then
873 DRIVER_DIRS="$DRIVER_DIRS osmesa"
881 AC_SUBST([DRIVER_DIRS])
882 AC_SUBST([GALLIUM_DIRS])
883 AC_SUBST([GALLIUM_TARGET_DIRS])
884 AC_SUBST([GALLIUM_WINSYS_DIRS])
885 AC_SUBST([GALLIUM_DRIVERS_DIRS])
886 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
887 AC_SUBST([MESA_LLVM])
890 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
891 [have_libdrm=yes], [have_libdrm=no])
893 if test "x$enable_dri" = xyes; then
894 # DRI must be shared, I think
895 if test "$enable_static" = yes; then
896 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
899 # not a hard requirement as swrast does not depend on it
900 if test "x$have_libdrm" = xyes; then
901 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
906 dnl Find out if X is available. The variable have_x is set if libX11 is
907 dnl found to mimic AC_PATH_XTRA.
909 if test -n "$PKG_CONFIG"; then
910 AC_MSG_CHECKING([pkg-config files for X11 are available])
911 PKG_CHECK_EXISTS([x11],[
917 AC_MSG_RESULT([$x11_pkgconfig])
921 dnl Use the autoconf macro if no pkg-config files
922 if test "$x11_pkgconfig" = yes; then
923 PKG_CHECK_MODULES([X11], [x11])
926 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
927 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
928 AC_SUBST([X11_CFLAGS])
932 dnl Try to tell the user that the --x-* options are only used when
933 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
934 m4_divert_once([HELP_BEGIN],
935 [These options are only used when the X libraries cannot be found by the
936 pkg-config utility.])
938 dnl We need X for xlib and dri, so bomb now if it's not found
939 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
940 AC_MSG_ERROR([X11 development libraries needed for GLX])
943 dnl XCB - this is only used for GLX right now
945 [AS_HELP_STRING([--enable-xcb],
946 [use XCB for GLX @<:@default=disabled@:>@])],
947 [enable_xcb="$enableval"],
949 if test "x$enable_xcb" = xyes; then
950 DEFINES="$DEFINES -DUSE_XCB"
955 dnl Direct rendering or just indirect rendering
958 dnl Disable by default on GNU/Hurd
959 driglx_direct_default="no"
962 dnl Disable by default on cygwin
963 driglx_direct_default="no"
966 driglx_direct_default="yes"
969 AC_ARG_ENABLE([driglx-direct],
970 [AS_HELP_STRING([--disable-driglx-direct],
971 [enable direct rendering in GLX and EGL for DRI \
972 @<:@default=auto@:>@])],
973 [driglx_direct="$enableval"],
974 [driglx_direct="$driglx_direct_default"])
977 dnl libGL configuration per driver
979 case "x$enable_glx$enable_xlib_glx" in
982 if test "$x11_pkgconfig" = yes; then
983 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
984 GL_PC_REQ_PRIV="x11 xext"
985 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
986 GL_LIB_DEPS="$XLIBGL_LIBS"
988 # should check these...
989 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
990 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
991 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
992 GL_PC_CFLAGS="$X11_INCLUDES"
994 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
995 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
999 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
1000 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
1001 if test x"$driglx_direct" = xyes; then
1002 if test "x$have_libdrm" != xyes; then
1003 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
1005 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
1006 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
1009 # find the DRI deps for libGL
1010 if test "$x11_pkgconfig" = yes; then
1011 dri_modules="x11 xext xdamage xfixes"
1013 # add xf86vidmode if available
1014 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
1015 if test "$HAVE_XF86VIDMODE" = yes ; then
1016 dri_modules="$dri_modules xxf86vm"
1019 # add xcb modules if necessary
1020 if test "$enable_xcb" = yes; then
1021 dri_modules="$dri_modules x11-xcb xcb-glx"
1024 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
1025 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1026 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
1027 GL_LIB_DEPS="$DRIGL_LIBS"
1029 # should check these...
1030 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
1031 if test "x$HAVE_XF86VIDMODE" == xyes; then
1032 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
1034 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1036 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1037 GL_PC_CFLAGS="$X11_INCLUDES"
1039 # XCB can only be used from pkg-config
1040 if test "$enable_xcb" = yes; then
1041 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1042 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1043 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1044 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1048 # need DRM libs, -lpthread, etc.
1049 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1050 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1054 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1055 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1056 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1057 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1059 AC_SUBST([GL_LIB_DEPS])
1060 AC_SUBST([GL_PC_REQ_PRIV])
1061 AC_SUBST([GL_PC_LIB_PRIV])
1062 AC_SUBST([GL_PC_CFLAGS])
1063 AC_SUBST([DRI_PC_REQ_PRIV])
1064 AC_SUBST([GLESv1_CM_LIB_DEPS])
1065 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1066 AC_SUBST([GLESv2_LIB_DEPS])
1067 AC_SUBST([GLESv2_PC_LIB_PRIV])
1069 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1070 AC_SUBST([GLAPI_LIB_DEPS])
1073 dnl Setup default DRI CFLAGS
1074 DRI_CFLAGS='$(CFLAGS)'
1075 DRI_CXXFLAGS='$(CXXFLAGS)'
1076 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1077 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1079 AC_ARG_ENABLE([shared-dricore],
1080 [AS_HELP_STRING([--enable-shared-dricore],
1081 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1082 [enable_dricore="$enableval"],
1083 [enable_dricore=no])
1084 if test "x$enable_dri" = xyes ; then
1085 if test "$enable_dricore" = yes ; then
1086 if test "$GCC$GXX" != yesyes ; then
1087 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1090 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1091 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1092 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1093 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1094 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1095 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1096 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1100 AC_SUBST([DRICORE_LIBS])
1101 AC_SUBST([DRICORE_GLSL_LIBS])
1102 AC_SUBST([DRICORE_LIB_DEPS])
1103 AC_SUBST([DRI_CXXFLAGS])
1104 AC_SUBST([DRI_CFLAGS])
1105 AC_SUBST([MESA_MODULES])
1107 AC_SUBST([HAVE_XF86VIDMODE])
1112 case "x$enable_glx$enable_xlib_glx" in
1114 DEFINES="$DEFINES -DUSE_XSHM"
1117 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1118 if test "x$driglx_direct" = xyes; then
1119 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1128 AC_ARG_ENABLE([glx-tls],
1129 [AS_HELP_STRING([--enable-glx-tls],
1130 [enable TLS support in GLX @<:@default=disabled@:>@])],
1131 [GLX_USE_TLS="$enableval"],
1133 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1135 AS_IF([test "x$GLX_USE_TLS" = xyes],
1136 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1141 dnl Directory for DRI drivers
1142 AC_ARG_WITH([dri-driverdir],
1143 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1144 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1145 [DRI_DRIVER_INSTALL_DIR="$withval"],
1146 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1147 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1148 dnl Extra search path for DRI drivers
1149 AC_ARG_WITH([dri-searchpath],
1150 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1151 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1152 [DRI_DRIVER_SEARCH_DIR="$withval"],
1153 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1154 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1155 dnl Which drivers to build - default is chosen by platform
1156 AC_ARG_WITH([dri-drivers],
1157 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1158 [comma delimited DRI drivers list, e.g.
1159 "swrast,i965,radeon" @<:@default=auto@:>@])],
1160 [with_dri_drivers="$withval"],
1161 [with_dri_drivers=yes])
1162 if test "x$with_dri_drivers" = x; then
1166 dnl If $with_dri_drivers is yes, directories will be added through
1169 case "$with_dri_drivers" in
1172 # classic DRI drivers require FEATURE_GL to build
1173 if test "x$enable_opengl" = xyes; then
1178 # verify the requested driver directories exist
1179 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1180 for driver in $dri_drivers; do
1181 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1182 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1184 DRI_DIRS="$dri_drivers"
1185 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1186 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1191 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1192 if test "x$enable_dri" = xyes; then
1193 # Platform specific settings and drivers to build
1196 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1197 DEFINES="$DEFINES -DHAVE_ALIAS"
1201 if test "x$DRI_DIRS" = "xyes"; then
1202 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1206 # Build only the drivers for cards that exist on PowerPC.
1207 if test "x$DRI_DIRS" = "xyes"; then
1208 DRI_DIRS="r200 radeon swrast"
1212 # Build only the drivers for cards that exist on sparc
1213 if test "x$DRI_DIRS" = "xyes"; then
1214 DRI_DIRS="r200 radeon swrast"
1219 freebsd* | dragonfly* | *netbsd*)
1220 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1221 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1223 if test "x$DRI_DIRS" = "xyes"; then
1224 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1228 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1229 DEFINES="$DEFINES -DHAVE_ALIAS"
1232 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1235 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1236 if test "x$DRI_DIRS" = "xyes"; then
1243 if test "x$DRI_DIRS" = "xyes"; then
1244 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1247 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1250 if test "x$enable_dri" = xyes; then
1253 AC_ARG_WITH([expat],
1254 [AS_HELP_STRING([--with-expat=DIR],
1255 [expat install directory])],[
1256 EXPAT_INCLUDES="-I$withval/include"
1257 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1258 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1259 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1261 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1262 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1263 [AC_MSG_ERROR([Expat required for DRI.])])
1266 # libdrm is required for all except swrast
1267 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1268 if test "x$have_libdrm" != xyes; then
1269 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1273 # put all the necessary libs together, including possibly libdricore
1274 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1276 AC_SUBST([DRI_DIRS])
1277 AC_SUBST([EXPAT_INCLUDES])
1278 AC_SUBST([DRI_LIB_DEPS])
1282 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1288 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1294 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1300 dnl OSMesa configuration
1303 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1304 AC_ARG_WITH([osmesa-bits],
1305 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1306 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1307 [osmesa_bits="$withval"],
1309 if test "x$osmesa_bits" != x8; then
1310 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1311 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1315 case "x$osmesa_bits" in
1317 OSMESA_LIB="${OSMESA_LIB}"
1320 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1321 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1324 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1328 if test "x$enable_osmesa" = xyes; then
1329 # only link libraries with osmesa if shared
1330 if test "$enable_static" = no; then
1331 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1336 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1338 AC_SUBST([OSMESA_LIB_DEPS])
1339 AC_SUBST([OSMESA_MESA_DEPS])
1340 AC_SUBST([OSMESA_PC_REQ])
1341 AC_SUBST([OSMESA_PC_LIB_PRIV])
1344 dnl gbm configuration
1346 if test "x$enable_gbm" = xauto; then
1347 case "$with_egl_platforms" in
1354 if test "x$enable_gbm" = xyes; then
1355 SRC_DIRS="$SRC_DIRS gbm"
1358 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1359 AC_MSG_ERROR([gbm needs udev]))
1360 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1362 if test "x$enable_dri" = xyes; then
1363 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1364 if test "$SHARED_GLAPI" -eq 0; then
1365 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1369 AC_SUBST([GBM_LIB_DEPS])
1370 AC_SUBST([GBM_BACKEND_DIRS])
1371 GBM_PC_REQ_PRIV="libudev"
1372 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1374 AC_SUBST([GBM_PC_REQ_PRIV])
1375 AC_SUBST([GBM_PC_LIB_PRIV])
1376 AC_SUBST([GBM_PC_CFLAGS])
1379 dnl EGL configuration
1383 if test "x$enable_egl" = xyes; then
1384 SRC_DIRS="$SRC_DIRS egl"
1385 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1388 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1390 if test "$enable_static" != yes; then
1391 # build egl_glx when libGL is built
1392 if test "x$enable_glx" = xyes; then
1393 EGL_DRIVERS_DIRS="glx"
1396 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1397 [have_libudev=yes],[have_libudev=no])
1398 if test "$have_libudev" = yes; then
1399 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1401 if test "x$enable_dri" = xyes; then
1402 # build egl_dri2 when xcb-dri2 is available
1403 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1404 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1406 if test "$have_xcb_dri2" = yes; then
1407 EGL_DRIVER_DRI2=dri2
1408 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1409 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1410 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1411 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1415 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1418 AC_SUBST([EGL_LIB_DEPS])
1419 AC_SUBST([EGL_DRIVERS_DIRS])
1422 dnl EGL Gallium configuration
1424 if test "x$enable_gallium_egl" = xyes; then
1425 if test "x$with_gallium_drivers" = x; then
1426 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1428 if test "x$enable_egl" = xno; then
1429 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1431 if test "x$have_libdrm" != xyes; then
1432 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1435 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1436 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1441 dnl gbm Gallium configuration
1443 if test "x$enable_gallium_gbm" = xauto; then
1444 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1446 enable_gallium_gbm=yes ;;
1448 enable_gallium_gbm=no ;;
1451 if test "x$enable_gallium_gbm" = xyes; then
1452 if test "x$with_gallium_drivers" = x; then
1453 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1455 if test "x$enable_gbm" = xno; then
1456 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1458 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1459 if test "x$enable_dri" = xno; then
1460 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1463 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1464 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1469 dnl X.Org DDX configuration
1471 if test "x$enable_xorg" = xyes; then
1472 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1473 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1474 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1475 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1476 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1477 HAVE_XEXTPROTO_71="no")
1478 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1483 dnl XA configuration
1485 if test "x$enable_xa" = xyes; then
1488 AC_CHECK_PROG(NM, nm, "nm")
1489 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1490 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1494 if test "x$enable_xa" = xyes; then
1495 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1503 dnl OpenVG configuration
1507 if test "x$enable_openvg" = xyes; then
1508 if test "x$enable_egl" = xno; then
1509 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1511 if test "x$with_gallium_drivers" = x; then
1512 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1514 if test "x$enable_gallium_egl" = xno; then
1515 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1518 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1519 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1520 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1521 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1526 dnl D3D1X configuration
1529 if test "x$enable_d3d1x" = xyes; then
1530 if test "x$with_gallium_drivers" = x; then
1531 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1534 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1539 dnl Gallium G3DVL configuration
1541 AC_ARG_ENABLE([gallium-g3dvl],
1542 [AS_HELP_STRING([--enable-gallium-g3dvl],
1543 [build gallium g3dvl @<:@default=disabled@:>@])],
1544 [enable_gallium_g3dvl="$enableval"],
1545 [enable_gallium_g3dvl=no])
1546 if test "x$enable_gallium_g3dvl" = xyes; then
1547 if test "x$with_gallium_drivers" = x; then
1548 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1551 if test "x$enable_xvmc" = xauto; then
1552 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1555 if test "x$enable_vdpau" = xauto; then
1556 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1559 if test "x$enable_va" = xauto; then
1560 #don't enable vaapi state tracker even if package exists
1561 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1566 if test "x$enable_xvmc" = xyes; then
1567 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1568 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1572 if test "x$enable_vdpau" = xyes; then
1573 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1574 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1578 if test "x$enable_va" = xyes; then
1579 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1580 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1581 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1586 dnl GLU configuration
1588 AC_ARG_ENABLE([glu],
1589 [AS_HELP_STRING([--disable-glu],
1590 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1591 [enable_glu="$enableval"],
1594 if test "x$enable_glu" = xyes; then
1595 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1596 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1601 if test "x$enable_glu" = xyes; then
1602 SRC_DIRS="$SRC_DIRS glu"
1604 if test "x$enable_glx" = xno; then
1605 # Link libGLU to libOSMesa instead of libGL
1608 if test "$enable_static" = no; then
1609 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1614 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1616 GLU_PC_LIB_PRIV="-lm"
1617 if test "$enable_static" = no; then
1619 GLU_MESA_DEPS='-l$(GL_LIB)'
1626 if test "$enable_static" = no; then
1627 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1629 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1630 AC_SUBST([GLU_LIB_DEPS])
1631 AC_SUBST([GLU_MESA_DEPS])
1632 AC_SUBST([GLU_PC_REQ])
1633 AC_SUBST([GLU_PC_REQ_PRIV])
1634 AC_SUBST([GLU_PC_LIB_PRIV])
1635 AC_SUBST([GLU_PC_CFLAGS])
1637 AC_SUBST([PROGRAM_DIRS])
1640 dnl Gallium configuration
1642 if test "x$with_gallium_drivers" != x; then
1643 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1646 AC_SUBST([LLVM_CFLAGS])
1647 AC_SUBST([LLVM_LIBS])
1648 AC_SUBST([LLVM_LDFLAGS])
1649 AC_SUBST([LLVM_VERSION])
1651 case "x$enable_opengl$enable_gles1$enable_gles2" in
1653 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1657 AC_SUBST([VG_LIB_DEPS])
1658 AC_SUBST([EGL_CLIENT_APIS])
1660 AC_ARG_WITH([egl-platforms],
1661 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1662 [comma delimited native platforms libEGL supports, e.g.
1663 "x11,drm" @<:@default=auto@:>@])],
1664 [with_egl_platforms="$withval"],
1665 [with_egl_platforms=yes])
1668 WAYLAND_EGL_LIB_DEPS=""
1670 case "$with_egl_platforms" in
1672 if test "x$enable_egl" = xyes; then
1677 if test "x$enable_egl" != xyes; then
1678 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1680 # verify the requested driver directories exist
1681 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1682 for plat in $egl_platforms; do
1683 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1684 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1685 if test "$plat" = "fbdev"; then
1686 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1688 if test "$plat" = "null"; then
1689 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1691 if test "$plat" = "wayland"; then
1692 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1693 [AC_MSG_ERROR([cannot find libwayland-client])])
1694 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1695 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1697 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1698 AC_MSG_ERROR([EGL platform drm needs gbm])
1700 case "$plat$have_libudev" in
1702 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1705 EGL_PLATFORMS="$egl_platforms"
1708 AC_SUBST([EGL_PLATFORMS])
1710 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1711 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1712 WAYLAND_EGL_PC_LIB_PRIV=
1713 WAYLAND_EGL_PC_CFLAGS=
1715 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1716 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1717 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1720 AC_ARG_WITH([egl-driver-dir],
1721 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1722 [directory for EGL drivers [[default=${libdir}/egl]]])],
1723 [EGL_DRIVER_INSTALL_DIR="$withval"],
1724 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1725 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1727 AC_ARG_WITH([xorg-driver-dir],
1728 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1729 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1730 [XORG_DRIVER_INSTALL_DIR="$withval"],
1731 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1732 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1734 AC_ARG_WITH([max-width],
1735 [AS_HELP_STRING([--with-max-width=N],
1736 [Maximum framebuffer width (4096)])],
1737 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1738 AS_IF([test "${withval}" -gt "4096"],
1739 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1741 AC_ARG_WITH([max-height],
1742 [AS_HELP_STRING([--with-max-height=N],
1743 [Maximum framebuffer height (4096)])],
1744 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1745 AS_IF([test "${withval}" -gt "4096"],
1746 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1752 AC_ARG_ENABLE([gallium-llvm],
1753 [AS_HELP_STRING([--enable-gallium-llvm],
1754 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1755 [enable_gallium_llvm="$enableval"],
1756 [enable_gallium_llvm=auto])
1757 if test "x$with_gallium_drivers" = x; then
1758 enable_gallium_llvm=no
1760 if test "x$enable_gallium_llvm" = xauto; then
1762 i*86|x86_64) enable_gallium_llvm=yes;;
1765 if test "x$enable_gallium_llvm" = xyes; then
1766 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1768 if test "x$LLVM_CONFIG" != xno; then
1769 LLVM_VERSION=`$LLVM_CONFIG --version`
1770 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1771 LLVM_LIBS="`$LLVM_CONFIG --libs`"
1773 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1774 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1783 dnl Directory for VDPAU libs
1784 AC_ARG_WITH([vdpau-libdir],
1785 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1786 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1787 [VDPAU_LIB_INSTALL_DIR="$withval"],
1788 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1789 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1791 dnl Directory for VA libs
1792 AC_ARG_WITH([va-libdir],
1793 [AS_HELP_STRING([--with-va-libdir=DIR],
1794 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1795 [VA_LIB_INSTALL_DIR="$withval"],
1796 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1797 AC_SUBST([VA_LIB_INSTALL_DIR])
1800 dnl Gallium helper functions
1802 gallium_check_st() {
1803 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1804 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1805 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1806 if test "x$have_libdrm" != xyes; then
1807 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1809 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1811 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1812 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1814 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1815 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1817 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1818 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1820 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1821 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1822 NEED_G3DVL_DRI="yes"
1824 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1825 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1826 NEED_G3DVL_DRI="yes"
1828 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1829 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1830 NEED_G3DVL_DRI="yes"
1834 gallium_require_llvm() {
1835 if test "x$MESA_LLVM" = x0; then
1837 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1843 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1844 if test "x$with_gallium_drivers" != x; then
1845 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1846 for driver in $gallium_drivers; do
1849 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1850 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1853 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1854 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1855 if test "x$MESA_LLVM" = x1; then
1856 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1858 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1859 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1862 gallium_require_llvm "Gallium R300"
1863 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1864 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1867 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1868 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1871 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1872 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1873 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1876 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1877 if test "x$MESA_LLVM" = x1; then
1878 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1881 if test "x$HAVE_ST_DRI" = xyes; then
1882 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1884 if test "x$HAVE_ST_VDPAU" = xyes; then
1885 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1887 if test "x$HAVE_ST_XVMC" = xyes; then
1888 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1890 if test "x$HAVE_ST_VA" = xyes; then
1891 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1893 if test "x$HAVE_ST_VDPAU" = xyes ||
1894 test "x$HAVE_ST_XVMC" = xyes ||
1895 test "x$HAVE_ST_VA" = xyes; then
1896 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1897 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1902 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1908 if test "x$NEED_G3DVL_DRI" = xyes; then
1909 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1912 dnl prepend CORE_DIRS to SRC_DIRS
1913 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1915 dnl Restore LDFLAGS and CPPFLAGS
1916 LDFLAGS="$_SAVE_LDFLAGS"
1917 CPPFLAGS="$_SAVE_CPPFLAGS"
1919 dnl Add user CFLAGS and CXXFLAGS
1920 CFLAGS="$CFLAGS $USER_CFLAGS"
1921 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1923 dnl Substitute the config
1924 AC_CONFIG_FILES([configs/autoconf
1926 tests/glx/Makefile])
1928 dnl Replace the configs/current symlink
1929 AC_CONFIG_COMMANDS([configs],[
1930 if test -f configs/current || test -L configs/current; then
1931 rm -f configs/current
1933 ln -s autoconf configs/current
1936 dnl Sort the dirs alphabetically
1937 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1938 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1939 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1940 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1945 dnl Output some configuration info for the user
1948 echo " prefix: $prefix"
1949 echo " exec_prefix: $exec_prefix"
1950 echo " libdir: $libdir"
1951 echo " includedir: $includedir"
1955 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1956 echo " OpenVG: $enable_openvg"
1960 if test "x$enable_osmesa" != xno; then
1961 echo " OSMesa: lib$OSMESA_LIB"
1966 if test "x$enable_dri" != xno; then
1967 # cleanup the drivers var
1968 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1969 if test "x$DRI_DIRS" = x; then
1970 echo " DRI drivers: no"
1972 echo " DRI drivers: $dri_dirs"
1974 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1975 echo " Shared dricore: $enable_dricore"
1978 case "x$enable_glx$enable_xlib_glx" in
1980 echo " GLX: Xlib-based"
1983 echo " GLX: DRI-based"
1984 echo " Use XCB: $enable_xcb"
1987 echo " GLX: $enable_glx"
1992 echo " GLU: $enable_glu"
1996 echo " EGL: $enable_egl"
1997 if test "$enable_egl" = yes; then
1998 echo " EGL platforms: $EGL_PLATFORMS"
2001 for d in $EGL_DRIVERS_DIRS; do
2002 egl_drivers="$egl_drivers builtin:egl_$d"
2005 if test "x$HAVE_ST_EGL" = xyes; then
2006 echo " EGL drivers: ${egl_drivers} egl_gallium"
2007 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2009 echo " EGL drivers: $egl_drivers"
2014 if test "x$MESA_LLVM" = x1; then
2016 echo " llvm-config: $LLVM_CONFIG"
2017 echo " llvm-version: $LLVM_VERSION"
2023 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2024 echo " Gallium: yes"
2025 echo " Gallium dirs: $GALLIUM_DIRS"
2026 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2027 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2028 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2029 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2037 echo " Shared libs: $enable_shared"
2038 echo " Static libs: $enable_static"
2040 dnl Compiler options
2041 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2042 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2043 $SED 's/^ *//;s/ */ /;s/ *$//'`
2044 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2045 $SED 's/^ *//;s/ */ /;s/ *$//'`
2046 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2048 echo " CFLAGS: $cflags"
2049 echo " CXXFLAGS: $cxxflags"
2050 echo " Macros: $defines"
2052 echo " PYTHON2: $PYTHON2"
2055 echo " Run '${MAKE-make}' to build Mesa"