1 dnl Process this file with autoconf to create configure.
5 dnl Versioning - scrape the version from configs/default
6 m4_define([mesa_version],
7 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
8 m4_ifval(mesa_version,,
9 [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
11 dnl Tell the user about autoconf.html in the --help output
12 m4_divert_once([HELP_END], [
13 See docs/autoconf.html for more details on the options for Mesa.])
15 AC_INIT([Mesa],[mesa_version],
16 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17 AC_CONFIG_AUX_DIR([bin])
19 AM_INIT_AUTOMAKE([foreign])
21 # Support silent build rules, requires at least automake-1.11. Disable
22 # by either passing --disable-silent-rules to configure or passing V=1
24 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
27 LT_INIT([disable-static])
29 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
31 USER_CXXFLAGS="$CXXFLAGS"
33 dnl Versions for external dependencies
34 LIBDRM_REQUIRED=2.4.24
35 LIBDRM_RADEON_REQUIRED=2.4.24
36 LIBDRM_INTEL_REQUIRED=2.4.30
37 LIBDRM_NOUVEAU_REQUIRED=0.6
38 DRI2PROTO_REQUIRED=2.6
39 GLPROTO_REQUIRED=1.4.14
40 LIBDRM_XORG_REQUIRED=2.4.24
41 LIBKMS_XORG_REQUIRED=1.0.0
47 AC_CHECK_PROGS([MAKE], [gmake make])
48 AC_CHECK_PROGS([PYTHON2], [python2 python])
51 AC_PATH_PROG([MKDEP], [makedepend])
53 if test "x$MKDEP" = "x"; then
54 AC_MSG_ERROR([makedepend is required to build Mesa])
57 AC_PATH_PROG([FLEX], [flex])
58 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
60 AC_PATH_PROG([BISON], [bison])
61 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
63 dnl Our fallback install-sh is a symlink to minstall. Use the existing
64 dnl configuration in that case.
66 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
68 dnl We need a POSIX shell for parts of the build. Assume we have one
72 # Solaris /bin/sh is too old/non-POSIX compliant
73 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
78 AC_PATH_PROG([GTESTCONFIG], [gtest-config])
79 if test "x$GTESTCONFIG" != "x"; then
80 GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
81 GTEST_LIBS=`gtest-config --ldflags --libs`
82 AC_SUBST([GTEST_CFLAGS])
83 AC_SUBST([GTEST_LIBS])
88 AM_CONDITIONAL(HAVE_GTEST, test x$HAVE_GTEST = xyes)
90 dnl clang is mostly GCC-compatible, but its version is much lower,
91 dnl so we have to check for it.
92 AC_MSG_CHECKING([if compiling with clang])
95 [AC_LANG_PROGRAM([], [[
100 [acv_mesa_CLANG=yes], [acv_mesa_CLANG=no])
102 AC_MSG_RESULT([$acv_mesa_CLANG])
104 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
105 dnl versions are explictly not supported.
106 if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
107 AC_MSG_CHECKING([whether gcc version is sufficient])
111 GCC_VERSION=`$CC -dumpversion`
112 if test $? -eq 0; then
113 major=`echo $GCC_VERSION | cut -d. -f1`
114 minor=`echo $GCC_VERSION | cut -d. -f2`
117 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
119 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
126 MKDEP_OPTIONS=-fdepend
127 dnl Ask gcc where it's keeping its secret headers
128 if test "x$GCC" = xyes; then
129 for dir in include include-fixed; do
130 GCC_INCLUDES=`$CC -print-file-name=$dir`
131 if test "x$GCC_INCLUDES" != x && \
132 test "$GCC_INCLUDES" != "$dir" && \
133 test -d "$GCC_INCLUDES"; then
134 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
138 AC_SUBST([MKDEP_OPTIONS])
140 dnl Make sure the pkg-config macros are defined
141 m4_ifndef([PKG_PROG_PKG_CONFIG],
142 [m4_fatal([Could not locate the pkg-config autoconf macros.
143 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
144 are in a different location, try setting the environment variable
145 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
146 PKG_PROG_PKG_CONFIG()
148 dnl LIB_DIR - library basename
149 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
152 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
153 _SAVE_LDFLAGS="$LDFLAGS"
154 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
155 AC_SUBST([EXTRA_LIB_PATH])
157 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
158 _SAVE_CPPFLAGS="$CPPFLAGS"
159 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
160 AC_SUBST([X11_INCLUDES])
167 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
170 DEFINES="$DEFINES -DPTHREADS -DSVR4"
173 DEFINES="$DEFINES -DPTHREADS"
177 dnl Add flags for gcc and g++
178 if test "x$GCC" = xyes; then
179 CFLAGS="$CFLAGS -Wall -std=c99"
181 # Enable -Werror=implicit-function-declaration and
182 # -Werror=missing-prototypes, if available, or otherwise, just
183 # -Wmissing-prototypes. This is particularly useful to avoid
184 # generating a loadable driver module that has undefined symbols.
185 save_CFLAGS="$CFLAGS"
186 AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
187 CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
188 CFLAGS="$CFLAGS -Werror=missing-prototypes"
189 AC_LINK_IFELSE([AC_LANG_PROGRAM()],
190 AC_MSG_RESULT([yes]),
191 [CFLAGS="$save_CFLAGS -Wmissing-prototypes";
192 AC_MSG_RESULT([no])]);
194 # Enable -fvisibility=hidden if using a gcc that supports it
195 save_CFLAGS="$CFLAGS"
196 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
197 VISIBILITY_CFLAGS="-fvisibility=hidden"
198 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
199 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
200 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
202 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
205 # Work around aliasing bugs - developers should comment this out
206 CFLAGS="$CFLAGS -fno-strict-aliasing"
208 # gcc's builtin memcmp is slower than glibc's
209 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
210 CFLAGS="$CFLAGS -fno-builtin-memcmp"
212 if test "x$GXX" = xyes; then
213 CXXFLAGS="$CXXFLAGS -Wall"
215 # Enable -fvisibility=hidden if using a gcc that supports it
216 save_CXXFLAGS="$CXXFLAGS"
217 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
218 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
219 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
221 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
222 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
225 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
226 CXXFLAGS=$save_CXXFLAGS
228 # Work around aliasing bugs - developers should comment this out
229 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
231 # gcc's builtin memcmp is slower than glibc's
232 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
233 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
236 dnl even if the compiler appears to support it, using visibility attributes isn't
237 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
241 VISIBILITY_CXXFLAGS=""
245 AC_SUBST([VISIBILITY_CFLAGS])
246 AC_SUBST([VISIBILITY_CXXFLAGS])
248 dnl These should be unnecessary, but let the user set them if they want
249 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
250 Default is to use CFLAGS.])
251 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
252 compiler. Default is to use CFLAGS.])
253 AC_SUBST([OPT_FLAGS])
254 AC_SUBST([ARCH_FLAGS])
257 dnl Hacks to enable 32 or 64 bit build
259 AC_ARG_ENABLE([32-bit],
260 [AS_HELP_STRING([--enable-32-bit],
261 [build 32-bit libraries @<:@default=auto@:>@])],
262 [enable_32bit="$enableval"],
265 if test "x$enable_32bit" = xyes; then
266 if test "x$GCC" = xyes; then
267 CFLAGS="$CFLAGS -m32"
268 ARCH_FLAGS="$ARCH_FLAGS -m32"
270 if test "x$GXX" = xyes; then
271 CXXFLAGS="$CXXFLAGS -m32"
274 AC_ARG_ENABLE([64-bit],
275 [AS_HELP_STRING([--enable-64-bit],
276 [build 64-bit libraries @<:@default=auto@:>@])],
277 [enable_64bit="$enableval"],
280 if test "x$enable_64bit" = xyes; then
281 if test "x$GCC" = xyes; then
282 CFLAGS="$CFLAGS -m64"
284 if test "x$GXX" = xyes; then
285 CXXFLAGS="$CXXFLAGS -m64"
289 dnl Can't have static and shared libraries, default to static if user
290 dnl explicitly requested. If both disabled, set to static since shared
291 dnl was explicitly requested.
292 case "x$enable_static$enable_shared" in
294 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
298 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
302 AM_CONDITIONAL(BUILD_STATIC, test "x$enable_static" = xyes)
303 AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes)
308 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
309 if test "$enable_static" = yes; then
310 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
312 AC_SUBST([MKLIB_OPTIONS])
315 dnl other compiler options
317 AC_ARG_ENABLE([debug],
318 [AS_HELP_STRING([--enable-debug],
319 [use debug compiler flags and macros @<:@default=disabled@:>@])],
320 [enable_debug="$enableval"],
323 if test "x$enable_debug" = xyes; then
324 DEFINES="$DEFINES -DDEBUG"
325 if test "x$GCC" = xyes; then
328 if test "x$GXX" = xyes; then
329 CXXFLAGS="$CXXFLAGS -g"
336 LIB_PREFIX_GLOB='lib'
337 LIB_VERSION_SEPARATOR='.'
338 if test "$enable_static" = yes; then
343 LIB_EXTENSION='dylib' ;;
345 dnl prefix can be 'cyg' or 'lib'
346 LIB_PREFIX_GLOB='???'
347 LIB_VERSION_SEPARATOR='-'
348 LIB_EXTENSION='dll' ;;
352 LIB_EXTENSION='so' ;;
357 dnl Mangled Mesa support
359 AC_ARG_ENABLE([mangling],
360 [AS_HELP_STRING([--enable-mangling],
361 [enable mangled symbols and library name @<:@default=disabled@:>@])],
362 [enable_mangling="${enableval}"],
368 if test "x${enable_mangling}" = "xyes" ; then
369 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
372 OSMESA_LIB="MangledOSMesa"
376 AC_SUBST([OSMESA_LIB])
379 dnl potentially-infringing-but-nobody-knows-for-sure stuff
381 AC_ARG_ENABLE([texture-float],
382 [AS_HELP_STRING([--enable-texture-float],
383 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
384 [enable_texture_float="$enableval"],
385 [enable_texture_float=no]
387 if test "x$enable_texture_float" = xyes; then
388 AC_MSG_WARN([Floating-point textures enabled.])
389 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
390 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
393 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
394 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
395 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
396 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
397 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
398 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
399 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
400 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
402 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
403 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
404 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
405 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
406 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
407 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
408 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
409 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
410 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
412 AC_SUBST([GL_LIB_NAME])
413 AC_SUBST([GLU_LIB_NAME])
414 AC_SUBST([OSMESA_LIB_NAME])
415 AC_SUBST([EGL_LIB_NAME])
416 AC_SUBST([GLESv1_CM_LIB_NAME])
417 AC_SUBST([GLESv2_LIB_NAME])
418 AC_SUBST([VG_LIB_NAME])
419 AC_SUBST([GLAPI_LIB_NAME])
421 AC_SUBST([GL_LIB_GLOB])
422 AC_SUBST([GLU_LIB_GLOB])
423 AC_SUBST([OSMESA_LIB_GLOB])
424 AC_SUBST([EGL_LIB_GLOB])
425 AC_SUBST([GLESv1_CM_LIB_GLOB])
426 AC_SUBST([GLESv2_LIB_GLOB])
427 AC_SUBST([VG_LIB_GLOB])
428 AC_SUBST([GLAPI_LIB_GLOB])
431 dnl Arch/platform-specific settings
434 [AS_HELP_STRING([--disable-asm],
435 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
436 [enable_asm="$enableval"],
443 AC_MSG_CHECKING([whether to enable assembly])
444 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
445 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
446 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
450 AC_MSG_RESULT([no, cross compiling])
454 # check for supported arches
455 if test "x$enable_asm" = xyes; then
459 linux* | *freebsd* | dragonfly* | *netbsd*)
460 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
466 linux* | *freebsd* | dragonfly* | *netbsd*)
467 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
489 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
490 MESA_ASM_SOURCES='$(X86_SOURCES)'
491 GLAPI_ASM_SOURCES='$(X86_API)'
492 AC_MSG_RESULT([yes, x86])
495 ASM_FLAGS="-DUSE_X86_64_ASM"
496 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
497 GLAPI_ASM_SOURCES='$(X86-64_API)'
498 AC_MSG_RESULT([yes, x86_64])
501 ASM_FLAGS="-DUSE_SPARC_ASM"
502 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
503 GLAPI_ASM_SOURCES='$(SPARC_API)'
504 AC_MSG_RESULT([yes, sparc])
507 AC_MSG_RESULT([no, platform not supported])
511 AC_SUBST([ASM_FLAGS])
512 AC_SUBST([MESA_ASM_SOURCES])
513 AC_SUBST([GLAPI_ASM_SOURCES])
518 dnl Check to see if dlopen is in default libraries (like Solaris, which
519 dnl has it in libc), or if libdl is needed to get it.
520 AC_CHECK_FUNC([dlopen], [],
521 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
522 AC_SUBST([DLOPEN_LIBS])
524 dnl See if posix_memalign is available
525 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
527 dnl SELinux awareness.
528 AC_ARG_ENABLE([selinux],
529 [AS_HELP_STRING([--enable-selinux],
530 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
531 [MESA_SELINUX="$enableval"],
533 if test "x$enable_selinux" = "xyes"; then
534 AC_CHECK_HEADER([selinux/selinux.h],[],
535 [AC_MSG_ERROR([SELinux headers not found])])
536 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
537 [AC_MSG_ERROR([SELinux library not found])])
538 SELINUX_LIBS="-lselinux"
539 DEFINES="$DEFINES -DMESA_SELINUX"
543 AC_ARG_ENABLE([opengl],
544 [AS_HELP_STRING([--disable-opengl],
545 [disable support for standard OpenGL API @<:@default=no@:>@])],
546 [enable_opengl="$enableval"],
548 AC_ARG_ENABLE([gles1],
549 [AS_HELP_STRING([--enable-gles1],
550 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
551 [enable_gles1="$enableval"],
553 AC_ARG_ENABLE([gles2],
554 [AS_HELP_STRING([--enable-gles2],
555 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
556 [enable_gles2="$enableval"],
558 AC_ARG_ENABLE([openvg],
559 [AS_HELP_STRING([--enable-openvg],
560 [enable support for OpenVG API @<:@default=no@:>@])],
561 [enable_openvg="$enableval"],
565 [AS_HELP_STRING([--enable-dri],
566 [enable DRI modules @<:@default=auto@:>@])],
567 [enable_dri="$enableval"],
570 [AS_HELP_STRING([--enable-glx],
571 [enable GLX library @<:@default=auto@:>@])],
572 [enable_glx="$enableval"],
574 AC_ARG_ENABLE([osmesa],
575 [AS_HELP_STRING([--enable-osmesa],
576 [enable OSMesa library @<:@default=auto@:>@])],
577 [enable_osmesa="$enableval"],
578 [enable_osmesa=auto])
580 [AS_HELP_STRING([--disable-egl],
581 [disable EGL library @<:@default=enabled@:>@])],
582 [enable_egl="$enableval"],
585 AC_ARG_ENABLE([xorg],
586 [AS_HELP_STRING([--enable-xorg],
587 [enable support for X.Org DDX API @<:@default=no@:>@])],
588 [enable_xorg="$enableval"],
591 [AS_HELP_STRING([--enable-xa],
592 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
593 [enable_xa="$enableval"],
595 AC_ARG_ENABLE([d3d1x],
596 [AS_HELP_STRING([--enable-d3d1x],
597 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
598 [enable_d3d1x="$enableval"],
601 [AS_HELP_STRING([--enable-gbm],
602 [enable gbm library @<:@default=auto@:>@])],
603 [enable_gbm="$enableval"],
606 AC_ARG_ENABLE([xvmc],
607 [AS_HELP_STRING([--enable-xvmc],
608 [enable xvmc library @<:@default=auto@:>@])],
609 [enable_xvmc="$enableval"],
611 AC_ARG_ENABLE([vdpau],
612 [AS_HELP_STRING([--enable-vdpau],
613 [enable vdpau library @<:@default=auto@:>@])],
614 [enable_vdpau="$enableval"],
617 [AS_HELP_STRING([--enable-va],
618 [enable va library @<:@default=auto@:>@])],
619 [enable_va="$enableval"],
622 AC_ARG_ENABLE([xlib_glx],
623 [AS_HELP_STRING([--enable-xlib-glx],
624 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
625 [enable_xlib_glx="$enableval"],
626 [enable_xlib_glx=auto])
627 AC_ARG_ENABLE([gallium_egl],
628 [AS_HELP_STRING([--enable-gallium-egl],
629 [enable optional EGL state tracker (not required
630 for EGL support in Gallium with OpenGL and OpenGL ES)
631 @<:@default=disable@:>@])],
632 [enable_gallium_egl="$enableval"],
633 [enable_gallium_egl=no])
634 AC_ARG_ENABLE([gallium_gbm],
635 [AS_HELP_STRING([--enable-gallium-gbm],
636 [enable optional gbm state tracker (not required for
637 gbm support in Gallium)
638 @<:@default=auto@:>@])],
639 [enable_gallium_gbm="$enableval"],
640 [enable_gallium_gbm=auto])
642 # Option for Gallium drivers
643 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
645 AC_ARG_WITH([gallium-drivers],
646 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
647 [comma delimited Gallium drivers list, e.g.
648 "i915,nouveau,r300,r600,svga,swrast"
649 @<:@default=r300,r600,swrast@:>@])],
650 [with_gallium_drivers="$withval"],
651 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
653 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
654 # here so that the script doesn't choke on an unknown driver name later.
655 case "$with_gallium_drivers" in
656 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
657 no) with_gallium_drivers='' ;;
660 if test "x$enable_opengl" = xno -a \
661 "x$enable_gles1" = xno -a \
662 "x$enable_gles2" = xno -a \
663 "x$enable_openvg" = xno -a \
664 "x$enable_xorg" = xno -a \
665 "x$enable_xa" = xno -a \
666 "x$enable_d3d1x" = xno -a \
667 "x$enable_xvmc" = xno -a \
668 "x$enable_vdpau" = xno -a \
669 "x$enable_va" = xno; then
670 AC_MSG_ERROR([at least one API should be enabled])
674 if test "x$enable_opengl" = xno; then
675 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
677 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
679 if test "x$enable_gles1" = xyes; then
680 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
682 if test "x$enable_gles2" = xyes; then
683 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
685 AC_SUBST([API_DEFINES])
687 AC_ARG_ENABLE([shared-glapi],
688 [AS_HELP_STRING([--enable-shared-glapi],
689 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
690 [enable_shared_glapi="$enableval"],
691 [enable_shared_glapi=no])
694 if test "x$enable_shared_glapi" = xyes; then
697 AC_SUBST([SHARED_GLAPI])
700 dnl Driver configuration. Options are xlib, dri and osmesa right now.
701 dnl More later: fbdev, ...
703 default_driver="xlib"
708 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
711 *freebsd* | dragonfly* | *netbsd*)
713 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
718 if test "x$enable_opengl" = xno; then
722 AC_ARG_WITH([driver],
723 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
724 [mesa_driver="$withval"],
726 dnl Check for valid option
727 case "x$mesa_driver" in
728 xxlib|xdri|xosmesa|xno)
729 if test "x$enable_dri" != xauto -o \
730 "x$enable_glx" != xauto -o \
731 "x$enable_osmesa" != xauto -o \
732 "x$enable_xlib_glx" != xauto; then
733 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
737 mesa_driver="$default_driver"
740 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
744 # map $mesa_driver to APIs
745 if test "x$enable_dri" = xauto; then
746 case "x$mesa_driver" in
747 xdri) enable_dri=yes ;;
752 if test "x$enable_glx" = xauto; then
753 case "x$mesa_driver" in
754 xdri|xxlib) enable_glx=yes ;;
759 if test "x$enable_osmesa" = xauto; then
760 case "x$mesa_driver" in
761 xxlib|xosmesa) enable_osmesa=yes ;;
762 *) enable_osmesa=no ;;
766 if test "x$enable_xlib_glx" = xauto; then
767 case "x$mesa_driver" in
768 xxlib) enable_xlib_glx=yes ;;
769 *) enable_xlib_glx=no ;;
773 if test "x$enable_glx" = xno; then
777 AM_CONDITIONAL(HAVE_DRI, test x"$enable_dri" = xyes)
780 dnl Driver specific build directories
783 dnl this variable will be prepended to SRC_DIRS and is not exported
788 GALLIUM_DIRS="auxiliary drivers state_trackers"
789 GALLIUM_TARGET_DIRS=""
790 GALLIUM_WINSYS_DIRS="sw"
791 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
792 GALLIUM_STATE_TRACKERS_DIRS=""
794 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
795 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
797 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
801 # build glapi if OpenGL is enabled
802 if test "x$enable_opengl" = xyes; then
803 CORE_DIRS="$CORE_DIRS mapi/glapi"
806 # build es1api if OpenGL ES 1.x is enabled
807 if test "x$enable_gles1" = xyes; then
808 CORE_DIRS="$CORE_DIRS mapi/es1api"
811 # build es2api if OpenGL ES 2.x is enabled
812 if test "x$enable_gles2" = xyes; then
813 CORE_DIRS="$CORE_DIRS mapi/es2api"
816 # build glsl and mesa if OpenGL or OpenGL ES is enabled
817 case "x$enable_opengl$enable_gles1$enable_gles2" in
819 CORE_DIRS="$CORE_DIRS glsl mesa"
823 case "x$enable_glx$enable_xlib_glx" in
825 DRIVER_DIRS="$DRIVER_DIRS x11"
826 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
827 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
828 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
829 HAVE_WINSYS_XLIB="yes"
833 SRC_DIRS="$SRC_DIRS glx"
837 if test "x$enable_dri" = xyes; then
838 DRIVER_DIRS="$DRIVER_DIRS dri"
840 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
841 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
845 if test "x$enable_osmesa" = xyes; then
846 # the empty space matters for osmesa... (see src/mesa/Makefile)
847 if test -n "$DRIVER_DIRS"; then
848 DRIVER_DIRS="$DRIVER_DIRS osmesa"
856 AC_SUBST([DRIVER_DIRS])
857 AC_SUBST([GALLIUM_DIRS])
858 AC_SUBST([GALLIUM_TARGET_DIRS])
859 AC_SUBST([GALLIUM_WINSYS_DIRS])
860 AC_SUBST([GALLIUM_DRIVERS_DIRS])
861 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
862 AC_SUBST([MESA_LLVM])
865 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
866 [have_libdrm=yes], [have_libdrm=no])
868 if test "x$enable_dri" = xyes; then
869 # DRI must be shared, I think
870 if test "$enable_static" = yes; then
871 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
874 # not a hard requirement as swrast does not depend on it
875 if test "x$have_libdrm" = xyes; then
876 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
881 dnl Find out if X is available. The variable have_x is set if libX11 is
882 dnl found to mimic AC_PATH_XTRA.
884 if test -n "$PKG_CONFIG"; then
885 AC_MSG_CHECKING([pkg-config files for X11 are available])
886 PKG_CHECK_EXISTS([x11],[
892 AC_MSG_RESULT([$x11_pkgconfig])
896 dnl Use the autoconf macro if no pkg-config files
897 if test "$x11_pkgconfig" = yes; then
898 PKG_CHECK_MODULES([X11], [x11])
901 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
902 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
903 AC_SUBST([X11_CFLAGS])
907 dnl Try to tell the user that the --x-* options are only used when
908 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
909 m4_divert_once([HELP_BEGIN],
910 [These options are only used when the X libraries cannot be found by the
911 pkg-config utility.])
913 dnl We need X for xlib and dri, so bomb now if it's not found
914 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
915 AC_MSG_ERROR([X11 development libraries needed for GLX])
918 if test "x$enable_glx" = xyes; then
919 DEFINES="$DEFINES -DUSE_XCB"
922 dnl Direct rendering or just indirect rendering
925 dnl Disable by default on GNU/Hurd
926 driglx_direct_default="no"
929 dnl Disable by default on cygwin
930 driglx_direct_default="no"
933 driglx_direct_default="yes"
936 AC_ARG_ENABLE([driglx-direct],
937 [AS_HELP_STRING([--disable-driglx-direct],
938 [enable direct rendering in GLX and EGL for DRI \
939 @<:@default=auto@:>@])],
940 [driglx_direct="$enableval"],
941 [driglx_direct="$driglx_direct_default"])
944 dnl libGL configuration per driver
946 case "x$enable_glx$enable_xlib_glx" in
949 if test "$x11_pkgconfig" = yes; then
950 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
951 GL_PC_REQ_PRIV="x11 xext"
952 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
953 GL_LIB_DEPS="$XLIBGL_LIBS"
955 # should check these...
956 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
957 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
958 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
959 GL_PC_CFLAGS="$X11_INCLUDES"
961 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
962 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
966 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
967 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
968 if test x"$driglx_direct" = xyes; then
969 if test "x$have_libdrm" != xyes; then
970 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
972 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
973 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
976 # find the DRI deps for libGL
977 if test "$x11_pkgconfig" = yes; then
978 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
980 # add xf86vidmode if available
981 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
982 if test "$HAVE_XF86VIDMODE" = yes ; then
983 dri_modules="$dri_modules xxf86vm"
986 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
987 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
988 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
989 GL_LIB_DEPS="$DRIGL_LIBS"
991 # should check these...
992 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
993 if test "x$HAVE_XF86VIDMODE" == xyes; then
994 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
996 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
998 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
999 GL_PC_CFLAGS="$X11_INCLUDES"
1001 # XCB can only be used from pkg-config
1002 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1003 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1004 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1005 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1008 # Check to see if the xcb-glx library is new enough to support
1009 # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
1011 save_CPPFLAGS="$CPPFLAGS"
1012 save_LDFLAGS="$LDFLAGS"
1013 CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
1014 LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
1015 AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
1016 [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
1017 [HAVE_XCB_GLX_CREATE_CONTEXT=no])
1018 CPPFLAGS="$save_CPPFLAGS"
1019 LDFLAGS="$save_LDFLAGS"
1021 if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
1022 X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
1025 # need DRM libs, -lpthread, etc.
1026 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1027 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1031 # This is outside the case (above) so that it is invoked even for non-GLX
1033 AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
1034 test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
1036 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1037 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1038 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1039 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1041 AC_SUBST([GL_LIB_DEPS])
1042 AC_SUBST([GL_PC_REQ_PRIV])
1043 AC_SUBST([GL_PC_LIB_PRIV])
1044 AC_SUBST([GL_PC_CFLAGS])
1045 AC_SUBST([DRI_PC_REQ_PRIV])
1046 AC_SUBST([GLESv1_CM_LIB_DEPS])
1047 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1048 AC_SUBST([GLESv2_LIB_DEPS])
1049 AC_SUBST([GLESv2_PC_LIB_PRIV])
1051 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1052 AC_SUBST([GLAPI_LIB_DEPS])
1055 dnl Setup default DRI CFLAGS
1056 DRI_CFLAGS='$(CFLAGS)'
1057 DRI_CXXFLAGS='$(CXXFLAGS)'
1058 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1059 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1061 if test "x$enable_dri" = xyes && test "x$driglx_direct" = xyes ; then
1062 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1063 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1064 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1065 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1066 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1067 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1068 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1070 AC_SUBST([DRICORE_LIBS])
1071 AC_SUBST([DRICORE_GLSL_LIBS])
1072 AC_SUBST([DRICORE_LIB_DEPS])
1073 AC_SUBST([DRI_CXXFLAGS])
1074 AC_SUBST([DRI_CFLAGS])
1075 AC_SUBST([MESA_MODULES])
1077 AC_SUBST([HAVE_XF86VIDMODE])
1082 case "x$enable_glx$enable_xlib_glx" in
1084 DEFINES="$DEFINES -DUSE_XSHM"
1087 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1088 if test "x$driglx_direct" = xyes; then
1089 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1098 AC_ARG_ENABLE([glx-tls],
1099 [AS_HELP_STRING([--enable-glx-tls],
1100 [enable TLS support in GLX @<:@default=disabled@:>@])],
1101 [GLX_USE_TLS="$enableval"],
1103 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1105 AS_IF([test "x$GLX_USE_TLS" = xyes],
1106 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1111 dnl Directory for DRI drivers
1112 AC_ARG_WITH([dri-driverdir],
1113 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1114 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1115 [DRI_DRIVER_INSTALL_DIR="$withval"],
1116 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1117 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1118 dnl Extra search path for DRI drivers
1119 AC_ARG_WITH([dri-searchpath],
1120 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1121 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1122 [DRI_DRIVER_SEARCH_DIR="$withval"],
1123 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1124 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1125 dnl Which drivers to build - default is chosen by platform
1126 AC_ARG_WITH([dri-drivers],
1127 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1128 [comma delimited DRI drivers list, e.g.
1129 "swrast,i965,radeon" @<:@default=auto@:>@])],
1130 [with_dri_drivers="$withval"],
1131 [with_dri_drivers=yes])
1132 if test "x$with_dri_drivers" = x; then
1136 dnl If $with_dri_drivers is yes, directories will be added through
1139 case "$with_dri_drivers" in
1142 # classic DRI drivers require FEATURE_GL to build
1143 if test "x$enable_opengl" = xyes; then
1148 # verify the requested driver directories exist
1149 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1150 for driver in $dri_drivers; do
1151 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1152 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1154 DRI_DIRS="$dri_drivers"
1155 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1156 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1161 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1162 if test "x$enable_dri" = xyes; then
1163 # Platform specific settings and drivers to build
1166 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1167 DEFINES="$DEFINES -DHAVE_ALIAS"
1171 if test "x$DRI_DIRS" = "xyes"; then
1172 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1176 # Build only the drivers for cards that exist on PowerPC.
1177 if test "x$DRI_DIRS" = "xyes"; then
1178 DRI_DIRS="r200 radeon swrast"
1182 # Build only the drivers for cards that exist on sparc
1183 if test "x$DRI_DIRS" = "xyes"; then
1184 DRI_DIRS="r200 radeon swrast"
1189 freebsd* | dragonfly* | *netbsd*)
1190 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1191 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1193 if test "x$DRI_DIRS" = "xyes"; then
1194 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1198 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1199 DEFINES="$DEFINES -DHAVE_ALIAS"
1202 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1205 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1206 if test "x$DRI_DIRS" = "xyes"; then
1213 if test "x$DRI_DIRS" = "xyes"; then
1214 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1217 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1220 if test "x$enable_dri" = xyes; then
1223 AC_ARG_WITH([expat],
1224 [AS_HELP_STRING([--with-expat=DIR],
1225 [expat install directory])],[
1226 EXPAT_INCLUDES="-I$withval/include"
1227 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1228 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1229 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1231 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1233 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1234 [AC_MSG_ERROR([Expat required for DRI.])])
1238 # libdrm is required for all except swrast
1239 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1240 if test "x$have_libdrm" != xyes; then
1241 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1245 # put all the necessary libs together
1246 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1248 AC_SUBST([DRI_DIRS])
1249 AC_SUBST([EXPAT_INCLUDES])
1250 AC_SUBST([DRI_LIB_DEPS])
1254 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1256 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1272 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1273 HAVE_NOUVEAU_DRI=yes;
1279 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1281 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1284 HAVE_RADEON_DRI=yes;
1297 HAVE_SWRAST_DRI=yes;
1301 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
1302 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1303 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
1304 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
1305 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
1306 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
1309 dnl OSMesa configuration
1312 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1313 AC_ARG_WITH([osmesa-bits],
1314 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1315 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1316 [osmesa_bits="$withval"],
1318 if test "x$osmesa_bits" != x8; then
1319 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1320 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1324 case "x$osmesa_bits" in
1326 OSMESA_LIB="${OSMESA_LIB}"
1329 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1330 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1333 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1336 AM_CONDITIONAL(HAVE_OSMESA8, test "x$osmesa_bits" = x8)
1337 AM_CONDITIONAL(HAVE_OSMESA16, test "x$osmesa_bits" = x16)
1338 AM_CONDITIONAL(HAVE_OSMESA32, test "x$osmesa_bits" = x32)
1340 if test "x$enable_osmesa" = xyes; then
1341 # only link libraries with osmesa if shared
1342 if test "$enable_static" = no; then
1343 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1347 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1349 AC_SUBST([OSMESA_LIB_DEPS])
1350 AC_SUBST([OSMESA_PC_LIB_PRIV])
1353 dnl gbm configuration
1355 if test "x$enable_gbm" = xauto; then
1356 case "$with_egl_platforms" in
1363 if test "x$enable_gbm" = xyes; then
1364 SRC_DIRS="$SRC_DIRS gbm"
1366 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1367 AC_MSG_ERROR([gbm needs udev]))
1369 if test "x$enable_dri" = xyes; then
1370 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1371 if test "$SHARED_GLAPI" -eq 0; then
1372 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1376 GBM_PC_REQ_PRIV="libudev"
1377 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1378 AC_SUBST([GBM_PC_REQ_PRIV])
1379 AC_SUBST([GBM_PC_LIB_PRIV])
1382 dnl EGL configuration
1386 if test "x$enable_egl" = xyes; then
1387 SRC_DIRS="$SRC_DIRS egl"
1388 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1391 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1393 if test "$enable_static" != yes; then
1394 # build egl_glx when libGL is built
1395 if test "x$enable_glx" = xyes; then
1396 EGL_DRIVERS_DIRS="glx"
1399 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1400 [have_libudev=yes],[have_libudev=no])
1401 if test "$have_libudev" = yes; then
1402 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1404 if test "x$enable_dri" = xyes; then
1405 # build egl_dri2 when xcb-dri2 is available
1406 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1407 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1409 if test "$have_xcb_dri2" = yes; then
1410 EGL_DRIVER_DRI2=dri2
1411 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1412 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1413 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1414 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1418 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1421 AC_SUBST([EGL_LIB_DEPS])
1422 AC_SUBST([EGL_DRIVERS_DIRS])
1425 dnl EGL Gallium configuration
1427 if test "x$enable_gallium_egl" = xyes; then
1428 if test "x$with_gallium_drivers" = x; then
1429 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1431 if test "x$enable_egl" = xno; then
1432 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1434 if test "x$have_libdrm" != xyes; then
1435 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1438 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1439 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1444 dnl gbm Gallium configuration
1446 if test "x$enable_gallium_gbm" = xauto; then
1447 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1449 enable_gallium_gbm=yes ;;
1451 enable_gallium_gbm=no ;;
1454 if test "x$enable_gallium_gbm" = xyes; then
1455 if test "x$with_gallium_drivers" = x; then
1456 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1458 if test "x$enable_gbm" = xno; then
1459 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1461 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1462 if test "x$enable_dri" = xno; then
1463 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1466 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1467 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1472 dnl X.Org DDX configuration
1474 if test "x$enable_xorg" = xyes; then
1475 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1476 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1477 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1478 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1479 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1480 HAVE_XEXTPROTO_71="no")
1481 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1486 dnl XA configuration
1488 if test "x$enable_xa" = xyes; then
1491 AC_CHECK_PROG(NM, nm, "nm")
1492 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1493 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1497 if test "x$enable_xa" = xyes; then
1498 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1506 dnl OpenVG configuration
1510 if test "x$enable_openvg" = xyes; then
1511 if test "x$enable_egl" = xno; then
1512 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1514 if test "x$with_gallium_drivers" = x; then
1515 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1517 if test "x$enable_gallium_egl" = xno; then
1518 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1521 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1522 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1523 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1524 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1529 dnl D3D1X configuration
1532 if test "x$enable_d3d1x" = xyes; then
1533 if test "x$with_gallium_drivers" = x; then
1534 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1537 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1542 dnl Gallium G3DVL configuration
1544 AC_ARG_ENABLE([gallium-g3dvl],
1545 [AS_HELP_STRING([--enable-gallium-g3dvl],
1546 [build gallium g3dvl @<:@default=disabled@:>@])],
1547 [enable_gallium_g3dvl="$enableval"],
1548 [enable_gallium_g3dvl=no])
1549 if test "x$enable_gallium_g3dvl" = xyes; then
1550 if test "x$with_gallium_drivers" = x; then
1551 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1554 if test "x$enable_xvmc" = xauto; then
1555 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1558 if test "x$enable_vdpau" = xauto; then
1559 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1562 if test "x$enable_va" = xauto; then
1563 #don't enable vaapi state tracker even if package exists
1564 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1569 if test "x$enable_xvmc" = xyes; then
1570 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6])
1571 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1575 if test "x$enable_vdpau" = xyes; then
1576 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1577 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1581 if test "x$enable_va" = xyes; then
1582 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1583 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1584 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1589 dnl GLU configuration
1591 AC_ARG_ENABLE([glu],
1592 [AS_HELP_STRING([--disable-glu],
1593 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1594 [enable_glu="$enableval"],
1597 if test "x$enable_glu" = xyes; then
1598 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1599 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1604 if test "x$enable_glu" = xyes; then
1605 SRC_DIRS="$SRC_DIRS glu"
1607 if test "x$enable_glx" = xno; then
1608 # Link libGLU to libOSMesa instead of libGL
1611 if test "$enable_static" = no; then
1612 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1617 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1619 GLU_PC_LIB_PRIV="-lm"
1620 if test "$enable_static" = no; then
1622 GLU_MESA_DEPS='-l$(GL_LIB)'
1629 if test "$enable_static" = no; then
1630 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1632 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1633 AC_SUBST([GLU_LIB_DEPS])
1634 AC_SUBST([GLU_MESA_DEPS])
1635 AC_SUBST([GLU_PC_REQ])
1636 AC_SUBST([GLU_PC_REQ_PRIV])
1637 AC_SUBST([GLU_PC_LIB_PRIV])
1638 AC_SUBST([GLU_PC_CFLAGS])
1640 AC_SUBST([PROGRAM_DIRS])
1643 dnl Gallium configuration
1645 if test "x$with_gallium_drivers" != x; then
1646 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1649 AC_SUBST([LLVM_CFLAGS])
1650 AC_SUBST([LLVM_LIBS])
1651 AC_SUBST([LLVM_LDFLAGS])
1652 AC_SUBST([LLVM_VERSION])
1654 case "x$enable_opengl$enable_gles1$enable_gles2" in
1656 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1660 AC_SUBST([VG_LIB_DEPS])
1661 AC_SUBST([EGL_CLIENT_APIS])
1663 AC_ARG_WITH([egl-platforms],
1664 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1665 [comma delimited native platforms libEGL supports, e.g.
1666 "x11,drm" @<:@default=auto@:>@])],
1667 [with_egl_platforms="$withval"],
1668 [with_egl_platforms=yes])
1672 case "$with_egl_platforms" in
1674 if test "x$enable_egl" = xyes; then
1679 if test "x$enable_egl" != xyes; then
1680 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1682 # verify the requested driver directories exist
1683 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1684 for plat in $egl_platforms; do
1685 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1686 AC_MSG_ERROR([EGL platform '$plat' does not exist])
1687 if test "$plat" = "fbdev"; then
1688 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1690 if test "$plat" = "null"; then
1691 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1693 if test "$plat" = "wayland"; then
1694 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1695 [AC_MSG_ERROR([cannot find libwayland-client])])
1696 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1698 m4_ifdef([WAYLAND_SCANNER_RULES],
1699 [WAYLAND_SCANNER_RULES(['$(top_srcdir)/src/egl/wayland/wayland-drm/protocol'])])
1701 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1702 AC_MSG_ERROR([EGL platform drm needs gbm])
1704 case "$plat$have_libudev" in
1706 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1709 EGL_PLATFORMS="$egl_platforms"
1712 AC_SUBST([EGL_PLATFORMS])
1714 AC_ARG_WITH([egl-driver-dir],
1715 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1716 [directory for EGL drivers [[default=${libdir}/egl]]])],
1717 [EGL_DRIVER_INSTALL_DIR="$withval"],
1718 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1719 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1721 AC_ARG_WITH([xorg-driver-dir],
1722 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1723 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1724 [XORG_DRIVER_INSTALL_DIR="$withval"],
1725 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1726 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1728 AC_ARG_WITH([max-width],
1729 [AS_HELP_STRING([--with-max-width=N],
1730 [Maximum framebuffer width (4096)])],
1731 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1732 AS_IF([test "${withval}" -gt "4096"],
1733 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1735 AC_ARG_WITH([max-height],
1736 [AS_HELP_STRING([--with-max-height=N],
1737 [Maximum framebuffer height (4096)])],
1738 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1739 AS_IF([test "${withval}" -gt "4096"],
1740 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1746 AC_ARG_ENABLE([gallium-llvm],
1747 [AS_HELP_STRING([--enable-gallium-llvm],
1748 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1749 [enable_gallium_llvm="$enableval"],
1750 [enable_gallium_llvm=auto])
1751 if test "x$with_gallium_drivers" = x; then
1752 enable_gallium_llvm=no
1754 if test "x$enable_gallium_llvm" = xauto; then
1756 i*86|x86_64) enable_gallium_llvm=yes;;
1759 if test "x$enable_gallium_llvm" = xyes; then
1760 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1762 if test "x$LLVM_CONFIG" != xno; then
1763 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1764 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1765 LLVM_LIBS="`$LLVM_CONFIG --libs engine bitwriter`"
1767 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1768 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1777 dnl Directory for VDPAU libs
1778 AC_ARG_WITH([vdpau-libdir],
1779 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1780 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1781 [VDPAU_LIB_INSTALL_DIR="$withval"],
1782 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1783 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1785 dnl Directory for VA libs
1786 AC_ARG_WITH([va-libdir],
1787 [AS_HELP_STRING([--with-va-libdir=DIR],
1788 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1789 [VA_LIB_INSTALL_DIR="$withval"],
1790 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1791 AC_SUBST([VA_LIB_INSTALL_DIR])
1794 dnl Gallium helper functions
1796 gallium_check_st() {
1797 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1798 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1799 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1800 if test "x$have_libdrm" != xyes; then
1801 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1803 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1805 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1806 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1808 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1809 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1811 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1812 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1814 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1815 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1816 NEED_G3DVL_DRI="yes"
1818 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1819 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1820 NEED_G3DVL_DRI="yes"
1822 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1823 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1824 NEED_G3DVL_DRI="yes"
1828 gallium_require_llvm() {
1829 if test "x$MESA_LLVM" = x0; then
1831 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1837 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1838 if test "x$with_gallium_drivers" != x; then
1839 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1840 for driver in $gallium_drivers; do
1843 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1844 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1847 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1848 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1849 if test "x$MESA_LLVM" = x1; then
1850 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1852 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1853 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1856 gallium_require_llvm "Gallium R300"
1857 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1858 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1861 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1862 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1865 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1866 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1867 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1870 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1871 if test "x$MESA_LLVM" = x1; then
1872 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1875 if test "x$HAVE_ST_DRI" = xyes; then
1876 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1878 if test "x$HAVE_ST_VDPAU" = xyes; then
1879 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1881 if test "x$HAVE_ST_XVMC" = xyes; then
1882 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1884 if test "x$HAVE_ST_VA" = xyes; then
1885 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1887 if test "x$HAVE_ST_VDPAU" = xyes ||
1888 test "x$HAVE_ST_XVMC" = xyes ||
1889 test "x$HAVE_ST_VA" = xyes; then
1890 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1891 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1896 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1902 if test "x$NEED_G3DVL_DRI" = xyes; then
1903 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1906 dnl prepend CORE_DIRS to SRC_DIRS
1907 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1909 dnl Restore LDFLAGS and CPPFLAGS
1910 LDFLAGS="$_SAVE_LDFLAGS"
1911 CPPFLAGS="$_SAVE_CPPFLAGS"
1913 dnl Add user CFLAGS and CXXFLAGS
1914 CFLAGS="$CFLAGS $USER_CFLAGS"
1915 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1917 dnl Substitute the config
1918 AC_CONFIG_FILES([configs/autoconf
1921 src/egl/wayland/Makefile
1922 src/egl/wayland/wayland-egl/Makefile
1923 src/egl/wayland/wayland-egl/wayland-egl.pc
1924 src/egl/wayland/wayland-drm/Makefile
1925 src/mesa/drivers/dri/dri.pc
1926 src/mesa/drivers/dri/Makefile
1927 src/mesa/drivers/dri/common/Makefile
1928 src/mesa/drivers/dri/i915/Makefile
1929 src/mesa/drivers/dri/i965/Makefile
1930 src/mesa/drivers/dri/nouveau/Makefile
1931 src/mesa/drivers/dri/r200/Makefile
1932 src/mesa/drivers/dri/radeon/Makefile
1933 src/mesa/drivers/dri/swrast/Makefile
1934 src/mesa/drivers/osmesa/osmesa.pc
1935 src/mesa/drivers/osmesa/Makefile
1937 tests/glx/Makefile])
1939 dnl Replace the configs/current symlink
1940 AC_CONFIG_COMMANDS([configs],[
1941 if test -f configs/current || test -L configs/current; then
1942 rm -f configs/current
1944 ln -s autoconf configs/current
1947 dnl Sort the dirs alphabetically
1948 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1949 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1950 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1951 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1956 dnl Output some configuration info for the user
1959 echo " prefix: $prefix"
1960 echo " exec_prefix: $exec_prefix"
1961 echo " libdir: $libdir"
1962 echo " includedir: $includedir"
1966 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1967 echo " OpenVG: $enable_openvg"
1971 if test "x$enable_osmesa" != xno; then
1972 echo " OSMesa: lib$OSMESA_LIB"
1977 if test "x$enable_dri" != xno; then
1978 # cleanup the drivers var
1979 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1980 if test "x$DRI_DIRS" = x; then
1981 echo " DRI drivers: no"
1983 echo " DRI drivers: $dri_dirs"
1985 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1988 case "x$enable_glx$enable_xlib_glx" in
1990 echo " GLX: Xlib-based"
1993 echo " GLX: DRI-based"
1996 echo " GLX: $enable_glx"
2001 echo " GLU: $enable_glu"
2005 echo " EGL: $enable_egl"
2006 if test "$enable_egl" = yes; then
2007 echo " EGL platforms: $EGL_PLATFORMS"
2010 for d in $EGL_DRIVERS_DIRS; do
2011 egl_drivers="$egl_drivers builtin:egl_$d"
2014 if test "x$HAVE_ST_EGL" = xyes; then
2015 echo " EGL drivers: ${egl_drivers} egl_gallium"
2016 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2018 echo " EGL drivers: $egl_drivers"
2023 if test "x$MESA_LLVM" = x1; then
2025 echo " llvm-config: $LLVM_CONFIG"
2026 echo " llvm-version: $LLVM_VERSION"
2032 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2033 echo " Gallium: yes"
2034 echo " Gallium dirs: $GALLIUM_DIRS"
2035 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2036 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2037 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2038 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2046 echo " Shared libs: $enable_shared"
2047 echo " Static libs: $enable_static"
2049 dnl Compiler options
2050 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2051 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2052 $SED 's/^ *//;s/ */ /;s/ *$//'`
2053 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2054 $SED 's/^ *//;s/ */ /;s/ *$//'`
2055 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2057 echo " CFLAGS: $cflags"
2058 echo " CXXFLAGS: $cxxflags"
2059 echo " Macros: $defines"
2061 echo " PYTHON2: $PYTHON2"
2064 echo " Run '${MAKE-make}' to build Mesa"