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])
58 AC_PATH_PROG([YACC_INST], $YACC)
59 if test ! -f "$srcdir/src/glsl/glcpp/glcpp-parse.y"; then
60 if test -z "$YACC_INST"; then
61 AC_MSG_ERROR([yacc not found - unable to compile glcpp-parse.y])
66 dnl Our fallback install-sh is a symlink to minstall. Use the existing
67 dnl configuration in that case.
69 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
71 dnl We need a POSIX shell for parts of the build. Assume we have one
75 # Solaris /bin/sh is too old/non-POSIX compliant
76 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
81 AC_PATH_PROG([GTESTCONFIG], [gtest-config])
82 if test "x$GTESTCONFIG" != "x"; then
83 GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
84 GTEST_LIBS=`gtest-config --ldflags --libs`
85 AC_SUBST([GTEST_CFLAGS])
86 AC_SUBST([GTEST_LIBS])
91 AM_CONDITIONAL(HAVE_GTEST, test x$HAVE_GTEST = xyes)
93 dnl clang is mostly GCC-compatible, but its version is much lower,
94 dnl so we have to check for it.
95 AC_MSG_CHECKING([if compiling with clang])
98 [AC_LANG_PROGRAM([], [[
103 [acv_mesa_CLANG=yes], [acv_mesa_CLANG=no])
105 AC_MSG_RESULT([$acv_mesa_CLANG])
107 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
108 dnl versions are explictly not supported.
109 if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
110 AC_MSG_CHECKING([whether gcc version is sufficient])
114 GCC_VERSION=`$CC -dumpversion`
115 if test $? -eq 0; then
116 major=`echo $GCC_VERSION | cut -d. -f1`
117 minor=`echo $GCC_VERSION | cut -d. -f2`
120 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
122 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
129 MKDEP_OPTIONS=-fdepend
130 dnl Ask gcc where it's keeping its secret headers
131 if test "x$GCC" = xyes; then
132 for dir in include include-fixed; do
133 GCC_INCLUDES=`$CC -print-file-name=$dir`
134 if test "x$GCC_INCLUDES" != x && \
135 test "$GCC_INCLUDES" != "$dir" && \
136 test -d "$GCC_INCLUDES"; then
137 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
141 AC_SUBST([MKDEP_OPTIONS])
143 dnl Make sure the pkg-config macros are defined
144 m4_ifndef([PKG_PROG_PKG_CONFIG],
145 [m4_fatal([Could not locate the pkg-config autoconf macros.
146 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
147 are in a different location, try setting the environment variable
148 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
149 PKG_PROG_PKG_CONFIG()
151 dnl LIB_DIR - library basename
152 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
155 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
156 _SAVE_LDFLAGS="$LDFLAGS"
157 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
158 AC_SUBST([EXTRA_LIB_PATH])
160 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
161 _SAVE_CPPFLAGS="$CPPFLAGS"
162 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
163 AC_SUBST([X11_INCLUDES])
170 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
173 DEFINES="$DEFINES -DPTHREADS -DSVR4"
176 DEFINES="$DEFINES -DPTHREADS"
180 dnl Add flags for gcc and g++
181 if test "x$GCC" = xyes; then
182 CFLAGS="$CFLAGS -Wall -std=c99"
184 # Enable -Werror=implicit-function-declaration and
185 # -Werror=missing-prototypes, if available, or otherwise, just
186 # -Wmissing-prototypes. This is particularly useful to avoid
187 # generating a loadable driver module that has undefined symbols.
188 save_CFLAGS="$CFLAGS"
189 AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
190 CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
191 CFLAGS="$CFLAGS -Werror=missing-prototypes"
192 AC_LINK_IFELSE([AC_LANG_PROGRAM()],
193 AC_MSG_RESULT([yes]),
194 [CFLAGS="$save_CFLAGS -Wmissing-prototypes";
195 AC_MSG_RESULT([no])]);
197 # Enable -fvisibility=hidden if using a gcc that supports it
198 save_CFLAGS="$CFLAGS"
199 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
200 VISIBILITY_CFLAGS="-fvisibility=hidden"
201 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
202 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
203 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
205 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
208 # Work around aliasing bugs - developers should comment this out
209 CFLAGS="$CFLAGS -fno-strict-aliasing"
211 # gcc's builtin memcmp is slower than glibc's
212 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
213 CFLAGS="$CFLAGS -fno-builtin-memcmp"
215 if test "x$GXX" = xyes; then
216 CXXFLAGS="$CXXFLAGS -Wall"
218 # Enable -fvisibility=hidden if using a gcc that supports it
219 save_CXXFLAGS="$CXXFLAGS"
220 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
221 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
222 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
224 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
225 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
228 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
229 CXXFLAGS=$save_CXXFLAGS
231 # Work around aliasing bugs - developers should comment this out
232 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
234 # gcc's builtin memcmp is slower than glibc's
235 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
236 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
239 dnl even if the compiler appears to support it, using visibility attributes isn't
240 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
244 VISIBILITY_CXXFLAGS=""
248 AC_SUBST([VISIBILITY_CFLAGS])
249 AC_SUBST([VISIBILITY_CXXFLAGS])
251 dnl These should be unnecessary, but let the user set them if they want
252 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
253 Default is to use CFLAGS.])
254 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
255 compiler. Default is to use CFLAGS.])
256 AC_SUBST([OPT_FLAGS])
257 AC_SUBST([ARCH_FLAGS])
260 dnl Hacks to enable 32 or 64 bit build
262 AC_ARG_ENABLE([32-bit],
263 [AS_HELP_STRING([--enable-32-bit],
264 [build 32-bit libraries @<:@default=auto@:>@])],
265 [enable_32bit="$enableval"],
268 if test "x$enable_32bit" = xyes; then
269 if test "x$GCC" = xyes; then
270 CFLAGS="$CFLAGS -m32"
271 ARCH_FLAGS="$ARCH_FLAGS -m32"
273 if test "x$GXX" = xyes; then
274 CXXFLAGS="$CXXFLAGS -m32"
277 AC_ARG_ENABLE([64-bit],
278 [AS_HELP_STRING([--enable-64-bit],
279 [build 64-bit libraries @<:@default=auto@:>@])],
280 [enable_64bit="$enableval"],
283 if test "x$enable_64bit" = xyes; then
284 if test "x$GCC" = xyes; then
285 CFLAGS="$CFLAGS -m64"
287 if test "x$GXX" = xyes; then
288 CXXFLAGS="$CXXFLAGS -m64"
292 dnl Can't have static and shared libraries, default to static if user
293 dnl explicitly requested. If both disabled, set to static since shared
294 dnl was explicitly requested.
295 case "x$enable_static$enable_shared" in
297 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
301 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
305 AM_CONDITIONAL(BUILD_STATIC, test "x$enable_static" = xyes)
306 AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes)
311 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
312 if test "$enable_static" = yes; then
313 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
315 AC_SUBST([MKLIB_OPTIONS])
318 dnl other compiler options
320 AC_ARG_ENABLE([debug],
321 [AS_HELP_STRING([--enable-debug],
322 [use debug compiler flags and macros @<:@default=disabled@:>@])],
323 [enable_debug="$enableval"],
326 if test "x$enable_debug" = xyes; then
327 DEFINES="$DEFINES -DDEBUG"
328 if test "x$GCC" = xyes; then
331 if test "x$GXX" = xyes; then
332 CXXFLAGS="$CXXFLAGS -g"
339 LIB_PREFIX_GLOB='lib'
340 LIB_VERSION_SEPARATOR='.'
341 if test "$enable_static" = yes; then
346 LIB_EXTENSION='dylib' ;;
348 dnl prefix can be 'cyg' or 'lib'
349 LIB_PREFIX_GLOB='???'
350 LIB_VERSION_SEPARATOR='-'
351 LIB_EXTENSION='dll' ;;
355 LIB_EXTENSION='so' ;;
360 dnl Mangled Mesa support
362 AC_ARG_ENABLE([mangling],
363 [AS_HELP_STRING([--enable-mangling],
364 [enable mangled symbols and library name @<:@default=disabled@:>@])],
365 [enable_mangling="${enableval}"],
371 if test "x${enable_mangling}" = "xyes" ; then
372 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
375 OSMESA_LIB="MangledOSMesa"
379 AC_SUBST([OSMESA_LIB])
382 dnl potentially-infringing-but-nobody-knows-for-sure stuff
384 AC_ARG_ENABLE([texture-float],
385 [AS_HELP_STRING([--enable-texture-float],
386 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
387 [enable_texture_float="$enableval"],
388 [enable_texture_float=no]
390 if test "x$enable_texture_float" = xyes; then
391 AC_MSG_WARN([Floating-point textures enabled.])
392 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
393 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
396 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
397 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
398 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
399 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
400 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
401 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
402 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
403 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
405 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
406 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
407 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
408 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
409 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
410 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
411 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
412 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
413 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
415 AC_SUBST([GL_LIB_NAME])
416 AC_SUBST([GLU_LIB_NAME])
417 AC_SUBST([OSMESA_LIB_NAME])
418 AC_SUBST([EGL_LIB_NAME])
419 AC_SUBST([GLESv1_CM_LIB_NAME])
420 AC_SUBST([GLESv2_LIB_NAME])
421 AC_SUBST([VG_LIB_NAME])
422 AC_SUBST([GLAPI_LIB_NAME])
424 AC_SUBST([GL_LIB_GLOB])
425 AC_SUBST([GLU_LIB_GLOB])
426 AC_SUBST([OSMESA_LIB_GLOB])
427 AC_SUBST([EGL_LIB_GLOB])
428 AC_SUBST([GLESv1_CM_LIB_GLOB])
429 AC_SUBST([GLESv2_LIB_GLOB])
430 AC_SUBST([VG_LIB_GLOB])
431 AC_SUBST([GLAPI_LIB_GLOB])
434 dnl Arch/platform-specific settings
437 [AS_HELP_STRING([--disable-asm],
438 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
439 [enable_asm="$enableval"],
446 AC_MSG_CHECKING([whether to enable assembly])
447 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
448 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
449 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
453 AC_MSG_RESULT([no, cross compiling])
457 # check for supported arches
458 if test "x$enable_asm" = xyes; then
462 linux* | *freebsd* | dragonfly* | *netbsd*)
463 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
469 linux* | *freebsd* | dragonfly* | *netbsd*)
470 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
492 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
493 MESA_ASM_SOURCES='$(X86_SOURCES)'
494 GLAPI_ASM_SOURCES='$(X86_API)'
495 AC_MSG_RESULT([yes, x86])
498 ASM_FLAGS="-DUSE_X86_64_ASM"
499 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
500 GLAPI_ASM_SOURCES='$(X86-64_API)'
501 AC_MSG_RESULT([yes, x86_64])
504 ASM_FLAGS="-DUSE_SPARC_ASM"
505 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
506 GLAPI_ASM_SOURCES='$(SPARC_API)'
507 AC_MSG_RESULT([yes, sparc])
510 AC_MSG_RESULT([no, platform not supported])
514 AC_SUBST([ASM_FLAGS])
515 AC_SUBST([MESA_ASM_SOURCES])
516 AC_SUBST([GLAPI_ASM_SOURCES])
521 dnl Check to see if dlopen is in default libraries (like Solaris, which
522 dnl has it in libc), or if libdl is needed to get it.
523 AC_CHECK_FUNC([dlopen], [],
524 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
525 AC_SUBST([DLOPEN_LIBS])
527 dnl See if posix_memalign is available
528 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
530 dnl SELinux awareness.
531 AC_ARG_ENABLE([selinux],
532 [AS_HELP_STRING([--enable-selinux],
533 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
534 [MESA_SELINUX="$enableval"],
536 if test "x$enable_selinux" = "xyes"; then
537 AC_CHECK_HEADER([selinux/selinux.h],[],
538 [AC_MSG_ERROR([SELinux headers not found])])
539 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
540 [AC_MSG_ERROR([SELinux library not found])])
541 SELINUX_LIBS="-lselinux"
542 DEFINES="$DEFINES -DMESA_SELINUX"
546 AC_ARG_ENABLE([opengl],
547 [AS_HELP_STRING([--disable-opengl],
548 [disable support for standard OpenGL API @<:@default=no@:>@])],
549 [enable_opengl="$enableval"],
551 AC_ARG_ENABLE([gles1],
552 [AS_HELP_STRING([--enable-gles1],
553 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
554 [enable_gles1="$enableval"],
556 AC_ARG_ENABLE([gles2],
557 [AS_HELP_STRING([--enable-gles2],
558 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
559 [enable_gles2="$enableval"],
561 AC_ARG_ENABLE([openvg],
562 [AS_HELP_STRING([--enable-openvg],
563 [enable support for OpenVG API @<:@default=no@:>@])],
564 [enable_openvg="$enableval"],
568 [AS_HELP_STRING([--enable-dri],
569 [enable DRI modules @<:@default=auto@:>@])],
570 [enable_dri="$enableval"],
573 [AS_HELP_STRING([--enable-glx],
574 [enable GLX library @<:@default=auto@:>@])],
575 [enable_glx="$enableval"],
577 AC_ARG_ENABLE([osmesa],
578 [AS_HELP_STRING([--enable-osmesa],
579 [enable OSMesa library @<:@default=auto@:>@])],
580 [enable_osmesa="$enableval"],
581 [enable_osmesa=auto])
583 [AS_HELP_STRING([--disable-egl],
584 [disable EGL library @<:@default=enabled@:>@])],
585 [enable_egl="$enableval"],
588 AC_ARG_ENABLE([xorg],
589 [AS_HELP_STRING([--enable-xorg],
590 [enable support for X.Org DDX API @<:@default=no@:>@])],
591 [enable_xorg="$enableval"],
594 [AS_HELP_STRING([--enable-xa],
595 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
596 [enable_xa="$enableval"],
598 AC_ARG_ENABLE([d3d1x],
599 [AS_HELP_STRING([--enable-d3d1x],
600 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
601 [enable_d3d1x="$enableval"],
604 [AS_HELP_STRING([--enable-gbm],
605 [enable gbm library @<:@default=auto@:>@])],
606 [enable_gbm="$enableval"],
609 AC_ARG_ENABLE([xvmc],
610 [AS_HELP_STRING([--enable-xvmc],
611 [enable xvmc library @<:@default=auto@:>@])],
612 [enable_xvmc="$enableval"],
614 AC_ARG_ENABLE([vdpau],
615 [AS_HELP_STRING([--enable-vdpau],
616 [enable vdpau library @<:@default=auto@:>@])],
617 [enable_vdpau="$enableval"],
620 [AS_HELP_STRING([--enable-va],
621 [enable va library @<:@default=auto@:>@])],
622 [enable_va="$enableval"],
625 AC_ARG_ENABLE([xlib_glx],
626 [AS_HELP_STRING([--enable-xlib-glx],
627 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
628 [enable_xlib_glx="$enableval"],
629 [enable_xlib_glx=auto])
630 AC_ARG_ENABLE([gallium_egl],
631 [AS_HELP_STRING([--enable-gallium-egl],
632 [enable optional EGL state tracker (not required
633 for EGL support in Gallium with OpenGL and OpenGL ES)
634 @<:@default=disable@:>@])],
635 [enable_gallium_egl="$enableval"],
636 [enable_gallium_egl=no])
637 AC_ARG_ENABLE([gallium_gbm],
638 [AS_HELP_STRING([--enable-gallium-gbm],
639 [enable optional gbm state tracker (not required for
640 gbm support in Gallium)
641 @<:@default=auto@:>@])],
642 [enable_gallium_gbm="$enableval"],
643 [enable_gallium_gbm=auto])
645 # Option for Gallium drivers
646 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
648 AC_ARG_WITH([gallium-drivers],
649 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
650 [comma delimited Gallium drivers list, e.g.
651 "i915,nouveau,r300,r600,svga,swrast"
652 @<:@default=r300,r600,swrast@:>@])],
653 [with_gallium_drivers="$withval"],
654 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
656 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
657 # here so that the script doesn't choke on an unknown driver name later.
658 case "$with_gallium_drivers" in
659 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
660 no) with_gallium_drivers='' ;;
663 if test "x$enable_opengl" = xno -a \
664 "x$enable_gles1" = xno -a \
665 "x$enable_gles2" = xno -a \
666 "x$enable_openvg" = xno -a \
667 "x$enable_xorg" = xno -a \
668 "x$enable_xa" = xno -a \
669 "x$enable_d3d1x" = xno -a \
670 "x$enable_xvmc" = xno -a \
671 "x$enable_vdpau" = xno -a \
672 "x$enable_va" = xno; then
673 AC_MSG_ERROR([at least one API should be enabled])
677 if test "x$enable_opengl" = xno; then
678 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
680 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
682 if test "x$enable_gles1" = xyes; then
683 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
685 if test "x$enable_gles2" = xyes; then
686 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
688 AC_SUBST([API_DEFINES])
690 AC_ARG_ENABLE([shared-glapi],
691 [AS_HELP_STRING([--enable-shared-glapi],
692 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
693 [enable_shared_glapi="$enableval"],
694 [enable_shared_glapi=no])
697 if test "x$enable_shared_glapi" = xyes; then
700 AC_SUBST([SHARED_GLAPI])
703 dnl Driver configuration. Options are xlib, dri and osmesa right now.
704 dnl More later: fbdev, ...
706 default_driver="xlib"
711 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
714 *freebsd* | dragonfly* | *netbsd*)
716 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
721 if test "x$enable_opengl" = xno; then
725 AC_ARG_WITH([driver],
726 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
727 [mesa_driver="$withval"],
729 dnl Check for valid option
730 case "x$mesa_driver" in
731 xxlib|xdri|xosmesa|xno)
732 if test "x$enable_dri" != xauto -o \
733 "x$enable_glx" != xauto -o \
734 "x$enable_osmesa" != xauto -o \
735 "x$enable_xlib_glx" != xauto; then
736 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
740 mesa_driver="$default_driver"
743 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
747 # map $mesa_driver to APIs
748 if test "x$enable_dri" = xauto; then
749 case "x$mesa_driver" in
750 xdri) enable_dri=yes ;;
755 if test "x$enable_glx" = xauto; then
756 case "x$mesa_driver" in
757 xdri|xxlib) enable_glx=yes ;;
762 if test "x$enable_osmesa" = xauto; then
763 case "x$mesa_driver" in
764 xxlib|xosmesa) enable_osmesa=yes ;;
765 *) enable_osmesa=no ;;
769 if test "x$enable_xlib_glx" = xauto; then
770 case "x$mesa_driver" in
771 xxlib) enable_xlib_glx=yes ;;
772 *) enable_xlib_glx=no ;;
776 if test "x$enable_glx" = xno; then
780 AM_CONDITIONAL(HAVE_DRI, test x"$enable_dri" = xyes)
783 dnl Driver specific build directories
786 dnl this variable will be prepended to SRC_DIRS and is not exported
791 GALLIUM_DIRS="auxiliary drivers state_trackers"
792 GALLIUM_TARGET_DIRS=""
793 GALLIUM_WINSYS_DIRS="sw"
794 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
795 GALLIUM_STATE_TRACKERS_DIRS=""
797 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
798 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
800 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
804 # build glapi if OpenGL is enabled
805 if test "x$enable_opengl" = xyes; then
806 CORE_DIRS="$CORE_DIRS mapi/glapi"
809 # build es1api if OpenGL ES 1.x is enabled
810 if test "x$enable_gles1" = xyes; then
811 CORE_DIRS="$CORE_DIRS mapi/es1api"
814 # build es2api if OpenGL ES 2.x is enabled
815 if test "x$enable_gles2" = xyes; then
816 CORE_DIRS="$CORE_DIRS mapi/es2api"
819 # build glsl and mesa if OpenGL or OpenGL ES is enabled
820 case "x$enable_opengl$enable_gles1$enable_gles2" in
822 CORE_DIRS="$CORE_DIRS glsl mesa"
826 case "x$enable_glx$enable_xlib_glx" in
828 DRIVER_DIRS="$DRIVER_DIRS x11"
829 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
830 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
831 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
832 HAVE_WINSYS_XLIB="yes"
836 SRC_DIRS="$SRC_DIRS glx"
840 if test "x$enable_dri" = xyes; then
841 DRIVER_DIRS="$DRIVER_DIRS dri"
843 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
844 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
848 if test "x$enable_osmesa" = xyes; then
849 # the empty space matters for osmesa... (see src/mesa/Makefile)
850 if test -n "$DRIVER_DIRS"; then
851 DRIVER_DIRS="$DRIVER_DIRS osmesa"
859 AC_SUBST([DRIVER_DIRS])
860 AC_SUBST([GALLIUM_DIRS])
861 AC_SUBST([GALLIUM_TARGET_DIRS])
862 AC_SUBST([GALLIUM_WINSYS_DIRS])
863 AC_SUBST([GALLIUM_DRIVERS_DIRS])
864 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
865 AC_SUBST([MESA_LLVM])
868 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
869 [have_libdrm=yes], [have_libdrm=no])
871 if test "x$enable_dri" = xyes; then
872 # DRI must be shared, I think
873 if test "$enable_static" = yes; then
874 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
877 # not a hard requirement as swrast does not depend on it
878 if test "x$have_libdrm" = xyes; then
879 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
884 dnl Find out if X is available. The variable have_x is set if libX11 is
885 dnl found to mimic AC_PATH_XTRA.
887 if test -n "$PKG_CONFIG"; then
888 AC_MSG_CHECKING([pkg-config files for X11 are available])
889 PKG_CHECK_EXISTS([x11],[
895 AC_MSG_RESULT([$x11_pkgconfig])
899 dnl Use the autoconf macro if no pkg-config files
900 if test "$x11_pkgconfig" = yes; then
901 PKG_CHECK_MODULES([X11], [x11])
904 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
905 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
906 AC_SUBST([X11_CFLAGS])
910 dnl Try to tell the user that the --x-* options are only used when
911 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
912 m4_divert_once([HELP_BEGIN],
913 [These options are only used when the X libraries cannot be found by the
914 pkg-config utility.])
916 dnl We need X for xlib and dri, so bomb now if it's not found
917 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
918 AC_MSG_ERROR([X11 development libraries needed for GLX])
921 if test "x$enable_glx" = xyes; then
922 DEFINES="$DEFINES -DUSE_XCB"
925 dnl Direct rendering or just indirect rendering
928 dnl Disable by default on GNU/Hurd
929 driglx_direct_default="no"
932 dnl Disable by default on cygwin
933 driglx_direct_default="no"
936 driglx_direct_default="yes"
939 AC_ARG_ENABLE([driglx-direct],
940 [AS_HELP_STRING([--disable-driglx-direct],
941 [enable direct rendering in GLX and EGL for DRI \
942 @<:@default=auto@:>@])],
943 [driglx_direct="$enableval"],
944 [driglx_direct="$driglx_direct_default"])
947 dnl libGL configuration per driver
949 case "x$enable_glx$enable_xlib_glx" in
952 if test "$x11_pkgconfig" = yes; then
953 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
954 GL_PC_REQ_PRIV="x11 xext"
955 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
956 GL_LIB_DEPS="$XLIBGL_LIBS"
958 # should check these...
959 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
960 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
961 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
962 GL_PC_CFLAGS="$X11_INCLUDES"
964 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
965 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
969 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
970 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
971 if test x"$driglx_direct" = xyes; then
972 if test "x$have_libdrm" != xyes; then
973 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
975 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
976 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
979 # find the DRI deps for libGL
980 if test "$x11_pkgconfig" = yes; then
981 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
983 # add xf86vidmode if available
984 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
985 if test "$HAVE_XF86VIDMODE" = yes ; then
986 dri_modules="$dri_modules xxf86vm"
989 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
990 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
991 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
992 GL_LIB_DEPS="$DRIGL_LIBS"
994 # should check these...
995 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
996 if test "x$HAVE_XF86VIDMODE" == xyes; then
997 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
999 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1001 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1002 GL_PC_CFLAGS="$X11_INCLUDES"
1004 # XCB can only be used from pkg-config
1005 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1006 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1007 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1008 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1011 # Check to see if the xcb-glx library is new enough to support
1012 # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
1014 save_CPPFLAGS="$CPPFLAGS"
1015 save_LDFLAGS="$LDFLAGS"
1016 CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
1017 LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
1018 AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
1019 [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
1020 [HAVE_XCB_GLX_CREATE_CONTEXT=no])
1021 CPPFLAGS="$save_CPPFLAGS"
1022 LDFLAGS="$save_LDFLAGS"
1024 if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
1025 X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
1028 # need DRM libs, -lpthread, etc.
1029 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1030 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1034 # This is outside the case (above) so that it is invoked even for non-GLX
1036 AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
1037 test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
1039 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1040 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1041 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1042 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1044 AC_SUBST([GL_LIB_DEPS])
1045 AC_SUBST([GL_PC_REQ_PRIV])
1046 AC_SUBST([GL_PC_LIB_PRIV])
1047 AC_SUBST([GL_PC_CFLAGS])
1048 AC_SUBST([DRI_PC_REQ_PRIV])
1049 AC_SUBST([GLESv1_CM_LIB_DEPS])
1050 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1051 AC_SUBST([GLESv2_LIB_DEPS])
1052 AC_SUBST([GLESv2_PC_LIB_PRIV])
1054 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1055 AC_SUBST([GLAPI_LIB_DEPS])
1058 dnl Setup default DRI CFLAGS
1059 DRI_CFLAGS='$(CFLAGS)'
1060 DRI_CXXFLAGS='$(CXXFLAGS)'
1061 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1062 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1064 if test "x$enable_dri" = xyes && test "x$driglx_direct" = xyes ; then
1065 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1066 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1067 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1068 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1069 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1070 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1071 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1073 AC_SUBST([DRICORE_LIBS])
1074 AC_SUBST([DRICORE_GLSL_LIBS])
1075 AC_SUBST([DRICORE_LIB_DEPS])
1076 AC_SUBST([DRI_CXXFLAGS])
1077 AC_SUBST([DRI_CFLAGS])
1078 AC_SUBST([MESA_MODULES])
1080 AC_SUBST([HAVE_XF86VIDMODE])
1085 case "x$enable_glx$enable_xlib_glx" in
1087 DEFINES="$DEFINES -DUSE_XSHM"
1090 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1091 if test "x$driglx_direct" = xyes; then
1092 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1101 AC_ARG_ENABLE([glx-tls],
1102 [AS_HELP_STRING([--enable-glx-tls],
1103 [enable TLS support in GLX @<:@default=disabled@:>@])],
1104 [GLX_USE_TLS="$enableval"],
1106 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1108 AS_IF([test "x$GLX_USE_TLS" = xyes],
1109 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1114 dnl Directory for DRI drivers
1115 AC_ARG_WITH([dri-driverdir],
1116 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1117 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1118 [DRI_DRIVER_INSTALL_DIR="$withval"],
1119 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1120 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1121 dnl Extra search path for DRI drivers
1122 AC_ARG_WITH([dri-searchpath],
1123 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1124 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1125 [DRI_DRIVER_SEARCH_DIR="$withval"],
1126 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1127 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1128 dnl Which drivers to build - default is chosen by platform
1129 AC_ARG_WITH([dri-drivers],
1130 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1131 [comma delimited DRI drivers list, e.g.
1132 "swrast,i965,radeon" @<:@default=auto@:>@])],
1133 [with_dri_drivers="$withval"],
1134 [with_dri_drivers=yes])
1135 if test "x$with_dri_drivers" = x; then
1139 dnl If $with_dri_drivers is yes, directories will be added through
1142 case "$with_dri_drivers" in
1145 # classic DRI drivers require FEATURE_GL to build
1146 if test "x$enable_opengl" = xyes; then
1151 # verify the requested driver directories exist
1152 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1153 for driver in $dri_drivers; do
1154 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1155 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1157 DRI_DIRS="$dri_drivers"
1158 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1159 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1164 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1165 if test "x$enable_dri" = xyes; then
1166 # Platform specific settings and drivers to build
1169 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1170 DEFINES="$DEFINES -DHAVE_ALIAS"
1174 if test "x$DRI_DIRS" = "xyes"; then
1175 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1179 # Build only the drivers for cards that exist on PowerPC.
1180 if test "x$DRI_DIRS" = "xyes"; then
1181 DRI_DIRS="r200 radeon swrast"
1185 # Build only the drivers for cards that exist on sparc
1186 if test "x$DRI_DIRS" = "xyes"; then
1187 DRI_DIRS="r200 radeon swrast"
1192 freebsd* | dragonfly* | *netbsd*)
1193 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1194 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1196 if test "x$DRI_DIRS" = "xyes"; then
1197 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1201 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1202 DEFINES="$DEFINES -DHAVE_ALIAS"
1205 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1208 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1209 if test "x$DRI_DIRS" = "xyes"; then
1216 if test "x$DRI_DIRS" = "xyes"; then
1217 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1220 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1223 if test "x$enable_dri" = xyes; then
1226 AC_ARG_WITH([expat],
1227 [AS_HELP_STRING([--with-expat=DIR],
1228 [expat install directory])],[
1229 EXPAT_INCLUDES="-I$withval/include"
1230 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1231 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1232 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1234 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1236 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1237 [AC_MSG_ERROR([Expat required for DRI.])])
1241 # libdrm is required for all except swrast
1242 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1243 if test "x$have_libdrm" != xyes; then
1244 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1248 # put all the necessary libs together
1249 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1251 AC_SUBST([DRI_DIRS])
1252 AC_SUBST([EXPAT_INCLUDES])
1253 AC_SUBST([DRI_LIB_DEPS])
1257 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1259 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1275 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1276 HAVE_NOUVEAU_DRI=yes;
1282 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1284 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1287 HAVE_RADEON_DRI=yes;
1300 HAVE_SWRAST_DRI=yes;
1304 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
1305 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1306 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
1307 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
1308 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
1309 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
1312 dnl OSMesa configuration
1315 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1316 AC_ARG_WITH([osmesa-bits],
1317 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1318 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1319 [osmesa_bits="$withval"],
1321 if test "x$osmesa_bits" != x8; then
1322 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1323 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1327 case "x$osmesa_bits" in
1329 OSMESA_LIB="${OSMESA_LIB}"
1332 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1333 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1336 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1339 AM_CONDITIONAL(HAVE_OSMESA8, test "x$osmesa_bits" = x8)
1340 AM_CONDITIONAL(HAVE_OSMESA16, test "x$osmesa_bits" = x16)
1341 AM_CONDITIONAL(HAVE_OSMESA32, test "x$osmesa_bits" = x32)
1343 if test "x$enable_osmesa" = xyes; then
1344 # only link libraries with osmesa if shared
1345 if test "$enable_static" = no; then
1346 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1350 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1352 AC_SUBST([OSMESA_LIB_DEPS])
1353 AC_SUBST([OSMESA_PC_LIB_PRIV])
1356 dnl gbm configuration
1358 if test "x$enable_gbm" = xauto; then
1359 case "$with_egl_platforms" in
1366 if test "x$enable_gbm" = xyes; then
1367 SRC_DIRS="$SRC_DIRS gbm"
1369 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1370 AC_MSG_ERROR([gbm needs udev]))
1372 if test "x$enable_dri" = xyes; then
1373 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1374 if test "$SHARED_GLAPI" -eq 0; then
1375 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1379 GBM_PC_REQ_PRIV="libudev"
1380 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1381 AC_SUBST([GBM_PC_REQ_PRIV])
1382 AC_SUBST([GBM_PC_LIB_PRIV])
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])
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])
1675 case "$with_egl_platforms" in
1677 if test "x$enable_egl" = xyes; then
1682 if test "x$enable_egl" != xyes; then
1683 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1685 # verify the requested driver directories exist
1686 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1687 for plat in $egl_platforms; do
1688 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1689 AC_MSG_ERROR([EGL platform '$plat' does not exist])
1690 if test "$plat" = "fbdev"; then
1691 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1693 if test "$plat" = "null"; then
1694 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1696 if test "$plat" = "wayland"; then
1697 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1698 [AC_MSG_ERROR([cannot find libwayland-client])])
1699 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1701 m4_ifdef([WAYLAND_SCANNER_RULES],
1702 [WAYLAND_SCANNER_RULES(['$(top_srcdir)/src/egl/wayland/wayland-drm/protocol'])])
1704 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1705 AC_MSG_ERROR([EGL platform drm needs gbm])
1707 case "$plat$have_libudev" in
1709 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1712 EGL_PLATFORMS="$egl_platforms"
1715 AC_SUBST([EGL_PLATFORMS])
1717 AC_ARG_WITH([egl-driver-dir],
1718 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1719 [directory for EGL drivers [[default=${libdir}/egl]]])],
1720 [EGL_DRIVER_INSTALL_DIR="$withval"],
1721 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1722 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1724 AC_ARG_WITH([xorg-driver-dir],
1725 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1726 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1727 [XORG_DRIVER_INSTALL_DIR="$withval"],
1728 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1729 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1731 AC_ARG_WITH([max-width],
1732 [AS_HELP_STRING([--with-max-width=N],
1733 [Maximum framebuffer width (4096)])],
1734 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1735 AS_IF([test "${withval}" -gt "4096"],
1736 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1738 AC_ARG_WITH([max-height],
1739 [AS_HELP_STRING([--with-max-height=N],
1740 [Maximum framebuffer height (4096)])],
1741 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1742 AS_IF([test "${withval}" -gt "4096"],
1743 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1749 AC_ARG_ENABLE([gallium-llvm],
1750 [AS_HELP_STRING([--enable-gallium-llvm],
1751 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1752 [enable_gallium_llvm="$enableval"],
1753 [enable_gallium_llvm=auto])
1754 if test "x$with_gallium_drivers" = x; then
1755 enable_gallium_llvm=no
1757 if test "x$enable_gallium_llvm" = xauto; then
1759 i*86|x86_64) enable_gallium_llvm=yes;;
1762 if test "x$enable_gallium_llvm" = xyes; then
1763 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1765 if test "x$LLVM_CONFIG" != xno; then
1766 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1767 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1768 LLVM_LIBS="`$LLVM_CONFIG --libs engine bitwriter`"
1770 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1771 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1780 dnl Directory for VDPAU libs
1781 AC_ARG_WITH([vdpau-libdir],
1782 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1783 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1784 [VDPAU_LIB_INSTALL_DIR="$withval"],
1785 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1786 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1788 dnl Directory for VA libs
1789 AC_ARG_WITH([va-libdir],
1790 [AS_HELP_STRING([--with-va-libdir=DIR],
1791 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1792 [VA_LIB_INSTALL_DIR="$withval"],
1793 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1794 AC_SUBST([VA_LIB_INSTALL_DIR])
1797 dnl Gallium helper functions
1799 gallium_check_st() {
1800 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1801 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1802 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1803 if test "x$have_libdrm" != xyes; then
1804 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1806 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1808 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1809 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1811 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1812 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1814 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1815 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1817 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1818 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1819 NEED_G3DVL_DRI="yes"
1821 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1822 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1823 NEED_G3DVL_DRI="yes"
1825 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1826 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1827 NEED_G3DVL_DRI="yes"
1831 gallium_require_llvm() {
1832 if test "x$MESA_LLVM" = x0; then
1834 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1840 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1841 if test "x$with_gallium_drivers" != x; then
1842 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1843 for driver in $gallium_drivers; do
1846 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1847 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1850 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1851 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1852 if test "x$MESA_LLVM" = x1; then
1853 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1855 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1856 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1859 gallium_require_llvm "Gallium R300"
1860 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1861 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1864 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1865 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1868 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1869 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1870 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1873 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1874 if test "x$MESA_LLVM" = x1; then
1875 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1878 if test "x$HAVE_ST_DRI" = xyes; then
1879 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1881 if test "x$HAVE_ST_VDPAU" = xyes; then
1882 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1884 if test "x$HAVE_ST_XVMC" = xyes; then
1885 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1887 if test "x$HAVE_ST_VA" = xyes; then
1888 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1890 if test "x$HAVE_ST_VDPAU" = xyes ||
1891 test "x$HAVE_ST_XVMC" = xyes ||
1892 test "x$HAVE_ST_VA" = xyes; then
1893 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1894 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1899 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1905 if test "x$NEED_G3DVL_DRI" = xyes; then
1906 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1909 dnl prepend CORE_DIRS to SRC_DIRS
1910 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1912 dnl Restore LDFLAGS and CPPFLAGS
1913 LDFLAGS="$_SAVE_LDFLAGS"
1914 CPPFLAGS="$_SAVE_CPPFLAGS"
1916 dnl Add user CFLAGS and CXXFLAGS
1917 CFLAGS="$CFLAGS $USER_CFLAGS"
1918 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1920 dnl Substitute the config
1921 AC_CONFIG_FILES([configs/autoconf
1924 src/egl/wayland/Makefile
1925 src/egl/wayland/wayland-egl/Makefile
1926 src/egl/wayland/wayland-egl/wayland-egl.pc
1927 src/egl/wayland/wayland-drm/Makefile
1928 src/mesa/drivers/dri/dri.pc
1929 src/mesa/drivers/dri/Makefile
1930 src/mesa/drivers/dri/common/Makefile
1931 src/mesa/drivers/dri/i915/Makefile
1932 src/mesa/drivers/dri/i965/Makefile
1933 src/mesa/drivers/dri/nouveau/Makefile
1934 src/mesa/drivers/dri/r200/Makefile
1935 src/mesa/drivers/dri/radeon/Makefile
1936 src/mesa/drivers/dri/swrast/Makefile
1937 src/mesa/drivers/osmesa/osmesa.pc
1938 src/mesa/drivers/osmesa/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"