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], [9.0.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.39
32 LIBDRM_INTEL_REQUIRED=2.4.38
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.c"; 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 and CPPFLAGS so we can add to them and restore later
150 _SAVE_LDFLAGS="$LDFLAGS"
151 _SAVE_CPPFLAGS="$CPPFLAGS"
158 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
161 DEFINES="$DEFINES -DPTHREADS -DSVR4"
164 DEFINES="$DEFINES -DPTHREADS"
168 dnl Add flags for gcc and g++
169 if test "x$GCC" = xyes; then
170 CFLAGS="$CFLAGS -Wall -std=c99"
172 # Enable -Werror=implicit-function-declaration and
173 # -Werror=missing-prototypes, if available, or otherwise, just
174 # -Wmissing-prototypes. This is particularly useful to avoid
175 # generating a loadable driver module that has undefined symbols.
176 save_CFLAGS="$CFLAGS"
177 AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
178 CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
179 CFLAGS="$CFLAGS -Werror=missing-prototypes"
180 AC_LINK_IFELSE([AC_LANG_PROGRAM()],
181 AC_MSG_RESULT([yes]),
182 [CFLAGS="$save_CFLAGS -Wmissing-prototypes";
183 AC_MSG_RESULT([no])]);
185 # Enable -fvisibility=hidden if using a gcc that supports it
186 save_CFLAGS="$CFLAGS"
187 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
188 VISIBILITY_CFLAGS="-fvisibility=hidden"
189 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
190 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
191 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
193 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
196 # Work around aliasing bugs - developers should comment this out
197 CFLAGS="$CFLAGS -fno-strict-aliasing"
199 # gcc's builtin memcmp is slower than glibc's
200 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
201 CFLAGS="$CFLAGS -fno-builtin-memcmp"
203 if test "x$GXX" = xyes; then
204 CXXFLAGS="$CXXFLAGS -Wall"
206 # Enable -fvisibility=hidden if using a gcc that supports it
207 save_CXXFLAGS="$CXXFLAGS"
208 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
209 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
210 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
212 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
213 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
216 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
217 CXXFLAGS=$save_CXXFLAGS
219 # Work around aliasing bugs - developers should comment this out
220 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
222 # gcc's builtin memcmp is slower than glibc's
223 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
224 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
227 dnl even if the compiler appears to support it, using visibility attributes isn't
228 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
232 VISIBILITY_CXXFLAGS=""
236 AC_SUBST([VISIBILITY_CFLAGS])
237 AC_SUBST([VISIBILITY_CXXFLAGS])
240 dnl Hacks to enable 32 or 64 bit build
242 AC_ARG_ENABLE([32-bit],
243 [AS_HELP_STRING([--enable-32-bit],
244 [build 32-bit libraries @<:@default=auto@:>@])],
245 [enable_32bit="$enableval"],
248 if test "x$enable_32bit" = xyes; then
249 if test "x$GCC" = xyes; then
250 CFLAGS="$CFLAGS -m32"
251 CCASFLAGS="$CCASFLAGS -m32"
253 if test "x$GXX" = xyes; then
254 CXXFLAGS="$CXXFLAGS -m32"
257 AC_ARG_ENABLE([64-bit],
258 [AS_HELP_STRING([--enable-64-bit],
259 [build 64-bit libraries @<:@default=auto@:>@])],
260 [enable_64bit="$enableval"],
263 if test "x$enable_64bit" = xyes; then
264 if test "x$GCC" = xyes; then
265 CFLAGS="$CFLAGS -m64"
267 if test "x$GXX" = xyes; then
268 CXXFLAGS="$CXXFLAGS -m64"
272 dnl Can't have static and shared libraries, default to static if user
273 dnl explicitly requested. If both disabled, set to static since shared
274 dnl was explicitly requested.
275 case "x$enable_static$enable_shared" in
277 AC_MSG_WARN([Cannot build static and shared libraries, disabling shared])
281 AC_MSG_WARN([Cannot disable both static and shared libraries, enabling static])
286 AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes)
291 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
292 if test "$enable_static" = yes; then
293 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
295 AC_SUBST([MKLIB_OPTIONS])
298 dnl other compiler options
300 AC_ARG_ENABLE([debug],
301 [AS_HELP_STRING([--enable-debug],
302 [use debug compiler flags and macros @<:@default=disabled@:>@])],
303 [enable_debug="$enableval"],
306 if test "x$enable_debug" = xyes; then
307 DEFINES="$DEFINES -DDEBUG"
308 if test "x$GCC" = xyes; then
311 if test "x$GXX" = xyes; then
312 CXXFLAGS="$CXXFLAGS -g"
319 LIB_PREFIX_GLOB='lib'
320 LIB_VERSION_SEPARATOR='.'
321 if test "$enable_static" = yes; then
326 LIB_EXTENSION='dylib' ;;
328 dnl prefix can be 'cyg' or 'lib'
329 LIB_PREFIX_GLOB='???'
330 LIB_VERSION_SEPARATOR='-'
331 LIB_EXTENSION='dll' ;;
335 LIB_EXTENSION='so' ;;
338 AC_ARG_WITH([gl-lib-name],
339 [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
340 [specify GL library name @<:@default=GL@:>@])],
343 AC_ARG_WITH([osmesa-lib-name],
344 [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
345 [specify OSMesa library name @<:@default=OSMesa@:>@])],
346 [OSMESA_LIB=$withval],
348 AS_IF([test "x$GL_LIB" = xyes], [GL_LIB=GL])
349 AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
352 dnl Mangled Mesa support
354 AC_ARG_ENABLE([mangling],
355 [AS_HELP_STRING([--enable-mangling],
356 [enable mangled symbols and library name @<:@default=disabled@:>@])],
357 [enable_mangling="${enableval}"],
360 if test "x${enable_mangling}" = "xyes" ; then
361 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
362 GL_LIB="Mangled${GL_LIB}"
363 OSMESA_LIB="Mangled${OSMESA_LIB}"
366 AC_SUBST([OSMESA_LIB])
369 dnl potentially-infringing-but-nobody-knows-for-sure stuff
371 AC_ARG_ENABLE([texture-float],
372 [AS_HELP_STRING([--enable-texture-float],
373 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
374 [enable_texture_float="$enableval"],
375 [enable_texture_float=no]
377 if test "x$enable_texture_float" = xyes; then
378 AC_MSG_WARN([Floating-point textures enabled.])
379 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
380 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
383 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
384 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
385 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
386 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
387 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
388 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
389 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
391 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
392 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
393 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
394 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
395 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
396 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
397 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
399 AC_SUBST([GL_LIB_NAME])
400 AC_SUBST([OSMESA_LIB_NAME])
401 AC_SUBST([EGL_LIB_NAME])
402 AC_SUBST([GLESv1_CM_LIB_NAME])
403 AC_SUBST([GLESv2_LIB_NAME])
404 AC_SUBST([VG_LIB_NAME])
405 AC_SUBST([GLAPI_LIB_NAME])
407 AC_SUBST([GL_LIB_GLOB])
408 AC_SUBST([EGL_LIB_GLOB])
409 AC_SUBST([GLESv1_CM_LIB_GLOB])
410 AC_SUBST([GLESv2_LIB_GLOB])
411 AC_SUBST([VG_LIB_GLOB])
412 AC_SUBST([GLAPI_LIB_GLOB])
415 dnl Arch/platform-specific settings
418 [AS_HELP_STRING([--disable-asm],
419 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
420 [enable_asm="$enableval"],
425 AC_MSG_CHECKING([whether to enable assembly])
426 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
427 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
428 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
432 AC_MSG_RESULT([no, cross compiling])
436 # check for supported arches
437 if test "x$enable_asm" = xyes; then
441 linux* | *freebsd* | dragonfly* | *netbsd*)
442 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
448 linux* | *freebsd* | dragonfly* | *netbsd*)
449 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
464 DEFINES="$DEFINES -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
465 MESA_ASM_FILES='$(X86_FILES)'
466 AC_MSG_RESULT([yes, x86])
469 DEFINES="$DEFINES -DUSE_X86_64_ASM"
470 MESA_ASM_FILES='$(X86_64_FILES)'
471 AC_MSG_RESULT([yes, x86_64])
474 DEFINES="$DEFINES -DUSE_SPARC_ASM"
475 MESA_ASM_FILES='$(SPARC_FILES)'
476 AC_MSG_RESULT([yes, sparc])
479 AC_MSG_RESULT([no, platform not supported])
483 AC_SUBST([MESA_ASM_FILES])
488 dnl Check to see if dlopen is in default libraries (like Solaris, which
489 dnl has it in libc), or if libdl is needed to get it.
490 AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
491 [AC_CHECK_LIB([dl], [dlopen],
492 [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])])
493 AC_SUBST([DLOPEN_LIBS])
495 dnl See if posix_memalign is available
496 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
498 dnl SELinux awareness.
499 AC_ARG_ENABLE([selinux],
500 [AS_HELP_STRING([--enable-selinux],
501 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
502 [MESA_SELINUX="$enableval"],
504 if test "x$enable_selinux" = "xyes"; then
505 AC_CHECK_HEADER([selinux/selinux.h],[],
506 [AC_MSG_ERROR([SELinux headers not found])])
507 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
508 [AC_MSG_ERROR([SELinux library not found])])
509 SELINUX_LIBS="-lselinux"
510 DEFINES="$DEFINES -DMESA_SELINUX"
514 AC_ARG_ENABLE([opengl],
515 [AS_HELP_STRING([--disable-opengl],
516 [disable support for standard OpenGL API @<:@default=no@:>@])],
517 [enable_opengl="$enableval"],
519 AC_ARG_ENABLE([gles1],
520 [AS_HELP_STRING([--enable-gles1],
521 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
522 [enable_gles1="$enableval"],
524 AC_ARG_ENABLE([gles2],
525 [AS_HELP_STRING([--enable-gles2],
526 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
527 [enable_gles2="$enableval"],
529 AC_ARG_ENABLE([openvg],
530 [AS_HELP_STRING([--enable-openvg],
531 [enable support for OpenVG API @<:@default=no@:>@])],
532 [enable_openvg="$enableval"],
536 [AS_HELP_STRING([--enable-dri],
537 [enable DRI modules @<:@default=enabled@:>@])],
538 [enable_dri="$enableval"],
541 [AS_HELP_STRING([--enable-glx],
542 [enable GLX library @<:@default=enabled@:>@])],
543 [enable_glx="$enableval"],
545 AC_ARG_ENABLE([osmesa],
546 [AS_HELP_STRING([--enable-osmesa],
547 [enable OSMesa library @<:@default=disabled@:>@])],
548 [enable_osmesa="$enableval"],
551 [AS_HELP_STRING([--disable-egl],
552 [disable EGL library @<:@default=enabled@:>@])],
553 [enable_egl="$enableval"],
556 AC_ARG_ENABLE([xorg],
557 [AS_HELP_STRING([--enable-xorg],
558 [enable support for X.Org DDX API @<:@default=no@:>@])],
559 [enable_xorg="$enableval"],
562 [AS_HELP_STRING([--enable-xa],
563 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
564 [enable_xa="$enableval"],
566 AC_ARG_ENABLE([d3d1x],
567 [AS_HELP_STRING([--enable-d3d1x],
568 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
569 [enable_d3d1x="$enableval"],
572 [AS_HELP_STRING([--enable-gbm],
573 [enable gbm library @<:@default=auto@:>@])],
574 [enable_gbm="$enableval"],
577 AC_ARG_ENABLE([xvmc],
578 [AS_HELP_STRING([--enable-xvmc],
579 [enable xvmc library @<:@default=auto@:>@])],
580 [enable_xvmc="$enableval"],
582 AC_ARG_ENABLE([vdpau],
583 [AS_HELP_STRING([--enable-vdpau],
584 [enable vdpau library @<:@default=auto@:>@])],
585 [enable_vdpau="$enableval"],
588 [AS_HELP_STRING([--enable-va],
589 [enable va library @<:@default=auto@:>@])],
590 [enable_va="$enableval"],
592 AC_ARG_ENABLE([opencl],
593 [AS_HELP_STRING([--enable-opencl],
594 [enable OpenCL library @<:@default=no@:>@])],
595 [enable_opencl="$enableval"],
597 AC_ARG_ENABLE([xlib_glx],
598 [AS_HELP_STRING([--enable-xlib-glx],
599 [make GLX library Xlib-based instead of DRI-based @<:@default=disabled@:>@])],
600 [enable_xlib_glx="$enableval"],
601 [enable_xlib_glx=no])
602 AC_ARG_ENABLE([gallium_egl],
603 [AS_HELP_STRING([--enable-gallium-egl],
604 [enable optional EGL state tracker (not required
605 for EGL support in Gallium with OpenGL and OpenGL ES)
606 @<:@default=disable@:>@])],
607 [enable_gallium_egl="$enableval"],
608 [enable_gallium_egl=no])
609 AC_ARG_ENABLE([gallium_gbm],
610 [AS_HELP_STRING([--enable-gallium-gbm],
611 [enable optional gbm state tracker (not required for
612 gbm support in Gallium)
613 @<:@default=auto@:>@])],
614 [enable_gallium_gbm="$enableval"],
615 [enable_gallium_gbm=auto])
617 AC_ARG_ENABLE([r600-llvm-compiler],
618 [AS_HELP_STRING([--enable-r600-llvm-compiler],
619 [Enable experimental LLVM backend for graphics shaders @<:@default=disable@:>@])],
620 [enable_r600_llvm="$enableval"],
621 [enable_r600_llvm=no])
623 AC_ARG_ENABLE([gallium_tests],
624 [AS_HELP_STRING([--enable-gallium-tests],
625 [Enable optional Gallium tests) @<:@default=disable@:>@])],
626 [enable_gallium_tests="$enableval"],
627 [enable_gallium_tests=no])
629 # Option for Gallium drivers
630 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
632 AC_ARG_WITH([gallium-drivers],
633 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
634 [comma delimited Gallium drivers list, e.g.
635 "i915,nouveau,r300,r600,radeonsi,svga,swrast"
636 @<:@default=r300,r600,swrast@:>@])],
637 [with_gallium_drivers="$withval"],
638 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
640 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
641 # here so that the script doesn't choke on an unknown driver name later.
642 case "$with_gallium_drivers" in
643 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
644 no) with_gallium_drivers='' ;;
647 if test "x$enable_opengl" = xno -a \
648 "x$enable_gles1" = xno -a \
649 "x$enable_gles2" = xno -a \
650 "x$enable_openvg" = xno -a \
651 "x$enable_xorg" = xno -a \
652 "x$enable_xa" = xno -a \
653 "x$enable_d3d1x" = xno -a \
654 "x$enable_xvmc" = xno -a \
655 "x$enable_vdpau" = xno -a \
656 "x$enable_va" = xno -a \
657 "x$enable_opencl" = xno; then
658 AC_MSG_ERROR([at least one API should be enabled])
662 if test "x$enable_opengl" = xno; then
663 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
665 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
667 if test "x$enable_gles1" = xyes; then
668 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
670 if test "x$enable_gles2" = xyes; then
671 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
673 AC_SUBST([API_DEFINES])
675 if test "x$enable_glx" = xno; then
676 AC_MSG_WARN([GLX disabled, disabling Xlib-GLX])
680 if test "x$enable_dri$enable_xlib_glx" = xyesyes; then
681 AC_MSG_ERROR([DRI and Xlib-GLX cannot be built together])
684 # Disable GLX if DRI and Xlib-GLX are not enabled
685 if test "x$enable_glx" = xyes -a \
686 "x$enable_dri" = xno -a \
687 "x$enable_xlib_glx" = xno; then
688 AC_MSG_WARN([Neither DRI nor Xlib-GLX enabled, disabling GLX])
692 AM_CONDITIONAL(HAVE_DRI, test "x$enable_dri" = xyes)
693 AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_xlib_glx" = xyes -o \
694 "x$enable_osmesa" = xyes)
696 AC_ARG_ENABLE([shared-glapi],
697 [AS_HELP_STRING([--enable-shared-glapi],
698 [Enable shared glapi for OpenGL @<:@default=yes@:>@])],
699 [enable_shared_glapi="$enableval"],
700 [enable_shared_glapi="$enable_dri"])
702 # Shared GLAPI is only useful for DRI
703 if test "x$enable_dri" = xno; then
704 AC_MSG_NOTICE([Shared GLAPI is only useful for DRI, disabling])
705 enable_shared_glapi=no
708 # TODO: Get rid of SHARED_GLAPI variable
710 if test "x$enable_shared_glapi" = xyes; then
712 # libGL will use libglapi for function lookups (IN_DRI_DRIVER means to use
714 DEFINES="$DEFINES -DIN_DRI_DRIVER"
715 CORE_DIRS="mapi/shared-glapi"
717 AC_SUBST([SHARED_GLAPI])
718 AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes)
721 dnl Driver specific build directories
724 GALLIUM_DIRS="auxiliary drivers state_trackers"
725 GALLIUM_TARGET_DIRS=""
726 GALLIUM_WINSYS_DIRS="sw"
727 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
728 GALLIUM_STATE_TRACKERS_DIRS=""
730 # build glapi if OpenGL is enabled
731 if test "x$enable_opengl" = xyes; then
732 CORE_DIRS="$CORE_DIRS mapi/glapi"
735 # build es1api if OpenGL ES 1.x is enabled
736 if test "x$enable_gles1" = xyes; then
737 CORE_DIRS="$CORE_DIRS mapi/es1api"
740 # build es2api if OpenGL ES 2.x is enabled
741 if test "x$enable_gles2" = xyes; then
742 CORE_DIRS="$CORE_DIRS mapi/es2api"
745 # build glsl and mesa if OpenGL or OpenGL ES is enabled
746 case "x$enable_opengl$enable_gles1$enable_gles2" in
748 CORE_DIRS="mapi/glapi/gen $CORE_DIRS glsl mesa"
752 case "x$enable_glx$enable_xlib_glx" in
754 DRIVER_DIRS="$DRIVER_DIRS x11"
755 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
756 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
757 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
758 HAVE_WINSYS_XLIB="yes"
762 SRC_DIRS="$SRC_DIRS glx"
766 if test "x$enable_dri" = xyes; then
767 DRIVER_DIRS="$DRIVER_DIRS dri"
769 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
770 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
774 if test "x$enable_osmesa" = xyes; then
775 DRIVER_DIRS="$DRIVER_DIRS osmesa"
779 AC_SUBST([DRIVER_DIRS])
780 AC_SUBST([GALLIUM_DIRS])
781 AC_SUBST([GALLIUM_TARGET_DIRS])
782 AC_SUBST([GALLIUM_WINSYS_DIRS])
783 AC_SUBST([GALLIUM_DRIVERS_DIRS])
784 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
785 AC_SUBST([MESA_LLVM])
788 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
789 [have_libdrm=yes], [have_libdrm=no])
791 if test "x$enable_dri" = xyes; then
792 # DRI must be shared, I think
793 if test "$enable_static" = yes; then
794 AC_MSG_ERROR([Cannot use static libraries for DRI drivers])
797 # not a hard requirement as swrast does not depend on it
798 if test "x$have_libdrm" = xyes; then
799 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
803 dnl Find out if X is available.
804 PKG_CHECK_MODULES([X11], [x11])
806 dnl Try to tell the user that the --x-* options are only used when
807 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
808 m4_divert_once([HELP_BEGIN],
809 [These options are only used when the X libraries cannot be found by the
810 pkg-config utility.])
812 dnl We need X for xlib and dri, so bomb now if it's not found
813 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
814 AC_MSG_ERROR([X11 development libraries needed for GLX])
817 if test "x$enable_glx" = xyes; then
818 DEFINES="$DEFINES -DUSE_XCB"
821 dnl Direct rendering or just indirect rendering
824 dnl Disable by default on GNU/Hurd
825 driglx_direct_default="no"
828 dnl Disable by default on cygwin
829 driglx_direct_default="no"
832 driglx_direct_default="yes"
835 AC_ARG_ENABLE([driglx-direct],
836 [AS_HELP_STRING([--disable-driglx-direct],
837 [enable direct rendering in GLX and EGL for DRI \
838 @<:@default=auto@:>@])],
839 [driglx_direct="$enableval"],
840 [driglx_direct="$driglx_direct_default"])
843 dnl libGL configuration per driver
845 case "x$enable_glx$enable_xlib_glx" in
848 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
849 GL_PC_REQ_PRIV="x11 xext"
850 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
851 GL_LIB_DEPS="$XLIBGL_LIBS"
852 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
853 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
857 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
858 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
859 if test x"$driglx_direct" = xyes; then
860 if test "x$have_libdrm" != xyes; then
861 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
863 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
864 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
867 # find the DRI deps for libGL
868 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= 1.8.1"
870 # add xf86vidmode if available
871 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
872 if test "$HAVE_XF86VIDMODE" = yes ; then
873 dri_modules="$dri_modules xxf86vm"
876 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
877 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
878 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
879 GL_LIB_DEPS="$DRIGL_LIBS"
881 # need DRM libs, -lpthread, etc.
882 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
883 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
887 # This is outside the case (above) so that it is invoked even for non-GLX
889 AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes)
891 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
892 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
893 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
894 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
896 AC_SUBST([GL_LIB_DEPS])
897 AC_SUBST([GL_PC_REQ_PRIV])
898 AC_SUBST([GL_PC_LIB_PRIV])
899 AC_SUBST([GL_PC_CFLAGS])
900 AC_SUBST([DRI_PC_REQ_PRIV])
901 AC_SUBST([GLESv1_CM_LIB_DEPS])
902 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
903 AC_SUBST([GLESv2_LIB_DEPS])
904 AC_SUBST([GLESv2_PC_LIB_PRIV])
906 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
907 AC_SUBST([GLAPI_LIB_DEPS])
910 DRI_LIB_DEPS="\$(top_builddir)/src/mesa/libdricore/libdricore${VERSION}.la"
911 GALLIUM_DRI_LIB_DEPS="\$(TOP)/\$(LIB_DIR)/libdricore${VERSION}.so"
913 AC_SUBST([HAVE_XF86VIDMODE])
918 case "x$enable_glx$enable_xlib_glx" in
920 DEFINES="$DEFINES -DUSE_XSHM"
923 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
924 if test "x$driglx_direct" = xyes; then
925 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
934 AC_ARG_ENABLE([glx-tls],
935 [AS_HELP_STRING([--enable-glx-tls],
936 [enable TLS support in GLX @<:@default=disabled@:>@])],
937 [GLX_USE_TLS="$enableval"],
939 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
941 AS_IF([test "x$GLX_USE_TLS" = xyes],
942 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
947 dnl Directory for DRI drivers
948 AC_ARG_WITH([dri-driverdir],
949 [AS_HELP_STRING([--with-dri-driverdir=DIR],
950 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
951 [DRI_DRIVER_INSTALL_DIR="$withval"],
952 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
953 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
954 dnl Extra search path for DRI drivers
955 AC_ARG_WITH([dri-searchpath],
956 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
957 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
958 [DRI_DRIVER_SEARCH_DIR="$withval"],
959 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
960 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
961 dnl Which drivers to build - default is chosen by platform
962 AC_ARG_WITH([dri-drivers],
963 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
964 [comma delimited DRI drivers list, e.g.
965 "swrast,i965,radeon" @<:@default=auto@:>@])],
966 [with_dri_drivers="$withval"],
967 [with_dri_drivers=yes])
968 if test "x$with_dri_drivers" = x; then
972 dnl If $with_dri_drivers is yes, directories will be added through
975 case "$with_dri_drivers" in
978 # classic DRI drivers require FEATURE_GL to build
979 if test "x$enable_opengl" = xyes; then
984 # verify the requested driver directories exist
985 dri_drivers=`IFS=', '; echo $with_dri_drivers`
986 for driver in $dri_drivers; do
987 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
988 AC_MSG_ERROR([DRI driver directory '$driver' does not exist])
990 DRI_DIRS="$dri_drivers"
991 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
992 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
997 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
998 if test "x$enable_dri" = xyes; then
999 # Platform specific settings and drivers to build
1002 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1003 DEFINES="$DEFINES -DHAVE_ALIAS"
1007 if test "x$DRI_DIRS" = "xyes"; then
1008 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1012 # Build only the drivers for cards that exist on PowerPC.
1013 if test "x$DRI_DIRS" = "xyes"; then
1014 DRI_DIRS="r200 radeon swrast"
1018 # Build only the drivers for cards that exist on sparc
1019 if test "x$DRI_DIRS" = "xyes"; then
1020 DRI_DIRS="r200 radeon swrast"
1025 freebsd* | dragonfly* | *netbsd*)
1026 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1027 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1029 if test "x$DRI_DIRS" = "xyes"; then
1030 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1034 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1035 DEFINES="$DEFINES -DHAVE_ALIAS"
1038 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1041 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1042 if test "x$DRI_DIRS" = "xyes"; then
1049 if test "x$DRI_DIRS" = "xyes"; then
1050 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1053 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1056 if test "x$enable_dri" = xyes; then
1059 AC_ARG_WITH([expat],
1060 [AS_HELP_STRING([--with-expat=DIR],
1061 [expat install directory])],[
1062 EXPAT_INCLUDES="-I$withval/include"
1063 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1064 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1065 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1067 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1069 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1070 [AC_MSG_ERROR([Expat required for DRI.])])
1074 # if we are building any dri driver other than swrast ...
1075 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1076 # ... libdrm is required
1077 if test "x$have_libdrm" != xyes; then
1078 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1080 # ... and build dricommon
1084 # put all the necessary libs together
1085 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1086 GALLIUM_DRI_LIB_DEPS="$GALLIUM_DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1088 AC_SUBST([DRI_DIRS])
1089 AC_SUBST([EXPAT_INCLUDES])
1090 AC_SUBST([DRI_LIB_DEPS])
1091 AC_SUBST([GALLIUM_DRI_LIB_DEPS])
1095 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1097 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1113 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED])
1114 HAVE_NOUVEAU_DRI=yes;
1120 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1122 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1125 HAVE_RADEON_DRI=yes;
1138 HAVE_SWRAST_DRI=yes;
1142 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
1143 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1144 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
1145 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
1146 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
1147 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
1148 AM_CONDITIONAL(HAVE_COMMON_DRI, test x$HAVE_COMMON_DRI = xyes)
1151 dnl OSMesa configuration
1154 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1155 AC_ARG_WITH([osmesa-bits],
1156 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1157 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1158 [osmesa_bits="$withval"],
1160 if test "x$osmesa_bits" != x8; then
1161 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1162 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1166 case "x$osmesa_bits" in
1168 OSMESA_LIB="${OSMESA_LIB}"
1171 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1172 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1175 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1179 if test "x$enable_osmesa" = xyes; then
1180 # only link libraries with osmesa if shared
1181 if test "$enable_static" = no; then
1182 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1187 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1190 AC_SUBST([OSMESA_LIB_DEPS])
1191 AC_SUBST([OSMESA_MESA_DEPS])
1192 AC_SUBST([OSMESA_PC_REQ])
1193 AC_SUBST([OSMESA_PC_LIB_PRIV])
1196 dnl gbm configuration
1198 if test "x$enable_gbm" = xauto; then
1199 case "$with_egl_platforms" in
1206 if test "x$enable_gbm" = xyes; then
1207 SRC_DIRS="$SRC_DIRS gbm"
1209 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1210 AC_MSG_ERROR([gbm needs udev]))
1212 if test "x$enable_dri" = xyes; then
1213 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1214 if test "x$enable_shared_glapi" = xno; then
1215 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1217 PKG_CHECK_MODULES([LIBKMS], [libkms], [],
1218 AC_MSG_ERROR([gbm needs libkms]))
1221 GBM_PC_REQ_PRIV="libudev"
1222 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1223 AC_SUBST([GBM_PC_REQ_PRIV])
1224 AC_SUBST([GBM_PC_LIB_PRIV])
1227 dnl EGL configuration
1231 if test "x$enable_egl" = xyes; then
1232 SRC_DIRS="$SRC_DIRS egl"
1233 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1235 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1237 if test "$enable_static" != yes; then
1238 # build egl_glx when libGL is built
1239 if test "x$enable_glx" = xyes; then
1240 HAVE_EGL_DRIVER_GLX=1
1243 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1244 [have_libudev=yes],[have_libudev=no])
1245 if test "$have_libudev" = yes; then
1246 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1249 if test "x$enable_dri" = xyes; then
1250 HAVE_EGL_DRIVER_DRI2=1
1255 AC_SUBST([EGL_LIB_DEPS])
1258 dnl EGL Gallium configuration
1260 if test "x$enable_gallium_egl" = xyes; then
1261 if test "x$with_gallium_drivers" = x; then
1262 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1264 if test "x$enable_egl" = xno; then
1265 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1267 if test "x$have_libdrm" != xyes; then
1268 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1271 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1272 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1277 dnl gbm Gallium configuration
1279 if test "x$enable_gallium_gbm" = xauto; then
1280 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1282 enable_gallium_gbm=yes ;;
1284 enable_gallium_gbm=no ;;
1287 if test "x$enable_gallium_gbm" = xyes; then
1288 if test "x$with_gallium_drivers" = x; then
1289 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1291 if test "x$enable_gbm" = xno; then
1292 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1294 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1295 if test "x$enable_dri" = xno; then
1296 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1299 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1300 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1302 enable_gallium_loader=yes
1306 dnl X.Org DDX configuration
1308 if test "x$enable_xorg" = xyes; then
1309 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1310 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1311 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1312 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1313 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1314 HAVE_XEXTPROTO_71="no")
1315 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1320 dnl XA configuration
1322 if test "x$enable_xa" = xyes; then
1325 AC_CHECK_PROG(NM, nm, "nm")
1326 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1327 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1331 if test "x$enable_xa" = xyes; then
1332 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1340 dnl OpenVG configuration
1344 if test "x$enable_openvg" = xyes; then
1345 if test "x$enable_egl" = xno; then
1346 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1348 if test "x$with_gallium_drivers" = x; then
1349 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1351 if test "x$enable_gallium_egl" = xno; then
1352 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1355 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1356 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1357 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1358 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1360 VG_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1361 AC_SUBST([VG_PC_LIB_PRIV])
1365 dnl D3D1X configuration
1368 if test "x$enable_d3d1x" = xyes; then
1369 if test "x$with_gallium_drivers" = x; then
1370 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1373 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1378 dnl Gallium G3DVL configuration
1380 AC_ARG_ENABLE([gallium-g3dvl],
1381 [AS_HELP_STRING([--enable-gallium-g3dvl],
1382 [build gallium g3dvl @<:@default=disabled@:>@])],
1383 [enable_gallium_g3dvl="$enableval"],
1384 [enable_gallium_g3dvl=no])
1385 if test "x$enable_gallium_g3dvl" = xyes; then
1386 if test "x$with_gallium_drivers" = x; then
1387 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1390 if test "x$enable_xvmc" = xauto; then
1391 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1394 if test "x$enable_vdpau" = xauto; then
1395 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1398 if test "x$enable_va" = xauto; then
1399 #don't enable vaapi state tracker even if package exists
1400 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1405 if test "x$enable_xvmc" = xyes; then
1406 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 x11-xcb xcb-dri2 >= 1.8])
1407 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xvmc"
1411 if test "x$enable_vdpau" = xyes; then
1412 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1 x11-xcb xcb-dri2 >= 1.8])
1413 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1417 if test "x$enable_va" = xyes; then
1418 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1 x11-xcb xcb-dri2 >= 1.8])
1419 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1420 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1425 dnl OpenCL configuration
1428 AC_ARG_WITH([libclc-path],
1429 [AS_HELP_STRING([--with-libclc-path],
1430 [Path to libclc builtins library. Example: --with-libclc-path=\$HOME/libclc/])],
1431 [LIBCLC_PATH="$withval"],
1434 AC_ARG_WITH([clang-libdir],
1435 [AS_HELP_STRING([--with-clang-libdir],
1436 [Path to Clang libraries @<:@default=llvm-config --libdir@:>@])],
1437 [CLANG_LIBDIR="$withval"],
1440 AC_SUBST([LIBCLC_PATH])
1442 if test "x$enable_opencl" = xyes; then
1443 if test "x$with_gallium_drivers" = x; then
1444 AC_MSG_ERROR([cannot enable OpenCL without Gallium])
1447 if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 6; then
1448 AC_MSG_ERROR([gcc >= 4.6 is required to build clover])
1451 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS clover"
1452 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS opencl"
1453 enable_gallium_loader=yes
1457 dnl Gallium configuration
1459 if test "x$with_gallium_drivers" != x; then
1460 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1462 AM_CONDITIONAL(HAVE_GALLIUM, test "x$with_gallium_drivers" != x)
1464 AC_SUBST([LLVM_BINDIR])
1465 AC_SUBST([LLVM_CFLAGS])
1466 AC_SUBST([LLVM_CPPFLAGS])
1467 AC_SUBST([LLVM_CXXFLAGS])
1468 AC_SUBST([LLVM_LIBDIR])
1469 AC_SUBST([LLVM_LIBS])
1470 AC_SUBST([LLVM_LDFLAGS])
1471 AC_SUBST([LLVM_INCLUDEDIR])
1472 AC_SUBST([LLVM_VERSION])
1473 AC_SUBST([CLANG_RESOURCE_DIR])
1475 case "x$enable_opengl$enable_gles1$enable_gles2" in
1477 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1481 AC_SUBST([VG_LIB_DEPS])
1482 AC_SUBST([EGL_CLIENT_APIS])
1485 dnl EGL Platforms configuration
1487 AC_ARG_WITH([egl-platforms],
1488 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1489 [comma delimited native platforms libEGL supports, e.g.
1490 "x11,drm" @<:@default=auto@:>@])],
1491 [with_egl_platforms="$withval"],
1492 [if test "x$enable_egl" = xyes; then
1493 with_egl_platforms="x11"
1495 with_egl_platforms=""
1500 if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then
1501 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1504 # Do per-EGL platform setups and checks
1505 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1506 for plat in $egl_platforms; do
1509 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/$plat"
1513 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1514 [AC_MSG_ERROR([cannot find libwayland-client])])
1515 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1517 WAYLAND_PREFIX=`$PKG_CONFIG --variable=prefix wayland-client`
1518 AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner],,
1519 [${WAYLAND_PREFIX}/bin$PATH_SEPARATOR$PATH])
1523 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes])
1524 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1526 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1527 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1532 test "x$enable_gbm" = "xno" &&
1533 AC_MSG_ERROR([EGL platform drm needs gbm])
1540 AC_MSG_ERROR([EGL platform '$plat' does not exist])
1544 case "$plat$have_libudev" in
1546 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1550 # libEGL wants to default to the first platform specified in
1551 # ./configure. parse that here.
1552 if test "x$egl_platforms" != "x"; then
1553 FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr 'a-z' 'A-Z'`
1554 EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS"
1556 EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
1559 EGL_PLATFORMS="$egl_platforms"
1561 AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1)
1562 AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep 'wayland' >/dev/null 2>&1)
1563 AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep 'drm' >/dev/null 2>&1)
1564 AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep 'fbdev' >/dev/null 2>&1)
1565 AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep 'null' >/dev/null 2>&1)
1567 AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x")
1568 AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != "x")
1570 AC_SUBST([EGL_NATIVE_PLATFORM])
1571 AC_SUBST([EGL_PLATFORMS])
1572 AC_SUBST([EGL_CFLAGS])
1574 AC_ARG_WITH([egl-driver-dir],
1575 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1576 [directory for EGL drivers [[default=${libdir}/egl]]])],
1577 [EGL_DRIVER_INSTALL_DIR="$withval"],
1578 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1579 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1581 AC_ARG_WITH([xorg-driver-dir],
1582 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1583 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1584 [XORG_DRIVER_INSTALL_DIR="$withval"],
1585 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1586 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1588 AC_ARG_WITH([max-width],
1589 [AS_HELP_STRING([--with-max-width=N],
1590 [Maximum framebuffer width (4096)])],
1591 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1592 AS_IF([test "${withval}" -gt "4096"],
1593 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1595 AC_ARG_WITH([max-height],
1596 [AS_HELP_STRING([--with-max-height=N],
1597 [Maximum framebuffer height (4096)])],
1598 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1599 AS_IF([test "${withval}" -gt "4096"],
1600 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1606 AC_ARG_ENABLE([gallium-llvm],
1607 [AS_HELP_STRING([--enable-gallium-llvm],
1608 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1609 [enable_gallium_llvm="$enableval"],
1610 [enable_gallium_llvm=auto])
1612 AC_ARG_WITH([llvm-shared-libs],
1613 [AS_HELP_STRING([--with-llvm-shared-libs],
1614 [link with LLVM shared libraries @<:@default=disabled@:>@])],
1615 [with_llvm_shared_libs=yes],
1616 [with_llvm_shared_libs=no])
1618 AC_ARG_WITH([llvm-prefix],
1619 [AS_HELP_STRING([--with-llvm-prefix],
1620 [Prefix for LLVM installations in non-standard locations])],
1621 [llvm_prefix="$withval"],
1625 if test "x$with_gallium_drivers" = x; then
1626 enable_gallium_llvm=no
1628 if test "x$enable_gallium_llvm" = xauto; then
1630 i*86|x86_64) enable_gallium_llvm=yes;;
1633 if test "x$enable_gallium_llvm" = xyes; then
1634 if test "x$llvm_prefix" != x; then
1635 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"])
1637 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1640 if test "x$LLVM_CONFIG" != xno; then
1641 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1642 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g' -e 's/-Wcovered-switch-default//g'`
1643 if test "x$with_llvm_shared_libs" = xyes; then
1644 dnl We can't use $LLVM_VERSION because it has 'svn' stripped out,
1645 LLVM_LIBS="-lLLVM-`$LLVM_CONFIG --version`"
1647 LLVM_COMPONENTS="engine bitwriter"
1648 if $LLVM_CONFIG --components | grep -q '\<mcjit\>'; then
1649 LLVM_COMPONENTS="${LLVM_COMPONENTS} mcjit"
1651 if test "x$enable_opencl" = xyes; then
1652 LLVM_COMPONENTS="${LLVM_COMPONENTS} ipo linker instrumentation"
1654 LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
1656 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1657 LLVM_BINDIR=`$LLVM_CONFIG --bindir`
1658 LLVM_CXXFLAGS=`$LLVM_CONFIG --cxxflags`
1659 LLVM_CPPFLAGS=`$LLVM_CONFIG --cppflags`
1660 LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir`
1661 LLVM_LIBDIR=`$LLVM_CONFIG --libdir`
1662 DEFINES="${DEFINES} -DHAVE_LLVM=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/0x0\10\2/g'`"
1665 dnl Check for Clang interanl headers
1666 if test "x$enable_opencl" = xyes; then
1667 if test "x$CLANG_LIBDIR" = x; then
1668 CLANG_LIBDIR=${LLVM_LIBDIR}
1670 CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
1671 AC_CHECK_FILE("$CLANG_RESOURCE_DIR/include/stddef.h",,
1672 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.]))
1681 dnl Directory for XVMC libs
1682 AC_ARG_WITH([xvmc-libdir],
1683 [AS_HELP_STRING([--with-xvmc-libdir=DIR],
1684 [directory for the XVMC libraries @<:@default=${libdir}@:>@])],
1685 [XVMC_LIB_INSTALL_DIR="$withval"],
1686 [XVMC_LIB_INSTALL_DIR='${libdir}'])
1687 AC_SUBST([XVMC_LIB_INSTALL_DIR])
1692 if test "x$enable_gallium_tests" = xyes; then
1693 SRC_DIRS="$SRC_DIRS gallium/tests/trivial"
1694 enable_gallium_loader=yes
1697 dnl Directory for VDPAU libs
1698 AC_ARG_WITH([vdpau-libdir],
1699 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1700 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1701 [VDPAU_LIB_INSTALL_DIR="$withval"],
1702 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1703 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1705 dnl Directory for VA libs
1706 AC_ARG_WITH([va-libdir],
1707 [AS_HELP_STRING([--with-va-libdir=DIR],
1708 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1709 [VA_LIB_INSTALL_DIR="$withval"],
1710 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1711 AC_SUBST([VA_LIB_INSTALL_DIR])
1713 dnl Directory for OpenCL libs
1714 AC_ARG_WITH([opencl-libdir],
1715 [AS_HELP_STRING([--with-opencl-libdir=DIR],
1716 [directory for the OpenCL libraries @<:@default=${libdir}/opencl@:>@])],
1717 [OPENCL_LIB_INSTALL_DIR="$withval"],
1718 [OPENCL_LIB_INSTALL_DIR='${libdir}/opencl'])
1719 AC_SUBST([OPENCL_LIB_INSTALL_DIR])
1722 dnl Gallium helper functions
1724 gallium_check_st() {
1725 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1726 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1727 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1728 if test "x$have_libdrm" != xyes; then
1729 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1731 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1733 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1734 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1736 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1737 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1739 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1740 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1742 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1743 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1745 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1746 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1748 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1749 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1753 gallium_require_llvm() {
1754 if test "x$MESA_LLVM" = x0; then
1756 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1761 gallium_require_drm_loader() {
1762 if test "x$enable_gallium_loader" = xyes; then
1763 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1764 AC_MSG_ERROR([Gallium drm loader requrires libudev]))
1765 if test "x$have_libdrm" != xyes; then
1766 AC_MSG_ERROR([Gallium drm loader requires libdrm >= $LIBDRM_REQUIRED])
1768 enable_gallium_drm_loader=yes
1773 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1774 if test "x$with_gallium_drivers" != x; then
1775 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1776 for driver in $gallium_drivers; do
1779 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1780 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1783 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1784 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1785 if test "x$MESA_LLVM" = x1; then
1786 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1788 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1789 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1792 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1793 gallium_require_llvm "Gallium R300"
1794 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1795 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1798 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1799 gallium_require_drm_loader
1800 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1801 if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then
1802 if test "x$LLVM_VERSION" != "x3.1"; then
1803 AC_MSG_ERROR([LLVM 3.1 is required for the r600 llvm compiler.])
1805 NEED_RADEON_GALLIUM=yes;
1807 if test "x$enable_r600_llvm" = xyes; then
1808 USE_R600_LLVM_COMPILER=yes;
1810 if test "x$enable_opencl" = xyes -a "x$with_llvm_shared_libs" = xno; then
1811 LLVM_LIBS="${LLVM_LIBS} `$LLVM_CONFIG --libs bitreader asmparser`"
1813 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1816 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1817 gallium_require_drm_loader
1818 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS radeonsi"
1819 if test "x$LLVM_VERSION" != "x3.1"; then
1820 AC_MSG_ERROR([LLVM 3.1 is required to build the radeonsi driver.])
1822 NEED_RADEON_GALLIUM=yes;
1823 gallium_check_st "radeon/drm" "dri-radeonsi" "xorg-radeonsi" "" "" "vdpau-radeonsi" ""
1826 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1827 gallium_require_drm_loader
1828 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nv30 nv50 nvc0"
1829 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1832 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1833 if test "x$MESA_LLVM" = x1; then
1834 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1837 if test "x$HAVE_ST_DRI" = xyes; then
1838 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1840 if test "x$HAVE_ST_VDPAU" = xyes; then
1841 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1843 if test "x$HAVE_ST_XVMC" = xyes; then
1844 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1846 if test "x$HAVE_ST_VA" = xyes; then
1847 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1849 if test "x$HAVE_ST_VDPAU" = xyes ||
1850 test "x$HAVE_ST_XVMC" = xyes ||
1851 test "x$HAVE_ST_VA" = xyes; then
1852 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1853 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1858 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1864 if test "x$enable_gallium_loader" = xyes; then
1865 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1866 GALLIUM_PIPE_LOADER_DEFINES="-DHAVE_PIPE_LOADER_SW"
1867 GALLIUM_PIPE_LOADER_LIBS="\$(TOP)/src/gallium/auxiliary/pipe-loader/libpipe_loader.a"
1868 GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS \$(TOP)/src/gallium/winsys/sw/null/libws_null.a"
1870 if test "x$HAVE_WINSYS_XLIB" = xyes; then
1871 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_XLIB"
1872 GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS \$(TOP)/src/gallium/winsys/sw/xlib/libws_xlib.a"
1875 if test "x$enable_gallium_drm_loader" = xyes; then
1876 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRM"
1877 PKG_CHECK_MODULES([GALLIUM_PIPE_LOADER_XCB], [xcb xcb-dri2],
1878 pipe_loader_have_xcb=yes, pipe_loader_have_xcb=no)
1879 if test "x$pipe_loader_have_xcb" = xyes; then
1880 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DPIPE_LOADER_HAVE_XCB"
1881 GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS $GALLIUM_PIPE_LOADER_XCB_LIBS $LIBDRM_LIBS"
1885 AC_SUBST([GALLIUM_PIPE_LOADER_DEFINES])
1886 AC_SUBST([GALLIUM_PIPE_LOADER_LIBS])
1889 dnl Tell Automake which drivers to build
1890 for driver in $GALLIUM_DRIVERS_DIRS; do
1893 HAVE_GALAHAD_GALLIUM=yes;
1896 HAVE_IDENTITY_GALLIUM=yes;
1899 HAVE_NOOP_GALLIUM=yes;
1902 GALLIUM_MAKE_DIRS="$GALLIUM_MAKE_DIRS $driver"
1907 AM_CONDITIONAL(HAVE_GALAHAD_GALLIUM, test x$HAVE_GALAHAD_GALLIUM = xyes)
1908 AM_CONDITIONAL(HAVE_IDENTITY_GALLIUM, test x$HAVE_IDENTITY_GALLIUM = xyes)
1909 AM_CONDITIONAL(HAVE_NOOP_GALLIUM, test x$HAVE_NOOP_GALLIUM = xyes)
1910 AM_CONDITIONAL(NEED_RADEON_GALLIUM, test x$NEED_RADEON_GALLIUM = xyes)
1911 AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes)
1912 AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes)
1913 AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes)
1914 AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
1915 AC_SUBST([GALLIUM_MAKE_DIRS])
1917 AM_CONDITIONAL(HAVE_X11_DRIVER, echo "$DRIVER_DIRS" | grep 'x11' >/dev/null 2>&1)
1919 AM_CONDITIONAL(HAVE_X86_ASM, echo "$DEFINES" | grep 'X86_ASM' >/dev/null 2>&1)
1920 AM_CONDITIONAL(HAVE_X86_64_ASM, echo "$DEFINES" | grep 'X86_64_ASM' >/dev/null 2>&1)
1921 AM_CONDITIONAL(HAVE_SPARC_ASM, echo "$DEFINES" | grep 'SPARC_ASM' >/dev/null 2>&1)
1923 # To pass as an argument to libtool's -version-number flag
1924 VERSION_NUMBER=`echo "$VERSION" | $SED 's/\./:/g'`
1925 AC_SUBST([VERSION_NUMBER])
1927 dnl prepend CORE_DIRS to SRC_DIRS
1928 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1930 dnl Restore LDFLAGS and CPPFLAGS
1931 LDFLAGS="$_SAVE_LDFLAGS"
1932 CPPFLAGS="$_SAVE_CPPFLAGS"
1934 dnl Add user CFLAGS and CXXFLAGS
1935 CFLAGS="$CFLAGS $USER_CFLAGS"
1936 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1938 dnl Substitute the config
1939 AC_CONFIG_FILES([configs/current
1942 src/egl/drivers/Makefile
1943 src/egl/drivers/dri2/Makefile
1944 src/egl/drivers/glx/Makefile
1945 src/egl/main/Makefile
1947 src/egl/wayland/Makefile
1948 src/egl/wayland/wayland-drm/Makefile
1949 src/egl/wayland/wayland-egl/Makefile
1950 src/egl/wayland/wayland-egl/wayland-egl.pc
1951 src/gallium/Makefile
1952 src/gallium/auxiliary/pipe-loader/Makefile
1953 src/gallium/drivers/Makefile
1954 src/gallium/drivers/r300/Makefile
1955 src/gallium/drivers/r600/Makefile
1956 src/gallium/state_trackers/clover/Makefile
1957 src/gallium/targets/opencl/Makefile
1961 src/glsl/glcpp/Makefile
1962 src/glsl/tests/Makefile
1964 src/glx/tests/Makefile
1967 src/mapi/es1api/Makefile
1968 src/mapi/es1api/glesv1_cm.pc
1969 src/mapi/es2api/Makefile
1970 src/mapi/es2api/glesv2.pc
1971 src/mapi/glapi/Makefile
1972 src/mapi/glapi/gen/Makefile
1973 src/mapi/glapi/tests/Makefile
1974 src/mapi/shared-glapi/Makefile
1975 src/mapi/shared-glapi/tests/Makefile
1976 src/mapi/vgapi/Makefile
1977 src/mapi/vgapi/vg.pc
1980 src/mesa/drivers/Makefile
1981 src/mesa/drivers/dri/dri.pc
1982 src/mesa/drivers/dri/common/Makefile
1983 src/mesa/drivers/dri/i915/Makefile
1984 src/mesa/drivers/dri/i965/Makefile
1985 src/mesa/drivers/dri/Makefile
1986 src/mesa/drivers/dri/nouveau/Makefile
1987 src/mesa/drivers/dri/r200/Makefile
1988 src/mesa/drivers/dri/radeon/Makefile
1989 src/mesa/drivers/dri/swrast/Makefile
1990 src/mesa/drivers/osmesa/Makefile
1991 src/mesa/drivers/osmesa/osmesa.pc
1992 src/mesa/drivers/x11/Makefile
1993 src/mesa/libdricore/Makefile
1994 src/mesa/main/tests/Makefile
1995 src/mesa/x86-64/Makefile
1996 src/mesa/x86/Makefile])
1998 dnl Sort the dirs alphabetically
1999 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2000 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2001 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2002 GALLIUM_MAKE_DIRS=`echo $GALLIUM_MAKE_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2003 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2008 dnl Output some configuration info for the user
2011 echo " prefix: $prefix"
2012 echo " exec_prefix: $exec_prefix"
2013 echo " libdir: $libdir"
2014 echo " includedir: $includedir"
2018 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
2019 echo " OpenVG: $enable_openvg"
2023 if test "x$enable_osmesa" != xno; then
2024 echo " OSMesa: lib$OSMESA_LIB"
2029 if test "x$enable_dri" != xno; then
2030 # cleanup the drivers var
2031 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2032 if test "x$DRI_DIRS" = x; then
2033 echo " DRI drivers: no"
2035 echo " DRI drivers: $dri_dirs"
2037 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
2040 case "x$enable_glx$enable_xlib_glx" in
2042 echo " GLX: Xlib-based"
2045 echo " GLX: DRI-based"
2048 echo " GLX: $enable_glx"
2056 echo " EGL: $enable_egl"
2057 if test "$enable_egl" = yes; then
2058 echo " EGL platforms: $EGL_PLATFORMS"
2061 if test "x$HAVE_EGL_DRIVER_GLX" != "x"; then
2062 egl_drivers="$egl_drivers builtin:egl_glx"
2064 if test "x$HAVE_EGL_DRIVER_DRI2" != "x"; then
2065 egl_drivers="$egl_drivers builtin:egl_dri2"
2068 if test "x$HAVE_ST_EGL" = xyes; then
2069 echo " EGL drivers: ${egl_drivers} egl_gallium"
2070 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2072 echo " EGL drivers: $egl_drivers"
2077 if test "x$MESA_LLVM" = x1; then
2079 echo " llvm-config: $LLVM_CONFIG"
2080 echo " llvm-version: $LLVM_VERSION"
2086 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2087 echo " Gallium: yes"
2088 echo " Gallium dirs: $GALLIUM_DIRS"
2089 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2090 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2091 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2092 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2100 echo " Shared libs: $enable_shared"
2101 echo " Static libs: $enable_static"
2102 echo " Shared-glapi: $enable_shared_glapi"
2104 dnl Compiler options
2105 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2106 cflags=`echo $CFLAGS $PIC_FLAGS | \
2107 $SED 's/^ *//;s/ */ /;s/ *$//'`
2108 cxxflags=`echo $CXXFLAGS $PIC_FLAGS | \
2109 $SED 's/^ *//;s/ */ /;s/ *$//'`
2110 defines=`echo $DEFINES | $SED 's/^ *//;s/ */ /;s/ *$//'`
2112 echo " CFLAGS: $cflags"
2113 echo " CXXFLAGS: $cxxflags"
2114 echo " Macros: $defines"
2116 echo " PYTHON2: $PYTHON2"
2119 echo " Run '${MAKE-make}' to build Mesa"