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])
51 AC_PATH_PROG([MKDEP], [makedepend])
53 if test "x$MKDEP" = "x"; then
54 AC_MSG_ERROR([makedepend is required to build Mesa])
57 AC_PATH_PROG([FLEX], [flex])
58 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
60 AC_PATH_PROG([BISON], [bison])
61 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
63 dnl Our fallback install-sh is a symlink to minstall. Use the existing
64 dnl configuration in that case.
66 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
68 dnl We need a POSIX shell for parts of the build. Assume we have one
72 # Solaris /bin/sh is too old/non-POSIX compliant
73 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
78 AC_PATH_PROG([GTESTCONFIG], [gtest-config])
79 if test "x$GTESTCONFIG" != "x"; then
80 GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
81 GTEST_LIBS=`gtest-config --ldflags --libs`
82 AC_SUBST([GTEST_CFLAGS])
83 AC_SUBST([GTEST_LIBS])
88 AM_CONDITIONAL(HAVE_GTEST, test x$HAVE_GTEST = xyes)
90 dnl clang is mostly GCC-compatible, but its version is much lower,
91 dnl so we have to check for it.
92 AC_MSG_CHECKING([if compiling with clang])
95 [AC_LANG_PROGRAM([], [[
100 [CLANG=yes], [CLANG=no])
102 AC_MSG_RESULT([$CLANG])
104 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
105 dnl versions are explictly not supported.
106 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
107 AC_MSG_CHECKING([whether gcc version is sufficient])
111 GCC_VERSION=`$CC -dumpversion`
112 if test $? -eq 0; then
113 major=`echo $GCC_VERSION | cut -d. -f1`
114 minor=`echo $GCC_VERSION | cut -d. -f2`
117 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
119 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
126 MKDEP_OPTIONS=-fdepend
127 dnl Ask gcc where it's keeping its secret headers
128 if test "x$GCC" = xyes; then
129 for dir in include include-fixed; do
130 GCC_INCLUDES=`$CC -print-file-name=$dir`
131 if test "x$GCC_INCLUDES" != x && \
132 test "$GCC_INCLUDES" != "$dir" && \
133 test -d "$GCC_INCLUDES"; then
134 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
138 AC_SUBST([MKDEP_OPTIONS])
140 dnl Make sure the pkg-config macros are defined
141 m4_ifndef([PKG_PROG_PKG_CONFIG],
142 [m4_fatal([Could not locate the pkg-config autoconf macros.
143 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
144 are in a different location, try setting the environment variable
145 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
146 PKG_PROG_PKG_CONFIG()
148 dnl LIB_DIR - library basename
149 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
152 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
153 _SAVE_LDFLAGS="$LDFLAGS"
154 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
155 AC_SUBST([EXTRA_LIB_PATH])
157 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
158 _SAVE_CPPFLAGS="$CPPFLAGS"
159 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
160 AC_SUBST([X11_INCLUDES])
167 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
170 DEFINES="$DEFINES -DPTHREADS -DSVR4"
173 DEFINES="$DEFINES -DPTHREADS"
177 dnl Add flags for gcc and g++
178 if test "x$GCC" = xyes; then
179 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
181 # Enable -fvisibility=hidden if using a gcc that supports it
182 save_CFLAGS="$CFLAGS"
183 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
184 VISIBILITY_CFLAGS="-fvisibility=hidden"
185 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
186 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
187 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
189 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
192 # Work around aliasing bugs - developers should comment this out
193 CFLAGS="$CFLAGS -fno-strict-aliasing"
195 # gcc's builtin memcmp is slower than glibc's
196 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
197 CFLAGS="$CFLAGS -fno-builtin-memcmp"
199 if test "x$GXX" = xyes; then
200 CXXFLAGS="$CXXFLAGS -Wall"
202 # Enable -fvisibility=hidden if using a gcc that supports it
203 save_CXXFLAGS="$CXXFLAGS"
204 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
205 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
206 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
208 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
209 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
212 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
213 CXXFLAGS=$save_CXXFLAGS
215 # Work around aliasing bugs - developers should comment this out
216 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
218 # gcc's builtin memcmp is slower than glibc's
219 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
220 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
223 dnl even if the compiler appears to support it, using visibility attributes isn't
224 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
228 VISIBILITY_CXXFLAGS=""
232 AC_SUBST([VISIBILITY_CFLAGS])
233 AC_SUBST([VISIBILITY_CXXFLAGS])
235 dnl These should be unnecessary, but let the user set them if they want
236 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
237 Default is to use CFLAGS.])
238 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
239 compiler. Default is to use CFLAGS.])
240 AC_SUBST([OPT_FLAGS])
241 AC_SUBST([ARCH_FLAGS])
244 dnl Hacks to enable 32 or 64 bit build
246 AC_ARG_ENABLE([32-bit],
247 [AS_HELP_STRING([--enable-32-bit],
248 [build 32-bit libraries @<:@default=auto@:>@])],
249 [enable_32bit="$enableval"],
252 if test "x$enable_32bit" = xyes; then
253 if test "x$GCC" = xyes; then
254 CFLAGS="$CFLAGS -m32"
255 ARCH_FLAGS="$ARCH_FLAGS -m32"
257 if test "x$GXX" = xyes; then
258 CXXFLAGS="$CXXFLAGS -m32"
261 AC_ARG_ENABLE([64-bit],
262 [AS_HELP_STRING([--enable-64-bit],
263 [build 64-bit libraries @<:@default=auto@:>@])],
264 [enable_64bit="$enableval"],
267 if test "x$enable_64bit" = xyes; then
268 if test "x$GCC" = xyes; then
269 CFLAGS="$CFLAGS -m64"
271 if test "x$GXX" = xyes; then
272 CXXFLAGS="$CXXFLAGS -m64"
277 dnl shared/static libraries, mimic libtool options
279 AC_ARG_ENABLE([static],
280 [AS_HELP_STRING([--enable-static],
281 [build static libraries @<:@default=disabled@:>@])],
282 [enable_static="$enableval"],
285 case "x$enable_static" in
287 x ) enable_static=no ;;
289 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
292 AC_ARG_ENABLE([shared],
293 [AS_HELP_STRING([--disable-shared],
294 [build shared libraries @<:@default=enabled@:>@])],
295 [enable_shared="$enableval"],
298 case "x$enable_shared" in
300 x ) enable_shared=yes ;;
302 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
306 dnl Can't have static and shared libraries, default to static if user
307 dnl explicitly requested. If both disabled, set to static since shared
308 dnl was explicitly requirested.
309 case "x$enable_static$enable_shared" in
311 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
315 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
323 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
324 if test "$enable_static" = yes; then
325 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
327 AC_SUBST([MKLIB_OPTIONS])
330 dnl other compiler options
332 AC_ARG_ENABLE([debug],
333 [AS_HELP_STRING([--enable-debug],
334 [use debug compiler flags and macros @<:@default=disabled@:>@])],
335 [enable_debug="$enableval"],
338 if test "x$enable_debug" = xyes; then
339 DEFINES="$DEFINES -DDEBUG"
340 if test "x$GCC" = xyes; then
343 if test "x$GXX" = xyes; then
344 CXXFLAGS="$CXXFLAGS -g"
351 LIB_PREFIX_GLOB='lib'
352 LIB_VERSION_SEPARATOR='.'
353 if test "$enable_static" = yes; then
358 LIB_EXTENSION='dylib' ;;
360 dnl prefix can be 'cyg' or 'lib'
361 LIB_PREFIX_GLOB='???'
362 LIB_VERSION_SEPARATOR='-'
363 LIB_EXTENSION='dll' ;;
367 LIB_EXTENSION='so' ;;
372 dnl Mangled Mesa support
374 AC_ARG_ENABLE([mangling],
375 [AS_HELP_STRING([--enable-mangling],
376 [enable mangled symbols and library name @<:@default=disabled@:>@])],
377 [enable_mangling="${enableval}"],
383 if test "x${enable_mangling}" = "xyes" ; then
384 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
387 OSMESA_LIB="MangledOSMesa"
391 AC_SUBST([OSMESA_LIB])
394 dnl potentially-infringing-but-nobody-knows-for-sure stuff
396 AC_ARG_ENABLE([texture-float],
397 [AS_HELP_STRING([--enable-texture-float],
398 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
399 [enable_texture_float="$enableval"],
400 [enable_texture_float=no]
402 if test "x$enable_texture_float" = xyes; then
403 AC_MSG_WARN([Floating-point textures enabled.])
404 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
405 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
408 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
409 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
410 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
411 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
412 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
413 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
414 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
415 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
416 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
417 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
419 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
420 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
421 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
422 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
423 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
424 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
425 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
426 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
427 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
428 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
429 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
431 AC_SUBST([GL_LIB_NAME])
432 AC_SUBST([GLU_LIB_NAME])
433 AC_SUBST([OSMESA_LIB_NAME])
434 AC_SUBST([EGL_LIB_NAME])
435 AC_SUBST([GLESv1_CM_LIB_NAME])
436 AC_SUBST([GLESv2_LIB_NAME])
437 AC_SUBST([VG_LIB_NAME])
438 AC_SUBST([GLAPI_LIB_NAME])
439 AC_SUBST([WAYLAND_EGL_LIB_NAME])
440 AC_SUBST([GBM_LIB_NAME])
442 AC_SUBST([GL_LIB_GLOB])
443 AC_SUBST([GLU_LIB_GLOB])
444 AC_SUBST([OSMESA_LIB_GLOB])
445 AC_SUBST([EGL_LIB_GLOB])
446 AC_SUBST([GLESv1_CM_LIB_GLOB])
447 AC_SUBST([GLESv2_LIB_GLOB])
448 AC_SUBST([VG_LIB_GLOB])
449 AC_SUBST([GLAPI_LIB_GLOB])
450 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
451 AC_SUBST([GBM_LIB_GLOB])
454 dnl Arch/platform-specific settings
457 [AS_HELP_STRING([--disable-asm],
458 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
459 [enable_asm="$enableval"],
466 AC_MSG_CHECKING([whether to enable assembly])
467 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
468 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
469 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
473 AC_MSG_RESULT([no, cross compiling])
477 # check for supported arches
478 if test "x$enable_asm" = xyes; then
482 linux* | *freebsd* | dragonfly* | *netbsd*)
483 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
489 linux* | *freebsd* | dragonfly* | *netbsd*)
490 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
512 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
513 MESA_ASM_SOURCES='$(X86_SOURCES)'
514 GLAPI_ASM_SOURCES='$(X86_API)'
515 AC_MSG_RESULT([yes, x86])
518 ASM_FLAGS="-DUSE_X86_64_ASM"
519 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
520 GLAPI_ASM_SOURCES='$(X86-64_API)'
521 AC_MSG_RESULT([yes, x86_64])
524 ASM_FLAGS="-DUSE_SPARC_ASM"
525 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
526 GLAPI_ASM_SOURCES='$(SPARC_API)'
527 AC_MSG_RESULT([yes, sparc])
530 AC_MSG_RESULT([no, platform not supported])
534 AC_SUBST([ASM_FLAGS])
535 AC_SUBST([MESA_ASM_SOURCES])
536 AC_SUBST([GLAPI_ASM_SOURCES])
541 dnl Check to see if dlopen is in default libraries (like Solaris, which
542 dnl has it in libc), or if libdl is needed to get it.
543 AC_CHECK_FUNC([dlopen], [],
544 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
545 AC_SUBST([DLOPEN_LIBS])
547 dnl See if posix_memalign is available
548 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
550 dnl SELinux awareness.
551 AC_ARG_ENABLE([selinux],
552 [AS_HELP_STRING([--enable-selinux],
553 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
554 [MESA_SELINUX="$enableval"],
556 if test "x$enable_selinux" = "xyes"; then
557 AC_CHECK_HEADER([selinux/selinux.h],[],
558 [AC_MSG_ERROR([SELinux headers not found])])
559 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
560 [AC_MSG_ERROR([SELinux library not found])])
561 SELINUX_LIBS="-lselinux"
562 DEFINES="$DEFINES -DMESA_SELINUX"
566 AC_ARG_ENABLE([opengl],
567 [AS_HELP_STRING([--disable-opengl],
568 [disable support for standard OpenGL API @<:@default=no@:>@])],
569 [enable_opengl="$enableval"],
571 AC_ARG_ENABLE([gles1],
572 [AS_HELP_STRING([--enable-gles1],
573 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
574 [enable_gles1="$enableval"],
576 AC_ARG_ENABLE([gles2],
577 [AS_HELP_STRING([--enable-gles2],
578 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
579 [enable_gles2="$enableval"],
581 AC_ARG_ENABLE([openvg],
582 [AS_HELP_STRING([--enable-openvg],
583 [enable support for OpenVG API @<:@default=no@:>@])],
584 [enable_openvg="$enableval"],
588 [AS_HELP_STRING([--enable-dri],
589 [enable DRI modules @<:@default=auto@:>@])],
590 [enable_dri="$enableval"],
593 [AS_HELP_STRING([--enable-glx],
594 [enable GLX library @<:@default=auto@:>@])],
595 [enable_glx="$enableval"],
597 AC_ARG_ENABLE([osmesa],
598 [AS_HELP_STRING([--enable-osmesa],
599 [enable OSMesa library @<:@default=auto@:>@])],
600 [enable_osmesa="$enableval"],
601 [enable_osmesa=auto])
603 [AS_HELP_STRING([--disable-egl],
604 [disable EGL library @<:@default=enabled@:>@])],
605 [enable_egl="$enableval"],
608 AC_ARG_ENABLE([xorg],
609 [AS_HELP_STRING([--enable-xorg],
610 [enable support for X.Org DDX API @<:@default=no@:>@])],
611 [enable_xorg="$enableval"],
614 [AS_HELP_STRING([--enable-xa],
615 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
616 [enable_xa="$enableval"],
618 AC_ARG_ENABLE([d3d1x],
619 [AS_HELP_STRING([--enable-d3d1x],
620 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
621 [enable_d3d1x="$enableval"],
624 [AS_HELP_STRING([--enable-gbm],
625 [enable gbm library @<:@default=auto@:>@])],
626 [enable_gbm="$enableval"],
629 AC_ARG_ENABLE([xvmc],
630 [AS_HELP_STRING([--enable-xvmc],
631 [enable xvmc library @<:@default=auto@:>@])],
632 [enable_xvmc="$enableval"],
634 AC_ARG_ENABLE([vdpau],
635 [AS_HELP_STRING([--enable-vdpau],
636 [enable vdpau library @<:@default=auto@:>@])],
637 [enable_vdpau="$enableval"],
640 [AS_HELP_STRING([--enable-va],
641 [enable va library @<:@default=auto@:>@])],
642 [enable_va="$enableval"],
645 AC_ARG_ENABLE([xlib_glx],
646 [AS_HELP_STRING([--enable-xlib-glx],
647 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
648 [enable_xlib_glx="$enableval"],
649 [enable_xlib_glx=auto])
650 AC_ARG_ENABLE([gallium_egl],
651 [AS_HELP_STRING([--enable-gallium-egl],
652 [enable optional EGL state tracker (not required
653 for EGL support in Gallium with OpenGL and OpenGL ES)
654 @<:@default=disable@:>@])],
655 [enable_gallium_egl="$enableval"],
656 [enable_gallium_egl=no])
657 AC_ARG_ENABLE([gallium_gbm],
658 [AS_HELP_STRING([--enable-gallium-gbm],
659 [enable optional gbm state tracker (not required for
660 gbm support in Gallium)
661 @<:@default=auto@:>@])],
662 [enable_gallium_gbm="$enableval"],
663 [enable_gallium_gbm=auto])
665 # Option for Gallium drivers
666 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
668 AC_ARG_WITH([gallium-drivers],
669 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
670 [comma delimited Gallium drivers list, e.g.
671 "i915,nouveau,r300,r600,svga,swrast"
672 @<:@default=r300,r600,swrast@:>@])],
673 [with_gallium_drivers="$withval"],
674 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
676 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
677 # here so that the script doesn't choke on an unknown driver name later.
678 case "$with_gallium_drivers" in
679 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
680 no) with_gallium_drivers='' ;;
683 if test "x$enable_opengl" = xno -a \
684 "x$enable_gles1" = xno -a \
685 "x$enable_gles2" = xno -a \
686 "x$enable_openvg" = xno -a \
687 "x$enable_xorg" = xno -a \
688 "x$enable_xa" = xno -a \
689 "x$enable_d3d1x" = xno -a \
690 "x$enable_xvmc" = xno -a \
691 "x$enable_vdpau" = xno -a \
692 "x$enable_va" = xno; then
693 AC_MSG_ERROR([at least one API should be enabled])
697 if test "x$enable_opengl" = xno; then
698 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
700 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
702 if test "x$enable_gles1" = xyes; then
703 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
705 if test "x$enable_gles2" = xyes; then
706 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
708 AC_SUBST([API_DEFINES])
711 dnl Driver configuration. Options are xlib, dri and osmesa right now.
712 dnl More later: fbdev, ...
714 default_driver="xlib"
719 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
722 *freebsd* | dragonfly* | *netbsd*)
724 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
729 if test "x$enable_opengl" = xno; then
733 AC_ARG_WITH([driver],
734 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
735 [mesa_driver="$withval"],
737 dnl Check for valid option
738 case "x$mesa_driver" in
739 xxlib|xdri|xosmesa|xno)
740 if test "x$enable_dri" != xauto -o \
741 "x$enable_glx" != xauto -o \
742 "x$enable_osmesa" != xauto -o \
743 "x$enable_xlib_glx" != xauto; then
744 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
748 mesa_driver="$default_driver"
751 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
755 # map $mesa_driver to APIs
756 if test "x$enable_dri" = xauto; then
757 case "x$mesa_driver" in
758 xdri) enable_dri=yes ;;
763 if test "x$enable_glx" = xauto; then
764 case "x$mesa_driver" in
765 xdri|xxlib) enable_glx=yes ;;
770 if test "x$enable_osmesa" = xauto; then
771 case "x$mesa_driver" in
772 xxlib|xosmesa) enable_osmesa=yes ;;
773 *) enable_osmesa=no ;;
777 if test "x$enable_xlib_glx" = xauto; then
778 case "x$mesa_driver" in
779 xxlib) enable_xlib_glx=yes ;;
780 *) enable_xlib_glx=no ;;
784 if test "x$enable_glx" = xno; then
789 dnl Driver specific build directories
792 dnl this variable will be prepended to SRC_DIRS and is not exported
793 CORE_DIRS="mapi/shared-glapi"
797 GALLIUM_DIRS="auxiliary drivers state_trackers"
798 GALLIUM_TARGET_DIRS=""
799 GALLIUM_WINSYS_DIRS="sw"
800 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
801 GALLIUM_STATE_TRACKERS_DIRS=""
803 # build glapi if OpenGL is enabled
804 if test "x$enable_opengl" = xyes; then
805 CORE_DIRS="$CORE_DIRS mapi/glapi"
808 # build es1api if OpenGL ES 1.x is enabled
809 if test "x$enable_gles1" = xyes; then
810 CORE_DIRS="$CORE_DIRS mapi/es1api"
813 # build es2api if OpenGL ES 2.x is enabled
814 if test "x$enable_gles2" = xyes; then
815 CORE_DIRS="$CORE_DIRS mapi/es2api"
818 # build glsl and mesa if OpenGL or OpenGL ES is enabled
819 case "x$enable_opengl$enable_gles1$enable_gles2" in
821 CORE_DIRS="$CORE_DIRS glsl mesa"
825 case "x$enable_glx$enable_xlib_glx" in
827 DRIVER_DIRS="$DRIVER_DIRS x11"
828 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
829 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
830 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
831 HAVE_WINSYS_XLIB="yes"
835 SRC_DIRS="$SRC_DIRS glx"
839 if test "x$enable_dri" = xyes; then
840 DRIVER_DIRS="$DRIVER_DIRS dri"
842 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
843 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
847 if test "x$enable_osmesa" = xyes; then
848 # the empty space matters for osmesa... (see src/mesa/Makefile)
849 if test -n "$DRIVER_DIRS"; then
850 DRIVER_DIRS="$DRIVER_DIRS osmesa"
858 AC_SUBST([DRIVER_DIRS])
859 AC_SUBST([GALLIUM_DIRS])
860 AC_SUBST([GALLIUM_TARGET_DIRS])
861 AC_SUBST([GALLIUM_WINSYS_DIRS])
862 AC_SUBST([GALLIUM_DRIVERS_DIRS])
863 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
864 AC_SUBST([MESA_LLVM])
867 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
868 [have_libdrm=yes], [have_libdrm=no])
870 if test "x$enable_dri" = xyes; then
871 # DRI must be shared, I think
872 if test "$enable_static" = yes; then
873 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
876 # not a hard requirement as swrast does not depend on it
877 if test "x$have_libdrm" = xyes; then
878 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
883 dnl Find out if X is available. The variable have_x is set if libX11 is
884 dnl found to mimic AC_PATH_XTRA.
886 if test -n "$PKG_CONFIG"; then
887 AC_MSG_CHECKING([pkg-config files for X11 are available])
888 PKG_CHECK_EXISTS([x11],[
894 AC_MSG_RESULT([$x11_pkgconfig])
898 dnl Use the autoconf macro if no pkg-config files
899 if test "$x11_pkgconfig" = yes; then
900 PKG_CHECK_MODULES([X11], [x11])
903 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
904 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
905 AC_SUBST([X11_CFLAGS])
909 dnl Try to tell the user that the --x-* options are only used when
910 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
911 m4_divert_once([HELP_BEGIN],
912 [These options are only used when the X libraries cannot be found by the
913 pkg-config utility.])
915 dnl We need X for xlib and dri, so bomb now if it's not found
916 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
917 AC_MSG_ERROR([X11 development libraries needed for GLX])
920 if test "x$enable_glx" = xyes; then
921 DEFINES="$DEFINES -DUSE_XCB"
924 dnl Direct rendering or just indirect rendering
927 dnl Disable by default on GNU/Hurd
928 driglx_direct_default="no"
931 dnl Disable by default on cygwin
932 driglx_direct_default="no"
935 driglx_direct_default="yes"
938 AC_ARG_ENABLE([driglx-direct],
939 [AS_HELP_STRING([--disable-driglx-direct],
940 [enable direct rendering in GLX and EGL for DRI \
941 @<:@default=auto@:>@])],
942 [driglx_direct="$enableval"],
943 [driglx_direct="$driglx_direct_default"])
946 dnl libGL configuration per driver
948 case "x$enable_glx$enable_xlib_glx" in
951 if test "$x11_pkgconfig" = yes; then
952 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
953 GL_PC_REQ_PRIV="x11 xext"
954 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
955 GL_LIB_DEPS="$XLIBGL_LIBS"
957 # should check these...
958 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
959 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
960 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
961 GL_PC_CFLAGS="$X11_INCLUDES"
963 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
964 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
968 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
969 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
970 if test x"$driglx_direct" = xyes; then
971 if test "x$have_libdrm" != xyes; then
972 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
974 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
975 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
978 # find the DRI deps for libGL
979 if test "$x11_pkgconfig" = yes; then
980 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
982 # add xf86vidmode if available
983 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
984 if test "$HAVE_XF86VIDMODE" = yes ; then
985 dri_modules="$dri_modules xxf86vm"
988 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
989 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
990 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
991 GL_LIB_DEPS="$DRIGL_LIBS"
993 # should check these...
994 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
995 if test "x$HAVE_XF86VIDMODE" == xyes; then
996 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
998 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1000 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1001 GL_PC_CFLAGS="$X11_INCLUDES"
1003 # XCB can only be used from pkg-config
1004 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1005 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1006 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1007 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1010 # Check to see if the xcb-glx library is new enough to support
1011 # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
1013 save_CPPFLAGS="$CPPFLAGS"
1014 save_LDFLAGS="$LDFLAGS"
1015 CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
1016 LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
1017 AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
1018 [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
1019 [HAVE_XCB_GLX_CREATE_CONTEXT=no])
1020 CPPFLAGS="$save_CPPFLAGS"
1021 LDFLAGS="$save_LDFLAGS"
1023 if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
1024 X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
1027 # need DRM libs, -lpthread, etc.
1028 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1029 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1033 # This is outside the case (above) so that it is invoked even for non-GLX
1035 AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
1036 test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
1038 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1039 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1040 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1041 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1043 AC_SUBST([GL_LIB_DEPS])
1044 AC_SUBST([GL_PC_REQ_PRIV])
1045 AC_SUBST([GL_PC_LIB_PRIV])
1046 AC_SUBST([GL_PC_CFLAGS])
1047 AC_SUBST([DRI_PC_REQ_PRIV])
1048 AC_SUBST([GLESv1_CM_LIB_DEPS])
1049 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1050 AC_SUBST([GLESv2_LIB_DEPS])
1051 AC_SUBST([GLESv2_PC_LIB_PRIV])
1053 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1054 AC_SUBST([GLAPI_LIB_DEPS])
1057 dnl Setup default DRI CFLAGS
1058 DRI_CFLAGS='$(CFLAGS)'
1059 DRI_CXXFLAGS='$(CXXFLAGS)'
1060 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1061 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1063 if test "x$enable_dri" = xyes ; then
1064 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1065 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1066 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1067 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1068 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1069 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1070 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1072 AC_SUBST([DRICORE_LIBS])
1073 AC_SUBST([DRICORE_GLSL_LIBS])
1074 AC_SUBST([DRICORE_LIB_DEPS])
1075 AC_SUBST([DRI_CXXFLAGS])
1076 AC_SUBST([DRI_CFLAGS])
1077 AC_SUBST([MESA_MODULES])
1079 AC_SUBST([HAVE_XF86VIDMODE])
1084 case "x$enable_glx$enable_xlib_glx" in
1086 DEFINES="$DEFINES -DUSE_XSHM"
1089 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1090 if test "x$driglx_direct" = xyes; then
1091 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1100 AC_ARG_ENABLE([glx-tls],
1101 [AS_HELP_STRING([--enable-glx-tls],
1102 [enable TLS support in GLX @<:@default=disabled@:>@])],
1103 [GLX_USE_TLS="$enableval"],
1105 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1107 AS_IF([test "x$GLX_USE_TLS" = xyes],
1108 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1113 dnl Directory for DRI drivers
1114 AC_ARG_WITH([dri-driverdir],
1115 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1116 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1117 [DRI_DRIVER_INSTALL_DIR="$withval"],
1118 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1119 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1120 dnl Extra search path for DRI drivers
1121 AC_ARG_WITH([dri-searchpath],
1122 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1123 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1124 [DRI_DRIVER_SEARCH_DIR="$withval"],
1125 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1126 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1127 dnl Which drivers to build - default is chosen by platform
1128 AC_ARG_WITH([dri-drivers],
1129 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1130 [comma delimited DRI drivers list, e.g.
1131 "swrast,i965,radeon" @<:@default=auto@:>@])],
1132 [with_dri_drivers="$withval"],
1133 [with_dri_drivers=yes])
1134 if test "x$with_dri_drivers" = x; then
1138 dnl If $with_dri_drivers is yes, directories will be added through
1141 case "$with_dri_drivers" in
1144 # classic DRI drivers require FEATURE_GL to build
1145 if test "x$enable_opengl" = xyes; then
1150 # verify the requested driver directories exist
1151 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1152 for driver in $dri_drivers; do
1153 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1154 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1156 DRI_DIRS="$dri_drivers"
1157 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1158 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1163 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1164 if test "x$enable_dri" = xyes; then
1165 # Platform specific settings and drivers to build
1168 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1169 DEFINES="$DEFINES -DHAVE_ALIAS"
1173 if test "x$DRI_DIRS" = "xyes"; then
1174 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1178 # Build only the drivers for cards that exist on PowerPC.
1179 if test "x$DRI_DIRS" = "xyes"; then
1180 DRI_DIRS="r200 radeon swrast"
1184 # Build only the drivers for cards that exist on sparc
1185 if test "x$DRI_DIRS" = "xyes"; then
1186 DRI_DIRS="r200 radeon swrast"
1191 freebsd* | dragonfly* | *netbsd*)
1192 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1193 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1195 if test "x$DRI_DIRS" = "xyes"; then
1196 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1200 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1201 DEFINES="$DEFINES -DHAVE_ALIAS"
1204 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1207 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1208 if test "x$DRI_DIRS" = "xyes"; then
1215 if test "x$DRI_DIRS" = "xyes"; then
1216 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1219 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1222 if test "x$enable_dri" = xyes; then
1225 AC_ARG_WITH([expat],
1226 [AS_HELP_STRING([--with-expat=DIR],
1227 [expat install directory])],[
1228 EXPAT_INCLUDES="-I$withval/include"
1229 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1230 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1231 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1233 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1234 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1235 [AC_MSG_ERROR([Expat required for DRI.])])
1238 # libdrm is required for all except swrast
1239 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1240 if test "x$have_libdrm" != xyes; then
1241 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1245 # put all the necessary libs together
1246 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1248 AC_SUBST([DRI_DIRS])
1249 AC_SUBST([EXPAT_INCLUDES])
1250 AC_SUBST([DRI_LIB_DEPS])
1254 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1256 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1272 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1273 HAVE_NOUVEAU_DRI=yes;
1279 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1281 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1284 HAVE_RADEON_DRI=yes;
1297 HAVE_SWRAST_DRI=yes;
1301 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
1302 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1303 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
1304 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
1305 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
1306 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
1309 dnl OSMesa configuration
1312 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1313 AC_ARG_WITH([osmesa-bits],
1314 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1315 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1316 [osmesa_bits="$withval"],
1318 if test "x$osmesa_bits" != x8; then
1319 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1320 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1324 case "x$osmesa_bits" in
1326 OSMESA_LIB="${OSMESA_LIB}"
1329 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1330 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1333 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1337 if test "x$enable_osmesa" = xyes; then
1338 # only link libraries with osmesa if shared
1339 if test "$enable_static" = no; then
1340 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1345 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1347 AC_SUBST([OSMESA_LIB_DEPS])
1348 AC_SUBST([OSMESA_MESA_DEPS])
1349 AC_SUBST([OSMESA_PC_REQ])
1350 AC_SUBST([OSMESA_PC_LIB_PRIV])
1353 dnl gbm configuration
1355 if test "x$enable_gbm" = xauto; then
1356 case "$with_egl_platforms" in
1363 if test "x$enable_gbm" = xyes; then
1364 SRC_DIRS="$SRC_DIRS gbm"
1367 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1368 AC_MSG_ERROR([gbm needs udev]))
1369 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1371 if test "x$enable_dri" = xyes; then
1372 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1375 AC_SUBST([GBM_LIB_DEPS])
1376 AC_SUBST([GBM_BACKEND_DIRS])
1377 GBM_PC_REQ_PRIV="libudev"
1378 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1380 AC_SUBST([GBM_PC_REQ_PRIV])
1381 AC_SUBST([GBM_PC_LIB_PRIV])
1382 AC_SUBST([GBM_PC_CFLAGS])
1385 dnl EGL configuration
1389 if test "x$enable_egl" = xyes; then
1390 SRC_DIRS="$SRC_DIRS egl"
1391 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1394 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1396 if test "$enable_static" != yes; then
1397 # build egl_glx when libGL is built
1398 if test "x$enable_glx" = xyes; then
1399 EGL_DRIVERS_DIRS="glx"
1402 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1403 [have_libudev=yes],[have_libudev=no])
1404 if test "$have_libudev" = yes; then
1405 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1407 if test "x$enable_dri" = xyes; then
1408 # build egl_dri2 when xcb-dri2 is available
1409 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1410 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1412 if test "$have_xcb_dri2" = yes; then
1413 EGL_DRIVER_DRI2=dri2
1414 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1415 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1416 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1417 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1421 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1424 AC_SUBST([EGL_LIB_DEPS])
1425 AC_SUBST([EGL_DRIVERS_DIRS])
1428 dnl EGL Gallium configuration
1430 if test "x$enable_gallium_egl" = xyes; then
1431 if test "x$with_gallium_drivers" = x; then
1432 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1434 if test "x$enable_egl" = xno; then
1435 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1437 if test "x$have_libdrm" != xyes; then
1438 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1441 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1442 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1447 dnl gbm Gallium configuration
1449 if test "x$enable_gallium_gbm" = xauto; then
1450 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1452 enable_gallium_gbm=yes ;;
1454 enable_gallium_gbm=no ;;
1457 if test "x$enable_gallium_gbm" = xyes; then
1458 if test "x$with_gallium_drivers" = x; then
1459 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1461 if test "x$enable_gbm" = xno; then
1462 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1464 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1465 if test "x$enable_dri" = xno; then
1466 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1469 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1470 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1475 dnl X.Org DDX configuration
1477 if test "x$enable_xorg" = xyes; then
1478 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1479 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1480 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1481 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1482 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1483 HAVE_XEXTPROTO_71="no")
1484 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1489 dnl XA configuration
1491 if test "x$enable_xa" = xyes; then
1494 AC_CHECK_PROG(NM, nm, "nm")
1495 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1496 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1500 if test "x$enable_xa" = xyes; then
1501 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1509 dnl OpenVG configuration
1513 if test "x$enable_openvg" = xyes; then
1514 if test "x$enable_egl" = xno; then
1515 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1517 if test "x$with_gallium_drivers" = x; then
1518 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1520 if test "x$enable_gallium_egl" = xno; then
1521 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1524 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1525 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1526 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1527 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1532 dnl D3D1X configuration
1535 if test "x$enable_d3d1x" = xyes; then
1536 if test "x$with_gallium_drivers" = x; then
1537 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1540 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1545 dnl Gallium G3DVL configuration
1547 AC_ARG_ENABLE([gallium-g3dvl],
1548 [AS_HELP_STRING([--enable-gallium-g3dvl],
1549 [build gallium g3dvl @<:@default=disabled@:>@])],
1550 [enable_gallium_g3dvl="$enableval"],
1551 [enable_gallium_g3dvl=no])
1552 if test "x$enable_gallium_g3dvl" = xyes; then
1553 if test "x$with_gallium_drivers" = x; then
1554 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1557 if test "x$enable_xvmc" = xauto; then
1558 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1561 if test "x$enable_vdpau" = xauto; then
1562 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1565 if test "x$enable_va" = xauto; then
1566 #don't enable vaapi state tracker even if package exists
1567 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1572 if test "x$enable_xvmc" = xyes; then
1573 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1574 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1578 if test "x$enable_vdpau" = xyes; then
1579 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1580 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1584 if test "x$enable_va" = xyes; then
1585 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1586 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1587 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1592 dnl GLU configuration
1594 AC_ARG_ENABLE([glu],
1595 [AS_HELP_STRING([--disable-glu],
1596 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1597 [enable_glu="$enableval"],
1600 if test "x$enable_glu" = xyes; then
1601 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1602 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1607 if test "x$enable_glu" = xyes; then
1608 SRC_DIRS="$SRC_DIRS glu"
1610 if test "x$enable_glx" = xno; then
1611 # Link libGLU to libOSMesa instead of libGL
1614 if test "$enable_static" = no; then
1615 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1620 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1622 GLU_PC_LIB_PRIV="-lm"
1623 if test "$enable_static" = no; then
1625 GLU_MESA_DEPS='-l$(GL_LIB)'
1632 if test "$enable_static" = no; then
1633 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1635 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1636 AC_SUBST([GLU_LIB_DEPS])
1637 AC_SUBST([GLU_MESA_DEPS])
1638 AC_SUBST([GLU_PC_REQ])
1639 AC_SUBST([GLU_PC_REQ_PRIV])
1640 AC_SUBST([GLU_PC_LIB_PRIV])
1641 AC_SUBST([GLU_PC_CFLAGS])
1643 AC_SUBST([PROGRAM_DIRS])
1646 dnl Gallium configuration
1648 if test "x$with_gallium_drivers" != x; then
1649 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1652 AC_SUBST([LLVM_CFLAGS])
1653 AC_SUBST([LLVM_LIBS])
1654 AC_SUBST([LLVM_LDFLAGS])
1655 AC_SUBST([LLVM_VERSION])
1657 case "x$enable_opengl$enable_gles1$enable_gles2" in
1659 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1663 AC_SUBST([VG_LIB_DEPS])
1664 AC_SUBST([EGL_CLIENT_APIS])
1666 AC_ARG_WITH([egl-platforms],
1667 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1668 [comma delimited native platforms libEGL supports, e.g.
1669 "x11,drm" @<:@default=auto@:>@])],
1670 [with_egl_platforms="$withval"],
1671 [with_egl_platforms=yes])
1674 WAYLAND_EGL_LIB_DEPS=""
1676 case "$with_egl_platforms" in
1678 if test "x$enable_egl" = xyes; then
1683 if test "x$enable_egl" != xyes; then
1684 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1686 # verify the requested driver directories exist
1687 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1688 for plat in $egl_platforms; do
1689 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1690 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1691 if test "$plat" = "fbdev"; then
1692 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1694 if test "$plat" = "null"; then
1695 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1697 if test "$plat" = "wayland"; then
1698 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1699 [AC_MSG_ERROR([cannot find libwayland-client])])
1700 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1701 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1703 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1704 AC_MSG_ERROR([EGL platform drm needs gbm])
1706 case "$plat$have_libudev" in
1708 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1711 EGL_PLATFORMS="$egl_platforms"
1714 AC_SUBST([EGL_PLATFORMS])
1716 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1717 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1718 WAYLAND_EGL_PC_LIB_PRIV=
1719 WAYLAND_EGL_PC_CFLAGS=
1721 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1722 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1723 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1726 AC_ARG_WITH([egl-driver-dir],
1727 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1728 [directory for EGL drivers [[default=${libdir}/egl]]])],
1729 [EGL_DRIVER_INSTALL_DIR="$withval"],
1730 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1731 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1733 AC_ARG_WITH([xorg-driver-dir],
1734 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1735 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1736 [XORG_DRIVER_INSTALL_DIR="$withval"],
1737 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1738 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1740 AC_ARG_WITH([max-width],
1741 [AS_HELP_STRING([--with-max-width=N],
1742 [Maximum framebuffer width (4096)])],
1743 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1744 AS_IF([test "${withval}" -gt "4096"],
1745 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1747 AC_ARG_WITH([max-height],
1748 [AS_HELP_STRING([--with-max-height=N],
1749 [Maximum framebuffer height (4096)])],
1750 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1751 AS_IF([test "${withval}" -gt "4096"],
1752 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1758 AC_ARG_ENABLE([gallium-llvm],
1759 [AS_HELP_STRING([--enable-gallium-llvm],
1760 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1761 [enable_gallium_llvm="$enableval"],
1762 [enable_gallium_llvm=auto])
1763 if test "x$with_gallium_drivers" = x; then
1764 enable_gallium_llvm=no
1766 if test "x$enable_gallium_llvm" = xauto; then
1768 i*86|x86_64) enable_gallium_llvm=yes;;
1771 if test "x$enable_gallium_llvm" = xyes; then
1772 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1774 if test "x$LLVM_CONFIG" != xno; then
1775 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1776 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1777 LLVM_LIBS="`$LLVM_CONFIG --libs`"
1779 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1780 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1789 dnl Directory for VDPAU libs
1790 AC_ARG_WITH([vdpau-libdir],
1791 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1792 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1793 [VDPAU_LIB_INSTALL_DIR="$withval"],
1794 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1795 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1797 dnl Directory for VA libs
1798 AC_ARG_WITH([va-libdir],
1799 [AS_HELP_STRING([--with-va-libdir=DIR],
1800 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1801 [VA_LIB_INSTALL_DIR="$withval"],
1802 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1803 AC_SUBST([VA_LIB_INSTALL_DIR])
1806 dnl Gallium helper functions
1808 gallium_check_st() {
1809 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1810 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1811 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1812 if test "x$have_libdrm" != xyes; then
1813 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1815 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1817 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1818 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1820 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1821 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1823 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1824 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1826 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1827 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1828 NEED_G3DVL_DRI="yes"
1830 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1831 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1832 NEED_G3DVL_DRI="yes"
1834 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1835 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1836 NEED_G3DVL_DRI="yes"
1840 gallium_require_llvm() {
1841 if test "x$MESA_LLVM" = x0; then
1843 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1849 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1850 if test "x$with_gallium_drivers" != x; then
1851 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1852 for driver in $gallium_drivers; do
1855 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1856 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1859 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1860 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1861 if test "x$MESA_LLVM" = x1; then
1862 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1864 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1865 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1868 gallium_require_llvm "Gallium R300"
1869 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1870 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1873 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1874 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1877 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1878 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1879 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1882 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1883 if test "x$MESA_LLVM" = x1; then
1884 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1887 if test "x$HAVE_ST_DRI" = xyes; then
1888 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1890 if test "x$HAVE_ST_VDPAU" = xyes; then
1891 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1893 if test "x$HAVE_ST_XVMC" = xyes; then
1894 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1896 if test "x$HAVE_ST_VA" = xyes; then
1897 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1899 if test "x$HAVE_ST_VDPAU" = xyes ||
1900 test "x$HAVE_ST_XVMC" = xyes ||
1901 test "x$HAVE_ST_VA" = xyes; then
1902 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1903 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1908 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1914 if test "x$NEED_G3DVL_DRI" = xyes; then
1915 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1918 dnl prepend CORE_DIRS to SRC_DIRS
1919 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1921 dnl Restore LDFLAGS and CPPFLAGS
1922 LDFLAGS="$_SAVE_LDFLAGS"
1923 CPPFLAGS="$_SAVE_CPPFLAGS"
1925 dnl Add user CFLAGS and CXXFLAGS
1926 CFLAGS="$CFLAGS $USER_CFLAGS"
1927 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1929 dnl Substitute the config
1930 AC_CONFIG_FILES([configs/autoconf
1931 src/mesa/drivers/dri/dri.pc
1932 src/mesa/drivers/dri/Makefile
1933 src/mesa/drivers/dri/i915/Makefile
1934 src/mesa/drivers/dri/i965/Makefile
1935 src/mesa/drivers/dri/nouveau/Makefile
1936 src/mesa/drivers/dri/r200/Makefile
1937 src/mesa/drivers/dri/radeon/Makefile
1938 src/mesa/drivers/dri/swrast/Makefile
1940 tests/glx/Makefile])
1942 dnl Replace the configs/current symlink
1943 AC_CONFIG_COMMANDS([configs],[
1944 if test -f configs/current || test -L configs/current; then
1945 rm -f configs/current
1947 ln -s autoconf configs/current
1950 dnl Sort the dirs alphabetically
1951 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1952 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1953 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1954 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1959 dnl Output some configuration info for the user
1962 echo " prefix: $prefix"
1963 echo " exec_prefix: $exec_prefix"
1964 echo " libdir: $libdir"
1965 echo " includedir: $includedir"
1969 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1970 echo " OpenVG: $enable_openvg"
1974 if test "x$enable_osmesa" != xno; then
1975 echo " OSMesa: lib$OSMESA_LIB"
1980 if test "x$enable_dri" != xno; then
1981 # cleanup the drivers var
1982 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1983 if test "x$DRI_DIRS" = x; then
1984 echo " DRI drivers: no"
1986 echo " DRI drivers: $dri_dirs"
1988 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1991 case "x$enable_glx$enable_xlib_glx" in
1993 echo " GLX: Xlib-based"
1996 echo " GLX: DRI-based"
1999 echo " GLX: $enable_glx"
2004 echo " GLU: $enable_glu"
2008 echo " EGL: $enable_egl"
2009 if test "$enable_egl" = yes; then
2010 echo " EGL platforms: $EGL_PLATFORMS"
2013 for d in $EGL_DRIVERS_DIRS; do
2014 egl_drivers="$egl_drivers builtin:egl_$d"
2017 if test "x$HAVE_ST_EGL" = xyes; then
2018 echo " EGL drivers: ${egl_drivers} egl_gallium"
2019 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2021 echo " EGL drivers: $egl_drivers"
2026 if test "x$MESA_LLVM" = x1; then
2028 echo " llvm-config: $LLVM_CONFIG"
2029 echo " llvm-version: $LLVM_VERSION"
2035 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2036 echo " Gallium: yes"
2037 echo " Gallium dirs: $GALLIUM_DIRS"
2038 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2039 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2040 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2041 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2049 echo " Shared libs: $enable_shared"
2050 echo " Static libs: $enable_static"
2052 dnl Compiler options
2053 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2054 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2055 $SED 's/^ *//;s/ */ /;s/ *$//'`
2056 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2057 $SED 's/^ *//;s/ */ /;s/ *$//'`
2058 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2060 echo " CFLAGS: $cflags"
2061 echo " CXXFLAGS: $cxxflags"
2062 echo " Macros: $defines"
2064 echo " PYTHON2: $PYTHON2"
2067 echo " Run '${MAKE-make}' to build Mesa"