1 dnl Process this file with autoconf to create configure.
5 dnl Tell the user about autoconf.html in the --help output
6 m4_divert_once([HELP_END], [
7 See docs/autoconf.html for more details on the options for Mesa.])
9 AC_INIT([Mesa], [8.1.0],
10 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
11 AC_CONFIG_AUX_DIR([bin])
13 AM_INIT_AUTOMAKE([foreign])
15 dnl http://people.gnome.org/~walters/docs/build-api.txt
16 dnl We don't support srcdir != builddir.
17 echo \#buildapi-variable-no-builddir >/dev/null
19 # Support silent build rules, requires at least automake-1.11. Disable
20 # by either passing --disable-silent-rules to configure or passing V=1
22 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
24 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
27 LT_INIT([disable-static])
29 dnl Versions for external dependencies
30 LIBDRM_REQUIRED=2.4.24
31 LIBDRM_RADEON_REQUIRED=2.4.38
32 LIBDRM_INTEL_REQUIRED=2.4.37
33 LIBDRM_NVVIEUX_REQUIRED=2.4.33
34 LIBDRM_NOUVEAU_REQUIRED=2.4.33
35 DRI2PROTO_REQUIRED=2.6
36 GLPROTO_REQUIRED=1.4.14
37 LIBDRM_XORG_REQUIRED=2.4.24
38 LIBKMS_XORG_REQUIRED=1.0.0
46 AC_CHECK_PROGS([MAKE], [gmake make])
47 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])
57 AC_PATH_PROG([YACC_INST], $YACC)
58 if test ! -f "$srcdir/src/glsl/glcpp/glcpp-parse.y"; then
59 if test -z "$YACC_INST"; then
60 AC_MSG_ERROR([yacc not found - unable to compile glcpp-parse.y])
65 AC_PATH_PROG([PERL], [perl])
67 AC_CHECK_PROG(INDENT, indent, indent, cat)
68 if test "x$INDENT" != "xcat"; then
69 AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -T GLubyte -T GLbyte -T Bool')
72 dnl Our fallback install-sh is a symlink to minstall. Use the existing
73 dnl configuration in that case.
75 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
77 dnl We need a POSIX shell for parts of the build. Assume we have one
81 # Solaris /bin/sh is too old/non-POSIX compliant
82 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
87 dnl clang is mostly GCC-compatible, but its version is much lower,
88 dnl so we have to check for it.
89 AC_MSG_CHECKING([if compiling with clang])
92 [AC_LANG_PROGRAM([], [[
97 [acv_mesa_CLANG=yes], [acv_mesa_CLANG=no])
99 AC_MSG_RESULT([$acv_mesa_CLANG])
101 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
102 dnl versions are explictly not supported.
103 if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
104 AC_MSG_CHECKING([whether gcc version is sufficient])
108 GCC_VERSION=`$CC -dumpversion`
109 if test $? -eq 0; then
110 GCC_VERSION_MAJOR=`echo $GCC_VERSION | cut -d. -f1`
111 GCC_VERSION_MINOR=`echo $GCC_VERSION | cut -d. -f2`
114 if test $GCC_VERSION_MAJOR -lt 3 -o $GCC_VERSION_MAJOR -eq 3 -a $GCC_VERSION_MINOR -lt 3 ; then
116 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
123 MKDEP_OPTIONS=-fdepend
124 dnl Ask gcc where it's keeping its secret headers
125 if test "x$GCC" = xyes; then
126 for dir in include include-fixed; do
127 GCC_INCLUDES=`$CC -print-file-name=$dir`
128 if test "x$GCC_INCLUDES" != x && \
129 test "$GCC_INCLUDES" != "$dir" && \
130 test -d "$GCC_INCLUDES"; then
131 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
135 AC_SUBST([MKDEP_OPTIONS])
137 dnl Make sure the pkg-config macros are defined
138 m4_ifndef([PKG_PROG_PKG_CONFIG],
139 [m4_fatal([Could not locate the pkg-config autoconf macros.
140 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
141 are in a different location, try setting the environment variable
142 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
143 PKG_PROG_PKG_CONFIG()
145 dnl LIB_DIR - library basename
146 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
149 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
150 _SAVE_LDFLAGS="$LDFLAGS"
151 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
152 AC_SUBST([EXTRA_LIB_PATH])
154 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
155 _SAVE_CPPFLAGS="$CPPFLAGS"
156 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
157 AC_SUBST([X11_INCLUDES])
164 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
167 DEFINES="$DEFINES -DPTHREADS -DSVR4"
170 DEFINES="$DEFINES -DPTHREADS"
174 dnl Add flags for gcc and g++
175 if test "x$GCC" = xyes; then
176 CFLAGS="$CFLAGS -Wall -std=c99"
178 # Enable -Werror=implicit-function-declaration and
179 # -Werror=missing-prototypes, if available, or otherwise, just
180 # -Wmissing-prototypes. This is particularly useful to avoid
181 # generating a loadable driver module that has undefined symbols.
182 save_CFLAGS="$CFLAGS"
183 AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
184 CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
185 CFLAGS="$CFLAGS -Werror=missing-prototypes"
186 AC_LINK_IFELSE([AC_LANG_PROGRAM()],
187 AC_MSG_RESULT([yes]),
188 [CFLAGS="$save_CFLAGS -Wmissing-prototypes";
189 AC_MSG_RESULT([no])]);
191 # Enable -fvisibility=hidden if using a gcc that supports it
192 save_CFLAGS="$CFLAGS"
193 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
194 VISIBILITY_CFLAGS="-fvisibility=hidden"
195 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
196 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
197 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
199 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
202 # Work around aliasing bugs - developers should comment this out
203 CFLAGS="$CFLAGS -fno-strict-aliasing"
205 # gcc's builtin memcmp is slower than glibc's
206 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
207 CFLAGS="$CFLAGS -fno-builtin-memcmp"
209 if test "x$GXX" = xyes; then
210 CXXFLAGS="$CXXFLAGS -Wall"
212 # Enable -fvisibility=hidden if using a gcc that supports it
213 save_CXXFLAGS="$CXXFLAGS"
214 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
215 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
216 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
218 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
219 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
222 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
223 CXXFLAGS=$save_CXXFLAGS
225 # Work around aliasing bugs - developers should comment this out
226 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
228 # gcc's builtin memcmp is slower than glibc's
229 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
230 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
233 dnl even if the compiler appears to support it, using visibility attributes isn't
234 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
238 VISIBILITY_CXXFLAGS=""
242 AC_SUBST([VISIBILITY_CFLAGS])
243 AC_SUBST([VISIBILITY_CXXFLAGS])
246 dnl Hacks to enable 32 or 64 bit build
248 AC_ARG_ENABLE([32-bit],
249 [AS_HELP_STRING([--enable-32-bit],
250 [build 32-bit libraries @<:@default=auto@:>@])],
251 [enable_32bit="$enableval"],
254 if test "x$enable_32bit" = xyes; then
255 if test "x$GCC" = xyes; then
256 CFLAGS="$CFLAGS -m32"
257 CCASFLAGS="$CCASFLAGS -m32"
259 if test "x$GXX" = xyes; then
260 CXXFLAGS="$CXXFLAGS -m32"
263 AC_ARG_ENABLE([64-bit],
264 [AS_HELP_STRING([--enable-64-bit],
265 [build 64-bit libraries @<:@default=auto@:>@])],
266 [enable_64bit="$enableval"],
269 if test "x$enable_64bit" = xyes; then
270 if test "x$GCC" = xyes; then
271 CFLAGS="$CFLAGS -m64"
273 if test "x$GXX" = xyes; then
274 CXXFLAGS="$CXXFLAGS -m64"
278 dnl Can't have static and shared libraries, default to static if user
279 dnl explicitly requested. If both disabled, set to static since shared
280 dnl was explicitly requested.
281 case "x$enable_static$enable_shared" in
283 AC_MSG_WARN([Cannot build static and shared libraries, disabling shared])
287 AC_MSG_WARN([Cannot disable both static and shared libraries, enabling static])
295 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
296 if test "$enable_static" = yes; then
297 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
299 AC_SUBST([MKLIB_OPTIONS])
302 dnl other compiler options
304 AC_ARG_ENABLE([debug],
305 [AS_HELP_STRING([--enable-debug],
306 [use debug compiler flags and macros @<:@default=disabled@:>@])],
307 [enable_debug="$enableval"],
310 if test "x$enable_debug" = xyes; then
311 DEFINES="$DEFINES -DDEBUG"
312 if test "x$GCC" = xyes; then
315 if test "x$GXX" = xyes; then
316 CXXFLAGS="$CXXFLAGS -g"
323 LIB_PREFIX_GLOB='lib'
324 LIB_VERSION_SEPARATOR='.'
325 if test "$enable_static" = yes; then
330 LIB_EXTENSION='dylib' ;;
332 dnl prefix can be 'cyg' or 'lib'
333 LIB_PREFIX_GLOB='???'
334 LIB_VERSION_SEPARATOR='-'
335 LIB_EXTENSION='dll' ;;
339 LIB_EXTENSION='so' ;;
342 AC_ARG_WITH([gl-lib-name],
343 [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
344 [specify GL library name @<:@default=GL@:>@])],
347 AC_ARG_WITH([glu-lib-name],
348 [AS_HELP_STRING([--with-glu-lib-name@<:@=NAME@:>@],
349 [specify GLU library name @<:@default=GLU@:>@])],
352 AC_ARG_WITH([osmesa-lib-name],
353 [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
354 [specify OSMesa library name @<:@default=OSMesa@:>@])],
355 [OSMESA_LIB=$withval],
357 AS_IF([test "x$GL_LIB" = xyes], [GL_LIB=GL])
358 AS_IF([test "x$GLU_LIB" = xyes], [GLU_LIB=GLU])
359 AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
362 dnl Mangled Mesa support
364 AC_ARG_ENABLE([mangling],
365 [AS_HELP_STRING([--enable-mangling],
366 [enable mangled symbols and library name @<:@default=disabled@:>@])],
367 [enable_mangling="${enableval}"],
370 if test "x${enable_mangling}" = "xyes" ; then
371 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
372 GL_LIB="Mangled${GL_LIB}"
373 GLU_LIB="Mangled${GLU_LIB}"
374 OSMESA_LIB="Mangled${OSMESA_LIB}"
378 AC_SUBST([OSMESA_LIB])
381 dnl potentially-infringing-but-nobody-knows-for-sure stuff
383 AC_ARG_ENABLE([texture-float],
384 [AS_HELP_STRING([--enable-texture-float],
385 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
386 [enable_texture_float="$enableval"],
387 [enable_texture_float=no]
389 if test "x$enable_texture_float" = xyes; then
390 AC_MSG_WARN([Floating-point textures enabled.])
391 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
392 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
395 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
396 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
397 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
398 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
399 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
400 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
401 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
402 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
404 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
405 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_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([EGL_LIB_GLOB])
425 AC_SUBST([GLESv1_CM_LIB_GLOB])
426 AC_SUBST([GLESv2_LIB_GLOB])
427 AC_SUBST([VG_LIB_GLOB])
428 AC_SUBST([GLAPI_LIB_GLOB])
431 dnl Arch/platform-specific settings
434 [AS_HELP_STRING([--disable-asm],
435 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
436 [enable_asm="$enableval"],
441 AC_MSG_CHECKING([whether to enable assembly])
442 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
443 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
444 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
448 AC_MSG_RESULT([no, cross compiling])
452 # check for supported arches
453 if test "x$enable_asm" = xyes; then
457 linux* | *freebsd* | dragonfly* | *netbsd*)
458 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
464 linux* | *freebsd* | dragonfly* | *netbsd*)
465 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
480 DEFINES="$DEFINES -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
481 MESA_ASM_FILES='$(X86_FILES)'
482 AC_MSG_RESULT([yes, x86])
485 DEFINES="$DEFINES -DUSE_X86_64_ASM"
486 MESA_ASM_FILES='$(X86_64_FILES)'
487 AC_MSG_RESULT([yes, x86_64])
490 DEFINES="$DEFINES -DUSE_SPARC_ASM"
491 MESA_ASM_FILES='$(SPARC_FILES)'
492 AC_MSG_RESULT([yes, sparc])
495 AC_MSG_RESULT([no, platform not supported])
499 AC_SUBST([MESA_ASM_FILES])
504 dnl Check to see if dlopen is in default libraries (like Solaris, which
505 dnl has it in libc), or if libdl is needed to get it.
506 AC_CHECK_FUNC([dlopen], [],
507 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
508 AC_SUBST([DLOPEN_LIBS])
510 dnl See if posix_memalign is available
511 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
513 dnl SELinux awareness.
514 AC_ARG_ENABLE([selinux],
515 [AS_HELP_STRING([--enable-selinux],
516 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
517 [MESA_SELINUX="$enableval"],
519 if test "x$enable_selinux" = "xyes"; then
520 AC_CHECK_HEADER([selinux/selinux.h],[],
521 [AC_MSG_ERROR([SELinux headers not found])])
522 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
523 [AC_MSG_ERROR([SELinux library not found])])
524 SELINUX_LIBS="-lselinux"
525 DEFINES="$DEFINES -DMESA_SELINUX"
529 AC_ARG_ENABLE([opengl],
530 [AS_HELP_STRING([--disable-opengl],
531 [disable support for standard OpenGL API @<:@default=no@:>@])],
532 [enable_opengl="$enableval"],
534 AC_ARG_ENABLE([gles1],
535 [AS_HELP_STRING([--enable-gles1],
536 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
537 [enable_gles1="$enableval"],
539 AC_ARG_ENABLE([gles2],
540 [AS_HELP_STRING([--enable-gles2],
541 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
542 [enable_gles2="$enableval"],
544 AC_ARG_ENABLE([openvg],
545 [AS_HELP_STRING([--enable-openvg],
546 [enable support for OpenVG API @<:@default=no@:>@])],
547 [enable_openvg="$enableval"],
551 [AS_HELP_STRING([--enable-dri],
552 [enable DRI modules @<:@default=auto@:>@])],
553 [enable_dri="$enableval"],
556 [AS_HELP_STRING([--enable-glx],
557 [enable GLX library @<:@default=auto@:>@])],
558 [enable_glx="$enableval"],
560 AC_ARG_ENABLE([osmesa],
561 [AS_HELP_STRING([--enable-osmesa],
562 [enable OSMesa library @<:@default=auto@:>@])],
563 [enable_osmesa="$enableval"],
564 [enable_osmesa=auto])
566 [AS_HELP_STRING([--disable-egl],
567 [disable EGL library @<:@default=enabled@:>@])],
568 [enable_egl="$enableval"],
571 AC_ARG_ENABLE([xorg],
572 [AS_HELP_STRING([--enable-xorg],
573 [enable support for X.Org DDX API @<:@default=no@:>@])],
574 [enable_xorg="$enableval"],
577 [AS_HELP_STRING([--enable-xa],
578 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
579 [enable_xa="$enableval"],
581 AC_ARG_ENABLE([d3d1x],
582 [AS_HELP_STRING([--enable-d3d1x],
583 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
584 [enable_d3d1x="$enableval"],
587 [AS_HELP_STRING([--enable-gbm],
588 [enable gbm library @<:@default=auto@:>@])],
589 [enable_gbm="$enableval"],
592 AC_ARG_ENABLE([xvmc],
593 [AS_HELP_STRING([--enable-xvmc],
594 [enable xvmc library @<:@default=auto@:>@])],
595 [enable_xvmc="$enableval"],
597 AC_ARG_ENABLE([vdpau],
598 [AS_HELP_STRING([--enable-vdpau],
599 [enable vdpau library @<:@default=auto@:>@])],
600 [enable_vdpau="$enableval"],
603 [AS_HELP_STRING([--enable-va],
604 [enable va library @<:@default=auto@:>@])],
605 [enable_va="$enableval"],
607 AC_ARG_ENABLE([opencl],
608 [AS_HELP_STRING([--enable-opencl],
609 [enable OpenCL library @<:@default=no@:>@])],
610 [enable_opencl="$enableval"],
612 AC_ARG_ENABLE([xlib_glx],
613 [AS_HELP_STRING([--enable-xlib-glx],
614 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
615 [enable_xlib_glx="$enableval"],
616 [enable_xlib_glx=auto])
617 AC_ARG_ENABLE([gallium_egl],
618 [AS_HELP_STRING([--enable-gallium-egl],
619 [enable optional EGL state tracker (not required
620 for EGL support in Gallium with OpenGL and OpenGL ES)
621 @<:@default=disable@:>@])],
622 [enable_gallium_egl="$enableval"],
623 [enable_gallium_egl=no])
624 AC_ARG_ENABLE([gallium_gbm],
625 [AS_HELP_STRING([--enable-gallium-gbm],
626 [enable optional gbm state tracker (not required for
627 gbm support in Gallium)
628 @<:@default=auto@:>@])],
629 [enable_gallium_gbm="$enableval"],
630 [enable_gallium_gbm=auto])
632 AC_ARG_ENABLE([r600-llvm-compiler],
633 [AS_HELP_STRING([--enable-r600-llvm-compiler],
634 [Enable experimental LLVM backend for graphics shaders @<:@default=disable@:>@])],
635 [enable_r600_llvm="$enableval"],
636 [enable_r600_llvm=no])
638 AC_ARG_ENABLE([gallium_tests],
639 [AS_HELP_STRING([--enable-gallium-tests],
640 [Enable optional Gallium tests) @<:@default=disable@:>@])],
641 [enable_gallium_tests="$enableval"],
642 [enable_gallium_tests=no])
644 # Option for Gallium drivers
645 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
647 AC_ARG_WITH([gallium-drivers],
648 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
649 [comma delimited Gallium drivers list, e.g.
650 "i915,nouveau,r300,r600,svga,swrast"
651 @<:@default=r300,r600,swrast@:>@])],
652 [with_gallium_drivers="$withval"],
653 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
655 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
656 # here so that the script doesn't choke on an unknown driver name later.
657 case "$with_gallium_drivers" in
658 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
659 no) with_gallium_drivers='' ;;
662 if test "x$enable_opengl" = xno -a \
663 "x$enable_gles1" = xno -a \
664 "x$enable_gles2" = xno -a \
665 "x$enable_openvg" = xno -a \
666 "x$enable_xorg" = xno -a \
667 "x$enable_xa" = xno -a \
668 "x$enable_d3d1x" = xno -a \
669 "x$enable_xvmc" = xno -a \
670 "x$enable_vdpau" = xno -a \
671 "x$enable_va" = xno -a \
672 "x$enable_opencl" = xno; then
673 AC_MSG_ERROR([at least one API should be enabled])
677 if test "x$enable_opengl" = xno; then
678 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
680 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
682 if test "x$enable_gles1" = xyes; then
683 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
685 if test "x$enable_gles2" = xyes; then
686 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
688 AC_SUBST([API_DEFINES])
690 AC_ARG_ENABLE([shared-glapi],
691 [AS_HELP_STRING([--enable-shared-glapi],
692 [Enable shared glapi for OpenGL @<:@default=yes@:>@])],
693 [enable_shared_glapi="$enableval"],
694 [enable_shared_glapi=yes])
697 if test "x$enable_shared_glapi" = xyes; then
699 # libGL will use libglapi for function lookups (IN_DRI_DRIVER means to use
701 DEFINES="$DEFINES -DIN_DRI_DRIVER"
702 SRC_DIRS="$SRC_DIRS mapi/shared-glapi"
704 AC_SUBST([SHARED_GLAPI])
705 AM_CONDITIONAL(HAVE_SHARED_GLAPI, test $SHARED_GLAPI = 1)
708 dnl Driver configuration. Options are xlib, dri and osmesa right now.
709 dnl More later: fbdev, ...
711 default_driver="xlib"
717 *freebsd* | dragonfly* | *netbsd*)
719 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
724 if test "x$enable_opengl" = xno; then
728 AC_ARG_WITH([driver],
729 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
730 [mesa_driver="$withval"],
732 dnl Check for valid option
733 case "x$mesa_driver" in
734 xxlib|xdri|xosmesa|xno)
735 if test "x$enable_dri" != xauto -o \
736 "x$enable_glx" != xauto -o \
737 "x$enable_osmesa" != xauto -o \
738 "x$enable_xlib_glx" != xauto; then
739 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
743 mesa_driver="$default_driver"
746 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
750 # map $mesa_driver to APIs
751 if test "x$enable_dri" = xauto; then
752 case "x$mesa_driver" in
753 xdri) enable_dri=yes ;;
758 if test "x$enable_glx" = xauto; then
759 case "x$mesa_driver" in
760 xdri|xxlib) enable_glx=yes ;;
765 if test "x$enable_osmesa" = xauto; then
766 case "x$mesa_driver" in
767 xxlib|xosmesa) enable_osmesa=yes ;;
768 *) enable_osmesa=no ;;
772 if test "x$enable_xlib_glx" = xauto; then
773 case "x$mesa_driver" in
774 xxlib) enable_xlib_glx=yes ;;
775 *) enable_xlib_glx=no ;;
779 if test "x$enable_glx" = xno; then
783 AM_CONDITIONAL(HAVE_DRI, test x"$enable_dri" = xyes)
786 dnl Driver specific build directories
789 dnl this variable will be prepended to SRC_DIRS and is not exported
794 GALLIUM_DIRS="auxiliary drivers state_trackers"
795 GALLIUM_TARGET_DIRS=""
796 GALLIUM_WINSYS_DIRS="sw"
797 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
798 GALLIUM_STATE_TRACKERS_DIRS=""
800 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
801 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
803 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
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="mapi/glapi/gen $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 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([Cannot 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 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx >= 1.8.1])
980 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
982 # add xf86vidmode if available
983 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
984 if test "$HAVE_XF86VIDMODE" = yes ; then
985 dri_modules="$dri_modules xxf86vm"
988 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
989 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
990 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
991 GL_LIB_DEPS="$DRIGL_LIBS"
993 # should check these...
994 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
995 if test "x$HAVE_XF86VIDMODE" == xyes; then
996 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
998 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1000 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1001 GL_PC_CFLAGS="$X11_INCLUDES"
1003 # XCB can only be used from pkg-config
1004 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx >= 1.8.1])
1005 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1006 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1007 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1010 # need DRM libs, -lpthread, etc.
1011 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1012 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1016 # This is outside the case (above) so that it is invoked even for non-GLX
1018 AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes)
1020 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1021 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1022 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1023 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1025 AC_SUBST([GL_LIB_DEPS])
1026 AC_SUBST([GL_PC_REQ_PRIV])
1027 AC_SUBST([GL_PC_LIB_PRIV])
1028 AC_SUBST([GL_PC_CFLAGS])
1029 AC_SUBST([DRI_PC_REQ_PRIV])
1030 AC_SUBST([GLESv1_CM_LIB_DEPS])
1031 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1032 AC_SUBST([GLESv2_LIB_DEPS])
1033 AC_SUBST([GLESv2_PC_LIB_PRIV])
1035 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1036 AC_SUBST([GLAPI_LIB_DEPS])
1039 dnl dri libraries are linking with mesa
1040 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.la'
1041 GALLIUM_DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1044 if test "x$enable_dri" = xyes && test "x$driglx_direct" = xyes ; then
1045 DRI_LIB_DEPS="\$(TOP)/src/mesa/libdricore/libdricore${VERSION}.la"
1046 GALLIUM_DRI_LIB_DEPS="\$(TOP)/\$(LIB_DIR)/libdricore${VERSION}.so"
1049 AM_CONDITIONAL(HAVE_DRICORE, test x$HAVE_DRICORE = xyes)
1051 AC_SUBST([HAVE_XF86VIDMODE])
1056 case "x$enable_glx$enable_xlib_glx" in
1058 DEFINES="$DEFINES -DUSE_XSHM"
1061 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1062 if test "x$driglx_direct" = xyes; then
1063 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1072 AC_ARG_ENABLE([glx-tls],
1073 [AS_HELP_STRING([--enable-glx-tls],
1074 [enable TLS support in GLX @<:@default=disabled@:>@])],
1075 [GLX_USE_TLS="$enableval"],
1077 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1079 AS_IF([test "x$GLX_USE_TLS" = xyes],
1080 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1085 dnl Directory for DRI drivers
1086 AC_ARG_WITH([dri-driverdir],
1087 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1088 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1089 [DRI_DRIVER_INSTALL_DIR="$withval"],
1090 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1091 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1092 dnl Extra search path for DRI drivers
1093 AC_ARG_WITH([dri-searchpath],
1094 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1095 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1096 [DRI_DRIVER_SEARCH_DIR="$withval"],
1097 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1098 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1099 dnl Which drivers to build - default is chosen by platform
1100 AC_ARG_WITH([dri-drivers],
1101 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1102 [comma delimited DRI drivers list, e.g.
1103 "swrast,i965,radeon" @<:@default=auto@:>@])],
1104 [with_dri_drivers="$withval"],
1105 [with_dri_drivers=yes])
1106 if test "x$with_dri_drivers" = x; then
1110 dnl If $with_dri_drivers is yes, directories will be added through
1113 case "$with_dri_drivers" in
1116 # classic DRI drivers require FEATURE_GL to build
1117 if test "x$enable_opengl" = xyes; then
1122 # verify the requested driver directories exist
1123 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1124 for driver in $dri_drivers; do
1125 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1126 AC_MSG_ERROR([DRI driver directory '$driver' does not exist])
1128 DRI_DIRS="$dri_drivers"
1129 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1130 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1135 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1136 if test "x$enable_dri" = xyes; then
1137 # Platform specific settings and drivers to build
1140 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1141 DEFINES="$DEFINES -DHAVE_ALIAS"
1145 if test "x$DRI_DIRS" = "xyes"; then
1146 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1150 # Build only the drivers for cards that exist on PowerPC.
1151 if test "x$DRI_DIRS" = "xyes"; then
1152 DRI_DIRS="r200 radeon swrast"
1156 # Build only the drivers for cards that exist on sparc
1157 if test "x$DRI_DIRS" = "xyes"; then
1158 DRI_DIRS="r200 radeon swrast"
1163 freebsd* | dragonfly* | *netbsd*)
1164 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1165 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1167 if test "x$DRI_DIRS" = "xyes"; then
1168 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1172 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1173 DEFINES="$DEFINES -DHAVE_ALIAS"
1176 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1179 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1180 if test "x$DRI_DIRS" = "xyes"; then
1187 if test "x$DRI_DIRS" = "xyes"; then
1188 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1191 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1194 if test "x$enable_dri" = xyes; then
1197 AC_ARG_WITH([expat],
1198 [AS_HELP_STRING([--with-expat=DIR],
1199 [expat install directory])],[
1200 EXPAT_INCLUDES="-I$withval/include"
1201 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1202 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1203 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1205 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1207 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1208 [AC_MSG_ERROR([Expat required for DRI.])])
1212 # if we are building any dri driver other than swrast ...
1213 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1214 # ... libdrm is required
1215 if test "x$have_libdrm" != xyes; then
1216 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1218 # ... and build dricommon
1222 # put all the necessary libs together
1223 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1224 GALLIUM_DRI_LIB_DEPS="$GALLIUM_DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1226 AC_SUBST([DRI_DIRS])
1227 AC_SUBST([EXPAT_INCLUDES])
1228 AC_SUBST([DRI_LIB_DEPS])
1229 AC_SUBST([GALLIUM_DRI_LIB_DEPS])
1233 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1235 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1251 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED])
1252 HAVE_NOUVEAU_DRI=yes;
1258 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1260 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1263 HAVE_RADEON_DRI=yes;
1276 HAVE_SWRAST_DRI=yes;
1280 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
1281 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1282 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
1283 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
1284 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
1285 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
1286 AM_CONDITIONAL(HAVE_COMMON_DRI, test x$HAVE_COMMON_DRI = xyes)
1289 dnl OSMesa configuration
1292 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1293 AC_ARG_WITH([osmesa-bits],
1294 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1295 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1296 [osmesa_bits="$withval"],
1298 if test "x$osmesa_bits" != x8; then
1299 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1300 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1304 case "x$osmesa_bits" in
1306 OSMESA_LIB="${OSMESA_LIB}"
1309 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1310 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1313 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1317 if test "x$enable_osmesa" = xyes; then
1318 # only link libraries with osmesa if shared
1319 if test "$enable_static" = no; then
1320 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1325 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1328 OSMESA_VERSION=`echo "$VERSION" | $SED 's/\./:/g'`
1330 AC_SUBST([OSMESA_LIB_DEPS])
1331 AC_SUBST([OSMESA_MESA_DEPS])
1332 AC_SUBST([OSMESA_PC_REQ])
1333 AC_SUBST([OSMESA_PC_LIB_PRIV])
1334 AC_SUBST([OSMESA_VERSION])
1337 dnl gbm configuration
1339 if test "x$enable_gbm" = xauto; then
1340 case "$with_egl_platforms" in
1347 if test "x$enable_gbm" = xyes; then
1348 SRC_DIRS="$SRC_DIRS gbm"
1350 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1351 AC_MSG_ERROR([gbm needs udev]))
1353 if test "x$enable_dri" = xyes; then
1354 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1355 if test "$SHARED_GLAPI" -eq 0; then
1356 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1360 GBM_PC_REQ_PRIV="libudev"
1361 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1362 AC_SUBST([GBM_PC_REQ_PRIV])
1363 AC_SUBST([GBM_PC_LIB_PRIV])
1366 dnl EGL configuration
1370 if test "x$enable_egl" = xyes; then
1371 SRC_DIRS="$SRC_DIRS egl"
1372 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1374 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1376 if test "$enable_static" != yes; then
1377 # build egl_glx when libGL is built
1378 if test "x$enable_glx" = xyes; then
1379 HAVE_EGL_DRIVER_GLX=1
1382 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1383 [have_libudev=yes],[have_libudev=no])
1384 if test "$have_libudev" = yes; then
1385 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1388 if test "x$enable_dri" = xyes; then
1389 HAVE_EGL_DRIVER_DRI2=1
1394 AC_SUBST([EGL_LIB_DEPS])
1397 dnl EGL Gallium configuration
1399 if test "x$enable_gallium_egl" = xyes; then
1400 if test "x$with_gallium_drivers" = x; then
1401 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1403 if test "x$enable_egl" = xno; then
1404 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1406 if test "x$have_libdrm" != xyes; then
1407 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1410 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1411 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1416 dnl gbm Gallium configuration
1418 if test "x$enable_gallium_gbm" = xauto; then
1419 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1421 enable_gallium_gbm=yes ;;
1423 enable_gallium_gbm=no ;;
1426 if test "x$enable_gallium_gbm" = xyes; then
1427 if test "x$with_gallium_drivers" = x; then
1428 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1430 if test "x$enable_gbm" = xno; then
1431 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1433 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1434 if test "x$enable_dri" = xno; then
1435 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1438 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1439 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1441 enable_gallium_loader=yes
1445 dnl X.Org DDX configuration
1447 if test "x$enable_xorg" = xyes; then
1448 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1449 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1450 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1451 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1452 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1453 HAVE_XEXTPROTO_71="no")
1454 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1459 dnl XA configuration
1461 if test "x$enable_xa" = xyes; then
1464 AC_CHECK_PROG(NM, nm, "nm")
1465 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1466 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1470 if test "x$enable_xa" = xyes; then
1471 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1479 dnl OpenVG configuration
1483 if test "x$enable_openvg" = xyes; then
1484 if test "x$enable_egl" = xno; then
1485 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1487 if test "x$with_gallium_drivers" = x; then
1488 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1490 if test "x$enable_gallium_egl" = xno; then
1491 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1494 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1495 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1496 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1497 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1502 dnl D3D1X configuration
1505 if test "x$enable_d3d1x" = xyes; then
1506 if test "x$with_gallium_drivers" = x; then
1507 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1510 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1515 dnl Gallium G3DVL configuration
1517 AC_ARG_ENABLE([gallium-g3dvl],
1518 [AS_HELP_STRING([--enable-gallium-g3dvl],
1519 [build gallium g3dvl @<:@default=disabled@:>@])],
1520 [enable_gallium_g3dvl="$enableval"],
1521 [enable_gallium_g3dvl=no])
1522 if test "x$enable_gallium_g3dvl" = xyes; then
1523 if test "x$with_gallium_drivers" = x; then
1524 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1527 if test "x$enable_xvmc" = xauto; then
1528 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1531 if test "x$enable_vdpau" = xauto; then
1532 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1535 if test "x$enable_va" = xauto; then
1536 #don't enable vaapi state tracker even if package exists
1537 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1542 if test "x$enable_xvmc" = xyes; then
1543 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 x11-xcb xcb-dri2 >= 1.8])
1544 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xvmc"
1548 if test "x$enable_vdpau" = xyes; then
1549 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1 x11-xcb xcb-dri2 >= 1.8])
1550 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1554 if test "x$enable_va" = xyes; then
1555 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1 x11-xcb xcb-dri2 >= 1.8])
1556 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1557 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1562 dnl OpenCL configuration
1565 AC_ARG_WITH([libclc-path],
1566 [AS_HELP_STRING([--with-libclc-path],
1567 [Path to libclc builtins library. Example: --with-libclc-path=\$HOME/libclc/])],
1568 [LIBCLC_PATH="$withval"],
1571 AC_ARG_WITH([clang-libdir],
1572 [AS_HELP_STRING([--with-clang-libdir],
1573 [Path to Clang libraries @<:@default=llvm-config --libdir@:>@])],
1574 [CLANG_LIBDIR="$withval"],
1577 AC_SUBST([LIBCLC_PATH])
1579 if test "x$enable_opencl" = xyes; then
1580 if test "x$with_gallium_drivers" = x; then
1581 AC_MSG_ERROR([cannot enable OpenCL without Gallium])
1584 if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 6; then
1585 AC_MSG_ERROR([gcc >= 4.6 is required to build clover])
1588 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS clover"
1589 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS opencl"
1590 enable_gallium_loader=yes
1594 dnl GLU configuration
1596 AC_ARG_ENABLE([glu],
1597 [AS_HELP_STRING([--disable-glu],
1598 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1599 [enable_glu="$enableval"],
1602 if test "x$enable_glu" = xyes; then
1603 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1604 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1609 if test "x$enable_glu" = xyes; then
1610 SRC_DIRS="$SRC_DIRS glu"
1612 if test "x$enable_glx" = xno; then
1613 # Link libGLU to libOSMesa instead of libGL
1616 if test "$enable_static" = no; then
1617 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1622 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1624 GLU_PC_LIB_PRIV="-lm"
1625 if test "$enable_static" = no; then
1627 GLU_MESA_DEPS='-l$(GL_LIB)'
1634 if test "$enable_static" = no; then
1635 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1637 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1638 AC_SUBST([GLU_LIB_DEPS])
1639 AC_SUBST([GLU_MESA_DEPS])
1640 AC_SUBST([GLU_PC_REQ])
1641 AC_SUBST([GLU_PC_REQ_PRIV])
1642 AC_SUBST([GLU_PC_LIB_PRIV])
1643 AC_SUBST([GLU_PC_CFLAGS])
1645 AC_SUBST([PROGRAM_DIRS])
1648 dnl Gallium configuration
1650 if test "x$with_gallium_drivers" != x; then
1651 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1654 AC_SUBST([LLVM_BINDIR])
1655 AC_SUBST([LLVM_CFLAGS])
1656 AC_SUBST([LLVM_CPPFLAGS])
1657 AC_SUBST([LLVM_CXXFLAGS])
1658 AC_SUBST([LLVM_LIBDIR])
1659 AC_SUBST([LLVM_LIBS])
1660 AC_SUBST([LLVM_LDFLAGS])
1661 AC_SUBST([LLVM_INCLUDEDIR])
1662 AC_SUBST([LLVM_VERSION])
1663 AC_SUBST([CLANG_RESOURCE_DIR])
1665 case "x$enable_opengl$enable_gles1$enable_gles2" in
1667 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1671 AC_SUBST([VG_LIB_DEPS])
1672 AC_SUBST([EGL_CLIENT_APIS])
1675 dnl EGL Platforms configuration
1677 AC_ARG_WITH([egl-platforms],
1678 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1679 [comma delimited native platforms libEGL supports, e.g.
1680 "x11,drm" @<:@default=auto@:>@])],
1681 [with_egl_platforms="$withval"],
1682 [if test "x$enable_egl" = xyes; then
1683 with_egl_platforms="x11"
1685 with_egl_platforms=""
1690 if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then
1691 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1694 # Do per-EGL platform setups and checks
1695 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1696 for plat in $egl_platforms; do
1699 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/$plat"
1703 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1704 [AC_MSG_ERROR([cannot find libwayland-client])])
1705 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1707 WAYLAND_PREFIX=`$PKG_CONFIG --variable=prefix wayland-client`
1708 AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner],,
1709 [${WAYLAND_PREFIX}/bin$PATH_SEPARATOR$PATH])
1713 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes])
1714 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1716 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1717 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1722 test "x$enable_gbm" = "xno" &&
1723 AC_MSG_ERROR([EGL platform drm needs gbm])
1730 AC_MSG_ERROR([EGL platform '$plat' does not exist])
1734 case "$plat$have_libudev" in
1736 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1740 # libEGL wants to default to the first platform specified in
1741 # ./configure. parse that here.
1742 if test "x$egl_platforms" != "x"; then
1743 FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr 'a-z' 'A-Z'`
1744 EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS"
1746 EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
1749 EGL_PLATFORMS="$egl_platforms"
1751 AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1)
1752 AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep 'wayland' >/dev/null 2>&1)
1753 AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep 'drm' >/dev/null 2>&1)
1754 AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep 'fbdev' >/dev/null 2>&1)
1755 AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep 'null' >/dev/null 2>&1)
1757 AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x")
1758 AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != "x")
1760 AC_SUBST([EGL_NATIVE_PLATFORM])
1761 AC_SUBST([EGL_PLATFORMS])
1762 AC_SUBST([EGL_CFLAGS])
1764 AC_ARG_WITH([egl-driver-dir],
1765 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1766 [directory for EGL drivers [[default=${libdir}/egl]]])],
1767 [EGL_DRIVER_INSTALL_DIR="$withval"],
1768 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1769 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1771 AC_ARG_WITH([xorg-driver-dir],
1772 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1773 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1774 [XORG_DRIVER_INSTALL_DIR="$withval"],
1775 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1776 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1778 AC_ARG_WITH([max-width],
1779 [AS_HELP_STRING([--with-max-width=N],
1780 [Maximum framebuffer width (4096)])],
1781 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1782 AS_IF([test "${withval}" -gt "4096"],
1783 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1785 AC_ARG_WITH([max-height],
1786 [AS_HELP_STRING([--with-max-height=N],
1787 [Maximum framebuffer height (4096)])],
1788 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1789 AS_IF([test "${withval}" -gt "4096"],
1790 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1796 AC_ARG_ENABLE([gallium-llvm],
1797 [AS_HELP_STRING([--enable-gallium-llvm],
1798 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1799 [enable_gallium_llvm="$enableval"],
1800 [enable_gallium_llvm=auto])
1802 AC_ARG_WITH([llvm-shared-libs],
1803 [AS_HELP_STRING([--with-llvm-shared-libs],
1804 [link with LLVM shared libraries @<:@default=disabled@:>@])],
1805 [with_llvm_shared_libs=yes],
1806 [with_llvm_shared_libs=no])
1808 AC_ARG_WITH([llvm-prefix],
1809 [AS_HELP_STRING([--with-llvm-prefix],
1810 [Prefix for LLVM installations in non-standard locations])],
1811 [llvm_prefix="$withval"],
1815 if test "x$with_gallium_drivers" = x; then
1816 enable_gallium_llvm=no
1818 if test "x$enable_gallium_llvm" = xauto; then
1820 i*86|x86_64) enable_gallium_llvm=yes;;
1823 if test "x$enable_gallium_llvm" = xyes; then
1824 if test "x$llvm_prefix" != x; then
1825 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"])
1827 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1830 if test "x$LLVM_CONFIG" != xno; then
1831 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1832 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g' -e 's/-Wcovered-switch-default//g'`
1833 if test "x$with_llvm_shared_libs" = xyes; then
1834 dnl We can't use $LLVM_VERSION because it has 'svn' stripped out,
1835 LLVM_LIBS="-lLLVM-`$LLVM_CONFIG --version`"
1837 LLVM_COMPONENTS="engine bitwriter"
1838 if $LLVM_CONFIG --components | grep -q '\<mcjit\>'; then
1839 LLVM_COMPONENTS="${LLVM_COMPONENTS} mcjit"
1841 if test "x$enable_opencl" = xyes; then
1842 LLVM_COMPONENTS="${LLVM_COMPONENTS} ipo linker instrumentation"
1844 LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
1846 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1847 LLVM_BINDIR=`$LLVM_CONFIG --bindir`
1848 LLVM_CXXFLAGS=`$LLVM_CONFIG --cxxflags`
1849 LLVM_CPPFLAGS=`$LLVM_CONFIG --cppflags`
1850 LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir`
1851 LLVM_LIBDIR=`$LLVM_CONFIG --libdir`
1852 DEFINES="${DEFINES} -DHAVE_LLVM=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/0x0\10\2/g'`"
1855 dnl Check for Clang interanl headers
1856 if test "x$enable_opencl" = xyes; then
1857 if test "x$CLANG_LIBDIR" = x; then
1858 CLANG_LIBDIR=${LLVM_LIBDIR}
1860 CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
1861 AC_CHECK_FILE("$CLANG_RESOURCE_DIR/include/stddef.h",,
1862 AC_MSG_ERROR([Could not find clang internal header stddef.h in $CLANG_RESOURCE_DIR Use --with-clang-libdir to specify the correct path to the clang libraries.]))
1871 dnl Directory for XVMC libs
1872 AC_ARG_WITH([xvmc-libdir],
1873 [AS_HELP_STRING([--with-xvmc-libdir=DIR],
1874 [directory for the XVMC libraries @<:@default=${libdir}@:>@])],
1875 [XVMC_LIB_INSTALL_DIR="$withval"],
1876 [XVMC_LIB_INSTALL_DIR='${libdir}'])
1877 AC_SUBST([XVMC_LIB_INSTALL_DIR])
1882 if test "x$enable_gallium_tests" = xyes; then
1883 SRC_DIRS="$SRC_DIRS gallium/tests/trivial"
1884 enable_gallium_loader=yes
1887 dnl Directory for VDPAU libs
1888 AC_ARG_WITH([vdpau-libdir],
1889 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1890 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1891 [VDPAU_LIB_INSTALL_DIR="$withval"],
1892 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1893 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1895 dnl Directory for VA libs
1896 AC_ARG_WITH([va-libdir],
1897 [AS_HELP_STRING([--with-va-libdir=DIR],
1898 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1899 [VA_LIB_INSTALL_DIR="$withval"],
1900 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1901 AC_SUBST([VA_LIB_INSTALL_DIR])
1903 dnl Directory for OpenCL libs
1904 AC_ARG_WITH([opencl-libdir],
1905 [AS_HELP_STRING([--with-opencl-libdir=DIR],
1906 [directory for the OpenCL libraries @<:@default=${libdir}/opencl@:>@])],
1907 [OPENCL_LIB_INSTALL_DIR="$withval"],
1908 [OPENCL_LIB_INSTALL_DIR='${libdir}/opencl'])
1909 AC_SUBST([OPENCL_LIB_INSTALL_DIR])
1912 dnl Gallium helper functions
1914 gallium_check_st() {
1915 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1916 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1917 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1918 if test "x$have_libdrm" != xyes; then
1919 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1921 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1923 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1924 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1926 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1927 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1929 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1930 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1932 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1933 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1935 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1936 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1938 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1939 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1943 gallium_require_llvm() {
1944 if test "x$MESA_LLVM" = x0; then
1946 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1951 gallium_require_drm_loader() {
1952 if test "x$enable_gallium_loader" = xyes; then
1953 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1954 AC_MSG_ERROR([Gallium drm loader requrires libudev]))
1955 if test "x$have_libdrm" != xyes; then
1956 AC_MSG_ERROR([Gallium drm loader requires libdrm >= $LIBDRM_REQUIRED])
1958 enable_gallium_drm_loader=yes
1963 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1964 if test "x$with_gallium_drivers" != x; then
1965 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1966 for driver in $gallium_drivers; do
1969 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1970 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1973 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1974 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1975 if test "x$MESA_LLVM" = x1; then
1976 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1978 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1979 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1982 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1983 gallium_require_llvm "Gallium R300"
1984 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1985 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1988 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1989 gallium_require_drm_loader
1990 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1991 if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then
1992 if test "x$LLVM_VERSION" != "x3.1"; then
1993 AC_MSG_ERROR([LLVM 3.1 is required for the r600 llvm compiler.])
1995 NEED_RADEON_GALLIUM=yes;
1997 if test "x$enable_r600_llvm" = xyes; then
1998 USE_R600_LLVM_COMPILER=yes;
2000 if test "x$enable_opencl" = xyes -a "x$with_llvm_shared_libs" = xno; then
2001 LLVM_LIBS="${LLVM_LIBS} `$LLVM_CONFIG --libs bitreader asmparser`"
2003 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
2006 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
2007 gallium_require_drm_loader
2008 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS radeonsi"
2009 if test "x$LLVM_VERSION" != "x3.1"; then
2010 AC_MSG_ERROR([LLVM 3.1 is required to build the radeonsi driver.])
2012 NEED_RADEON_GALLIUM=yes;
2013 gallium_check_st "radeon/drm" "dri-radeonsi" "xorg-radeonsi" "" "" "vdpau-radeonsi" ""
2016 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
2017 gallium_require_drm_loader
2018 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nv30 nv50 nvc0"
2019 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
2022 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
2023 if test "x$MESA_LLVM" = x1; then
2024 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
2027 if test "x$HAVE_ST_DRI" = xyes; then
2028 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
2030 if test "x$HAVE_ST_VDPAU" = xyes; then
2031 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
2033 if test "x$HAVE_ST_XVMC" = xyes; then
2034 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
2036 if test "x$HAVE_ST_VA" = xyes; then
2037 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
2039 if test "x$HAVE_ST_VDPAU" = xyes ||
2040 test "x$HAVE_ST_XVMC" = xyes ||
2041 test "x$HAVE_ST_VA" = xyes; then
2042 if test "x$HAVE_WINSYS_XLIB" != xyes; then
2043 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
2048 AC_MSG_ERROR([Unknown Gallium driver: $driver])
2054 if test "x$enable_gallium_loader" = xyes; then
2055 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
2056 GALLIUM_PIPE_LOADER_DEFINES="-DHAVE_PIPE_LOADER_SW"
2057 GALLIUM_PIPE_LOADER_LIBS="\$(TOP)/src/gallium/auxiliary/pipe-loader/libpipe_loader.a"
2058 GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS \$(TOP)/src/gallium/winsys/sw/null/libws_null.a"
2060 if test "x$HAVE_WINSYS_XLIB" = xyes; then
2061 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_XLIB"
2062 GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS \$(TOP)/src/gallium/winsys/sw/xlib/libws_xlib.a"
2065 if test "x$enable_gallium_drm_loader" = xyes; then
2066 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRM"
2067 PKG_CHECK_MODULES([GALLIUM_PIPE_LOADER_XCB], [xcb xcb-dri2],
2068 pipe_loader_have_xcb=yes, pipe_loader_have_xcb=no)
2069 if test "x$pipe_loader_have_xcb" = xyes; then
2070 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DPIPE_LOADER_HAVE_XCB"
2071 GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS $GALLIUM_PIPE_LOADER_XCB_LIBS $LIBDRM_LIBS"
2075 AC_SUBST([GALLIUM_PIPE_LOADER_DEFINES])
2076 AC_SUBST([GALLIUM_PIPE_LOADER_LIBS])
2079 dnl Tell Automake which drivers to build
2080 for driver in $GALLIUM_DRIVERS_DIRS; do
2083 HAVE_GALAHAD_GALLIUM=yes;
2086 HAVE_IDENTITY_GALLIUM=yes;
2089 HAVE_NOOP_GALLIUM=yes;
2092 GALLIUM_MAKE_DIRS="$GALLIUM_MAKE_DIRS $driver"
2097 AM_CONDITIONAL(HAVE_GALAHAD_GALLIUM, test x$HAVE_GALAHAD_GALLIUM = xyes)
2098 AM_CONDITIONAL(HAVE_IDENTITY_GALLIUM, test x$HAVE_IDENTITY_GALLIUM = xyes)
2099 AM_CONDITIONAL(HAVE_NOOP_GALLIUM, test x$HAVE_NOOP_GALLIUM = xyes)
2100 AM_CONDITIONAL(NEED_RADEON_GALLIUM, test x$NEED_RADEON_GALLIUM = xyes)
2101 AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes)
2102 AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes)
2103 AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes)
2104 AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
2105 AC_SUBST([GALLIUM_MAKE_DIRS])
2107 AM_CONDITIONAL(HAVE_X11_DRIVER, echo "$DRIVER_DIRS" | grep 'x11' >/dev/null 2>&1)
2108 AM_CONDITIONAL(HAVE_DRI_DRIVER, echo "$DRIVER_DIRS" | grep 'dri' >/dev/null 2>&1)
2110 AM_CONDITIONAL(HAVE_X86_ASM, echo "$DEFINES" | grep 'X86_ASM' >/dev/null 2>&1)
2111 AM_CONDITIONAL(HAVE_X86_64_ASM, echo "$DEFINES" | grep 'X86_64_ASM' >/dev/null 2>&1)
2112 AM_CONDITIONAL(HAVE_SPARC_ASM, echo "$DEFINES" | grep 'SPARC_ASM' >/dev/null 2>&1)
2114 dnl prepend CORE_DIRS to SRC_DIRS
2115 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
2117 dnl Restore LDFLAGS and CPPFLAGS
2118 LDFLAGS="$_SAVE_LDFLAGS"
2119 CPPFLAGS="$_SAVE_CPPFLAGS"
2121 dnl Add user CFLAGS and CXXFLAGS
2122 CFLAGS="$CFLAGS $USER_CFLAGS"
2123 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
2125 dnl Substitute the config
2126 AC_CONFIG_FILES([configs/current
2129 src/gallium/Makefile
2130 src/gallium/auxiliary/pipe-loader/Makefile
2131 src/gallium/state_trackers/clover/Makefile
2132 src/gallium/drivers/Makefile
2133 src/gallium/drivers/r300/Makefile
2134 src/gallium/drivers/r600/Makefile
2135 src/gallium/targets/opencl/Makefile
2138 src/egl/drivers/Makefile
2139 src/egl/drivers/dri2/Makefile
2140 src/egl/drivers/glx/Makefile
2142 src/egl/main/Makefile
2144 src/egl/wayland/Makefile
2145 src/egl/wayland/wayland-egl/Makefile
2146 src/egl/wayland/wayland-egl/wayland-egl.pc
2147 src/egl/wayland/wayland-drm/Makefile
2149 src/glsl/glcpp/Makefile
2150 src/glsl/tests/Makefile
2152 src/glx/tests/Makefile
2153 src/mapi/glapi/Makefile
2154 src/mapi/glapi/gen/Makefile
2155 src/mapi/shared-glapi/Makefile
2156 src/mapi/glapi/tests/Makefile
2157 src/mapi/shared-glapi/tests/Makefile
2160 src/mesa/libdricore/Makefile
2161 src/mesa/main/tests/Makefile
2162 src/mesa/x86/Makefile
2163 src/mesa/x86-64/Makefile
2164 src/mesa/drivers/Makefile
2165 src/mesa/drivers/dri/dri.pc
2166 src/mesa/drivers/dri/Makefile
2167 src/mesa/drivers/dri/common/Makefile
2168 src/mesa/drivers/dri/i915/Makefile
2169 src/mesa/drivers/dri/i965/Makefile
2170 src/mesa/drivers/dri/nouveau/Makefile
2171 src/mesa/drivers/dri/r200/Makefile
2172 src/mesa/drivers/dri/radeon/Makefile
2173 src/mesa/drivers/dri/swrast/Makefile
2174 src/mesa/drivers/osmesa/Makefile
2175 src/mesa/drivers/x11/Makefile
2177 src/mesa/drivers/osmesa/osmesa.pc])
2179 dnl Sort the dirs alphabetically
2180 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2181 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2182 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2183 GALLIUM_MAKE_DIRS=`echo $GALLIUM_MAKE_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2184 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2189 dnl Output some configuration info for the user
2192 echo " prefix: $prefix"
2193 echo " exec_prefix: $exec_prefix"
2194 echo " libdir: $libdir"
2195 echo " includedir: $includedir"
2199 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
2200 echo " OpenVG: $enable_openvg"
2204 if test "x$enable_osmesa" != xno; then
2205 echo " OSMesa: lib$OSMESA_LIB"
2210 if test "x$enable_dri" != xno; then
2211 # cleanup the drivers var
2212 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2213 if test "x$DRI_DIRS" = x; then
2214 echo " DRI drivers: no"
2216 echo " DRI drivers: $dri_dirs"
2218 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
2221 case "x$enable_glx$enable_xlib_glx" in
2223 echo " GLX: Xlib-based"
2226 echo " GLX: DRI-based"
2229 echo " GLX: $enable_glx"
2234 echo " GLU: $enable_glu"
2238 echo " EGL: $enable_egl"
2239 if test "$enable_egl" = yes; then
2240 echo " EGL platforms: $EGL_PLATFORMS"
2243 if test "x$HAVE_EGL_DRIVER_GLX" != "x"; then
2244 egl_drivers="$egl_drivers builtin:egl_glx"
2246 if test "x$HAVE_EGL_DRIVER_DRI2" != "x"; then
2247 egl_drivers="$egl_drivers builtin:egl_dri2"
2250 if test "x$HAVE_ST_EGL" = xyes; then
2251 echo " EGL drivers: ${egl_drivers} egl_gallium"
2252 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2254 echo " EGL drivers: $egl_drivers"
2259 if test "x$MESA_LLVM" = x1; then
2261 echo " llvm-config: $LLVM_CONFIG"
2262 echo " llvm-version: $LLVM_VERSION"
2268 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2269 echo " Gallium: yes"
2270 echo " Gallium dirs: $GALLIUM_DIRS"
2271 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2272 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2273 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2274 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2282 echo " Shared libs: $enable_shared"
2283 echo " Static libs: $enable_static"
2285 dnl Compiler options
2286 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2287 cflags=`echo $CFLAGS $PIC_FLAGS | \
2288 $SED 's/^ *//;s/ */ /;s/ *$//'`
2289 cxxflags=`echo $CXXFLAGS $PIC_FLAGS | \
2290 $SED 's/^ *//;s/ */ /;s/ *$//'`
2291 defines=`echo $DEFINES | $SED 's/^ *//;s/ */ /;s/ *$//'`
2293 echo " CFLAGS: $cflags"
2294 echo " CXXFLAGS: $cxxflags"
2295 echo " Macros: $defines"
2297 echo " PYTHON2: $PYTHON2"
2300 echo " Run '${MAKE-make}' to build Mesa"