1 dnl Process this file with autoconf to create configure.
5 dnl Versioning - scrape the version from configs/default
6 m4_define([mesa_version],
7 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
8 m4_ifval(mesa_version,,
9 [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
11 dnl Tell the user about autoconf.html in the --help output
12 m4_divert_once([HELP_END], [
13 See docs/autoconf.html for more details on the options for Mesa.])
15 AC_INIT([Mesa],[mesa_version],
16 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17 AC_CONFIG_AUX_DIR([bin])
19 AM_INIT_AUTOMAKE([foreign])
21 # Support silent build rules, requires at least automake-1.11. Disable
22 # by either passing --disable-silent-rules to configure or passing V=1
24 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
27 LT_INIT([disable-static])
29 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
31 USER_CXXFLAGS="$CXXFLAGS"
33 dnl Versions for external dependencies
34 LIBDRM_REQUIRED=2.4.24
35 LIBDRM_RADEON_REQUIRED=2.4.24
36 LIBDRM_INTEL_REQUIRED=2.4.30
37 LIBDRM_NOUVEAU_REQUIRED=0.6
38 DRI2PROTO_REQUIRED=2.6
39 GLPROTO_REQUIRED=1.4.14
40 LIBDRM_XORG_REQUIRED=2.4.24
41 LIBKMS_XORG_REQUIRED=1.0.0
47 AC_CHECK_PROGS([MAKE], [gmake make])
48 AC_CHECK_PROGS([PYTHON2], [python2 python])
51 AC_PATH_PROG([MKDEP], [makedepend])
53 if test "x$MKDEP" = "x"; then
54 AC_MSG_ERROR([makedepend is required to build Mesa])
58 AC_PATH_PROG([YACC_INST], $YACC)
59 if test ! -f "$srcdir/src/glsl/glcpp/glcpp-parse.y"; then
60 if test -z "$YACC_INST"; then
61 AC_MSG_ERROR([yacc not found - unable to compile glcpp-parse.y])
66 dnl Our fallback install-sh is a symlink to minstall. Use the existing
67 dnl configuration in that case.
69 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
71 dnl We need a POSIX shell for parts of the build. Assume we have one
75 # Solaris /bin/sh is too old/non-POSIX compliant
76 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
81 AC_PATH_PROG([GTESTCONFIG], [gtest-config])
82 if test "x$GTESTCONFIG" != "x"; then
83 GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
84 GTEST_LIBS=`gtest-config --ldflags --libs`
85 AC_SUBST([GTEST_CFLAGS])
86 AC_SUBST([GTEST_LIBS])
91 AM_CONDITIONAL(HAVE_GTEST, test x$HAVE_GTEST = xyes)
93 dnl clang is mostly GCC-compatible, but its version is much lower,
94 dnl so we have to check for it.
95 AC_MSG_CHECKING([if compiling with clang])
98 [AC_LANG_PROGRAM([], [[
103 [acv_mesa_CLANG=yes], [acv_mesa_CLANG=no])
105 AC_MSG_RESULT([$acv_mesa_CLANG])
107 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
108 dnl versions are explictly not supported.
109 if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
110 AC_MSG_CHECKING([whether gcc version is sufficient])
114 GCC_VERSION=`$CC -dumpversion`
115 if test $? -eq 0; then
116 major=`echo $GCC_VERSION | cut -d. -f1`
117 minor=`echo $GCC_VERSION | cut -d. -f2`
120 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
122 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
129 MKDEP_OPTIONS=-fdepend
130 dnl Ask gcc where it's keeping its secret headers
131 if test "x$GCC" = xyes; then
132 for dir in include include-fixed; do
133 GCC_INCLUDES=`$CC -print-file-name=$dir`
134 if test "x$GCC_INCLUDES" != x && \
135 test "$GCC_INCLUDES" != "$dir" && \
136 test -d "$GCC_INCLUDES"; then
137 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
141 AC_SUBST([MKDEP_OPTIONS])
143 dnl Make sure the pkg-config macros are defined
144 m4_ifndef([PKG_PROG_PKG_CONFIG],
145 [m4_fatal([Could not locate the pkg-config autoconf macros.
146 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
147 are in a different location, try setting the environment variable
148 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
149 PKG_PROG_PKG_CONFIG()
151 dnl LIB_DIR - library basename
152 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
155 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
156 _SAVE_LDFLAGS="$LDFLAGS"
157 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
158 AC_SUBST([EXTRA_LIB_PATH])
160 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
161 _SAVE_CPPFLAGS="$CPPFLAGS"
162 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
163 AC_SUBST([X11_INCLUDES])
170 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
173 DEFINES="$DEFINES -DPTHREADS -DSVR4"
176 DEFINES="$DEFINES -DPTHREADS"
180 dnl Add flags for gcc and g++
181 if test "x$GCC" = xyes; then
182 CFLAGS="$CFLAGS -Wall -std=c99"
184 # Enable -Werror=implicit-function-declaration and
185 # -Werror=missing-prototypes, if available, or otherwise, just
186 # -Wmissing-prototypes. This is particularly useful to avoid
187 # generating a loadable driver module that has undefined symbols.
188 save_CFLAGS="$CFLAGS"
189 AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
190 CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
191 CFLAGS="$CFLAGS -Werror=missing-prototypes"
192 AC_LINK_IFELSE([AC_LANG_PROGRAM()],
193 AC_MSG_RESULT([yes]),
194 [CFLAGS="$save_CFLAGS -Wmissing-prototypes";
195 AC_MSG_RESULT([no])]);
197 # Enable -fvisibility=hidden if using a gcc that supports it
198 save_CFLAGS="$CFLAGS"
199 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
200 VISIBILITY_CFLAGS="-fvisibility=hidden"
201 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
202 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
203 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
205 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
208 # Work around aliasing bugs - developers should comment this out
209 CFLAGS="$CFLAGS -fno-strict-aliasing"
211 # gcc's builtin memcmp is slower than glibc's
212 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
213 CFLAGS="$CFLAGS -fno-builtin-memcmp"
215 if test "x$GXX" = xyes; then
216 CXXFLAGS="$CXXFLAGS -Wall"
218 # Enable -fvisibility=hidden if using a gcc that supports it
219 save_CXXFLAGS="$CXXFLAGS"
220 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
221 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
222 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
224 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
225 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
228 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
229 CXXFLAGS=$save_CXXFLAGS
231 # Work around aliasing bugs - developers should comment this out
232 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
234 # gcc's builtin memcmp is slower than glibc's
235 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
236 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
239 dnl even if the compiler appears to support it, using visibility attributes isn't
240 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
244 VISIBILITY_CXXFLAGS=""
248 AC_SUBST([VISIBILITY_CFLAGS])
249 AC_SUBST([VISIBILITY_CXXFLAGS])
251 dnl These should be unnecessary, but let the user set them if they want
252 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
253 Default is to use CFLAGS.])
254 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
255 compiler. Default is to use CFLAGS.])
256 AC_SUBST([OPT_FLAGS])
257 AC_SUBST([ARCH_FLAGS])
260 dnl Hacks to enable 32 or 64 bit build
262 AC_ARG_ENABLE([32-bit],
263 [AS_HELP_STRING([--enable-32-bit],
264 [build 32-bit libraries @<:@default=auto@:>@])],
265 [enable_32bit="$enableval"],
268 if test "x$enable_32bit" = xyes; then
269 if test "x$GCC" = xyes; then
270 CFLAGS="$CFLAGS -m32"
271 ARCH_FLAGS="$ARCH_FLAGS -m32"
273 if test "x$GXX" = xyes; then
274 CXXFLAGS="$CXXFLAGS -m32"
277 AC_ARG_ENABLE([64-bit],
278 [AS_HELP_STRING([--enable-64-bit],
279 [build 64-bit libraries @<:@default=auto@:>@])],
280 [enable_64bit="$enableval"],
283 if test "x$enable_64bit" = xyes; then
284 if test "x$GCC" = xyes; then
285 CFLAGS="$CFLAGS -m64"
287 if test "x$GXX" = xyes; then
288 CXXFLAGS="$CXXFLAGS -m64"
292 dnl Can't have static and shared libraries, default to static if user
293 dnl explicitly requested. If both disabled, set to static since shared
294 dnl was explicitly requested.
295 case "x$enable_static$enable_shared" in
297 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
301 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
309 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
310 if test "$enable_static" = yes; then
311 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
313 AC_SUBST([MKLIB_OPTIONS])
316 dnl other compiler options
318 AC_ARG_ENABLE([debug],
319 [AS_HELP_STRING([--enable-debug],
320 [use debug compiler flags and macros @<:@default=disabled@:>@])],
321 [enable_debug="$enableval"],
324 if test "x$enable_debug" = xyes; then
325 DEFINES="$DEFINES -DDEBUG"
326 if test "x$GCC" = xyes; then
329 if test "x$GXX" = xyes; then
330 CXXFLAGS="$CXXFLAGS -g"
337 LIB_PREFIX_GLOB='lib'
338 LIB_VERSION_SEPARATOR='.'
339 if test "$enable_static" = yes; then
344 LIB_EXTENSION='dylib' ;;
346 dnl prefix can be 'cyg' or 'lib'
347 LIB_PREFIX_GLOB='???'
348 LIB_VERSION_SEPARATOR='-'
349 LIB_EXTENSION='dll' ;;
353 LIB_EXTENSION='so' ;;
358 dnl Mangled Mesa support
360 AC_ARG_ENABLE([mangling],
361 [AS_HELP_STRING([--enable-mangling],
362 [enable mangled symbols and library name @<:@default=disabled@:>@])],
363 [enable_mangling="${enableval}"],
369 if test "x${enable_mangling}" = "xyes" ; then
370 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
373 OSMESA_LIB="MangledOSMesa"
377 AC_SUBST([OSMESA_LIB])
380 dnl potentially-infringing-but-nobody-knows-for-sure stuff
382 AC_ARG_ENABLE([texture-float],
383 [AS_HELP_STRING([--enable-texture-float],
384 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
385 [enable_texture_float="$enableval"],
386 [enable_texture_float=no]
388 if test "x$enable_texture_float" = xyes; then
389 AC_MSG_WARN([Floating-point textures enabled.])
390 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
391 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
394 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
395 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
396 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
397 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
398 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
399 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
400 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
401 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
403 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
404 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
405 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
406 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
407 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
408 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
409 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
410 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
411 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
413 AC_SUBST([GL_LIB_NAME])
414 AC_SUBST([GLU_LIB_NAME])
415 AC_SUBST([OSMESA_LIB_NAME])
416 AC_SUBST([EGL_LIB_NAME])
417 AC_SUBST([GLESv1_CM_LIB_NAME])
418 AC_SUBST([GLESv2_LIB_NAME])
419 AC_SUBST([VG_LIB_NAME])
420 AC_SUBST([GLAPI_LIB_NAME])
422 AC_SUBST([GL_LIB_GLOB])
423 AC_SUBST([GLU_LIB_GLOB])
424 AC_SUBST([OSMESA_LIB_GLOB])
425 AC_SUBST([EGL_LIB_GLOB])
426 AC_SUBST([GLESv1_CM_LIB_GLOB])
427 AC_SUBST([GLESv2_LIB_GLOB])
428 AC_SUBST([VG_LIB_GLOB])
429 AC_SUBST([GLAPI_LIB_GLOB])
432 dnl Arch/platform-specific settings
435 [AS_HELP_STRING([--disable-asm],
436 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
437 [enable_asm="$enableval"],
444 AC_MSG_CHECKING([whether to enable assembly])
445 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
446 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
447 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
451 AC_MSG_RESULT([no, cross compiling])
455 # check for supported arches
456 if test "x$enable_asm" = xyes; then
460 linux* | *freebsd* | dragonfly* | *netbsd*)
461 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
467 linux* | *freebsd* | dragonfly* | *netbsd*)
468 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
490 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
491 MESA_ASM_SOURCES='$(X86_SOURCES)'
492 GLAPI_ASM_SOURCES='$(X86_API)'
493 AC_MSG_RESULT([yes, x86])
496 ASM_FLAGS="-DUSE_X86_64_ASM"
497 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
498 GLAPI_ASM_SOURCES='$(X86-64_API)'
499 AC_MSG_RESULT([yes, x86_64])
502 ASM_FLAGS="-DUSE_SPARC_ASM"
503 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
504 GLAPI_ASM_SOURCES='$(SPARC_API)'
505 AC_MSG_RESULT([yes, sparc])
508 AC_MSG_RESULT([no, platform not supported])
512 AC_SUBST([ASM_FLAGS])
513 AC_SUBST([MESA_ASM_SOURCES])
514 AC_SUBST([GLAPI_ASM_SOURCES])
519 dnl Check to see if dlopen is in default libraries (like Solaris, which
520 dnl has it in libc), or if libdl is needed to get it.
521 AC_CHECK_FUNC([dlopen], [],
522 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
523 AC_SUBST([DLOPEN_LIBS])
525 dnl See if posix_memalign is available
526 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
528 dnl SELinux awareness.
529 AC_ARG_ENABLE([selinux],
530 [AS_HELP_STRING([--enable-selinux],
531 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
532 [MESA_SELINUX="$enableval"],
534 if test "x$enable_selinux" = "xyes"; then
535 AC_CHECK_HEADER([selinux/selinux.h],[],
536 [AC_MSG_ERROR([SELinux headers not found])])
537 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
538 [AC_MSG_ERROR([SELinux library not found])])
539 SELINUX_LIBS="-lselinux"
540 DEFINES="$DEFINES -DMESA_SELINUX"
544 AC_ARG_ENABLE([opengl],
545 [AS_HELP_STRING([--disable-opengl],
546 [disable support for standard OpenGL API @<:@default=no@:>@])],
547 [enable_opengl="$enableval"],
549 AC_ARG_ENABLE([gles1],
550 [AS_HELP_STRING([--enable-gles1],
551 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
552 [enable_gles1="$enableval"],
554 AC_ARG_ENABLE([gles2],
555 [AS_HELP_STRING([--enable-gles2],
556 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
557 [enable_gles2="$enableval"],
559 AC_ARG_ENABLE([openvg],
560 [AS_HELP_STRING([--enable-openvg],
561 [enable support for OpenVG API @<:@default=no@:>@])],
562 [enable_openvg="$enableval"],
566 [AS_HELP_STRING([--enable-dri],
567 [enable DRI modules @<:@default=auto@:>@])],
568 [enable_dri="$enableval"],
571 [AS_HELP_STRING([--enable-glx],
572 [enable GLX library @<:@default=auto@:>@])],
573 [enable_glx="$enableval"],
575 AC_ARG_ENABLE([osmesa],
576 [AS_HELP_STRING([--enable-osmesa],
577 [enable OSMesa library @<:@default=auto@:>@])],
578 [enable_osmesa="$enableval"],
579 [enable_osmesa=auto])
581 [AS_HELP_STRING([--disable-egl],
582 [disable EGL library @<:@default=enabled@:>@])],
583 [enable_egl="$enableval"],
586 AC_ARG_ENABLE([xorg],
587 [AS_HELP_STRING([--enable-xorg],
588 [enable support for X.Org DDX API @<:@default=no@:>@])],
589 [enable_xorg="$enableval"],
592 [AS_HELP_STRING([--enable-xa],
593 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
594 [enable_xa="$enableval"],
596 AC_ARG_ENABLE([d3d1x],
597 [AS_HELP_STRING([--enable-d3d1x],
598 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
599 [enable_d3d1x="$enableval"],
602 [AS_HELP_STRING([--enable-gbm],
603 [enable gbm library @<:@default=auto@:>@])],
604 [enable_gbm="$enableval"],
607 AC_ARG_ENABLE([xvmc],
608 [AS_HELP_STRING([--enable-xvmc],
609 [enable xvmc library @<:@default=auto@:>@])],
610 [enable_xvmc="$enableval"],
612 AC_ARG_ENABLE([vdpau],
613 [AS_HELP_STRING([--enable-vdpau],
614 [enable vdpau library @<:@default=auto@:>@])],
615 [enable_vdpau="$enableval"],
618 [AS_HELP_STRING([--enable-va],
619 [enable va library @<:@default=auto@:>@])],
620 [enable_va="$enableval"],
623 AC_ARG_ENABLE([xlib_glx],
624 [AS_HELP_STRING([--enable-xlib-glx],
625 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
626 [enable_xlib_glx="$enableval"],
627 [enable_xlib_glx=auto])
628 AC_ARG_ENABLE([gallium_egl],
629 [AS_HELP_STRING([--enable-gallium-egl],
630 [enable optional EGL state tracker (not required
631 for EGL support in Gallium with OpenGL and OpenGL ES)
632 @<:@default=disable@:>@])],
633 [enable_gallium_egl="$enableval"],
634 [enable_gallium_egl=no])
635 AC_ARG_ENABLE([gallium_gbm],
636 [AS_HELP_STRING([--enable-gallium-gbm],
637 [enable optional gbm state tracker (not required for
638 gbm support in Gallium)
639 @<:@default=auto@:>@])],
640 [enable_gallium_gbm="$enableval"],
641 [enable_gallium_gbm=auto])
643 # Option for Gallium drivers
644 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
646 AC_ARG_WITH([gallium-drivers],
647 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
648 [comma delimited Gallium drivers list, e.g.
649 "i915,nouveau,r300,r600,svga,swrast"
650 @<:@default=r300,r600,swrast@:>@])],
651 [with_gallium_drivers="$withval"],
652 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
654 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
655 # here so that the script doesn't choke on an unknown driver name later.
656 case "$with_gallium_drivers" in
657 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
658 no) with_gallium_drivers='' ;;
661 if test "x$enable_opengl" = xno -a \
662 "x$enable_gles1" = xno -a \
663 "x$enable_gles2" = xno -a \
664 "x$enable_openvg" = xno -a \
665 "x$enable_xorg" = xno -a \
666 "x$enable_xa" = xno -a \
667 "x$enable_d3d1x" = xno -a \
668 "x$enable_xvmc" = xno -a \
669 "x$enable_vdpau" = xno -a \
670 "x$enable_va" = xno; then
671 AC_MSG_ERROR([at least one API should be enabled])
675 if test "x$enable_opengl" = xno; then
676 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
678 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
680 if test "x$enable_gles1" = xyes; then
681 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
683 if test "x$enable_gles2" = xyes; then
684 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
686 AC_SUBST([API_DEFINES])
688 AC_ARG_ENABLE([shared-glapi],
689 [AS_HELP_STRING([--enable-shared-glapi],
690 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
691 [enable_shared_glapi="$enableval"],
692 [enable_shared_glapi=no])
695 if test "x$enable_shared_glapi" = xyes; then
698 AC_SUBST([SHARED_GLAPI])
701 dnl Driver configuration. Options are xlib, dri and osmesa right now.
702 dnl More later: fbdev, ...
704 default_driver="xlib"
709 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
712 *freebsd* | dragonfly* | *netbsd*)
714 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
719 if test "x$enable_opengl" = xno; then
723 AC_ARG_WITH([driver],
724 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
725 [mesa_driver="$withval"],
727 dnl Check for valid option
728 case "x$mesa_driver" in
729 xxlib|xdri|xosmesa|xno)
730 if test "x$enable_dri" != xauto -o \
731 "x$enable_glx" != xauto -o \
732 "x$enable_osmesa" != xauto -o \
733 "x$enable_xlib_glx" != xauto; then
734 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
738 mesa_driver="$default_driver"
741 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
745 # map $mesa_driver to APIs
746 if test "x$enable_dri" = xauto; then
747 case "x$mesa_driver" in
748 xdri) enable_dri=yes ;;
753 if test "x$enable_glx" = xauto; then
754 case "x$mesa_driver" in
755 xdri|xxlib) enable_glx=yes ;;
760 if test "x$enable_osmesa" = xauto; then
761 case "x$mesa_driver" in
762 xxlib|xosmesa) enable_osmesa=yes ;;
763 *) enable_osmesa=no ;;
767 if test "x$enable_xlib_glx" = xauto; then
768 case "x$mesa_driver" in
769 xxlib) enable_xlib_glx=yes ;;
770 *) enable_xlib_glx=no ;;
774 if test "x$enable_glx" = xno; then
778 AM_CONDITIONAL(HAVE_DRI, test x"$enable_dri" = xyes)
781 dnl Driver specific build directories
784 dnl this variable will be prepended to SRC_DIRS and is not exported
789 GALLIUM_DIRS="auxiliary drivers state_trackers"
790 GALLIUM_TARGET_DIRS=""
791 GALLIUM_WINSYS_DIRS="sw"
792 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
793 GALLIUM_STATE_TRACKERS_DIRS=""
795 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
796 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
798 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
802 # build glapi if OpenGL is enabled
803 if test "x$enable_opengl" = xyes; then
804 CORE_DIRS="$CORE_DIRS mapi/glapi"
807 # build es1api if OpenGL ES 1.x is enabled
808 if test "x$enable_gles1" = xyes; then
809 CORE_DIRS="$CORE_DIRS mapi/es1api"
812 # build es2api if OpenGL ES 2.x is enabled
813 if test "x$enable_gles2" = xyes; then
814 CORE_DIRS="$CORE_DIRS mapi/es2api"
817 # build glsl and mesa if OpenGL or OpenGL ES is enabled
818 case "x$enable_opengl$enable_gles1$enable_gles2" in
820 CORE_DIRS="$CORE_DIRS glsl mesa"
824 case "x$enable_glx$enable_xlib_glx" in
826 DRIVER_DIRS="$DRIVER_DIRS x11"
827 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
828 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
829 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
830 HAVE_WINSYS_XLIB="yes"
834 SRC_DIRS="$SRC_DIRS glx"
838 if test "x$enable_dri" = xyes; then
839 DRIVER_DIRS="$DRIVER_DIRS dri"
841 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
842 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
846 if test "x$enable_osmesa" = xyes; then
847 # the empty space matters for osmesa... (see src/mesa/Makefile)
848 if test -n "$DRIVER_DIRS"; then
849 DRIVER_DIRS="$DRIVER_DIRS osmesa"
857 AC_SUBST([DRIVER_DIRS])
858 AC_SUBST([GALLIUM_DIRS])
859 AC_SUBST([GALLIUM_TARGET_DIRS])
860 AC_SUBST([GALLIUM_WINSYS_DIRS])
861 AC_SUBST([GALLIUM_DRIVERS_DIRS])
862 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
863 AC_SUBST([MESA_LLVM])
866 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
867 [have_libdrm=yes], [have_libdrm=no])
869 if test "x$enable_dri" = xyes; then
870 # DRI must be shared, I think
871 if test "$enable_static" = yes; then
872 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
875 # not a hard requirement as swrast does not depend on it
876 if test "x$have_libdrm" = xyes; then
877 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
882 dnl Find out if X is available. The variable have_x is set if libX11 is
883 dnl found to mimic AC_PATH_XTRA.
885 if test -n "$PKG_CONFIG"; then
886 AC_MSG_CHECKING([pkg-config files for X11 are available])
887 PKG_CHECK_EXISTS([x11],[
893 AC_MSG_RESULT([$x11_pkgconfig])
897 dnl Use the autoconf macro if no pkg-config files
898 if test "$x11_pkgconfig" = yes; then
899 PKG_CHECK_MODULES([X11], [x11])
902 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
903 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
904 AC_SUBST([X11_CFLAGS])
908 dnl Try to tell the user that the --x-* options are only used when
909 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
910 m4_divert_once([HELP_BEGIN],
911 [These options are only used when the X libraries cannot be found by the
912 pkg-config utility.])
914 dnl We need X for xlib and dri, so bomb now if it's not found
915 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
916 AC_MSG_ERROR([X11 development libraries needed for GLX])
919 if test "x$enable_glx" = xyes; then
920 DEFINES="$DEFINES -DUSE_XCB"
923 dnl Direct rendering or just indirect rendering
926 dnl Disable by default on GNU/Hurd
927 driglx_direct_default="no"
930 dnl Disable by default on cygwin
931 driglx_direct_default="no"
934 driglx_direct_default="yes"
937 AC_ARG_ENABLE([driglx-direct],
938 [AS_HELP_STRING([--disable-driglx-direct],
939 [enable direct rendering in GLX and EGL for DRI \
940 @<:@default=auto@:>@])],
941 [driglx_direct="$enableval"],
942 [driglx_direct="$driglx_direct_default"])
945 dnl libGL configuration per driver
947 case "x$enable_glx$enable_xlib_glx" in
950 if test "$x11_pkgconfig" = yes; then
951 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
952 GL_PC_REQ_PRIV="x11 xext"
953 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
954 GL_LIB_DEPS="$XLIBGL_LIBS"
956 # should check these...
957 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
958 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
959 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
960 GL_PC_CFLAGS="$X11_INCLUDES"
962 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
963 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
967 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
968 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
969 if test x"$driglx_direct" = xyes; then
970 if test "x$have_libdrm" != xyes; then
971 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
973 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
974 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
977 # find the DRI deps for libGL
978 if test "$x11_pkgconfig" = yes; then
979 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
981 # add xf86vidmode if available
982 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
983 if test "$HAVE_XF86VIDMODE" = yes ; then
984 dri_modules="$dri_modules xxf86vm"
987 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
988 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
989 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
990 GL_LIB_DEPS="$DRIGL_LIBS"
992 # should check these...
993 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
994 if test "x$HAVE_XF86VIDMODE" == xyes; then
995 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
997 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
999 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1000 GL_PC_CFLAGS="$X11_INCLUDES"
1002 # XCB can only be used from pkg-config
1003 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1004 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1005 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1006 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1009 # Check to see if the xcb-glx library is new enough to support
1010 # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
1012 save_CPPFLAGS="$CPPFLAGS"
1013 save_LDFLAGS="$LDFLAGS"
1014 CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
1015 LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
1016 AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
1017 [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
1018 [HAVE_XCB_GLX_CREATE_CONTEXT=no])
1019 CPPFLAGS="$save_CPPFLAGS"
1020 LDFLAGS="$save_LDFLAGS"
1022 if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
1023 X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
1026 # need DRM libs, -lpthread, etc.
1027 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1028 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1032 # This is outside the case (above) so that it is invoked even for non-GLX
1034 AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
1035 test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
1037 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1038 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1039 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1040 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1042 AC_SUBST([GL_LIB_DEPS])
1043 AC_SUBST([GL_PC_REQ_PRIV])
1044 AC_SUBST([GL_PC_LIB_PRIV])
1045 AC_SUBST([GL_PC_CFLAGS])
1046 AC_SUBST([DRI_PC_REQ_PRIV])
1047 AC_SUBST([GLESv1_CM_LIB_DEPS])
1048 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1049 AC_SUBST([GLESv2_LIB_DEPS])
1050 AC_SUBST([GLESv2_PC_LIB_PRIV])
1052 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1053 AC_SUBST([GLAPI_LIB_DEPS])
1056 dnl Setup default DRI CFLAGS
1057 DRI_CFLAGS='$(CFLAGS)'
1058 DRI_CXXFLAGS='$(CXXFLAGS)'
1059 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1060 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1062 if test "x$enable_dri" = xyes && test "x$driglx_direct" = xyes ; then
1063 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1064 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1065 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1066 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1067 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1068 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1069 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1071 AC_SUBST([DRICORE_LIBS])
1072 AC_SUBST([DRICORE_GLSL_LIBS])
1073 AC_SUBST([DRICORE_LIB_DEPS])
1074 AC_SUBST([DRI_CXXFLAGS])
1075 AC_SUBST([DRI_CFLAGS])
1076 AC_SUBST([MESA_MODULES])
1078 AC_SUBST([HAVE_XF86VIDMODE])
1083 case "x$enable_glx$enable_xlib_glx" in
1085 DEFINES="$DEFINES -DUSE_XSHM"
1088 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1089 if test "x$driglx_direct" = xyes; then
1090 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1099 AC_ARG_ENABLE([glx-tls],
1100 [AS_HELP_STRING([--enable-glx-tls],
1101 [enable TLS support in GLX @<:@default=disabled@:>@])],
1102 [GLX_USE_TLS="$enableval"],
1104 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1106 AS_IF([test "x$GLX_USE_TLS" = xyes],
1107 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1112 dnl Directory for DRI drivers
1113 AC_ARG_WITH([dri-driverdir],
1114 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1115 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1116 [DRI_DRIVER_INSTALL_DIR="$withval"],
1117 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1118 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1119 dnl Extra search path for DRI drivers
1120 AC_ARG_WITH([dri-searchpath],
1121 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1122 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1123 [DRI_DRIVER_SEARCH_DIR="$withval"],
1124 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1125 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1126 dnl Which drivers to build - default is chosen by platform
1127 AC_ARG_WITH([dri-drivers],
1128 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1129 [comma delimited DRI drivers list, e.g.
1130 "swrast,i965,radeon" @<:@default=auto@:>@])],
1131 [with_dri_drivers="$withval"],
1132 [with_dri_drivers=yes])
1133 if test "x$with_dri_drivers" = x; then
1137 dnl If $with_dri_drivers is yes, directories will be added through
1140 case "$with_dri_drivers" in
1143 # classic DRI drivers require FEATURE_GL to build
1144 if test "x$enable_opengl" = xyes; then
1149 # verify the requested driver directories exist
1150 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1151 for driver in $dri_drivers; do
1152 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1153 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1155 DRI_DIRS="$dri_drivers"
1156 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1157 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1162 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1163 if test "x$enable_dri" = xyes; then
1164 # Platform specific settings and drivers to build
1167 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1168 DEFINES="$DEFINES -DHAVE_ALIAS"
1172 if test "x$DRI_DIRS" = "xyes"; then
1173 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1177 # Build only the drivers for cards that exist on PowerPC.
1178 if test "x$DRI_DIRS" = "xyes"; then
1179 DRI_DIRS="r200 radeon swrast"
1183 # Build only the drivers for cards that exist on sparc
1184 if test "x$DRI_DIRS" = "xyes"; then
1185 DRI_DIRS="r200 radeon swrast"
1190 freebsd* | dragonfly* | *netbsd*)
1191 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1192 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1194 if test "x$DRI_DIRS" = "xyes"; then
1195 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1199 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1200 DEFINES="$DEFINES -DHAVE_ALIAS"
1203 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1206 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1207 if test "x$DRI_DIRS" = "xyes"; then
1214 if test "x$DRI_DIRS" = "xyes"; then
1215 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1218 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1221 if test "x$enable_dri" = xyes; then
1224 AC_ARG_WITH([expat],
1225 [AS_HELP_STRING([--with-expat=DIR],
1226 [expat install directory])],[
1227 EXPAT_INCLUDES="-I$withval/include"
1228 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1229 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1230 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1232 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1234 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1235 [AC_MSG_ERROR([Expat required for DRI.])])
1239 # libdrm is required for all except swrast
1240 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1241 if test "x$have_libdrm" != xyes; then
1242 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1246 # put all the necessary libs together
1247 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1249 AC_SUBST([DRI_DIRS])
1250 AC_SUBST([EXPAT_INCLUDES])
1251 AC_SUBST([DRI_LIB_DEPS])
1255 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1257 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1273 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1274 HAVE_NOUVEAU_DRI=yes;
1280 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1282 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1285 HAVE_RADEON_DRI=yes;
1298 HAVE_SWRAST_DRI=yes;
1302 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
1303 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1304 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
1305 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
1306 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
1307 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
1310 dnl OSMesa configuration
1313 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1314 AC_ARG_WITH([osmesa-bits],
1315 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1316 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1317 [osmesa_bits="$withval"],
1319 if test "x$osmesa_bits" != x8; then
1320 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1321 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1325 case "x$osmesa_bits" in
1327 OSMESA_LIB="${OSMESA_LIB}"
1330 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1331 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1334 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1338 if test "x$enable_osmesa" = xyes; then
1339 # only link libraries with osmesa if shared
1340 if test "$enable_static" = no; then
1341 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1346 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1348 AC_SUBST([OSMESA_LIB_DEPS])
1349 AC_SUBST([OSMESA_MESA_DEPS])
1350 AC_SUBST([OSMESA_PC_REQ])
1351 AC_SUBST([OSMESA_PC_LIB_PRIV])
1354 dnl gbm configuration
1356 if test "x$enable_gbm" = xauto; then
1357 case "$with_egl_platforms" in
1364 if test "x$enable_gbm" = xyes; then
1365 SRC_DIRS="$SRC_DIRS gbm"
1367 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1368 AC_MSG_ERROR([gbm needs udev]))
1370 if test "x$enable_dri" = xyes; then
1371 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1372 if test "$SHARED_GLAPI" -eq 0; then
1373 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1377 GBM_PC_REQ_PRIV="libudev"
1378 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1379 AC_SUBST([GBM_PC_REQ_PRIV])
1380 AC_SUBST([GBM_PC_LIB_PRIV])
1383 dnl EGL configuration
1387 if test "x$enable_egl" = xyes; then
1388 SRC_DIRS="$SRC_DIRS egl"
1389 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1392 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1394 if test "$enable_static" != yes; then
1395 # build egl_glx when libGL is built
1396 if test "x$enable_glx" = xyes; then
1397 EGL_DRIVERS_DIRS="glx"
1400 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1401 [have_libudev=yes],[have_libudev=no])
1402 if test "$have_libudev" = yes; then
1403 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1405 if test "x$enable_dri" = xyes; then
1406 # build egl_dri2 when xcb-dri2 is available
1407 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1408 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1410 if test "$have_xcb_dri2" = yes; then
1411 EGL_DRIVER_DRI2=dri2
1412 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1413 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1414 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1415 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1419 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1422 AC_SUBST([EGL_LIB_DEPS])
1423 AC_SUBST([EGL_DRIVERS_DIRS])
1426 dnl EGL Gallium configuration
1428 if test "x$enable_gallium_egl" = xyes; then
1429 if test "x$with_gallium_drivers" = x; then
1430 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1432 if test "x$enable_egl" = xno; then
1433 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1435 if test "x$have_libdrm" != xyes; then
1436 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1439 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1440 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1445 dnl gbm Gallium configuration
1447 if test "x$enable_gallium_gbm" = xauto; then
1448 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1450 enable_gallium_gbm=yes ;;
1452 enable_gallium_gbm=no ;;
1455 if test "x$enable_gallium_gbm" = xyes; then
1456 if test "x$with_gallium_drivers" = x; then
1457 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1459 if test "x$enable_gbm" = xno; then
1460 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1462 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1463 if test "x$enable_dri" = xno; then
1464 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1467 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1468 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1473 dnl X.Org DDX configuration
1475 if test "x$enable_xorg" = xyes; then
1476 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1477 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1478 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1479 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1480 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1481 HAVE_XEXTPROTO_71="no")
1482 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1487 dnl XA configuration
1489 if test "x$enable_xa" = xyes; then
1492 AC_CHECK_PROG(NM, nm, "nm")
1493 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1494 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1498 if test "x$enable_xa" = xyes; then
1499 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1507 dnl OpenVG configuration
1511 if test "x$enable_openvg" = xyes; then
1512 if test "x$enable_egl" = xno; then
1513 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1515 if test "x$with_gallium_drivers" = x; then
1516 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1518 if test "x$enable_gallium_egl" = xno; then
1519 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1522 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1523 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1524 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1525 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1530 dnl D3D1X configuration
1533 if test "x$enable_d3d1x" = xyes; then
1534 if test "x$with_gallium_drivers" = x; then
1535 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1538 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1543 dnl Gallium G3DVL configuration
1545 AC_ARG_ENABLE([gallium-g3dvl],
1546 [AS_HELP_STRING([--enable-gallium-g3dvl],
1547 [build gallium g3dvl @<:@default=disabled@:>@])],
1548 [enable_gallium_g3dvl="$enableval"],
1549 [enable_gallium_g3dvl=no])
1550 if test "x$enable_gallium_g3dvl" = xyes; then
1551 if test "x$with_gallium_drivers" = x; then
1552 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1555 if test "x$enable_xvmc" = xauto; then
1556 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1559 if test "x$enable_vdpau" = xauto; then
1560 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1563 if test "x$enable_va" = xauto; then
1564 #don't enable vaapi state tracker even if package exists
1565 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1570 if test "x$enable_xvmc" = xyes; then
1571 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6])
1572 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1576 if test "x$enable_vdpau" = xyes; then
1577 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1578 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1582 if test "x$enable_va" = xyes; then
1583 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1584 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1585 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1590 dnl GLU configuration
1592 AC_ARG_ENABLE([glu],
1593 [AS_HELP_STRING([--disable-glu],
1594 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1595 [enable_glu="$enableval"],
1598 if test "x$enable_glu" = xyes; then
1599 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1600 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1605 if test "x$enable_glu" = xyes; then
1606 SRC_DIRS="$SRC_DIRS glu"
1608 if test "x$enable_glx" = xno; then
1609 # Link libGLU to libOSMesa instead of libGL
1612 if test "$enable_static" = no; then
1613 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1618 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1620 GLU_PC_LIB_PRIV="-lm"
1621 if test "$enable_static" = no; then
1623 GLU_MESA_DEPS='-l$(GL_LIB)'
1630 if test "$enable_static" = no; then
1631 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1633 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1634 AC_SUBST([GLU_LIB_DEPS])
1635 AC_SUBST([GLU_MESA_DEPS])
1636 AC_SUBST([GLU_PC_REQ])
1637 AC_SUBST([GLU_PC_REQ_PRIV])
1638 AC_SUBST([GLU_PC_LIB_PRIV])
1639 AC_SUBST([GLU_PC_CFLAGS])
1641 AC_SUBST([PROGRAM_DIRS])
1644 dnl Gallium configuration
1646 if test "x$with_gallium_drivers" != x; then
1647 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1650 AC_SUBST([LLVM_CFLAGS])
1651 AC_SUBST([LLVM_LIBS])
1652 AC_SUBST([LLVM_LDFLAGS])
1653 AC_SUBST([LLVM_VERSION])
1655 case "x$enable_opengl$enable_gles1$enable_gles2" in
1657 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1661 AC_SUBST([VG_LIB_DEPS])
1662 AC_SUBST([EGL_CLIENT_APIS])
1664 AC_ARG_WITH([egl-platforms],
1665 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1666 [comma delimited native platforms libEGL supports, e.g.
1667 "x11,drm" @<:@default=auto@:>@])],
1668 [with_egl_platforms="$withval"],
1669 [with_egl_platforms=yes])
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' does not 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 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1699 m4_ifdef([WAYLAND_SCANNER_RULES],
1700 [WAYLAND_SCANNER_RULES(['$(top_srcdir)/src/egl/wayland/wayland-drm/protocol'])])
1702 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1703 AC_MSG_ERROR([EGL platform drm needs gbm])
1705 case "$plat$have_libudev" in
1707 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1710 EGL_PLATFORMS="$egl_platforms"
1713 AC_SUBST([EGL_PLATFORMS])
1715 AC_ARG_WITH([egl-driver-dir],
1716 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1717 [directory for EGL drivers [[default=${libdir}/egl]]])],
1718 [EGL_DRIVER_INSTALL_DIR="$withval"],
1719 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1720 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1722 AC_ARG_WITH([xorg-driver-dir],
1723 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1724 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1725 [XORG_DRIVER_INSTALL_DIR="$withval"],
1726 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1727 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1729 AC_ARG_WITH([max-width],
1730 [AS_HELP_STRING([--with-max-width=N],
1731 [Maximum framebuffer width (4096)])],
1732 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1733 AS_IF([test "${withval}" -gt "4096"],
1734 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1736 AC_ARG_WITH([max-height],
1737 [AS_HELP_STRING([--with-max-height=N],
1738 [Maximum framebuffer height (4096)])],
1739 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1740 AS_IF([test "${withval}" -gt "4096"],
1741 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1747 AC_ARG_ENABLE([gallium-llvm],
1748 [AS_HELP_STRING([--enable-gallium-llvm],
1749 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1750 [enable_gallium_llvm="$enableval"],
1751 [enable_gallium_llvm=auto])
1752 if test "x$with_gallium_drivers" = x; then
1753 enable_gallium_llvm=no
1755 if test "x$enable_gallium_llvm" = xauto; then
1757 i*86|x86_64) enable_gallium_llvm=yes;;
1760 if test "x$enable_gallium_llvm" = xyes; then
1761 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1763 if test "x$LLVM_CONFIG" != xno; then
1764 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1765 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1766 LLVM_LIBS="`$LLVM_CONFIG --libs engine bitwriter`"
1768 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1769 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1778 dnl Directory for VDPAU libs
1779 AC_ARG_WITH([vdpau-libdir],
1780 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1781 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1782 [VDPAU_LIB_INSTALL_DIR="$withval"],
1783 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1784 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1786 dnl Directory for VA libs
1787 AC_ARG_WITH([va-libdir],
1788 [AS_HELP_STRING([--with-va-libdir=DIR],
1789 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1790 [VA_LIB_INSTALL_DIR="$withval"],
1791 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1792 AC_SUBST([VA_LIB_INSTALL_DIR])
1795 dnl Gallium helper functions
1797 gallium_check_st() {
1798 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1799 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1800 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1801 if test "x$have_libdrm" != xyes; then
1802 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1804 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1806 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1807 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1809 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1810 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1812 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1813 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1815 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1816 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1817 NEED_G3DVL_DRI="yes"
1819 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1820 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1821 NEED_G3DVL_DRI="yes"
1823 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1824 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1825 NEED_G3DVL_DRI="yes"
1829 gallium_require_llvm() {
1830 if test "x$MESA_LLVM" = x0; then
1832 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1838 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1839 if test "x$with_gallium_drivers" != x; then
1840 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1841 for driver in $gallium_drivers; do
1844 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1845 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1848 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1849 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1850 if test "x$MESA_LLVM" = x1; then
1851 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1853 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1854 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1857 gallium_require_llvm "Gallium R300"
1858 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1859 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1862 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1863 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1866 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1867 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1868 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1871 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1872 if test "x$MESA_LLVM" = x1; then
1873 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1876 if test "x$HAVE_ST_DRI" = xyes; then
1877 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1879 if test "x$HAVE_ST_VDPAU" = xyes; then
1880 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1882 if test "x$HAVE_ST_XVMC" = xyes; then
1883 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1885 if test "x$HAVE_ST_VA" = xyes; then
1886 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1888 if test "x$HAVE_ST_VDPAU" = xyes ||
1889 test "x$HAVE_ST_XVMC" = xyes ||
1890 test "x$HAVE_ST_VA" = xyes; then
1891 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1892 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1897 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1903 if test "x$NEED_G3DVL_DRI" = xyes; then
1904 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1907 dnl prepend CORE_DIRS to SRC_DIRS
1908 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1910 dnl Restore LDFLAGS and CPPFLAGS
1911 LDFLAGS="$_SAVE_LDFLAGS"
1912 CPPFLAGS="$_SAVE_CPPFLAGS"
1914 dnl Add user CFLAGS and CXXFLAGS
1915 CFLAGS="$CFLAGS $USER_CFLAGS"
1916 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1918 dnl Substitute the config
1919 AC_CONFIG_FILES([configs/autoconf
1922 src/egl/wayland/Makefile
1923 src/egl/wayland/wayland-egl/Makefile
1924 src/egl/wayland/wayland-egl/wayland-egl.pc
1925 src/egl/wayland/wayland-drm/Makefile
1926 src/mesa/drivers/dri/dri.pc
1927 src/mesa/drivers/dri/Makefile
1928 src/mesa/drivers/dri/common/Makefile
1929 src/mesa/drivers/dri/i915/Makefile
1930 src/mesa/drivers/dri/i965/Makefile
1931 src/mesa/drivers/dri/nouveau/Makefile
1932 src/mesa/drivers/dri/r200/Makefile
1933 src/mesa/drivers/dri/radeon/Makefile
1934 src/mesa/drivers/dri/swrast/Makefile
1936 tests/glx/Makefile])
1938 dnl Replace the configs/current symlink
1939 AC_CONFIG_COMMANDS([configs],[
1940 if test -f configs/current || test -L configs/current; then
1941 rm -f configs/current
1943 ln -s autoconf configs/current
1946 dnl Sort the dirs alphabetically
1947 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1948 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1949 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1950 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1955 dnl Output some configuration info for the user
1958 echo " prefix: $prefix"
1959 echo " exec_prefix: $exec_prefix"
1960 echo " libdir: $libdir"
1961 echo " includedir: $includedir"
1965 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1966 echo " OpenVG: $enable_openvg"
1970 if test "x$enable_osmesa" != xno; then
1971 echo " OSMesa: lib$OSMESA_LIB"
1976 if test "x$enable_dri" != xno; then
1977 # cleanup the drivers var
1978 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1979 if test "x$DRI_DIRS" = x; then
1980 echo " DRI drivers: no"
1982 echo " DRI drivers: $dri_dirs"
1984 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1987 case "x$enable_glx$enable_xlib_glx" in
1989 echo " GLX: Xlib-based"
1992 echo " GLX: DRI-based"
1995 echo " GLX: $enable_glx"
2000 echo " GLU: $enable_glu"
2004 echo " EGL: $enable_egl"
2005 if test "$enable_egl" = yes; then
2006 echo " EGL platforms: $EGL_PLATFORMS"
2009 for d in $EGL_DRIVERS_DIRS; do
2010 egl_drivers="$egl_drivers builtin:egl_$d"
2013 if test "x$HAVE_ST_EGL" = xyes; then
2014 echo " EGL drivers: ${egl_drivers} egl_gallium"
2015 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2017 echo " EGL drivers: $egl_drivers"
2022 if test "x$MESA_LLVM" = x1; then
2024 echo " llvm-config: $LLVM_CONFIG"
2025 echo " llvm-version: $LLVM_VERSION"
2031 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2032 echo " Gallium: yes"
2033 echo " Gallium dirs: $GALLIUM_DIRS"
2034 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2035 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2036 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2037 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2045 echo " Shared libs: $enable_shared"
2046 echo " Static libs: $enable_static"
2048 dnl Compiler options
2049 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2050 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2051 $SED 's/^ *//;s/ */ /;s/ *$//'`
2052 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2053 $SED 's/^ *//;s/ */ /;s/ *$//'`
2054 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2056 echo " CFLAGS: $cflags"
2057 echo " CXXFLAGS: $cxxflags"
2058 echo " Macros: $defines"
2060 echo " PYTHON2: $PYTHON2"
2063 echo " Run '${MAKE-make}' to build Mesa"