1 dnl Process this file with autoconf to create configure.
5 dnl Versioning - scrape the version from configs/default
6 m4_define([mesa_version],
7 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
8 m4_ifval(mesa_version,,
9 [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
11 dnl Tell the user about autoconf.html in the --help output
12 m4_divert_once([HELP_END], [
13 See docs/autoconf.html for more details on the options for Mesa.])
15 AC_INIT([Mesa],[mesa_version],
16 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17 AC_CONFIG_AUX_DIR([bin])
19 AM_INIT_AUTOMAKE([foreign])
21 # Support silent build rules, requires at least automake-1.11. Disable
22 # by either passing --disable-silent-rules to configure or passing V=1
24 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
27 LT_INIT([disable-static])
29 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
31 USER_CXXFLAGS="$CXXFLAGS"
33 dnl Versions for external dependencies
34 LIBDRM_REQUIRED=2.4.24
35 LIBDRM_RADEON_REQUIRED=2.4.24
36 LIBDRM_INTEL_REQUIRED=2.4.30
37 LIBDRM_NOUVEAU_REQUIRED=0.6
38 DRI2PROTO_REQUIRED=2.6
39 GLPROTO_REQUIRED=1.4.14
40 LIBDRM_XORG_REQUIRED=2.4.24
41 LIBKMS_XORG_REQUIRED=1.0.0
47 AC_CHECK_PROGS([MAKE], [gmake make])
48 AC_CHECK_PROGS([PYTHON2], [python2 python])
50 AC_PATH_PROG([MKDEP], [makedepend])
52 if test "x$MKDEP" = "x"; then
53 AC_MSG_ERROR([makedepend is required to build Mesa])
56 AC_PATH_PROG([FLEX], [flex])
57 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
59 AC_PATH_PROG([BISON], [bison])
60 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
62 dnl Our fallback install-sh is a symlink to minstall. Use the existing
63 dnl configuration in that case.
65 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
67 dnl We need a POSIX shell for parts of the build. Assume we have one
71 # Solaris /bin/sh is too old/non-POSIX compliant
72 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
77 AC_PATH_PROG([GTESTCONFIG], [gtest-config])
78 if test "x$GTESTCONFIG" != "x"; then
79 GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
80 GTEST_LIBS=`gtest-config --ldflags --libs`
81 AC_SUBST([GTEST_CFLAGS])
82 AC_SUBST([GTEST_LIBS])
87 AM_CONDITIONAL(HAVE_GTEST, test x$HAVE_GTEST = xyes)
89 dnl clang is mostly GCC-compatible, but its version is much lower,
90 dnl so we have to check for it.
91 AC_MSG_CHECKING([if compiling with clang])
94 [AC_LANG_PROGRAM([], [[
99 [CLANG=yes], [CLANG=no])
101 AC_MSG_RESULT([$CLANG])
103 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
104 dnl versions are explictly not supported.
105 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
106 AC_MSG_CHECKING([whether gcc version is sufficient])
110 GCC_VERSION=`$CC -dumpversion`
111 if test $? -eq 0; then
112 major=`echo $GCC_VERSION | cut -d. -f1`
113 minor=`echo $GCC_VERSION | cut -d. -f2`
116 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
118 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
125 MKDEP_OPTIONS=-fdepend
126 dnl Ask gcc where it's keeping its secret headers
127 if test "x$GCC" = xyes; then
128 for dir in include include-fixed; do
129 GCC_INCLUDES=`$CC -print-file-name=$dir`
130 if test "x$GCC_INCLUDES" != x && \
131 test "$GCC_INCLUDES" != "$dir" && \
132 test -d "$GCC_INCLUDES"; then
133 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
137 AC_SUBST([MKDEP_OPTIONS])
139 dnl Make sure the pkg-config macros are defined
140 m4_ifndef([PKG_PROG_PKG_CONFIG],
141 [m4_fatal([Could not locate the pkg-config autoconf macros.
142 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
143 are in a different location, try setting the environment variable
144 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
145 PKG_PROG_PKG_CONFIG()
147 dnl LIB_DIR - library basename
148 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
151 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
152 _SAVE_LDFLAGS="$LDFLAGS"
153 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
154 AC_SUBST([EXTRA_LIB_PATH])
156 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
157 _SAVE_CPPFLAGS="$CPPFLAGS"
158 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
159 AC_SUBST([X11_INCLUDES])
166 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
169 DEFINES="$DEFINES -DPTHREADS -DSVR4"
172 DEFINES="$DEFINES -DPTHREADS"
176 dnl Add flags for gcc and g++
177 if test "x$GCC" = xyes; then
178 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
180 # Enable -fvisibility=hidden if using a gcc that supports it
181 save_CFLAGS="$CFLAGS"
182 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
183 VISIBILITY_CFLAGS="-fvisibility=hidden"
184 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
185 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
186 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
188 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
191 # Work around aliasing bugs - developers should comment this out
192 CFLAGS="$CFLAGS -fno-strict-aliasing"
194 # gcc's builtin memcmp is slower than glibc's
195 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
196 CFLAGS="$CFLAGS -fno-builtin-memcmp"
198 if test "x$GXX" = xyes; then
199 CXXFLAGS="$CXXFLAGS -Wall"
201 # Enable -fvisibility=hidden if using a gcc that supports it
202 save_CXXFLAGS="$CXXFLAGS"
203 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
204 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
205 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
207 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
208 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
211 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
212 CXXFLAGS=$save_CXXFLAGS
214 # Work around aliasing bugs - developers should comment this out
215 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
217 # gcc's builtin memcmp is slower than glibc's
218 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
219 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
222 dnl even if the compiler appears to support it, using visibility attributes isn't
223 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
227 VISIBILITY_CXXFLAGS=""
231 AC_SUBST([VISIBILITY_CFLAGS])
232 AC_SUBST([VISIBILITY_CXXFLAGS])
234 dnl These should be unnecessary, but let the user set them if they want
235 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
236 Default is to use CFLAGS.])
237 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
238 compiler. Default is to use CFLAGS.])
239 AC_SUBST([OPT_FLAGS])
240 AC_SUBST([ARCH_FLAGS])
243 dnl Hacks to enable 32 or 64 bit build
245 AC_ARG_ENABLE([32-bit],
246 [AS_HELP_STRING([--enable-32-bit],
247 [build 32-bit libraries @<:@default=auto@:>@])],
248 [enable_32bit="$enableval"],
251 if test "x$enable_32bit" = xyes; then
252 if test "x$GCC" = xyes; then
253 CFLAGS="$CFLAGS -m32"
254 ARCH_FLAGS="$ARCH_FLAGS -m32"
256 if test "x$GXX" = xyes; then
257 CXXFLAGS="$CXXFLAGS -m32"
260 AC_ARG_ENABLE([64-bit],
261 [AS_HELP_STRING([--enable-64-bit],
262 [build 64-bit libraries @<:@default=auto@:>@])],
263 [enable_64bit="$enableval"],
266 if test "x$enable_64bit" = xyes; then
267 if test "x$GCC" = xyes; then
268 CFLAGS="$CFLAGS -m64"
270 if test "x$GXX" = xyes; then
271 CXXFLAGS="$CXXFLAGS -m64"
276 dnl shared/static libraries, mimic libtool options
278 AC_ARG_ENABLE([static],
279 [AS_HELP_STRING([--enable-static],
280 [build static libraries @<:@default=disabled@:>@])],
281 [enable_static="$enableval"],
284 case "x$enable_static" in
286 x ) enable_static=no ;;
288 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
291 AC_ARG_ENABLE([shared],
292 [AS_HELP_STRING([--disable-shared],
293 [build shared libraries @<:@default=enabled@:>@])],
294 [enable_shared="$enableval"],
297 case "x$enable_shared" in
299 x ) enable_shared=yes ;;
301 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
305 dnl Can't have static and shared libraries, default to static if user
306 dnl explicitly requested. If both disabled, set to static since shared
307 dnl was explicitly requirested.
308 case "x$enable_static$enable_shared" in
310 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
314 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
322 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
323 if test "$enable_static" = yes; then
324 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
326 AC_SUBST([MKLIB_OPTIONS])
329 dnl other compiler options
331 AC_ARG_ENABLE([debug],
332 [AS_HELP_STRING([--enable-debug],
333 [use debug compiler flags and macros @<:@default=disabled@:>@])],
334 [enable_debug="$enableval"],
337 if test "x$enable_debug" = xyes; then
338 DEFINES="$DEFINES -DDEBUG"
339 if test "x$GCC" = xyes; then
342 if test "x$GXX" = xyes; then
343 CXXFLAGS="$CXXFLAGS -g"
350 LIB_PREFIX_GLOB='lib'
351 LIB_VERSION_SEPARATOR='.'
352 if test "$enable_static" = yes; then
357 LIB_EXTENSION='dylib' ;;
359 dnl prefix can be 'cyg' or 'lib'
360 LIB_PREFIX_GLOB='???'
361 LIB_VERSION_SEPARATOR='-'
362 LIB_EXTENSION='dll' ;;
366 LIB_EXTENSION='so' ;;
371 dnl Mangled Mesa support
373 AC_ARG_ENABLE([mangling],
374 [AS_HELP_STRING([--enable-mangling],
375 [enable mangled symbols and library name @<:@default=disabled@:>@])],
376 [enable_mangling="${enableval}"],
382 if test "x${enable_mangling}" = "xyes" ; then
383 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
386 OSMESA_LIB="MangledOSMesa"
390 AC_SUBST([OSMESA_LIB])
393 dnl potentially-infringing-but-nobody-knows-for-sure stuff
395 AC_ARG_ENABLE([texture-float],
396 [AS_HELP_STRING([--enable-texture-float],
397 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
398 [enable_texture_float="$enableval"],
399 [enable_texture_float=no]
401 if test "x$enable_texture_float" = xyes; then
402 AC_MSG_WARN([Floating-point textures enabled.])
403 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
404 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
407 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
408 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
409 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
410 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
411 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
412 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
413 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
414 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
415 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
416 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
418 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
419 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
420 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
421 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
422 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
423 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
424 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
425 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
426 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
427 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
428 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
430 AC_SUBST([GL_LIB_NAME])
431 AC_SUBST([GLU_LIB_NAME])
432 AC_SUBST([OSMESA_LIB_NAME])
433 AC_SUBST([EGL_LIB_NAME])
434 AC_SUBST([GLESv1_CM_LIB_NAME])
435 AC_SUBST([GLESv2_LIB_NAME])
436 AC_SUBST([VG_LIB_NAME])
437 AC_SUBST([GLAPI_LIB_NAME])
438 AC_SUBST([WAYLAND_EGL_LIB_NAME])
439 AC_SUBST([GBM_LIB_NAME])
441 AC_SUBST([GL_LIB_GLOB])
442 AC_SUBST([GLU_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,svga,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])
715 dnl Driver configuration. Options are xlib, dri and osmesa right now.
716 dnl More later: fbdev, ...
718 default_driver="xlib"
723 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
726 *freebsd* | dragonfly* | *netbsd*)
728 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
733 if test "x$enable_opengl" = xno; then
737 AC_ARG_WITH([driver],
738 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
739 [mesa_driver="$withval"],
741 dnl Check for valid option
742 case "x$mesa_driver" in
743 xxlib|xdri|xosmesa|xno)
744 if test "x$enable_dri" != xauto -o \
745 "x$enable_glx" != xauto -o \
746 "x$enable_osmesa" != xauto -o \
747 "x$enable_xlib_glx" != xauto; then
748 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
752 mesa_driver="$default_driver"
755 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
759 # map $mesa_driver to APIs
760 if test "x$enable_dri" = xauto; then
761 case "x$mesa_driver" in
762 xdri) enable_dri=yes ;;
767 if test "x$enable_glx" = xauto; then
768 case "x$mesa_driver" in
769 xdri|xxlib) enable_glx=yes ;;
774 if test "x$enable_osmesa" = xauto; then
775 case "x$mesa_driver" in
776 xxlib|xosmesa) enable_osmesa=yes ;;
777 *) enable_osmesa=no ;;
781 if test "x$enable_xlib_glx" = xauto; then
782 case "x$mesa_driver" in
783 xxlib) enable_xlib_glx=yes ;;
784 *) enable_xlib_glx=no ;;
788 if test "x$enable_glx" = xno; then
793 dnl Driver specific build directories
796 dnl this variable will be prepended to SRC_DIRS and is not exported
797 CORE_DIRS="mapi/shared-glapi"
801 GALLIUM_DIRS="auxiliary drivers state_trackers"
802 GALLIUM_TARGET_DIRS=""
803 GALLIUM_WINSYS_DIRS="sw"
804 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
805 GALLIUM_STATE_TRACKERS_DIRS=""
807 # build glapi if OpenGL is enabled
808 if test "x$enable_opengl" = xyes; then
809 CORE_DIRS="$CORE_DIRS mapi/glapi"
812 # build es1api if OpenGL ES 1.x is enabled
813 if test "x$enable_gles1" = xyes; then
814 CORE_DIRS="$CORE_DIRS mapi/es1api"
817 # build es2api if OpenGL ES 2.x is enabled
818 if test "x$enable_gles2" = xyes; then
819 CORE_DIRS="$CORE_DIRS mapi/es2api"
822 # build glsl and mesa if OpenGL or OpenGL ES is enabled
823 case "x$enable_opengl$enable_gles1$enable_gles2" in
825 CORE_DIRS="$CORE_DIRS glsl mesa"
829 case "x$enable_glx$enable_xlib_glx" in
831 DRIVER_DIRS="$DRIVER_DIRS x11"
832 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
833 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
834 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
835 HAVE_WINSYS_XLIB="yes"
839 SRC_DIRS="$SRC_DIRS glx"
843 if test "x$enable_dri" = xyes; then
844 DRIVER_DIRS="$DRIVER_DIRS dri"
846 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
847 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
851 if test "x$enable_osmesa" = xyes; then
852 # the empty space matters for osmesa... (see src/mesa/Makefile)
853 if test -n "$DRIVER_DIRS"; then
854 DRIVER_DIRS="$DRIVER_DIRS osmesa"
862 AC_SUBST([DRIVER_DIRS])
863 AC_SUBST([GALLIUM_DIRS])
864 AC_SUBST([GALLIUM_TARGET_DIRS])
865 AC_SUBST([GALLIUM_WINSYS_DIRS])
866 AC_SUBST([GALLIUM_DRIVERS_DIRS])
867 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
868 AC_SUBST([MESA_LLVM])
871 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
872 [have_libdrm=yes], [have_libdrm=no])
874 if test "x$enable_dri" = xyes; then
875 # DRI must be shared, I think
876 if test "$enable_static" = yes; then
877 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
880 # not a hard requirement as swrast does not depend on it
881 if test "x$have_libdrm" = xyes; then
882 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
887 dnl Find out if X is available. The variable have_x is set if libX11 is
888 dnl found to mimic AC_PATH_XTRA.
890 if test -n "$PKG_CONFIG"; then
891 AC_MSG_CHECKING([pkg-config files for X11 are available])
892 PKG_CHECK_EXISTS([x11],[
898 AC_MSG_RESULT([$x11_pkgconfig])
902 dnl Use the autoconf macro if no pkg-config files
903 if test "$x11_pkgconfig" = yes; then
904 PKG_CHECK_MODULES([X11], [x11])
907 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
908 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
909 AC_SUBST([X11_CFLAGS])
913 dnl Try to tell the user that the --x-* options are only used when
914 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
915 m4_divert_once([HELP_BEGIN],
916 [These options are only used when the X libraries cannot be found by the
917 pkg-config utility.])
919 dnl We need X for xlib and dri, so bomb now if it's not found
920 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
921 AC_MSG_ERROR([X11 development libraries needed for GLX])
924 if test "x$enable_glx" = xyes; then
925 DEFINES="$DEFINES -DUSE_XCB"
928 dnl Direct rendering or just indirect rendering
931 dnl Disable by default on GNU/Hurd
932 driglx_direct_default="no"
935 dnl Disable by default on cygwin
936 driglx_direct_default="no"
939 driglx_direct_default="yes"
942 AC_ARG_ENABLE([driglx-direct],
943 [AS_HELP_STRING([--disable-driglx-direct],
944 [enable direct rendering in GLX and EGL for DRI \
945 @<:@default=auto@:>@])],
946 [driglx_direct="$enableval"],
947 [driglx_direct="$driglx_direct_default"])
950 dnl libGL configuration per driver
952 case "x$enable_glx$enable_xlib_glx" in
955 if test "$x11_pkgconfig" = yes; then
956 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
957 GL_PC_REQ_PRIV="x11 xext"
958 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
959 GL_LIB_DEPS="$XLIBGL_LIBS"
961 # should check these...
962 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
963 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
964 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
965 GL_PC_CFLAGS="$X11_INCLUDES"
967 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
968 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
972 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
973 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
974 if test x"$driglx_direct" = xyes; then
975 if test "x$have_libdrm" != xyes; then
976 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
978 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
979 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
982 # find the DRI deps for libGL
983 if test "$x11_pkgconfig" = yes; then
984 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
986 # add xf86vidmode if available
987 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
988 if test "$HAVE_XF86VIDMODE" = yes ; then
989 dri_modules="$dri_modules xxf86vm"
992 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
993 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
994 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
995 GL_LIB_DEPS="$DRIGL_LIBS"
997 # should check these...
998 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
999 if test "x$HAVE_XF86VIDMODE" == xyes; then
1000 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
1002 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1004 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1005 GL_PC_CFLAGS="$X11_INCLUDES"
1007 # XCB can only be used from pkg-config
1008 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1009 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1010 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1011 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1014 # Check to see if the xcb-glx library is new enough to support
1015 # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
1017 save_CPPFLAGS="$CPPFLAGS"
1018 save_LDFLAGS="$LDFLAGS"
1019 CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
1020 LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
1021 AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
1022 [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
1023 [HAVE_XCB_GLX_CREATE_CONTEXT=no])
1024 CPPFLAGS="$save_CPPFLAGS"
1025 LDFLAGS="$save_LDFLAGS"
1027 if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
1028 X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
1031 # need DRM libs, -lpthread, etc.
1032 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1033 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1037 # This is outside the case (above) so that it is invoked even for non-GLX
1039 AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
1040 test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
1042 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1043 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1044 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1045 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1047 AC_SUBST([GL_LIB_DEPS])
1048 AC_SUBST([GL_PC_REQ_PRIV])
1049 AC_SUBST([GL_PC_LIB_PRIV])
1050 AC_SUBST([GL_PC_CFLAGS])
1051 AC_SUBST([DRI_PC_REQ_PRIV])
1052 AC_SUBST([GLESv1_CM_LIB_DEPS])
1053 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1054 AC_SUBST([GLESv2_LIB_DEPS])
1055 AC_SUBST([GLESv2_PC_LIB_PRIV])
1057 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1058 AC_SUBST([GLAPI_LIB_DEPS])
1061 dnl Setup default DRI CFLAGS
1062 DRI_CFLAGS='$(CFLAGS)'
1063 DRI_CXXFLAGS='$(CXXFLAGS)'
1064 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1065 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1067 if test "x$enable_dri" = xyes ; then
1068 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1069 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1070 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1071 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1072 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1073 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1074 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1076 AC_SUBST([DRICORE_LIBS])
1077 AC_SUBST([DRICORE_GLSL_LIBS])
1078 AC_SUBST([DRICORE_LIB_DEPS])
1079 AC_SUBST([DRI_CXXFLAGS])
1080 AC_SUBST([DRI_CFLAGS])
1081 AC_SUBST([MESA_MODULES])
1083 AC_SUBST([HAVE_XF86VIDMODE])
1088 case "x$enable_glx$enable_xlib_glx" in
1090 DEFINES="$DEFINES -DUSE_XSHM"
1093 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1094 if test "x$driglx_direct" = xyes; then
1095 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1104 AC_ARG_ENABLE([glx-tls],
1105 [AS_HELP_STRING([--enable-glx-tls],
1106 [enable TLS support in GLX @<:@default=disabled@:>@])],
1107 [GLX_USE_TLS="$enableval"],
1109 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1111 AS_IF([test "x$GLX_USE_TLS" = xyes],
1112 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1117 dnl Directory for DRI drivers
1118 AC_ARG_WITH([dri-driverdir],
1119 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1120 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1121 [DRI_DRIVER_INSTALL_DIR="$withval"],
1122 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1123 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1124 dnl Extra search path for DRI drivers
1125 AC_ARG_WITH([dri-searchpath],
1126 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1127 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1128 [DRI_DRIVER_SEARCH_DIR="$withval"],
1129 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1130 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1131 dnl Which drivers to build - default is chosen by platform
1132 AC_ARG_WITH([dri-drivers],
1133 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1134 [comma delimited DRI drivers list, e.g.
1135 "swrast,i965,radeon" @<:@default=auto@:>@])],
1136 [with_dri_drivers="$withval"],
1137 [with_dri_drivers=yes])
1138 if test "x$with_dri_drivers" = x; then
1142 dnl If $with_dri_drivers is yes, directories will be added through
1145 case "$with_dri_drivers" in
1148 # classic DRI drivers require FEATURE_GL to build
1149 if test "x$enable_opengl" = xyes; then
1154 # verify the requested driver directories exist
1155 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1156 for driver in $dri_drivers; do
1157 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1158 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1160 DRI_DIRS="$dri_drivers"
1161 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1162 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1167 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1168 if test "x$enable_dri" = xyes; then
1169 # Platform specific settings and drivers to build
1172 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1173 DEFINES="$DEFINES -DHAVE_ALIAS"
1177 if test "x$DRI_DIRS" = "xyes"; then
1178 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1182 # Build only the drivers for cards that exist on PowerPC.
1183 if test "x$DRI_DIRS" = "xyes"; then
1184 DRI_DIRS="r200 radeon swrast"
1188 # Build only the drivers for cards that exist on sparc
1189 if test "x$DRI_DIRS" = "xyes"; then
1190 DRI_DIRS="r200 radeon swrast"
1195 freebsd* | dragonfly* | *netbsd*)
1196 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1197 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1199 if test "x$DRI_DIRS" = "xyes"; then
1200 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1204 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1205 DEFINES="$DEFINES -DHAVE_ALIAS"
1208 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1211 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1212 if test "x$DRI_DIRS" = "xyes"; then
1219 if test "x$DRI_DIRS" = "xyes"; then
1220 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1223 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1226 if test "x$enable_dri" = xyes; then
1229 AC_ARG_WITH([expat],
1230 [AS_HELP_STRING([--with-expat=DIR],
1231 [expat install directory])],[
1232 EXPAT_INCLUDES="-I$withval/include"
1233 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1234 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1235 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1237 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1238 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1239 [AC_MSG_ERROR([Expat required for DRI.])])
1242 # libdrm is required for all except swrast
1243 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1244 if test "x$have_libdrm" != xyes; then
1245 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1249 # put all the necessary libs together
1250 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1252 AC_SUBST([DRI_DIRS])
1253 AC_SUBST([EXPAT_INCLUDES])
1254 AC_SUBST([DRI_LIB_DEPS])
1258 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1260 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1276 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1277 HAVE_NOUVEAU_DRI=yes;
1283 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1285 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1288 HAVE_RADEON_DRI=yes;
1301 HAVE_SWRAST_DRI=yes;
1305 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
1306 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1307 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
1308 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
1309 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
1310 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
1313 dnl OSMesa configuration
1316 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1317 AC_ARG_WITH([osmesa-bits],
1318 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1319 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1320 [osmesa_bits="$withval"],
1322 if test "x$osmesa_bits" != x8; then
1323 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1324 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1328 case "x$osmesa_bits" in
1330 OSMESA_LIB="${OSMESA_LIB}"
1333 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1334 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1337 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1341 if test "x$enable_osmesa" = xyes; then
1342 # only link libraries with osmesa if shared
1343 if test "$enable_static" = no; then
1344 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1349 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1351 AC_SUBST([OSMESA_LIB_DEPS])
1352 AC_SUBST([OSMESA_MESA_DEPS])
1353 AC_SUBST([OSMESA_PC_REQ])
1354 AC_SUBST([OSMESA_PC_LIB_PRIV])
1357 dnl gbm configuration
1359 if test "x$enable_gbm" = xauto; then
1360 case "$with_egl_platforms" in
1367 if test "x$enable_gbm" = xyes; then
1368 SRC_DIRS="$SRC_DIRS gbm"
1371 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1372 AC_MSG_ERROR([gbm needs udev]))
1373 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1375 if test "x$enable_dri" = xyes; then
1376 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1379 AC_SUBST([GBM_LIB_DEPS])
1380 AC_SUBST([GBM_BACKEND_DIRS])
1381 GBM_PC_REQ_PRIV="libudev"
1382 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1384 AC_SUBST([GBM_PC_REQ_PRIV])
1385 AC_SUBST([GBM_PC_LIB_PRIV])
1386 AC_SUBST([GBM_PC_CFLAGS])
1389 dnl EGL configuration
1393 if test "x$enable_egl" = xyes; then
1394 SRC_DIRS="$SRC_DIRS egl"
1395 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1398 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1400 if test "$enable_static" != yes; then
1401 # build egl_glx when libGL is built
1402 if test "x$enable_glx" = xyes; then
1403 EGL_DRIVERS_DIRS="glx"
1406 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1407 [have_libudev=yes],[have_libudev=no])
1408 if test "$have_libudev" = yes; then
1409 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1411 if test "x$enable_dri" = xyes; then
1412 # build egl_dri2 when xcb-dri2 is available
1413 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1414 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1416 if test "$have_xcb_dri2" = yes; then
1417 EGL_DRIVER_DRI2=dri2
1418 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1419 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1420 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1421 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1425 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1428 AC_SUBST([EGL_LIB_DEPS])
1429 AC_SUBST([EGL_DRIVERS_DIRS])
1432 dnl EGL Gallium configuration
1434 if test "x$enable_gallium_egl" = xyes; then
1435 if test "x$with_gallium_drivers" = x; then
1436 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1438 if test "x$enable_egl" = xno; then
1439 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1441 if test "x$have_libdrm" != xyes; then
1442 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1445 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1446 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1451 dnl gbm Gallium configuration
1453 if test "x$enable_gallium_gbm" = xauto; then
1454 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1456 enable_gallium_gbm=yes ;;
1458 enable_gallium_gbm=no ;;
1461 if test "x$enable_gallium_gbm" = xyes; then
1462 if test "x$with_gallium_drivers" = x; then
1463 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1465 if test "x$enable_gbm" = xno; then
1466 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1468 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1469 if test "x$enable_dri" = xno; then
1470 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1473 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1474 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1479 dnl X.Org DDX configuration
1481 if test "x$enable_xorg" = xyes; then
1482 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1483 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1484 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1485 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1486 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1487 HAVE_XEXTPROTO_71="no")
1488 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1493 dnl XA configuration
1495 if test "x$enable_xa" = xyes; then
1498 AC_CHECK_PROG(NM, nm, "nm")
1499 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1500 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1504 if test "x$enable_xa" = xyes; then
1505 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1513 dnl OpenVG configuration
1517 if test "x$enable_openvg" = xyes; then
1518 if test "x$enable_egl" = xno; then
1519 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1521 if test "x$with_gallium_drivers" = x; then
1522 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1524 if test "x$enable_gallium_egl" = xno; then
1525 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1528 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1529 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1530 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1531 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1536 dnl D3D1X configuration
1539 if test "x$enable_d3d1x" = xyes; then
1540 if test "x$with_gallium_drivers" = x; then
1541 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1544 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1549 dnl Gallium G3DVL configuration
1551 AC_ARG_ENABLE([gallium-g3dvl],
1552 [AS_HELP_STRING([--enable-gallium-g3dvl],
1553 [build gallium g3dvl @<:@default=disabled@:>@])],
1554 [enable_gallium_g3dvl="$enableval"],
1555 [enable_gallium_g3dvl=no])
1556 if test "x$enable_gallium_g3dvl" = xyes; then
1557 if test "x$with_gallium_drivers" = x; then
1558 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1561 if test "x$enable_xvmc" = xauto; then
1562 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1565 if test "x$enable_vdpau" = xauto; then
1566 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1569 if test "x$enable_va" = xauto; then
1570 #don't enable vaapi state tracker even if package exists
1571 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1576 if test "x$enable_xvmc" = xyes; then
1577 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1578 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1582 if test "x$enable_vdpau" = xyes; then
1583 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1584 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1588 if test "x$enable_va" = xyes; then
1589 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1590 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1591 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1596 dnl GLU configuration
1598 AC_ARG_ENABLE([glu],
1599 [AS_HELP_STRING([--disable-glu],
1600 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1601 [enable_glu="$enableval"],
1604 if test "x$enable_glu" = xyes; then
1605 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1606 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1611 if test "x$enable_glu" = xyes; then
1612 SRC_DIRS="$SRC_DIRS glu"
1614 if test "x$enable_glx" = xno; then
1615 # Link libGLU to libOSMesa instead of libGL
1618 if test "$enable_static" = no; then
1619 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1624 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1626 GLU_PC_LIB_PRIV="-lm"
1627 if test "$enable_static" = no; then
1629 GLU_MESA_DEPS='-l$(GL_LIB)'
1636 if test "$enable_static" = no; then
1637 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1639 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1640 AC_SUBST([GLU_LIB_DEPS])
1641 AC_SUBST([GLU_MESA_DEPS])
1642 AC_SUBST([GLU_PC_REQ])
1643 AC_SUBST([GLU_PC_REQ_PRIV])
1644 AC_SUBST([GLU_PC_LIB_PRIV])
1645 AC_SUBST([GLU_PC_CFLAGS])
1647 AC_SUBST([PROGRAM_DIRS])
1650 dnl Gallium configuration
1652 if test "x$with_gallium_drivers" != x; then
1653 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1656 AC_SUBST([LLVM_CFLAGS])
1657 AC_SUBST([LLVM_LIBS])
1658 AC_SUBST([LLVM_LDFLAGS])
1659 AC_SUBST([LLVM_VERSION])
1661 case "x$enable_opengl$enable_gles1$enable_gles2" in
1663 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1667 AC_SUBST([VG_LIB_DEPS])
1668 AC_SUBST([EGL_CLIENT_APIS])
1670 AC_ARG_WITH([egl-platforms],
1671 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1672 [comma delimited native platforms libEGL supports, e.g.
1673 "x11,drm" @<:@default=auto@:>@])],
1674 [with_egl_platforms="$withval"],
1675 [with_egl_platforms=yes])
1678 WAYLAND_EGL_LIB_DEPS=""
1680 case "$with_egl_platforms" in
1682 if test "x$enable_egl" = xyes; then
1687 if test "x$enable_egl" != xyes; then
1688 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1690 # verify the requested driver directories exist
1691 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1692 for plat in $egl_platforms; do
1693 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1694 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1695 if test "$plat" = "fbdev"; then
1696 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1698 if test "$plat" = "null"; then
1699 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1701 if test "$plat" = "wayland"; then
1702 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1703 [AC_MSG_ERROR([cannot find libwayland-client])])
1704 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1705 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1707 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1708 AC_MSG_ERROR([EGL platform drm needs gbm])
1710 case "$plat$have_libudev" in
1712 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1715 EGL_PLATFORMS="$egl_platforms"
1718 AC_SUBST([EGL_PLATFORMS])
1720 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1721 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1722 WAYLAND_EGL_PC_LIB_PRIV=
1723 WAYLAND_EGL_PC_CFLAGS=
1725 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1726 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1727 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1730 AC_ARG_WITH([egl-driver-dir],
1731 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1732 [directory for EGL drivers [[default=${libdir}/egl]]])],
1733 [EGL_DRIVER_INSTALL_DIR="$withval"],
1734 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1735 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1737 AC_ARG_WITH([xorg-driver-dir],
1738 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1739 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1740 [XORG_DRIVER_INSTALL_DIR="$withval"],
1741 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1742 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1744 AC_ARG_WITH([max-width],
1745 [AS_HELP_STRING([--with-max-width=N],
1746 [Maximum framebuffer width (4096)])],
1747 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1748 AS_IF([test "${withval}" -gt "4096"],
1749 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1751 AC_ARG_WITH([max-height],
1752 [AS_HELP_STRING([--with-max-height=N],
1753 [Maximum framebuffer height (4096)])],
1754 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1755 AS_IF([test "${withval}" -gt "4096"],
1756 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1762 AC_ARG_ENABLE([gallium-llvm],
1763 [AS_HELP_STRING([--enable-gallium-llvm],
1764 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1765 [enable_gallium_llvm="$enableval"],
1766 [enable_gallium_llvm=auto])
1767 if test "x$with_gallium_drivers" = x; then
1768 enable_gallium_llvm=no
1770 if test "x$enable_gallium_llvm" = xauto; then
1772 i*86|x86_64) enable_gallium_llvm=yes;;
1775 if test "x$enable_gallium_llvm" = xyes; then
1776 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1778 if test "x$LLVM_CONFIG" != xno; then
1779 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1780 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1781 LLVM_LIBS="`$LLVM_CONFIG --libs`"
1783 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1784 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1793 dnl Directory for VDPAU libs
1794 AC_ARG_WITH([vdpau-libdir],
1795 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1796 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1797 [VDPAU_LIB_INSTALL_DIR="$withval"],
1798 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1799 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1801 dnl Directory for VA libs
1802 AC_ARG_WITH([va-libdir],
1803 [AS_HELP_STRING([--with-va-libdir=DIR],
1804 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1805 [VA_LIB_INSTALL_DIR="$withval"],
1806 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1807 AC_SUBST([VA_LIB_INSTALL_DIR])
1810 dnl Gallium helper functions
1812 gallium_check_st() {
1813 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1814 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1815 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1816 if test "x$have_libdrm" != xyes; then
1817 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1819 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1821 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1822 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1824 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1825 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1827 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1828 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1830 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1831 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1832 NEED_G3DVL_DRI="yes"
1834 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1835 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1836 NEED_G3DVL_DRI="yes"
1838 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1839 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1840 NEED_G3DVL_DRI="yes"
1844 gallium_require_llvm() {
1845 if test "x$MESA_LLVM" = x0; then
1847 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1853 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1854 if test "x$with_gallium_drivers" != x; then
1855 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1856 for driver in $gallium_drivers; do
1859 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1860 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1863 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1864 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1865 if test "x$MESA_LLVM" = x1; then
1866 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1868 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1869 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1872 gallium_require_llvm "Gallium R300"
1873 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1874 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1877 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1878 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1881 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1882 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1883 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1886 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1887 if test "x$MESA_LLVM" = x1; then
1888 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1891 if test "x$HAVE_ST_DRI" = xyes; then
1892 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1894 if test "x$HAVE_ST_VDPAU" = xyes; then
1895 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1897 if test "x$HAVE_ST_XVMC" = xyes; then
1898 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1900 if test "x$HAVE_ST_VA" = xyes; then
1901 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1903 if test "x$HAVE_ST_VDPAU" = xyes ||
1904 test "x$HAVE_ST_XVMC" = xyes ||
1905 test "x$HAVE_ST_VA" = xyes; then
1906 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1907 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1912 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1918 if test "x$NEED_G3DVL_DRI" = xyes; then
1919 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1922 dnl prepend CORE_DIRS to SRC_DIRS
1923 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1925 dnl Restore LDFLAGS and CPPFLAGS
1926 LDFLAGS="$_SAVE_LDFLAGS"
1927 CPPFLAGS="$_SAVE_CPPFLAGS"
1929 dnl Add user CFLAGS and CXXFLAGS
1930 CFLAGS="$CFLAGS $USER_CFLAGS"
1931 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1933 dnl Substitute the config
1934 AC_CONFIG_FILES([configs/autoconf
1935 src/mesa/drivers/dri/dri.pc
1936 src/mesa/drivers/dri/Makefile
1937 src/mesa/drivers/dri/i915/Makefile
1938 src/mesa/drivers/dri/i965/Makefile
1939 src/mesa/drivers/dri/nouveau/Makefile
1940 src/mesa/drivers/dri/r200/Makefile
1941 src/mesa/drivers/dri/radeon/Makefile
1942 src/mesa/drivers/dri/swrast/Makefile
1944 tests/glx/Makefile])
1946 dnl Replace the configs/current symlink
1947 AC_CONFIG_COMMANDS([configs],[
1948 if test -f configs/current || test -L configs/current; then
1949 rm -f configs/current
1951 ln -s autoconf configs/current
1954 dnl Sort the dirs alphabetically
1955 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1956 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1957 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1958 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1963 dnl Output some configuration info for the user
1966 echo " prefix: $prefix"
1967 echo " exec_prefix: $exec_prefix"
1968 echo " libdir: $libdir"
1969 echo " includedir: $includedir"
1973 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1974 echo " OpenVG: $enable_openvg"
1978 if test "x$enable_osmesa" != xno; then
1979 echo " OSMesa: lib$OSMESA_LIB"
1984 if test "x$enable_dri" != xno; then
1985 # cleanup the drivers var
1986 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1987 if test "x$DRI_DIRS" = x; then
1988 echo " DRI drivers: no"
1990 echo " DRI drivers: $dri_dirs"
1992 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1995 case "x$enable_glx$enable_xlib_glx" in
1997 echo " GLX: Xlib-based"
2000 echo " GLX: DRI-based"
2003 echo " GLX: $enable_glx"
2008 echo " GLU: $enable_glu"
2012 echo " EGL: $enable_egl"
2013 if test "$enable_egl" = yes; then
2014 echo " EGL platforms: $EGL_PLATFORMS"
2017 for d in $EGL_DRIVERS_DIRS; do
2018 egl_drivers="$egl_drivers builtin:egl_$d"
2021 if test "x$HAVE_ST_EGL" = xyes; then
2022 echo " EGL drivers: ${egl_drivers} egl_gallium"
2023 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2025 echo " EGL drivers: $egl_drivers"
2030 if test "x$MESA_LLVM" = x1; then
2032 echo " llvm-config: $LLVM_CONFIG"
2033 echo " llvm-version: $LLVM_VERSION"
2039 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2040 echo " Gallium: yes"
2041 echo " Gallium dirs: $GALLIUM_DIRS"
2042 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2043 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2044 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2045 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2053 echo " Shared libs: $enable_shared"
2054 echo " Static libs: $enable_static"
2056 dnl Compiler options
2057 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2058 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2059 $SED 's/^ *//;s/ */ /;s/ *$//'`
2060 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2061 $SED 's/^ *//;s/ */ /;s/ *$//'`
2062 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2064 echo " CFLAGS: $cflags"
2065 echo " CXXFLAGS: $cxxflags"
2066 echo " Macros: $defines"
2068 echo " PYTHON2: $PYTHON2"
2071 echo " Run '${MAKE-make}' to build Mesa"