1 dnl Process this file with autoconf to create configure.
5 dnl Versioning - scrape the version from configs/default
6 m4_define([mesa_version],
7 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
8 m4_ifval(mesa_version,,
9 [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
11 dnl Tell the user about autoconf.html in the --help output
12 m4_divert_once([HELP_END], [
13 See docs/autoconf.html for more details on the options for Mesa.])
15 AC_INIT([Mesa],[mesa_version],
16 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17 AC_CONFIG_AUX_DIR([bin])
19 AM_INIT_AUTOMAKE([foreign])
21 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
23 USER_CXXFLAGS="$CXXFLAGS"
25 dnl Versions for external dependencies
26 LIBDRM_REQUIRED=2.4.24
27 LIBDRM_RADEON_REQUIRED=2.4.24
28 LIBDRM_INTEL_REQUIRED=2.4.30
29 LIBDRM_NOUVEAU_REQUIRED=0.6
30 DRI2PROTO_REQUIRED=2.6
31 GLPROTO_REQUIRED=1.4.14
32 LIBDRM_XORG_REQUIRED=2.4.24
33 LIBKMS_XORG_REQUIRED=1.0.0
39 AC_CHECK_PROGS([MAKE], [gmake make])
40 AC_CHECK_PROGS([PYTHON2], [python2 python])
42 AC_PATH_PROG([MKDEP], [makedepend])
44 if test "x$MKDEP" = "x"; then
45 AC_MSG_ERROR([makedepend is required to build Mesa])
48 AC_PATH_PROG([FLEX], [flex])
49 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
51 AC_PATH_PROG([BISON], [bison])
52 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
54 dnl Our fallback install-sh is a symlink to minstall. Use the existing
55 dnl configuration in that case.
57 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
59 dnl We need a POSIX shell for parts of the build. Assume we have one
63 # Solaris /bin/sh is too old/non-POSIX compliant
64 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
69 AC_PATH_PROG([GTESTCONFIG], [gtest-config])
70 if test "x$GTESTCONFIG" != "x"; then
71 GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
72 GTEST_LIBS=`gtest-config --ldflags --libs`
73 AC_SUBST([GTEST_CFLAGS])
74 AC_SUBST([GTEST_LIBS])
79 AM_CONDITIONAL(HAVE_GTEST, test x$HAVE_GTEST = xyes)
81 dnl clang is mostly GCC-compatible, but its version is much lower,
82 dnl so we have to check for it.
83 AC_MSG_CHECKING([if compiling with clang])
86 [AC_LANG_PROGRAM([], [[
91 [CLANG=yes], [CLANG=no])
93 AC_MSG_RESULT([$CLANG])
95 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
96 dnl versions are explictly not supported.
97 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
98 AC_MSG_CHECKING([whether gcc version is sufficient])
102 GCC_VERSION=`$CC -dumpversion`
103 if test $? -eq 0; then
104 major=`echo $GCC_VERSION | cut -d. -f1`
105 minor=`echo $GCC_VERSION | cut -d. -f2`
108 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
110 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
117 MKDEP_OPTIONS=-fdepend
118 dnl Ask gcc where it's keeping its secret headers
119 if test "x$GCC" = xyes; then
120 for dir in include include-fixed; do
121 GCC_INCLUDES=`$CC -print-file-name=$dir`
122 if test "x$GCC_INCLUDES" != x && \
123 test "$GCC_INCLUDES" != "$dir" && \
124 test -d "$GCC_INCLUDES"; then
125 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
129 AC_SUBST([MKDEP_OPTIONS])
131 dnl Make sure the pkg-config macros are defined
132 m4_ifndef([PKG_PROG_PKG_CONFIG],
133 [m4_fatal([Could not locate the pkg-config autoconf macros.
134 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
135 are in a different location, try setting the environment variable
136 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
137 PKG_PROG_PKG_CONFIG()
139 dnl LIB_DIR - library basename
140 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
143 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
144 _SAVE_LDFLAGS="$LDFLAGS"
145 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
146 AC_SUBST([EXTRA_LIB_PATH])
148 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
149 _SAVE_CPPFLAGS="$CPPFLAGS"
150 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
151 AC_SUBST([X11_INCLUDES])
158 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
161 DEFINES="$DEFINES -DPTHREADS -DSVR4"
164 DEFINES="$DEFINES -DPTHREADS"
168 dnl Add flags for gcc and g++
169 if test "x$GCC" = xyes; then
170 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
171 if test "x$CLANG" = "xno"; then
172 CFLAGS="$CFLAGS -ffast-math"
175 # Enable -fvisibility=hidden if using a gcc that supports it
176 save_CFLAGS="$CFLAGS"
177 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
178 VISIBILITY_CFLAGS="-fvisibility=hidden"
179 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
180 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
181 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
183 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
186 # Work around aliasing bugs - developers should comment this out
187 CFLAGS="$CFLAGS -fno-strict-aliasing"
189 # gcc's builtin memcmp is slower than glibc's
190 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
191 CFLAGS="$CFLAGS -fno-builtin-memcmp"
193 if test "x$GXX" = xyes; then
194 CXXFLAGS="$CXXFLAGS -Wall"
196 # Enable -fvisibility=hidden if using a gcc that supports it
197 save_CXXFLAGS="$CXXFLAGS"
198 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
199 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
200 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
202 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
203 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
206 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
207 CXXFLAGS=$save_CXXFLAGS
209 # Work around aliasing bugs - developers should comment this out
210 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
212 # gcc's builtin memcmp is slower than glibc's
213 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
214 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
217 dnl even if the compiler appears to support it, using visibility attributes isn't
218 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
222 VISIBILITY_CXXFLAGS=""
226 AC_SUBST([VISIBILITY_CFLAGS])
227 AC_SUBST([VISIBILITY_CXXFLAGS])
229 dnl These should be unnecessary, but let the user set them if they want
230 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
231 Default is to use CFLAGS.])
232 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
233 compiler. Default is to use CFLAGS.])
234 AC_SUBST([OPT_FLAGS])
235 AC_SUBST([ARCH_FLAGS])
238 dnl Hacks to enable 32 or 64 bit build
240 AC_ARG_ENABLE([32-bit],
241 [AS_HELP_STRING([--enable-32-bit],
242 [build 32-bit libraries @<:@default=auto@:>@])],
243 [enable_32bit="$enableval"],
246 if test "x$enable_32bit" = xyes; then
247 if test "x$GCC" = xyes; then
248 CFLAGS="$CFLAGS -m32"
249 ARCH_FLAGS="$ARCH_FLAGS -m32"
251 if test "x$GXX" = xyes; then
252 CXXFLAGS="$CXXFLAGS -m32"
255 AC_ARG_ENABLE([64-bit],
256 [AS_HELP_STRING([--enable-64-bit],
257 [build 64-bit libraries @<:@default=auto@:>@])],
258 [enable_64bit="$enableval"],
261 if test "x$enable_64bit" = xyes; then
262 if test "x$GCC" = xyes; then
263 CFLAGS="$CFLAGS -m64"
265 if test "x$GXX" = xyes; then
266 CXXFLAGS="$CXXFLAGS -m64"
271 dnl shared/static libraries, mimic libtool options
273 AC_ARG_ENABLE([static],
274 [AS_HELP_STRING([--enable-static],
275 [build static libraries @<:@default=disabled@:>@])],
276 [enable_static="$enableval"],
279 case "x$enable_static" in
281 x ) enable_static=no ;;
283 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
286 AC_ARG_ENABLE([shared],
287 [AS_HELP_STRING([--disable-shared],
288 [build shared libraries @<:@default=enabled@:>@])],
289 [enable_shared="$enableval"],
292 case "x$enable_shared" in
294 x ) enable_shared=yes ;;
296 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
300 dnl Can't have static and shared libraries, default to static if user
301 dnl explicitly requested. If both disabled, set to static since shared
302 dnl was explicitly requirested.
303 case "x$enable_static$enable_shared" in
305 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
309 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
317 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
318 if test "$enable_static" = yes; then
319 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
321 AC_SUBST([MKLIB_OPTIONS])
324 dnl other compiler options
326 AC_ARG_ENABLE([debug],
327 [AS_HELP_STRING([--enable-debug],
328 [use debug compiler flags and macros @<:@default=disabled@:>@])],
329 [enable_debug="$enableval"],
332 if test "x$enable_debug" = xyes; then
333 DEFINES="$DEFINES -DDEBUG"
334 if test "x$GCC" = xyes; then
337 if test "x$GXX" = xyes; then
338 CXXFLAGS="$CXXFLAGS -g"
345 LIB_PREFIX_GLOB='lib'
346 LIB_VERSION_SEPARATOR='.'
347 if test "$enable_static" = yes; then
352 LIB_EXTENSION='dylib' ;;
354 dnl prefix can be 'cyg' or 'lib'
355 LIB_PREFIX_GLOB='???'
356 LIB_VERSION_SEPARATOR='-'
357 LIB_EXTENSION='dll' ;;
361 LIB_EXTENSION='so' ;;
366 dnl Mangled Mesa support
368 AC_ARG_ENABLE([mangling],
369 [AS_HELP_STRING([--enable-mangling],
370 [enable mangled symbols and library name @<:@default=disabled@:>@])],
371 [enable_mangling="${enableval}"],
377 if test "x${enable_mangling}" = "xyes" ; then
378 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
381 OSMESA_LIB="MangledOSMesa"
385 AC_SUBST([OSMESA_LIB])
388 dnl potentially-infringing-but-nobody-knows-for-sure stuff
390 AC_ARG_ENABLE([texture-float],
391 [AS_HELP_STRING([--enable-texture-float],
392 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
393 [enable_texture_float="$enableval"],
394 [enable_texture_float=no]
396 if test "x$enable_texture_float" = xyes; then
397 AC_MSG_WARN([Floating-point textures enabled.])
398 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
399 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
402 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
403 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
404 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
405 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
406 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
407 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
408 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
409 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
410 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
411 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
413 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
414 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
415 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
416 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
417 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
418 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
419 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
420 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
421 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
422 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
423 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
425 AC_SUBST([GL_LIB_NAME])
426 AC_SUBST([GLU_LIB_NAME])
427 AC_SUBST([OSMESA_LIB_NAME])
428 AC_SUBST([EGL_LIB_NAME])
429 AC_SUBST([GLESv1_CM_LIB_NAME])
430 AC_SUBST([GLESv2_LIB_NAME])
431 AC_SUBST([VG_LIB_NAME])
432 AC_SUBST([GLAPI_LIB_NAME])
433 AC_SUBST([WAYLAND_EGL_LIB_NAME])
434 AC_SUBST([GBM_LIB_NAME])
436 AC_SUBST([GL_LIB_GLOB])
437 AC_SUBST([GLU_LIB_GLOB])
438 AC_SUBST([OSMESA_LIB_GLOB])
439 AC_SUBST([EGL_LIB_GLOB])
440 AC_SUBST([GLESv1_CM_LIB_GLOB])
441 AC_SUBST([GLESv2_LIB_GLOB])
442 AC_SUBST([VG_LIB_GLOB])
443 AC_SUBST([GLAPI_LIB_GLOB])
444 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
445 AC_SUBST([GBM_LIB_GLOB])
448 dnl Arch/platform-specific settings
451 [AS_HELP_STRING([--disable-asm],
452 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
453 [enable_asm="$enableval"],
460 AC_MSG_CHECKING([whether to enable assembly])
461 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
462 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
463 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
467 AC_MSG_RESULT([no, cross compiling])
471 # check for supported arches
472 if test "x$enable_asm" = xyes; then
476 linux* | *freebsd* | dragonfly* | *netbsd*)
477 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
483 linux* | *freebsd* | dragonfly* | *netbsd*)
484 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
506 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
507 MESA_ASM_SOURCES='$(X86_SOURCES)'
508 GLAPI_ASM_SOURCES='$(X86_API)'
509 AC_MSG_RESULT([yes, x86])
512 ASM_FLAGS="-DUSE_X86_64_ASM"
513 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
514 GLAPI_ASM_SOURCES='$(X86-64_API)'
515 AC_MSG_RESULT([yes, x86_64])
518 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
519 MESA_ASM_SOURCES='$(PPC_SOURCES)'
520 AC_MSG_RESULT([yes, ppc])
523 ASM_FLAGS="-DUSE_SPARC_ASM"
524 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
525 GLAPI_ASM_SOURCES='$(SPARC_API)'
526 AC_MSG_RESULT([yes, sparc])
529 AC_MSG_RESULT([no, platform not supported])
533 AC_SUBST([ASM_FLAGS])
534 AC_SUBST([MESA_ASM_SOURCES])
535 AC_SUBST([GLAPI_ASM_SOURCES])
540 dnl Check to see if dlopen is in default libraries (like Solaris, which
541 dnl has it in libc), or if libdl is needed to get it.
542 AC_CHECK_FUNC([dlopen], [],
543 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
544 AC_SUBST([DLOPEN_LIBS])
546 dnl See if posix_memalign is available
547 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
549 dnl SELinux awareness.
550 AC_ARG_ENABLE([selinux],
551 [AS_HELP_STRING([--enable-selinux],
552 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
553 [MESA_SELINUX="$enableval"],
555 if test "x$enable_selinux" = "xyes"; then
556 AC_CHECK_HEADER([selinux/selinux.h],[],
557 [AC_MSG_ERROR([SELinux headers not found])])
558 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
559 [AC_MSG_ERROR([SELinux library not found])])
560 SELINUX_LIBS="-lselinux"
561 DEFINES="$DEFINES -DMESA_SELINUX"
565 AC_ARG_ENABLE([opengl],
566 [AS_HELP_STRING([--disable-opengl],
567 [disable support for standard OpenGL API @<:@default=no@:>@])],
568 [enable_opengl="$enableval"],
570 AC_ARG_ENABLE([gles1],
571 [AS_HELP_STRING([--enable-gles1],
572 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
573 [enable_gles1="$enableval"],
575 AC_ARG_ENABLE([gles2],
576 [AS_HELP_STRING([--enable-gles2],
577 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
578 [enable_gles2="$enableval"],
580 AC_ARG_ENABLE([openvg],
581 [AS_HELP_STRING([--enable-openvg],
582 [enable support for OpenVG API @<:@default=no@:>@])],
583 [enable_openvg="$enableval"],
587 [AS_HELP_STRING([--enable-dri],
588 [enable DRI modules @<:@default=auto@:>@])],
589 [enable_dri="$enableval"],
592 [AS_HELP_STRING([--enable-glx],
593 [enable GLX library @<:@default=auto@:>@])],
594 [enable_glx="$enableval"],
596 AC_ARG_ENABLE([osmesa],
597 [AS_HELP_STRING([--enable-osmesa],
598 [enable OSMesa library @<:@default=auto@:>@])],
599 [enable_osmesa="$enableval"],
600 [enable_osmesa=auto])
602 [AS_HELP_STRING([--disable-egl],
603 [disable EGL library @<:@default=enabled@:>@])],
604 [enable_egl="$enableval"],
607 AC_ARG_ENABLE([xorg],
608 [AS_HELP_STRING([--enable-xorg],
609 [enable support for X.Org DDX API @<:@default=no@:>@])],
610 [enable_xorg="$enableval"],
613 [AS_HELP_STRING([--enable-xa],
614 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
615 [enable_xa="$enableval"],
617 AC_ARG_ENABLE([d3d1x],
618 [AS_HELP_STRING([--enable-d3d1x],
619 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
620 [enable_d3d1x="$enableval"],
623 [AS_HELP_STRING([--enable-gbm],
624 [enable gbm library @<:@default=auto@:>@])],
625 [enable_gbm="$enableval"],
628 AC_ARG_ENABLE([xvmc],
629 [AS_HELP_STRING([--enable-xvmc],
630 [enable xvmc library @<:@default=auto@:>@])],
631 [enable_xvmc="$enableval"],
633 AC_ARG_ENABLE([vdpau],
634 [AS_HELP_STRING([--enable-vdpau],
635 [enable vdpau library @<:@default=auto@:>@])],
636 [enable_vdpau="$enableval"],
639 [AS_HELP_STRING([--enable-va],
640 [enable va library @<:@default=auto@:>@])],
641 [enable_va="$enableval"],
644 AC_ARG_ENABLE([xlib_glx],
645 [AS_HELP_STRING([--enable-xlib-glx],
646 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
647 [enable_xlib_glx="$enableval"],
648 [enable_xlib_glx=auto])
649 AC_ARG_ENABLE([gallium_egl],
650 [AS_HELP_STRING([--enable-gallium-egl],
651 [enable optional EGL state tracker (not required
652 for EGL support in Gallium with OpenGL and OpenGL ES)
653 @<:@default=disable@:>@])],
654 [enable_gallium_egl="$enableval"],
655 [enable_gallium_egl=no])
656 AC_ARG_ENABLE([gallium_gbm],
657 [AS_HELP_STRING([--enable-gallium-gbm],
658 [enable optional gbm state tracker (not required for
659 gbm support in Gallium)
660 @<:@default=auto@:>@])],
661 [enable_gallium_gbm="$enableval"],
662 [enable_gallium_gbm=auto])
664 # Option for Gallium drivers
665 GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
667 AC_ARG_WITH([gallium-drivers],
668 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
669 [comma delimited Gallium drivers list, e.g.
670 "i915,nouveau,r300,r600,svga,swrast"
671 @<:@default=r300,r600,swrast@:>@])],
672 [with_gallium_drivers="$withval"],
673 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
675 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
676 # here so that the script doesn't choke on an unknown driver name later.
677 case "$with_gallium_drivers" in
678 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
679 no) with_gallium_drivers='' ;;
682 if test "x$enable_opengl" = xno -a \
683 "x$enable_gles1" = xno -a \
684 "x$enable_gles2" = xno -a \
685 "x$enable_openvg" = xno -a \
686 "x$enable_xorg" = xno -a \
687 "x$enable_xa" = xno -a \
688 "x$enable_d3d1x" = xno -a \
689 "x$enable_xvmc" = xno -a \
690 "x$enable_vdpau" = xno -a \
691 "x$enable_va" = xno; then
692 AC_MSG_ERROR([at least one API should be enabled])
696 if test "x$enable_opengl" = xno; then
697 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
699 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
701 if test "x$enable_gles1" = xyes; then
702 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
704 if test "x$enable_gles2" = xyes; then
705 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
707 AC_SUBST([API_DEFINES])
709 AC_ARG_ENABLE([shared-glapi],
710 [AS_HELP_STRING([--enable-shared-glapi],
711 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
712 [enable_shared_glapi="$enableval"],
713 [enable_shared_glapi=no])
716 if test "x$enable_shared_glapi" = xyes; then
719 AC_SUBST([SHARED_GLAPI])
722 dnl Driver configuration. Options are xlib, dri and osmesa right now.
723 dnl More later: fbdev, ...
725 default_driver="xlib"
730 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
733 *freebsd* | dragonfly* | *netbsd*)
735 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
740 if test "x$enable_opengl" = xno; then
744 AC_ARG_WITH([driver],
745 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
746 [mesa_driver="$withval"],
748 dnl Check for valid option
749 case "x$mesa_driver" in
750 xxlib|xdri|xosmesa|xno)
751 if test "x$enable_dri" != xauto -o \
752 "x$enable_glx" != xauto -o \
753 "x$enable_osmesa" != xauto -o \
754 "x$enable_xlib_glx" != xauto; then
755 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
759 mesa_driver="$default_driver"
762 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
766 # map $mesa_driver to APIs
767 if test "x$enable_dri" = xauto; then
768 case "x$mesa_driver" in
769 xdri) enable_dri=yes ;;
774 if test "x$enable_glx" = xauto; then
775 case "x$mesa_driver" in
776 xdri|xxlib) enable_glx=yes ;;
781 if test "x$enable_osmesa" = xauto; then
782 case "x$mesa_driver" in
783 xxlib|xosmesa) enable_osmesa=yes ;;
784 *) enable_osmesa=no ;;
788 if test "x$enable_xlib_glx" = xauto; then
789 case "x$mesa_driver" in
790 xxlib) enable_xlib_glx=yes ;;
791 *) enable_xlib_glx=no ;;
795 if test "x$enable_glx" = xno; then
800 dnl Driver specific build directories
803 dnl this variable will be prepended to SRC_DIRS and is not exported
808 GALLIUM_DIRS="auxiliary drivers state_trackers"
809 GALLIUM_TARGET_DIRS=""
810 GALLIUM_WINSYS_DIRS="sw"
811 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
812 GALLIUM_STATE_TRACKERS_DIRS=""
814 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
815 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
817 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
821 # build glapi if OpenGL is enabled
822 if test "x$enable_opengl" = xyes; then
823 CORE_DIRS="$CORE_DIRS mapi/glapi"
826 # build es1api if OpenGL ES 1.x is enabled
827 if test "x$enable_gles1" = xyes; then
828 CORE_DIRS="$CORE_DIRS mapi/es1api"
831 # build es2api if OpenGL ES 2.x is enabled
832 if test "x$enable_gles2" = xyes; then
833 CORE_DIRS="$CORE_DIRS mapi/es2api"
836 # build glsl and mesa if OpenGL or OpenGL ES is enabled
837 case "x$enable_opengl$enable_gles1$enable_gles2" in
839 CORE_DIRS="$CORE_DIRS glsl mesa"
843 case "x$enable_glx$enable_xlib_glx" in
845 DRIVER_DIRS="$DRIVER_DIRS x11"
846 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
847 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
848 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
849 HAVE_WINSYS_XLIB="yes"
853 SRC_DIRS="$SRC_DIRS glx"
857 if test "x$enable_dri" = xyes; then
858 DRIVER_DIRS="$DRIVER_DIRS dri"
860 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
861 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
865 if test "x$enable_osmesa" = xyes; then
866 # the empty space matters for osmesa... (see src/mesa/Makefile)
867 if test -n "$DRIVER_DIRS"; then
868 DRIVER_DIRS="$DRIVER_DIRS osmesa"
876 AC_SUBST([DRIVER_DIRS])
877 AC_SUBST([GALLIUM_DIRS])
878 AC_SUBST([GALLIUM_TARGET_DIRS])
879 AC_SUBST([GALLIUM_WINSYS_DIRS])
880 AC_SUBST([GALLIUM_DRIVERS_DIRS])
881 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
882 AC_SUBST([MESA_LLVM])
885 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
886 [have_libdrm=yes], [have_libdrm=no])
888 if test "x$enable_dri" = xyes; then
889 # DRI must be shared, I think
890 if test "$enable_static" = yes; then
891 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
894 # not a hard requirement as swrast does not depend on it
895 if test "x$have_libdrm" = xyes; then
896 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
901 dnl Find out if X is available. The variable have_x is set if libX11 is
902 dnl found to mimic AC_PATH_XTRA.
904 if test -n "$PKG_CONFIG"; then
905 AC_MSG_CHECKING([pkg-config files for X11 are available])
906 PKG_CHECK_EXISTS([x11],[
912 AC_MSG_RESULT([$x11_pkgconfig])
916 dnl Use the autoconf macro if no pkg-config files
917 if test "$x11_pkgconfig" = yes; then
918 PKG_CHECK_MODULES([X11], [x11])
921 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
922 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
923 AC_SUBST([X11_CFLAGS])
927 dnl Try to tell the user that the --x-* options are only used when
928 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
929 m4_divert_once([HELP_BEGIN],
930 [These options are only used when the X libraries cannot be found by the
931 pkg-config utility.])
933 dnl We need X for xlib and dri, so bomb now if it's not found
934 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
935 AC_MSG_ERROR([X11 development libraries needed for GLX])
938 if test "x$enable_glx" = xyes; then
939 DEFINES="$DEFINES -DUSE_XCB"
942 dnl Direct rendering or just indirect rendering
945 dnl Disable by default on GNU/Hurd
946 driglx_direct_default="no"
949 dnl Disable by default on cygwin
950 driglx_direct_default="no"
953 driglx_direct_default="yes"
956 AC_ARG_ENABLE([driglx-direct],
957 [AS_HELP_STRING([--disable-driglx-direct],
958 [enable direct rendering in GLX and EGL for DRI \
959 @<:@default=auto@:>@])],
960 [driglx_direct="$enableval"],
961 [driglx_direct="$driglx_direct_default"])
964 dnl libGL configuration per driver
966 case "x$enable_glx$enable_xlib_glx" in
969 if test "$x11_pkgconfig" = yes; then
970 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
971 GL_PC_REQ_PRIV="x11 xext"
972 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
973 GL_LIB_DEPS="$XLIBGL_LIBS"
975 # should check these...
976 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
977 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
978 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
979 GL_PC_CFLAGS="$X11_INCLUDES"
981 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
982 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
986 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
987 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
988 if test x"$driglx_direct" = xyes; then
989 if test "x$have_libdrm" != xyes; then
990 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
992 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
993 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
996 # find the DRI deps for libGL
997 if test "$x11_pkgconfig" = yes; then
998 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
1000 # add xf86vidmode if available
1001 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
1002 if test "$HAVE_XF86VIDMODE" = yes ; then
1003 dri_modules="$dri_modules xxf86vm"
1006 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
1007 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1008 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
1009 GL_LIB_DEPS="$DRIGL_LIBS"
1011 # should check these...
1012 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
1013 if test "x$HAVE_XF86VIDMODE" == xyes; then
1014 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
1016 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1018 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1019 GL_PC_CFLAGS="$X11_INCLUDES"
1021 # XCB can only be used from pkg-config
1022 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1023 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1024 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1025 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1028 # Check to see if the xcb-glx library is new enough to support
1029 # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
1031 save_CPPFLAGS="$CPPFLAGS"
1032 save_LDFLAGS="$LDFLAGS"
1033 CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
1034 LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
1035 AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
1036 [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
1037 [HAVE_XCB_GLX_CREATE_CONTEXT=no])
1038 CPPFLAGS="$save_CPPFLAGS"
1039 LDFLAGS="$save_LDFLAGS"
1041 if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
1042 X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
1045 # need DRM libs, -lpthread, etc.
1046 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1047 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1051 # This is outside the case (above) so that it is invoked even for non-GLX
1053 AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
1054 test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
1056 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1057 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1058 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1059 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1061 AC_SUBST([GL_LIB_DEPS])
1062 AC_SUBST([GL_PC_REQ_PRIV])
1063 AC_SUBST([GL_PC_LIB_PRIV])
1064 AC_SUBST([GL_PC_CFLAGS])
1065 AC_SUBST([DRI_PC_REQ_PRIV])
1066 AC_SUBST([GLESv1_CM_LIB_DEPS])
1067 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1068 AC_SUBST([GLESv2_LIB_DEPS])
1069 AC_SUBST([GLESv2_PC_LIB_PRIV])
1071 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1072 AC_SUBST([GLAPI_LIB_DEPS])
1075 dnl Setup default DRI CFLAGS
1076 DRI_CFLAGS='$(CFLAGS)'
1077 DRI_CXXFLAGS='$(CXXFLAGS)'
1078 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1079 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1081 AC_ARG_ENABLE([shared-dricore],
1082 [AS_HELP_STRING([--enable-shared-dricore],
1083 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1084 [enable_dricore="$enableval"],
1085 [enable_dricore=no])
1086 if test "x$enable_dri" = xyes ; then
1087 if test "$enable_dricore" = yes ; then
1088 if test "$GCC$GXX" != yesyes ; then
1089 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1092 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1093 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1094 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1095 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1096 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1097 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1098 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1102 AC_SUBST([DRICORE_LIBS])
1103 AC_SUBST([DRICORE_GLSL_LIBS])
1104 AC_SUBST([DRICORE_LIB_DEPS])
1105 AC_SUBST([DRI_CXXFLAGS])
1106 AC_SUBST([DRI_CFLAGS])
1107 AC_SUBST([MESA_MODULES])
1109 AC_SUBST([HAVE_XF86VIDMODE])
1114 case "x$enable_glx$enable_xlib_glx" in
1116 DEFINES="$DEFINES -DUSE_XSHM"
1119 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1120 if test "x$driglx_direct" = xyes; then
1121 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1130 AC_ARG_ENABLE([glx-tls],
1131 [AS_HELP_STRING([--enable-glx-tls],
1132 [enable TLS support in GLX @<:@default=disabled@:>@])],
1133 [GLX_USE_TLS="$enableval"],
1135 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1137 AS_IF([test "x$GLX_USE_TLS" = xyes],
1138 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1143 dnl Directory for DRI drivers
1144 AC_ARG_WITH([dri-driverdir],
1145 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1146 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1147 [DRI_DRIVER_INSTALL_DIR="$withval"],
1148 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1149 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1150 dnl Extra search path for DRI drivers
1151 AC_ARG_WITH([dri-searchpath],
1152 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1153 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1154 [DRI_DRIVER_SEARCH_DIR="$withval"],
1155 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1156 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1157 dnl Which drivers to build - default is chosen by platform
1158 AC_ARG_WITH([dri-drivers],
1159 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1160 [comma delimited DRI drivers list, e.g.
1161 "swrast,i965,radeon" @<:@default=auto@:>@])],
1162 [with_dri_drivers="$withval"],
1163 [with_dri_drivers=yes])
1164 if test "x$with_dri_drivers" = x; then
1168 dnl If $with_dri_drivers is yes, directories will be added through
1171 case "$with_dri_drivers" in
1174 # classic DRI drivers require FEATURE_GL to build
1175 if test "x$enable_opengl" = xyes; then
1180 # verify the requested driver directories exist
1181 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1182 for driver in $dri_drivers; do
1183 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1184 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1186 DRI_DIRS="$dri_drivers"
1187 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1188 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1193 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1194 if test "x$enable_dri" = xyes; then
1195 # Platform specific settings and drivers to build
1198 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1199 DEFINES="$DEFINES -DHAVE_ALIAS"
1203 if test "x$DRI_DIRS" = "xyes"; then
1204 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1208 # Build only the drivers for cards that exist on PowerPC.
1209 if test "x$DRI_DIRS" = "xyes"; then
1210 DRI_DIRS="r200 radeon swrast"
1214 # Build only the drivers for cards that exist on sparc
1215 if test "x$DRI_DIRS" = "xyes"; then
1216 DRI_DIRS="r200 radeon swrast"
1221 freebsd* | dragonfly* | *netbsd*)
1222 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1223 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1225 if test "x$DRI_DIRS" = "xyes"; then
1226 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1230 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1231 DEFINES="$DEFINES -DHAVE_ALIAS"
1234 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1237 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1238 if test "x$DRI_DIRS" = "xyes"; then
1245 if test "x$DRI_DIRS" = "xyes"; then
1246 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1249 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1252 if test "x$enable_dri" = xyes; then
1255 AC_ARG_WITH([expat],
1256 [AS_HELP_STRING([--with-expat=DIR],
1257 [expat install directory])],[
1258 EXPAT_INCLUDES="-I$withval/include"
1259 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1260 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1261 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1263 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1264 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1265 [AC_MSG_ERROR([Expat required for DRI.])])
1268 # libdrm is required for all except swrast
1269 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1270 if test "x$have_libdrm" != xyes; then
1271 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1275 # put all the necessary libs together, including possibly libdricore
1276 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1278 AC_SUBST([DRI_DIRS])
1279 AC_SUBST([EXPAT_INCLUDES])
1280 AC_SUBST([DRI_LIB_DEPS])
1284 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1290 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1296 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1302 dnl OSMesa configuration
1305 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1306 AC_ARG_WITH([osmesa-bits],
1307 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1308 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1309 [osmesa_bits="$withval"],
1311 if test "x$osmesa_bits" != x8; then
1312 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1313 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1317 case "x$osmesa_bits" in
1319 OSMESA_LIB="${OSMESA_LIB}"
1322 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1323 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1326 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1330 if test "x$enable_osmesa" = xyes; then
1331 # only link libraries with osmesa if shared
1332 if test "$enable_static" = no; then
1333 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1338 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1340 AC_SUBST([OSMESA_LIB_DEPS])
1341 AC_SUBST([OSMESA_MESA_DEPS])
1342 AC_SUBST([OSMESA_PC_REQ])
1343 AC_SUBST([OSMESA_PC_LIB_PRIV])
1346 dnl gbm configuration
1348 if test "x$enable_gbm" = xauto; then
1349 case "$with_egl_platforms" in
1356 if test "x$enable_gbm" = xyes; then
1357 SRC_DIRS="$SRC_DIRS gbm"
1360 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1361 AC_MSG_ERROR([gbm needs udev]))
1362 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1364 if test "x$enable_dri" = xyes; then
1365 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1366 if test "$SHARED_GLAPI" -eq 0; then
1367 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1371 AC_SUBST([GBM_LIB_DEPS])
1372 AC_SUBST([GBM_BACKEND_DIRS])
1373 GBM_PC_REQ_PRIV="libudev"
1374 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1376 AC_SUBST([GBM_PC_REQ_PRIV])
1377 AC_SUBST([GBM_PC_LIB_PRIV])
1378 AC_SUBST([GBM_PC_CFLAGS])
1381 dnl EGL configuration
1385 if test "x$enable_egl" = xyes; then
1386 SRC_DIRS="$SRC_DIRS egl"
1387 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1390 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1392 if test "$enable_static" != yes; then
1393 # build egl_glx when libGL is built
1394 if test "x$enable_glx" = xyes; then
1395 EGL_DRIVERS_DIRS="glx"
1398 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1399 [have_libudev=yes],[have_libudev=no])
1400 if test "$have_libudev" = yes; then
1401 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1403 if test "x$enable_dri" = xyes; then
1404 # build egl_dri2 when xcb-dri2 is available
1405 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1406 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1408 if test "$have_xcb_dri2" = yes; then
1409 EGL_DRIVER_DRI2=dri2
1410 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1411 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1412 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1413 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1417 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1420 AC_SUBST([EGL_LIB_DEPS])
1421 AC_SUBST([EGL_DRIVERS_DIRS])
1424 dnl EGL Gallium configuration
1426 if test "x$enable_gallium_egl" = xyes; then
1427 if test "x$with_gallium_drivers" = x; then
1428 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1430 if test "x$enable_egl" = xno; then
1431 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1433 if test "x$have_libdrm" != xyes; then
1434 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1437 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1438 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1443 dnl gbm Gallium configuration
1445 if test "x$enable_gallium_gbm" = xauto; then
1446 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1448 enable_gallium_gbm=yes ;;
1450 enable_gallium_gbm=no ;;
1453 if test "x$enable_gallium_gbm" = xyes; then
1454 if test "x$with_gallium_drivers" = x; then
1455 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1457 if test "x$enable_gbm" = xno; then
1458 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1460 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1461 if test "x$enable_dri" = xno; then
1462 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1465 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1466 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1471 dnl X.Org DDX configuration
1473 if test "x$enable_xorg" = xyes; then
1474 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1475 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1476 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1477 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1478 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1479 HAVE_XEXTPROTO_71="no")
1480 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1485 dnl XA configuration
1487 if test "x$enable_xa" = xyes; then
1490 AC_CHECK_PROG(NM, nm, "nm")
1491 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1492 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1496 if test "x$enable_xa" = xyes; then
1497 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1505 dnl OpenVG configuration
1509 if test "x$enable_openvg" = xyes; then
1510 if test "x$enable_egl" = xno; then
1511 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1513 if test "x$with_gallium_drivers" = x; then
1514 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1516 if test "x$enable_gallium_egl" = xno; then
1517 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1520 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1521 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1522 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1523 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1528 dnl D3D1X configuration
1531 if test "x$enable_d3d1x" = xyes; then
1532 if test "x$with_gallium_drivers" = x; then
1533 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1536 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1541 dnl Gallium G3DVL configuration
1543 AC_ARG_ENABLE([gallium-g3dvl],
1544 [AS_HELP_STRING([--enable-gallium-g3dvl],
1545 [build gallium g3dvl @<:@default=disabled@:>@])],
1546 [enable_gallium_g3dvl="$enableval"],
1547 [enable_gallium_g3dvl=no])
1548 if test "x$enable_gallium_g3dvl" = xyes; then
1549 if test "x$with_gallium_drivers" = x; then
1550 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1553 if test "x$enable_xvmc" = xauto; then
1554 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1557 if test "x$enable_vdpau" = xauto; then
1558 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1561 if test "x$enable_va" = xauto; then
1562 #don't enable vaapi state tracker even if package exists
1563 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1568 if test "x$enable_xvmc" = xyes; then
1569 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1570 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1574 if test "x$enable_vdpau" = xyes; then
1575 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1576 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1580 if test "x$enable_va" = xyes; then
1581 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1582 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1583 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1588 dnl GLU configuration
1590 AC_ARG_ENABLE([glu],
1591 [AS_HELP_STRING([--disable-glu],
1592 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1593 [enable_glu="$enableval"],
1596 if test "x$enable_glu" = xyes; then
1597 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1598 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1603 if test "x$enable_glu" = xyes; then
1604 SRC_DIRS="$SRC_DIRS glu"
1606 if test "x$enable_glx" = xno; then
1607 # Link libGLU to libOSMesa instead of libGL
1610 if test "$enable_static" = no; then
1611 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1616 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1618 GLU_PC_LIB_PRIV="-lm"
1619 if test "$enable_static" = no; then
1621 GLU_MESA_DEPS='-l$(GL_LIB)'
1628 if test "$enable_static" = no; then
1629 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1631 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1632 AC_SUBST([GLU_LIB_DEPS])
1633 AC_SUBST([GLU_MESA_DEPS])
1634 AC_SUBST([GLU_PC_REQ])
1635 AC_SUBST([GLU_PC_REQ_PRIV])
1636 AC_SUBST([GLU_PC_LIB_PRIV])
1637 AC_SUBST([GLU_PC_CFLAGS])
1639 AC_SUBST([PROGRAM_DIRS])
1642 dnl Gallium configuration
1644 if test "x$with_gallium_drivers" != x; then
1645 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1648 AC_SUBST([LLVM_CFLAGS])
1649 AC_SUBST([LLVM_LIBS])
1650 AC_SUBST([LLVM_LDFLAGS])
1651 AC_SUBST([LLVM_VERSION])
1653 case "x$enable_opengl$enable_gles1$enable_gles2" in
1655 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1659 AC_SUBST([VG_LIB_DEPS])
1660 AC_SUBST([EGL_CLIENT_APIS])
1662 AC_ARG_WITH([egl-platforms],
1663 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1664 [comma delimited native platforms libEGL supports, e.g.
1665 "x11,drm" @<:@default=auto@:>@])],
1666 [with_egl_platforms="$withval"],
1667 [with_egl_platforms=yes])
1670 WAYLAND_EGL_LIB_DEPS=""
1672 case "$with_egl_platforms" in
1674 if test "x$enable_egl" = xyes; then
1679 if test "x$enable_egl" != xyes; then
1680 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1682 # verify the requested driver directories exist
1683 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1684 for plat in $egl_platforms; do
1685 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1686 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1687 if test "$plat" = "fbdev"; then
1688 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1690 if test "$plat" = "null"; then
1691 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1693 if test "$plat" = "wayland"; then
1694 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1695 [AC_MSG_ERROR([cannot find libwayland-client])])
1696 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1697 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1699 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1700 AC_MSG_ERROR([EGL platform drm needs gbm])
1702 case "$plat$have_libudev" in
1704 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1707 EGL_PLATFORMS="$egl_platforms"
1710 AC_SUBST([EGL_PLATFORMS])
1712 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1713 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1714 WAYLAND_EGL_PC_LIB_PRIV=
1715 WAYLAND_EGL_PC_CFLAGS=
1717 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1718 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1719 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1722 AC_ARG_WITH([egl-driver-dir],
1723 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1724 [directory for EGL drivers [[default=${libdir}/egl]]])],
1725 [EGL_DRIVER_INSTALL_DIR="$withval"],
1726 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1727 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1729 AC_ARG_WITH([xorg-driver-dir],
1730 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1731 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1732 [XORG_DRIVER_INSTALL_DIR="$withval"],
1733 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1734 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1736 AC_ARG_WITH([max-width],
1737 [AS_HELP_STRING([--with-max-width=N],
1738 [Maximum framebuffer width (4096)])],
1739 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1740 AS_IF([test "${withval}" -gt "4096"],
1741 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1743 AC_ARG_WITH([max-height],
1744 [AS_HELP_STRING([--with-max-height=N],
1745 [Maximum framebuffer height (4096)])],
1746 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1747 AS_IF([test "${withval}" -gt "4096"],
1748 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1754 AC_ARG_ENABLE([gallium-llvm],
1755 [AS_HELP_STRING([--enable-gallium-llvm],
1756 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1757 [enable_gallium_llvm="$enableval"],
1758 [enable_gallium_llvm=auto])
1759 if test "x$with_gallium_drivers" = x; then
1760 enable_gallium_llvm=no
1762 if test "x$enable_gallium_llvm" = xauto; then
1764 i*86|x86_64) enable_gallium_llvm=yes;;
1767 if test "x$enable_gallium_llvm" = xyes; then
1768 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1770 if test "x$LLVM_CONFIG" != xno; then
1771 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1772 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1773 LLVM_LIBS="`$LLVM_CONFIG --libs`"
1775 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1776 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1785 dnl Directory for VDPAU libs
1786 AC_ARG_WITH([vdpau-libdir],
1787 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1788 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1789 [VDPAU_LIB_INSTALL_DIR="$withval"],
1790 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1791 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1793 dnl Directory for VA libs
1794 AC_ARG_WITH([va-libdir],
1795 [AS_HELP_STRING([--with-va-libdir=DIR],
1796 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1797 [VA_LIB_INSTALL_DIR="$withval"],
1798 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1799 AC_SUBST([VA_LIB_INSTALL_DIR])
1802 dnl Gallium helper functions
1804 gallium_check_st() {
1805 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1806 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1807 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1808 if test "x$have_libdrm" != xyes; then
1809 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1811 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1813 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1814 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1816 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1817 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1819 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1820 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1822 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1823 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1824 NEED_G3DVL_DRI="yes"
1826 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1827 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1828 NEED_G3DVL_DRI="yes"
1830 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1831 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1832 NEED_G3DVL_DRI="yes"
1836 gallium_require_llvm() {
1837 if test "x$MESA_LLVM" = x0; then
1839 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1845 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1846 if test "x$with_gallium_drivers" != x; then
1847 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1848 for driver in $gallium_drivers; do
1851 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1852 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1855 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1856 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1857 if test "x$MESA_LLVM" = x1; then
1858 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1860 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1861 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1864 gallium_require_llvm "Gallium R300"
1865 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1866 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1869 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1870 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1873 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1874 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1875 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1878 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1879 if test "x$MESA_LLVM" = x1; then
1880 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1883 if test "x$HAVE_ST_DRI" = xyes; then
1884 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1886 if test "x$HAVE_ST_VDPAU" = xyes; then
1887 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1889 if test "x$HAVE_ST_XVMC" = xyes; then
1890 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1892 if test "x$HAVE_ST_VA" = xyes; then
1893 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1895 if test "x$HAVE_ST_VDPAU" = xyes ||
1896 test "x$HAVE_ST_XVMC" = xyes ||
1897 test "x$HAVE_ST_VA" = xyes; then
1898 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1899 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1904 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1910 if test "x$NEED_G3DVL_DRI" = xyes; then
1911 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1914 dnl prepend CORE_DIRS to SRC_DIRS
1915 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1917 dnl Restore LDFLAGS and CPPFLAGS
1918 LDFLAGS="$_SAVE_LDFLAGS"
1919 CPPFLAGS="$_SAVE_CPPFLAGS"
1921 dnl Add user CFLAGS and CXXFLAGS
1922 CFLAGS="$CFLAGS $USER_CFLAGS"
1923 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1925 dnl Substitute the config
1926 AC_CONFIG_FILES([configs/autoconf
1928 tests/glx/Makefile])
1930 dnl Replace the configs/current symlink
1931 AC_CONFIG_COMMANDS([configs],[
1932 if test -f configs/current || test -L configs/current; then
1933 rm -f configs/current
1935 ln -s autoconf configs/current
1938 dnl Sort the dirs alphabetically
1939 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1940 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1941 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1942 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1947 dnl Output some configuration info for the user
1950 echo " prefix: $prefix"
1951 echo " exec_prefix: $exec_prefix"
1952 echo " libdir: $libdir"
1953 echo " includedir: $includedir"
1957 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1958 echo " OpenVG: $enable_openvg"
1962 if test "x$enable_osmesa" != xno; then
1963 echo " OSMesa: lib$OSMESA_LIB"
1968 if test "x$enable_dri" != xno; then
1969 # cleanup the drivers var
1970 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1971 if test "x$DRI_DIRS" = x; then
1972 echo " DRI drivers: no"
1974 echo " DRI drivers: $dri_dirs"
1976 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1977 echo " Shared dricore: $enable_dricore"
1980 case "x$enable_glx$enable_xlib_glx" in
1982 echo " GLX: Xlib-based"
1985 echo " GLX: DRI-based"
1988 echo " GLX: $enable_glx"
1993 echo " GLU: $enable_glu"
1997 echo " EGL: $enable_egl"
1998 if test "$enable_egl" = yes; then
1999 echo " EGL platforms: $EGL_PLATFORMS"
2002 for d in $EGL_DRIVERS_DIRS; do
2003 egl_drivers="$egl_drivers builtin:egl_$d"
2006 if test "x$HAVE_ST_EGL" = xyes; then
2007 echo " EGL drivers: ${egl_drivers} egl_gallium"
2008 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2010 echo " EGL drivers: $egl_drivers"
2015 if test "x$MESA_LLVM" = x1; then
2017 echo " llvm-config: $LLVM_CONFIG"
2018 echo " llvm-version: $LLVM_VERSION"
2024 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2025 echo " Gallium: yes"
2026 echo " Gallium dirs: $GALLIUM_DIRS"
2027 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2028 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2029 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2030 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2038 echo " Shared libs: $enable_shared"
2039 echo " Static libs: $enable_static"
2041 dnl Compiler options
2042 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2043 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2044 $SED 's/^ *//;s/ */ /;s/ *$//'`
2045 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2046 $SED 's/^ *//;s/ */ /;s/ *$//'`
2047 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2049 echo " CFLAGS: $cflags"
2050 echo " CXXFLAGS: $cxxflags"
2051 echo " Macros: $defines"
2053 echo " PYTHON2: $PYTHON2"
2056 echo " Run '${MAKE-make}' to build Mesa"