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([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1278 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1281 HAVE_RADEON_DRI=yes;
1292 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
1293 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1294 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
1295 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
1299 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1304 dnl OSMesa configuration
1307 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1308 AC_ARG_WITH([osmesa-bits],
1309 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1310 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1311 [osmesa_bits="$withval"],
1313 if test "x$osmesa_bits" != x8; then
1314 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1315 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1319 case "x$osmesa_bits" in
1321 OSMESA_LIB="${OSMESA_LIB}"
1324 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1325 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1328 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1332 if test "x$enable_osmesa" = xyes; then
1333 # only link libraries with osmesa if shared
1334 if test "$enable_static" = no; then
1335 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1340 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1342 AC_SUBST([OSMESA_LIB_DEPS])
1343 AC_SUBST([OSMESA_MESA_DEPS])
1344 AC_SUBST([OSMESA_PC_REQ])
1345 AC_SUBST([OSMESA_PC_LIB_PRIV])
1348 dnl gbm configuration
1350 if test "x$enable_gbm" = xauto; then
1351 case "$with_egl_platforms" in
1358 if test "x$enable_gbm" = xyes; then
1359 SRC_DIRS="$SRC_DIRS gbm"
1362 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1363 AC_MSG_ERROR([gbm needs udev]))
1364 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1366 if test "x$enable_dri" = xyes; then
1367 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1370 AC_SUBST([GBM_LIB_DEPS])
1371 AC_SUBST([GBM_BACKEND_DIRS])
1372 GBM_PC_REQ_PRIV="libudev"
1373 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1375 AC_SUBST([GBM_PC_REQ_PRIV])
1376 AC_SUBST([GBM_PC_LIB_PRIV])
1377 AC_SUBST([GBM_PC_CFLAGS])
1380 dnl EGL configuration
1384 if test "x$enable_egl" = xyes; then
1385 SRC_DIRS="$SRC_DIRS egl"
1386 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1389 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1391 if test "$enable_static" != yes; then
1392 # build egl_glx when libGL is built
1393 if test "x$enable_glx" = xyes; then
1394 EGL_DRIVERS_DIRS="glx"
1397 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1398 [have_libudev=yes],[have_libudev=no])
1399 if test "$have_libudev" = yes; then
1400 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1402 if test "x$enable_dri" = xyes; then
1403 # build egl_dri2 when xcb-dri2 is available
1404 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1405 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1407 if test "$have_xcb_dri2" = yes; then
1408 EGL_DRIVER_DRI2=dri2
1409 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1410 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1411 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1412 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1416 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1419 AC_SUBST([EGL_LIB_DEPS])
1420 AC_SUBST([EGL_DRIVERS_DIRS])
1423 dnl EGL Gallium configuration
1425 if test "x$enable_gallium_egl" = xyes; then
1426 if test "x$with_gallium_drivers" = x; then
1427 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1429 if test "x$enable_egl" = xno; then
1430 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1432 if test "x$have_libdrm" != xyes; then
1433 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1436 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1437 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1442 dnl gbm Gallium configuration
1444 if test "x$enable_gallium_gbm" = xauto; then
1445 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1447 enable_gallium_gbm=yes ;;
1449 enable_gallium_gbm=no ;;
1452 if test "x$enable_gallium_gbm" = xyes; then
1453 if test "x$with_gallium_drivers" = x; then
1454 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1456 if test "x$enable_gbm" = xno; then
1457 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1459 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1460 if test "x$enable_dri" = xno; then
1461 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1464 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1465 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1470 dnl X.Org DDX configuration
1472 if test "x$enable_xorg" = xyes; then
1473 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1474 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1475 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1476 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1477 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1478 HAVE_XEXTPROTO_71="no")
1479 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1484 dnl XA configuration
1486 if test "x$enable_xa" = xyes; then
1489 AC_CHECK_PROG(NM, nm, "nm")
1490 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1491 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1495 if test "x$enable_xa" = xyes; then
1496 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1504 dnl OpenVG configuration
1508 if test "x$enable_openvg" = xyes; then
1509 if test "x$enable_egl" = xno; then
1510 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1512 if test "x$with_gallium_drivers" = x; then
1513 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1515 if test "x$enable_gallium_egl" = xno; then
1516 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1519 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1520 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1521 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1522 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1527 dnl D3D1X configuration
1530 if test "x$enable_d3d1x" = xyes; then
1531 if test "x$with_gallium_drivers" = x; then
1532 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1535 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1540 dnl Gallium G3DVL configuration
1542 AC_ARG_ENABLE([gallium-g3dvl],
1543 [AS_HELP_STRING([--enable-gallium-g3dvl],
1544 [build gallium g3dvl @<:@default=disabled@:>@])],
1545 [enable_gallium_g3dvl="$enableval"],
1546 [enable_gallium_g3dvl=no])
1547 if test "x$enable_gallium_g3dvl" = xyes; then
1548 if test "x$with_gallium_drivers" = x; then
1549 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1552 if test "x$enable_xvmc" = xauto; then
1553 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1556 if test "x$enable_vdpau" = xauto; then
1557 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1560 if test "x$enable_va" = xauto; then
1561 #don't enable vaapi state tracker even if package exists
1562 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1567 if test "x$enable_xvmc" = xyes; then
1568 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1569 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1573 if test "x$enable_vdpau" = xyes; then
1574 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1575 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1579 if test "x$enable_va" = xyes; then
1580 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1581 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1582 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1587 dnl GLU configuration
1589 AC_ARG_ENABLE([glu],
1590 [AS_HELP_STRING([--disable-glu],
1591 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1592 [enable_glu="$enableval"],
1595 if test "x$enable_glu" = xyes; then
1596 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1597 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1602 if test "x$enable_glu" = xyes; then
1603 SRC_DIRS="$SRC_DIRS glu"
1605 if test "x$enable_glx" = xno; then
1606 # Link libGLU to libOSMesa instead of libGL
1609 if test "$enable_static" = no; then
1610 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1615 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1617 GLU_PC_LIB_PRIV="-lm"
1618 if test "$enable_static" = no; then
1620 GLU_MESA_DEPS='-l$(GL_LIB)'
1627 if test "$enable_static" = no; then
1628 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1630 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1631 AC_SUBST([GLU_LIB_DEPS])
1632 AC_SUBST([GLU_MESA_DEPS])
1633 AC_SUBST([GLU_PC_REQ])
1634 AC_SUBST([GLU_PC_REQ_PRIV])
1635 AC_SUBST([GLU_PC_LIB_PRIV])
1636 AC_SUBST([GLU_PC_CFLAGS])
1638 AC_SUBST([PROGRAM_DIRS])
1641 dnl Gallium configuration
1643 if test "x$with_gallium_drivers" != x; then
1644 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1647 AC_SUBST([LLVM_CFLAGS])
1648 AC_SUBST([LLVM_LIBS])
1649 AC_SUBST([LLVM_LDFLAGS])
1650 AC_SUBST([LLVM_VERSION])
1652 case "x$enable_opengl$enable_gles1$enable_gles2" in
1654 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1658 AC_SUBST([VG_LIB_DEPS])
1659 AC_SUBST([EGL_CLIENT_APIS])
1661 AC_ARG_WITH([egl-platforms],
1662 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1663 [comma delimited native platforms libEGL supports, e.g.
1664 "x11,drm" @<:@default=auto@:>@])],
1665 [with_egl_platforms="$withval"],
1666 [with_egl_platforms=yes])
1669 WAYLAND_EGL_LIB_DEPS=""
1671 case "$with_egl_platforms" in
1673 if test "x$enable_egl" = xyes; then
1678 if test "x$enable_egl" != xyes; then
1679 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1681 # verify the requested driver directories exist
1682 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1683 for plat in $egl_platforms; do
1684 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1685 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1686 if test "$plat" = "fbdev"; then
1687 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1689 if test "$plat" = "null"; then
1690 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1692 if test "$plat" = "wayland"; then
1693 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1694 [AC_MSG_ERROR([cannot find libwayland-client])])
1695 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1696 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1698 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1699 AC_MSG_ERROR([EGL platform drm needs gbm])
1701 case "$plat$have_libudev" in
1703 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1706 EGL_PLATFORMS="$egl_platforms"
1709 AC_SUBST([EGL_PLATFORMS])
1711 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1712 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1713 WAYLAND_EGL_PC_LIB_PRIV=
1714 WAYLAND_EGL_PC_CFLAGS=
1716 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1717 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1718 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1721 AC_ARG_WITH([egl-driver-dir],
1722 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1723 [directory for EGL drivers [[default=${libdir}/egl]]])],
1724 [EGL_DRIVER_INSTALL_DIR="$withval"],
1725 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1726 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1728 AC_ARG_WITH([xorg-driver-dir],
1729 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1730 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1731 [XORG_DRIVER_INSTALL_DIR="$withval"],
1732 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1733 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1735 AC_ARG_WITH([max-width],
1736 [AS_HELP_STRING([--with-max-width=N],
1737 [Maximum framebuffer width (4096)])],
1738 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1739 AS_IF([test "${withval}" -gt "4096"],
1740 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1742 AC_ARG_WITH([max-height],
1743 [AS_HELP_STRING([--with-max-height=N],
1744 [Maximum framebuffer height (4096)])],
1745 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1746 AS_IF([test "${withval}" -gt "4096"],
1747 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1753 AC_ARG_ENABLE([gallium-llvm],
1754 [AS_HELP_STRING([--enable-gallium-llvm],
1755 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1756 [enable_gallium_llvm="$enableval"],
1757 [enable_gallium_llvm=auto])
1758 if test "x$with_gallium_drivers" = x; then
1759 enable_gallium_llvm=no
1761 if test "x$enable_gallium_llvm" = xauto; then
1763 i*86|x86_64) enable_gallium_llvm=yes;;
1766 if test "x$enable_gallium_llvm" = xyes; then
1767 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1769 if test "x$LLVM_CONFIG" != xno; then
1770 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1771 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1772 LLVM_LIBS="`$LLVM_CONFIG --libs`"
1774 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1775 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1784 dnl Directory for VDPAU libs
1785 AC_ARG_WITH([vdpau-libdir],
1786 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1787 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1788 [VDPAU_LIB_INSTALL_DIR="$withval"],
1789 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1790 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1792 dnl Directory for VA libs
1793 AC_ARG_WITH([va-libdir],
1794 [AS_HELP_STRING([--with-va-libdir=DIR],
1795 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1796 [VA_LIB_INSTALL_DIR="$withval"],
1797 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1798 AC_SUBST([VA_LIB_INSTALL_DIR])
1801 dnl Gallium helper functions
1803 gallium_check_st() {
1804 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1805 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1806 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1807 if test "x$have_libdrm" != xyes; then
1808 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1810 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1812 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1813 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1815 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1816 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1818 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1819 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1821 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1822 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1823 NEED_G3DVL_DRI="yes"
1825 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1826 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1827 NEED_G3DVL_DRI="yes"
1829 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1830 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1831 NEED_G3DVL_DRI="yes"
1835 gallium_require_llvm() {
1836 if test "x$MESA_LLVM" = x0; then
1838 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1844 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1845 if test "x$with_gallium_drivers" != x; then
1846 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1847 for driver in $gallium_drivers; do
1850 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1851 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1854 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1855 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1856 if test "x$MESA_LLVM" = x1; then
1857 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1859 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1860 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1863 gallium_require_llvm "Gallium R300"
1864 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1865 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1868 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1869 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1872 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1873 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1874 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1877 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1878 if test "x$MESA_LLVM" = x1; then
1879 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1882 if test "x$HAVE_ST_DRI" = xyes; then
1883 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1885 if test "x$HAVE_ST_VDPAU" = xyes; then
1886 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1888 if test "x$HAVE_ST_XVMC" = xyes; then
1889 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1891 if test "x$HAVE_ST_VA" = xyes; then
1892 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1894 if test "x$HAVE_ST_VDPAU" = xyes ||
1895 test "x$HAVE_ST_XVMC" = xyes ||
1896 test "x$HAVE_ST_VA" = xyes; then
1897 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1898 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1903 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1909 if test "x$NEED_G3DVL_DRI" = xyes; then
1910 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1913 dnl prepend CORE_DIRS to SRC_DIRS
1914 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1916 dnl Restore LDFLAGS and CPPFLAGS
1917 LDFLAGS="$_SAVE_LDFLAGS"
1918 CPPFLAGS="$_SAVE_CPPFLAGS"
1920 dnl Add user CFLAGS and CXXFLAGS
1921 CFLAGS="$CFLAGS $USER_CFLAGS"
1922 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1924 dnl Substitute the config
1925 AC_CONFIG_FILES([configs/autoconf
1926 src/mesa/drivers/dri/i915/Makefile
1927 src/mesa/drivers/dri/i965/Makefile
1928 src/mesa/drivers/dri/r200/Makefile
1929 src/mesa/drivers/dri/radeon/Makefile
1931 tests/glx/Makefile])
1933 dnl Replace the configs/current symlink
1934 AC_CONFIG_COMMANDS([configs],[
1935 if test -f configs/current || test -L configs/current; then
1936 rm -f configs/current
1938 ln -s autoconf configs/current
1941 dnl Sort the dirs alphabetically
1942 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1943 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1944 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1945 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1950 dnl Output some configuration info for the user
1953 echo " prefix: $prefix"
1954 echo " exec_prefix: $exec_prefix"
1955 echo " libdir: $libdir"
1956 echo " includedir: $includedir"
1960 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1961 echo " OpenVG: $enable_openvg"
1965 if test "x$enable_osmesa" != xno; then
1966 echo " OSMesa: lib$OSMESA_LIB"
1971 if test "x$enable_dri" != xno; then
1972 # cleanup the drivers var
1973 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1974 if test "x$DRI_DIRS" = x; then
1975 echo " DRI drivers: no"
1977 echo " DRI drivers: $dri_dirs"
1979 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1982 case "x$enable_glx$enable_xlib_glx" in
1984 echo " GLX: Xlib-based"
1987 echo " GLX: DRI-based"
1990 echo " GLX: $enable_glx"
1995 echo " GLU: $enable_glu"
1999 echo " EGL: $enable_egl"
2000 if test "$enable_egl" = yes; then
2001 echo " EGL platforms: $EGL_PLATFORMS"
2004 for d in $EGL_DRIVERS_DIRS; do
2005 egl_drivers="$egl_drivers builtin:egl_$d"
2008 if test "x$HAVE_ST_EGL" = xyes; then
2009 echo " EGL drivers: ${egl_drivers} egl_gallium"
2010 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2012 echo " EGL drivers: $egl_drivers"
2017 if test "x$MESA_LLVM" = x1; then
2019 echo " llvm-config: $LLVM_CONFIG"
2020 echo " llvm-version: $LLVM_VERSION"
2026 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2027 echo " Gallium: yes"
2028 echo " Gallium dirs: $GALLIUM_DIRS"
2029 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2030 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2031 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2032 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2040 echo " Shared libs: $enable_shared"
2041 echo " Static libs: $enable_static"
2043 dnl Compiler options
2044 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2045 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2046 $SED 's/^ *//;s/ */ /;s/ *$//'`
2047 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2048 $SED 's/^ *//;s/ */ /;s/ *$//'`
2049 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2051 echo " CFLAGS: $cflags"
2052 echo " CXXFLAGS: $cxxflags"
2053 echo " Macros: $defines"
2055 echo " PYTHON2: $PYTHON2"
2058 echo " Run '${MAKE-make}' to build Mesa"