1 dnl Process this file with autoconf to create configure.
5 dnl Versioning - scrape the version from configs/default
6 m4_define([mesa_version],
7 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
8 m4_ifval(mesa_version,,
9 [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
11 dnl Tell the user about autoconf.html in the --help output
12 m4_divert_once([HELP_END], [
13 See docs/autoconf.html for more details on the options for Mesa.])
15 AC_INIT([Mesa],[mesa_version],
16 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17 AC_CONFIG_AUX_DIR([bin])
19 AM_INIT_AUTOMAKE([foreign])
21 # Support silent build rules, requires at least automake-1.11. Disable
22 # by either passing --disable-silent-rules to configure or passing V=1
24 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
27 LT_INIT([disable-static])
29 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
31 USER_CXXFLAGS="$CXXFLAGS"
33 dnl Versions for external dependencies
34 LIBDRM_REQUIRED=2.4.24
35 LIBDRM_RADEON_REQUIRED=2.4.24
36 LIBDRM_INTEL_REQUIRED=2.4.30
37 LIBDRM_NOUVEAU_REQUIRED=0.6
38 DRI2PROTO_REQUIRED=2.6
39 GLPROTO_REQUIRED=1.4.14
40 LIBDRM_XORG_REQUIRED=2.4.24
41 LIBKMS_XORG_REQUIRED=1.0.0
47 AC_CHECK_PROGS([MAKE], [gmake make])
48 AC_CHECK_PROGS([PYTHON2], [python2 python])
50 AC_PATH_PROG([MKDEP], [makedepend])
52 if test "x$MKDEP" = "x"; then
53 AC_MSG_ERROR([makedepend is required to build Mesa])
56 AC_PATH_PROG([FLEX], [flex])
57 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
59 AC_PATH_PROG([BISON], [bison])
60 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
62 dnl Our fallback install-sh is a symlink to minstall. Use the existing
63 dnl configuration in that case.
65 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
67 dnl We need a POSIX shell for parts of the build. Assume we have one
71 # Solaris /bin/sh is too old/non-POSIX compliant
72 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
77 AC_PATH_PROG([GTESTCONFIG], [gtest-config])
78 if test "x$GTESTCONFIG" != "x"; then
79 GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
80 GTEST_LIBS=`gtest-config --ldflags --libs`
81 AC_SUBST([GTEST_CFLAGS])
82 AC_SUBST([GTEST_LIBS])
87 AM_CONDITIONAL(HAVE_GTEST, test x$HAVE_GTEST = xyes)
89 dnl clang is mostly GCC-compatible, but its version is much lower,
90 dnl so we have to check for it.
91 AC_MSG_CHECKING([if compiling with clang])
94 [AC_LANG_PROGRAM([], [[
99 [CLANG=yes], [CLANG=no])
101 AC_MSG_RESULT([$CLANG])
103 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
104 dnl versions are explictly not supported.
105 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
106 AC_MSG_CHECKING([whether gcc version is sufficient])
110 GCC_VERSION=`$CC -dumpversion`
111 if test $? -eq 0; then
112 major=`echo $GCC_VERSION | cut -d. -f1`
113 minor=`echo $GCC_VERSION | cut -d. -f2`
116 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
118 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
125 MKDEP_OPTIONS=-fdepend
126 dnl Ask gcc where it's keeping its secret headers
127 if test "x$GCC" = xyes; then
128 for dir in include include-fixed; do
129 GCC_INCLUDES=`$CC -print-file-name=$dir`
130 if test "x$GCC_INCLUDES" != x && \
131 test "$GCC_INCLUDES" != "$dir" && \
132 test -d "$GCC_INCLUDES"; then
133 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
137 AC_SUBST([MKDEP_OPTIONS])
139 dnl Make sure the pkg-config macros are defined
140 m4_ifndef([PKG_PROG_PKG_CONFIG],
141 [m4_fatal([Could not locate the pkg-config autoconf macros.
142 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
143 are in a different location, try setting the environment variable
144 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
145 PKG_PROG_PKG_CONFIG()
147 dnl LIB_DIR - library basename
148 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
151 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
152 _SAVE_LDFLAGS="$LDFLAGS"
153 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
154 AC_SUBST([EXTRA_LIB_PATH])
156 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
157 _SAVE_CPPFLAGS="$CPPFLAGS"
158 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
159 AC_SUBST([X11_INCLUDES])
166 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
169 DEFINES="$DEFINES -DPTHREADS -DSVR4"
172 DEFINES="$DEFINES -DPTHREADS"
176 dnl Add flags for gcc and g++
177 if test "x$GCC" = xyes; then
178 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
180 # Enable -fvisibility=hidden if using a gcc that supports it
181 save_CFLAGS="$CFLAGS"
182 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
183 VISIBILITY_CFLAGS="-fvisibility=hidden"
184 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
185 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
186 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
188 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
191 # Work around aliasing bugs - developers should comment this out
192 CFLAGS="$CFLAGS -fno-strict-aliasing"
194 # gcc's builtin memcmp is slower than glibc's
195 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
196 CFLAGS="$CFLAGS -fno-builtin-memcmp"
198 if test "x$GXX" = xyes; then
199 CXXFLAGS="$CXXFLAGS -Wall"
201 # Enable -fvisibility=hidden if using a gcc that supports it
202 save_CXXFLAGS="$CXXFLAGS"
203 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
204 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
205 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
207 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
208 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
211 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
212 CXXFLAGS=$save_CXXFLAGS
214 # Work around aliasing bugs - developers should comment this out
215 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
217 # gcc's builtin memcmp is slower than glibc's
218 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
219 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
222 dnl even if the compiler appears to support it, using visibility attributes isn't
223 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
227 VISIBILITY_CXXFLAGS=""
231 AC_SUBST([VISIBILITY_CFLAGS])
232 AC_SUBST([VISIBILITY_CXXFLAGS])
234 dnl These should be unnecessary, but let the user set them if they want
235 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
236 Default is to use CFLAGS.])
237 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
238 compiler. Default is to use CFLAGS.])
239 AC_SUBST([OPT_FLAGS])
240 AC_SUBST([ARCH_FLAGS])
243 dnl Hacks to enable 32 or 64 bit build
245 AC_ARG_ENABLE([32-bit],
246 [AS_HELP_STRING([--enable-32-bit],
247 [build 32-bit libraries @<:@default=auto@:>@])],
248 [enable_32bit="$enableval"],
251 if test "x$enable_32bit" = xyes; then
252 if test "x$GCC" = xyes; then
253 CFLAGS="$CFLAGS -m32"
254 ARCH_FLAGS="$ARCH_FLAGS -m32"
256 if test "x$GXX" = xyes; then
257 CXXFLAGS="$CXXFLAGS -m32"
260 AC_ARG_ENABLE([64-bit],
261 [AS_HELP_STRING([--enable-64-bit],
262 [build 64-bit libraries @<:@default=auto@:>@])],
263 [enable_64bit="$enableval"],
266 if test "x$enable_64bit" = xyes; then
267 if test "x$GCC" = xyes; then
268 CFLAGS="$CFLAGS -m64"
270 if test "x$GXX" = xyes; then
271 CXXFLAGS="$CXXFLAGS -m64"
276 dnl shared/static libraries, mimic libtool options
278 AC_ARG_ENABLE([static],
279 [AS_HELP_STRING([--enable-static],
280 [build static libraries @<:@default=disabled@:>@])],
281 [enable_static="$enableval"],
284 case "x$enable_static" in
286 x ) enable_static=no ;;
288 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
291 AC_ARG_ENABLE([shared],
292 [AS_HELP_STRING([--disable-shared],
293 [build shared libraries @<:@default=enabled@:>@])],
294 [enable_shared="$enableval"],
297 case "x$enable_shared" in
299 x ) enable_shared=yes ;;
301 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
305 dnl Can't have static and shared libraries, default to static if user
306 dnl explicitly requested. If both disabled, set to static since shared
307 dnl was explicitly requirested.
308 case "x$enable_static$enable_shared" in
310 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
314 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
322 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
323 if test "$enable_static" = yes; then
324 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
326 AC_SUBST([MKLIB_OPTIONS])
329 dnl other compiler options
331 AC_ARG_ENABLE([debug],
332 [AS_HELP_STRING([--enable-debug],
333 [use debug compiler flags and macros @<:@default=disabled@:>@])],
334 [enable_debug="$enableval"],
337 if test "x$enable_debug" = xyes; then
338 DEFINES="$DEFINES -DDEBUG"
339 if test "x$GCC" = xyes; then
342 if test "x$GXX" = xyes; then
343 CXXFLAGS="$CXXFLAGS -g"
350 LIB_PREFIX_GLOB='lib'
351 LIB_VERSION_SEPARATOR='.'
352 if test "$enable_static" = yes; then
357 LIB_EXTENSION='dylib' ;;
359 dnl prefix can be 'cyg' or 'lib'
360 LIB_PREFIX_GLOB='???'
361 LIB_VERSION_SEPARATOR='-'
362 LIB_EXTENSION='dll' ;;
366 LIB_EXTENSION='so' ;;
371 dnl Mangled Mesa support
373 AC_ARG_ENABLE([mangling],
374 [AS_HELP_STRING([--enable-mangling],
375 [enable mangled symbols and library name @<:@default=disabled@:>@])],
376 [enable_mangling="${enableval}"],
382 if test "x${enable_mangling}" = "xyes" ; then
383 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
386 OSMESA_LIB="MangledOSMesa"
390 AC_SUBST([OSMESA_LIB])
393 dnl potentially-infringing-but-nobody-knows-for-sure stuff
395 AC_ARG_ENABLE([texture-float],
396 [AS_HELP_STRING([--enable-texture-float],
397 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
398 [enable_texture_float="$enableval"],
399 [enable_texture_float=no]
401 if test "x$enable_texture_float" = xyes; then
402 AC_MSG_WARN([Floating-point textures enabled.])
403 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
404 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
407 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
408 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
409 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
410 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
411 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
412 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
413 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
414 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
415 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
416 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
418 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
419 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
420 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
421 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
422 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
423 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
424 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
425 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
426 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
427 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
428 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
430 AC_SUBST([GL_LIB_NAME])
431 AC_SUBST([GLU_LIB_NAME])
432 AC_SUBST([OSMESA_LIB_NAME])
433 AC_SUBST([EGL_LIB_NAME])
434 AC_SUBST([GLESv1_CM_LIB_NAME])
435 AC_SUBST([GLESv2_LIB_NAME])
436 AC_SUBST([VG_LIB_NAME])
437 AC_SUBST([GLAPI_LIB_NAME])
438 AC_SUBST([WAYLAND_EGL_LIB_NAME])
439 AC_SUBST([GBM_LIB_NAME])
441 AC_SUBST([GL_LIB_GLOB])
442 AC_SUBST([GLU_LIB_GLOB])
443 AC_SUBST([OSMESA_LIB_GLOB])
444 AC_SUBST([EGL_LIB_GLOB])
445 AC_SUBST([GLESv1_CM_LIB_GLOB])
446 AC_SUBST([GLESv2_LIB_GLOB])
447 AC_SUBST([VG_LIB_GLOB])
448 AC_SUBST([GLAPI_LIB_GLOB])
449 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
450 AC_SUBST([GBM_LIB_GLOB])
453 dnl Arch/platform-specific settings
456 [AS_HELP_STRING([--disable-asm],
457 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
458 [enable_asm="$enableval"],
465 AC_MSG_CHECKING([whether to enable assembly])
466 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
467 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
468 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
472 AC_MSG_RESULT([no, cross compiling])
476 # check for supported arches
477 if test "x$enable_asm" = xyes; then
481 linux* | *freebsd* | dragonfly* | *netbsd*)
482 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
488 linux* | *freebsd* | dragonfly* | *netbsd*)
489 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
511 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
512 MESA_ASM_SOURCES='$(X86_SOURCES)'
513 GLAPI_ASM_SOURCES='$(X86_API)'
514 AC_MSG_RESULT([yes, x86])
517 ASM_FLAGS="-DUSE_X86_64_ASM"
518 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
519 GLAPI_ASM_SOURCES='$(X86-64_API)'
520 AC_MSG_RESULT([yes, x86_64])
523 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
524 MESA_ASM_SOURCES='$(PPC_SOURCES)'
525 AC_MSG_RESULT([yes, ppc])
528 ASM_FLAGS="-DUSE_SPARC_ASM"
529 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
530 GLAPI_ASM_SOURCES='$(SPARC_API)'
531 AC_MSG_RESULT([yes, sparc])
534 AC_MSG_RESULT([no, platform not supported])
538 AC_SUBST([ASM_FLAGS])
539 AC_SUBST([MESA_ASM_SOURCES])
540 AC_SUBST([GLAPI_ASM_SOURCES])
545 dnl Check to see if dlopen is in default libraries (like Solaris, which
546 dnl has it in libc), or if libdl is needed to get it.
547 AC_CHECK_FUNC([dlopen], [],
548 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
549 AC_SUBST([DLOPEN_LIBS])
551 dnl See if posix_memalign is available
552 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
554 dnl SELinux awareness.
555 AC_ARG_ENABLE([selinux],
556 [AS_HELP_STRING([--enable-selinux],
557 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
558 [MESA_SELINUX="$enableval"],
560 if test "x$enable_selinux" = "xyes"; then
561 AC_CHECK_HEADER([selinux/selinux.h],[],
562 [AC_MSG_ERROR([SELinux headers not found])])
563 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
564 [AC_MSG_ERROR([SELinux library not found])])
565 SELINUX_LIBS="-lselinux"
566 DEFINES="$DEFINES -DMESA_SELINUX"
570 AC_ARG_ENABLE([opengl],
571 [AS_HELP_STRING([--disable-opengl],
572 [disable support for standard OpenGL API @<:@default=no@:>@])],
573 [enable_opengl="$enableval"],
575 AC_ARG_ENABLE([gles1],
576 [AS_HELP_STRING([--enable-gles1],
577 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
578 [enable_gles1="$enableval"],
580 AC_ARG_ENABLE([gles2],
581 [AS_HELP_STRING([--enable-gles2],
582 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
583 [enable_gles2="$enableval"],
585 AC_ARG_ENABLE([openvg],
586 [AS_HELP_STRING([--enable-openvg],
587 [enable support for OpenVG API @<:@default=no@:>@])],
588 [enable_openvg="$enableval"],
592 [AS_HELP_STRING([--enable-dri],
593 [enable DRI modules @<:@default=auto@:>@])],
594 [enable_dri="$enableval"],
597 [AS_HELP_STRING([--enable-glx],
598 [enable GLX library @<:@default=auto@:>@])],
599 [enable_glx="$enableval"],
601 AC_ARG_ENABLE([osmesa],
602 [AS_HELP_STRING([--enable-osmesa],
603 [enable OSMesa library @<:@default=auto@:>@])],
604 [enable_osmesa="$enableval"],
605 [enable_osmesa=auto])
607 [AS_HELP_STRING([--disable-egl],
608 [disable EGL library @<:@default=enabled@:>@])],
609 [enable_egl="$enableval"],
612 AC_ARG_ENABLE([xorg],
613 [AS_HELP_STRING([--enable-xorg],
614 [enable support for X.Org DDX API @<:@default=no@:>@])],
615 [enable_xorg="$enableval"],
618 [AS_HELP_STRING([--enable-xa],
619 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
620 [enable_xa="$enableval"],
622 AC_ARG_ENABLE([d3d1x],
623 [AS_HELP_STRING([--enable-d3d1x],
624 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
625 [enable_d3d1x="$enableval"],
628 [AS_HELP_STRING([--enable-gbm],
629 [enable gbm library @<:@default=auto@:>@])],
630 [enable_gbm="$enableval"],
633 AC_ARG_ENABLE([xvmc],
634 [AS_HELP_STRING([--enable-xvmc],
635 [enable xvmc library @<:@default=auto@:>@])],
636 [enable_xvmc="$enableval"],
638 AC_ARG_ENABLE([vdpau],
639 [AS_HELP_STRING([--enable-vdpau],
640 [enable vdpau library @<:@default=auto@:>@])],
641 [enable_vdpau="$enableval"],
644 [AS_HELP_STRING([--enable-va],
645 [enable va library @<:@default=auto@:>@])],
646 [enable_va="$enableval"],
649 AC_ARG_ENABLE([xlib_glx],
650 [AS_HELP_STRING([--enable-xlib-glx],
651 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
652 [enable_xlib_glx="$enableval"],
653 [enable_xlib_glx=auto])
654 AC_ARG_ENABLE([gallium_egl],
655 [AS_HELP_STRING([--enable-gallium-egl],
656 [enable optional EGL state tracker (not required
657 for EGL support in Gallium with OpenGL and OpenGL ES)
658 @<:@default=disable@:>@])],
659 [enable_gallium_egl="$enableval"],
660 [enable_gallium_egl=no])
661 AC_ARG_ENABLE([gallium_gbm],
662 [AS_HELP_STRING([--enable-gallium-gbm],
663 [enable optional gbm state tracker (not required for
664 gbm support in Gallium)
665 @<:@default=auto@:>@])],
666 [enable_gallium_gbm="$enableval"],
667 [enable_gallium_gbm=auto])
669 # Option for Gallium drivers
670 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
672 AC_ARG_WITH([gallium-drivers],
673 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
674 [comma delimited Gallium drivers list, e.g.
675 "i915,nouveau,r300,r600,svga,swrast"
676 @<:@default=r300,r600,swrast@:>@])],
677 [with_gallium_drivers="$withval"],
678 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
680 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
681 # here so that the script doesn't choke on an unknown driver name later.
682 case "$with_gallium_drivers" in
683 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
684 no) with_gallium_drivers='' ;;
687 if test "x$enable_opengl" = xno -a \
688 "x$enable_gles1" = xno -a \
689 "x$enable_gles2" = xno -a \
690 "x$enable_openvg" = xno -a \
691 "x$enable_xorg" = xno -a \
692 "x$enable_xa" = xno -a \
693 "x$enable_d3d1x" = xno -a \
694 "x$enable_xvmc" = xno -a \
695 "x$enable_vdpau" = xno -a \
696 "x$enable_va" = xno; then
697 AC_MSG_ERROR([at least one API should be enabled])
701 if test "x$enable_opengl" = xno; then
702 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
704 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
706 if test "x$enable_gles1" = xyes; then
707 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
709 if test "x$enable_gles2" = xyes; then
710 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
712 AC_SUBST([API_DEFINES])
715 dnl Driver configuration. Options are xlib, dri and osmesa right now.
716 dnl More later: fbdev, ...
718 default_driver="xlib"
723 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
726 *freebsd* | dragonfly* | *netbsd*)
728 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
733 if test "x$enable_opengl" = xno; then
737 AC_ARG_WITH([driver],
738 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
739 [mesa_driver="$withval"],
741 dnl Check for valid option
742 case "x$mesa_driver" in
743 xxlib|xdri|xosmesa|xno)
744 if test "x$enable_dri" != xauto -o \
745 "x$enable_glx" != xauto -o \
746 "x$enable_osmesa" != xauto -o \
747 "x$enable_xlib_glx" != xauto; then
748 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
752 mesa_driver="$default_driver"
755 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
759 # map $mesa_driver to APIs
760 if test "x$enable_dri" = xauto; then
761 case "x$mesa_driver" in
762 xdri) enable_dri=yes ;;
767 if test "x$enable_glx" = xauto; then
768 case "x$mesa_driver" in
769 xdri|xxlib) enable_glx=yes ;;
774 if test "x$enable_osmesa" = xauto; then
775 case "x$mesa_driver" in
776 xxlib|xosmesa) enable_osmesa=yes ;;
777 *) enable_osmesa=no ;;
781 if test "x$enable_xlib_glx" = xauto; then
782 case "x$mesa_driver" in
783 xxlib) enable_xlib_glx=yes ;;
784 *) enable_xlib_glx=no ;;
788 if test "x$enable_glx" = xno; then
793 dnl Driver specific build directories
796 dnl this variable will be prepended to SRC_DIRS and is not exported
797 CORE_DIRS="mapi/shared-glapi"
801 GALLIUM_DIRS="auxiliary drivers state_trackers"
802 GALLIUM_TARGET_DIRS=""
803 GALLIUM_WINSYS_DIRS="sw"
804 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
805 GALLIUM_STATE_TRACKERS_DIRS=""
807 # build glapi if OpenGL is enabled
808 if test "x$enable_opengl" = xyes; then
809 CORE_DIRS="$CORE_DIRS mapi/glapi"
812 # build es1api if OpenGL ES 1.x is enabled
813 if test "x$enable_gles1" = xyes; then
814 CORE_DIRS="$CORE_DIRS mapi/es1api"
817 # build es2api if OpenGL ES 2.x is enabled
818 if test "x$enable_gles2" = xyes; then
819 CORE_DIRS="$CORE_DIRS mapi/es2api"
822 # build glsl and mesa if OpenGL or OpenGL ES is enabled
823 case "x$enable_opengl$enable_gles1$enable_gles2" in
825 CORE_DIRS="$CORE_DIRS glsl mesa"
829 case "x$enable_glx$enable_xlib_glx" in
831 DRIVER_DIRS="$DRIVER_DIRS x11"
832 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
833 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
834 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
835 HAVE_WINSYS_XLIB="yes"
839 SRC_DIRS="$SRC_DIRS glx"
843 if test "x$enable_dri" = xyes; then
844 DRIVER_DIRS="$DRIVER_DIRS dri"
846 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
847 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
851 if test "x$enable_osmesa" = xyes; then
852 # the empty space matters for osmesa... (see src/mesa/Makefile)
853 if test -n "$DRIVER_DIRS"; then
854 DRIVER_DIRS="$DRIVER_DIRS osmesa"
862 AC_SUBST([DRIVER_DIRS])
863 AC_SUBST([GALLIUM_DIRS])
864 AC_SUBST([GALLIUM_TARGET_DIRS])
865 AC_SUBST([GALLIUM_WINSYS_DIRS])
866 AC_SUBST([GALLIUM_DRIVERS_DIRS])
867 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
868 AC_SUBST([MESA_LLVM])
871 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
872 [have_libdrm=yes], [have_libdrm=no])
874 if test "x$enable_dri" = xyes; then
875 # DRI must be shared, I think
876 if test "$enable_static" = yes; then
877 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
880 # not a hard requirement as swrast does not depend on it
881 if test "x$have_libdrm" = xyes; then
882 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
887 dnl Find out if X is available. The variable have_x is set if libX11 is
888 dnl found to mimic AC_PATH_XTRA.
890 if test -n "$PKG_CONFIG"; then
891 AC_MSG_CHECKING([pkg-config files for X11 are available])
892 PKG_CHECK_EXISTS([x11],[
898 AC_MSG_RESULT([$x11_pkgconfig])
902 dnl Use the autoconf macro if no pkg-config files
903 if test "$x11_pkgconfig" = yes; then
904 PKG_CHECK_MODULES([X11], [x11])
907 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
908 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
909 AC_SUBST([X11_CFLAGS])
913 dnl Try to tell the user that the --x-* options are only used when
914 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
915 m4_divert_once([HELP_BEGIN],
916 [These options are only used when the X libraries cannot be found by the
917 pkg-config utility.])
919 dnl We need X for xlib and dri, so bomb now if it's not found
920 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
921 AC_MSG_ERROR([X11 development libraries needed for GLX])
924 if test "x$enable_glx" = xyes; then
925 DEFINES="$DEFINES -DUSE_XCB"
928 dnl Direct rendering or just indirect rendering
931 dnl Disable by default on GNU/Hurd
932 driglx_direct_default="no"
935 dnl Disable by default on cygwin
936 driglx_direct_default="no"
939 driglx_direct_default="yes"
942 AC_ARG_ENABLE([driglx-direct],
943 [AS_HELP_STRING([--disable-driglx-direct],
944 [enable direct rendering in GLX and EGL for DRI \
945 @<:@default=auto@:>@])],
946 [driglx_direct="$enableval"],
947 [driglx_direct="$driglx_direct_default"])
950 dnl libGL configuration per driver
952 case "x$enable_glx$enable_xlib_glx" in
955 if test "$x11_pkgconfig" = yes; then
956 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
957 GL_PC_REQ_PRIV="x11 xext"
958 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
959 GL_LIB_DEPS="$XLIBGL_LIBS"
961 # should check these...
962 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
963 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
964 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
965 GL_PC_CFLAGS="$X11_INCLUDES"
967 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
968 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
972 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
973 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
974 if test x"$driglx_direct" = xyes; then
975 if test "x$have_libdrm" != xyes; then
976 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
978 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
979 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
982 # find the DRI deps for libGL
983 if test "$x11_pkgconfig" = yes; then
984 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
986 # add xf86vidmode if available
987 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
988 if test "$HAVE_XF86VIDMODE" = yes ; then
989 dri_modules="$dri_modules xxf86vm"
992 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
993 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
994 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
995 GL_LIB_DEPS="$DRIGL_LIBS"
997 # should check these...
998 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
999 if test "x$HAVE_XF86VIDMODE" == xyes; then
1000 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
1002 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1004 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1005 GL_PC_CFLAGS="$X11_INCLUDES"
1007 # XCB can only be used from pkg-config
1008 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1009 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1010 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1011 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1014 # Check to see if the xcb-glx library is new enough to support
1015 # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
1017 save_CPPFLAGS="$CPPFLAGS"
1018 save_LDFLAGS="$LDFLAGS"
1019 CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
1020 LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
1021 AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
1022 [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
1023 [HAVE_XCB_GLX_CREATE_CONTEXT=no])
1024 CPPFLAGS="$save_CPPFLAGS"
1025 LDFLAGS="$save_LDFLAGS"
1027 if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
1028 X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
1031 # need DRM libs, -lpthread, etc.
1032 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1033 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1037 # This is outside the case (above) so that it is invoked even for non-GLX
1039 AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
1040 test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
1042 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1043 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1044 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1045 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1047 AC_SUBST([GL_LIB_DEPS])
1048 AC_SUBST([GL_PC_REQ_PRIV])
1049 AC_SUBST([GL_PC_LIB_PRIV])
1050 AC_SUBST([GL_PC_CFLAGS])
1051 AC_SUBST([DRI_PC_REQ_PRIV])
1052 AC_SUBST([GLESv1_CM_LIB_DEPS])
1053 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1054 AC_SUBST([GLESv2_LIB_DEPS])
1055 AC_SUBST([GLESv2_PC_LIB_PRIV])
1057 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1058 AC_SUBST([GLAPI_LIB_DEPS])
1061 dnl Setup default DRI CFLAGS
1062 DRI_CFLAGS='$(CFLAGS)'
1063 DRI_CXXFLAGS='$(CXXFLAGS)'
1064 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1065 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1067 if test "x$enable_dri" = xyes ; then
1068 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1069 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1070 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1071 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1072 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1073 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1074 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1076 AC_SUBST([DRICORE_LIBS])
1077 AC_SUBST([DRICORE_GLSL_LIBS])
1078 AC_SUBST([DRICORE_LIB_DEPS])
1079 AC_SUBST([DRI_CXXFLAGS])
1080 AC_SUBST([DRI_CFLAGS])
1081 AC_SUBST([MESA_MODULES])
1083 AC_SUBST([HAVE_XF86VIDMODE])
1088 case "x$enable_glx$enable_xlib_glx" in
1090 DEFINES="$DEFINES -DUSE_XSHM"
1093 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1094 if test "x$driglx_direct" = xyes; then
1095 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1104 AC_ARG_ENABLE([glx-tls],
1105 [AS_HELP_STRING([--enable-glx-tls],
1106 [enable TLS support in GLX @<:@default=disabled@:>@])],
1107 [GLX_USE_TLS="$enableval"],
1109 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1111 AS_IF([test "x$GLX_USE_TLS" = xyes],
1112 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1117 dnl Directory for DRI drivers
1118 AC_ARG_WITH([dri-driverdir],
1119 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1120 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1121 [DRI_DRIVER_INSTALL_DIR="$withval"],
1122 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1123 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1124 dnl Extra search path for DRI drivers
1125 AC_ARG_WITH([dri-searchpath],
1126 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1127 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1128 [DRI_DRIVER_SEARCH_DIR="$withval"],
1129 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1130 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1131 dnl Which drivers to build - default is chosen by platform
1132 AC_ARG_WITH([dri-drivers],
1133 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1134 [comma delimited DRI drivers list, e.g.
1135 "swrast,i965,radeon" @<:@default=auto@:>@])],
1136 [with_dri_drivers="$withval"],
1137 [with_dri_drivers=yes])
1138 if test "x$with_dri_drivers" = x; then
1142 dnl If $with_dri_drivers is yes, directories will be added through
1145 case "$with_dri_drivers" in
1148 # classic DRI drivers require FEATURE_GL to build
1149 if test "x$enable_opengl" = xyes; then
1154 # verify the requested driver directories exist
1155 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1156 for driver in $dri_drivers; do
1157 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1158 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1160 DRI_DIRS="$dri_drivers"
1161 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1162 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1167 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1168 if test "x$enable_dri" = xyes; then
1169 # Platform specific settings and drivers to build
1172 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1173 DEFINES="$DEFINES -DHAVE_ALIAS"
1177 if test "x$DRI_DIRS" = "xyes"; then
1178 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1182 # Build only the drivers for cards that exist on PowerPC.
1183 if test "x$DRI_DIRS" = "xyes"; then
1184 DRI_DIRS="r200 radeon swrast"
1188 # Build only the drivers for cards that exist on sparc
1189 if test "x$DRI_DIRS" = "xyes"; then
1190 DRI_DIRS="r200 radeon swrast"
1195 freebsd* | dragonfly* | *netbsd*)
1196 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1197 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1199 if test "x$DRI_DIRS" = "xyes"; then
1200 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1204 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1205 DEFINES="$DEFINES -DHAVE_ALIAS"
1208 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1211 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1212 if test "x$DRI_DIRS" = "xyes"; then
1219 if test "x$DRI_DIRS" = "xyes"; then
1220 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1223 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1226 if test "x$enable_dri" = xyes; then
1229 AC_ARG_WITH([expat],
1230 [AS_HELP_STRING([--with-expat=DIR],
1231 [expat install directory])],[
1232 EXPAT_INCLUDES="-I$withval/include"
1233 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1234 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1235 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1237 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1238 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1239 [AC_MSG_ERROR([Expat required for DRI.])])
1242 # libdrm is required for all except swrast
1243 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1244 if test "x$have_libdrm" != xyes; then
1245 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1249 # put all the necessary libs together
1250 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1252 AC_SUBST([DRI_DIRS])
1253 AC_SUBST([EXPAT_INCLUDES])
1254 AC_SUBST([DRI_LIB_DEPS])
1258 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1260 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1276 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1277 HAVE_NOUVEAU_DRI=yes;
1283 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1285 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1288 HAVE_RADEON_DRI=yes;
1299 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
1300 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1301 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
1302 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
1303 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
1306 dnl OSMesa configuration
1309 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1310 AC_ARG_WITH([osmesa-bits],
1311 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1312 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1313 [osmesa_bits="$withval"],
1315 if test "x$osmesa_bits" != x8; then
1316 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1317 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1321 case "x$osmesa_bits" in
1323 OSMESA_LIB="${OSMESA_LIB}"
1326 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1327 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1330 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1334 if test "x$enable_osmesa" = xyes; then
1335 # only link libraries with osmesa if shared
1336 if test "$enable_static" = no; then
1337 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1342 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1344 AC_SUBST([OSMESA_LIB_DEPS])
1345 AC_SUBST([OSMESA_MESA_DEPS])
1346 AC_SUBST([OSMESA_PC_REQ])
1347 AC_SUBST([OSMESA_PC_LIB_PRIV])
1350 dnl gbm configuration
1352 if test "x$enable_gbm" = xauto; then
1353 case "$with_egl_platforms" in
1360 if test "x$enable_gbm" = xyes; then
1361 SRC_DIRS="$SRC_DIRS gbm"
1364 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1365 AC_MSG_ERROR([gbm needs udev]))
1366 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1368 if test "x$enable_dri" = xyes; then
1369 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1372 AC_SUBST([GBM_LIB_DEPS])
1373 AC_SUBST([GBM_BACKEND_DIRS])
1374 GBM_PC_REQ_PRIV="libudev"
1375 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1377 AC_SUBST([GBM_PC_REQ_PRIV])
1378 AC_SUBST([GBM_PC_LIB_PRIV])
1379 AC_SUBST([GBM_PC_CFLAGS])
1382 dnl EGL configuration
1386 if test "x$enable_egl" = xyes; then
1387 SRC_DIRS="$SRC_DIRS egl"
1388 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1391 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1393 if test "$enable_static" != yes; then
1394 # build egl_glx when libGL is built
1395 if test "x$enable_glx" = xyes; then
1396 EGL_DRIVERS_DIRS="glx"
1399 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1400 [have_libudev=yes],[have_libudev=no])
1401 if test "$have_libudev" = yes; then
1402 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1404 if test "x$enable_dri" = xyes; then
1405 # build egl_dri2 when xcb-dri2 is available
1406 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1407 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1409 if test "$have_xcb_dri2" = yes; then
1410 EGL_DRIVER_DRI2=dri2
1411 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1412 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1413 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1414 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1418 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1421 AC_SUBST([EGL_LIB_DEPS])
1422 AC_SUBST([EGL_DRIVERS_DIRS])
1425 dnl EGL Gallium configuration
1427 if test "x$enable_gallium_egl" = xyes; then
1428 if test "x$with_gallium_drivers" = x; then
1429 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1431 if test "x$enable_egl" = xno; then
1432 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1434 if test "x$have_libdrm" != xyes; then
1435 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1438 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1439 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1444 dnl gbm Gallium configuration
1446 if test "x$enable_gallium_gbm" = xauto; then
1447 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1449 enable_gallium_gbm=yes ;;
1451 enable_gallium_gbm=no ;;
1454 if test "x$enable_gallium_gbm" = xyes; then
1455 if test "x$with_gallium_drivers" = x; then
1456 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1458 if test "x$enable_gbm" = xno; then
1459 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1461 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1462 if test "x$enable_dri" = xno; then
1463 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1466 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1467 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1472 dnl X.Org DDX configuration
1474 if test "x$enable_xorg" = xyes; then
1475 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1476 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1477 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1478 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1479 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1480 HAVE_XEXTPROTO_71="no")
1481 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1486 dnl XA configuration
1488 if test "x$enable_xa" = xyes; then
1491 AC_CHECK_PROG(NM, nm, "nm")
1492 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1493 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1497 if test "x$enable_xa" = xyes; then
1498 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1506 dnl OpenVG configuration
1510 if test "x$enable_openvg" = xyes; then
1511 if test "x$enable_egl" = xno; then
1512 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1514 if test "x$with_gallium_drivers" = x; then
1515 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1517 if test "x$enable_gallium_egl" = xno; then
1518 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1521 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1522 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1523 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1524 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1529 dnl D3D1X configuration
1532 if test "x$enable_d3d1x" = xyes; then
1533 if test "x$with_gallium_drivers" = x; then
1534 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1537 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1542 dnl Gallium G3DVL configuration
1544 AC_ARG_ENABLE([gallium-g3dvl],
1545 [AS_HELP_STRING([--enable-gallium-g3dvl],
1546 [build gallium g3dvl @<:@default=disabled@:>@])],
1547 [enable_gallium_g3dvl="$enableval"],
1548 [enable_gallium_g3dvl=no])
1549 if test "x$enable_gallium_g3dvl" = xyes; then
1550 if test "x$with_gallium_drivers" = x; then
1551 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1554 if test "x$enable_xvmc" = xauto; then
1555 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1558 if test "x$enable_vdpau" = xauto; then
1559 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1562 if test "x$enable_va" = xauto; then
1563 #don't enable vaapi state tracker even if package exists
1564 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1569 if test "x$enable_xvmc" = xyes; then
1570 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1571 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1575 if test "x$enable_vdpau" = xyes; then
1576 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1577 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1581 if test "x$enable_va" = xyes; then
1582 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1583 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1584 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1589 dnl GLU configuration
1591 AC_ARG_ENABLE([glu],
1592 [AS_HELP_STRING([--disable-glu],
1593 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1594 [enable_glu="$enableval"],
1597 if test "x$enable_glu" = xyes; then
1598 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1599 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1604 if test "x$enable_glu" = xyes; then
1605 SRC_DIRS="$SRC_DIRS glu"
1607 if test "x$enable_glx" = xno; then
1608 # Link libGLU to libOSMesa instead of libGL
1611 if test "$enable_static" = no; then
1612 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1617 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1619 GLU_PC_LIB_PRIV="-lm"
1620 if test "$enable_static" = no; then
1622 GLU_MESA_DEPS='-l$(GL_LIB)'
1629 if test "$enable_static" = no; then
1630 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1632 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1633 AC_SUBST([GLU_LIB_DEPS])
1634 AC_SUBST([GLU_MESA_DEPS])
1635 AC_SUBST([GLU_PC_REQ])
1636 AC_SUBST([GLU_PC_REQ_PRIV])
1637 AC_SUBST([GLU_PC_LIB_PRIV])
1638 AC_SUBST([GLU_PC_CFLAGS])
1640 AC_SUBST([PROGRAM_DIRS])
1643 dnl Gallium configuration
1645 if test "x$with_gallium_drivers" != x; then
1646 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1649 AC_SUBST([LLVM_CFLAGS])
1650 AC_SUBST([LLVM_LIBS])
1651 AC_SUBST([LLVM_LDFLAGS])
1652 AC_SUBST([LLVM_VERSION])
1654 case "x$enable_opengl$enable_gles1$enable_gles2" in
1656 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1660 AC_SUBST([VG_LIB_DEPS])
1661 AC_SUBST([EGL_CLIENT_APIS])
1663 AC_ARG_WITH([egl-platforms],
1664 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1665 [comma delimited native platforms libEGL supports, e.g.
1666 "x11,drm" @<:@default=auto@:>@])],
1667 [with_egl_platforms="$withval"],
1668 [with_egl_platforms=yes])
1671 WAYLAND_EGL_LIB_DEPS=""
1673 case "$with_egl_platforms" in
1675 if test "x$enable_egl" = xyes; then
1680 if test "x$enable_egl" != xyes; then
1681 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1683 # verify the requested driver directories exist
1684 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1685 for plat in $egl_platforms; do
1686 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1687 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1688 if test "$plat" = "fbdev"; then
1689 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1691 if test "$plat" = "null"; then
1692 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1694 if test "$plat" = "wayland"; then
1695 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1696 [AC_MSG_ERROR([cannot find libwayland-client])])
1697 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1698 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1700 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1701 AC_MSG_ERROR([EGL platform drm needs gbm])
1703 case "$plat$have_libudev" in
1705 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1708 EGL_PLATFORMS="$egl_platforms"
1711 AC_SUBST([EGL_PLATFORMS])
1713 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1714 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1715 WAYLAND_EGL_PC_LIB_PRIV=
1716 WAYLAND_EGL_PC_CFLAGS=
1718 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1719 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1720 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1723 AC_ARG_WITH([egl-driver-dir],
1724 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1725 [directory for EGL drivers [[default=${libdir}/egl]]])],
1726 [EGL_DRIVER_INSTALL_DIR="$withval"],
1727 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1728 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1730 AC_ARG_WITH([xorg-driver-dir],
1731 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1732 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1733 [XORG_DRIVER_INSTALL_DIR="$withval"],
1734 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1735 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1737 AC_ARG_WITH([max-width],
1738 [AS_HELP_STRING([--with-max-width=N],
1739 [Maximum framebuffer width (4096)])],
1740 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1741 AS_IF([test "${withval}" -gt "4096"],
1742 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1744 AC_ARG_WITH([max-height],
1745 [AS_HELP_STRING([--with-max-height=N],
1746 [Maximum framebuffer height (4096)])],
1747 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1748 AS_IF([test "${withval}" -gt "4096"],
1749 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1755 AC_ARG_ENABLE([gallium-llvm],
1756 [AS_HELP_STRING([--enable-gallium-llvm],
1757 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1758 [enable_gallium_llvm="$enableval"],
1759 [enable_gallium_llvm=auto])
1760 if test "x$with_gallium_drivers" = x; then
1761 enable_gallium_llvm=no
1763 if test "x$enable_gallium_llvm" = xauto; then
1765 i*86|x86_64) enable_gallium_llvm=yes;;
1768 if test "x$enable_gallium_llvm" = xyes; then
1769 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1771 if test "x$LLVM_CONFIG" != xno; then
1772 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1773 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1774 LLVM_LIBS="`$LLVM_CONFIG --libs`"
1776 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1777 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1786 dnl Directory for VDPAU libs
1787 AC_ARG_WITH([vdpau-libdir],
1788 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1789 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1790 [VDPAU_LIB_INSTALL_DIR="$withval"],
1791 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1792 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1794 dnl Directory for VA libs
1795 AC_ARG_WITH([va-libdir],
1796 [AS_HELP_STRING([--with-va-libdir=DIR],
1797 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1798 [VA_LIB_INSTALL_DIR="$withval"],
1799 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1800 AC_SUBST([VA_LIB_INSTALL_DIR])
1803 dnl Gallium helper functions
1805 gallium_check_st() {
1806 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1807 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1808 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1809 if test "x$have_libdrm" != xyes; then
1810 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1812 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1814 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1815 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1817 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1818 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1820 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1821 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1823 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1824 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1825 NEED_G3DVL_DRI="yes"
1827 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1828 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1829 NEED_G3DVL_DRI="yes"
1831 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1832 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1833 NEED_G3DVL_DRI="yes"
1837 gallium_require_llvm() {
1838 if test "x$MESA_LLVM" = x0; then
1840 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1846 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1847 if test "x$with_gallium_drivers" != x; then
1848 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1849 for driver in $gallium_drivers; do
1852 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1853 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1856 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1857 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1858 if test "x$MESA_LLVM" = x1; then
1859 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1861 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1862 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1865 gallium_require_llvm "Gallium R300"
1866 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1867 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1870 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1871 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1874 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1875 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1876 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1879 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1880 if test "x$MESA_LLVM" = x1; then
1881 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1884 if test "x$HAVE_ST_DRI" = xyes; then
1885 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1887 if test "x$HAVE_ST_VDPAU" = xyes; then
1888 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1890 if test "x$HAVE_ST_XVMC" = xyes; then
1891 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1893 if test "x$HAVE_ST_VA" = xyes; then
1894 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1896 if test "x$HAVE_ST_VDPAU" = xyes ||
1897 test "x$HAVE_ST_XVMC" = xyes ||
1898 test "x$HAVE_ST_VA" = xyes; then
1899 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1900 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1905 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1911 if test "x$NEED_G3DVL_DRI" = xyes; then
1912 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1915 dnl prepend CORE_DIRS to SRC_DIRS
1916 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1918 dnl Restore LDFLAGS and CPPFLAGS
1919 LDFLAGS="$_SAVE_LDFLAGS"
1920 CPPFLAGS="$_SAVE_CPPFLAGS"
1922 dnl Add user CFLAGS and CXXFLAGS
1923 CFLAGS="$CFLAGS $USER_CFLAGS"
1924 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1926 dnl Substitute the config
1927 AC_CONFIG_FILES([configs/autoconf
1928 src/mesa/drivers/dri/i915/Makefile
1929 src/mesa/drivers/dri/i965/Makefile
1930 src/mesa/drivers/dri/nouveau/Makefile
1931 src/mesa/drivers/dri/r200/Makefile
1932 src/mesa/drivers/dri/radeon/Makefile
1934 tests/glx/Makefile])
1936 dnl Replace the configs/current symlink
1937 AC_CONFIG_COMMANDS([configs],[
1938 if test -f configs/current || test -L configs/current; then
1939 rm -f configs/current
1941 ln -s autoconf configs/current
1944 dnl Sort the dirs alphabetically
1945 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1946 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1947 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1948 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1953 dnl Output some configuration info for the user
1956 echo " prefix: $prefix"
1957 echo " exec_prefix: $exec_prefix"
1958 echo " libdir: $libdir"
1959 echo " includedir: $includedir"
1963 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1964 echo " OpenVG: $enable_openvg"
1968 if test "x$enable_osmesa" != xno; then
1969 echo " OSMesa: lib$OSMESA_LIB"
1974 if test "x$enable_dri" != xno; then
1975 # cleanup the drivers var
1976 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1977 if test "x$DRI_DIRS" = x; then
1978 echo " DRI drivers: no"
1980 echo " DRI drivers: $dri_dirs"
1982 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1985 case "x$enable_glx$enable_xlib_glx" in
1987 echo " GLX: Xlib-based"
1990 echo " GLX: DRI-based"
1993 echo " GLX: $enable_glx"
1998 echo " GLU: $enable_glu"
2002 echo " EGL: $enable_egl"
2003 if test "$enable_egl" = yes; then
2004 echo " EGL platforms: $EGL_PLATFORMS"
2007 for d in $EGL_DRIVERS_DIRS; do
2008 egl_drivers="$egl_drivers builtin:egl_$d"
2011 if test "x$HAVE_ST_EGL" = xyes; then
2012 echo " EGL drivers: ${egl_drivers} egl_gallium"
2013 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2015 echo " EGL drivers: $egl_drivers"
2020 if test "x$MESA_LLVM" = x1; then
2022 echo " llvm-config: $LLVM_CONFIG"
2023 echo " llvm-version: $LLVM_VERSION"
2029 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2030 echo " Gallium: yes"
2031 echo " Gallium dirs: $GALLIUM_DIRS"
2032 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2033 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2034 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2035 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2043 echo " Shared libs: $enable_shared"
2044 echo " Static libs: $enable_static"
2046 dnl Compiler options
2047 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2048 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2049 $SED 's/^ *//;s/ */ /;s/ *$//'`
2050 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2051 $SED 's/^ *//;s/ */ /;s/ *$//'`
2052 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2054 echo " CFLAGS: $cflags"
2055 echo " CXXFLAGS: $cxxflags"
2056 echo " Macros: $defines"
2058 echo " PYTHON2: $PYTHON2"
2061 echo " Run '${MAKE-make}' to build Mesa"