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.1.0],
10 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
11 AC_CONFIG_AUX_DIR([bin])
12 AC_CONFIG_MACRO_DIR([m4])
14 AM_INIT_AUTOMAKE([foreign])
16 dnl http://people.gnome.org/~walters/docs/build-api.txt
17 dnl We don't support srcdir != builddir.
18 echo \#buildapi-variable-no-builddir >/dev/null
20 # Support silent build rules, requires at least automake-1.11. Disable
21 # by either passing --disable-silent-rules to configure or passing V=1
23 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
25 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
28 LT_INIT([disable-static])
30 dnl Set internal versions
32 AC_SUBST([OSMESA_VERSION])
34 dnl Versions for external dependencies
35 LIBDRM_REQUIRED=2.4.24
36 LIBDRM_RADEON_REQUIRED=2.4.39
37 LIBDRM_INTEL_REQUIRED=2.4.38
38 LIBDRM_NVVIEUX_REQUIRED=2.4.33
39 LIBDRM_NOUVEAU_REQUIRED=2.4.33
40 DRI2PROTO_REQUIRED=2.6
41 GLPROTO_REQUIRED=1.4.14
42 LIBDRM_XORG_REQUIRED=2.4.24
43 LIBKMS_XORG_REQUIRED=1.0.0
51 AC_CHECK_PROGS([MAKE], [gmake make])
52 AC_CHECK_PROGS([PYTHON2], [python2 python])
55 AC_PATH_PROG([MKDEP], [makedepend])
57 if test "x$MKDEP" = "x"; then
58 AC_MSG_ERROR([makedepend is required to build Mesa])
62 AC_PATH_PROG([YACC_INST], $YACC)
63 if test ! -f "$srcdir/src/glsl/glcpp/glcpp-parse.c"; then
64 if test -z "$YACC_INST"; then
65 AC_MSG_ERROR([yacc not found - unable to compile glcpp-parse.y])
70 AC_PATH_PROG([PERL], [perl])
72 AC_CHECK_PROG(INDENT, indent, indent, cat)
73 if test "x$INDENT" != "xcat"; then
74 AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -T GLubyte -T GLbyte -T Bool')
77 dnl Our fallback install-sh is a symlink to minstall. Use the existing
78 dnl configuration in that case.
80 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
82 dnl We need a POSIX shell for parts of the build. Assume we have one
86 # Solaris /bin/sh is too old/non-POSIX compliant
87 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
92 dnl clang is mostly GCC-compatible, but its version is much lower,
93 dnl so we have to check for it.
94 AC_MSG_CHECKING([if compiling with clang])
97 [AC_LANG_PROGRAM([], [[
102 [acv_mesa_CLANG=yes], [acv_mesa_CLANG=no])
104 AC_MSG_RESULT([$acv_mesa_CLANG])
106 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
107 dnl versions are explictly not supported.
108 if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
109 AC_MSG_CHECKING([whether gcc version is sufficient])
113 GCC_VERSION=`$CC -dumpversion`
114 if test $? -eq 0; then
115 GCC_VERSION_MAJOR=`echo $GCC_VERSION | cut -d. -f1`
116 GCC_VERSION_MINOR=`echo $GCC_VERSION | cut -d. -f2`
119 if test $GCC_VERSION_MAJOR -lt 3 -o $GCC_VERSION_MAJOR -eq 3 -a $GCC_VERSION_MINOR -lt 3 ; then
121 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
128 MKDEP_OPTIONS=-fdepend
129 dnl Ask gcc where it's keeping its secret headers
130 if test "x$GCC" = xyes; then
131 for dir in include include-fixed; do
132 GCC_INCLUDES=`$CC -print-file-name=$dir`
133 if test "x$GCC_INCLUDES" != x && \
134 test "$GCC_INCLUDES" != "$dir" && \
135 test -d "$GCC_INCLUDES"; then
136 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
140 AC_SUBST([MKDEP_OPTIONS])
142 dnl Make sure the pkg-config macros are defined
143 m4_ifndef([PKG_PROG_PKG_CONFIG],
144 [m4_fatal([Could not locate the pkg-config autoconf macros.
145 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
146 are in a different location, try setting the environment variable
147 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
148 PKG_PROG_PKG_CONFIG()
150 dnl LIB_DIR - library basename
151 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
154 dnl Cache LDFLAGS and CPPFLAGS so we can add to them and restore later
155 _SAVE_LDFLAGS="$LDFLAGS"
156 _SAVE_CPPFLAGS="$CPPFLAGS"
163 DEFINES="$DEFINES -D_GNU_SOURCE"
166 DEFINES="$DEFINES -DSVR4"
173 dnl Add flags for gcc and g++
174 if test "x$GCC" = xyes; then
175 CFLAGS="$CFLAGS -Wall -std=c99"
177 # Enable -Werror=implicit-function-declaration and
178 # -Werror=missing-prototypes, if available, or otherwise, just
179 # -Wmissing-prototypes. This is particularly useful to avoid
180 # generating a loadable driver module that has undefined symbols.
181 save_CFLAGS="$CFLAGS"
182 AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
183 CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
184 CFLAGS="$CFLAGS -Werror=missing-prototypes"
185 AC_LINK_IFELSE([AC_LANG_PROGRAM()],
186 AC_MSG_RESULT([yes]),
187 [CFLAGS="$save_CFLAGS -Wmissing-prototypes";
188 AC_MSG_RESULT([no])]);
190 # Enable -fvisibility=hidden if using a gcc that supports it
191 save_CFLAGS="$CFLAGS"
192 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
193 VISIBILITY_CFLAGS="-fvisibility=hidden"
194 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
195 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
196 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
198 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
201 # Work around aliasing bugs - developers should comment this out
202 CFLAGS="$CFLAGS -fno-strict-aliasing"
204 # gcc's builtin memcmp is slower than glibc's
205 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
206 CFLAGS="$CFLAGS -fno-builtin-memcmp"
208 if test "x$GXX" = xyes; then
209 CXXFLAGS="$CXXFLAGS -Wall"
211 # Enable -fvisibility=hidden if using a gcc that supports it
212 save_CXXFLAGS="$CXXFLAGS"
213 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
214 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
215 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
217 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
218 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
221 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
222 CXXFLAGS=$save_CXXFLAGS
224 # Work around aliasing bugs - developers should comment this out
225 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
227 # gcc's builtin memcmp is slower than glibc's
228 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
229 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
232 dnl even if the compiler appears to support it, using visibility attributes isn't
233 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
237 VISIBILITY_CXXFLAGS=""
241 AC_SUBST([VISIBILITY_CFLAGS])
242 AC_SUBST([VISIBILITY_CXXFLAGS])
245 dnl Hacks to enable 32 or 64 bit build
247 AC_ARG_ENABLE([32-bit],
248 [AS_HELP_STRING([--enable-32-bit],
249 [build 32-bit libraries @<:@default=auto@:>@])],
250 [enable_32bit="$enableval"],
253 if test "x$enable_32bit" = xyes; then
254 if test "x$GCC" = xyes; then
255 CFLAGS="$CFLAGS -m32"
256 CCASFLAGS="$CCASFLAGS -m32"
258 if test "x$GXX" = xyes; then
259 CXXFLAGS="$CXXFLAGS -m32"
262 AC_ARG_ENABLE([64-bit],
263 [AS_HELP_STRING([--enable-64-bit],
264 [build 64-bit libraries @<:@default=auto@:>@])],
265 [enable_64bit="$enableval"],
268 if test "x$enable_64bit" = xyes; then
269 if test "x$GCC" = xyes; then
270 CFLAGS="$CFLAGS -m64"
272 if test "x$GXX" = xyes; then
273 CXXFLAGS="$CXXFLAGS -m64"
277 dnl Can't have static and shared libraries, default to static if user
278 dnl explicitly requested. If both disabled, set to static since shared
279 dnl was explicitly requested.
280 case "x$enable_static$enable_shared" in
282 AC_MSG_WARN([Cannot build static and shared libraries, disabling shared])
286 AC_MSG_WARN([Cannot disable both static and shared libraries, enabling static])
291 AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes)
296 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
297 if test "$enable_static" = yes; then
298 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
300 AC_SUBST([MKLIB_OPTIONS])
303 dnl other compiler options
305 AC_ARG_ENABLE([debug],
306 [AS_HELP_STRING([--enable-debug],
307 [use debug compiler flags and macros @<:@default=disabled@:>@])],
308 [enable_debug="$enableval"],
311 if test "x$enable_debug" = xyes; then
312 DEFINES="$DEFINES -DDEBUG"
313 if test "x$GCC" = xyes; then
316 if test "x$GXX" = xyes; then
317 CXXFLAGS="$CXXFLAGS -g"
324 LIB_PREFIX_GLOB='lib'
325 LIB_VERSION_SEPARATOR='.'
326 if test "$enable_static" = yes; then
331 LIB_EXTENSION='dylib' ;;
333 dnl prefix can be 'cyg' or 'lib'
334 LIB_PREFIX_GLOB='???'
335 LIB_VERSION_SEPARATOR='-'
336 LIB_EXTENSION='dll' ;;
340 LIB_EXTENSION='so' ;;
343 AC_ARG_WITH([gl-lib-name],
344 [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
345 [specify GL library name @<:@default=GL@:>@])],
348 AC_ARG_WITH([osmesa-lib-name],
349 [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
350 [specify OSMesa library name @<:@default=OSMesa@:>@])],
351 [OSMESA_LIB=$withval],
353 AS_IF([test "x$GL_LIB" = xyes], [GL_LIB=GL])
354 AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
357 dnl Mangled Mesa support
359 AC_ARG_ENABLE([mangling],
360 [AS_HELP_STRING([--enable-mangling],
361 [enable mangled symbols and library name @<:@default=disabled@:>@])],
362 [enable_mangling="${enableval}"],
365 if test "x${enable_mangling}" = "xyes" ; then
366 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
367 GL_LIB="Mangled${GL_LIB}"
368 OSMESA_LIB="Mangled${OSMESA_LIB}"
371 AC_SUBST([OSMESA_LIB])
374 dnl potentially-infringing-but-nobody-knows-for-sure stuff
376 AC_ARG_ENABLE([texture-float],
377 [AS_HELP_STRING([--enable-texture-float],
378 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
379 [enable_texture_float="$enableval"],
380 [enable_texture_float=no]
382 if test "x$enable_texture_float" = xyes; then
383 AC_MSG_WARN([Floating-point textures enabled.])
384 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
385 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
388 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
389 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
390 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
391 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
392 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
393 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
394 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
396 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
397 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
398 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
399 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
400 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
401 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
402 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
404 AC_SUBST([GL_LIB_NAME])
405 AC_SUBST([OSMESA_LIB_NAME])
406 AC_SUBST([EGL_LIB_NAME])
407 AC_SUBST([GLESv1_CM_LIB_NAME])
408 AC_SUBST([GLESv2_LIB_NAME])
409 AC_SUBST([VG_LIB_NAME])
410 AC_SUBST([GLAPI_LIB_NAME])
412 AC_SUBST([GL_LIB_GLOB])
413 AC_SUBST([EGL_LIB_GLOB])
414 AC_SUBST([GLESv1_CM_LIB_GLOB])
415 AC_SUBST([GLESv2_LIB_GLOB])
416 AC_SUBST([VG_LIB_GLOB])
417 AC_SUBST([GLAPI_LIB_GLOB])
420 dnl Arch/platform-specific settings
423 [AS_HELP_STRING([--disable-asm],
424 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
425 [enable_asm="$enableval"],
430 AC_MSG_CHECKING([whether to enable assembly])
431 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
432 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
433 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
437 AC_MSG_RESULT([no, cross compiling])
441 # check for supported arches
442 if test "x$enable_asm" = xyes; then
446 linux* | *freebsd* | dragonfly* | *netbsd*)
447 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
453 linux* | *freebsd* | dragonfly* | *netbsd*)
454 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
469 DEFINES="$DEFINES -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
470 MESA_ASM_FILES='$(X86_FILES)'
471 AC_MSG_RESULT([yes, x86])
474 DEFINES="$DEFINES -DUSE_X86_64_ASM"
475 MESA_ASM_FILES='$(X86_64_FILES)'
476 AC_MSG_RESULT([yes, x86_64])
479 DEFINES="$DEFINES -DUSE_SPARC_ASM"
480 MESA_ASM_FILES='$(SPARC_FILES)'
481 AC_MSG_RESULT([yes, sparc])
484 AC_MSG_RESULT([no, platform not supported])
488 AC_SUBST([MESA_ASM_FILES])
493 dnl Check to see if dlopen is in default libraries (like Solaris, which
494 dnl has it in libc), or if libdl is needed to get it.
495 AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
496 [AC_CHECK_LIB([dl], [dlopen],
497 [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])])
498 AC_SUBST([DLOPEN_LIBS])
500 dnl See if posix_memalign is available
501 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
503 dnl Check for pthreads
505 dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS
506 dnl to -pthread, which causes problems if we need -lpthread to appear in
508 test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
510 dnl SELinux awareness.
511 AC_ARG_ENABLE([selinux],
512 [AS_HELP_STRING([--enable-selinux],
513 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
514 [MESA_SELINUX="$enableval"],
516 if test "x$enable_selinux" = "xyes"; then
517 AC_CHECK_HEADER([selinux/selinux.h],[],
518 [AC_MSG_ERROR([SELinux headers not found])])
519 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
520 [AC_MSG_ERROR([SELinux library not found])])
521 SELINUX_LIBS="-lselinux"
522 DEFINES="$DEFINES -DMESA_SELINUX"
524 AC_SUBST([SELINUX_LIBS])
527 AC_ARG_ENABLE([opengl],
528 [AS_HELP_STRING([--disable-opengl],
529 [disable support for standard OpenGL API @<:@default=no@:>@])],
530 [enable_opengl="$enableval"],
532 AC_ARG_ENABLE([gles1],
533 [AS_HELP_STRING([--enable-gles1],
534 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
535 [enable_gles1="$enableval"],
537 AC_ARG_ENABLE([gles2],
538 [AS_HELP_STRING([--enable-gles2],
539 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
540 [enable_gles2="$enableval"],
542 AC_ARG_ENABLE([openvg],
543 [AS_HELP_STRING([--enable-openvg],
544 [enable support for OpenVG API @<:@default=no@:>@])],
545 [enable_openvg="$enableval"],
549 [AS_HELP_STRING([--enable-dri],
550 [enable DRI modules @<:@default=enabled@:>@])],
551 [enable_dri="$enableval"],
554 [AS_HELP_STRING([--enable-glx],
555 [enable GLX library @<:@default=enabled@:>@])],
556 [enable_glx="$enableval"],
558 AC_ARG_ENABLE([osmesa],
559 [AS_HELP_STRING([--enable-osmesa],
560 [enable OSMesa library @<:@default=disabled@:>@])],
561 [enable_osmesa="$enableval"],
564 [AS_HELP_STRING([--disable-egl],
565 [disable EGL library @<:@default=enabled@:>@])],
566 [enable_egl="$enableval"],
569 AC_ARG_ENABLE([xorg],
570 [AS_HELP_STRING([--enable-xorg],
571 [enable support for X.Org DDX API @<:@default=no@:>@])],
572 [enable_xorg="$enableval"],
575 [AS_HELP_STRING([--enable-xa],
576 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
577 [enable_xa="$enableval"],
579 dnl Broken, unmaintained. Don't want to see bug reports about it without patches.
581 dnl AC_ARG_ENABLE([d3d1x],
582 dnl [AS_HELP_STRING([--enable-d3d1x],
583 dnl [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
584 dnl [enable_d3d1x="$enableval"],
585 dnl [enable_d3d1x=no])
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"],
602 AC_ARG_ENABLE([opencl],
603 [AS_HELP_STRING([--enable-opencl],
604 [enable OpenCL library @<:@default=no@:>@])],
605 [enable_opencl="$enableval"],
607 AC_ARG_ENABLE([xlib_glx],
608 [AS_HELP_STRING([--enable-xlib-glx],
609 [make GLX library Xlib-based instead of DRI-based @<:@default=disabled@:>@])],
610 [enable_xlib_glx="$enableval"],
611 [enable_xlib_glx=no])
612 AC_ARG_ENABLE([gallium_egl],
613 [AS_HELP_STRING([--enable-gallium-egl],
614 [enable optional EGL state tracker (not required
615 for EGL support in Gallium with OpenGL and OpenGL ES)
616 @<:@default=disable@:>@])],
617 [enable_gallium_egl="$enableval"],
618 [enable_gallium_egl=no])
619 AC_ARG_ENABLE([gallium_gbm],
620 [AS_HELP_STRING([--enable-gallium-gbm],
621 [enable optional gbm state tracker (not required for
622 gbm support in Gallium)
623 @<:@default=auto@:>@])],
624 [enable_gallium_gbm="$enableval"],
625 [enable_gallium_gbm=auto])
627 AC_ARG_ENABLE([r600-llvm-compiler],
628 [AS_HELP_STRING([--enable-r600-llvm-compiler],
629 [Enable experimental LLVM backend for graphics shaders @<:@default=disable@:>@])],
630 [enable_r600_llvm="$enableval"],
631 [enable_r600_llvm=no])
633 AC_ARG_ENABLE([gallium_tests],
634 [AS_HELP_STRING([--enable-gallium-tests],
635 [Enable optional Gallium tests) @<:@default=disable@:>@])],
636 [enable_gallium_tests="$enableval"],
637 [enable_gallium_tests=no])
639 # Option for Gallium drivers
640 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
642 AC_ARG_WITH([gallium-drivers],
643 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
644 [comma delimited Gallium drivers list, e.g.
645 "i915,nouveau,r300,r600,radeonsi,svga,swrast"
646 @<:@default=r300,r600,swrast@:>@])],
647 [with_gallium_drivers="$withval"],
648 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
650 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
651 # here so that the script doesn't choke on an unknown driver name later.
652 case "$with_gallium_drivers" in
653 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
654 no) with_gallium_drivers='' ;;
657 if test "x$enable_opengl" = xno -a \
658 "x$enable_gles1" = xno -a \
659 "x$enable_gles2" = xno -a \
660 "x$enable_openvg" = xno -a \
661 "x$enable_xorg" = xno -a \
662 "x$enable_xa" = xno -a \
663 "x$enable_d3d1x" = xno -a \
664 "x$enable_xvmc" = xno -a \
665 "x$enable_vdpau" = xno -a \
666 "x$enable_opencl" = xno; then
667 AC_MSG_ERROR([at least one API should be enabled])
671 if test "x$enable_opengl" = xno; then
672 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
674 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
676 if test "x$enable_gles1" = xyes; then
677 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
679 if test "x$enable_gles2" = xyes; then
680 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
682 AC_SUBST([API_DEFINES])
684 if test "x$enable_glx" = xno; then
685 AC_MSG_WARN([GLX disabled, disabling Xlib-GLX])
689 if test "x$enable_dri$enable_xlib_glx" = xyesyes; then
690 AC_MSG_ERROR([DRI and Xlib-GLX cannot be built together])
693 # Disable GLX if DRI and Xlib-GLX are not enabled
694 if test "x$enable_glx" = xyes -a \
695 "x$enable_dri" = xno -a \
696 "x$enable_xlib_glx" = xno; then
697 AC_MSG_WARN([Neither DRI nor Xlib-GLX enabled, disabling GLX])
701 AM_CONDITIONAL(HAVE_DRI, test "x$enable_dri" = xyes)
702 AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_xlib_glx" = xyes -o \
703 "x$enable_osmesa" = xyes)
705 AC_ARG_ENABLE([shared-glapi],
706 [AS_HELP_STRING([--enable-shared-glapi],
707 [Enable shared glapi for OpenGL @<:@default=yes@:>@])],
708 [enable_shared_glapi="$enableval"],
709 [enable_shared_glapi="$enable_dri"])
711 # Shared GLAPI is only useful for DRI
712 if test "x$enable_dri" = xno; then
713 AC_MSG_NOTICE([Shared GLAPI is only useful for DRI, disabling])
714 enable_shared_glapi=no
717 # TODO: Get rid of SHARED_GLAPI variable
719 if test "x$enable_shared_glapi" = xyes; then
721 # libGL will use libglapi for function lookups (IN_DRI_DRIVER means to use
723 DEFINES="$DEFINES -DIN_DRI_DRIVER"
724 CORE_DIRS="mapi/shared-glapi"
726 AC_SUBST([SHARED_GLAPI])
727 AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes)
730 dnl Driver specific build directories
733 GALLIUM_DIRS="auxiliary drivers state_trackers"
734 GALLIUM_TARGET_DIRS=""
735 GALLIUM_WINSYS_DIRS="sw"
736 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
737 GALLIUM_STATE_TRACKERS_DIRS=""
739 # build glapi if OpenGL is enabled
740 if test "x$enable_opengl" = xyes; then
741 CORE_DIRS="$CORE_DIRS mapi/glapi"
744 # build es1api if OpenGL ES 1.x is enabled
745 if test "x$enable_gles1" = xyes; then
746 CORE_DIRS="$CORE_DIRS mapi/es1api"
749 # build es2api if OpenGL ES 2.x is enabled
750 if test "x$enable_gles2" = xyes; then
751 CORE_DIRS="$CORE_DIRS mapi/es2api"
754 # build glsl and mesa if OpenGL or OpenGL ES is enabled
755 case "x$enable_opengl$enable_gles1$enable_gles2" in
757 CORE_DIRS="mapi/glapi/gen $CORE_DIRS glsl mesa"
761 case "x$enable_glx$enable_xlib_glx" in
763 DRIVER_DIRS="$DRIVER_DIRS x11"
764 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
765 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
766 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
767 HAVE_WINSYS_XLIB="yes"
771 SRC_DIRS="$SRC_DIRS glx"
775 if test "x$enable_dri" = xyes; then
776 DRIVER_DIRS="$DRIVER_DIRS dri"
778 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
779 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
783 if test "x$enable_osmesa" = xyes; then
784 DRIVER_DIRS="$DRIVER_DIRS osmesa"
788 AC_SUBST([DRIVER_DIRS])
789 AC_SUBST([GALLIUM_DIRS])
790 AC_SUBST([GALLIUM_TARGET_DIRS])
791 AC_SUBST([GALLIUM_WINSYS_DIRS])
792 AC_SUBST([GALLIUM_DRIVERS_DIRS])
793 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
794 AC_SUBST([MESA_LLVM])
797 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
798 [have_libdrm=yes], [have_libdrm=no])
800 if test "x$enable_dri" = xyes; then
801 # DRI must be shared, I think
802 if test "$enable_static" = yes; then
803 AC_MSG_ERROR([Cannot use static libraries for DRI drivers])
806 # not a hard requirement as swrast does not depend on it
807 if test "x$have_libdrm" = xyes; then
808 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
812 dnl Find out if X is available.
813 PKG_CHECK_MODULES([X11], [x11], [no_x=no], [no_x=yes])
815 dnl Try to tell the user that the --x-* options are only used when
816 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
817 m4_divert_once([HELP_BEGIN],
818 [These options are only used when the X libraries cannot be found by the
819 pkg-config utility.])
821 dnl We need X for xlib and dri, so bomb now if it's not found
822 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
823 AC_MSG_ERROR([X11 development libraries needed for GLX])
826 dnl Direct rendering or just indirect rendering
829 dnl Disable by default on GNU/Hurd
830 driglx_direct_default="no"
833 dnl Disable by default on cygwin
834 driglx_direct_default="no"
837 driglx_direct_default="yes"
840 AC_ARG_ENABLE([driglx-direct],
841 [AS_HELP_STRING([--disable-driglx-direct],
842 [enable direct rendering in GLX and EGL for DRI \
843 @<:@default=auto@:>@])],
844 [driglx_direct="$enableval"],
845 [driglx_direct="$driglx_direct_default"])
848 dnl libGL configuration per driver
850 case "x$enable_glx$enable_xlib_glx" in
853 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
854 GL_PC_REQ_PRIV="x11 xext"
855 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
856 GL_LIB_DEPS="$XLIBGL_LIBS"
857 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
858 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm $PTHREAD_LIBS"
862 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
863 if test x"$driglx_direct" = xyes; then
864 if test "x$have_libdrm" != xyes; then
865 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
867 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
868 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
871 # find the DRI deps for libGL
872 dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= 1.8.1 xcb-dri2 >= 1.8"
874 # add xf86vidmode if available
875 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
876 if test "$HAVE_XF86VIDMODE" = yes ; then
877 dri_modules="$dri_modules xxf86vm"
880 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
881 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
882 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
883 GL_LIB_DEPS="$DRIGL_LIBS"
885 # need DRM libs, $PTHREAD_LIBS, etc.
886 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
887 GL_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
891 # This is outside the case (above) so that it is invoked even for non-GLX
893 AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes)
895 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
896 GLESv1_CM_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
897 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
898 GLESv2_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
900 AC_SUBST([X11_INCLUDES])
901 AC_SUBST([GL_LIB_DEPS])
902 AC_SUBST([GL_PC_REQ_PRIV])
903 AC_SUBST([GL_PC_LIB_PRIV])
904 AC_SUBST([GL_PC_CFLAGS])
905 AC_SUBST([DRI_PC_REQ_PRIV])
906 AC_SUBST([GLESv1_CM_LIB_DEPS])
907 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
908 AC_SUBST([GLESv2_LIB_DEPS])
909 AC_SUBST([GLESv2_PC_LIB_PRIV])
911 DRI_LIB_DEPS="\$(top_builddir)/src/mesa/libdricore/libdricore${VERSION}.la"
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 -a "x$ax_pthread_ok" = xyes],
942 [DEFINES="${DEFINES} -DGLX_USE_TLS"])
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 -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 $PTHREAD_LIBS $DLOPEN_LIBS"
1086 GALLIUM_DRI_LIB_DEPS="$GALLIUM_DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1088 AM_CONDITIONAL(NEED_LIBDRICORE, test -n "$DRI_DIRS")
1089 AC_SUBST([DRI_DIRS])
1090 AC_SUBST([EXPAT_INCLUDES])
1091 AC_SUBST([DRI_LIB_DEPS])
1092 AC_SUBST([GALLIUM_DRI_LIB_DEPS])
1096 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1098 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1114 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED])
1115 HAVE_NOUVEAU_DRI=yes;
1121 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1123 for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1126 HAVE_RADEON_DRI=yes;
1139 HAVE_SWRAST_DRI=yes;
1143 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
1144 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1145 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
1146 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
1147 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
1148 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
1149 AM_CONDITIONAL(HAVE_COMMON_DRI, test x$HAVE_COMMON_DRI = xyes)
1152 dnl OSMesa configuration
1155 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1156 AC_ARG_WITH([osmesa-bits],
1157 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1158 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1159 [osmesa_bits="$withval"],
1161 if test "x$osmesa_bits" != x8; then
1162 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1163 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1167 case "x$osmesa_bits" in
1169 OSMESA_LIB="${OSMESA_LIB}"
1172 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1173 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1176 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1180 if test "x$enable_osmesa" = xyes; then
1181 # only link libraries with osmesa if shared
1182 if test "$enable_static" = no; then
1183 OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1188 OSMESA_PC_LIB_PRIV="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1191 AC_SUBST([OSMESA_LIB_DEPS])
1192 AC_SUBST([OSMESA_MESA_DEPS])
1193 AC_SUBST([OSMESA_PC_REQ])
1194 AC_SUBST([OSMESA_PC_LIB_PRIV])
1197 dnl gbm configuration
1199 if test "x$enable_gbm" = xauto; then
1200 case "$with_egl_platforms" in
1207 if test "x$enable_gbm" = xyes; then
1208 SRC_DIRS="$SRC_DIRS gbm"
1210 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1211 AC_MSG_ERROR([gbm needs udev]))
1213 if test "x$enable_dri" = xyes; then
1214 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1215 if test "x$enable_shared_glapi" = xno; then
1216 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1218 PKG_CHECK_MODULES([LIBKMS], [libkms], [],
1219 AC_MSG_ERROR([gbm needs libkms]))
1222 GBM_PC_REQ_PRIV="libudev"
1223 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1224 AC_SUBST([GBM_PC_REQ_PRIV])
1225 AC_SUBST([GBM_PC_LIB_PRIV])
1228 dnl EGL configuration
1232 if test "x$enable_egl" = xyes; then
1233 SRC_DIRS="$SRC_DIRS egl"
1234 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS $PTHREAD_LIBS"
1236 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1238 if test "$enable_static" != yes; then
1239 # build egl_glx when libGL is built
1240 if test "x$enable_glx" = xyes; then
1241 HAVE_EGL_DRIVER_GLX=1
1244 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1245 [have_libudev=yes],[have_libudev=no])
1246 if test "$have_libudev" = yes; then
1247 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1250 if test "x$enable_dri" = xyes; then
1251 HAVE_EGL_DRIVER_DRI2=1
1256 AC_SUBST([EGL_LIB_DEPS])
1259 dnl EGL Gallium configuration
1261 if test "x$enable_gallium_egl" = xyes; then
1262 if test "x$with_gallium_drivers" = x; then
1263 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1265 if test "x$enable_egl" = xno; then
1266 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1268 if test "x$have_libdrm" != xyes; then
1269 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1272 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1273 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1278 dnl gbm Gallium configuration
1280 if test "x$enable_gallium_gbm" = xauto; then
1281 case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1283 enable_gallium_gbm=yes ;;
1285 enable_gallium_gbm=no ;;
1288 if test "x$enable_gallium_gbm" = xyes; then
1289 if test "x$with_gallium_drivers" = x; then
1290 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1292 if test "x$enable_gbm" = xno; then
1293 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1295 # gbm_gallium abuses DRI_LIB_DEPS to link. Make sure it is set.
1296 if test "x$enable_dri" = xno; then
1297 AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1300 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1301 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1303 enable_gallium_loader=yes
1307 dnl X.Org DDX configuration
1309 if test "x$enable_xorg" = xyes; then
1310 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1311 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1312 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1313 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1314 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1315 HAVE_XEXTPROTO_71="no")
1316 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1321 dnl XA configuration
1323 if test "x$enable_xa" = xyes; then
1326 AC_CHECK_PROG(NM, nm, "nm")
1327 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1328 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1332 if test "x$enable_xa" = xyes; then
1333 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1341 dnl OpenVG configuration
1345 if test "x$enable_openvg" = xyes; then
1346 if test "x$enable_egl" = xno; then
1347 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1349 if test "x$with_gallium_drivers" = x; then
1350 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1352 if test "x$enable_gallium_egl" = xno; then
1353 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1356 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1357 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS $PTHREAD_LIBS"
1358 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1359 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1361 VG_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1362 AC_SUBST([VG_PC_LIB_PRIV])
1366 dnl D3D1X configuration
1369 if test "x$enable_d3d1x" = xyes; then
1370 if test "x$with_gallium_drivers" = x; then
1371 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1374 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1379 dnl Gallium G3DVL configuration
1381 AC_ARG_ENABLE([gallium-g3dvl],
1382 [AS_HELP_STRING([--enable-gallium-g3dvl],
1383 [build gallium g3dvl @<:@default=disabled@:>@])],
1384 [enable_gallium_g3dvl="$enableval"],
1385 [enable_gallium_g3dvl=no])
1386 if test "x$enable_gallium_g3dvl" = xyes; then
1387 if test "x$with_gallium_drivers" = x; then
1388 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1391 if test "x$enable_xvmc" = xauto; then
1392 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1395 if test "x$enable_vdpau" = xauto; then
1396 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1400 if test "x$enable_xvmc" = xyes; then
1401 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 x11-xcb xcb-dri2 >= 1.8])
1402 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xvmc"
1406 if test "x$enable_vdpau" = xyes; then
1407 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1 x11-xcb xcb-dri2 >= 1.8])
1408 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1413 dnl OpenCL configuration
1416 AC_ARG_WITH([libclc-path],
1417 [AS_HELP_STRING([--with-libclc-path],
1418 [Path to libclc builtins library. Example: --with-libclc-path=\$HOME/libclc/])],
1419 [LIBCLC_PATH="$withval"],
1422 AC_ARG_WITH([clang-libdir],
1423 [AS_HELP_STRING([--with-clang-libdir],
1424 [Path to Clang libraries @<:@default=llvm-config --libdir@:>@])],
1425 [CLANG_LIBDIR="$withval"],
1428 AC_SUBST([LIBCLC_PATH])
1430 if test "x$enable_opencl" = xyes; then
1431 if test "x$with_gallium_drivers" = x; then
1432 AC_MSG_ERROR([cannot enable OpenCL without Gallium])
1435 if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 6; then
1436 AC_MSG_ERROR([gcc >= 4.6 is required to build clover])
1439 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS clover"
1440 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS opencl"
1441 enable_gallium_loader=yes
1445 dnl Gallium configuration
1447 if test "x$with_gallium_drivers" != x; then
1448 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1450 AM_CONDITIONAL(HAVE_GALLIUM, test "x$with_gallium_drivers" != x)
1452 AC_SUBST([LLVM_BINDIR])
1453 AC_SUBST([LLVM_CFLAGS])
1454 AC_SUBST([LLVM_CPPFLAGS])
1455 AC_SUBST([LLVM_CXXFLAGS])
1456 AC_SUBST([LLVM_LIBDIR])
1457 AC_SUBST([LLVM_LIBS])
1458 AC_SUBST([LLVM_LDFLAGS])
1459 AC_SUBST([LLVM_INCLUDEDIR])
1460 AC_SUBST([LLVM_VERSION])
1461 AC_SUBST([CLANG_RESOURCE_DIR])
1463 case "x$enable_opengl$enable_gles1$enable_gles2" in
1465 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1469 AC_SUBST([VG_LIB_DEPS])
1470 AC_SUBST([EGL_CLIENT_APIS])
1473 dnl EGL Platforms configuration
1475 AC_ARG_WITH([egl-platforms],
1476 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1477 [comma delimited native platforms libEGL supports, e.g.
1478 "x11,drm" @<:@default=auto@:>@])],
1479 [with_egl_platforms="$withval"],
1480 [if test "x$enable_egl" = xyes; then
1481 with_egl_platforms="x11"
1483 with_egl_platforms=""
1488 if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then
1489 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1492 # Do per-EGL platform setups and checks
1493 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1494 for plat in $egl_platforms; do
1497 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/$plat"
1501 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1502 [AC_MSG_ERROR([cannot find libwayland-client])])
1503 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1505 WAYLAND_PREFIX=`$PKG_CONFIG --variable=prefix wayland-client`
1506 AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner],,
1507 [${WAYLAND_PREFIX}/bin$PATH_SEPARATOR$PATH])
1511 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 >= 1.8 xcb-xfixes])
1515 test "x$enable_gbm" = "xno" &&
1516 AC_MSG_ERROR([EGL platform drm needs gbm])
1523 AC_MSG_ERROR([EGL platform '$plat' does not exist])
1527 case "$plat$have_libudev" in
1529 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1533 # libEGL wants to default to the first platform specified in
1534 # ./configure. parse that here.
1535 if test "x$egl_platforms" != "x"; then
1536 FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr 'a-z' 'A-Z'`
1537 EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS"
1539 EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
1542 EGL_PLATFORMS="$egl_platforms"
1544 AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1)
1545 AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep 'wayland' >/dev/null 2>&1)
1546 AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep 'drm' >/dev/null 2>&1)
1547 AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep 'fbdev' >/dev/null 2>&1)
1548 AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep 'null' >/dev/null 2>&1)
1550 AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x")
1551 AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != "x")
1553 AC_SUBST([EGL_NATIVE_PLATFORM])
1554 AC_SUBST([EGL_PLATFORMS])
1555 AC_SUBST([EGL_CFLAGS])
1557 AC_ARG_WITH([egl-driver-dir],
1558 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1559 [directory for EGL drivers [[default=${libdir}/egl]]])],
1560 [EGL_DRIVER_INSTALL_DIR="$withval"],
1561 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1562 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1564 AC_ARG_WITH([xorg-driver-dir],
1565 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1566 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1567 [XORG_DRIVER_INSTALL_DIR="$withval"],
1568 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1569 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1571 AC_ARG_WITH([max-width],
1572 [AS_HELP_STRING([--with-max-width=N],
1573 [Maximum framebuffer width (4096)])],
1574 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1575 AS_IF([test "${withval}" -gt "4096"],
1576 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1578 AC_ARG_WITH([max-height],
1579 [AS_HELP_STRING([--with-max-height=N],
1580 [Maximum framebuffer height (4096)])],
1581 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1582 AS_IF([test "${withval}" -gt "4096"],
1583 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1589 AC_ARG_ENABLE([gallium-llvm],
1590 [AS_HELP_STRING([--enable-gallium-llvm],
1591 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1592 [enable_gallium_llvm="$enableval"],
1593 [enable_gallium_llvm=auto])
1595 AC_ARG_WITH([llvm-shared-libs],
1596 [AS_HELP_STRING([--with-llvm-shared-libs],
1597 [link with LLVM shared libraries @<:@default=disabled@:>@])],
1598 [with_llvm_shared_libs=yes],
1599 [with_llvm_shared_libs=no])
1601 AC_ARG_WITH([llvm-prefix],
1602 [AS_HELP_STRING([--with-llvm-prefix],
1603 [Prefix for LLVM installations in non-standard locations])],
1604 [llvm_prefix="$withval"],
1608 if test "x$with_gallium_drivers" = x; then
1609 enable_gallium_llvm=no
1611 if test "x$enable_gallium_llvm" = xauto; then
1613 i*86|x86_64) enable_gallium_llvm=yes;;
1616 if test "x$enable_gallium_llvm" = xyes; then
1617 if test "x$llvm_prefix" != x; then
1618 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"])
1620 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1623 if test "x$LLVM_CONFIG" != xno; then
1624 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1625 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g' -e 's/-Wcovered-switch-default//g'`
1626 if test "x$with_llvm_shared_libs" = xyes; then
1627 dnl We can't use $LLVM_VERSION because it has 'svn' stripped out,
1628 LLVM_LIBS="-lLLVM-`$LLVM_CONFIG --version`"
1630 LLVM_COMPONENTS="engine bitwriter"
1631 if $LLVM_CONFIG --components | grep -q '\<mcjit\>'; then
1632 LLVM_COMPONENTS="${LLVM_COMPONENTS} mcjit"
1635 if test "x$enable_opencl" = xyes; then
1636 LLVM_COMPONENTS="${LLVM_COMPONENTS} ipo linker instrumentation"
1638 LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
1640 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1641 LLVM_BINDIR=`$LLVM_CONFIG --bindir`
1642 LLVM_CXXFLAGS=`$LLVM_CONFIG --cxxflags`
1643 LLVM_CPPFLAGS=`$LLVM_CONFIG --cppflags`
1644 LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir`
1645 LLVM_LIBDIR=`$LLVM_CONFIG --libdir`
1646 DEFINES="${DEFINES} -DHAVE_LLVM=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/0x0\10\2/g'`"
1649 dnl Check for Clang interanl headers
1650 if test "x$enable_opencl" = xyes; then
1651 if test "x$CLANG_LIBDIR" = x; then
1652 CLANG_LIBDIR=${LLVM_LIBDIR}
1654 CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
1655 AC_CHECK_FILE("$CLANG_RESOURCE_DIR/include/stddef.h",,
1656 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.]))
1665 dnl Directory for XVMC libs
1666 AC_ARG_WITH([xvmc-libdir],
1667 [AS_HELP_STRING([--with-xvmc-libdir=DIR],
1668 [directory for the XVMC libraries @<:@default=${libdir}@:>@])],
1669 [XVMC_LIB_INSTALL_DIR="$withval"],
1670 [XVMC_LIB_INSTALL_DIR='${libdir}'])
1671 AC_SUBST([XVMC_LIB_INSTALL_DIR])
1676 if test "x$enable_gallium_tests" = xyes; then
1677 SRC_DIRS="$SRC_DIRS gallium/tests/trivial"
1678 enable_gallium_loader=yes
1681 dnl Directory for VDPAU libs
1682 AC_ARG_WITH([vdpau-libdir],
1683 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1684 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1685 [VDPAU_LIB_INSTALL_DIR="$withval"],
1686 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1687 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1689 dnl Directory for OpenCL libs
1690 AC_ARG_WITH([opencl-libdir],
1691 [AS_HELP_STRING([--with-opencl-libdir=DIR],
1692 [directory for the OpenCL libraries @<:@default=${libdir}/opencl@:>@])],
1693 [OPENCL_LIB_INSTALL_DIR="$withval"],
1694 [OPENCL_LIB_INSTALL_DIR='${libdir}/opencl'])
1695 AC_SUBST([OPENCL_LIB_INSTALL_DIR])
1698 dnl Gallium helper functions
1700 gallium_check_st() {
1701 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1702 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1703 test "x$HAVE_ST_VDPAU" = xyes; then
1704 if test "x$have_libdrm" != xyes; then
1705 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1707 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1709 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1710 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1712 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1713 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1715 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1716 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1718 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1719 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1721 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1722 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1726 gallium_require_llvm() {
1727 if test "x$MESA_LLVM" = x0; then
1729 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1734 gallium_require_drm_loader() {
1735 if test "x$enable_gallium_loader" = xyes; then
1736 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1737 AC_MSG_ERROR([Gallium drm loader requrires libudev]))
1738 if test "x$have_libdrm" != xyes; then
1739 AC_MSG_ERROR([Gallium drm loader requires libdrm >= $LIBDRM_REQUIRED])
1741 enable_gallium_drm_loader=yes
1745 radeon_llvm_check() {
1746 LLVM_VERSION_MAJOR=`echo $LLVM_VERSION | cut -d. -f1`
1747 if test "$LLVM_VERSION_MAJOR" -lt "3" -o "x$LLVM_VERSION" = "x3.0"; then
1748 AC_MSG_ERROR([LLVM 3.1 or newer is required for the r600/radeonsi llvm compiler.])
1750 if test "$LLVM_VERSION_MAJOR" -ge "3" -a "x$LLVM_VERSION" != "x3.1" && $LLVM_CONFIG --targets-built | grep -qv '\<AMDGPU\>' ; then
1751 AC_MSG_ERROR([To use the r600/radeonsi LLVM backend with LLVM 3.2 and newer, you need to fetch the LLVM source from:
1752 git://people.freedesktop.org/~tstellar/llvm master
1753 and build with --enable-experimental-targets==AMDGPU])
1755 if test "x$LLVM_VERSION" = "x3.2"; then
1756 LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --libs amdgpu`"
1761 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1762 if test "x$with_gallium_drivers" != x; then
1763 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1764 for driver in $gallium_drivers; do
1767 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1768 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1771 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1772 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1773 if test "x$MESA_LLVM" = x1; then
1774 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1776 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1777 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1780 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1781 gallium_require_llvm "Gallium R300"
1782 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1783 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300"
1786 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1787 gallium_require_drm_loader
1788 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1789 if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then
1791 NEED_RADEON_GALLIUM=yes;
1793 if test "x$enable_r600_llvm" = xyes; then
1794 USE_R600_LLVM_COMPILER=yes;
1796 if test "x$enable_opencl" = xyes -a "x$with_llvm_shared_libs" = xno; then
1797 LLVM_LIBS="${LLVM_LIBS} `$LLVM_CONFIG --libs bitreader asmparser`"
1799 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600"
1802 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1803 gallium_require_drm_loader
1804 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS radeonsi"
1806 NEED_RADEON_GALLIUM=yes;
1807 gallium_check_st "radeon/drm" "dri-radeonsi" "xorg-radeonsi" "" "" "vdpau-radeonsi" ""
1810 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1811 gallium_require_drm_loader
1812 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nv30 nv50 nvc0"
1813 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1816 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1817 if test "x$MESA_LLVM" = x1; then
1818 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1821 if test "x$HAVE_ST_DRI" = xyes; then
1822 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1824 if test "x$HAVE_ST_VDPAU" = xyes; then
1825 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1827 if test "x$HAVE_ST_XVMC" = xyes; then
1828 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1830 if test "x$HAVE_ST_VDPAU" = xyes ||
1831 test "x$HAVE_ST_XVMC" = xyes; then
1832 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1833 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1838 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1844 if test "x$enable_gallium_loader" = xyes; then
1845 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1846 GALLIUM_PIPE_LOADER_DEFINES="-DHAVE_PIPE_LOADER_SW"
1847 GALLIUM_PIPE_LOADER_LIBS="\$(TOP)/src/gallium/auxiliary/pipe-loader/libpipe_loader.a"
1848 GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS \$(TOP)/src/gallium/winsys/sw/null/libws_null.a"
1850 if test "x$HAVE_WINSYS_XLIB" = xyes; then
1851 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_XLIB"
1852 GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS \$(TOP)/src/gallium/winsys/sw/xlib/libws_xlib.a"
1855 if test "x$enable_gallium_drm_loader" = xyes; then
1856 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRM"
1857 PKG_CHECK_MODULES([GALLIUM_PIPE_LOADER_XCB], [xcb xcb-dri2],
1858 pipe_loader_have_xcb=yes, pipe_loader_have_xcb=no)
1859 if test "x$pipe_loader_have_xcb" = xyes; then
1860 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DPIPE_LOADER_HAVE_XCB"
1861 GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS $GALLIUM_PIPE_LOADER_XCB_LIBS $LIBDRM_LIBS"
1865 AC_SUBST([GALLIUM_PIPE_LOADER_DEFINES])
1866 AC_SUBST([GALLIUM_PIPE_LOADER_LIBS])
1869 dnl Tell Automake which drivers to build
1870 for driver in $GALLIUM_DRIVERS_DIRS; do
1873 HAVE_GALAHAD_GALLIUM=yes;
1876 HAVE_IDENTITY_GALLIUM=yes;
1879 HAVE_NOOP_GALLIUM=yes;
1882 GALLIUM_MAKE_DIRS="$GALLIUM_MAKE_DIRS $driver"
1887 AM_CONDITIONAL(HAVE_GALAHAD_GALLIUM, test x$HAVE_GALAHAD_GALLIUM = xyes)
1888 AM_CONDITIONAL(HAVE_IDENTITY_GALLIUM, test x$HAVE_IDENTITY_GALLIUM = xyes)
1889 AM_CONDITIONAL(HAVE_NOOP_GALLIUM, test x$HAVE_NOOP_GALLIUM = xyes)
1890 AM_CONDITIONAL(NEED_RADEON_GALLIUM, test x$NEED_RADEON_GALLIUM = xyes)
1891 AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes)
1892 AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes)
1893 AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes)
1894 AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
1895 AC_SUBST([GALLIUM_MAKE_DIRS])
1897 AM_CONDITIONAL(HAVE_X11_DRIVER, echo "$DRIVER_DIRS" | grep 'x11' >/dev/null 2>&1)
1899 AM_CONDITIONAL(HAVE_X86_ASM, echo "$DEFINES" | grep 'X86_ASM' >/dev/null 2>&1)
1900 AM_CONDITIONAL(HAVE_X86_64_ASM, echo "$DEFINES" | grep 'X86_64_ASM' >/dev/null 2>&1)
1901 AM_CONDITIONAL(HAVE_SPARC_ASM, echo "$DEFINES" | grep 'SPARC_ASM' >/dev/null 2>&1)
1903 dnl prepend CORE_DIRS to SRC_DIRS
1904 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1906 dnl Restore LDFLAGS and CPPFLAGS
1907 LDFLAGS="$_SAVE_LDFLAGS"
1908 CPPFLAGS="$_SAVE_CPPFLAGS"
1910 dnl Add user CFLAGS and CXXFLAGS
1911 CFLAGS="$CFLAGS $USER_CFLAGS"
1912 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1914 dnl Substitute the config
1915 AC_CONFIG_FILES([configs/current
1919 src/egl/drivers/Makefile
1920 src/egl/drivers/dri2/Makefile
1921 src/egl/drivers/glx/Makefile
1922 src/egl/main/Makefile
1924 src/egl/wayland/Makefile
1925 src/egl/wayland/wayland-drm/Makefile
1926 src/egl/wayland/wayland-egl/Makefile
1927 src/egl/wayland/wayland-egl/wayland-egl.pc
1928 src/gallium/Makefile
1929 src/gallium/auxiliary/pipe-loader/Makefile
1930 src/gallium/drivers/Makefile
1931 src/gallium/drivers/r300/Makefile
1932 src/gallium/drivers/r600/Makefile
1933 src/gallium/state_trackers/clover/Makefile
1934 src/gallium/targets/opencl/Makefile
1938 src/glsl/glcpp/Makefile
1939 src/glsl/tests/Makefile
1941 src/glx/tests/Makefile
1943 src/mapi/es1api/Makefile
1944 src/mapi/es1api/glesv1_cm.pc
1945 src/mapi/es2api/Makefile
1946 src/mapi/es2api/glesv2.pc
1947 src/mapi/glapi/Makefile
1948 src/mapi/glapi/gen/Makefile
1949 src/mapi/glapi/tests/Makefile
1950 src/mapi/shared-glapi/Makefile
1951 src/mapi/shared-glapi/tests/Makefile
1952 src/mapi/vgapi/Makefile
1953 src/mapi/vgapi/vg.pc
1956 src/mesa/drivers/Makefile
1957 src/mesa/drivers/dri/dri.pc
1958 src/mesa/drivers/dri/common/Makefile
1959 src/mesa/drivers/dri/i915/Makefile
1960 src/mesa/drivers/dri/i965/Makefile
1961 src/mesa/drivers/dri/Makefile
1962 src/mesa/drivers/dri/nouveau/Makefile
1963 src/mesa/drivers/dri/r200/Makefile
1964 src/mesa/drivers/dri/radeon/Makefile
1965 src/mesa/drivers/dri/swrast/Makefile
1966 src/mesa/drivers/osmesa/Makefile
1967 src/mesa/drivers/osmesa/osmesa.pc
1968 src/mesa/drivers/x11/Makefile
1969 src/mesa/libdricore/Makefile
1970 src/mesa/main/tests/Makefile
1971 src/mesa/x86-64/Makefile
1972 src/mesa/x86/Makefile])
1974 dnl Sort the dirs alphabetically
1975 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1976 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1977 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1978 GALLIUM_MAKE_DIRS=`echo $GALLIUM_MAKE_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1979 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1984 dnl Output some configuration info for the user
1987 echo " prefix: $prefix"
1988 echo " exec_prefix: $exec_prefix"
1989 echo " libdir: $libdir"
1990 echo " includedir: $includedir"
1994 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1995 echo " OpenVG: $enable_openvg"
1999 if test "x$enable_osmesa" != xno; then
2000 echo " OSMesa: lib$OSMESA_LIB"
2005 if test "x$enable_dri" != xno; then
2006 # cleanup the drivers var
2007 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2008 if test "x$DRI_DIRS" = x; then
2009 echo " DRI drivers: no"
2011 echo " DRI drivers: $dri_dirs"
2013 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
2016 case "x$enable_glx$enable_xlib_glx" in
2018 echo " GLX: Xlib-based"
2021 echo " GLX: DRI-based"
2024 echo " GLX: $enable_glx"
2030 echo " EGL: $enable_egl"
2031 if test "$enable_egl" = yes; then
2032 echo " EGL platforms: $EGL_PLATFORMS"
2035 if test "x$HAVE_EGL_DRIVER_GLX" != "x"; then
2036 egl_drivers="$egl_drivers builtin:egl_glx"
2038 if test "x$HAVE_EGL_DRIVER_DRI2" != "x"; then
2039 egl_drivers="$egl_drivers builtin:egl_dri2"
2042 if test "x$HAVE_ST_EGL" = xyes; then
2043 echo " EGL drivers: ${egl_drivers} egl_gallium"
2044 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2046 echo " EGL drivers: $egl_drivers"
2051 if test "x$MESA_LLVM" = x1; then
2053 echo " llvm-config: $LLVM_CONFIG"
2054 echo " llvm-version: $LLVM_VERSION"
2060 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2061 echo " Gallium: yes"
2062 echo " Gallium dirs: $GALLIUM_DIRS"
2063 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2064 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2065 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2066 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2074 echo " Shared libs: $enable_shared"
2075 echo " Static libs: $enable_static"
2076 echo " Shared-glapi: $enable_shared_glapi"
2078 dnl Compiler options
2079 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2080 cflags=`echo $CFLAGS $PIC_FLAGS | \
2081 $SED 's/^ *//;s/ */ /;s/ *$//'`
2082 cxxflags=`echo $CXXFLAGS $PIC_FLAGS | \
2083 $SED 's/^ *//;s/ */ /;s/ *$//'`
2084 defines=`echo $DEFINES | $SED 's/^ *//;s/ */ /;s/ *$//'`
2086 echo " CFLAGS: $cflags"
2087 echo " CXXFLAGS: $cxxflags"
2088 echo " Macros: $defines"
2090 echo " PYTHON2: $PYTHON2"
2093 echo " Run '${MAKE-make}' to build Mesa"