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])
20 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
22 USER_CXXFLAGS="$CXXFLAGS"
24 dnl Versions for external dependencies
25 LIBDRM_REQUIRED=2.4.24
26 LIBDRM_RADEON_REQUIRED=2.4.24
27 LIBDRM_INTEL_REQUIRED=2.4.24
28 LIBDRM_NOUVEAU_REQUIRED=0.6
29 DRI2PROTO_REQUIRED=2.6
30 GLPROTO_REQUIRED=1.4.14
31 LIBDRM_XORG_REQUIRED=2.4.24
32 LIBKMS_XORG_REQUIRED=1.0.0
38 AC_CHECK_PROGS([MAKE], [gmake make])
39 AC_CHECK_PROGS([PYTHON2], [python2 python])
40 AC_PATH_PROG([MKDEP], [makedepend])
41 AC_PATH_PROG([SED], [sed])
43 if test "x$MKDEP" = "x"; then
44 AC_MSG_ERROR([makedepend is required to build Mesa])
47 AC_PATH_PROG([FLEX], [flex])
48 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
50 AC_PATH_PROG([BISON], [bison])
51 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
53 dnl Our fallback install-sh is a symlink to minstall. Use the existing
54 dnl configuration in that case.
56 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
58 dnl We need a POSIX shell for parts of the build. Assume we have one
62 # Solaris /bin/sh is too old/non-POSIX compliant
63 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
68 dnl clang is mostly GCC-compatible, but its version is much lower,
69 dnl so we have to check for it.
70 AC_MSG_CHECKING([if compiling with clang])
73 [AC_LANG_PROGRAM([], [[
78 [CLANG=yes], [CLANG=no])
80 AC_MSG_RESULT([$CLANG])
82 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
83 dnl versions are explictly not supported.
84 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
85 AC_MSG_CHECKING([whether gcc version is sufficient])
89 GCC_VERSION=`$CC -dumpversion`
90 if test $? -eq 0; then
91 major=`echo $GCC_VERSION | cut -d. -f1`
92 minor=`echo $GCC_VERSION | cut -d. -f2`
95 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
97 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
104 MKDEP_OPTIONS=-fdepend
105 dnl Ask gcc where it's keeping its secret headers
106 if test "x$GCC" = xyes; then
107 for dir in include include-fixed; do
108 GCC_INCLUDES=`$CC -print-file-name=$dir`
109 if test "x$GCC_INCLUDES" != x && \
110 test "$GCC_INCLUDES" != "$dir" && \
111 test -d "$GCC_INCLUDES"; then
112 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
116 AC_SUBST([MKDEP_OPTIONS])
118 dnl Make sure the pkg-config macros are defined
119 m4_ifndef([PKG_PROG_PKG_CONFIG],
120 [m4_fatal([Could not locate the pkg-config autoconf macros.
121 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
122 are in a different location, try setting the environment variable
123 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
124 PKG_PROG_PKG_CONFIG()
126 dnl LIB_DIR - library basename
127 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
130 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
131 _SAVE_LDFLAGS="$LDFLAGS"
132 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
133 AC_SUBST([EXTRA_LIB_PATH])
135 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
136 _SAVE_CPPFLAGS="$CPPFLAGS"
137 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
138 AC_SUBST([X11_INCLUDES])
145 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
148 DEFINES="$DEFINES -DPTHREADS -DSVR4"
151 DEFINES="$DEFINES -DPTHREADS"
155 dnl Add flags for gcc and g++
156 if test "x$GCC" = xyes; then
157 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
158 if test "x$CLANG" = "xno"; then
159 CFLAGS="$CFLAGS -ffast-math"
162 # Enable -fvisibility=hidden if using a gcc that supports it
163 save_CFLAGS="$CFLAGS"
164 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
165 VISIBILITY_CFLAGS="-fvisibility=hidden"
166 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
167 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
168 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
170 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
173 # Work around aliasing bugs - developers should comment this out
174 CFLAGS="$CFLAGS -fno-strict-aliasing"
176 # gcc's builtin memcmp is slower than glibc's
177 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
178 CFLAGS="$CFLAGS -fno-builtin-memcmp"
180 if test "x$GXX" = xyes; then
181 CXXFLAGS="$CXXFLAGS -Wall"
183 # Enable -fvisibility=hidden if using a gcc that supports it
184 save_CXXFLAGS="$CXXFLAGS"
185 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
186 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
187 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
189 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
190 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
193 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
194 CXXFLAGS=$save_CXXFLAGS
196 # Work around aliasing bugs - developers should comment this out
197 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
199 # gcc's builtin memcmp is slower than glibc's
200 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
201 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
204 dnl even if the compiler appears to support it, using visibility attributes isn't
205 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
209 VISIBILITY_CXXFLAGS=""
213 AC_SUBST([VISIBILITY_CFLAGS])
214 AC_SUBST([VISIBILITY_CXXFLAGS])
216 dnl These should be unnecessary, but let the user set them if they want
217 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
218 Default is to use CFLAGS.])
219 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
220 compiler. Default is to use CFLAGS.])
221 AC_SUBST([OPT_FLAGS])
222 AC_SUBST([ARCH_FLAGS])
225 dnl Hacks to enable 32 or 64 bit build
227 AC_ARG_ENABLE([32-bit],
228 [AS_HELP_STRING([--enable-32-bit],
229 [build 32-bit libraries @<:@default=auto@:>@])],
230 [enable_32bit="$enableval"],
233 if test "x$enable_32bit" = xyes; then
234 if test "x$GCC" = xyes; then
235 CFLAGS="$CFLAGS -m32"
236 ARCH_FLAGS="$ARCH_FLAGS -m32"
238 if test "x$GXX" = xyes; then
239 CXXFLAGS="$CXXFLAGS -m32"
242 AC_ARG_ENABLE([64-bit],
243 [AS_HELP_STRING([--enable-64-bit],
244 [build 64-bit libraries @<:@default=auto@:>@])],
245 [enable_64bit="$enableval"],
248 if test "x$enable_64bit" = xyes; then
249 if test "x$GCC" = xyes; then
250 CFLAGS="$CFLAGS -m64"
252 if test "x$GXX" = xyes; then
253 CXXFLAGS="$CXXFLAGS -m64"
258 dnl shared/static libraries, mimic libtool options
260 AC_ARG_ENABLE([static],
261 [AS_HELP_STRING([--enable-static],
262 [build static libraries @<:@default=disabled@:>@])],
263 [enable_static="$enableval"],
266 case "x$enable_static" in
268 x ) enable_static=no ;;
270 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
273 AC_ARG_ENABLE([shared],
274 [AS_HELP_STRING([--disable-shared],
275 [build shared libraries @<:@default=enabled@:>@])],
276 [enable_shared="$enableval"],
279 case "x$enable_shared" in
281 x ) enable_shared=yes ;;
283 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
287 dnl Can't have static and shared libraries, default to static if user
288 dnl explicitly requested. If both disabled, set to static since shared
289 dnl was explicitly requirested.
290 case "x$enable_static$enable_shared" in
292 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
296 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
304 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
305 if test "$enable_static" = yes; then
306 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
308 AC_SUBST([MKLIB_OPTIONS])
311 dnl other compiler options
313 AC_ARG_ENABLE([debug],
314 [AS_HELP_STRING([--enable-debug],
315 [use debug compiler flags and macros @<:@default=disabled@:>@])],
316 [enable_debug="$enableval"],
319 if test "x$enable_debug" = xyes; then
320 DEFINES="$DEFINES -DDEBUG"
321 if test "x$GCC" = xyes; then
324 if test "x$GXX" = xyes; then
325 CXXFLAGS="$CXXFLAGS -g"
332 LIB_PREFIX_GLOB='lib'
333 LIB_VERSION_SEPARATOR='.'
334 if test "$enable_static" = yes; then
339 LIB_EXTENSION='dylib' ;;
341 dnl prefix can be 'cyg' or 'lib'
342 LIB_PREFIX_GLOB='???'
343 LIB_VERSION_SEPARATOR='-'
344 LIB_EXTENSION='dll' ;;
348 LIB_EXTENSION='so' ;;
353 dnl potentially-infringing-but-nobody-knows-for-sure stuff
355 AC_ARG_ENABLE([texture-float],
356 [AS_HELP_STRING([--enable-texture-float],
357 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
358 [enable_texture_float="$enableval"],
359 [enable_texture_float=no]
361 if test "x$enable_texture_float" = xyes; then
362 AC_MSG_WARN([Floating-point textures enabled.])
363 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
364 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
367 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
368 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
369 GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
370 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
371 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
372 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
373 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
374 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
375 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
376 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
377 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
379 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
380 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
381 GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
382 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
383 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
384 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
385 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
386 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
387 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
388 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
389 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
390 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
392 AC_SUBST([GL_LIB_NAME])
393 AC_SUBST([GLU_LIB_NAME])
394 AC_SUBST([GLUT_LIB_NAME])
395 AC_SUBST([OSMESA_LIB_NAME])
396 AC_SUBST([EGL_LIB_NAME])
397 AC_SUBST([GLESv1_CM_LIB_NAME])
398 AC_SUBST([GLESv2_LIB_NAME])
399 AC_SUBST([VG_LIB_NAME])
400 AC_SUBST([GLAPI_LIB_NAME])
401 AC_SUBST([WAYLAND_EGL_LIB_NAME])
402 AC_SUBST([GBM_LIB_NAME])
404 AC_SUBST([GL_LIB_GLOB])
405 AC_SUBST([GLU_LIB_GLOB])
406 AC_SUBST([GLUT_LIB_GLOB])
407 AC_SUBST([OSMESA_LIB_GLOB])
408 AC_SUBST([EGL_LIB_GLOB])
409 AC_SUBST([GLESv1_CM_LIB_GLOB])
410 AC_SUBST([GLESv2_LIB_GLOB])
411 AC_SUBST([VG_LIB_GLOB])
412 AC_SUBST([GLAPI_LIB_GLOB])
413 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
414 AC_SUBST([GBM_LIB_GLOB])
417 dnl Arch/platform-specific settings
420 [AS_HELP_STRING([--disable-asm],
421 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
422 [enable_asm="$enableval"],
429 AC_MSG_CHECKING([whether to enable assembly])
430 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
431 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
432 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
436 AC_MSG_RESULT([no, cross compiling])
440 # check for supported arches
441 if test "x$enable_asm" = xyes; then
445 linux* | *freebsd* | dragonfly* | *netbsd*)
446 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
452 linux* | *freebsd* | dragonfly* | *netbsd*)
453 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
475 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
476 MESA_ASM_SOURCES='$(X86_SOURCES)'
477 GLAPI_ASM_SOURCES='$(X86_API)'
478 AC_MSG_RESULT([yes, x86])
481 ASM_FLAGS="-DUSE_X86_64_ASM"
482 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
483 GLAPI_ASM_SOURCES='$(X86-64_API)'
484 AC_MSG_RESULT([yes, x86_64])
487 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
488 MESA_ASM_SOURCES='$(PPC_SOURCES)'
489 AC_MSG_RESULT([yes, ppc])
492 ASM_FLAGS="-DUSE_SPARC_ASM"
493 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
494 GLAPI_ASM_SOURCES='$(SPARC_API)'
495 AC_MSG_RESULT([yes, sparc])
498 AC_MSG_RESULT([no, platform not supported])
502 AC_SUBST([ASM_FLAGS])
503 AC_SUBST([MESA_ASM_SOURCES])
504 AC_SUBST([GLAPI_ASM_SOURCES])
509 dnl Check to see if dlopen is in default libraries (like Solaris, which
510 dnl has it in libc), or if libdl is needed to get it.
511 AC_CHECK_FUNC([dlopen], [],
512 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
513 AC_SUBST([DLOPEN_LIBS])
515 dnl See if posix_memalign is available
516 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
518 dnl SELinux awareness.
519 AC_ARG_ENABLE([selinux],
520 [AS_HELP_STRING([--enable-selinux],
521 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
522 [MESA_SELINUX="$enableval"],
524 if test "x$enable_selinux" = "xyes"; then
525 AC_CHECK_HEADER([selinux/selinux.h],[],
526 [AC_MSG_ERROR([SELinux headers not found])])
527 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
528 [AC_MSG_ERROR([SELinux library not found])])
529 SELINUX_LIBS="-lselinux"
530 DEFINES="$DEFINES -DMESA_SELINUX"
534 AC_ARG_ENABLE([opengl],
535 [AS_HELP_STRING([--disable-opengl],
536 [disable support for standard OpenGL API @<:@default=no@:>@])],
537 [enable_opengl="$enableval"],
539 AC_ARG_ENABLE([gles1],
540 [AS_HELP_STRING([--enable-gles1],
541 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
542 [enable_gles1="$enableval"],
544 AC_ARG_ENABLE([gles2],
545 [AS_HELP_STRING([--enable-gles2],
546 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
547 [enable_gles2="$enableval"],
549 AC_ARG_ENABLE([openvg],
550 [AS_HELP_STRING([--enable-openvg],
551 [enable support for OpenVG API @<:@default=no@:>@])],
552 [enable_openvg="$enableval"],
556 [AS_HELP_STRING([--enable-dri],
557 [enable DRI modules @<:@default=auto@:>@])],
558 [enable_dri="$enableval"],
561 [AS_HELP_STRING([--enable-glx],
562 [enable GLX library @<:@default=auto@:>@])],
563 [enable_glx="$enableval"],
565 AC_ARG_ENABLE([osmesa],
566 [AS_HELP_STRING([--enable-osmesa],
567 [enable OSMesa library @<:@default=auto@:>@])],
568 [enable_osmesa="$enableval"],
569 [enable_osmesa=auto])
571 [AS_HELP_STRING([--disable-egl],
572 [disable EGL library @<:@default=enabled@:>@])],
573 [enable_egl="$enableval"],
576 AC_ARG_ENABLE([xorg],
577 [AS_HELP_STRING([--enable-xorg],
578 [enable support for X.Org DDX API @<:@default=no@:>@])],
579 [enable_xorg="$enableval"],
582 [AS_HELP_STRING([--enable-xa],
583 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
584 [enable_xa="$enableval"],
586 AC_ARG_ENABLE([d3d1x],
587 [AS_HELP_STRING([--enable-d3d1x],
588 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
589 [enable_d3d1x="$enableval"],
592 [AS_HELP_STRING([--enable-gbm],
593 [enable gbm library @<:@default=auto@:>@])],
594 [enable_gbm="$enableval"],
597 AC_ARG_ENABLE([xvmc],
598 [AS_HELP_STRING([--enable-xvmc],
599 [enable xvmc library @<:@default=auto@:>@])],
600 [enable_xvmc="$enableval"],
602 AC_ARG_ENABLE([vdpau],
603 [AS_HELP_STRING([--enable-vdpau],
604 [enable vdpau library @<:@default=auto@:>@])],
605 [enable_vdpau="$enableval"],
608 [AS_HELP_STRING([--enable-va],
609 [enable va library @<:@default=auto@:>@])],
610 [enable_va="$enableval"],
613 AC_ARG_ENABLE([xlib_glx],
614 [AS_HELP_STRING([--enable-xlib-glx],
615 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
616 [enable_xlib_glx="$enableval"],
617 [enable_xlib_glx=auto])
618 AC_ARG_ENABLE([gallium_egl],
619 [AS_HELP_STRING([--enable-gallium-egl],
620 [enable optional EGL state tracker (not required
621 for EGL support in Gallium with OpenGL and OpenGL ES)
622 @<:@default=disable@:>@])],
623 [enable_gallium_egl="$enableval"],
624 [enable_gallium_egl=no])
625 AC_ARG_ENABLE([gallium_gbm],
626 [AS_HELP_STRING([--enable-gallium-gbm],
627 [enable optional gbm state tracker (not required for
628 gbm support in Gallium)
629 @<:@default=auto@:>@])],
630 [enable_gallium_gbm="$enableval"],
631 [enable_gallium_gbm=auto])
633 # Option for Gallium drivers
634 GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
636 AC_ARG_WITH([gallium-drivers],
637 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
638 [comma delimited Gallium drivers list, e.g.
639 "i915,i965,nouveau,r300,r600,svga,swrast"
640 @<:@default=r300,r600,swrast@:>@])],
641 [with_gallium_drivers="$withval"],
642 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
644 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
645 # here so that the script doesn't choke on an unknown driver name later.
646 case "$with_gallium_drivers" in
647 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
648 no) with_gallium_drivers='' ;;
651 if test "x$enable_opengl" = xno -a \
652 "x$enable_gles1" = xno -a \
653 "x$enable_gles2" = xno -a \
654 "x$enable_openvg" = xno -a \
655 "x$enable_xorg" = xno -a \
656 "x$enable_xa" = xno -a \
657 "x$enable_d3d1x" = xno -a \
658 "x$enable_xvmc" = xno -a \
659 "x$enable_vdpau" = xno -a \
660 "x$enable_va" = xno; then
661 AC_MSG_ERROR([at least one API should be enabled])
665 if test "x$enable_opengl" = xno; then
666 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
668 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
670 if test "x$enable_gles1" = xyes; then
671 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
673 if test "x$enable_gles2" = xyes; then
674 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
676 AC_SUBST([API_DEFINES])
678 AC_ARG_ENABLE([shared-glapi],
679 [AS_HELP_STRING([--enable-shared-glapi],
680 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
681 [enable_shared_glapi="$enableval"],
682 [enable_shared_glapi=no])
685 if test "x$enable_shared_glapi" = xyes; then
688 AC_SUBST([SHARED_GLAPI])
691 dnl Driver configuration. Options are xlib, dri and osmesa right now.
692 dnl More later: fbdev, ...
694 default_driver="xlib"
699 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
702 *freebsd* | dragonfly* | *netbsd*)
704 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
709 if test "x$enable_opengl" = xno; then
713 AC_ARG_WITH([driver],
714 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
715 [mesa_driver="$withval"],
717 dnl Check for valid option
718 case "x$mesa_driver" in
719 xxlib|xdri|xosmesa|xno)
720 if test "x$enable_dri" != xauto -o \
721 "x$enable_glx" != xauto -o \
722 "x$enable_osmesa" != xauto -o \
723 "x$enable_xlib_glx" != xauto; then
724 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
728 mesa_driver="$default_driver"
731 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
735 # map $mesa_driver to APIs
736 if test "x$enable_dri" = xauto; then
737 case "x$mesa_driver" in
738 xdri) enable_dri=yes ;;
743 if test "x$enable_glx" = xauto; then
744 case "x$mesa_driver" in
745 xdri|xxlib) enable_glx=yes ;;
750 if test "x$enable_osmesa" = xauto; then
751 case "x$mesa_driver" in
752 xxlib|xosmesa) enable_osmesa=yes ;;
753 *) enable_osmesa=no ;;
757 if test "x$enable_xlib_glx" = xauto; then
758 case "x$mesa_driver" in
759 xxlib) enable_xlib_glx=yes ;;
760 *) enable_xlib_glx=no ;;
764 if test "x$enable_glx" = xno; then
769 dnl Driver specific build directories
772 dnl this variable will be prepended to SRC_DIRS and is not exported
777 GALLIUM_DIRS="auxiliary drivers state_trackers"
778 GALLIUM_TARGET_DIRS=""
779 GALLIUM_WINSYS_DIRS="sw"
780 GALLIUM_DRIVERS_DIRS="failover galahad trace rbug noop identity"
781 GALLIUM_STATE_TRACKERS_DIRS=""
783 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
784 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
786 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
790 # build glapi if OpenGL is enabled
791 if test "x$enable_opengl" = xyes; then
792 CORE_DIRS="$CORE_DIRS mapi/glapi"
795 # build es1api if OpenGL ES 1.x is enabled
796 if test "x$enable_gles1" = xyes; then
797 CORE_DIRS="$CORE_DIRS mapi/es1api"
800 # build es2api if OpenGL ES 2.x is enabled
801 if test "x$enable_gles2" = xyes; then
802 CORE_DIRS="$CORE_DIRS mapi/es2api"
805 # build glsl and mesa if OpenGL or OpenGL ES is enabled
806 case "x$enable_opengl$enable_gles1$enable_gles2" in
808 CORE_DIRS="$CORE_DIRS glsl mesa"
812 case "x$enable_glx$enable_xlib_glx" in
814 DRIVER_DIRS="$DRIVER_DIRS x11"
815 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
816 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
817 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
818 HAVE_WINSYS_XLIB="yes"
822 SRC_DIRS="$SRC_DIRS glx"
826 if test "x$enable_dri" = xyes; then
827 DRIVER_DIRS="$DRIVER_DIRS dri"
829 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
830 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
834 if test "x$enable_osmesa" = xyes; then
835 # the empty space matters for osmesa... (see src/mesa/Makefile)
836 if test -n "$DRIVER_DIRS"; then
837 DRIVER_DIRS="$DRIVER_DIRS osmesa"
845 AC_SUBST([DRIVER_DIRS])
846 AC_SUBST([GALLIUM_DIRS])
847 AC_SUBST([GALLIUM_TARGET_DIRS])
848 AC_SUBST([GALLIUM_WINSYS_DIRS])
849 AC_SUBST([GALLIUM_DRIVERS_DIRS])
850 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
851 AC_SUBST([MESA_LLVM])
854 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
855 [have_libdrm=yes], [have_libdrm=no])
857 if test "x$enable_dri" = xyes; then
858 # DRI must be shared, I think
859 if test "$enable_static" = yes; then
860 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
863 # not a hard requirement as swrast does not depend on it
864 if test "x$have_libdrm" = xyes; then
865 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
870 dnl Find out if X is available. The variable have_x is set if libX11 is
871 dnl found to mimic AC_PATH_XTRA.
873 if test -n "$PKG_CONFIG"; then
874 AC_MSG_CHECKING([pkg-config files for X11 are available])
875 PKG_CHECK_EXISTS([x11],[
881 AC_MSG_RESULT([$x11_pkgconfig])
885 dnl Use the autoconf macro if no pkg-config files
886 if test "$x11_pkgconfig" = yes; then
887 PKG_CHECK_MODULES([X11], [x11])
890 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
891 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
892 AC_SUBST([X11_CFLAGS])
896 dnl Try to tell the user that the --x-* options are only used when
897 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
898 m4_divert_once([HELP_BEGIN],
899 [These options are only used when the X libraries cannot be found by the
900 pkg-config utility.])
902 dnl We need X for xlib and dri, so bomb now if it's not found
903 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
904 AC_MSG_ERROR([X11 development libraries needed for GLX])
907 dnl XCB - this is only used for GLX right now
909 [AS_HELP_STRING([--enable-xcb],
910 [use XCB for GLX @<:@default=disabled@:>@])],
911 [enable_xcb="$enableval"],
913 if test "x$enable_xcb" = xyes; then
914 DEFINES="$DEFINES -DUSE_XCB"
919 dnl Direct rendering or just indirect rendering
922 dnl Disable by default on GNU/Hurd
923 driglx_direct_default="no"
926 dnl Disable by default on cygwin
927 driglx_direct_default="no"
930 driglx_direct_default="yes"
933 AC_ARG_ENABLE([driglx-direct],
934 [AS_HELP_STRING([--disable-driglx-direct],
935 [enable direct rendering in GLX and EGL for DRI \
936 @<:@default=auto@:>@])],
937 [driglx_direct="$enableval"],
938 [driglx_direct="$driglx_direct_default"])
941 dnl libGL configuration per driver
943 case "x$enable_glx$enable_xlib_glx" in
946 if test "$x11_pkgconfig" = yes; then
947 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
948 GL_PC_REQ_PRIV="x11 xext"
949 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
950 GL_LIB_DEPS="$XLIBGL_LIBS"
952 # should check these...
953 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
954 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
955 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
956 GL_PC_CFLAGS="$X11_INCLUDES"
958 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
959 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
963 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
964 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
965 if test x"$driglx_direct" = xyes; then
966 if test "x$have_libdrm" != xyes; then
967 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
969 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
970 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
973 # find the DRI deps for libGL
974 if test "$x11_pkgconfig" = yes; then
975 dri_modules="x11 xext xdamage xfixes"
977 # add xf86vidmode if available
978 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
979 if test "$HAVE_XF86VIDMODE" = yes ; then
980 dri_modules="$dri_modules xxf86vm"
983 # add xcb modules if necessary
984 if test "$enable_xcb" = yes; then
985 dri_modules="$dri_modules x11-xcb xcb-glx"
988 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
989 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
990 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
991 GL_LIB_DEPS="$DRIGL_LIBS"
993 # should check these...
994 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
995 if test "x$HAVE_XF86VIDMODE" == xyes; then
996 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
998 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1000 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1001 GL_PC_CFLAGS="$X11_INCLUDES"
1003 # XCB can only be used from pkg-config
1004 if test "$enable_xcb" = yes; then
1005 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1006 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1007 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1008 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1012 # need DRM libs, -lpthread, etc.
1013 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1014 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1018 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1019 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1020 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1021 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1023 AC_SUBST([GL_LIB_DEPS])
1024 AC_SUBST([GL_PC_REQ_PRIV])
1025 AC_SUBST([GL_PC_LIB_PRIV])
1026 AC_SUBST([GL_PC_CFLAGS])
1027 AC_SUBST([DRI_PC_REQ_PRIV])
1028 AC_SUBST([GLESv1_CM_LIB_DEPS])
1029 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1030 AC_SUBST([GLESv2_LIB_DEPS])
1031 AC_SUBST([GLESv2_PC_LIB_PRIV])
1033 GLAPI_LIB_DEPS="-lpthread"
1034 AC_SUBST([GLAPI_LIB_DEPS])
1037 dnl Setup default DRI CFLAGS
1038 DRI_CFLAGS='$(CFLAGS)'
1039 DRI_CXXFLAGS='$(CXXFLAGS)'
1040 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1041 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1043 AC_ARG_ENABLE([shared-dricore],
1044 [AS_HELP_STRING([--enable-shared-dricore],
1045 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1046 [enable_dricore="$enableval"],
1047 [enable_dricore=no])
1048 if test "x$enable_dri" = xyes ; then
1049 if test "$enable_dricore" = yes ; then
1050 if test "$GCC$GXX" != yesyes ; then
1051 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1054 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1055 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1056 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1057 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1058 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1059 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1060 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1064 AC_SUBST([DRICORE_LIBS])
1065 AC_SUBST([DRICORE_GLSL_LIBS])
1066 AC_SUBST([DRICORE_LIB_DEPS])
1067 AC_SUBST([DRI_CXXFLAGS])
1068 AC_SUBST([DRI_CFLAGS])
1069 AC_SUBST([MESA_MODULES])
1071 AC_SUBST([HAVE_XF86VIDMODE])
1076 case "x$enable_glx$enable_xlib_glx" in
1078 DEFINES="$DEFINES -DUSE_XSHM"
1081 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1082 if test "x$driglx_direct" = xyes; then
1083 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1092 AC_ARG_ENABLE([glx-tls],
1093 [AS_HELP_STRING([--enable-glx-tls],
1094 [enable TLS support in GLX @<:@default=disabled@:>@])],
1095 [GLX_USE_TLS="$enableval"],
1097 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1099 AS_IF([test "x$GLX_USE_TLS" = xyes],
1100 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1105 dnl Directory for DRI drivers
1106 AC_ARG_WITH([dri-driverdir],
1107 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1108 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1109 [DRI_DRIVER_INSTALL_DIR="$withval"],
1110 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1111 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1112 dnl Extra search path for DRI drivers
1113 AC_ARG_WITH([dri-searchpath],
1114 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1115 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1116 [DRI_DRIVER_SEARCH_DIR="$withval"],
1117 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1118 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1119 dnl Which drivers to build - default is chosen by platform
1120 AC_ARG_WITH([dri-drivers],
1121 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1122 [comma delimited DRI drivers list, e.g.
1123 "swrast,i965,radeon" @<:@default=auto@:>@])],
1124 [with_dri_drivers="$withval"],
1125 [with_dri_drivers=yes])
1126 if test "x$with_dri_drivers" = x; then
1130 dnl If $with_dri_drivers is yes, directories will be added through
1133 case "$with_dri_drivers" in
1136 # classic DRI drivers require FEATURE_GL to build
1137 if test "x$enable_opengl" = xyes; then
1142 # verify the requested driver directories exist
1143 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1144 for driver in $dri_drivers; do
1145 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1146 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1148 DRI_DIRS="$dri_drivers"
1149 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1150 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1155 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1156 if test "x$enable_dri" = xyes; then
1157 # Platform specific settings and drivers to build
1160 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1161 DEFINES="$DEFINES -DHAVE_ALIAS"
1165 if test "x$DRI_DIRS" = "xyes"; then
1166 DRI_DIRS="i915 i965 nouveau r200 r300 r600 radeon swrast"
1170 # Build only the drivers for cards that exist on PowerPC.
1171 if test "x$DRI_DIRS" = "xyes"; then
1172 DRI_DIRS="r200 r300 r600 radeon swrast"
1176 # Build only the drivers for cards that exist on sparc
1177 if test "x$DRI_DIRS" = "xyes"; then
1178 DRI_DIRS="r200 r300 r600 radeon swrast"
1183 freebsd* | dragonfly* | *netbsd*)
1184 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1185 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1187 if test "x$DRI_DIRS" = "xyes"; then
1188 DRI_DIRS="i915 i965 nouveau r200 r300 r600 radeon swrast"
1192 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1193 DEFINES="$DEFINES -DHAVE_ALIAS"
1196 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1199 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1200 if test "x$DRI_DIRS" = "xyes"; then
1207 if test "x$DRI_DIRS" = "xyes"; then
1208 DRI_DIRS="i915 i965 nouveau r200 r300 r600 radeon swrast"
1211 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1214 if test "x$enable_dri" = xyes; then
1217 AC_ARG_WITH([expat],
1218 [AS_HELP_STRING([--with-expat=DIR],
1219 [expat install directory])],[
1220 EXPAT_INCLUDES="-I$withval/include"
1221 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1222 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1223 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1225 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1226 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1227 [AC_MSG_ERROR([Expat required for DRI.])])
1230 # libdrm is required for all except swrast
1231 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1232 if test "x$have_libdrm" != xyes; then
1233 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1237 # put all the necessary libs together, including possibly libdricore
1238 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1240 AC_SUBST([DRI_DIRS])
1241 AC_SUBST([EXPAT_INCLUDES])
1242 AC_SUBST([DRI_LIB_DEPS])
1246 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1252 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1257 *radeon*|*r200*|*r300*|*r600*)
1258 PKG_CHECK_MODULES([LIBDRM_RADEON],
1259 [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED],
1260 HAVE_LIBDRM_RADEON=yes,
1261 HAVE_LIBDRM_RADEON=no)
1263 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
1264 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
1265 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
1269 AC_SUBST([RADEON_CFLAGS])
1270 AC_SUBST([RADEON_LDFLAGS])
1274 dnl OSMesa configuration
1277 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1278 AC_ARG_WITH([osmesa-bits],
1279 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1280 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1281 [osmesa_bits="$withval"],
1283 if test "x$osmesa_bits" != x8; then
1284 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1285 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1289 case "x$osmesa_bits" in
1294 OSMESA_LIB="OSMesa$osmesa_bits"
1295 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1298 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1301 AC_SUBST([OSMESA_LIB])
1303 if test "x$enable_osmesa" = xyes; then
1304 # only link libraries with osmesa if shared
1305 if test "$enable_static" = no; then
1306 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1311 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1313 AC_SUBST([OSMESA_LIB_DEPS])
1314 AC_SUBST([OSMESA_MESA_DEPS])
1315 AC_SUBST([OSMESA_PC_REQ])
1316 AC_SUBST([OSMESA_PC_LIB_PRIV])
1319 dnl gbm configuration
1321 if test "x$enable_gbm" = xauto; then
1322 case "$with_egl_platforms" in
1329 if test "x$enable_gbm" = xyes; then
1330 SRC_DIRS="$SRC_DIRS gbm"
1333 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1334 AC_MSG_ERROR([gbm needs udev]))
1335 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1337 if test "x$enable_dri" = xyes; then
1338 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1339 if test "$SHARED_GLAPI" -eq 0; then
1340 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1344 AC_SUBST([GBM_LIB_DEPS])
1345 AC_SUBST([GBM_BACKEND_DIRS])
1346 GBM_PC_REQ_PRIV="libudev"
1347 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1349 AC_SUBST([GBM_PC_REQ_PRIV])
1350 AC_SUBST([GBM_PC_LIB_PRIV])
1351 AC_SUBST([GBM_PC_CFLAGS])
1354 dnl EGL configuration
1358 if test "x$enable_egl" = xyes; then
1359 SRC_DIRS="$SRC_DIRS egl"
1360 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1363 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1365 if test "$enable_static" != yes; then
1366 # build egl_glx when libGL is built
1367 if test "x$enable_glx" = xyes; then
1368 EGL_DRIVERS_DIRS="glx"
1371 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1372 [have_libudev=yes],[have_libudev=no])
1373 if test "$have_libudev" = yes; then
1374 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1376 if test "x$enable_dri" = xyes; then
1377 # build egl_dri2 when xcb-dri2 is available
1378 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1379 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1381 if test "$have_xcb_dri2" = yes; then
1382 EGL_DRIVER_DRI2=dri2
1383 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1384 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1385 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1386 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1390 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1393 AC_SUBST([EGL_LIB_DEPS])
1394 AC_SUBST([EGL_DRIVERS_DIRS])
1397 dnl EGL Gallium configuration
1399 if test "x$enable_gallium_egl" = xyes; then
1400 if test "x$with_gallium_drivers" = x; then
1401 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1403 if test "x$enable_egl" = xno; then
1404 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1406 if test "x$have_libdrm" != xyes; then
1407 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1410 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1411 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1416 dnl gbm Gallium configuration
1418 if test "x$enable_gallium_gbm" = xauto; then
1419 case "$enable_gbm$HAVE_ST_EGL$with_egl_platforms" in
1421 enable_gallium_gbm=yes ;;
1423 enable_gallium_gbm=no ;;
1426 if test "x$enable_gallium_gbm" = xyes; then
1427 if test "x$with_gallium_drivers" = x; then
1428 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1430 if test "x$enable_gbm" = xno; then
1431 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1434 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1435 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1440 dnl X.Org DDX configuration
1442 if test "x$enable_xorg" = xyes; then
1443 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1444 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1445 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1446 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1447 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1448 HAVE_XEXTPROTO_71="no")
1449 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1454 dnl XA configuration
1456 if test "x$enable_xa" = xyes; then
1457 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1462 dnl OpenVG configuration
1466 if test "x$enable_openvg" = xyes; then
1467 if test "x$enable_egl" = xno; then
1468 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1470 if test "x$with_gallium_drivers" = x; then
1471 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1473 if test "x$enable_gallium_egl" = xno; then
1474 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1477 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1478 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1479 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1480 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1485 dnl D3D1X configuration
1488 if test "x$enable_d3d1x" = xyes; then
1489 if test "x$with_gallium_drivers" = x; then
1490 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1493 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1498 dnl Gallium G3DVL configuration
1500 AC_ARG_ENABLE([gallium-g3dvl],
1501 [AS_HELP_STRING([--enable-gallium-g3dvl],
1502 [build gallium g3dvl @<:@default=disabled@:>@])],
1503 [enable_gallium_g3dvl="$enableval"],
1504 [enable_gallium_g3dvl=no])
1505 if test "x$enable_gallium_g3dvl" = xyes; then
1506 if test "x$with_gallium_drivers" = x; then
1507 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1510 if test "x$enable_xvmc" = xauto; then
1511 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1514 if test "x$enable_vdpau" = xauto; then
1515 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1518 if test "x$enable_va" = xauto; then
1519 #don't enable vaapi state tracker even if package exists
1520 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1525 if test "x$enable_xvmc" = xyes; then
1526 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1527 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1531 if test "x$enable_vdpau" = xyes; then
1532 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1533 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1537 if test "x$enable_va" = xyes; then
1538 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1539 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1540 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1545 dnl GLU configuration
1547 AC_ARG_ENABLE([glu],
1548 [AS_HELP_STRING([--disable-glu],
1549 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1550 [enable_glu="$enableval"],
1553 if test "x$enable_glu" = xyes; then
1554 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1555 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1560 if test "x$enable_glu" = xyes; then
1561 SRC_DIRS="$SRC_DIRS glu"
1563 if test "x$enable_glx" = xno; then
1564 # Link libGLU to libOSMesa instead of libGL
1567 if test "$enable_static" = no; then
1568 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1573 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1575 GLU_PC_LIB_PRIV="-lm"
1576 if test "$enable_static" = no; then
1578 GLU_MESA_DEPS='-l$(GL_LIB)'
1585 if test "$enable_static" = no; then
1586 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1588 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1589 AC_SUBST([GLU_LIB_DEPS])
1590 AC_SUBST([GLU_MESA_DEPS])
1591 AC_SUBST([GLU_PC_REQ])
1592 AC_SUBST([GLU_PC_REQ_PRIV])
1593 AC_SUBST([GLU_PC_LIB_PRIV])
1594 AC_SUBST([GLU_PC_CFLAGS])
1596 AC_SUBST([PROGRAM_DIRS])
1599 dnl Gallium configuration
1601 if test "x$with_gallium_drivers" != x; then
1602 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1605 AC_SUBST([LLVM_CFLAGS])
1606 AC_SUBST([LLVM_LIBS])
1607 AC_SUBST([LLVM_LDFLAGS])
1608 AC_SUBST([LLVM_VERSION])
1610 case "x$enable_opengl$enable_gles1$enable_gles2" in
1612 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1616 AC_SUBST([VG_LIB_DEPS])
1617 AC_SUBST([EGL_CLIENT_APIS])
1619 AC_ARG_WITH([egl-platforms],
1620 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1621 [comma delimited native platforms libEGL supports, e.g.
1622 "x11,drm" @<:@default=auto@:>@])],
1623 [with_egl_platforms="$withval"],
1624 [with_egl_platforms=yes])
1627 WAYLAND_EGL_LIB_DEPS=""
1629 case "$with_egl_platforms" in
1631 if test "x$enable_egl" = xyes; then
1636 if test "x$enable_egl" != xyes; then
1637 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1639 # verify the requested driver directories exist
1640 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1641 for plat in $egl_platforms; do
1642 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1643 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1644 if test "$plat" = "fbdev"; then
1645 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1647 if test "$plat" = "null"; then
1648 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1650 if test "$plat" = "wayland"; then
1651 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1652 [AC_MSG_ERROR([cannot find libwayland-client])])
1653 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1654 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1656 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1657 AC_MSG_ERROR([EGL platform drm needs gbm])
1659 case "$plat$have_libudev" in
1661 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1664 EGL_PLATFORMS="$egl_platforms"
1667 AC_SUBST([EGL_PLATFORMS])
1669 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1670 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1671 WAYLAND_EGL_PC_LIB_PRIV=
1672 WAYLAND_EGL_PC_CFLAGS=
1674 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1675 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1676 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1679 AC_ARG_WITH([egl-driver-dir],
1680 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1681 [directory for EGL drivers [[default=${libdir}/egl]]])],
1682 [EGL_DRIVER_INSTALL_DIR="$withval"],
1683 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1684 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1686 AC_ARG_WITH([xorg-driver-dir],
1687 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1688 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1689 [XORG_DRIVER_INSTALL_DIR="$withval"],
1690 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1691 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1693 AC_ARG_WITH([max-width],
1694 [AS_HELP_STRING([--with-max-width=N],
1695 [Maximum framebuffer width (4096)])],
1696 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1697 AS_IF([test "${withval}" -gt "4096"],
1698 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1700 AC_ARG_WITH([max-height],
1701 [AS_HELP_STRING([--with-max-height=N],
1702 [Maximum framebuffer height (4096)])],
1703 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1704 AS_IF([test "${withval}" -gt "4096"],
1705 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1711 AC_ARG_ENABLE([gallium-llvm],
1712 [AS_HELP_STRING([--enable-gallium-llvm],
1713 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1714 [enable_gallium_llvm="$enableval"],
1715 [enable_gallium_llvm=auto])
1716 if test "x$with_gallium_drivers" = x; then
1717 enable_gallium_llvm=no
1719 if test "x$enable_gallium_llvm" = xauto; then
1721 i*86|x86_64) enable_gallium_llvm=yes;;
1724 if test "x$enable_gallium_llvm" = xyes; then
1725 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1727 if test "x$LLVM_CONFIG" != xno; then
1728 LLVM_VERSION=`$LLVM_CONFIG --version`
1729 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed 's/-DNDEBUG\>//g'`
1730 LLVM_LIBS="`$LLVM_CONFIG --libs` -lstdc++"
1732 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1733 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1742 dnl Directory for VDPAU libs
1743 AC_ARG_WITH([vdpau-libdir],
1744 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1745 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1746 [VDPAU_LIB_INSTALL_DIR="$withval"],
1747 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1748 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1750 dnl Directory for VA libs
1751 AC_ARG_WITH([va-libdir],
1752 [AS_HELP_STRING([--with-va-libdir=DIR],
1753 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1754 [VA_LIB_INSTALL_DIR="$withval"],
1755 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1756 AC_SUBST([VA_LIB_INSTALL_DIR])
1759 dnl Gallium helper functions
1761 gallium_check_st() {
1762 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1763 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1764 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1765 if test "x$have_libdrm" != xyes; then
1766 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1768 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1770 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1771 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1773 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1774 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1776 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1777 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1779 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1780 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1781 NEED_G3DVL_DRI="yes"
1783 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1784 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1785 NEED_G3DVL_DRI="yes"
1787 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1788 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1789 NEED_G3DVL_DRI="yes"
1793 gallium_require_llvm() {
1794 if test "x$MESA_LLVM" = x0; then
1796 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1802 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1803 if test "x$with_gallium_drivers" != x; then
1804 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1805 for driver in $gallium_drivers; do
1808 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1809 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1812 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1813 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1814 if test "x$MESA_LLVM" = x1; then
1815 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1817 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1818 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1821 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1822 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965 softpipe"
1823 if test "x$MESA_LLVM" = x1; then
1824 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1826 gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1829 gallium_require_llvm "Gallium R300"
1830 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1831 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1834 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1835 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1838 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1839 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1840 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau"
1843 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1844 if test "x$MESA_LLVM" = x1; then
1845 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1848 if test "x$HAVE_ST_DRI" = xyes; then
1849 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1851 if test "x$HAVE_ST_VDPAU" = xyes; then
1852 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1854 if test "x$HAVE_ST_XVMC" = xyes; then
1855 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1857 if test "x$HAVE_ST_VA" = xyes; then
1858 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1860 if test "x$HAVE_ST_VDPAU" == xyes ||
1861 test "x$HAVE_ST_XVMC" == xyes ||
1862 test "x$HAVE_ST_VA" == xyes; then
1863 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1864 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1869 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1875 if test "x$NEED_G3DVL_DRI" = xyes; then
1876 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1879 dnl prepend CORE_DIRS to SRC_DIRS
1880 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1882 dnl Restore LDFLAGS and CPPFLAGS
1883 LDFLAGS="$_SAVE_LDFLAGS"
1884 CPPFLAGS="$_SAVE_CPPFLAGS"
1886 dnl Add user CFLAGS and CXXFLAGS
1887 CFLAGS="$CFLAGS $USER_CFLAGS"
1888 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1890 dnl Substitute the config
1891 AC_CONFIG_FILES([configs/autoconf])
1893 dnl Replace the configs/current symlink
1894 AC_CONFIG_COMMANDS([configs],[
1895 if test -f configs/current || test -L configs/current; then
1896 rm -f configs/current
1898 ln -s autoconf configs/current
1901 dnl Sort the dirs alphabetically
1902 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1903 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1904 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1905 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1910 dnl Output some configuration info for the user
1913 echo " prefix: $prefix"
1914 echo " exec_prefix: $exec_prefix"
1915 echo " libdir: $libdir"
1916 echo " includedir: $includedir"
1920 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1921 echo " OpenVG: $enable_openvg"
1925 if test "x$enable_osmesa" != xno; then
1926 echo " OSMesa: lib$OSMESA_LIB"
1931 if test "x$enable_dri" != xno; then
1932 # cleanup the drivers var
1933 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1934 if test "x$DRI_DIRS" = x; then
1935 echo " DRI drivers: no"
1937 echo " DRI drivers: $dri_dirs"
1939 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1940 echo " Shared dricore: $enable_dricore"
1943 case "x$enable_glx$enable_xlib_glx" in
1945 echo " GLX: Xlib-based"
1948 echo " GLX: DRI-based"
1949 echo " Use XCB: $enable_xcb"
1952 echo " GLX: $enable_glx"
1957 echo " GLU: $enable_glu"
1961 echo " EGL: $enable_egl"
1962 if test "$enable_egl" = yes; then
1963 echo " EGL platforms: $EGL_PLATFORMS"
1966 for d in $EGL_DRIVERS_DIRS; do
1967 egl_drivers="$egl_drivers builtin:egl_$d"
1970 if test "x$HAVE_ST_EGL" = xyes; then
1971 echo " EGL drivers: ${egl_drivers} egl_gallium"
1972 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
1974 echo " EGL drivers: $egl_drivers"
1979 if test "x$MESA_LLVM" = x1; then
1981 echo " llvm-config: $LLVM_CONFIG"
1982 echo " llvm-version: $LLVM_VERSION"
1988 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1989 echo " Gallium: yes"
1990 echo " Gallium dirs: $GALLIUM_DIRS"
1991 echo " Target dirs: $GALLIUM_TARGET_DIRS"
1992 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
1993 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
1994 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2001 echo " Shared libs: $enable_shared"
2002 echo " Static libs: $enable_static"
2004 dnl Compiler options
2005 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2006 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2007 $SED 's/^ *//;s/ */ /;s/ *$//'`
2008 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2009 $SED 's/^ *//;s/ */ /;s/ *$//'`
2010 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2012 echo " CFLAGS: $cflags"
2013 echo " CXXFLAGS: $cxxflags"
2014 echo " Macros: $defines"
2016 echo " PYTHON2: $PYTHON2"
2019 echo " Run '${MAKE-make}' to build Mesa"