1 dnl Process this file with autoconf to create configure.
5 dnl Versioning - scrape the version from configs/default
6 m4_define([mesa_version],
7 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
8 m4_ifval(mesa_version,,
9 [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
11 dnl Tell the user about autoconf.html in the --help output
12 m4_divert_once([HELP_END], [
13 See docs/autoconf.html for more details on the options for Mesa.])
15 AC_INIT([Mesa],[mesa_version],
16 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17 AC_CONFIG_AUX_DIR([bin])
20 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
22 USER_CXXFLAGS="$CXXFLAGS"
24 dnl Versions for external dependencies
25 LIBDRM_REQUIRED=2.4.24
26 LIBDRM_RADEON_REQUIRED=2.4.24
27 LIBDRM_INTEL_REQUIRED=2.4.24
28 LIBDRM_NOUVEAU_REQUIRED=0.6
29 DRI2PROTO_REQUIRED=2.6
30 GLPROTO_REQUIRED=1.4.14
31 LIBDRM_XORG_REQUIRED=2.4.24
32 LIBKMS_XORG_REQUIRED=1.0.0
38 AC_CHECK_PROGS([MAKE], [gmake make])
39 AC_CHECK_PROGS([PYTHON2], [python2 python])
40 AC_PATH_PROG([MKDEP], [makedepend])
41 AC_PATH_PROG([SED], [sed])
43 if test "x$MKDEP" = "x"; then
44 AC_MSG_ERROR([makedepend is required to build Mesa])
47 AC_PATH_PROG([FLEX], [flex])
48 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
50 AC_PATH_PROG([BISON], [bison])
51 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
53 dnl Our fallback install-sh is a symlink to minstall. Use the existing
54 dnl configuration in that case.
56 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
58 dnl We need a POSIX shell for parts of the build. Assume we have one
62 # Solaris /bin/sh is too old/non-POSIX compliant
63 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
68 dnl clang is mostly GCC-compatible, but its version is much lower,
69 dnl so we have to check for it.
70 AC_MSG_CHECKING([if compiling with clang])
73 [AC_LANG_PROGRAM([], [[
78 [CLANG=yes], [CLANG=no])
80 AC_MSG_RESULT([$CLANG])
82 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
83 dnl versions are explictly not supported.
84 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
85 AC_MSG_CHECKING([whether gcc version is sufficient])
89 GCC_VERSION=`$CC -dumpversion`
90 if test $? -eq 0; then
91 major=`echo $GCC_VERSION | cut -d. -f1`
92 minor=`echo $GCC_VERSION | cut -d. -f2`
95 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
97 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
104 MKDEP_OPTIONS=-fdepend
105 dnl Ask gcc where it's keeping its secret headers
106 if test "x$GCC" = xyes; then
107 for dir in include include-fixed; do
108 GCC_INCLUDES=`$CC -print-file-name=$dir`
109 if test "x$GCC_INCLUDES" != x && \
110 test "$GCC_INCLUDES" != "$dir" && \
111 test -d "$GCC_INCLUDES"; then
112 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
116 AC_SUBST([MKDEP_OPTIONS])
118 dnl Make sure the pkg-config macros are defined
119 m4_ifndef([PKG_PROG_PKG_CONFIG],
120 [m4_fatal([Could not locate the pkg-config autoconf macros.
121 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
122 are in a different location, try setting the environment variable
123 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
124 PKG_PROG_PKG_CONFIG()
126 dnl LIB_DIR - library basename
127 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
130 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
131 _SAVE_LDFLAGS="$LDFLAGS"
132 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
133 AC_SUBST([EXTRA_LIB_PATH])
135 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
136 _SAVE_CPPFLAGS="$CPPFLAGS"
137 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
138 AC_SUBST([X11_INCLUDES])
145 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
148 DEFINES="$DEFINES -DPTHREADS -DSVR4"
151 DEFINES="$DEFINES -DPTHREADS"
155 dnl Add flags for gcc and g++
156 if test "x$GCC" = xyes; then
157 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
158 if test "x$CLANG" = "xno"; then
159 CFLAGS="$CFLAGS -ffast-math"
162 # Enable -fvisibility=hidden if using a gcc that supports it
163 save_CFLAGS="$CFLAGS"
164 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
165 VISIBILITY_CFLAGS="-fvisibility=hidden"
166 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
167 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
168 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
170 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
173 # Work around aliasing bugs - developers should comment this out
174 CFLAGS="$CFLAGS -fno-strict-aliasing"
176 # gcc's builtin memcmp is slower than glibc's
177 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
178 CFLAGS="$CFLAGS -fno-builtin-memcmp"
180 if test "x$GXX" = xyes; then
181 CXXFLAGS="$CXXFLAGS -Wall"
183 # Enable -fvisibility=hidden if using a gcc that supports it
184 save_CXXFLAGS="$CXXFLAGS"
185 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
186 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
187 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
189 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
190 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
193 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
194 CXXFLAGS=$save_CXXFLAGS
196 # Work around aliasing bugs - developers should comment this out
197 CXXFLAGS="$CXXFLAGS -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 CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
204 dnl even if the compiler appears to support it, using visibility attributes isn't
205 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
209 VISIBILITY_CXXFLAGS=""
213 AC_SUBST([VISIBILITY_CFLAGS])
214 AC_SUBST([VISIBILITY_CXXFLAGS])
216 dnl These should be unnecessary, but let the user set them if they want
217 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
218 Default is to use CFLAGS.])
219 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
220 compiler. Default is to use CFLAGS.])
221 AC_SUBST([OPT_FLAGS])
222 AC_SUBST([ARCH_FLAGS])
225 dnl Hacks to enable 32 or 64 bit build
227 AC_ARG_ENABLE([32-bit],
228 [AS_HELP_STRING([--enable-32-bit],
229 [build 32-bit libraries @<:@default=auto@:>@])],
230 [enable_32bit="$enableval"],
233 if test "x$enable_32bit" = xyes; then
234 if test "x$GCC" = xyes; then
235 CFLAGS="$CFLAGS -m32"
236 ARCH_FLAGS="$ARCH_FLAGS -m32"
238 if test "x$GXX" = xyes; then
239 CXXFLAGS="$CXXFLAGS -m32"
242 AC_ARG_ENABLE([64-bit],
243 [AS_HELP_STRING([--enable-64-bit],
244 [build 64-bit libraries @<:@default=auto@:>@])],
245 [enable_64bit="$enableval"],
248 if test "x$enable_64bit" = xyes; then
249 if test "x$GCC" = xyes; then
250 CFLAGS="$CFLAGS -m64"
252 if test "x$GXX" = xyes; then
253 CXXFLAGS="$CXXFLAGS -m64"
258 dnl shared/static libraries, mimic libtool options
260 AC_ARG_ENABLE([static],
261 [AS_HELP_STRING([--enable-static],
262 [build static libraries @<:@default=disabled@:>@])],
263 [enable_static="$enableval"],
266 case "x$enable_static" in
268 x ) enable_static=no ;;
270 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
273 AC_ARG_ENABLE([shared],
274 [AS_HELP_STRING([--disable-shared],
275 [build shared libraries @<:@default=enabled@:>@])],
276 [enable_shared="$enableval"],
279 case "x$enable_shared" in
281 x ) enable_shared=yes ;;
283 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
287 dnl Can't have static and shared libraries, default to static if user
288 dnl explicitly requested. If both disabled, set to static since shared
289 dnl was explicitly requirested.
290 case "x$enable_static$enable_shared" in
292 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
296 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
304 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
305 if test "$enable_static" = yes; then
306 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
308 AC_SUBST([MKLIB_OPTIONS])
311 dnl other compiler options
313 AC_ARG_ENABLE([debug],
314 [AS_HELP_STRING([--enable-debug],
315 [use debug compiler flags and macros @<:@default=disabled@:>@])],
316 [enable_debug="$enableval"],
319 if test "x$enable_debug" = xyes; then
320 DEFINES="$DEFINES -DDEBUG"
321 if test "x$GCC" = xyes; then
324 if test "x$GXX" = xyes; then
325 CXXFLAGS="$CXXFLAGS -g"
332 LIB_PREFIX_GLOB='lib'
333 LIB_VERSION_SEPARATOR='.'
334 if test "$enable_static" = yes; then
339 LIB_EXTENSION='dylib' ;;
341 dnl prefix can be 'cyg' or 'lib'
342 LIB_PREFIX_GLOB='???'
343 LIB_VERSION_SEPARATOR='-'
344 LIB_EXTENSION='dll' ;;
348 LIB_EXTENSION='so' ;;
353 dnl Mangled Mesa support
355 AC_ARG_ENABLE([mangling],
356 [AS_HELP_STRING([--enable-mangling],
357 [enable mangled symbols and library name @<:@default=disabled@:>@])],
358 [enable_mangling="${enableval}"],
364 if test "x${enable_mangling}" = "xyes" ; then
365 DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
368 OSMESA_LIB="MangledOSMesa"
372 AC_SUBST([OSMESA_LIB])
375 dnl potentially-infringing-but-nobody-knows-for-sure stuff
377 AC_ARG_ENABLE([texture-float],
378 [AS_HELP_STRING([--enable-texture-float],
379 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
380 [enable_texture_float="$enableval"],
381 [enable_texture_float=no]
383 if test "x$enable_texture_float" = xyes; then
384 AC_MSG_WARN([Floating-point textures enabled.])
385 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
386 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
389 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
390 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
391 GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
392 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
393 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
394 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
395 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
396 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
397 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
398 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
399 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
401 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
402 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
403 GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
404 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
405 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
406 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
407 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
408 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
409 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
410 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
411 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
412 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
414 AC_SUBST([GL_LIB_NAME])
415 AC_SUBST([GLU_LIB_NAME])
416 AC_SUBST([GLUT_LIB_NAME])
417 AC_SUBST([OSMESA_LIB_NAME])
418 AC_SUBST([EGL_LIB_NAME])
419 AC_SUBST([GLESv1_CM_LIB_NAME])
420 AC_SUBST([GLESv2_LIB_NAME])
421 AC_SUBST([VG_LIB_NAME])
422 AC_SUBST([GLAPI_LIB_NAME])
423 AC_SUBST([WAYLAND_EGL_LIB_NAME])
424 AC_SUBST([GBM_LIB_NAME])
426 AC_SUBST([GL_LIB_GLOB])
427 AC_SUBST([GLU_LIB_GLOB])
428 AC_SUBST([GLUT_LIB_GLOB])
429 AC_SUBST([OSMESA_LIB_GLOB])
430 AC_SUBST([EGL_LIB_GLOB])
431 AC_SUBST([GLESv1_CM_LIB_GLOB])
432 AC_SUBST([GLESv2_LIB_GLOB])
433 AC_SUBST([VG_LIB_GLOB])
434 AC_SUBST([GLAPI_LIB_GLOB])
435 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
436 AC_SUBST([GBM_LIB_GLOB])
439 dnl Arch/platform-specific settings
442 [AS_HELP_STRING([--disable-asm],
443 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
444 [enable_asm="$enableval"],
451 AC_MSG_CHECKING([whether to enable assembly])
452 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
453 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
454 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
458 AC_MSG_RESULT([no, cross compiling])
462 # check for supported arches
463 if test "x$enable_asm" = xyes; then
467 linux* | *freebsd* | dragonfly* | *netbsd*)
468 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
474 linux* | *freebsd* | dragonfly* | *netbsd*)
475 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
497 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
498 MESA_ASM_SOURCES='$(X86_SOURCES)'
499 GLAPI_ASM_SOURCES='$(X86_API)'
500 AC_MSG_RESULT([yes, x86])
503 ASM_FLAGS="-DUSE_X86_64_ASM"
504 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
505 GLAPI_ASM_SOURCES='$(X86-64_API)'
506 AC_MSG_RESULT([yes, x86_64])
509 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
510 MESA_ASM_SOURCES='$(PPC_SOURCES)'
511 AC_MSG_RESULT([yes, ppc])
514 ASM_FLAGS="-DUSE_SPARC_ASM"
515 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
516 GLAPI_ASM_SOURCES='$(SPARC_API)'
517 AC_MSG_RESULT([yes, sparc])
520 AC_MSG_RESULT([no, platform not supported])
524 AC_SUBST([ASM_FLAGS])
525 AC_SUBST([MESA_ASM_SOURCES])
526 AC_SUBST([GLAPI_ASM_SOURCES])
531 dnl Check to see if dlopen is in default libraries (like Solaris, which
532 dnl has it in libc), or if libdl is needed to get it.
533 AC_CHECK_FUNC([dlopen], [],
534 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
535 AC_SUBST([DLOPEN_LIBS])
537 dnl See if posix_memalign is available
538 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
540 dnl SELinux awareness.
541 AC_ARG_ENABLE([selinux],
542 [AS_HELP_STRING([--enable-selinux],
543 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
544 [MESA_SELINUX="$enableval"],
546 if test "x$enable_selinux" = "xyes"; then
547 AC_CHECK_HEADER([selinux/selinux.h],[],
548 [AC_MSG_ERROR([SELinux headers not found])])
549 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
550 [AC_MSG_ERROR([SELinux library not found])])
551 SELINUX_LIBS="-lselinux"
552 DEFINES="$DEFINES -DMESA_SELINUX"
556 AC_ARG_ENABLE([opengl],
557 [AS_HELP_STRING([--disable-opengl],
558 [disable support for standard OpenGL API @<:@default=no@:>@])],
559 [enable_opengl="$enableval"],
561 AC_ARG_ENABLE([gles1],
562 [AS_HELP_STRING([--enable-gles1],
563 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
564 [enable_gles1="$enableval"],
566 AC_ARG_ENABLE([gles2],
567 [AS_HELP_STRING([--enable-gles2],
568 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
569 [enable_gles2="$enableval"],
571 AC_ARG_ENABLE([openvg],
572 [AS_HELP_STRING([--enable-openvg],
573 [enable support for OpenVG API @<:@default=no@:>@])],
574 [enable_openvg="$enableval"],
578 [AS_HELP_STRING([--enable-dri],
579 [enable DRI modules @<:@default=auto@:>@])],
580 [enable_dri="$enableval"],
583 [AS_HELP_STRING([--enable-glx],
584 [enable GLX library @<:@default=auto@:>@])],
585 [enable_glx="$enableval"],
587 AC_ARG_ENABLE([osmesa],
588 [AS_HELP_STRING([--enable-osmesa],
589 [enable OSMesa library @<:@default=auto@:>@])],
590 [enable_osmesa="$enableval"],
591 [enable_osmesa=auto])
593 [AS_HELP_STRING([--disable-egl],
594 [disable EGL library @<:@default=enabled@:>@])],
595 [enable_egl="$enableval"],
598 AC_ARG_ENABLE([xorg],
599 [AS_HELP_STRING([--enable-xorg],
600 [enable support for X.Org DDX API @<:@default=no@:>@])],
601 [enable_xorg="$enableval"],
604 [AS_HELP_STRING([--enable-xa],
605 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
606 [enable_xa="$enableval"],
608 AC_ARG_ENABLE([d3d1x],
609 [AS_HELP_STRING([--enable-d3d1x],
610 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
611 [enable_d3d1x="$enableval"],
614 [AS_HELP_STRING([--enable-gbm],
615 [enable gbm library @<:@default=auto@:>@])],
616 [enable_gbm="$enableval"],
619 AC_ARG_ENABLE([xvmc],
620 [AS_HELP_STRING([--enable-xvmc],
621 [enable xvmc library @<:@default=auto@:>@])],
622 [enable_xvmc="$enableval"],
624 AC_ARG_ENABLE([vdpau],
625 [AS_HELP_STRING([--enable-vdpau],
626 [enable vdpau library @<:@default=auto@:>@])],
627 [enable_vdpau="$enableval"],
630 [AS_HELP_STRING([--enable-va],
631 [enable va library @<:@default=auto@:>@])],
632 [enable_va="$enableval"],
635 AC_ARG_ENABLE([xlib_glx],
636 [AS_HELP_STRING([--enable-xlib-glx],
637 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
638 [enable_xlib_glx="$enableval"],
639 [enable_xlib_glx=auto])
640 AC_ARG_ENABLE([gallium_egl],
641 [AS_HELP_STRING([--enable-gallium-egl],
642 [enable optional EGL state tracker (not required
643 for EGL support in Gallium with OpenGL and OpenGL ES)
644 @<:@default=disable@:>@])],
645 [enable_gallium_egl="$enableval"],
646 [enable_gallium_egl=no])
647 AC_ARG_ENABLE([gallium_gbm],
648 [AS_HELP_STRING([--enable-gallium-gbm],
649 [enable optional gbm state tracker (not required for
650 gbm support in Gallium)
651 @<:@default=auto@:>@])],
652 [enable_gallium_gbm="$enableval"],
653 [enable_gallium_gbm=auto])
655 # Option for Gallium drivers
656 GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
658 AC_ARG_WITH([gallium-drivers],
659 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
660 [comma delimited Gallium drivers list, e.g.
661 "i915,i965,nouveau,r300,r600,svga,swrast"
662 @<:@default=r300,r600,swrast@:>@])],
663 [with_gallium_drivers="$withval"],
664 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
666 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
667 # here so that the script doesn't choke on an unknown driver name later.
668 case "$with_gallium_drivers" in
669 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
670 no) with_gallium_drivers='' ;;
673 if test "x$enable_opengl" = xno -a \
674 "x$enable_gles1" = xno -a \
675 "x$enable_gles2" = xno -a \
676 "x$enable_openvg" = xno -a \
677 "x$enable_xorg" = xno -a \
678 "x$enable_xa" = xno -a \
679 "x$enable_d3d1x" = xno -a \
680 "x$enable_xvmc" = xno -a \
681 "x$enable_vdpau" = xno -a \
682 "x$enable_va" = xno; then
683 AC_MSG_ERROR([at least one API should be enabled])
687 if test "x$enable_opengl" = xno; then
688 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
690 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
692 if test "x$enable_gles1" = xyes; then
693 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
695 if test "x$enable_gles2" = xyes; then
696 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
698 AC_SUBST([API_DEFINES])
700 AC_ARG_ENABLE([shared-glapi],
701 [AS_HELP_STRING([--enable-shared-glapi],
702 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
703 [enable_shared_glapi="$enableval"],
704 [enable_shared_glapi=no])
707 if test "x$enable_shared_glapi" = xyes; then
710 AC_SUBST([SHARED_GLAPI])
713 dnl Driver configuration. Options are xlib, dri and osmesa right now.
714 dnl More later: fbdev, ...
716 default_driver="xlib"
721 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
724 *freebsd* | dragonfly* | *netbsd*)
726 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
731 if test "x$enable_opengl" = xno; then
735 AC_ARG_WITH([driver],
736 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
737 [mesa_driver="$withval"],
739 dnl Check for valid option
740 case "x$mesa_driver" in
741 xxlib|xdri|xosmesa|xno)
742 if test "x$enable_dri" != xauto -o \
743 "x$enable_glx" != xauto -o \
744 "x$enable_osmesa" != xauto -o \
745 "x$enable_xlib_glx" != xauto; then
746 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
750 mesa_driver="$default_driver"
753 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
757 # map $mesa_driver to APIs
758 if test "x$enable_dri" = xauto; then
759 case "x$mesa_driver" in
760 xdri) enable_dri=yes ;;
765 if test "x$enable_glx" = xauto; then
766 case "x$mesa_driver" in
767 xdri|xxlib) enable_glx=yes ;;
772 if test "x$enable_osmesa" = xauto; then
773 case "x$mesa_driver" in
774 xxlib|xosmesa) enable_osmesa=yes ;;
775 *) enable_osmesa=no ;;
779 if test "x$enable_xlib_glx" = xauto; then
780 case "x$mesa_driver" in
781 xxlib) enable_xlib_glx=yes ;;
782 *) enable_xlib_glx=no ;;
786 if test "x$enable_glx" = xno; then
791 dnl Driver specific build directories
794 dnl this variable will be prepended to SRC_DIRS and is not exported
799 GALLIUM_DIRS="auxiliary drivers state_trackers"
800 GALLIUM_TARGET_DIRS=""
801 GALLIUM_WINSYS_DIRS="sw"
802 GALLIUM_DRIVERS_DIRS="failover galahad trace rbug noop identity"
803 GALLIUM_STATE_TRACKERS_DIRS=""
805 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
806 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
808 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
812 # build glapi if OpenGL is enabled
813 if test "x$enable_opengl" = xyes; then
814 CORE_DIRS="$CORE_DIRS mapi/glapi"
817 # build es1api if OpenGL ES 1.x is enabled
818 if test "x$enable_gles1" = xyes; then
819 CORE_DIRS="$CORE_DIRS mapi/es1api"
822 # build es2api if OpenGL ES 2.x is enabled
823 if test "x$enable_gles2" = xyes; then
824 CORE_DIRS="$CORE_DIRS mapi/es2api"
827 # build glsl and mesa if OpenGL or OpenGL ES is enabled
828 case "x$enable_opengl$enable_gles1$enable_gles2" in
830 CORE_DIRS="$CORE_DIRS glsl mesa"
834 case "x$enable_glx$enable_xlib_glx" in
836 DRIVER_DIRS="$DRIVER_DIRS x11"
837 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
838 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
839 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
840 HAVE_WINSYS_XLIB="yes"
844 SRC_DIRS="$SRC_DIRS glx"
848 if test "x$enable_dri" = xyes; then
849 DRIVER_DIRS="$DRIVER_DIRS dri"
851 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
852 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
856 if test "x$enable_osmesa" = xyes; then
857 # the empty space matters for osmesa... (see src/mesa/Makefile)
858 if test -n "$DRIVER_DIRS"; then
859 DRIVER_DIRS="$DRIVER_DIRS osmesa"
867 AC_SUBST([DRIVER_DIRS])
868 AC_SUBST([GALLIUM_DIRS])
869 AC_SUBST([GALLIUM_TARGET_DIRS])
870 AC_SUBST([GALLIUM_WINSYS_DIRS])
871 AC_SUBST([GALLIUM_DRIVERS_DIRS])
872 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
873 AC_SUBST([MESA_LLVM])
876 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
877 [have_libdrm=yes], [have_libdrm=no])
879 if test "x$enable_dri" = xyes; then
880 # DRI must be shared, I think
881 if test "$enable_static" = yes; then
882 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
885 # not a hard requirement as swrast does not depend on it
886 if test "x$have_libdrm" = xyes; then
887 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
892 dnl Find out if X is available. The variable have_x is set if libX11 is
893 dnl found to mimic AC_PATH_XTRA.
895 if test -n "$PKG_CONFIG"; then
896 AC_MSG_CHECKING([pkg-config files for X11 are available])
897 PKG_CHECK_EXISTS([x11],[
903 AC_MSG_RESULT([$x11_pkgconfig])
907 dnl Use the autoconf macro if no pkg-config files
908 if test "$x11_pkgconfig" = yes; then
909 PKG_CHECK_MODULES([X11], [x11])
912 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
913 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
914 AC_SUBST([X11_CFLAGS])
918 dnl Try to tell the user that the --x-* options are only used when
919 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
920 m4_divert_once([HELP_BEGIN],
921 [These options are only used when the X libraries cannot be found by the
922 pkg-config utility.])
924 dnl We need X for xlib and dri, so bomb now if it's not found
925 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
926 AC_MSG_ERROR([X11 development libraries needed for GLX])
929 dnl XCB - this is only used for GLX right now
931 [AS_HELP_STRING([--enable-xcb],
932 [use XCB for GLX @<:@default=disabled@:>@])],
933 [enable_xcb="$enableval"],
935 if test "x$enable_xcb" = xyes; then
936 DEFINES="$DEFINES -DUSE_XCB"
941 dnl Direct rendering or just indirect rendering
944 dnl Disable by default on GNU/Hurd
945 driglx_direct_default="no"
948 dnl Disable by default on cygwin
949 driglx_direct_default="no"
952 driglx_direct_default="yes"
955 AC_ARG_ENABLE([driglx-direct],
956 [AS_HELP_STRING([--disable-driglx-direct],
957 [enable direct rendering in GLX and EGL for DRI \
958 @<:@default=auto@:>@])],
959 [driglx_direct="$enableval"],
960 [driglx_direct="$driglx_direct_default"])
963 dnl libGL configuration per driver
965 case "x$enable_glx$enable_xlib_glx" in
968 if test "$x11_pkgconfig" = yes; then
969 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
970 GL_PC_REQ_PRIV="x11 xext"
971 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
972 GL_LIB_DEPS="$XLIBGL_LIBS"
974 # should check these...
975 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
976 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
977 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
978 GL_PC_CFLAGS="$X11_INCLUDES"
980 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
981 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
985 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
986 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
987 if test x"$driglx_direct" = xyes; then
988 if test "x$have_libdrm" != xyes; then
989 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
991 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
992 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
995 # find the DRI deps for libGL
996 if test "$x11_pkgconfig" = yes; then
997 dri_modules="x11 xext xdamage xfixes"
999 # add xf86vidmode if available
1000 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
1001 if test "$HAVE_XF86VIDMODE" = yes ; then
1002 dri_modules="$dri_modules xxf86vm"
1005 # add xcb modules if necessary
1006 if test "$enable_xcb" = yes; then
1007 dri_modules="$dri_modules x11-xcb xcb-glx"
1010 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
1011 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1012 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
1013 GL_LIB_DEPS="$DRIGL_LIBS"
1015 # should check these...
1016 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
1017 if test "x$HAVE_XF86VIDMODE" == xyes; then
1018 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
1020 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1022 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1023 GL_PC_CFLAGS="$X11_INCLUDES"
1025 # XCB can only be used from pkg-config
1026 if test "$enable_xcb" = yes; then
1027 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1028 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1029 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1030 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1034 # need DRM libs, -lpthread, etc.
1035 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1036 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1040 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1041 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1042 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1043 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1045 AC_SUBST([GL_LIB_DEPS])
1046 AC_SUBST([GL_PC_REQ_PRIV])
1047 AC_SUBST([GL_PC_LIB_PRIV])
1048 AC_SUBST([GL_PC_CFLAGS])
1049 AC_SUBST([DRI_PC_REQ_PRIV])
1050 AC_SUBST([GLESv1_CM_LIB_DEPS])
1051 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1052 AC_SUBST([GLESv2_LIB_DEPS])
1053 AC_SUBST([GLESv2_PC_LIB_PRIV])
1055 GLAPI_LIB_DEPS="-lpthread"
1056 AC_SUBST([GLAPI_LIB_DEPS])
1059 dnl Setup default DRI CFLAGS
1060 DRI_CFLAGS='$(CFLAGS)'
1061 DRI_CXXFLAGS='$(CXXFLAGS)'
1062 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1063 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1065 AC_ARG_ENABLE([shared-dricore],
1066 [AS_HELP_STRING([--enable-shared-dricore],
1067 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1068 [enable_dricore="$enableval"],
1069 [enable_dricore=no])
1070 if test "x$enable_dri" = xyes ; then
1071 if test "$enable_dricore" = yes ; then
1072 if test "$GCC$GXX" != yesyes ; then
1073 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1076 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1077 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1078 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1079 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1080 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1081 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1082 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1086 AC_SUBST([DRICORE_LIBS])
1087 AC_SUBST([DRICORE_GLSL_LIBS])
1088 AC_SUBST([DRICORE_LIB_DEPS])
1089 AC_SUBST([DRI_CXXFLAGS])
1090 AC_SUBST([DRI_CFLAGS])
1091 AC_SUBST([MESA_MODULES])
1093 AC_SUBST([HAVE_XF86VIDMODE])
1098 case "x$enable_glx$enable_xlib_glx" in
1100 DEFINES="$DEFINES -DUSE_XSHM"
1103 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1104 if test "x$driglx_direct" = xyes; then
1105 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1114 AC_ARG_ENABLE([glx-tls],
1115 [AS_HELP_STRING([--enable-glx-tls],
1116 [enable TLS support in GLX @<:@default=disabled@:>@])],
1117 [GLX_USE_TLS="$enableval"],
1119 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1121 AS_IF([test "x$GLX_USE_TLS" = xyes],
1122 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1127 dnl Directory for DRI drivers
1128 AC_ARG_WITH([dri-driverdir],
1129 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1130 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1131 [DRI_DRIVER_INSTALL_DIR="$withval"],
1132 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1133 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1134 dnl Extra search path for DRI drivers
1135 AC_ARG_WITH([dri-searchpath],
1136 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1137 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1138 [DRI_DRIVER_SEARCH_DIR="$withval"],
1139 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1140 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1141 dnl Which drivers to build - default is chosen by platform
1142 AC_ARG_WITH([dri-drivers],
1143 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1144 [comma delimited DRI drivers list, e.g.
1145 "swrast,i965,radeon" @<:@default=auto@:>@])],
1146 [with_dri_drivers="$withval"],
1147 [with_dri_drivers=yes])
1148 if test "x$with_dri_drivers" = x; then
1152 dnl If $with_dri_drivers is yes, directories will be added through
1155 case "$with_dri_drivers" in
1158 # classic DRI drivers require FEATURE_GL to build
1159 if test "x$enable_opengl" = xyes; then
1164 # verify the requested driver directories exist
1165 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1166 for driver in $dri_drivers; do
1167 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1168 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1170 DRI_DIRS="$dri_drivers"
1171 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1172 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1177 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1178 if test "x$enable_dri" = xyes; then
1179 # Platform specific settings and drivers to build
1182 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1183 DEFINES="$DEFINES -DHAVE_ALIAS"
1187 if test "x$DRI_DIRS" = "xyes"; then
1188 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1192 # Build only the drivers for cards that exist on PowerPC.
1193 if test "x$DRI_DIRS" = "xyes"; then
1194 DRI_DIRS="r200 radeon swrast"
1198 # Build only the drivers for cards that exist on sparc
1199 if test "x$DRI_DIRS" = "xyes"; then
1200 DRI_DIRS="r200 radeon swrast"
1205 freebsd* | dragonfly* | *netbsd*)
1206 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1207 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1209 if test "x$DRI_DIRS" = "xyes"; then
1210 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1214 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1215 DEFINES="$DEFINES -DHAVE_ALIAS"
1218 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1221 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1222 if test "x$DRI_DIRS" = "xyes"; then
1229 if test "x$DRI_DIRS" = "xyes"; then
1230 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1233 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1236 if test "x$enable_dri" = xyes; then
1239 AC_ARG_WITH([expat],
1240 [AS_HELP_STRING([--with-expat=DIR],
1241 [expat install directory])],[
1242 EXPAT_INCLUDES="-I$withval/include"
1243 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1244 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1245 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1247 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1248 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1249 [AC_MSG_ERROR([Expat required for DRI.])])
1252 # libdrm is required for all except swrast
1253 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1254 if test "x$have_libdrm" != xyes; then
1255 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1259 # put all the necessary libs together, including possibly libdricore
1260 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1262 AC_SUBST([DRI_DIRS])
1263 AC_SUBST([EXPAT_INCLUDES])
1264 AC_SUBST([DRI_LIB_DEPS])
1268 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1274 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1280 PKG_CHECK_MODULES([LIBDRM_RADEON],
1281 [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED],
1282 HAVE_LIBDRM_RADEON=yes,
1283 HAVE_LIBDRM_RADEON=no)
1285 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
1286 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
1287 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
1291 AC_SUBST([RADEON_CFLAGS])
1292 AC_SUBST([RADEON_LDFLAGS])
1296 dnl OSMesa configuration
1299 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1300 AC_ARG_WITH([osmesa-bits],
1301 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1302 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1303 [osmesa_bits="$withval"],
1305 if test "x$osmesa_bits" != x8; then
1306 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1307 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1311 case "x$osmesa_bits" in
1313 OSMESA_LIB="${OSMESA_LIB}"
1316 OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1317 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1320 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1324 if test "x$enable_osmesa" = xyes; then
1325 # only link libraries with osmesa if shared
1326 if test "$enable_static" = no; then
1327 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1332 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1334 AC_SUBST([OSMESA_LIB_DEPS])
1335 AC_SUBST([OSMESA_MESA_DEPS])
1336 AC_SUBST([OSMESA_PC_REQ])
1337 AC_SUBST([OSMESA_PC_LIB_PRIV])
1340 dnl gbm configuration
1342 if test "x$enable_gbm" = xauto; then
1343 case "$with_egl_platforms" in
1350 if test "x$enable_gbm" = xyes; then
1351 SRC_DIRS="$SRC_DIRS gbm"
1354 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1355 AC_MSG_ERROR([gbm needs udev]))
1356 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1358 if test "x$enable_dri" = xyes; then
1359 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1360 if test "$SHARED_GLAPI" -eq 0; then
1361 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1365 AC_SUBST([GBM_LIB_DEPS])
1366 AC_SUBST([GBM_BACKEND_DIRS])
1367 GBM_PC_REQ_PRIV="libudev"
1368 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1370 AC_SUBST([GBM_PC_REQ_PRIV])
1371 AC_SUBST([GBM_PC_LIB_PRIV])
1372 AC_SUBST([GBM_PC_CFLAGS])
1375 dnl EGL configuration
1379 if test "x$enable_egl" = xyes; then
1380 SRC_DIRS="$SRC_DIRS egl"
1381 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1384 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1386 if test "$enable_static" != yes; then
1387 # build egl_glx when libGL is built
1388 if test "x$enable_glx" = xyes; then
1389 EGL_DRIVERS_DIRS="glx"
1392 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1393 [have_libudev=yes],[have_libudev=no])
1394 if test "$have_libudev" = yes; then
1395 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1397 if test "x$enable_dri" = xyes; then
1398 # build egl_dri2 when xcb-dri2 is available
1399 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1400 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1402 if test "$have_xcb_dri2" = yes; then
1403 EGL_DRIVER_DRI2=dri2
1404 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1405 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1406 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1407 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1411 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1414 AC_SUBST([EGL_LIB_DEPS])
1415 AC_SUBST([EGL_DRIVERS_DIRS])
1418 dnl EGL Gallium configuration
1420 if test "x$enable_gallium_egl" = xyes; then
1421 if test "x$with_gallium_drivers" = x; then
1422 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1424 if test "x$enable_egl" = xno; then
1425 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1427 if test "x$have_libdrm" != xyes; then
1428 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1431 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1432 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1437 dnl gbm Gallium configuration
1439 if test "x$enable_gallium_gbm" = xauto; then
1440 case "$enable_gbm$HAVE_ST_EGL$with_egl_platforms" in
1442 enable_gallium_gbm=yes ;;
1444 enable_gallium_gbm=no ;;
1447 if test "x$enable_gallium_gbm" = xyes; then
1448 if test "x$with_gallium_drivers" = x; then
1449 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1451 if test "x$enable_gbm" = xno; then
1452 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1455 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1456 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1461 dnl X.Org DDX configuration
1463 if test "x$enable_xorg" = xyes; then
1464 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1465 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1466 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1467 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1468 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1469 HAVE_XEXTPROTO_71="no")
1470 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1475 dnl XA configuration
1477 if test "x$enable_xa" = xyes; then
1478 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1483 dnl OpenVG configuration
1487 if test "x$enable_openvg" = xyes; then
1488 if test "x$enable_egl" = xno; then
1489 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1491 if test "x$with_gallium_drivers" = x; then
1492 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1494 if test "x$enable_gallium_egl" = xno; then
1495 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1498 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1499 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1500 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1501 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1506 dnl D3D1X configuration
1509 if test "x$enable_d3d1x" = xyes; then
1510 if test "x$with_gallium_drivers" = x; then
1511 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1514 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1519 dnl Gallium G3DVL configuration
1521 AC_ARG_ENABLE([gallium-g3dvl],
1522 [AS_HELP_STRING([--enable-gallium-g3dvl],
1523 [build gallium g3dvl @<:@default=disabled@:>@])],
1524 [enable_gallium_g3dvl="$enableval"],
1525 [enable_gallium_g3dvl=no])
1526 if test "x$enable_gallium_g3dvl" = xyes; then
1527 if test "x$with_gallium_drivers" = x; then
1528 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1531 if test "x$enable_xvmc" = xauto; then
1532 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1535 if test "x$enable_vdpau" = xauto; then
1536 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1539 if test "x$enable_va" = xauto; then
1540 #don't enable vaapi state tracker even if package exists
1541 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1546 if test "x$enable_xvmc" = xyes; then
1547 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1548 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1552 if test "x$enable_vdpau" = xyes; then
1553 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1554 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1558 if test "x$enable_va" = xyes; then
1559 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1560 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1561 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1566 dnl GLU configuration
1568 AC_ARG_ENABLE([glu],
1569 [AS_HELP_STRING([--disable-glu],
1570 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1571 [enable_glu="$enableval"],
1574 if test "x$enable_glu" = xyes; then
1575 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1576 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1581 if test "x$enable_glu" = xyes; then
1582 SRC_DIRS="$SRC_DIRS glu"
1584 if test "x$enable_glx" = xno; then
1585 # Link libGLU to libOSMesa instead of libGL
1588 if test "$enable_static" = no; then
1589 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1594 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1596 GLU_PC_LIB_PRIV="-lm"
1597 if test "$enable_static" = no; then
1599 GLU_MESA_DEPS='-l$(GL_LIB)'
1606 if test "$enable_static" = no; then
1607 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1609 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1610 AC_SUBST([GLU_LIB_DEPS])
1611 AC_SUBST([GLU_MESA_DEPS])
1612 AC_SUBST([GLU_PC_REQ])
1613 AC_SUBST([GLU_PC_REQ_PRIV])
1614 AC_SUBST([GLU_PC_LIB_PRIV])
1615 AC_SUBST([GLU_PC_CFLAGS])
1617 AC_SUBST([PROGRAM_DIRS])
1620 dnl Gallium configuration
1622 if test "x$with_gallium_drivers" != x; then
1623 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1626 AC_SUBST([LLVM_CFLAGS])
1627 AC_SUBST([LLVM_LIBS])
1628 AC_SUBST([LLVM_LDFLAGS])
1629 AC_SUBST([LLVM_VERSION])
1631 case "x$enable_opengl$enable_gles1$enable_gles2" in
1633 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1637 AC_SUBST([VG_LIB_DEPS])
1638 AC_SUBST([EGL_CLIENT_APIS])
1640 AC_ARG_WITH([egl-platforms],
1641 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1642 [comma delimited native platforms libEGL supports, e.g.
1643 "x11,drm" @<:@default=auto@:>@])],
1644 [with_egl_platforms="$withval"],
1645 [with_egl_platforms=yes])
1648 WAYLAND_EGL_LIB_DEPS=""
1650 case "$with_egl_platforms" in
1652 if test "x$enable_egl" = xyes; then
1657 if test "x$enable_egl" != xyes; then
1658 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1660 # verify the requested driver directories exist
1661 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1662 for plat in $egl_platforms; do
1663 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1664 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1665 if test "$plat" = "fbdev"; then
1666 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1668 if test "$plat" = "null"; then
1669 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1671 if test "$plat" = "wayland"; then
1672 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1673 [AC_MSG_ERROR([cannot find libwayland-client])])
1674 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1675 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1677 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1678 AC_MSG_ERROR([EGL platform drm needs gbm])
1680 case "$plat$have_libudev" in
1682 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1685 EGL_PLATFORMS="$egl_platforms"
1688 AC_SUBST([EGL_PLATFORMS])
1690 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1691 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1692 WAYLAND_EGL_PC_LIB_PRIV=
1693 WAYLAND_EGL_PC_CFLAGS=
1695 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1696 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1697 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1700 AC_ARG_WITH([egl-driver-dir],
1701 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1702 [directory for EGL drivers [[default=${libdir}/egl]]])],
1703 [EGL_DRIVER_INSTALL_DIR="$withval"],
1704 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1705 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1707 AC_ARG_WITH([xorg-driver-dir],
1708 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1709 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1710 [XORG_DRIVER_INSTALL_DIR="$withval"],
1711 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1712 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1714 AC_ARG_WITH([max-width],
1715 [AS_HELP_STRING([--with-max-width=N],
1716 [Maximum framebuffer width (4096)])],
1717 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1718 AS_IF([test "${withval}" -gt "4096"],
1719 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1721 AC_ARG_WITH([max-height],
1722 [AS_HELP_STRING([--with-max-height=N],
1723 [Maximum framebuffer height (4096)])],
1724 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1725 AS_IF([test "${withval}" -gt "4096"],
1726 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1732 AC_ARG_ENABLE([gallium-llvm],
1733 [AS_HELP_STRING([--enable-gallium-llvm],
1734 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1735 [enable_gallium_llvm="$enableval"],
1736 [enable_gallium_llvm=auto])
1737 if test "x$with_gallium_drivers" = x; then
1738 enable_gallium_llvm=no
1740 if test "x$enable_gallium_llvm" = xauto; then
1742 i*86|x86_64) enable_gallium_llvm=yes;;
1745 if test "x$enable_gallium_llvm" = xyes; then
1746 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1748 if test "x$LLVM_CONFIG" != xno; then
1749 LLVM_VERSION=`$LLVM_CONFIG --version`
1750 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed 's/-DNDEBUG\>//g'`
1751 LLVM_LIBS="`$LLVM_CONFIG --libs`"
1753 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1754 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1763 dnl Directory for VDPAU libs
1764 AC_ARG_WITH([vdpau-libdir],
1765 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1766 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1767 [VDPAU_LIB_INSTALL_DIR="$withval"],
1768 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1769 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1771 dnl Directory for VA libs
1772 AC_ARG_WITH([va-libdir],
1773 [AS_HELP_STRING([--with-va-libdir=DIR],
1774 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1775 [VA_LIB_INSTALL_DIR="$withval"],
1776 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1777 AC_SUBST([VA_LIB_INSTALL_DIR])
1780 dnl Gallium helper functions
1782 gallium_check_st() {
1783 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1784 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1785 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1786 if test "x$have_libdrm" != xyes; then
1787 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1789 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1791 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1792 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1794 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1795 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1797 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1798 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1800 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1801 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1802 NEED_G3DVL_DRI="yes"
1804 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1805 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1806 NEED_G3DVL_DRI="yes"
1808 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1809 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1810 NEED_G3DVL_DRI="yes"
1814 gallium_require_llvm() {
1815 if test "x$MESA_LLVM" = x0; then
1817 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1823 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1824 if test "x$with_gallium_drivers" != x; then
1825 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1826 for driver in $gallium_drivers; do
1829 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1830 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1833 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1834 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1835 if test "x$MESA_LLVM" = x1; then
1836 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1838 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1839 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1842 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1843 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965 softpipe"
1844 if test "x$MESA_LLVM" = x1; then
1845 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1847 gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1850 gallium_require_llvm "Gallium R300"
1851 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1852 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1855 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1856 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1859 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1860 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1861 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1864 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1865 if test "x$MESA_LLVM" = x1; then
1866 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1869 if test "x$HAVE_ST_DRI" = xyes; then
1870 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1872 if test "x$HAVE_ST_VDPAU" = xyes; then
1873 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1875 if test "x$HAVE_ST_XVMC" = xyes; then
1876 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1878 if test "x$HAVE_ST_VA" = xyes; then
1879 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1881 if test "x$HAVE_ST_VDPAU" == xyes ||
1882 test "x$HAVE_ST_XVMC" == xyes ||
1883 test "x$HAVE_ST_VA" == xyes; then
1884 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1885 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1890 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1896 if test "x$NEED_G3DVL_DRI" = xyes; then
1897 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1900 dnl prepend CORE_DIRS to SRC_DIRS
1901 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1903 dnl Restore LDFLAGS and CPPFLAGS
1904 LDFLAGS="$_SAVE_LDFLAGS"
1905 CPPFLAGS="$_SAVE_CPPFLAGS"
1907 dnl Add user CFLAGS and CXXFLAGS
1908 CFLAGS="$CFLAGS $USER_CFLAGS"
1909 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1911 dnl Substitute the config
1912 AC_CONFIG_FILES([configs/autoconf])
1914 dnl Replace the configs/current symlink
1915 AC_CONFIG_COMMANDS([configs],[
1916 if test -f configs/current || test -L configs/current; then
1917 rm -f configs/current
1919 ln -s autoconf configs/current
1922 dnl Sort the dirs alphabetically
1923 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1924 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1925 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1926 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1931 dnl Output some configuration info for the user
1934 echo " prefix: $prefix"
1935 echo " exec_prefix: $exec_prefix"
1936 echo " libdir: $libdir"
1937 echo " includedir: $includedir"
1941 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1942 echo " OpenVG: $enable_openvg"
1946 if test "x$enable_osmesa" != xno; then
1947 echo " OSMesa: lib$OSMESA_LIB"
1952 if test "x$enable_dri" != xno; then
1953 # cleanup the drivers var
1954 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1955 if test "x$DRI_DIRS" = x; then
1956 echo " DRI drivers: no"
1958 echo " DRI drivers: $dri_dirs"
1960 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1961 echo " Shared dricore: $enable_dricore"
1964 case "x$enable_glx$enable_xlib_glx" in
1966 echo " GLX: Xlib-based"
1969 echo " GLX: DRI-based"
1970 echo " Use XCB: $enable_xcb"
1973 echo " GLX: $enable_glx"
1978 echo " GLU: $enable_glu"
1982 echo " EGL: $enable_egl"
1983 if test "$enable_egl" = yes; then
1984 echo " EGL platforms: $EGL_PLATFORMS"
1987 for d in $EGL_DRIVERS_DIRS; do
1988 egl_drivers="$egl_drivers builtin:egl_$d"
1991 if test "x$HAVE_ST_EGL" = xyes; then
1992 echo " EGL drivers: ${egl_drivers} egl_gallium"
1993 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
1995 echo " EGL drivers: $egl_drivers"
2000 if test "x$MESA_LLVM" = x1; then
2002 echo " llvm-config: $LLVM_CONFIG"
2003 echo " llvm-version: $LLVM_VERSION"
2009 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2010 echo " Gallium: yes"
2011 echo " Gallium dirs: $GALLIUM_DIRS"
2012 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2013 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2014 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2015 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2022 echo " Shared libs: $enable_shared"
2023 echo " Static libs: $enable_static"
2025 dnl Compiler options
2026 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2027 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2028 $SED 's/^ *//;s/ */ /;s/ *$//'`
2029 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2030 $SED 's/^ *//;s/ */ /;s/ *$//'`
2031 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2033 echo " CFLAGS: $cflags"
2034 echo " CXXFLAGS: $cxxflags"
2035 echo " Macros: $defines"
2037 echo " PYTHON2: $PYTHON2"
2040 echo " Run '${MAKE-make}' to build Mesa"