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 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
23 USER_CXXFLAGS="$CXXFLAGS"
25 dnl Versions for external dependencies
26 LIBDRM_REQUIRED=2.4.24
27 LIBDRM_RADEON_REQUIRED=2.4.24
28 LIBDRM_INTEL_REQUIRED=2.4.30
29 LIBDRM_NOUVEAU_REQUIRED=0.6
30 DRI2PROTO_REQUIRED=2.6
31 GLPROTO_REQUIRED=1.4.14
32 LIBDRM_XORG_REQUIRED=2.4.24
33 LIBKMS_XORG_REQUIRED=1.0.0
39 AC_CHECK_PROGS([MAKE], [gmake make])
40 AC_CHECK_PROGS([PYTHON2], [python2 python])
42 AC_PATH_PROG([MKDEP], [makedepend])
44 if test "x$MKDEP" = "x"; then
45 AC_MSG_ERROR([makedepend is required to build Mesa])
48 AC_PATH_PROG([FLEX], [flex])
49 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
51 AC_PATH_PROG([BISON], [bison])
52 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
54 dnl Our fallback install-sh is a symlink to minstall. Use the existing
55 dnl configuration in that case.
57 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
59 dnl We need a POSIX shell for parts of the build. Assume we have one
63 # Solaris /bin/sh is too old/non-POSIX compliant
64 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
69 AC_PATH_PROG([GTESTCONFIG], [gtest-config])
70 if test "x$GTESTCONFIG" != "x"; then
71 GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
72 GTEST_LIBS=`gtest-config --ldflags --libs`
73 AC_SUBST([GTEST_CFLAGS])
74 AC_SUBST([GTEST_LIBS])
79 AM_CONDITIONAL(HAVE_GTEST, test x$HAVE_GTEST = xyes)
81 dnl clang is mostly GCC-compatible, but its version is much lower,
82 dnl so we have to check for it.
83 AC_MSG_CHECKING([if compiling with clang])
86 [AC_LANG_PROGRAM([], [[
91 [acv_mesa_CLANG=yes], [acv_mesa_CLANG=no])
93 AC_MSG_RESULT([$acv_mesa_CLANG])
95 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
96 dnl versions are explictly not supported.
97 if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
98 AC_MSG_CHECKING([whether gcc version is sufficient])
102 GCC_VERSION=`$CC -dumpversion`
103 if test $? -eq 0; then
104 major=`echo $GCC_VERSION | cut -d. -f1`
105 minor=`echo $GCC_VERSION | cut -d. -f2`
108 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
110 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
117 MKDEP_OPTIONS=-fdepend
118 dnl Ask gcc where it's keeping its secret headers
119 if test "x$GCC" = xyes; then
120 for dir in include include-fixed; do
121 GCC_INCLUDES=`$CC -print-file-name=$dir`
122 if test "x$GCC_INCLUDES" != x && \
123 test "$GCC_INCLUDES" != "$dir" && \
124 test -d "$GCC_INCLUDES"; then
125 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
129 AC_SUBST([MKDEP_OPTIONS])
131 dnl Make sure the pkg-config macros are defined
132 m4_ifndef([PKG_PROG_PKG_CONFIG],
133 [m4_fatal([Could not locate the pkg-config autoconf macros.
134 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
135 are in a different location, try setting the environment variable
136 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
137 PKG_PROG_PKG_CONFIG()
139 dnl LIB_DIR - library basename
140 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
143 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
144 _SAVE_LDFLAGS="$LDFLAGS"
145 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
146 AC_SUBST([EXTRA_LIB_PATH])
148 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
149 _SAVE_CPPFLAGS="$CPPFLAGS"
150 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
151 AC_SUBST([X11_INCLUDES])
158 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
161 DEFINES="$DEFINES -DPTHREADS -DSVR4"
164 DEFINES="$DEFINES -DPTHREADS"
168 dnl Add flags for gcc and g++
169 if test "x$GCC" = xyes; then
170 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
172 # Enable -fvisibility=hidden if using a gcc that supports it
173 save_CFLAGS="$CFLAGS"
174 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
175 VISIBILITY_CFLAGS="-fvisibility=hidden"
176 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
177 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
178 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
180 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
183 # Work around aliasing bugs - developers should comment this out
184 CFLAGS="$CFLAGS -fno-strict-aliasing"
186 # gcc's builtin memcmp is slower than glibc's
187 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
188 CFLAGS="$CFLAGS -fno-builtin-memcmp"
190 if test "x$GXX" = xyes; then
191 CXXFLAGS="$CXXFLAGS -Wall"
193 # Enable -fvisibility=hidden if using a gcc that supports it
194 save_CXXFLAGS="$CXXFLAGS"
195 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
196 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
197 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
199 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
200 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
203 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
204 CXXFLAGS=$save_CXXFLAGS
206 # Work around aliasing bugs - developers should comment this out
207 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
209 # gcc's builtin memcmp is slower than glibc's
210 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
211 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
214 dnl even if the compiler appears to support it, using visibility attributes isn't
215 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
219 VISIBILITY_CXXFLAGS=""
223 AC_SUBST([VISIBILITY_CFLAGS])
224 AC_SUBST([VISIBILITY_CXXFLAGS])
226 dnl These should be unnecessary, but let the user set them if they want
227 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
228 Default is to use CFLAGS.])
229 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
230 compiler. Default is to use CFLAGS.])
231 AC_SUBST([OPT_FLAGS])
232 AC_SUBST([ARCH_FLAGS])
235 dnl Hacks to enable 32 or 64 bit build
237 AC_ARG_ENABLE([32-bit],
238 [AS_HELP_STRING([--enable-32-bit],
239 [build 32-bit libraries @<:@default=auto@:>@])],
240 [enable_32bit="$enableval"],
243 if test "x$enable_32bit" = xyes; then
244 if test "x$GCC" = xyes; then
245 CFLAGS="$CFLAGS -m32"
246 ARCH_FLAGS="$ARCH_FLAGS -m32"
248 if test "x$GXX" = xyes; then
249 CXXFLAGS="$CXXFLAGS -m32"
252 AC_ARG_ENABLE([64-bit],
253 [AS_HELP_STRING([--enable-64-bit],
254 [build 64-bit libraries @<:@default=auto@:>@])],
255 [enable_64bit="$enableval"],
258 if test "x$enable_64bit" = xyes; then
259 if test "x$GCC" = xyes; then
260 CFLAGS="$CFLAGS -m64"
262 if test "x$GXX" = xyes; then
263 CXXFLAGS="$CXXFLAGS -m64"
268 dnl shared/static libraries, mimic libtool options
270 AC_ARG_ENABLE([static],
271 [AS_HELP_STRING([--enable-static],
272 [build static libraries @<:@default=disabled@:>@])],
273 [enable_static="$enableval"],
276 case "x$enable_static" in
278 x ) enable_static=no ;;
280 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
283 AC_ARG_ENABLE([shared],
284 [AS_HELP_STRING([--disable-shared],
285 [build shared libraries @<:@default=enabled@:>@])],
286 [enable_shared="$enableval"],
289 case "x$enable_shared" in
291 x ) enable_shared=yes ;;
293 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
297 dnl Can't have static and shared libraries, default to static if user
298 dnl explicitly requested. If both disabled, set to static since shared
299 dnl was explicitly requirested.
300 case "x$enable_static$enable_shared" in
302 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
306 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
314 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
315 if test "$enable_static" = yes; then
316 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
318 AC_SUBST([MKLIB_OPTIONS])
321 dnl other compiler options
323 AC_ARG_ENABLE([debug],
324 [AS_HELP_STRING([--enable-debug],
325 [use debug compiler flags and macros @<:@default=disabled@:>@])],
326 [enable_debug="$enableval"],
329 if test "x$enable_debug" = xyes; then
330 DEFINES="$DEFINES -DDEBUG"
331 if test "x$GCC" = xyes; then
334 if test "x$GXX" = xyes; then
335 CXXFLAGS="$CXXFLAGS -g"
342 LIB_PREFIX_GLOB='lib'
343 LIB_VERSION_SEPARATOR='.'
344 if test "$enable_static" = yes; then
349 LIB_EXTENSION='dylib' ;;
351 dnl prefix can be 'cyg' or 'lib'
352 LIB_PREFIX_GLOB='???'
353 LIB_VERSION_SEPARATOR='-'
354 LIB_EXTENSION='dll' ;;
358 LIB_EXTENSION='so' ;;
363 dnl Mangled Mesa support
365 AC_ARG_ENABLE([mangling],
366 [AS_HELP_STRING([--enable-mangling],
367 [enable mangled symbols and library name @<:@default=disabled@:>@])],
368 [enable_mangling="${enableval}"],
374 if test "x${enable_mangling}" = "xyes" ; then
375 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
378 OSMESA_LIB="MangledOSMesa"
382 AC_SUBST([OSMESA_LIB])
385 dnl potentially-infringing-but-nobody-knows-for-sure stuff
387 AC_ARG_ENABLE([texture-float],
388 [AS_HELP_STRING([--enable-texture-float],
389 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
390 [enable_texture_float="$enableval"],
391 [enable_texture_float=no]
393 if test "x$enable_texture_float" = xyes; then
394 AC_MSG_WARN([Floating-point textures enabled.])
395 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
396 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
399 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
400 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
401 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
402 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
403 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
404 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
405 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
406 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
407 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
408 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
410 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
411 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
412 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
413 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
414 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
415 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
416 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
417 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
418 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
419 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
420 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
422 AC_SUBST([GL_LIB_NAME])
423 AC_SUBST([GLU_LIB_NAME])
424 AC_SUBST([OSMESA_LIB_NAME])
425 AC_SUBST([EGL_LIB_NAME])
426 AC_SUBST([GLESv1_CM_LIB_NAME])
427 AC_SUBST([GLESv2_LIB_NAME])
428 AC_SUBST([VG_LIB_NAME])
429 AC_SUBST([GLAPI_LIB_NAME])
430 AC_SUBST([WAYLAND_EGL_LIB_NAME])
431 AC_SUBST([GBM_LIB_NAME])
433 AC_SUBST([GL_LIB_GLOB])
434 AC_SUBST([GLU_LIB_GLOB])
435 AC_SUBST([OSMESA_LIB_GLOB])
436 AC_SUBST([EGL_LIB_GLOB])
437 AC_SUBST([GLESv1_CM_LIB_GLOB])
438 AC_SUBST([GLESv2_LIB_GLOB])
439 AC_SUBST([VG_LIB_GLOB])
440 AC_SUBST([GLAPI_LIB_GLOB])
441 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
442 AC_SUBST([GBM_LIB_GLOB])
445 dnl Arch/platform-specific settings
448 [AS_HELP_STRING([--disable-asm],
449 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
450 [enable_asm="$enableval"],
457 AC_MSG_CHECKING([whether to enable assembly])
458 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
459 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
460 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
464 AC_MSG_RESULT([no, cross compiling])
468 # check for supported arches
469 if test "x$enable_asm" = xyes; then
473 linux* | *freebsd* | dragonfly* | *netbsd*)
474 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
480 linux* | *freebsd* | dragonfly* | *netbsd*)
481 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
503 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
504 MESA_ASM_SOURCES='$(X86_SOURCES)'
505 GLAPI_ASM_SOURCES='$(X86_API)'
506 AC_MSG_RESULT([yes, x86])
509 ASM_FLAGS="-DUSE_X86_64_ASM"
510 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
511 GLAPI_ASM_SOURCES='$(X86-64_API)'
512 AC_MSG_RESULT([yes, x86_64])
515 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
516 MESA_ASM_SOURCES='$(PPC_SOURCES)'
517 AC_MSG_RESULT([yes, ppc])
520 ASM_FLAGS="-DUSE_SPARC_ASM"
521 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
522 GLAPI_ASM_SOURCES='$(SPARC_API)'
523 AC_MSG_RESULT([yes, sparc])
526 AC_MSG_RESULT([no, platform not supported])
530 AC_SUBST([ASM_FLAGS])
531 AC_SUBST([MESA_ASM_SOURCES])
532 AC_SUBST([GLAPI_ASM_SOURCES])
537 dnl Check to see if dlopen is in default libraries (like Solaris, which
538 dnl has it in libc), or if libdl is needed to get it.
539 AC_CHECK_FUNC([dlopen], [],
540 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
541 AC_SUBST([DLOPEN_LIBS])
543 dnl See if posix_memalign is available
544 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
546 dnl SELinux awareness.
547 AC_ARG_ENABLE([selinux],
548 [AS_HELP_STRING([--enable-selinux],
549 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
550 [MESA_SELINUX="$enableval"],
552 if test "x$enable_selinux" = "xyes"; then
553 AC_CHECK_HEADER([selinux/selinux.h],[],
554 [AC_MSG_ERROR([SELinux headers not found])])
555 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
556 [AC_MSG_ERROR([SELinux library not found])])
557 SELINUX_LIBS="-lselinux"
558 DEFINES="$DEFINES -DMESA_SELINUX"
562 AC_ARG_ENABLE([opengl],
563 [AS_HELP_STRING([--disable-opengl],
564 [disable support for standard OpenGL API @<:@default=no@:>@])],
565 [enable_opengl="$enableval"],
567 AC_ARG_ENABLE([gles1],
568 [AS_HELP_STRING([--enable-gles1],
569 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
570 [enable_gles1="$enableval"],
572 AC_ARG_ENABLE([gles2],
573 [AS_HELP_STRING([--enable-gles2],
574 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
575 [enable_gles2="$enableval"],
577 AC_ARG_ENABLE([openvg],
578 [AS_HELP_STRING([--enable-openvg],
579 [enable support for OpenVG API @<:@default=no@:>@])],
580 [enable_openvg="$enableval"],
584 [AS_HELP_STRING([--enable-dri],
585 [enable DRI modules @<:@default=auto@:>@])],
586 [enable_dri="$enableval"],
589 [AS_HELP_STRING([--enable-glx],
590 [enable GLX library @<:@default=auto@:>@])],
591 [enable_glx="$enableval"],
593 AC_ARG_ENABLE([osmesa],
594 [AS_HELP_STRING([--enable-osmesa],
595 [enable OSMesa library @<:@default=auto@:>@])],
596 [enable_osmesa="$enableval"],
597 [enable_osmesa=auto])
599 [AS_HELP_STRING([--disable-egl],
600 [disable EGL library @<:@default=enabled@:>@])],
601 [enable_egl="$enableval"],
604 AC_ARG_ENABLE([xorg],
605 [AS_HELP_STRING([--enable-xorg],
606 [enable support for X.Org DDX API @<:@default=no@:>@])],
607 [enable_xorg="$enableval"],
610 [AS_HELP_STRING([--enable-xa],
611 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
612 [enable_xa="$enableval"],
614 AC_ARG_ENABLE([d3d1x],
615 [AS_HELP_STRING([--enable-d3d1x],
616 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
617 [enable_d3d1x="$enableval"],
620 [AS_HELP_STRING([--enable-gbm],
621 [enable gbm library @<:@default=auto@:>@])],
622 [enable_gbm="$enableval"],
625 AC_ARG_ENABLE([xvmc],
626 [AS_HELP_STRING([--enable-xvmc],
627 [enable xvmc library @<:@default=auto@:>@])],
628 [enable_xvmc="$enableval"],
630 AC_ARG_ENABLE([vdpau],
631 [AS_HELP_STRING([--enable-vdpau],
632 [enable vdpau library @<:@default=auto@:>@])],
633 [enable_vdpau="$enableval"],
636 [AS_HELP_STRING([--enable-va],
637 [enable va library @<:@default=auto@:>@])],
638 [enable_va="$enableval"],
641 AC_ARG_ENABLE([xlib_glx],
642 [AS_HELP_STRING([--enable-xlib-glx],
643 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
644 [enable_xlib_glx="$enableval"],
645 [enable_xlib_glx=auto])
646 AC_ARG_ENABLE([gallium_egl],
647 [AS_HELP_STRING([--enable-gallium-egl],
648 [enable optional EGL state tracker (not required
649 for EGL support in Gallium with OpenGL and OpenGL ES)
650 @<:@default=disable@:>@])],
651 [enable_gallium_egl="$enableval"],
652 [enable_gallium_egl=no])
653 AC_ARG_ENABLE([gallium_gbm],
654 [AS_HELP_STRING([--enable-gallium-gbm],
655 [enable optional gbm state tracker (not required for
656 gbm support in Gallium)
657 @<:@default=auto@:>@])],
658 [enable_gallium_gbm="$enableval"],
659 [enable_gallium_gbm=auto])
661 # Option for Gallium drivers
662 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
664 AC_ARG_WITH([gallium-drivers],
665 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
666 [comma delimited Gallium drivers list, e.g.
667 "i915,nouveau,r300,r600,svga,swrast"
668 @<:@default=r300,r600,swrast@:>@])],
669 [with_gallium_drivers="$withval"],
670 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
672 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
673 # here so that the script doesn't choke on an unknown driver name later.
674 case "$with_gallium_drivers" in
675 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
676 no) with_gallium_drivers='' ;;
679 if test "x$enable_opengl" = xno -a \
680 "x$enable_gles1" = xno -a \
681 "x$enable_gles2" = xno -a \
682 "x$enable_openvg" = xno -a \
683 "x$enable_xorg" = xno -a \
684 "x$enable_xa" = xno -a \
685 "x$enable_d3d1x" = xno -a \
686 "x$enable_xvmc" = xno -a \
687 "x$enable_vdpau" = xno -a \
688 "x$enable_va" = xno; then
689 AC_MSG_ERROR([at least one API should be enabled])
693 if test "x$enable_opengl" = xno; then
694 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
696 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
698 if test "x$enable_gles1" = xyes; then
699 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
701 if test "x$enable_gles2" = xyes; then
702 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
704 AC_SUBST([API_DEFINES])
706 AC_ARG_ENABLE([shared-glapi],
707 [AS_HELP_STRING([--enable-shared-glapi],
708 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
709 [enable_shared_glapi="$enableval"],
710 [enable_shared_glapi=no])
713 if test "x$enable_shared_glapi" = xyes; then
716 AC_SUBST([SHARED_GLAPI])
719 dnl Driver configuration. Options are xlib, dri and osmesa right now.
720 dnl More later: fbdev, ...
722 default_driver="xlib"
727 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
730 *freebsd* | dragonfly* | *netbsd*)
732 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
737 if test "x$enable_opengl" = xno; then
741 AC_ARG_WITH([driver],
742 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
743 [mesa_driver="$withval"],
745 dnl Check for valid option
746 case "x$mesa_driver" in
747 xxlib|xdri|xosmesa|xno)
748 if test "x$enable_dri" != xauto -o \
749 "x$enable_glx" != xauto -o \
750 "x$enable_osmesa" != xauto -o \
751 "x$enable_xlib_glx" != xauto; then
752 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
756 mesa_driver="$default_driver"
759 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
763 # map $mesa_driver to APIs
764 if test "x$enable_dri" = xauto; then
765 case "x$mesa_driver" in
766 xdri) enable_dri=yes ;;
771 if test "x$enable_glx" = xauto; then
772 case "x$mesa_driver" in
773 xdri|xxlib) enable_glx=yes ;;
778 if test "x$enable_osmesa" = xauto; then
779 case "x$mesa_driver" in
780 xxlib|xosmesa) enable_osmesa=yes ;;
781 *) enable_osmesa=no ;;
785 if test "x$enable_xlib_glx" = xauto; then
786 case "x$mesa_driver" in
787 xxlib) enable_xlib_glx=yes ;;
788 *) enable_xlib_glx=no ;;
792 if test "x$enable_glx" = xno; then
797 dnl Driver specific build directories
800 dnl this variable will be prepended to SRC_DIRS and is not exported
805 GALLIUM_DIRS="auxiliary drivers state_trackers"
806 GALLIUM_TARGET_DIRS=""
807 GALLIUM_WINSYS_DIRS="sw"
808 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
809 GALLIUM_STATE_TRACKERS_DIRS=""
811 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
812 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
814 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
818 # build glapi if OpenGL is enabled
819 if test "x$enable_opengl" = xyes; then
820 CORE_DIRS="$CORE_DIRS mapi/glapi"
823 # build es1api if OpenGL ES 1.x is enabled
824 if test "x$enable_gles1" = xyes; then
825 CORE_DIRS="$CORE_DIRS mapi/es1api"
828 # build es2api if OpenGL ES 2.x is enabled
829 if test "x$enable_gles2" = xyes; then
830 CORE_DIRS="$CORE_DIRS mapi/es2api"
833 # build glsl and mesa if OpenGL or OpenGL ES is enabled
834 case "x$enable_opengl$enable_gles1$enable_gles2" in
836 CORE_DIRS="$CORE_DIRS glsl mesa"
840 case "x$enable_glx$enable_xlib_glx" in
842 DRIVER_DIRS="$DRIVER_DIRS x11"
843 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
844 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
845 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
846 HAVE_WINSYS_XLIB="yes"
850 SRC_DIRS="$SRC_DIRS glx"
854 if test "x$enable_dri" = xyes; then
855 DRIVER_DIRS="$DRIVER_DIRS dri"
857 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
858 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
862 if test "x$enable_osmesa" = xyes; then
863 # the empty space matters for osmesa... (see src/mesa/Makefile)
864 if test -n "$DRIVER_DIRS"; then
865 DRIVER_DIRS="$DRIVER_DIRS osmesa"
873 AC_SUBST([DRIVER_DIRS])
874 AC_SUBST([GALLIUM_DIRS])
875 AC_SUBST([GALLIUM_TARGET_DIRS])
876 AC_SUBST([GALLIUM_WINSYS_DIRS])
877 AC_SUBST([GALLIUM_DRIVERS_DIRS])
878 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
879 AC_SUBST([MESA_LLVM])
882 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
883 [have_libdrm=yes], [have_libdrm=no])
885 if test "x$enable_dri" = xyes; then
886 # DRI must be shared, I think
887 if test "$enable_static" = yes; then
888 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
891 # not a hard requirement as swrast does not depend on it
892 if test "x$have_libdrm" = xyes; then
893 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
898 dnl Find out if X is available. The variable have_x is set if libX11 is
899 dnl found to mimic AC_PATH_XTRA.
901 if test -n "$PKG_CONFIG"; then
902 AC_MSG_CHECKING([pkg-config files for X11 are available])
903 PKG_CHECK_EXISTS([x11],[
909 AC_MSG_RESULT([$x11_pkgconfig])
913 dnl Use the autoconf macro if no pkg-config files
914 if test "$x11_pkgconfig" = yes; then
915 PKG_CHECK_MODULES([X11], [x11])
918 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
919 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
920 AC_SUBST([X11_CFLAGS])
924 dnl Try to tell the user that the --x-* options are only used when
925 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
926 m4_divert_once([HELP_BEGIN],
927 [These options are only used when the X libraries cannot be found by the
928 pkg-config utility.])
930 dnl We need X for xlib and dri, so bomb now if it's not found
931 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
932 AC_MSG_ERROR([X11 development libraries needed for GLX])
935 if test "x$enable_glx" = xyes; then
936 DEFINES="$DEFINES -DUSE_XCB"
939 dnl Direct rendering or just indirect rendering
942 dnl Disable by default on GNU/Hurd
943 driglx_direct_default="no"
946 dnl Disable by default on cygwin
947 driglx_direct_default="no"
950 driglx_direct_default="yes"
953 AC_ARG_ENABLE([driglx-direct],
954 [AS_HELP_STRING([--disable-driglx-direct],
955 [enable direct rendering in GLX and EGL for DRI \
956 @<:@default=auto@:>@])],
957 [driglx_direct="$enableval"],
958 [driglx_direct="$driglx_direct_default"])
961 dnl libGL configuration per driver
963 case "x$enable_glx$enable_xlib_glx" in
966 if test "$x11_pkgconfig" = yes; then
967 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
968 GL_PC_REQ_PRIV="x11 xext"
969 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
970 GL_LIB_DEPS="$XLIBGL_LIBS"
972 # should check these...
973 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
974 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
975 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
976 GL_PC_CFLAGS="$X11_INCLUDES"
978 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
979 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
983 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
984 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
985 if test x"$driglx_direct" = xyes; then
986 if test "x$have_libdrm" != xyes; then
987 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
989 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
990 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
993 # find the DRI deps for libGL
994 if test "$x11_pkgconfig" = yes; then
995 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
997 # add xf86vidmode if available
998 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
999 if test "$HAVE_XF86VIDMODE" = yes ; then
1000 dri_modules="$dri_modules xxf86vm"
1003 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
1004 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1005 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
1006 GL_LIB_DEPS="$DRIGL_LIBS"
1008 # should check these...
1009 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
1010 if test "x$HAVE_XF86VIDMODE" == xyes; then
1011 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
1013 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1015 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1016 GL_PC_CFLAGS="$X11_INCLUDES"
1018 # XCB can only be used from pkg-config
1019 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1020 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1021 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1022 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1025 # Check to see if the xcb-glx library is new enough to support
1026 # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
1028 save_CPPFLAGS="$CPPFLAGS"
1029 save_LDFLAGS="$LDFLAGS"
1030 CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
1031 LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
1032 AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
1033 [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
1034 [HAVE_XCB_GLX_CREATE_CONTEXT=no])
1035 CPPFLAGS="$save_CPPFLAGS"
1036 LDFLAGS="$save_LDFLAGS"
1038 if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
1039 X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
1042 # need DRM libs, -lpthread, etc.
1043 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1044 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1048 # This is outside the case (above) so that it is invoked even for non-GLX
1050 AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
1051 test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
1053 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1054 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1055 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1056 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1058 AC_SUBST([GL_LIB_DEPS])
1059 AC_SUBST([GL_PC_REQ_PRIV])
1060 AC_SUBST([GL_PC_LIB_PRIV])
1061 AC_SUBST([GL_PC_CFLAGS])
1062 AC_SUBST([DRI_PC_REQ_PRIV])
1063 AC_SUBST([GLESv1_CM_LIB_DEPS])
1064 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1065 AC_SUBST([GLESv2_LIB_DEPS])
1066 AC_SUBST([GLESv2_PC_LIB_PRIV])
1068 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1069 AC_SUBST([GLAPI_LIB_DEPS])
1072 dnl Setup default DRI CFLAGS
1073 DRI_CFLAGS='$(CFLAGS)'
1074 DRI_CXXFLAGS='$(CXXFLAGS)'
1075 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1076 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1078 AC_ARG_ENABLE([shared-dricore],
1079 [AS_HELP_STRING([--enable-shared-dricore],
1080 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1081 [enable_dricore="$enableval"],
1082 [enable_dricore=no])
1083 if test "x$enable_dri" = xyes ; then
1084 if test "$enable_dricore" = yes ; then
1085 if test "$GCC$GXX" != yesyes ; then
1086 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1089 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1090 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1091 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1092 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1093 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1094 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1095 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1099 AC_SUBST([DRICORE_LIBS])
1100 AC_SUBST([DRICORE_GLSL_LIBS])
1101 AC_SUBST([DRICORE_LIB_DEPS])
1102 AC_SUBST([DRI_CXXFLAGS])
1103 AC_SUBST([DRI_CFLAGS])
1104 AC_SUBST([MESA_MODULES])
1106 AC_SUBST([HAVE_XF86VIDMODE])
1111 case "x$enable_glx$enable_xlib_glx" in
1113 DEFINES="$DEFINES -DUSE_XSHM"
1116 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1117 if test "x$driglx_direct" = xyes; then
1118 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1127 AC_ARG_ENABLE([glx-tls],
1128 [AS_HELP_STRING([--enable-glx-tls],
1129 [enable TLS support in GLX @<:@default=disabled@:>@])],
1130 [GLX_USE_TLS="$enableval"],
1132 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1134 AS_IF([test "x$GLX_USE_TLS" = xyes],
1135 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1140 dnl Directory for DRI drivers
1141 AC_ARG_WITH([dri-driverdir],
1142 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1143 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1144 [DRI_DRIVER_INSTALL_DIR="$withval"],
1145 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1146 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1147 dnl Extra search path for DRI drivers
1148 AC_ARG_WITH([dri-searchpath],
1149 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1150 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1151 [DRI_DRIVER_SEARCH_DIR="$withval"],
1152 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1153 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1154 dnl Which drivers to build - default is chosen by platform
1155 AC_ARG_WITH([dri-drivers],
1156 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1157 [comma delimited DRI drivers list, e.g.
1158 "swrast,i965,radeon" @<:@default=auto@:>@])],
1159 [with_dri_drivers="$withval"],
1160 [with_dri_drivers=yes])
1161 if test "x$with_dri_drivers" = x; then
1165 dnl If $with_dri_drivers is yes, directories will be added through
1168 case "$with_dri_drivers" in
1171 # classic DRI drivers require FEATURE_GL to build
1172 if test "x$enable_opengl" = xyes; then
1177 # verify the requested driver directories exist
1178 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1179 for driver in $dri_drivers; do
1180 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1181 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1183 DRI_DIRS="$dri_drivers"
1184 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1185 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1190 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1191 if test "x$enable_dri" = xyes; then
1192 # Platform specific settings and drivers to build
1195 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1196 DEFINES="$DEFINES -DHAVE_ALIAS"
1200 if test "x$DRI_DIRS" = "xyes"; then
1201 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1205 # Build only the drivers for cards that exist on PowerPC.
1206 if test "x$DRI_DIRS" = "xyes"; then
1207 DRI_DIRS="r200 radeon swrast"
1211 # Build only the drivers for cards that exist on sparc
1212 if test "x$DRI_DIRS" = "xyes"; then
1213 DRI_DIRS="r200 radeon swrast"
1218 freebsd* | dragonfly* | *netbsd*)
1219 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1220 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1222 if test "x$DRI_DIRS" = "xyes"; then
1223 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1227 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1228 DEFINES="$DEFINES -DHAVE_ALIAS"
1231 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1234 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1235 if test "x$DRI_DIRS" = "xyes"; then
1242 if test "x$DRI_DIRS" = "xyes"; then
1243 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1246 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1249 if test "x$enable_dri" = xyes; then
1252 AC_ARG_WITH([expat],
1253 [AS_HELP_STRING([--with-expat=DIR],
1254 [expat install directory])],[
1255 EXPAT_INCLUDES="-I$withval/include"
1256 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1257 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1258 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1260 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1261 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1262 [AC_MSG_ERROR([Expat required for DRI.])])
1265 # libdrm is required for all except swrast
1266 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1267 if test "x$have_libdrm" != xyes; then
1268 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1272 # put all the necessary libs together, including possibly libdricore
1273 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1275 AC_SUBST([DRI_DIRS])
1276 AC_SUBST([EXPAT_INCLUDES])
1277 AC_SUBST([DRI_LIB_DEPS])
1281 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1287 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1293 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1299 dnl OSMesa configuration
1302 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1303 AC_ARG_WITH([osmesa-bits],
1304 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1305 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1306 [osmesa_bits="$withval"],
1308 if test "x$osmesa_bits" != x8; then
1309 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1310 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1314 case "x$osmesa_bits" in
1316 OSMESA_LIB="${OSMESA_LIB}"
1319 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1320 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1323 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1327 if test "x$enable_osmesa" = xyes; then
1328 # only link libraries with osmesa if shared
1329 if test "$enable_static" = no; then
1330 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1335 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1337 AC_SUBST([OSMESA_LIB_DEPS])
1338 AC_SUBST([OSMESA_MESA_DEPS])
1339 AC_SUBST([OSMESA_PC_REQ])
1340 AC_SUBST([OSMESA_PC_LIB_PRIV])
1343 dnl gbm configuration
1345 if test "x$enable_gbm" = xauto; then
1346 case "$with_egl_platforms" in
1353 if test "x$enable_gbm" = xyes; then
1354 SRC_DIRS="$SRC_DIRS gbm"
1357 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1358 AC_MSG_ERROR([gbm needs udev]))
1359 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1361 if test "x$enable_dri" = xyes; then
1362 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1363 if test "$SHARED_GLAPI" -eq 0; then
1364 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1368 AC_SUBST([GBM_LIB_DEPS])
1369 AC_SUBST([GBM_BACKEND_DIRS])
1370 GBM_PC_REQ_PRIV="libudev"
1371 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1373 AC_SUBST([GBM_PC_REQ_PRIV])
1374 AC_SUBST([GBM_PC_LIB_PRIV])
1375 AC_SUBST([GBM_PC_CFLAGS])
1378 dnl EGL configuration
1382 if test "x$enable_egl" = xyes; then
1383 SRC_DIRS="$SRC_DIRS egl"
1384 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1387 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1389 if test "$enable_static" != yes; then
1390 # build egl_glx when libGL is built
1391 if test "x$enable_glx" = xyes; then
1392 EGL_DRIVERS_DIRS="glx"
1395 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1396 [have_libudev=yes],[have_libudev=no])
1397 if test "$have_libudev" = yes; then
1398 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1400 if test "x$enable_dri" = xyes; then
1401 # build egl_dri2 when xcb-dri2 is available
1402 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1403 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1405 if test "$have_xcb_dri2" = yes; then
1406 EGL_DRIVER_DRI2=dri2
1407 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1408 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1409 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1410 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1414 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1417 AC_SUBST([EGL_LIB_DEPS])
1418 AC_SUBST([EGL_DRIVERS_DIRS])
1421 dnl EGL Gallium configuration
1423 if test "x$enable_gallium_egl" = xyes; then
1424 if test "x$with_gallium_drivers" = x; then
1425 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1427 if test "x$enable_egl" = xno; then
1428 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1430 if test "x$have_libdrm" != xyes; then
1431 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1434 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1435 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1440 dnl gbm Gallium configuration
1442 if test "x$enable_gallium_gbm" = xauto; then
1443 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1445 enable_gallium_gbm=yes ;;
1447 enable_gallium_gbm=no ;;
1450 if test "x$enable_gallium_gbm" = xyes; then
1451 if test "x$with_gallium_drivers" = x; then
1452 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1454 if test "x$enable_gbm" = xno; then
1455 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1457 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1458 if test "x$enable_dri" = xno; then
1459 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1462 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1463 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1468 dnl X.Org DDX configuration
1470 if test "x$enable_xorg" = xyes; then
1471 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1472 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1473 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1474 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1475 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1476 HAVE_XEXTPROTO_71="no")
1477 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1482 dnl XA configuration
1484 if test "x$enable_xa" = xyes; then
1487 AC_CHECK_PROG(NM, nm, "nm")
1488 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1489 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1493 if test "x$enable_xa" = xyes; then
1494 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1502 dnl OpenVG configuration
1506 if test "x$enable_openvg" = xyes; then
1507 if test "x$enable_egl" = xno; then
1508 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1510 if test "x$with_gallium_drivers" = x; then
1511 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1513 if test "x$enable_gallium_egl" = xno; then
1514 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1517 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1518 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1519 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1520 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1525 dnl D3D1X configuration
1528 if test "x$enable_d3d1x" = xyes; then
1529 if test "x$with_gallium_drivers" = x; then
1530 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1533 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1538 dnl Gallium G3DVL configuration
1540 AC_ARG_ENABLE([gallium-g3dvl],
1541 [AS_HELP_STRING([--enable-gallium-g3dvl],
1542 [build gallium g3dvl @<:@default=disabled@:>@])],
1543 [enable_gallium_g3dvl="$enableval"],
1544 [enable_gallium_g3dvl=no])
1545 if test "x$enable_gallium_g3dvl" = xyes; then
1546 if test "x$with_gallium_drivers" = x; then
1547 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1550 if test "x$enable_xvmc" = xauto; then
1551 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1554 if test "x$enable_vdpau" = xauto; then
1555 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1558 if test "x$enable_va" = xauto; then
1559 #don't enable vaapi state tracker even if package exists
1560 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1565 if test "x$enable_xvmc" = xyes; then
1566 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6])
1567 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1571 if test "x$enable_vdpau" = xyes; then
1572 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1573 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1577 if test "x$enable_va" = xyes; then
1578 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1579 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1580 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1585 dnl GLU configuration
1587 AC_ARG_ENABLE([glu],
1588 [AS_HELP_STRING([--disable-glu],
1589 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1590 [enable_glu="$enableval"],
1593 if test "x$enable_glu" = xyes; then
1594 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1595 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1600 if test "x$enable_glu" = xyes; then
1601 SRC_DIRS="$SRC_DIRS glu"
1603 if test "x$enable_glx" = xno; then
1604 # Link libGLU to libOSMesa instead of libGL
1607 if test "$enable_static" = no; then
1608 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1613 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1615 GLU_PC_LIB_PRIV="-lm"
1616 if test "$enable_static" = no; then
1618 GLU_MESA_DEPS='-l$(GL_LIB)'
1625 if test "$enable_static" = no; then
1626 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1628 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1629 AC_SUBST([GLU_LIB_DEPS])
1630 AC_SUBST([GLU_MESA_DEPS])
1631 AC_SUBST([GLU_PC_REQ])
1632 AC_SUBST([GLU_PC_REQ_PRIV])
1633 AC_SUBST([GLU_PC_LIB_PRIV])
1634 AC_SUBST([GLU_PC_CFLAGS])
1636 AC_SUBST([PROGRAM_DIRS])
1639 dnl Gallium configuration
1641 if test "x$with_gallium_drivers" != x; then
1642 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1645 AC_SUBST([LLVM_CFLAGS])
1646 AC_SUBST([LLVM_LIBS])
1647 AC_SUBST([LLVM_LDFLAGS])
1648 AC_SUBST([LLVM_VERSION])
1650 case "x$enable_opengl$enable_gles1$enable_gles2" in
1652 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1656 AC_SUBST([VG_LIB_DEPS])
1657 AC_SUBST([EGL_CLIENT_APIS])
1659 AC_ARG_WITH([egl-platforms],
1660 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1661 [comma delimited native platforms libEGL supports, e.g.
1662 "x11,drm" @<:@default=auto@:>@])],
1663 [with_egl_platforms="$withval"],
1664 [with_egl_platforms=yes])
1667 WAYLAND_EGL_LIB_DEPS=""
1669 case "$with_egl_platforms" in
1671 if test "x$enable_egl" = xyes; then
1676 if test "x$enable_egl" != xyes; then
1677 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1679 # verify the requested driver directories exist
1680 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1681 for plat in $egl_platforms; do
1682 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1683 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1684 if test "$plat" = "fbdev"; then
1685 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1687 if test "$plat" = "null"; then
1688 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1690 if test "$plat" = "wayland"; then
1691 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1692 [AC_MSG_ERROR([cannot find libwayland-client])])
1693 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1694 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1696 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1697 AC_MSG_ERROR([EGL platform drm needs gbm])
1699 case "$plat$have_libudev" in
1701 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1704 EGL_PLATFORMS="$egl_platforms"
1707 AC_SUBST([EGL_PLATFORMS])
1709 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1710 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1711 WAYLAND_EGL_PC_LIB_PRIV=
1712 WAYLAND_EGL_PC_CFLAGS=
1714 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1715 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1716 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1719 AC_ARG_WITH([egl-driver-dir],
1720 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1721 [directory for EGL drivers [[default=${libdir}/egl]]])],
1722 [EGL_DRIVER_INSTALL_DIR="$withval"],
1723 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1724 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1726 AC_ARG_WITH([xorg-driver-dir],
1727 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1728 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1729 [XORG_DRIVER_INSTALL_DIR="$withval"],
1730 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1731 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1733 AC_ARG_WITH([max-width],
1734 [AS_HELP_STRING([--with-max-width=N],
1735 [Maximum framebuffer width (4096)])],
1736 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1737 AS_IF([test "${withval}" -gt "4096"],
1738 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1740 AC_ARG_WITH([max-height],
1741 [AS_HELP_STRING([--with-max-height=N],
1742 [Maximum framebuffer height (4096)])],
1743 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1744 AS_IF([test "${withval}" -gt "4096"],
1745 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1751 AC_ARG_ENABLE([gallium-llvm],
1752 [AS_HELP_STRING([--enable-gallium-llvm],
1753 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1754 [enable_gallium_llvm="$enableval"],
1755 [enable_gallium_llvm=auto])
1756 if test "x$with_gallium_drivers" = x; then
1757 enable_gallium_llvm=no
1759 if test "x$enable_gallium_llvm" = xauto; then
1761 i*86|x86_64) enable_gallium_llvm=yes;;
1764 if test "x$enable_gallium_llvm" = xyes; then
1765 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1767 if test "x$LLVM_CONFIG" != xno; then
1768 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1769 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1770 LLVM_LIBS="`$LLVM_CONFIG --libs`"
1772 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1773 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1782 dnl Directory for VDPAU libs
1783 AC_ARG_WITH([vdpau-libdir],
1784 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1785 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1786 [VDPAU_LIB_INSTALL_DIR="$withval"],
1787 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1788 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1790 dnl Directory for VA libs
1791 AC_ARG_WITH([va-libdir],
1792 [AS_HELP_STRING([--with-va-libdir=DIR],
1793 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1794 [VA_LIB_INSTALL_DIR="$withval"],
1795 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1796 AC_SUBST([VA_LIB_INSTALL_DIR])
1799 dnl Gallium helper functions
1801 gallium_check_st() {
1802 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1803 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1804 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1805 if test "x$have_libdrm" != xyes; then
1806 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1808 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1810 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1811 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1813 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1814 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1816 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1817 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1819 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1820 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1821 NEED_G3DVL_DRI="yes"
1823 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1824 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1825 NEED_G3DVL_DRI="yes"
1827 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1828 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1829 NEED_G3DVL_DRI="yes"
1833 gallium_require_llvm() {
1834 if test "x$MESA_LLVM" = x0; then
1836 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1842 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1843 if test "x$with_gallium_drivers" != x; then
1844 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1845 for driver in $gallium_drivers; do
1848 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1849 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1852 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1853 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1854 if test "x$MESA_LLVM" = x1; then
1855 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1857 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1858 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1861 gallium_require_llvm "Gallium R300"
1862 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1863 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1866 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1867 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1870 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1871 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1872 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1875 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1876 if test "x$MESA_LLVM" = x1; then
1877 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1880 if test "x$HAVE_ST_DRI" = xyes; then
1881 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1883 if test "x$HAVE_ST_VDPAU" = xyes; then
1884 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1886 if test "x$HAVE_ST_XVMC" = xyes; then
1887 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1889 if test "x$HAVE_ST_VA" = xyes; then
1890 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1892 if test "x$HAVE_ST_VDPAU" = xyes ||
1893 test "x$HAVE_ST_XVMC" = xyes ||
1894 test "x$HAVE_ST_VA" = xyes; then
1895 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1896 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1901 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1907 if test "x$NEED_G3DVL_DRI" = xyes; then
1908 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1911 dnl prepend CORE_DIRS to SRC_DIRS
1912 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1914 dnl Restore LDFLAGS and CPPFLAGS
1915 LDFLAGS="$_SAVE_LDFLAGS"
1916 CPPFLAGS="$_SAVE_CPPFLAGS"
1918 dnl Add user CFLAGS and CXXFLAGS
1919 CFLAGS="$CFLAGS $USER_CFLAGS"
1920 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1922 dnl Substitute the config
1923 AC_CONFIG_FILES([configs/autoconf
1925 tests/glx/Makefile])
1927 dnl Replace the configs/current symlink
1928 AC_CONFIG_COMMANDS([configs],[
1929 if test -f configs/current || test -L configs/current; then
1930 rm -f configs/current
1932 ln -s autoconf configs/current
1935 dnl Sort the dirs alphabetically
1936 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1937 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1938 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1939 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1944 dnl Output some configuration info for the user
1947 echo " prefix: $prefix"
1948 echo " exec_prefix: $exec_prefix"
1949 echo " libdir: $libdir"
1950 echo " includedir: $includedir"
1954 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1955 echo " OpenVG: $enable_openvg"
1959 if test "x$enable_osmesa" != xno; then
1960 echo " OSMesa: lib$OSMESA_LIB"
1965 if test "x$enable_dri" != xno; then
1966 # cleanup the drivers var
1967 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1968 if test "x$DRI_DIRS" = x; then
1969 echo " DRI drivers: no"
1971 echo " DRI drivers: $dri_dirs"
1973 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1974 echo " Shared dricore: $enable_dricore"
1977 case "x$enable_glx$enable_xlib_glx" in
1979 echo " GLX: Xlib-based"
1982 echo " GLX: DRI-based"
1985 echo " GLX: $enable_glx"
1990 echo " GLU: $enable_glu"
1994 echo " EGL: $enable_egl"
1995 if test "$enable_egl" = yes; then
1996 echo " EGL platforms: $EGL_PLATFORMS"
1999 for d in $EGL_DRIVERS_DIRS; do
2000 egl_drivers="$egl_drivers builtin:egl_$d"
2003 if test "x$HAVE_ST_EGL" = xyes; then
2004 echo " EGL drivers: ${egl_drivers} egl_gallium"
2005 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2007 echo " EGL drivers: $egl_drivers"
2012 if test "x$MESA_LLVM" = x1; then
2014 echo " llvm-config: $LLVM_CONFIG"
2015 echo " llvm-version: $LLVM_VERSION"
2021 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2022 echo " Gallium: yes"
2023 echo " Gallium dirs: $GALLIUM_DIRS"
2024 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2025 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2026 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2027 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2035 echo " Shared libs: $enable_shared"
2036 echo " Static libs: $enable_static"
2038 dnl Compiler options
2039 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2040 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2041 $SED 's/^ *//;s/ */ /;s/ *$//'`
2042 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2043 $SED 's/^ *//;s/ */ /;s/ *$//'`
2044 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2046 echo " CFLAGS: $cflags"
2047 echo " CXXFLAGS: $cxxflags"
2048 echo " Macros: $defines"
2050 echo " PYTHON2: $PYTHON2"
2053 echo " Run '${MAKE-make}' to build Mesa"