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])
22 LT_INIT([disable-static])
24 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
26 USER_CXXFLAGS="$CXXFLAGS"
28 dnl Versions for external dependencies
29 LIBDRM_REQUIRED=2.4.24
30 LIBDRM_RADEON_REQUIRED=2.4.24
31 LIBDRM_INTEL_REQUIRED=2.4.30
32 LIBDRM_NOUVEAU_REQUIRED=0.6
33 DRI2PROTO_REQUIRED=2.6
34 GLPROTO_REQUIRED=1.4.14
35 LIBDRM_XORG_REQUIRED=2.4.24
36 LIBKMS_XORG_REQUIRED=1.0.0
42 AC_CHECK_PROGS([MAKE], [gmake make])
43 AC_CHECK_PROGS([PYTHON2], [python2 python])
45 AC_PATH_PROG([MKDEP], [makedepend])
47 if test "x$MKDEP" = "x"; then
48 AC_MSG_ERROR([makedepend is required to build Mesa])
51 AC_PATH_PROG([FLEX], [flex])
52 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
54 AC_PATH_PROG([BISON], [bison])
55 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
57 dnl Our fallback install-sh is a symlink to minstall. Use the existing
58 dnl configuration in that case.
60 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
62 dnl We need a POSIX shell for parts of the build. Assume we have one
66 # Solaris /bin/sh is too old/non-POSIX compliant
67 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
72 AC_PATH_PROG([GTESTCONFIG], [gtest-config])
73 if test "x$GTESTCONFIG" != "x"; then
74 GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
75 GTEST_LIBS=`gtest-config --ldflags --libs`
76 AC_SUBST([GTEST_CFLAGS])
77 AC_SUBST([GTEST_LIBS])
82 AM_CONDITIONAL(HAVE_GTEST, test x$HAVE_GTEST = xyes)
84 dnl clang is mostly GCC-compatible, but its version is much lower,
85 dnl so we have to check for it.
86 AC_MSG_CHECKING([if compiling with clang])
89 [AC_LANG_PROGRAM([], [[
94 [CLANG=yes], [CLANG=no])
96 AC_MSG_RESULT([$CLANG])
98 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
99 dnl versions are explictly not supported.
100 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
101 AC_MSG_CHECKING([whether gcc version is sufficient])
105 GCC_VERSION=`$CC -dumpversion`
106 if test $? -eq 0; then
107 major=`echo $GCC_VERSION | cut -d. -f1`
108 minor=`echo $GCC_VERSION | cut -d. -f2`
111 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
113 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
120 MKDEP_OPTIONS=-fdepend
121 dnl Ask gcc where it's keeping its secret headers
122 if test "x$GCC" = xyes; then
123 for dir in include include-fixed; do
124 GCC_INCLUDES=`$CC -print-file-name=$dir`
125 if test "x$GCC_INCLUDES" != x && \
126 test "$GCC_INCLUDES" != "$dir" && \
127 test -d "$GCC_INCLUDES"; then
128 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
132 AC_SUBST([MKDEP_OPTIONS])
134 dnl Make sure the pkg-config macros are defined
135 m4_ifndef([PKG_PROG_PKG_CONFIG],
136 [m4_fatal([Could not locate the pkg-config autoconf macros.
137 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
138 are in a different location, try setting the environment variable
139 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
140 PKG_PROG_PKG_CONFIG()
142 dnl LIB_DIR - library basename
143 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
146 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
147 _SAVE_LDFLAGS="$LDFLAGS"
148 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
149 AC_SUBST([EXTRA_LIB_PATH])
151 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
152 _SAVE_CPPFLAGS="$CPPFLAGS"
153 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
154 AC_SUBST([X11_INCLUDES])
161 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
164 DEFINES="$DEFINES -DPTHREADS -DSVR4"
167 DEFINES="$DEFINES -DPTHREADS"
171 dnl Add flags for gcc and g++
172 if test "x$GCC" = xyes; then
173 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
174 if test "x$CLANG" = "xno"; then
175 CFLAGS="$CFLAGS -ffast-math"
178 # Enable -fvisibility=hidden if using a gcc that supports it
179 save_CFLAGS="$CFLAGS"
180 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
181 VISIBILITY_CFLAGS="-fvisibility=hidden"
182 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
183 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
184 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
186 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
189 # Work around aliasing bugs - developers should comment this out
190 CFLAGS="$CFLAGS -fno-strict-aliasing"
192 # gcc's builtin memcmp is slower than glibc's
193 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
194 CFLAGS="$CFLAGS -fno-builtin-memcmp"
196 if test "x$GXX" = xyes; then
197 CXXFLAGS="$CXXFLAGS -Wall"
199 # Enable -fvisibility=hidden if using a gcc that supports it
200 save_CXXFLAGS="$CXXFLAGS"
201 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
202 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
203 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
205 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
206 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
209 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
210 CXXFLAGS=$save_CXXFLAGS
212 # Work around aliasing bugs - developers should comment this out
213 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
215 # gcc's builtin memcmp is slower than glibc's
216 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
217 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
220 dnl even if the compiler appears to support it, using visibility attributes isn't
221 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
225 VISIBILITY_CXXFLAGS=""
229 AC_SUBST([VISIBILITY_CFLAGS])
230 AC_SUBST([VISIBILITY_CXXFLAGS])
232 dnl These should be unnecessary, but let the user set them if they want
233 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
234 Default is to use CFLAGS.])
235 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
236 compiler. Default is to use CFLAGS.])
237 AC_SUBST([OPT_FLAGS])
238 AC_SUBST([ARCH_FLAGS])
241 dnl Hacks to enable 32 or 64 bit build
243 AC_ARG_ENABLE([32-bit],
244 [AS_HELP_STRING([--enable-32-bit],
245 [build 32-bit libraries @<:@default=auto@:>@])],
246 [enable_32bit="$enableval"],
249 if test "x$enable_32bit" = xyes; then
250 if test "x$GCC" = xyes; then
251 CFLAGS="$CFLAGS -m32"
252 ARCH_FLAGS="$ARCH_FLAGS -m32"
254 if test "x$GXX" = xyes; then
255 CXXFLAGS="$CXXFLAGS -m32"
258 AC_ARG_ENABLE([64-bit],
259 [AS_HELP_STRING([--enable-64-bit],
260 [build 64-bit libraries @<:@default=auto@:>@])],
261 [enable_64bit="$enableval"],
264 if test "x$enable_64bit" = xyes; then
265 if test "x$GCC" = xyes; then
266 CFLAGS="$CFLAGS -m64"
268 if test "x$GXX" = xyes; then
269 CXXFLAGS="$CXXFLAGS -m64"
274 dnl shared/static libraries, mimic libtool options
276 AC_ARG_ENABLE([static],
277 [AS_HELP_STRING([--enable-static],
278 [build static libraries @<:@default=disabled@:>@])],
279 [enable_static="$enableval"],
282 case "x$enable_static" in
284 x ) enable_static=no ;;
286 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
289 AC_ARG_ENABLE([shared],
290 [AS_HELP_STRING([--disable-shared],
291 [build shared libraries @<:@default=enabled@:>@])],
292 [enable_shared="$enableval"],
295 case "x$enable_shared" in
297 x ) enable_shared=yes ;;
299 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
303 dnl Can't have static and shared libraries, default to static if user
304 dnl explicitly requested. If both disabled, set to static since shared
305 dnl was explicitly requirested.
306 case "x$enable_static$enable_shared" in
308 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
312 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
320 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
321 if test "$enable_static" = yes; then
322 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
324 AC_SUBST([MKLIB_OPTIONS])
327 dnl other compiler options
329 AC_ARG_ENABLE([debug],
330 [AS_HELP_STRING([--enable-debug],
331 [use debug compiler flags and macros @<:@default=disabled@:>@])],
332 [enable_debug="$enableval"],
335 if test "x$enable_debug" = xyes; then
336 DEFINES="$DEFINES -DDEBUG"
337 if test "x$GCC" = xyes; then
340 if test "x$GXX" = xyes; then
341 CXXFLAGS="$CXXFLAGS -g"
348 LIB_PREFIX_GLOB='lib'
349 LIB_VERSION_SEPARATOR='.'
350 if test "$enable_static" = yes; then
355 LIB_EXTENSION='dylib' ;;
357 dnl prefix can be 'cyg' or 'lib'
358 LIB_PREFIX_GLOB='???'
359 LIB_VERSION_SEPARATOR='-'
360 LIB_EXTENSION='dll' ;;
364 LIB_EXTENSION='so' ;;
369 dnl Mangled Mesa support
371 AC_ARG_ENABLE([mangling],
372 [AS_HELP_STRING([--enable-mangling],
373 [enable mangled symbols and library name @<:@default=disabled@:>@])],
374 [enable_mangling="${enableval}"],
380 if test "x${enable_mangling}" = "xyes" ; then
381 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
384 OSMESA_LIB="MangledOSMesa"
388 AC_SUBST([OSMESA_LIB])
391 dnl potentially-infringing-but-nobody-knows-for-sure stuff
393 AC_ARG_ENABLE([texture-float],
394 [AS_HELP_STRING([--enable-texture-float],
395 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
396 [enable_texture_float="$enableval"],
397 [enable_texture_float=no]
399 if test "x$enable_texture_float" = xyes; then
400 AC_MSG_WARN([Floating-point textures enabled.])
401 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
402 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
405 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
406 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
407 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
408 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
409 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
410 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
411 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
412 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
413 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
414 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
416 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
417 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
418 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
419 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
420 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
421 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
422 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
423 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
424 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
425 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
426 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
428 AC_SUBST([GL_LIB_NAME])
429 AC_SUBST([GLU_LIB_NAME])
430 AC_SUBST([OSMESA_LIB_NAME])
431 AC_SUBST([EGL_LIB_NAME])
432 AC_SUBST([GLESv1_CM_LIB_NAME])
433 AC_SUBST([GLESv2_LIB_NAME])
434 AC_SUBST([VG_LIB_NAME])
435 AC_SUBST([GLAPI_LIB_NAME])
436 AC_SUBST([WAYLAND_EGL_LIB_NAME])
437 AC_SUBST([GBM_LIB_NAME])
439 AC_SUBST([GL_LIB_GLOB])
440 AC_SUBST([GLU_LIB_GLOB])
441 AC_SUBST([OSMESA_LIB_GLOB])
442 AC_SUBST([EGL_LIB_GLOB])
443 AC_SUBST([GLESv1_CM_LIB_GLOB])
444 AC_SUBST([GLESv2_LIB_GLOB])
445 AC_SUBST([VG_LIB_GLOB])
446 AC_SUBST([GLAPI_LIB_GLOB])
447 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
448 AC_SUBST([GBM_LIB_GLOB])
451 dnl Arch/platform-specific settings
454 [AS_HELP_STRING([--disable-asm],
455 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
456 [enable_asm="$enableval"],
463 AC_MSG_CHECKING([whether to enable assembly])
464 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
465 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
466 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
470 AC_MSG_RESULT([no, cross compiling])
474 # check for supported arches
475 if test "x$enable_asm" = xyes; then
479 linux* | *freebsd* | dragonfly* | *netbsd*)
480 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
486 linux* | *freebsd* | dragonfly* | *netbsd*)
487 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
509 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
510 MESA_ASM_SOURCES='$(X86_SOURCES)'
511 GLAPI_ASM_SOURCES='$(X86_API)'
512 AC_MSG_RESULT([yes, x86])
515 ASM_FLAGS="-DUSE_X86_64_ASM"
516 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
517 GLAPI_ASM_SOURCES='$(X86-64_API)'
518 AC_MSG_RESULT([yes, x86_64])
521 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
522 MESA_ASM_SOURCES='$(PPC_SOURCES)'
523 AC_MSG_RESULT([yes, ppc])
526 ASM_FLAGS="-DUSE_SPARC_ASM"
527 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
528 GLAPI_ASM_SOURCES='$(SPARC_API)'
529 AC_MSG_RESULT([yes, sparc])
532 AC_MSG_RESULT([no, platform not supported])
536 AC_SUBST([ASM_FLAGS])
537 AC_SUBST([MESA_ASM_SOURCES])
538 AC_SUBST([GLAPI_ASM_SOURCES])
543 dnl Check to see if dlopen is in default libraries (like Solaris, which
544 dnl has it in libc), or if libdl is needed to get it.
545 AC_CHECK_FUNC([dlopen], [],
546 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
547 AC_SUBST([DLOPEN_LIBS])
549 dnl See if posix_memalign is available
550 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
552 dnl SELinux awareness.
553 AC_ARG_ENABLE([selinux],
554 [AS_HELP_STRING([--enable-selinux],
555 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
556 [MESA_SELINUX="$enableval"],
558 if test "x$enable_selinux" = "xyes"; then
559 AC_CHECK_HEADER([selinux/selinux.h],[],
560 [AC_MSG_ERROR([SELinux headers not found])])
561 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
562 [AC_MSG_ERROR([SELinux library not found])])
563 SELINUX_LIBS="-lselinux"
564 DEFINES="$DEFINES -DMESA_SELINUX"
568 AC_ARG_ENABLE([opengl],
569 [AS_HELP_STRING([--disable-opengl],
570 [disable support for standard OpenGL API @<:@default=no@:>@])],
571 [enable_opengl="$enableval"],
573 AC_ARG_ENABLE([gles1],
574 [AS_HELP_STRING([--enable-gles1],
575 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
576 [enable_gles1="$enableval"],
578 AC_ARG_ENABLE([gles2],
579 [AS_HELP_STRING([--enable-gles2],
580 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
581 [enable_gles2="$enableval"],
583 AC_ARG_ENABLE([openvg],
584 [AS_HELP_STRING([--enable-openvg],
585 [enable support for OpenVG API @<:@default=no@:>@])],
586 [enable_openvg="$enableval"],
590 [AS_HELP_STRING([--enable-dri],
591 [enable DRI modules @<:@default=auto@:>@])],
592 [enable_dri="$enableval"],
595 [AS_HELP_STRING([--enable-glx],
596 [enable GLX library @<:@default=auto@:>@])],
597 [enable_glx="$enableval"],
599 AC_ARG_ENABLE([osmesa],
600 [AS_HELP_STRING([--enable-osmesa],
601 [enable OSMesa library @<:@default=auto@:>@])],
602 [enable_osmesa="$enableval"],
603 [enable_osmesa=auto])
605 [AS_HELP_STRING([--disable-egl],
606 [disable EGL library @<:@default=enabled@:>@])],
607 [enable_egl="$enableval"],
610 AC_ARG_ENABLE([xorg],
611 [AS_HELP_STRING([--enable-xorg],
612 [enable support for X.Org DDX API @<:@default=no@:>@])],
613 [enable_xorg="$enableval"],
616 [AS_HELP_STRING([--enable-xa],
617 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
618 [enable_xa="$enableval"],
620 AC_ARG_ENABLE([d3d1x],
621 [AS_HELP_STRING([--enable-d3d1x],
622 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
623 [enable_d3d1x="$enableval"],
626 [AS_HELP_STRING([--enable-gbm],
627 [enable gbm library @<:@default=auto@:>@])],
628 [enable_gbm="$enableval"],
631 AC_ARG_ENABLE([xvmc],
632 [AS_HELP_STRING([--enable-xvmc],
633 [enable xvmc library @<:@default=auto@:>@])],
634 [enable_xvmc="$enableval"],
636 AC_ARG_ENABLE([vdpau],
637 [AS_HELP_STRING([--enable-vdpau],
638 [enable vdpau library @<:@default=auto@:>@])],
639 [enable_vdpau="$enableval"],
642 [AS_HELP_STRING([--enable-va],
643 [enable va library @<:@default=auto@:>@])],
644 [enable_va="$enableval"],
647 AC_ARG_ENABLE([xlib_glx],
648 [AS_HELP_STRING([--enable-xlib-glx],
649 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
650 [enable_xlib_glx="$enableval"],
651 [enable_xlib_glx=auto])
652 AC_ARG_ENABLE([gallium_egl],
653 [AS_HELP_STRING([--enable-gallium-egl],
654 [enable optional EGL state tracker (not required
655 for EGL support in Gallium with OpenGL and OpenGL ES)
656 @<:@default=disable@:>@])],
657 [enable_gallium_egl="$enableval"],
658 [enable_gallium_egl=no])
659 AC_ARG_ENABLE([gallium_gbm],
660 [AS_HELP_STRING([--enable-gallium-gbm],
661 [enable optional gbm state tracker (not required for
662 gbm support in Gallium)
663 @<:@default=auto@:>@])],
664 [enable_gallium_gbm="$enableval"],
665 [enable_gallium_gbm=auto])
667 # Option for Gallium drivers
668 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
670 AC_ARG_WITH([gallium-drivers],
671 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
672 [comma delimited Gallium drivers list, e.g.
673 "i915,nouveau,r300,r600,svga,swrast"
674 @<:@default=r300,r600,swrast@:>@])],
675 [with_gallium_drivers="$withval"],
676 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
678 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
679 # here so that the script doesn't choke on an unknown driver name later.
680 case "$with_gallium_drivers" in
681 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
682 no) with_gallium_drivers='' ;;
685 if test "x$enable_opengl" = xno -a \
686 "x$enable_gles1" = xno -a \
687 "x$enable_gles2" = xno -a \
688 "x$enable_openvg" = xno -a \
689 "x$enable_xorg" = xno -a \
690 "x$enable_xa" = xno -a \
691 "x$enable_d3d1x" = xno -a \
692 "x$enable_xvmc" = xno -a \
693 "x$enable_vdpau" = xno -a \
694 "x$enable_va" = xno; then
695 AC_MSG_ERROR([at least one API should be enabled])
699 if test "x$enable_opengl" = xno; then
700 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
702 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
704 if test "x$enable_gles1" = xyes; then
705 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
707 if test "x$enable_gles2" = xyes; then
708 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
710 AC_SUBST([API_DEFINES])
712 AC_ARG_ENABLE([shared-glapi],
713 [AS_HELP_STRING([--enable-shared-glapi],
714 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
715 [enable_shared_glapi="$enableval"],
716 [enable_shared_glapi=no])
719 if test "x$enable_shared_glapi" = xyes; then
722 AC_SUBST([SHARED_GLAPI])
725 dnl Driver configuration. Options are xlib, dri and osmesa right now.
726 dnl More later: fbdev, ...
728 default_driver="xlib"
733 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
736 *freebsd* | dragonfly* | *netbsd*)
738 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
743 if test "x$enable_opengl" = xno; then
747 AC_ARG_WITH([driver],
748 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
749 [mesa_driver="$withval"],
751 dnl Check for valid option
752 case "x$mesa_driver" in
753 xxlib|xdri|xosmesa|xno)
754 if test "x$enable_dri" != xauto -o \
755 "x$enable_glx" != xauto -o \
756 "x$enable_osmesa" != xauto -o \
757 "x$enable_xlib_glx" != xauto; then
758 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
762 mesa_driver="$default_driver"
765 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
769 # map $mesa_driver to APIs
770 if test "x$enable_dri" = xauto; then
771 case "x$mesa_driver" in
772 xdri) enable_dri=yes ;;
777 if test "x$enable_glx" = xauto; then
778 case "x$mesa_driver" in
779 xdri|xxlib) enable_glx=yes ;;
784 if test "x$enable_osmesa" = xauto; then
785 case "x$mesa_driver" in
786 xxlib|xosmesa) enable_osmesa=yes ;;
787 *) enable_osmesa=no ;;
791 if test "x$enable_xlib_glx" = xauto; then
792 case "x$mesa_driver" in
793 xxlib) enable_xlib_glx=yes ;;
794 *) enable_xlib_glx=no ;;
798 if test "x$enable_glx" = xno; then
803 dnl Driver specific build directories
806 dnl this variable will be prepended to SRC_DIRS and is not exported
811 GALLIUM_DIRS="auxiliary drivers state_trackers"
812 GALLIUM_TARGET_DIRS=""
813 GALLIUM_WINSYS_DIRS="sw"
814 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
815 GALLIUM_STATE_TRACKERS_DIRS=""
817 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
818 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
820 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
824 # build glapi if OpenGL is enabled
825 if test "x$enable_opengl" = xyes; then
826 CORE_DIRS="$CORE_DIRS mapi/glapi"
829 # build es1api if OpenGL ES 1.x is enabled
830 if test "x$enable_gles1" = xyes; then
831 CORE_DIRS="$CORE_DIRS mapi/es1api"
834 # build es2api if OpenGL ES 2.x is enabled
835 if test "x$enable_gles2" = xyes; then
836 CORE_DIRS="$CORE_DIRS mapi/es2api"
839 # build glsl and mesa if OpenGL or OpenGL ES is enabled
840 case "x$enable_opengl$enable_gles1$enable_gles2" in
842 CORE_DIRS="$CORE_DIRS glsl mesa"
846 case "x$enable_glx$enable_xlib_glx" in
848 DRIVER_DIRS="$DRIVER_DIRS x11"
849 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
850 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
851 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
852 HAVE_WINSYS_XLIB="yes"
856 SRC_DIRS="$SRC_DIRS glx"
860 if test "x$enable_dri" = xyes; then
861 DRIVER_DIRS="$DRIVER_DIRS dri"
863 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
864 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
868 if test "x$enable_osmesa" = xyes; then
869 # the empty space matters for osmesa... (see src/mesa/Makefile)
870 if test -n "$DRIVER_DIRS"; then
871 DRIVER_DIRS="$DRIVER_DIRS osmesa"
879 AC_SUBST([DRIVER_DIRS])
880 AC_SUBST([GALLIUM_DIRS])
881 AC_SUBST([GALLIUM_TARGET_DIRS])
882 AC_SUBST([GALLIUM_WINSYS_DIRS])
883 AC_SUBST([GALLIUM_DRIVERS_DIRS])
884 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
885 AC_SUBST([MESA_LLVM])
888 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
889 [have_libdrm=yes], [have_libdrm=no])
891 if test "x$enable_dri" = xyes; then
892 # DRI must be shared, I think
893 if test "$enable_static" = yes; then
894 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
897 # not a hard requirement as swrast does not depend on it
898 if test "x$have_libdrm" = xyes; then
899 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
904 dnl Find out if X is available. The variable have_x is set if libX11 is
905 dnl found to mimic AC_PATH_XTRA.
907 if test -n "$PKG_CONFIG"; then
908 AC_MSG_CHECKING([pkg-config files for X11 are available])
909 PKG_CHECK_EXISTS([x11],[
915 AC_MSG_RESULT([$x11_pkgconfig])
919 dnl Use the autoconf macro if no pkg-config files
920 if test "$x11_pkgconfig" = yes; then
921 PKG_CHECK_MODULES([X11], [x11])
924 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
925 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
926 AC_SUBST([X11_CFLAGS])
930 dnl Try to tell the user that the --x-* options are only used when
931 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
932 m4_divert_once([HELP_BEGIN],
933 [These options are only used when the X libraries cannot be found by the
934 pkg-config utility.])
936 dnl We need X for xlib and dri, so bomb now if it's not found
937 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
938 AC_MSG_ERROR([X11 development libraries needed for GLX])
941 if test "x$enable_glx" = xyes; then
942 DEFINES="$DEFINES -DUSE_XCB"
945 dnl Direct rendering or just indirect rendering
948 dnl Disable by default on GNU/Hurd
949 driglx_direct_default="no"
952 dnl Disable by default on cygwin
953 driglx_direct_default="no"
956 driglx_direct_default="yes"
959 AC_ARG_ENABLE([driglx-direct],
960 [AS_HELP_STRING([--disable-driglx-direct],
961 [enable direct rendering in GLX and EGL for DRI \
962 @<:@default=auto@:>@])],
963 [driglx_direct="$enableval"],
964 [driglx_direct="$driglx_direct_default"])
967 dnl libGL configuration per driver
969 case "x$enable_glx$enable_xlib_glx" in
972 if test "$x11_pkgconfig" = yes; then
973 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
974 GL_PC_REQ_PRIV="x11 xext"
975 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
976 GL_LIB_DEPS="$XLIBGL_LIBS"
978 # should check these...
979 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
980 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
981 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
982 GL_PC_CFLAGS="$X11_INCLUDES"
984 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
985 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
989 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
990 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
991 if test x"$driglx_direct" = xyes; then
992 if test "x$have_libdrm" != xyes; then
993 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
995 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
996 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
999 # find the DRI deps for libGL
1000 if test "$x11_pkgconfig" = yes; then
1001 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
1003 # add xf86vidmode if available
1004 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
1005 if test "$HAVE_XF86VIDMODE" = yes ; then
1006 dri_modules="$dri_modules xxf86vm"
1009 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
1010 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1011 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
1012 GL_LIB_DEPS="$DRIGL_LIBS"
1014 # should check these...
1015 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
1016 if test "x$HAVE_XF86VIDMODE" == xyes; then
1017 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
1019 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1021 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1022 GL_PC_CFLAGS="$X11_INCLUDES"
1024 # XCB can only be used from pkg-config
1025 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1026 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1027 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1028 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1031 # Check to see if the xcb-glx library is new enough to support
1032 # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
1034 save_CPPFLAGS="$CPPFLAGS"
1035 save_LDFLAGS="$LDFLAGS"
1036 CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
1037 LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
1038 AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
1039 [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
1040 [HAVE_XCB_GLX_CREATE_CONTEXT=no])
1041 CPPFLAGS="$save_CPPFLAGS"
1042 LDFLAGS="$save_LDFLAGS"
1044 if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
1045 X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
1048 # need DRM libs, -lpthread, etc.
1049 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1050 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1054 # This is outside the case (above) so that it is invoked even for non-GLX
1056 AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
1057 test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
1059 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1060 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1061 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1062 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1064 AC_SUBST([GL_LIB_DEPS])
1065 AC_SUBST([GL_PC_REQ_PRIV])
1066 AC_SUBST([GL_PC_LIB_PRIV])
1067 AC_SUBST([GL_PC_CFLAGS])
1068 AC_SUBST([DRI_PC_REQ_PRIV])
1069 AC_SUBST([GLESv1_CM_LIB_DEPS])
1070 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1071 AC_SUBST([GLESv2_LIB_DEPS])
1072 AC_SUBST([GLESv2_PC_LIB_PRIV])
1074 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1075 AC_SUBST([GLAPI_LIB_DEPS])
1078 dnl Setup default DRI CFLAGS
1079 DRI_CFLAGS='$(CFLAGS)'
1080 DRI_CXXFLAGS='$(CXXFLAGS)'
1081 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1082 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1084 AC_ARG_ENABLE([shared-dricore],
1085 [AS_HELP_STRING([--enable-shared-dricore],
1086 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1087 [enable_dricore="$enableval"],
1088 [enable_dricore=no])
1089 if test "x$enable_dri" = xyes ; then
1090 if test "$enable_dricore" = yes ; then
1091 if test "$GCC$GXX" != yesyes ; then
1092 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1095 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1096 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1097 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1098 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1099 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1100 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1101 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1105 AC_SUBST([DRICORE_LIBS])
1106 AC_SUBST([DRICORE_GLSL_LIBS])
1107 AC_SUBST([DRICORE_LIB_DEPS])
1108 AC_SUBST([DRI_CXXFLAGS])
1109 AC_SUBST([DRI_CFLAGS])
1110 AC_SUBST([MESA_MODULES])
1112 AC_SUBST([HAVE_XF86VIDMODE])
1117 case "x$enable_glx$enable_xlib_glx" in
1119 DEFINES="$DEFINES -DUSE_XSHM"
1122 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1123 if test "x$driglx_direct" = xyes; then
1124 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1133 AC_ARG_ENABLE([glx-tls],
1134 [AS_HELP_STRING([--enable-glx-tls],
1135 [enable TLS support in GLX @<:@default=disabled@:>@])],
1136 [GLX_USE_TLS="$enableval"],
1138 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1140 AS_IF([test "x$GLX_USE_TLS" = xyes],
1141 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1146 dnl Directory for DRI drivers
1147 AC_ARG_WITH([dri-driverdir],
1148 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1149 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1150 [DRI_DRIVER_INSTALL_DIR="$withval"],
1151 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1152 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1153 dnl Extra search path for DRI drivers
1154 AC_ARG_WITH([dri-searchpath],
1155 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1156 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1157 [DRI_DRIVER_SEARCH_DIR="$withval"],
1158 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1159 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1160 dnl Which drivers to build - default is chosen by platform
1161 AC_ARG_WITH([dri-drivers],
1162 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1163 [comma delimited DRI drivers list, e.g.
1164 "swrast,i965,radeon" @<:@default=auto@:>@])],
1165 [with_dri_drivers="$withval"],
1166 [with_dri_drivers=yes])
1167 if test "x$with_dri_drivers" = x; then
1171 dnl If $with_dri_drivers is yes, directories will be added through
1174 case "$with_dri_drivers" in
1177 # classic DRI drivers require FEATURE_GL to build
1178 if test "x$enable_opengl" = xyes; then
1183 # verify the requested driver directories exist
1184 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1185 for driver in $dri_drivers; do
1186 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1187 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1189 DRI_DIRS="$dri_drivers"
1190 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1191 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1196 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1197 if test "x$enable_dri" = xyes; then
1198 # Platform specific settings and drivers to build
1201 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1202 DEFINES="$DEFINES -DHAVE_ALIAS"
1206 if test "x$DRI_DIRS" = "xyes"; then
1207 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1211 # Build only the drivers for cards that exist on PowerPC.
1212 if test "x$DRI_DIRS" = "xyes"; then
1213 DRI_DIRS="r200 radeon swrast"
1217 # Build only the drivers for cards that exist on sparc
1218 if test "x$DRI_DIRS" = "xyes"; then
1219 DRI_DIRS="r200 radeon swrast"
1224 freebsd* | dragonfly* | *netbsd*)
1225 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1226 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1228 if test "x$DRI_DIRS" = "xyes"; then
1229 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1233 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1234 DEFINES="$DEFINES -DHAVE_ALIAS"
1237 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1240 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1241 if test "x$DRI_DIRS" = "xyes"; then
1248 if test "x$DRI_DIRS" = "xyes"; then
1249 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1252 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1255 if test "x$enable_dri" = xyes; then
1258 AC_ARG_WITH([expat],
1259 [AS_HELP_STRING([--with-expat=DIR],
1260 [expat install directory])],[
1261 EXPAT_INCLUDES="-I$withval/include"
1262 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1263 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1264 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1266 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1267 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1268 [AC_MSG_ERROR([Expat required for DRI.])])
1271 # libdrm is required for all except swrast
1272 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1273 if test "x$have_libdrm" != xyes; then
1274 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1278 # put all the necessary libs together, including possibly libdricore
1279 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1281 AC_SUBST([DRI_DIRS])
1282 AC_SUBST([EXPAT_INCLUDES])
1283 AC_SUBST([DRI_LIB_DEPS])
1287 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1298 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1302 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1308 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1314 dnl OSMesa configuration
1317 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1318 AC_ARG_WITH([osmesa-bits],
1319 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1320 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1321 [osmesa_bits="$withval"],
1323 if test "x$osmesa_bits" != x8; then
1324 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1325 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1329 case "x$osmesa_bits" in
1331 OSMESA_LIB="${OSMESA_LIB}"
1334 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1335 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1338 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1342 if test "x$enable_osmesa" = xyes; then
1343 # only link libraries with osmesa if shared
1344 if test "$enable_static" = no; then
1345 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1350 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1352 AC_SUBST([OSMESA_LIB_DEPS])
1353 AC_SUBST([OSMESA_MESA_DEPS])
1354 AC_SUBST([OSMESA_PC_REQ])
1355 AC_SUBST([OSMESA_PC_LIB_PRIV])
1358 dnl gbm configuration
1360 if test "x$enable_gbm" = xauto; then
1361 case "$with_egl_platforms" in
1368 if test "x$enable_gbm" = xyes; then
1369 SRC_DIRS="$SRC_DIRS gbm"
1372 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1373 AC_MSG_ERROR([gbm needs udev]))
1374 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1376 if test "x$enable_dri" = xyes; then
1377 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1378 if test "$SHARED_GLAPI" -eq 0; then
1379 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1383 AC_SUBST([GBM_LIB_DEPS])
1384 AC_SUBST([GBM_BACKEND_DIRS])
1385 GBM_PC_REQ_PRIV="libudev"
1386 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1388 AC_SUBST([GBM_PC_REQ_PRIV])
1389 AC_SUBST([GBM_PC_LIB_PRIV])
1390 AC_SUBST([GBM_PC_CFLAGS])
1393 dnl EGL configuration
1397 if test "x$enable_egl" = xyes; then
1398 SRC_DIRS="$SRC_DIRS egl"
1399 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1402 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1404 if test "$enable_static" != yes; then
1405 # build egl_glx when libGL is built
1406 if test "x$enable_glx" = xyes; then
1407 EGL_DRIVERS_DIRS="glx"
1410 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1411 [have_libudev=yes],[have_libudev=no])
1412 if test "$have_libudev" = yes; then
1413 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1415 if test "x$enable_dri" = xyes; then
1416 # build egl_dri2 when xcb-dri2 is available
1417 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1418 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1420 if test "$have_xcb_dri2" = yes; then
1421 EGL_DRIVER_DRI2=dri2
1422 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1423 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1424 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1425 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1429 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1432 AC_SUBST([EGL_LIB_DEPS])
1433 AC_SUBST([EGL_DRIVERS_DIRS])
1436 dnl EGL Gallium configuration
1438 if test "x$enable_gallium_egl" = xyes; then
1439 if test "x$with_gallium_drivers" = x; then
1440 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1442 if test "x$enable_egl" = xno; then
1443 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1445 if test "x$have_libdrm" != xyes; then
1446 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1449 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1450 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1455 dnl gbm Gallium configuration
1457 if test "x$enable_gallium_gbm" = xauto; then
1458 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1460 enable_gallium_gbm=yes ;;
1462 enable_gallium_gbm=no ;;
1465 if test "x$enable_gallium_gbm" = xyes; then
1466 if test "x$with_gallium_drivers" = x; then
1467 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1469 if test "x$enable_gbm" = xno; then
1470 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1472 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1473 if test "x$enable_dri" = xno; then
1474 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1477 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1478 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1483 dnl X.Org DDX configuration
1485 if test "x$enable_xorg" = xyes; then
1486 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1487 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1488 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1489 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1490 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1491 HAVE_XEXTPROTO_71="no")
1492 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1497 dnl XA configuration
1499 if test "x$enable_xa" = xyes; then
1502 AC_CHECK_PROG(NM, nm, "nm")
1503 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1504 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1508 if test "x$enable_xa" = xyes; then
1509 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1517 dnl OpenVG configuration
1521 if test "x$enable_openvg" = xyes; then
1522 if test "x$enable_egl" = xno; then
1523 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1525 if test "x$with_gallium_drivers" = x; then
1526 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1528 if test "x$enable_gallium_egl" = xno; then
1529 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1532 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1533 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1534 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1535 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1540 dnl D3D1X configuration
1543 if test "x$enable_d3d1x" = xyes; then
1544 if test "x$with_gallium_drivers" = x; then
1545 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1548 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1553 dnl Gallium G3DVL configuration
1555 AC_ARG_ENABLE([gallium-g3dvl],
1556 [AS_HELP_STRING([--enable-gallium-g3dvl],
1557 [build gallium g3dvl @<:@default=disabled@:>@])],
1558 [enable_gallium_g3dvl="$enableval"],
1559 [enable_gallium_g3dvl=no])
1560 if test "x$enable_gallium_g3dvl" = xyes; then
1561 if test "x$with_gallium_drivers" = x; then
1562 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1565 if test "x$enable_xvmc" = xauto; then
1566 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1569 if test "x$enable_vdpau" = xauto; then
1570 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1573 if test "x$enable_va" = xauto; then
1574 #don't enable vaapi state tracker even if package exists
1575 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1580 if test "x$enable_xvmc" = xyes; then
1581 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1582 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1586 if test "x$enable_vdpau" = xyes; then
1587 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1588 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1592 if test "x$enable_va" = xyes; then
1593 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1594 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1595 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1600 dnl GLU configuration
1602 AC_ARG_ENABLE([glu],
1603 [AS_HELP_STRING([--disable-glu],
1604 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1605 [enable_glu="$enableval"],
1608 if test "x$enable_glu" = xyes; then
1609 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1610 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1615 if test "x$enable_glu" = xyes; then
1616 SRC_DIRS="$SRC_DIRS glu"
1618 if test "x$enable_glx" = xno; then
1619 # Link libGLU to libOSMesa instead of libGL
1622 if test "$enable_static" = no; then
1623 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1628 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1630 GLU_PC_LIB_PRIV="-lm"
1631 if test "$enable_static" = no; then
1633 GLU_MESA_DEPS='-l$(GL_LIB)'
1640 if test "$enable_static" = no; then
1641 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1643 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1644 AC_SUBST([GLU_LIB_DEPS])
1645 AC_SUBST([GLU_MESA_DEPS])
1646 AC_SUBST([GLU_PC_REQ])
1647 AC_SUBST([GLU_PC_REQ_PRIV])
1648 AC_SUBST([GLU_PC_LIB_PRIV])
1649 AC_SUBST([GLU_PC_CFLAGS])
1651 AC_SUBST([PROGRAM_DIRS])
1654 dnl Gallium configuration
1656 if test "x$with_gallium_drivers" != x; then
1657 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1660 AC_SUBST([LLVM_CFLAGS])
1661 AC_SUBST([LLVM_LIBS])
1662 AC_SUBST([LLVM_LDFLAGS])
1663 AC_SUBST([LLVM_VERSION])
1665 case "x$enable_opengl$enable_gles1$enable_gles2" in
1667 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1671 AC_SUBST([VG_LIB_DEPS])
1672 AC_SUBST([EGL_CLIENT_APIS])
1674 AC_ARG_WITH([egl-platforms],
1675 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1676 [comma delimited native platforms libEGL supports, e.g.
1677 "x11,drm" @<:@default=auto@:>@])],
1678 [with_egl_platforms="$withval"],
1679 [with_egl_platforms=yes])
1682 WAYLAND_EGL_LIB_DEPS=""
1684 case "$with_egl_platforms" in
1686 if test "x$enable_egl" = xyes; then
1691 if test "x$enable_egl" != xyes; then
1692 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1694 # verify the requested driver directories exist
1695 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1696 for plat in $egl_platforms; do
1697 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1698 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1699 if test "$plat" = "fbdev"; then
1700 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1702 if test "$plat" = "null"; then
1703 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1705 if test "$plat" = "wayland"; then
1706 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1707 [AC_MSG_ERROR([cannot find libwayland-client])])
1708 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1709 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1711 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1712 AC_MSG_ERROR([EGL platform drm needs gbm])
1714 case "$plat$have_libudev" in
1716 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1719 EGL_PLATFORMS="$egl_platforms"
1722 AC_SUBST([EGL_PLATFORMS])
1724 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1725 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1726 WAYLAND_EGL_PC_LIB_PRIV=
1727 WAYLAND_EGL_PC_CFLAGS=
1729 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1730 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1731 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1734 AC_ARG_WITH([egl-driver-dir],
1735 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1736 [directory for EGL drivers [[default=${libdir}/egl]]])],
1737 [EGL_DRIVER_INSTALL_DIR="$withval"],
1738 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1739 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1741 AC_ARG_WITH([xorg-driver-dir],
1742 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1743 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1744 [XORG_DRIVER_INSTALL_DIR="$withval"],
1745 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1746 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1748 AC_ARG_WITH([max-width],
1749 [AS_HELP_STRING([--with-max-width=N],
1750 [Maximum framebuffer width (4096)])],
1751 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1752 AS_IF([test "${withval}" -gt "4096"],
1753 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1755 AC_ARG_WITH([max-height],
1756 [AS_HELP_STRING([--with-max-height=N],
1757 [Maximum framebuffer height (4096)])],
1758 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1759 AS_IF([test "${withval}" -gt "4096"],
1760 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1766 AC_ARG_ENABLE([gallium-llvm],
1767 [AS_HELP_STRING([--enable-gallium-llvm],
1768 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1769 [enable_gallium_llvm="$enableval"],
1770 [enable_gallium_llvm=auto])
1771 if test "x$with_gallium_drivers" = x; then
1772 enable_gallium_llvm=no
1774 if test "x$enable_gallium_llvm" = xauto; then
1776 i*86|x86_64) enable_gallium_llvm=yes;;
1779 if test "x$enable_gallium_llvm" = xyes; then
1780 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1782 if test "x$LLVM_CONFIG" != xno; then
1783 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1784 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1785 LLVM_LIBS="`$LLVM_CONFIG --libs`"
1787 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1788 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1797 dnl Directory for VDPAU libs
1798 AC_ARG_WITH([vdpau-libdir],
1799 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1800 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1801 [VDPAU_LIB_INSTALL_DIR="$withval"],
1802 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1803 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1805 dnl Directory for VA libs
1806 AC_ARG_WITH([va-libdir],
1807 [AS_HELP_STRING([--with-va-libdir=DIR],
1808 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1809 [VA_LIB_INSTALL_DIR="$withval"],
1810 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1811 AC_SUBST([VA_LIB_INSTALL_DIR])
1814 dnl Gallium helper functions
1816 gallium_check_st() {
1817 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1818 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1819 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1820 if test "x$have_libdrm" != xyes; then
1821 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1823 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1825 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1826 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1828 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1829 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1831 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1832 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1834 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1835 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1836 NEED_G3DVL_DRI="yes"
1838 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1839 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1840 NEED_G3DVL_DRI="yes"
1842 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1843 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1844 NEED_G3DVL_DRI="yes"
1848 gallium_require_llvm() {
1849 if test "x$MESA_LLVM" = x0; then
1851 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1857 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1858 if test "x$with_gallium_drivers" != x; then
1859 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1860 for driver in $gallium_drivers; do
1863 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1864 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1867 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1868 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1869 if test "x$MESA_LLVM" = x1; then
1870 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1872 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1873 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1876 gallium_require_llvm "Gallium R300"
1877 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1878 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1881 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1882 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1885 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1886 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1887 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1890 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1891 if test "x$MESA_LLVM" = x1; then
1892 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1895 if test "x$HAVE_ST_DRI" = xyes; then
1896 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1898 if test "x$HAVE_ST_VDPAU" = xyes; then
1899 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1901 if test "x$HAVE_ST_XVMC" = xyes; then
1902 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1904 if test "x$HAVE_ST_VA" = xyes; then
1905 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1907 if test "x$HAVE_ST_VDPAU" = xyes ||
1908 test "x$HAVE_ST_XVMC" = xyes ||
1909 test "x$HAVE_ST_VA" = xyes; then
1910 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1911 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1916 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1922 if test "x$NEED_G3DVL_DRI" = xyes; then
1923 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1926 dnl prepend CORE_DIRS to SRC_DIRS
1927 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1929 dnl Restore LDFLAGS and CPPFLAGS
1930 LDFLAGS="$_SAVE_LDFLAGS"
1931 CPPFLAGS="$_SAVE_CPPFLAGS"
1933 dnl Add user CFLAGS and CXXFLAGS
1934 CFLAGS="$CFLAGS $USER_CFLAGS"
1935 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1937 dnl Substitute the config
1938 AC_CONFIG_FILES([configs/autoconf
1939 src/mesa/drivers/dri/i965/Makefile
1941 tests/glx/Makefile])
1943 dnl Replace the configs/current symlink
1944 AC_CONFIG_COMMANDS([configs],[
1945 if test -f configs/current || test -L configs/current; then
1946 rm -f configs/current
1948 ln -s autoconf configs/current
1951 dnl Sort the dirs alphabetically
1952 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1953 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1954 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1955 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1960 dnl Output some configuration info for the user
1963 echo " prefix: $prefix"
1964 echo " exec_prefix: $exec_prefix"
1965 echo " libdir: $libdir"
1966 echo " includedir: $includedir"
1970 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1971 echo " OpenVG: $enable_openvg"
1975 if test "x$enable_osmesa" != xno; then
1976 echo " OSMesa: lib$OSMESA_LIB"
1981 if test "x$enable_dri" != xno; then
1982 # cleanup the drivers var
1983 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1984 if test "x$DRI_DIRS" = x; then
1985 echo " DRI drivers: no"
1987 echo " DRI drivers: $dri_dirs"
1989 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1990 echo " Shared dricore: $enable_dricore"
1993 case "x$enable_glx$enable_xlib_glx" in
1995 echo " GLX: Xlib-based"
1998 echo " GLX: DRI-based"
2001 echo " GLX: $enable_glx"
2006 echo " GLU: $enable_glu"
2010 echo " EGL: $enable_egl"
2011 if test "$enable_egl" = yes; then
2012 echo " EGL platforms: $EGL_PLATFORMS"
2015 for d in $EGL_DRIVERS_DIRS; do
2016 egl_drivers="$egl_drivers builtin:egl_$d"
2019 if test "x$HAVE_ST_EGL" = xyes; then
2020 echo " EGL drivers: ${egl_drivers} egl_gallium"
2021 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2023 echo " EGL drivers: $egl_drivers"
2028 if test "x$MESA_LLVM" = x1; then
2030 echo " llvm-config: $LLVM_CONFIG"
2031 echo " llvm-version: $LLVM_VERSION"
2037 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2038 echo " Gallium: yes"
2039 echo " Gallium dirs: $GALLIUM_DIRS"
2040 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2041 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2042 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2043 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2051 echo " Shared libs: $enable_shared"
2052 echo " Static libs: $enable_static"
2054 dnl Compiler options
2055 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2056 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2057 $SED 's/^ *//;s/ */ /;s/ *$//'`
2058 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2059 $SED 's/^ *//;s/ */ /;s/ *$//'`
2060 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2062 echo " CFLAGS: $cflags"
2063 echo " CXXFLAGS: $cxxflags"
2064 echo " Macros: $defines"
2066 echo " PYTHON2: $PYTHON2"
2069 echo " Run '${MAKE-make}' to build Mesa"