1 dnl Process this file with autoconf to create configure.
5 dnl Versioning - scrape the version from configs/default
6 m4_define([mesa_version],
7 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
8 m4_ifval(mesa_version,,
9 [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
11 dnl Tell the user about autoconf.html in the --help output
12 m4_divert_once([HELP_END], [
13 See docs/autoconf.html for more details on the options for Mesa.])
15 AC_INIT([Mesa],[mesa_version],
16 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17 AC_CONFIG_AUX_DIR([bin])
19 AM_INIT_AUTOMAKE([foreign])
21 # Support silent build rules, requires at least automake-1.11. Disable
22 # by either passing --disable-silent-rules to configure or passing V=1
24 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
27 LT_INIT([disable-static])
29 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
31 USER_CXXFLAGS="$CXXFLAGS"
33 dnl Versions for external dependencies
34 LIBDRM_REQUIRED=2.4.24
35 LIBDRM_RADEON_REQUIRED=2.4.24
36 LIBDRM_INTEL_REQUIRED=2.4.30
37 LIBDRM_NOUVEAU_REQUIRED=0.6
38 DRI2PROTO_REQUIRED=2.6
39 GLPROTO_REQUIRED=1.4.14
40 LIBDRM_XORG_REQUIRED=2.4.24
41 LIBKMS_XORG_REQUIRED=1.0.0
47 AC_CHECK_PROGS([MAKE], [gmake make])
48 AC_CHECK_PROGS([PYTHON2], [python2 python])
51 AC_PATH_PROG([MKDEP], [makedepend])
53 if test "x$MKDEP" = "x"; then
54 AC_MSG_ERROR([makedepend is required to build Mesa])
57 AC_PATH_PROG([FLEX], [flex])
58 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
60 AC_PATH_PROG([BISON], [bison])
61 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
63 dnl Our fallback install-sh is a symlink to minstall. Use the existing
64 dnl configuration in that case.
66 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
68 dnl We need a POSIX shell for parts of the build. Assume we have one
72 # Solaris /bin/sh is too old/non-POSIX compliant
73 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
78 AC_PATH_PROG([GTESTCONFIG], [gtest-config])
79 if test "x$GTESTCONFIG" != "x"; then
80 GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
81 GTEST_LIBS=`gtest-config --ldflags --libs`
82 AC_SUBST([GTEST_CFLAGS])
83 AC_SUBST([GTEST_LIBS])
88 AM_CONDITIONAL(HAVE_GTEST, test x$HAVE_GTEST = xyes)
90 dnl clang is mostly GCC-compatible, but its version is much lower,
91 dnl so we have to check for it.
92 AC_MSG_CHECKING([if compiling with clang])
95 [AC_LANG_PROGRAM([], [[
100 [CLANG=yes], [CLANG=no])
102 AC_MSG_RESULT([$CLANG])
104 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
105 dnl versions are explictly not supported.
106 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
107 AC_MSG_CHECKING([whether gcc version is sufficient])
111 GCC_VERSION=`$CC -dumpversion`
112 if test $? -eq 0; then
113 major=`echo $GCC_VERSION | cut -d. -f1`
114 minor=`echo $GCC_VERSION | cut -d. -f2`
117 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
119 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
126 MKDEP_OPTIONS=-fdepend
127 dnl Ask gcc where it's keeping its secret headers
128 if test "x$GCC" = xyes; then
129 for dir in include include-fixed; do
130 GCC_INCLUDES=`$CC -print-file-name=$dir`
131 if test "x$GCC_INCLUDES" != x && \
132 test "$GCC_INCLUDES" != "$dir" && \
133 test -d "$GCC_INCLUDES"; then
134 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
138 AC_SUBST([MKDEP_OPTIONS])
140 dnl Make sure the pkg-config macros are defined
141 m4_ifndef([PKG_PROG_PKG_CONFIG],
142 [m4_fatal([Could not locate the pkg-config autoconf macros.
143 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
144 are in a different location, try setting the environment variable
145 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
146 PKG_PROG_PKG_CONFIG()
148 dnl LIB_DIR - library basename
149 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
152 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
153 _SAVE_LDFLAGS="$LDFLAGS"
154 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
155 AC_SUBST([EXTRA_LIB_PATH])
157 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
158 _SAVE_CPPFLAGS="$CPPFLAGS"
159 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
160 AC_SUBST([X11_INCLUDES])
167 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
170 DEFINES="$DEFINES -DPTHREADS -DSVR4"
173 DEFINES="$DEFINES -DPTHREADS"
177 dnl Add flags for gcc and g++
178 if test "x$GCC" = xyes; then
179 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
181 # Enable -fvisibility=hidden if using a gcc that supports it
182 save_CFLAGS="$CFLAGS"
183 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
184 VISIBILITY_CFLAGS="-fvisibility=hidden"
185 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
186 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
187 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
189 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
192 # Work around aliasing bugs - developers should comment this out
193 CFLAGS="$CFLAGS -fno-strict-aliasing"
195 # gcc's builtin memcmp is slower than glibc's
196 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
197 CFLAGS="$CFLAGS -fno-builtin-memcmp"
199 if test "x$GXX" = xyes; then
200 CXXFLAGS="$CXXFLAGS -Wall"
202 # Enable -fvisibility=hidden if using a gcc that supports it
203 save_CXXFLAGS="$CXXFLAGS"
204 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
205 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
206 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
208 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
209 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
212 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
213 CXXFLAGS=$save_CXXFLAGS
215 # Work around aliasing bugs - developers should comment this out
216 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
218 # gcc's builtin memcmp is slower than glibc's
219 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
220 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
223 dnl even if the compiler appears to support it, using visibility attributes isn't
224 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
228 VISIBILITY_CXXFLAGS=""
232 AC_SUBST([VISIBILITY_CFLAGS])
233 AC_SUBST([VISIBILITY_CXXFLAGS])
235 dnl These should be unnecessary, but let the user set them if they want
236 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
237 Default is to use CFLAGS.])
238 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
239 compiler. Default is to use CFLAGS.])
240 AC_SUBST([OPT_FLAGS])
241 AC_SUBST([ARCH_FLAGS])
244 dnl Hacks to enable 32 or 64 bit build
246 AC_ARG_ENABLE([32-bit],
247 [AS_HELP_STRING([--enable-32-bit],
248 [build 32-bit libraries @<:@default=auto@:>@])],
249 [enable_32bit="$enableval"],
252 if test "x$enable_32bit" = xyes; then
253 if test "x$GCC" = xyes; then
254 CFLAGS="$CFLAGS -m32"
255 ARCH_FLAGS="$ARCH_FLAGS -m32"
257 if test "x$GXX" = xyes; then
258 CXXFLAGS="$CXXFLAGS -m32"
261 AC_ARG_ENABLE([64-bit],
262 [AS_HELP_STRING([--enable-64-bit],
263 [build 64-bit libraries @<:@default=auto@:>@])],
264 [enable_64bit="$enableval"],
267 if test "x$enable_64bit" = xyes; then
268 if test "x$GCC" = xyes; then
269 CFLAGS="$CFLAGS -m64"
271 if test "x$GXX" = xyes; then
272 CXXFLAGS="$CXXFLAGS -m64"
277 dnl shared/static libraries, mimic libtool options
279 AC_ARG_ENABLE([static],
280 [AS_HELP_STRING([--enable-static],
281 [build static libraries @<:@default=disabled@:>@])],
282 [enable_static="$enableval"],
285 case "x$enable_static" in
287 x ) enable_static=no ;;
289 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
292 AC_ARG_ENABLE([shared],
293 [AS_HELP_STRING([--disable-shared],
294 [build shared libraries @<:@default=enabled@:>@])],
295 [enable_shared="$enableval"],
298 case "x$enable_shared" in
300 x ) enable_shared=yes ;;
302 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
306 dnl Can't have static and shared libraries, default to static if user
307 dnl explicitly requested. If both disabled, set to static since shared
308 dnl was explicitly requirested.
309 case "x$enable_static$enable_shared" in
311 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
315 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
323 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
324 if test "$enable_static" = yes; then
325 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
327 AC_SUBST([MKLIB_OPTIONS])
330 dnl other compiler options
332 AC_ARG_ENABLE([debug],
333 [AS_HELP_STRING([--enable-debug],
334 [use debug compiler flags and macros @<:@default=disabled@:>@])],
335 [enable_debug="$enableval"],
338 if test "x$enable_debug" = xyes; then
339 DEFINES="$DEFINES -DDEBUG"
340 if test "x$GCC" = xyes; then
343 if test "x$GXX" = xyes; then
344 CXXFLAGS="$CXXFLAGS -g"
351 LIB_PREFIX_GLOB='lib'
352 LIB_VERSION_SEPARATOR='.'
353 if test "$enable_static" = yes; then
358 LIB_EXTENSION='dylib' ;;
360 dnl prefix can be 'cyg' or 'lib'
361 LIB_PREFIX_GLOB='???'
362 LIB_VERSION_SEPARATOR='-'
363 LIB_EXTENSION='dll' ;;
367 LIB_EXTENSION='so' ;;
372 dnl Mangled Mesa support
374 AC_ARG_ENABLE([mangling],
375 [AS_HELP_STRING([--enable-mangling],
376 [enable mangled symbols and library name @<:@default=disabled@:>@])],
377 [enable_mangling="${enableval}"],
383 if test "x${enable_mangling}" = "xyes" ; then
384 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
387 OSMESA_LIB="MangledOSMesa"
391 AC_SUBST([OSMESA_LIB])
394 dnl potentially-infringing-but-nobody-knows-for-sure stuff
396 AC_ARG_ENABLE([texture-float],
397 [AS_HELP_STRING([--enable-texture-float],
398 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
399 [enable_texture_float="$enableval"],
400 [enable_texture_float=no]
402 if test "x$enable_texture_float" = xyes; then
403 AC_MSG_WARN([Floating-point textures enabled.])
404 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
405 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
408 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
409 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
410 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
411 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
412 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
413 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
414 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
415 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
416 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
418 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
419 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
420 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
421 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
422 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
423 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
424 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
425 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
426 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
427 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
429 AC_SUBST([GL_LIB_NAME])
430 AC_SUBST([GLU_LIB_NAME])
431 AC_SUBST([OSMESA_LIB_NAME])
432 AC_SUBST([EGL_LIB_NAME])
433 AC_SUBST([GLESv1_CM_LIB_NAME])
434 AC_SUBST([GLESv2_LIB_NAME])
435 AC_SUBST([VG_LIB_NAME])
436 AC_SUBST([GLAPI_LIB_NAME])
437 AC_SUBST([WAYLAND_EGL_LIB_NAME])
439 AC_SUBST([GL_LIB_GLOB])
440 AC_SUBST([GLU_LIB_GLOB])
441 AC_SUBST([OSMESA_LIB_GLOB])
442 AC_SUBST([EGL_LIB_GLOB])
443 AC_SUBST([GLESv1_CM_LIB_GLOB])
444 AC_SUBST([GLESv2_LIB_GLOB])
445 AC_SUBST([VG_LIB_GLOB])
446 AC_SUBST([GLAPI_LIB_GLOB])
447 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
450 dnl Arch/platform-specific settings
453 [AS_HELP_STRING([--disable-asm],
454 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
455 [enable_asm="$enableval"],
462 AC_MSG_CHECKING([whether to enable assembly])
463 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
464 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
465 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
469 AC_MSG_RESULT([no, cross compiling])
473 # check for supported arches
474 if test "x$enable_asm" = xyes; then
478 linux* | *freebsd* | dragonfly* | *netbsd*)
479 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
485 linux* | *freebsd* | dragonfly* | *netbsd*)
486 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
508 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
509 MESA_ASM_SOURCES='$(X86_SOURCES)'
510 GLAPI_ASM_SOURCES='$(X86_API)'
511 AC_MSG_RESULT([yes, x86])
514 ASM_FLAGS="-DUSE_X86_64_ASM"
515 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
516 GLAPI_ASM_SOURCES='$(X86-64_API)'
517 AC_MSG_RESULT([yes, x86_64])
520 ASM_FLAGS="-DUSE_SPARC_ASM"
521 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
522 GLAPI_ASM_SOURCES='$(SPARC_API)'
523 AC_MSG_RESULT([yes, sparc])
526 AC_MSG_RESULT([no, platform not supported])
530 AC_SUBST([ASM_FLAGS])
531 AC_SUBST([MESA_ASM_SOURCES])
532 AC_SUBST([GLAPI_ASM_SOURCES])
537 dnl Check to see if dlopen is in default libraries (like Solaris, which
538 dnl has it in libc), or if libdl is needed to get it.
539 AC_CHECK_FUNC([dlopen], [],
540 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
541 AC_SUBST([DLOPEN_LIBS])
543 dnl See if posix_memalign is available
544 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
546 dnl SELinux awareness.
547 AC_ARG_ENABLE([selinux],
548 [AS_HELP_STRING([--enable-selinux],
549 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
550 [MESA_SELINUX="$enableval"],
552 if test "x$enable_selinux" = "xyes"; then
553 AC_CHECK_HEADER([selinux/selinux.h],[],
554 [AC_MSG_ERROR([SELinux headers not found])])
555 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
556 [AC_MSG_ERROR([SELinux library not found])])
557 SELINUX_LIBS="-lselinux"
558 DEFINES="$DEFINES -DMESA_SELINUX"
562 AC_ARG_ENABLE([opengl],
563 [AS_HELP_STRING([--disable-opengl],
564 [disable support for standard OpenGL API @<:@default=no@:>@])],
565 [enable_opengl="$enableval"],
567 AC_ARG_ENABLE([gles1],
568 [AS_HELP_STRING([--enable-gles1],
569 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
570 [enable_gles1="$enableval"],
572 AC_ARG_ENABLE([gles2],
573 [AS_HELP_STRING([--enable-gles2],
574 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
575 [enable_gles2="$enableval"],
577 AC_ARG_ENABLE([openvg],
578 [AS_HELP_STRING([--enable-openvg],
579 [enable support for OpenVG API @<:@default=no@:>@])],
580 [enable_openvg="$enableval"],
584 [AS_HELP_STRING([--enable-dri],
585 [enable DRI modules @<:@default=auto@:>@])],
586 [enable_dri="$enableval"],
589 [AS_HELP_STRING([--enable-glx],
590 [enable GLX library @<:@default=auto@:>@])],
591 [enable_glx="$enableval"],
593 AC_ARG_ENABLE([osmesa],
594 [AS_HELP_STRING([--enable-osmesa],
595 [enable OSMesa library @<:@default=auto@:>@])],
596 [enable_osmesa="$enableval"],
597 [enable_osmesa=auto])
599 [AS_HELP_STRING([--disable-egl],
600 [disable EGL library @<:@default=enabled@:>@])],
601 [enable_egl="$enableval"],
604 AC_ARG_ENABLE([xorg],
605 [AS_HELP_STRING([--enable-xorg],
606 [enable support for X.Org DDX API @<:@default=no@:>@])],
607 [enable_xorg="$enableval"],
610 [AS_HELP_STRING([--enable-xa],
611 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
612 [enable_xa="$enableval"],
614 AC_ARG_ENABLE([d3d1x],
615 [AS_HELP_STRING([--enable-d3d1x],
616 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
617 [enable_d3d1x="$enableval"],
620 [AS_HELP_STRING([--enable-gbm],
621 [enable gbm library @<:@default=auto@:>@])],
622 [enable_gbm="$enableval"],
625 AC_ARG_ENABLE([xvmc],
626 [AS_HELP_STRING([--enable-xvmc],
627 [enable xvmc library @<:@default=auto@:>@])],
628 [enable_xvmc="$enableval"],
630 AC_ARG_ENABLE([vdpau],
631 [AS_HELP_STRING([--enable-vdpau],
632 [enable vdpau library @<:@default=auto@:>@])],
633 [enable_vdpau="$enableval"],
636 [AS_HELP_STRING([--enable-va],
637 [enable va library @<:@default=auto@:>@])],
638 [enable_va="$enableval"],
641 AC_ARG_ENABLE([xlib_glx],
642 [AS_HELP_STRING([--enable-xlib-glx],
643 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
644 [enable_xlib_glx="$enableval"],
645 [enable_xlib_glx=auto])
646 AC_ARG_ENABLE([gallium_egl],
647 [AS_HELP_STRING([--enable-gallium-egl],
648 [enable optional EGL state tracker (not required
649 for EGL support in Gallium with OpenGL and OpenGL ES)
650 @<:@default=disable@:>@])],
651 [enable_gallium_egl="$enableval"],
652 [enable_gallium_egl=no])
653 AC_ARG_ENABLE([gallium_gbm],
654 [AS_HELP_STRING([--enable-gallium-gbm],
655 [enable optional gbm state tracker (not required for
656 gbm support in Gallium)
657 @<:@default=auto@:>@])],
658 [enable_gallium_gbm="$enableval"],
659 [enable_gallium_gbm=auto])
661 # Option for Gallium drivers
662 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
664 AC_ARG_WITH([gallium-drivers],
665 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
666 [comma delimited Gallium drivers list, e.g.
667 "i915,nouveau,r300,r600,svga,swrast"
668 @<:@default=r300,r600,swrast@:>@])],
669 [with_gallium_drivers="$withval"],
670 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
672 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
673 # here so that the script doesn't choke on an unknown driver name later.
674 case "$with_gallium_drivers" in
675 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
676 no) with_gallium_drivers='' ;;
679 if test "x$enable_opengl" = xno -a \
680 "x$enable_gles1" = xno -a \
681 "x$enable_gles2" = xno -a \
682 "x$enable_openvg" = xno -a \
683 "x$enable_xorg" = xno -a \
684 "x$enable_xa" = xno -a \
685 "x$enable_d3d1x" = xno -a \
686 "x$enable_xvmc" = xno -a \
687 "x$enable_vdpau" = xno -a \
688 "x$enable_va" = xno; then
689 AC_MSG_ERROR([at least one API should be enabled])
693 if test "x$enable_opengl" = xno; then
694 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
696 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
698 if test "x$enable_gles1" = xyes; then
699 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
701 if test "x$enable_gles2" = xyes; then
702 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
704 AC_SUBST([API_DEFINES])
707 dnl Driver configuration. Options are xlib, dri and osmesa right now.
708 dnl More later: fbdev, ...
710 default_driver="xlib"
715 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
718 *freebsd* | dragonfly* | *netbsd*)
720 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
725 if test "x$enable_opengl" = xno; then
729 AC_ARG_WITH([driver],
730 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
731 [mesa_driver="$withval"],
733 dnl Check for valid option
734 case "x$mesa_driver" in
735 xxlib|xdri|xosmesa|xno)
736 if test "x$enable_dri" != xauto -o \
737 "x$enable_glx" != xauto -o \
738 "x$enable_osmesa" != xauto -o \
739 "x$enable_xlib_glx" != xauto; then
740 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
744 mesa_driver="$default_driver"
747 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
751 # map $mesa_driver to APIs
752 if test "x$enable_dri" = xauto; then
753 case "x$mesa_driver" in
754 xdri) enable_dri=yes ;;
759 if test "x$enable_glx" = xauto; then
760 case "x$mesa_driver" in
761 xdri|xxlib) enable_glx=yes ;;
766 if test "x$enable_osmesa" = xauto; then
767 case "x$mesa_driver" in
768 xxlib|xosmesa) enable_osmesa=yes ;;
769 *) enable_osmesa=no ;;
773 if test "x$enable_xlib_glx" = xauto; then
774 case "x$mesa_driver" in
775 xxlib) enable_xlib_glx=yes ;;
776 *) enable_xlib_glx=no ;;
780 if test "x$enable_glx" = xno; then
784 AM_CONDITIONAL(HAVE_DRI, test x"$enable_dri" = xyes)
787 dnl Driver specific build directories
790 dnl this variable will be prepended to SRC_DIRS and is not exported
791 CORE_DIRS="mapi/shared-glapi"
795 GALLIUM_DIRS="auxiliary drivers state_trackers"
796 GALLIUM_TARGET_DIRS=""
797 GALLIUM_WINSYS_DIRS="sw"
798 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
799 GALLIUM_STATE_TRACKERS_DIRS=""
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])
1337 if test "x$enable_osmesa" = xyes; then
1338 # only link libraries with osmesa if shared
1339 if test "$enable_static" = no; then
1340 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1345 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1347 AC_SUBST([OSMESA_LIB_DEPS])
1348 AC_SUBST([OSMESA_MESA_DEPS])
1349 AC_SUBST([OSMESA_PC_REQ])
1350 AC_SUBST([OSMESA_PC_LIB_PRIV])
1353 dnl gbm configuration
1355 if test "x$enable_gbm" = xauto; then
1356 case "$with_egl_platforms" in
1363 if test "x$enable_gbm" = xyes; then
1364 SRC_DIRS="$SRC_DIRS gbm"
1366 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1367 AC_MSG_ERROR([gbm needs udev]))
1369 GBM_PC_REQ_PRIV="libudev"
1370 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1371 AC_SUBST([GBM_PC_REQ_PRIV])
1372 AC_SUBST([GBM_PC_LIB_PRIV])
1375 dnl EGL configuration
1379 if test "x$enable_egl" = xyes; then
1380 SRC_DIRS="$SRC_DIRS egl"
1381 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1384 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1386 if test "$enable_static" != yes; then
1387 # build egl_glx when libGL is built
1388 if test "x$enable_glx" = xyes; then
1389 EGL_DRIVERS_DIRS="glx"
1392 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1393 [have_libudev=yes],[have_libudev=no])
1394 if test "$have_libudev" = yes; then
1395 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1397 if test "x$enable_dri" = xyes; then
1398 # build egl_dri2 when xcb-dri2 is available
1399 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1400 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1402 if test "$have_xcb_dri2" = yes; then
1403 EGL_DRIVER_DRI2=dri2
1404 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1405 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1406 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1407 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1411 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1414 AC_SUBST([EGL_LIB_DEPS])
1415 AC_SUBST([EGL_DRIVERS_DIRS])
1418 dnl EGL Gallium configuration
1420 if test "x$enable_gallium_egl" = xyes; then
1421 if test "x$with_gallium_drivers" = x; then
1422 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1424 if test "x$enable_egl" = xno; then
1425 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1427 if test "x$have_libdrm" != xyes; then
1428 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1431 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1432 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1437 dnl gbm Gallium configuration
1439 if test "x$enable_gallium_gbm" = xauto; then
1440 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1442 enable_gallium_gbm=yes ;;
1444 enable_gallium_gbm=no ;;
1447 if test "x$enable_gallium_gbm" = xyes; then
1448 if test "x$with_gallium_drivers" = x; then
1449 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1451 if test "x$enable_gbm" = xno; then
1452 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1454 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1455 if test "x$enable_dri" = xno; then
1456 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1459 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1460 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1465 dnl X.Org DDX configuration
1467 if test "x$enable_xorg" = xyes; then
1468 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1469 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1470 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1471 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1472 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1473 HAVE_XEXTPROTO_71="no")
1474 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1479 dnl XA configuration
1481 if test "x$enable_xa" = xyes; then
1484 AC_CHECK_PROG(NM, nm, "nm")
1485 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1486 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1490 if test "x$enable_xa" = xyes; then
1491 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1499 dnl OpenVG configuration
1503 if test "x$enable_openvg" = xyes; then
1504 if test "x$enable_egl" = xno; then
1505 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1507 if test "x$with_gallium_drivers" = x; then
1508 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1510 if test "x$enable_gallium_egl" = xno; then
1511 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1514 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1515 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1516 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1517 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1522 dnl D3D1X configuration
1525 if test "x$enable_d3d1x" = xyes; then
1526 if test "x$with_gallium_drivers" = x; then
1527 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1530 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1535 dnl Gallium G3DVL configuration
1537 AC_ARG_ENABLE([gallium-g3dvl],
1538 [AS_HELP_STRING([--enable-gallium-g3dvl],
1539 [build gallium g3dvl @<:@default=disabled@:>@])],
1540 [enable_gallium_g3dvl="$enableval"],
1541 [enable_gallium_g3dvl=no])
1542 if test "x$enable_gallium_g3dvl" = xyes; then
1543 if test "x$with_gallium_drivers" = x; then
1544 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1547 if test "x$enable_xvmc" = xauto; then
1548 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1551 if test "x$enable_vdpau" = xauto; then
1552 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1555 if test "x$enable_va" = xauto; then
1556 #don't enable vaapi state tracker even if package exists
1557 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1562 if test "x$enable_xvmc" = xyes; then
1563 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1564 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1568 if test "x$enable_vdpau" = xyes; then
1569 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1570 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1574 if test "x$enable_va" = xyes; then
1575 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1576 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1577 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1582 dnl GLU configuration
1584 AC_ARG_ENABLE([glu],
1585 [AS_HELP_STRING([--disable-glu],
1586 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1587 [enable_glu="$enableval"],
1590 if test "x$enable_glu" = xyes; then
1591 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1592 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1597 if test "x$enable_glu" = xyes; then
1598 SRC_DIRS="$SRC_DIRS glu"
1600 if test "x$enable_glx" = xno; then
1601 # Link libGLU to libOSMesa instead of libGL
1604 if test "$enable_static" = no; then
1605 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1610 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1612 GLU_PC_LIB_PRIV="-lm"
1613 if test "$enable_static" = no; then
1615 GLU_MESA_DEPS='-l$(GL_LIB)'
1622 if test "$enable_static" = no; then
1623 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1625 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1626 AC_SUBST([GLU_LIB_DEPS])
1627 AC_SUBST([GLU_MESA_DEPS])
1628 AC_SUBST([GLU_PC_REQ])
1629 AC_SUBST([GLU_PC_REQ_PRIV])
1630 AC_SUBST([GLU_PC_LIB_PRIV])
1631 AC_SUBST([GLU_PC_CFLAGS])
1633 AC_SUBST([PROGRAM_DIRS])
1636 dnl Gallium configuration
1638 if test "x$with_gallium_drivers" != x; then
1639 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1642 AC_SUBST([LLVM_CFLAGS])
1643 AC_SUBST([LLVM_LIBS])
1644 AC_SUBST([LLVM_LDFLAGS])
1645 AC_SUBST([LLVM_VERSION])
1647 case "x$enable_opengl$enable_gles1$enable_gles2" in
1649 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1653 AC_SUBST([VG_LIB_DEPS])
1654 AC_SUBST([EGL_CLIENT_APIS])
1656 AC_ARG_WITH([egl-platforms],
1657 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1658 [comma delimited native platforms libEGL supports, e.g.
1659 "x11,drm" @<:@default=auto@:>@])],
1660 [with_egl_platforms="$withval"],
1661 [with_egl_platforms=yes])
1664 WAYLAND_EGL_LIB_DEPS=""
1666 case "$with_egl_platforms" in
1668 if test "x$enable_egl" = xyes; then
1673 if test "x$enable_egl" != xyes; then
1674 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1676 # verify the requested driver directories exist
1677 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1678 for plat in $egl_platforms; do
1679 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1680 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1681 if test "$plat" = "fbdev"; then
1682 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1684 if test "$plat" = "null"; then
1685 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1687 if test "$plat" = "wayland"; then
1688 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1689 [AC_MSG_ERROR([cannot find libwayland-client])])
1690 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1691 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1693 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1694 AC_MSG_ERROR([EGL platform drm needs gbm])
1696 case "$plat$have_libudev" in
1698 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1701 EGL_PLATFORMS="$egl_platforms"
1704 AC_SUBST([EGL_PLATFORMS])
1706 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1707 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1708 WAYLAND_EGL_PC_LIB_PRIV=
1709 WAYLAND_EGL_PC_CFLAGS=
1711 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1712 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1713 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1716 AC_ARG_WITH([egl-driver-dir],
1717 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1718 [directory for EGL drivers [[default=${libdir}/egl]]])],
1719 [EGL_DRIVER_INSTALL_DIR="$withval"],
1720 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1721 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1723 AC_ARG_WITH([xorg-driver-dir],
1724 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1725 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1726 [XORG_DRIVER_INSTALL_DIR="$withval"],
1727 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1728 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1730 AC_ARG_WITH([max-width],
1731 [AS_HELP_STRING([--with-max-width=N],
1732 [Maximum framebuffer width (4096)])],
1733 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1734 AS_IF([test "${withval}" -gt "4096"],
1735 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1737 AC_ARG_WITH([max-height],
1738 [AS_HELP_STRING([--with-max-height=N],
1739 [Maximum framebuffer height (4096)])],
1740 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1741 AS_IF([test "${withval}" -gt "4096"],
1742 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1748 AC_ARG_ENABLE([gallium-llvm],
1749 [AS_HELP_STRING([--enable-gallium-llvm],
1750 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1751 [enable_gallium_llvm="$enableval"],
1752 [enable_gallium_llvm=auto])
1753 if test "x$with_gallium_drivers" = x; then
1754 enable_gallium_llvm=no
1756 if test "x$enable_gallium_llvm" = xauto; then
1758 i*86|x86_64) enable_gallium_llvm=yes;;
1761 if test "x$enable_gallium_llvm" = xyes; then
1762 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1764 if test "x$LLVM_CONFIG" != xno; then
1765 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1766 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1767 LLVM_LIBS="`$LLVM_CONFIG --libs`"
1769 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1770 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1779 dnl Directory for VDPAU libs
1780 AC_ARG_WITH([vdpau-libdir],
1781 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1782 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1783 [VDPAU_LIB_INSTALL_DIR="$withval"],
1784 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1785 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1787 dnl Directory for VA libs
1788 AC_ARG_WITH([va-libdir],
1789 [AS_HELP_STRING([--with-va-libdir=DIR],
1790 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1791 [VA_LIB_INSTALL_DIR="$withval"],
1792 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1793 AC_SUBST([VA_LIB_INSTALL_DIR])
1796 dnl Gallium helper functions
1798 gallium_check_st() {
1799 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1800 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1801 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1802 if test "x$have_libdrm" != xyes; then
1803 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1805 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1807 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1808 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1810 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1811 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1813 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1814 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1816 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1817 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1818 NEED_G3DVL_DRI="yes"
1820 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1821 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1822 NEED_G3DVL_DRI="yes"
1824 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1825 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1826 NEED_G3DVL_DRI="yes"
1830 gallium_require_llvm() {
1831 if test "x$MESA_LLVM" = x0; then
1833 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1839 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1840 if test "x$with_gallium_drivers" != x; then
1841 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1842 for driver in $gallium_drivers; do
1845 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1846 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1849 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1850 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1851 if test "x$MESA_LLVM" = x1; then
1852 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1854 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1855 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1858 gallium_require_llvm "Gallium R300"
1859 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1860 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1863 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1864 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1867 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1868 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1869 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1872 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1873 if test "x$MESA_LLVM" = x1; then
1874 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1877 if test "x$HAVE_ST_DRI" = xyes; then
1878 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1880 if test "x$HAVE_ST_VDPAU" = xyes; then
1881 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1883 if test "x$HAVE_ST_XVMC" = xyes; then
1884 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1886 if test "x$HAVE_ST_VA" = xyes; then
1887 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1889 if test "x$HAVE_ST_VDPAU" = xyes ||
1890 test "x$HAVE_ST_XVMC" = xyes ||
1891 test "x$HAVE_ST_VA" = xyes; then
1892 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1893 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1898 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1904 if test "x$NEED_G3DVL_DRI" = xyes; then
1905 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1908 dnl prepend CORE_DIRS to SRC_DIRS
1909 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1911 dnl Restore LDFLAGS and CPPFLAGS
1912 LDFLAGS="$_SAVE_LDFLAGS"
1913 CPPFLAGS="$_SAVE_CPPFLAGS"
1915 dnl Add user CFLAGS and CXXFLAGS
1916 CFLAGS="$CFLAGS $USER_CFLAGS"
1917 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1919 dnl Substitute the config
1920 AC_CONFIG_FILES([configs/autoconf
1923 src/mesa/drivers/dri/dri.pc
1924 src/mesa/drivers/dri/Makefile
1925 src/mesa/drivers/dri/i915/Makefile
1926 src/mesa/drivers/dri/i965/Makefile
1927 src/mesa/drivers/dri/nouveau/Makefile
1928 src/mesa/drivers/dri/r200/Makefile
1929 src/mesa/drivers/dri/radeon/Makefile
1930 src/mesa/drivers/dri/swrast/Makefile
1932 tests/glx/Makefile])
1934 dnl Replace the configs/current symlink
1935 AC_CONFIG_COMMANDS([configs],[
1936 if test -f configs/current || test -L configs/current; then
1937 rm -f configs/current
1939 ln -s autoconf configs/current
1942 dnl Sort the dirs alphabetically
1943 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1944 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1945 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1946 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1951 dnl Output some configuration info for the user
1954 echo " prefix: $prefix"
1955 echo " exec_prefix: $exec_prefix"
1956 echo " libdir: $libdir"
1957 echo " includedir: $includedir"
1961 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1962 echo " OpenVG: $enable_openvg"
1966 if test "x$enable_osmesa" != xno; then
1967 echo " OSMesa: lib$OSMESA_LIB"
1972 if test "x$enable_dri" != xno; then
1973 # cleanup the drivers var
1974 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1975 if test "x$DRI_DIRS" = x; then
1976 echo " DRI drivers: no"
1978 echo " DRI drivers: $dri_dirs"
1980 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1983 case "x$enable_glx$enable_xlib_glx" in
1985 echo " GLX: Xlib-based"
1988 echo " GLX: DRI-based"
1991 echo " GLX: $enable_glx"
1996 echo " GLU: $enable_glu"
2000 echo " EGL: $enable_egl"
2001 if test "$enable_egl" = yes; then
2002 echo " EGL platforms: $EGL_PLATFORMS"
2005 for d in $EGL_DRIVERS_DIRS; do
2006 egl_drivers="$egl_drivers builtin:egl_$d"
2009 if test "x$HAVE_ST_EGL" = xyes; then
2010 echo " EGL drivers: ${egl_drivers} egl_gallium"
2011 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2013 echo " EGL drivers: $egl_drivers"
2018 if test "x$MESA_LLVM" = x1; then
2020 echo " llvm-config: $LLVM_CONFIG"
2021 echo " llvm-version: $LLVM_VERSION"
2027 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2028 echo " Gallium: yes"
2029 echo " Gallium dirs: $GALLIUM_DIRS"
2030 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2031 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2032 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2033 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2041 echo " Shared libs: $enable_shared"
2042 echo " Static libs: $enable_static"
2044 dnl Compiler options
2045 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2046 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2047 $SED 's/^ *//;s/ */ /;s/ *$//'`
2048 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2049 $SED 's/^ *//;s/ */ /;s/ *$//'`
2050 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2052 echo " CFLAGS: $cflags"
2053 echo " CXXFLAGS: $cxxflags"
2054 echo " Macros: $defines"
2056 echo " PYTHON2: $PYTHON2"
2059 echo " Run '${MAKE-make}' to build Mesa"