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])
714 AC_ARG_ENABLE([shared-glapi],
715 [AS_HELP_STRING([--enable-shared-glapi],
716 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
717 [enable_shared_glapi="$enableval"],
718 [enable_shared_glapi=no])
721 if test "x$enable_shared_glapi" = xyes; then
724 AC_SUBST([SHARED_GLAPI])
727 dnl Driver configuration. Options are xlib, dri and osmesa right now.
728 dnl More later: fbdev, ...
730 default_driver="xlib"
735 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
738 *freebsd* | dragonfly* | *netbsd*)
740 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
745 if test "x$enable_opengl" = xno; then
749 AC_ARG_WITH([driver],
750 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
751 [mesa_driver="$withval"],
753 dnl Check for valid option
754 case "x$mesa_driver" in
755 xxlib|xdri|xosmesa|xno)
756 if test "x$enable_dri" != xauto -o \
757 "x$enable_glx" != xauto -o \
758 "x$enable_osmesa" != xauto -o \
759 "x$enable_xlib_glx" != xauto; then
760 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
764 mesa_driver="$default_driver"
767 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
771 # map $mesa_driver to APIs
772 if test "x$enable_dri" = xauto; then
773 case "x$mesa_driver" in
774 xdri) enable_dri=yes ;;
779 if test "x$enable_glx" = xauto; then
780 case "x$mesa_driver" in
781 xdri|xxlib) enable_glx=yes ;;
786 if test "x$enable_osmesa" = xauto; then
787 case "x$mesa_driver" in
788 xxlib|xosmesa) enable_osmesa=yes ;;
789 *) enable_osmesa=no ;;
793 if test "x$enable_xlib_glx" = xauto; then
794 case "x$mesa_driver" in
795 xxlib) enable_xlib_glx=yes ;;
796 *) enable_xlib_glx=no ;;
800 if test "x$enable_glx" = xno; then
805 dnl Driver specific build directories
808 dnl this variable will be prepended to SRC_DIRS and is not exported
813 GALLIUM_DIRS="auxiliary drivers state_trackers"
814 GALLIUM_TARGET_DIRS=""
815 GALLIUM_WINSYS_DIRS="sw"
816 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
817 GALLIUM_STATE_TRACKERS_DIRS=""
819 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
820 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
822 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
826 # build glapi if OpenGL is enabled
827 if test "x$enable_opengl" = xyes; then
828 CORE_DIRS="$CORE_DIRS mapi/glapi"
831 # build es1api if OpenGL ES 1.x is enabled
832 if test "x$enable_gles1" = xyes; then
833 CORE_DIRS="$CORE_DIRS mapi/es1api"
836 # build es2api if OpenGL ES 2.x is enabled
837 if test "x$enable_gles2" = xyes; then
838 CORE_DIRS="$CORE_DIRS mapi/es2api"
841 # build glsl and mesa if OpenGL or OpenGL ES is enabled
842 case "x$enable_opengl$enable_gles1$enable_gles2" in
844 CORE_DIRS="$CORE_DIRS glsl mesa"
848 case "x$enable_glx$enable_xlib_glx" in
850 DRIVER_DIRS="$DRIVER_DIRS x11"
851 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
852 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
853 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
854 HAVE_WINSYS_XLIB="yes"
858 SRC_DIRS="$SRC_DIRS glx"
862 if test "x$enable_dri" = xyes; then
863 DRIVER_DIRS="$DRIVER_DIRS dri"
865 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
866 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
870 if test "x$enable_osmesa" = xyes; then
871 # the empty space matters for osmesa... (see src/mesa/Makefile)
872 if test -n "$DRIVER_DIRS"; then
873 DRIVER_DIRS="$DRIVER_DIRS osmesa"
881 AC_SUBST([DRIVER_DIRS])
882 AC_SUBST([GALLIUM_DIRS])
883 AC_SUBST([GALLIUM_TARGET_DIRS])
884 AC_SUBST([GALLIUM_WINSYS_DIRS])
885 AC_SUBST([GALLIUM_DRIVERS_DIRS])
886 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
887 AC_SUBST([MESA_LLVM])
890 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
891 [have_libdrm=yes], [have_libdrm=no])
893 if test "x$enable_dri" = xyes; then
894 # DRI must be shared, I think
895 if test "$enable_static" = yes; then
896 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
899 # not a hard requirement as swrast does not depend on it
900 if test "x$have_libdrm" = xyes; then
901 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
906 dnl Find out if X is available. The variable have_x is set if libX11 is
907 dnl found to mimic AC_PATH_XTRA.
909 if test -n "$PKG_CONFIG"; then
910 AC_MSG_CHECKING([pkg-config files for X11 are available])
911 PKG_CHECK_EXISTS([x11],[
917 AC_MSG_RESULT([$x11_pkgconfig])
921 dnl Use the autoconf macro if no pkg-config files
922 if test "$x11_pkgconfig" = yes; then
923 PKG_CHECK_MODULES([X11], [x11])
926 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
927 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
928 AC_SUBST([X11_CFLAGS])
932 dnl Try to tell the user that the --x-* options are only used when
933 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
934 m4_divert_once([HELP_BEGIN],
935 [These options are only used when the X libraries cannot be found by the
936 pkg-config utility.])
938 dnl We need X for xlib and dri, so bomb now if it's not found
939 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
940 AC_MSG_ERROR([X11 development libraries needed for GLX])
943 if test "x$enable_glx" = xyes; then
944 DEFINES="$DEFINES -DUSE_XCB"
947 dnl Direct rendering or just indirect rendering
950 dnl Disable by default on GNU/Hurd
951 driglx_direct_default="no"
954 dnl Disable by default on cygwin
955 driglx_direct_default="no"
958 driglx_direct_default="yes"
961 AC_ARG_ENABLE([driglx-direct],
962 [AS_HELP_STRING([--disable-driglx-direct],
963 [enable direct rendering in GLX and EGL for DRI \
964 @<:@default=auto@:>@])],
965 [driglx_direct="$enableval"],
966 [driglx_direct="$driglx_direct_default"])
969 dnl libGL configuration per driver
971 case "x$enable_glx$enable_xlib_glx" in
974 if test "$x11_pkgconfig" = yes; then
975 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
976 GL_PC_REQ_PRIV="x11 xext"
977 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
978 GL_LIB_DEPS="$XLIBGL_LIBS"
980 # should check these...
981 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
982 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
983 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
984 GL_PC_CFLAGS="$X11_INCLUDES"
986 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
987 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
991 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
992 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
993 if test x"$driglx_direct" = xyes; then
994 if test "x$have_libdrm" != xyes; then
995 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
997 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
998 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
1001 # find the DRI deps for libGL
1002 if test "$x11_pkgconfig" = yes; then
1003 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
1005 # add xf86vidmode if available
1006 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
1007 if test "$HAVE_XF86VIDMODE" = yes ; then
1008 dri_modules="$dri_modules xxf86vm"
1011 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
1012 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1013 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
1014 GL_LIB_DEPS="$DRIGL_LIBS"
1016 # should check these...
1017 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
1018 if test "x$HAVE_XF86VIDMODE" == xyes; then
1019 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
1021 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1023 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1024 GL_PC_CFLAGS="$X11_INCLUDES"
1026 # XCB can only be used from pkg-config
1027 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1028 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1029 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1030 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1033 # Check to see if the xcb-glx library is new enough to support
1034 # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
1036 save_CPPFLAGS="$CPPFLAGS"
1037 save_LDFLAGS="$LDFLAGS"
1038 CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
1039 LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
1040 AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
1041 [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
1042 [HAVE_XCB_GLX_CREATE_CONTEXT=no])
1043 CPPFLAGS="$save_CPPFLAGS"
1044 LDFLAGS="$save_LDFLAGS"
1046 if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
1047 X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
1050 # need DRM libs, -lpthread, etc.
1051 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1052 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1056 # This is outside the case (above) so that it is invoked even for non-GLX
1058 AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
1059 test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
1061 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1062 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1063 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1064 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1066 AC_SUBST([GL_LIB_DEPS])
1067 AC_SUBST([GL_PC_REQ_PRIV])
1068 AC_SUBST([GL_PC_LIB_PRIV])
1069 AC_SUBST([GL_PC_CFLAGS])
1070 AC_SUBST([DRI_PC_REQ_PRIV])
1071 AC_SUBST([GLESv1_CM_LIB_DEPS])
1072 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1073 AC_SUBST([GLESv2_LIB_DEPS])
1074 AC_SUBST([GLESv2_PC_LIB_PRIV])
1076 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1077 AC_SUBST([GLAPI_LIB_DEPS])
1080 dnl Setup default DRI CFLAGS
1081 DRI_CFLAGS='$(CFLAGS)'
1082 DRI_CXXFLAGS='$(CXXFLAGS)'
1083 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1084 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1086 AC_ARG_ENABLE([shared-dricore],
1087 [AS_HELP_STRING([--enable-shared-dricore],
1088 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1089 [enable_dricore="$enableval"],
1090 [enable_dricore=no])
1091 if test "x$enable_dri" = xyes ; then
1092 if test "$enable_dricore" = yes ; then
1093 if test "$GCC$GXX" != yesyes ; then
1094 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1097 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1098 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1099 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1100 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1101 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1102 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1103 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1107 AC_SUBST([DRICORE_LIBS])
1108 AC_SUBST([DRICORE_GLSL_LIBS])
1109 AC_SUBST([DRICORE_LIB_DEPS])
1110 AC_SUBST([DRI_CXXFLAGS])
1111 AC_SUBST([DRI_CFLAGS])
1112 AC_SUBST([MESA_MODULES])
1114 AC_SUBST([HAVE_XF86VIDMODE])
1119 case "x$enable_glx$enable_xlib_glx" in
1121 DEFINES="$DEFINES -DUSE_XSHM"
1124 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1125 if test "x$driglx_direct" = xyes; then
1126 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1135 AC_ARG_ENABLE([glx-tls],
1136 [AS_HELP_STRING([--enable-glx-tls],
1137 [enable TLS support in GLX @<:@default=disabled@:>@])],
1138 [GLX_USE_TLS="$enableval"],
1140 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1142 AS_IF([test "x$GLX_USE_TLS" = xyes],
1143 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1148 dnl Directory for DRI drivers
1149 AC_ARG_WITH([dri-driverdir],
1150 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1151 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1152 [DRI_DRIVER_INSTALL_DIR="$withval"],
1153 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1154 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1155 dnl Extra search path for DRI drivers
1156 AC_ARG_WITH([dri-searchpath],
1157 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1158 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1159 [DRI_DRIVER_SEARCH_DIR="$withval"],
1160 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1161 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1162 dnl Which drivers to build - default is chosen by platform
1163 AC_ARG_WITH([dri-drivers],
1164 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1165 [comma delimited DRI drivers list, e.g.
1166 "swrast,i965,radeon" @<:@default=auto@:>@])],
1167 [with_dri_drivers="$withval"],
1168 [with_dri_drivers=yes])
1169 if test "x$with_dri_drivers" = x; then
1173 dnl If $with_dri_drivers is yes, directories will be added through
1176 case "$with_dri_drivers" in
1179 # classic DRI drivers require FEATURE_GL to build
1180 if test "x$enable_opengl" = xyes; then
1185 # verify the requested driver directories exist
1186 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1187 for driver in $dri_drivers; do
1188 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1189 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1191 DRI_DIRS="$dri_drivers"
1192 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1193 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1198 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1199 if test "x$enable_dri" = xyes; then
1200 # Platform specific settings and drivers to build
1203 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1204 DEFINES="$DEFINES -DHAVE_ALIAS"
1208 if test "x$DRI_DIRS" = "xyes"; then
1209 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1213 # Build only the drivers for cards that exist on PowerPC.
1214 if test "x$DRI_DIRS" = "xyes"; then
1215 DRI_DIRS="r200 radeon swrast"
1219 # Build only the drivers for cards that exist on sparc
1220 if test "x$DRI_DIRS" = "xyes"; then
1221 DRI_DIRS="r200 radeon swrast"
1226 freebsd* | dragonfly* | *netbsd*)
1227 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1228 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1230 if test "x$DRI_DIRS" = "xyes"; then
1231 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1235 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1236 DEFINES="$DEFINES -DHAVE_ALIAS"
1239 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1242 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1243 if test "x$DRI_DIRS" = "xyes"; then
1250 if test "x$DRI_DIRS" = "xyes"; then
1251 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1254 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1257 if test "x$enable_dri" = xyes; then
1260 AC_ARG_WITH([expat],
1261 [AS_HELP_STRING([--with-expat=DIR],
1262 [expat install directory])],[
1263 EXPAT_INCLUDES="-I$withval/include"
1264 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1265 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1266 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1268 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1269 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1270 [AC_MSG_ERROR([Expat required for DRI.])])
1273 # libdrm is required for all except swrast
1274 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1275 if test "x$have_libdrm" != xyes; then
1276 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1280 # put all the necessary libs together, including possibly libdricore
1281 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1283 AC_SUBST([DRI_DIRS])
1284 AC_SUBST([EXPAT_INCLUDES])
1285 AC_SUBST([DRI_LIB_DEPS])
1289 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1300 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1304 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1310 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1316 dnl OSMesa configuration
1319 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1320 AC_ARG_WITH([osmesa-bits],
1321 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1322 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1323 [osmesa_bits="$withval"],
1325 if test "x$osmesa_bits" != x8; then
1326 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1327 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1331 case "x$osmesa_bits" in
1333 OSMESA_LIB="${OSMESA_LIB}"
1336 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1337 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1340 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1344 if test "x$enable_osmesa" = xyes; then
1345 # only link libraries with osmesa if shared
1346 if test "$enable_static" = no; then
1347 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1352 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1354 AC_SUBST([OSMESA_LIB_DEPS])
1355 AC_SUBST([OSMESA_MESA_DEPS])
1356 AC_SUBST([OSMESA_PC_REQ])
1357 AC_SUBST([OSMESA_PC_LIB_PRIV])
1360 dnl gbm configuration
1362 if test "x$enable_gbm" = xauto; then
1363 case "$with_egl_platforms" in
1370 if test "x$enable_gbm" = xyes; then
1371 SRC_DIRS="$SRC_DIRS gbm"
1374 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1375 AC_MSG_ERROR([gbm needs udev]))
1376 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1378 if test "x$enable_dri" = xyes; then
1379 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1380 if test "$SHARED_GLAPI" -eq 0; then
1381 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1385 AC_SUBST([GBM_LIB_DEPS])
1386 AC_SUBST([GBM_BACKEND_DIRS])
1387 GBM_PC_REQ_PRIV="libudev"
1388 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1390 AC_SUBST([GBM_PC_REQ_PRIV])
1391 AC_SUBST([GBM_PC_LIB_PRIV])
1392 AC_SUBST([GBM_PC_CFLAGS])
1395 dnl EGL configuration
1399 if test "x$enable_egl" = xyes; then
1400 SRC_DIRS="$SRC_DIRS egl"
1401 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1404 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1406 if test "$enable_static" != yes; then
1407 # build egl_glx when libGL is built
1408 if test "x$enable_glx" = xyes; then
1409 EGL_DRIVERS_DIRS="glx"
1412 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1413 [have_libudev=yes],[have_libudev=no])
1414 if test "$have_libudev" = yes; then
1415 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1417 if test "x$enable_dri" = xyes; then
1418 # build egl_dri2 when xcb-dri2 is available
1419 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1420 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1422 if test "$have_xcb_dri2" = yes; then
1423 EGL_DRIVER_DRI2=dri2
1424 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1425 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1426 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1427 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1431 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1434 AC_SUBST([EGL_LIB_DEPS])
1435 AC_SUBST([EGL_DRIVERS_DIRS])
1438 dnl EGL Gallium configuration
1440 if test "x$enable_gallium_egl" = xyes; then
1441 if test "x$with_gallium_drivers" = x; then
1442 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1444 if test "x$enable_egl" = xno; then
1445 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1447 if test "x$have_libdrm" != xyes; then
1448 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1451 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1452 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1457 dnl gbm Gallium configuration
1459 if test "x$enable_gallium_gbm" = xauto; then
1460 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1462 enable_gallium_gbm=yes ;;
1464 enable_gallium_gbm=no ;;
1467 if test "x$enable_gallium_gbm" = xyes; then
1468 if test "x$with_gallium_drivers" = x; then
1469 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1471 if test "x$enable_gbm" = xno; then
1472 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1474 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1475 if test "x$enable_dri" = xno; then
1476 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1479 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1480 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1485 dnl X.Org DDX configuration
1487 if test "x$enable_xorg" = xyes; then
1488 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1489 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1490 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1491 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1492 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1493 HAVE_XEXTPROTO_71="no")
1494 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1499 dnl XA configuration
1501 if test "x$enable_xa" = xyes; then
1504 AC_CHECK_PROG(NM, nm, "nm")
1505 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1506 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1510 if test "x$enable_xa" = xyes; then
1511 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1519 dnl OpenVG configuration
1523 if test "x$enable_openvg" = xyes; then
1524 if test "x$enable_egl" = xno; then
1525 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1527 if test "x$with_gallium_drivers" = x; then
1528 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1530 if test "x$enable_gallium_egl" = xno; then
1531 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1534 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1535 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1536 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1537 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1542 dnl D3D1X configuration
1545 if test "x$enable_d3d1x" = xyes; then
1546 if test "x$with_gallium_drivers" = x; then
1547 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1550 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1555 dnl Gallium G3DVL configuration
1557 AC_ARG_ENABLE([gallium-g3dvl],
1558 [AS_HELP_STRING([--enable-gallium-g3dvl],
1559 [build gallium g3dvl @<:@default=disabled@:>@])],
1560 [enable_gallium_g3dvl="$enableval"],
1561 [enable_gallium_g3dvl=no])
1562 if test "x$enable_gallium_g3dvl" = xyes; then
1563 if test "x$with_gallium_drivers" = x; then
1564 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1567 if test "x$enable_xvmc" = xauto; then
1568 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1571 if test "x$enable_vdpau" = xauto; then
1572 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1575 if test "x$enable_va" = xauto; then
1576 #don't enable vaapi state tracker even if package exists
1577 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1582 if test "x$enable_xvmc" = xyes; then
1583 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1584 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1588 if test "x$enable_vdpau" = xyes; then
1589 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1590 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1594 if test "x$enable_va" = xyes; then
1595 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1596 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1597 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1602 dnl GLU configuration
1604 AC_ARG_ENABLE([glu],
1605 [AS_HELP_STRING([--disable-glu],
1606 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1607 [enable_glu="$enableval"],
1610 if test "x$enable_glu" = xyes; then
1611 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1612 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1617 if test "x$enable_glu" = xyes; then
1618 SRC_DIRS="$SRC_DIRS glu"
1620 if test "x$enable_glx" = xno; then
1621 # Link libGLU to libOSMesa instead of libGL
1624 if test "$enable_static" = no; then
1625 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1630 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1632 GLU_PC_LIB_PRIV="-lm"
1633 if test "$enable_static" = no; then
1635 GLU_MESA_DEPS='-l$(GL_LIB)'
1642 if test "$enable_static" = no; then
1643 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1645 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1646 AC_SUBST([GLU_LIB_DEPS])
1647 AC_SUBST([GLU_MESA_DEPS])
1648 AC_SUBST([GLU_PC_REQ])
1649 AC_SUBST([GLU_PC_REQ_PRIV])
1650 AC_SUBST([GLU_PC_LIB_PRIV])
1651 AC_SUBST([GLU_PC_CFLAGS])
1653 AC_SUBST([PROGRAM_DIRS])
1656 dnl Gallium configuration
1658 if test "x$with_gallium_drivers" != x; then
1659 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1662 AC_SUBST([LLVM_CFLAGS])
1663 AC_SUBST([LLVM_LIBS])
1664 AC_SUBST([LLVM_LDFLAGS])
1665 AC_SUBST([LLVM_VERSION])
1667 case "x$enable_opengl$enable_gles1$enable_gles2" in
1669 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1673 AC_SUBST([VG_LIB_DEPS])
1674 AC_SUBST([EGL_CLIENT_APIS])
1676 AC_ARG_WITH([egl-platforms],
1677 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1678 [comma delimited native platforms libEGL supports, e.g.
1679 "x11,drm" @<:@default=auto@:>@])],
1680 [with_egl_platforms="$withval"],
1681 [with_egl_platforms=yes])
1684 WAYLAND_EGL_LIB_DEPS=""
1686 case "$with_egl_platforms" in
1688 if test "x$enable_egl" = xyes; then
1693 if test "x$enable_egl" != xyes; then
1694 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1696 # verify the requested driver directories exist
1697 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1698 for plat in $egl_platforms; do
1699 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1700 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1701 if test "$plat" = "fbdev"; then
1702 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1704 if test "$plat" = "null"; then
1705 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1707 if test "$plat" = "wayland"; then
1708 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1709 [AC_MSG_ERROR([cannot find libwayland-client])])
1710 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1711 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1713 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1714 AC_MSG_ERROR([EGL platform drm needs gbm])
1716 case "$plat$have_libudev" in
1718 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1721 EGL_PLATFORMS="$egl_platforms"
1724 AC_SUBST([EGL_PLATFORMS])
1726 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1727 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1728 WAYLAND_EGL_PC_LIB_PRIV=
1729 WAYLAND_EGL_PC_CFLAGS=
1731 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1732 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1733 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1736 AC_ARG_WITH([egl-driver-dir],
1737 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1738 [directory for EGL drivers [[default=${libdir}/egl]]])],
1739 [EGL_DRIVER_INSTALL_DIR="$withval"],
1740 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1741 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1743 AC_ARG_WITH([xorg-driver-dir],
1744 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1745 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1746 [XORG_DRIVER_INSTALL_DIR="$withval"],
1747 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1748 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1750 AC_ARG_WITH([max-width],
1751 [AS_HELP_STRING([--with-max-width=N],
1752 [Maximum framebuffer width (4096)])],
1753 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1754 AS_IF([test "${withval}" -gt "4096"],
1755 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1757 AC_ARG_WITH([max-height],
1758 [AS_HELP_STRING([--with-max-height=N],
1759 [Maximum framebuffer height (4096)])],
1760 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1761 AS_IF([test "${withval}" -gt "4096"],
1762 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1768 AC_ARG_ENABLE([gallium-llvm],
1769 [AS_HELP_STRING([--enable-gallium-llvm],
1770 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1771 [enable_gallium_llvm="$enableval"],
1772 [enable_gallium_llvm=auto])
1773 if test "x$with_gallium_drivers" = x; then
1774 enable_gallium_llvm=no
1776 if test "x$enable_gallium_llvm" = xauto; then
1778 i*86|x86_64) enable_gallium_llvm=yes;;
1781 if test "x$enable_gallium_llvm" = xyes; then
1782 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1784 if test "x$LLVM_CONFIG" != xno; then
1785 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1786 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1787 LLVM_LIBS="`$LLVM_CONFIG --libs`"
1789 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1790 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1799 dnl Directory for VDPAU libs
1800 AC_ARG_WITH([vdpau-libdir],
1801 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1802 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1803 [VDPAU_LIB_INSTALL_DIR="$withval"],
1804 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1805 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1807 dnl Directory for VA libs
1808 AC_ARG_WITH([va-libdir],
1809 [AS_HELP_STRING([--with-va-libdir=DIR],
1810 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1811 [VA_LIB_INSTALL_DIR="$withval"],
1812 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1813 AC_SUBST([VA_LIB_INSTALL_DIR])
1816 dnl Gallium helper functions
1818 gallium_check_st() {
1819 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1820 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1821 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1822 if test "x$have_libdrm" != xyes; then
1823 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1825 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1827 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1828 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1830 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1831 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1833 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1834 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1836 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1837 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1838 NEED_G3DVL_DRI="yes"
1840 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1841 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1842 NEED_G3DVL_DRI="yes"
1844 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1845 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1846 NEED_G3DVL_DRI="yes"
1850 gallium_require_llvm() {
1851 if test "x$MESA_LLVM" = x0; then
1853 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1859 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1860 if test "x$with_gallium_drivers" != x; then
1861 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1862 for driver in $gallium_drivers; do
1865 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1866 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1869 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1870 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1871 if test "x$MESA_LLVM" = x1; then
1872 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1874 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1875 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1878 gallium_require_llvm "Gallium R300"
1879 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1880 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1883 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1884 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1887 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1888 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1889 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1892 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1893 if test "x$MESA_LLVM" = x1; then
1894 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1897 if test "x$HAVE_ST_DRI" = xyes; then
1898 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1900 if test "x$HAVE_ST_VDPAU" = xyes; then
1901 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1903 if test "x$HAVE_ST_XVMC" = xyes; then
1904 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1906 if test "x$HAVE_ST_VA" = xyes; then
1907 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1909 if test "x$HAVE_ST_VDPAU" = xyes ||
1910 test "x$HAVE_ST_XVMC" = xyes ||
1911 test "x$HAVE_ST_VA" = xyes; then
1912 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1913 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1918 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1924 if test "x$NEED_G3DVL_DRI" = xyes; then
1925 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1928 dnl prepend CORE_DIRS to SRC_DIRS
1929 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1931 dnl Restore LDFLAGS and CPPFLAGS
1932 LDFLAGS="$_SAVE_LDFLAGS"
1933 CPPFLAGS="$_SAVE_CPPFLAGS"
1935 dnl Add user CFLAGS and CXXFLAGS
1936 CFLAGS="$CFLAGS $USER_CFLAGS"
1937 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1939 dnl Substitute the config
1940 AC_CONFIG_FILES([configs/autoconf
1941 src/mesa/drivers/dri/i965/Makefile
1943 tests/glx/Makefile])
1945 dnl Replace the configs/current symlink
1946 AC_CONFIG_COMMANDS([configs],[
1947 if test -f configs/current || test -L configs/current; then
1948 rm -f configs/current
1950 ln -s autoconf configs/current
1953 dnl Sort the dirs alphabetically
1954 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1955 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1956 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1957 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1962 dnl Output some configuration info for the user
1965 echo " prefix: $prefix"
1966 echo " exec_prefix: $exec_prefix"
1967 echo " libdir: $libdir"
1968 echo " includedir: $includedir"
1972 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1973 echo " OpenVG: $enable_openvg"
1977 if test "x$enable_osmesa" != xno; then
1978 echo " OSMesa: lib$OSMESA_LIB"
1983 if test "x$enable_dri" != xno; then
1984 # cleanup the drivers var
1985 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1986 if test "x$DRI_DIRS" = x; then
1987 echo " DRI drivers: no"
1989 echo " DRI drivers: $dri_dirs"
1991 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1992 echo " Shared dricore: $enable_dricore"
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"