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 Versions for external dependencies
21 LIBDRM_REQUIRED=2.4.24
22 LIBDRM_RADEON_REQUIRED=2.4.24
23 LIBDRM_INTEL_REQUIRED=2.4.24
24 LIBDRM_NOUVEAU_REQUIRED=0.6
25 DRI2PROTO_REQUIRED=2.6
26 GLPROTO_REQUIRED=1.4.14
27 LIBDRM_XORG_REQUIRED=2.4.24
28 LIBKMS_XORG_REQUIRED=1.0.0
34 AC_CHECK_PROGS([MAKE], [gmake make])
35 AC_CHECK_PROGS([PYTHON2], [python2 python])
36 AC_PATH_PROG([MKDEP], [makedepend])
37 AC_PATH_PROG([SED], [sed])
39 if test "x$MKDEP" = "x"; then
40 AC_MSG_ERROR([makedepend is required to build Mesa])
43 AC_PATH_PROG([FLEX], [flex])
44 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
46 AC_PATH_PROG([BISON], [bison])
47 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
49 dnl Our fallback install-sh is a symlink to minstall. Use the existing
50 dnl configuration in that case.
52 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
54 dnl We need a POSIX shell for parts of the build. Assume we have one
58 # Solaris /bin/sh is too old/non-POSIX compliant
59 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
64 dnl clang is mostly GCC-compatible, but its version is much lower,
65 dnl so we have to check for it.
66 AC_MSG_CHECKING([if compiling with clang])
69 [AC_LANG_PROGRAM([], [[
74 [CLANG=yes], [CLANG=no])
76 AC_MSG_RESULT([$CLANG])
78 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
79 dnl versions are explictly not supported.
80 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
81 AC_MSG_CHECKING([whether gcc version is sufficient])
85 GCC_VERSION=`$CC -dumpversion`
86 if test $? -eq 0; then
87 major=`echo $GCC_VERSION | cut -d. -f1`
88 minor=`echo $GCC_VERSION | cut -d. -f1`
91 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
93 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
100 MKDEP_OPTIONS=-fdepend
101 dnl Ask gcc where it's keeping its secret headers
102 if test "x$GCC" = xyes; then
103 for dir in include include-fixed; do
104 GCC_INCLUDES=`$CC -print-file-name=$dir`
105 if test "x$GCC_INCLUDES" != x && \
106 test "$GCC_INCLUDES" != "$dir" && \
107 test -d "$GCC_INCLUDES"; then
108 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
112 AC_SUBST([MKDEP_OPTIONS])
114 dnl Make sure the pkg-config macros are defined
115 m4_ifndef([PKG_PROG_PKG_CONFIG],
116 [m4_fatal([Could not locate the pkg-config autoconf macros.
117 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
118 are in a different location, try setting the environment variable
119 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
120 PKG_PROG_PKG_CONFIG()
122 dnl LIB_DIR - library basename
123 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
126 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
127 _SAVE_LDFLAGS="$LDFLAGS"
128 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
129 AC_SUBST([EXTRA_LIB_PATH])
131 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
132 _SAVE_CPPFLAGS="$CPPFLAGS"
133 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
134 AC_SUBST([X11_INCLUDES])
141 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
144 DEFINES="$DEFINES -DPTHREADS -DSVR4"
147 DEFINES="$DEFINES -DPTHREADS"
151 dnl Add flags for gcc and g++
152 if test "x$GCC" = xyes; then
153 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
154 if test "x$CLANG" = "xno"; then
155 CFLAGS="$CFLAGS -ffast-math"
158 # Enable -fvisibility=hidden if using a gcc that supports it
159 save_CFLAGS="$CFLAGS"
160 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
161 VISIBILITY_CFLAGS="-fvisibility=hidden"
162 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
163 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
164 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
166 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
169 # Work around aliasing bugs - developers should comment this out
170 CFLAGS="$CFLAGS -fno-strict-aliasing"
172 if test "x$GXX" = xyes; then
173 CXXFLAGS="$CXXFLAGS -Wall"
175 # Enable -fvisibility=hidden if using a gcc that supports it
176 save_CXXFLAGS="$CXXFLAGS"
177 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
178 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
179 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
181 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
182 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
185 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
186 CXXFLAGS=$save_CXXFLAGS
188 # Work around aliasing bugs - developers should comment this out
189 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
192 dnl even if the compiler appears to support it, using visibility attributes isn't
193 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
197 VISIBILITY_CXXFLAGS=""
201 AC_SUBST([VISIBILITY_CFLAGS])
202 AC_SUBST([VISIBILITY_CXXFLAGS])
204 dnl These should be unnecessary, but let the user set them if they want
205 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
206 Default is to use CFLAGS.])
207 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
208 compiler. Default is to use CFLAGS.])
209 AC_SUBST([OPT_FLAGS])
210 AC_SUBST([ARCH_FLAGS])
213 dnl Hacks to enable 32 or 64 bit build
215 AC_ARG_ENABLE([32-bit],
216 [AS_HELP_STRING([--enable-32-bit],
217 [build 32-bit libraries @<:@default=auto@:>@])],
218 [enable_32bit="$enableval"],
221 if test "x$enable_32bit" = xyes; then
222 if test "x$GCC" = xyes; then
223 CFLAGS="$CFLAGS -m32"
224 ARCH_FLAGS="$ARCH_FLAGS -m32"
226 if test "x$GXX" = xyes; then
227 CXXFLAGS="$CXXFLAGS -m32"
230 AC_ARG_ENABLE([64-bit],
231 [AS_HELP_STRING([--enable-64-bit],
232 [build 64-bit libraries @<:@default=auto@:>@])],
233 [enable_64bit="$enableval"],
236 if test "x$enable_64bit" = xyes; then
237 if test "x$GCC" = xyes; then
238 CFLAGS="$CFLAGS -m64"
240 if test "x$GXX" = xyes; then
241 CXXFLAGS="$CXXFLAGS -m64"
246 dnl shared/static libraries, mimic libtool options
248 AC_ARG_ENABLE([static],
249 [AS_HELP_STRING([--enable-static],
250 [build static libraries @<:@default=disabled@:>@])],
251 [enable_static="$enableval"],
254 case "x$enable_static" in
256 x ) enable_static=no ;;
258 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
261 AC_ARG_ENABLE([shared],
262 [AS_HELP_STRING([--disable-shared],
263 [build shared libraries @<:@default=enabled@:>@])],
264 [enable_shared="$enableval"],
267 case "x$enable_shared" in
269 x ) enable_shared=yes ;;
271 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
275 dnl Can't have static and shared libraries, default to static if user
276 dnl explicitly requested. If both disabled, set to static since shared
277 dnl was explicitly requirested.
278 case "x$enable_static$enable_shared" in
280 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
284 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
292 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
293 if test "$enable_static" = yes; then
294 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
296 AC_SUBST([MKLIB_OPTIONS])
299 dnl other compiler options
301 AC_ARG_ENABLE([debug],
302 [AS_HELP_STRING([--enable-debug],
303 [use debug compiler flags and macros @<:@default=disabled@:>@])],
304 [enable_debug="$enableval"],
307 if test "x$enable_debug" = xyes; then
308 DEFINES="$DEFINES -DDEBUG"
309 if test "x$GCC" = xyes; then
312 if test "x$GXX" = xyes; then
313 CXXFLAGS="$CXXFLAGS -g"
320 LIB_PREFIX_GLOB='lib'
321 LIB_VERSION_SEPARATOR='.'
322 if test "$enable_static" = yes; then
327 LIB_EXTENSION='dylib' ;;
329 dnl prefix can be 'cyg' or 'lib'
330 LIB_PREFIX_GLOB='???'
331 LIB_VERSION_SEPARATOR='-'
332 LIB_EXTENSION='dll' ;;
336 LIB_EXTENSION='so' ;;
341 dnl potentially-infringing-but-nobody-knows-for-sure stuff
343 AC_ARG_ENABLE([texture-float],
344 [AS_HELP_STRING([--enable-texture-float],
345 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
346 [enable_texture_float="$enableval"],
347 [enable_texture_float=no]
349 if test "x$enable_texture_float" = xyes; then
350 AC_MSG_WARN([Floating-point textures enabled.])
351 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
352 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
355 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
356 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
357 GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
358 GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
359 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
360 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
361 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
362 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
363 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
364 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
365 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
366 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
368 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
369 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
370 GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
371 GLW_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLW_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
372 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
373 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
374 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
375 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
376 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
377 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
378 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
379 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
380 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
382 AC_SUBST([GL_LIB_NAME])
383 AC_SUBST([GLU_LIB_NAME])
384 AC_SUBST([GLUT_LIB_NAME])
385 AC_SUBST([GLW_LIB_NAME])
386 AC_SUBST([OSMESA_LIB_NAME])
387 AC_SUBST([EGL_LIB_NAME])
388 AC_SUBST([GLESv1_CM_LIB_NAME])
389 AC_SUBST([GLESv2_LIB_NAME])
390 AC_SUBST([VG_LIB_NAME])
391 AC_SUBST([GLAPI_LIB_NAME])
392 AC_SUBST([WAYLAND_EGL_LIB_NAME])
393 AC_SUBST([GBM_LIB_NAME])
395 AC_SUBST([GL_LIB_GLOB])
396 AC_SUBST([GLU_LIB_GLOB])
397 AC_SUBST([GLUT_LIB_GLOB])
398 AC_SUBST([GLW_LIB_GLOB])
399 AC_SUBST([OSMESA_LIB_GLOB])
400 AC_SUBST([EGL_LIB_GLOB])
401 AC_SUBST([GLESv1_CM_LIB_GLOB])
402 AC_SUBST([GLESv2_LIB_GLOB])
403 AC_SUBST([VG_LIB_GLOB])
404 AC_SUBST([GLAPI_LIB_GLOB])
405 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
406 AC_SUBST([GBM_LIB_GLOB])
409 dnl Arch/platform-specific settings
412 [AS_HELP_STRING([--disable-asm],
413 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
414 [enable_asm="$enableval"],
421 AC_MSG_CHECKING([whether to enable assembly])
422 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
423 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
424 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
428 AC_MSG_RESULT([no, cross compiling])
432 # check for supported arches
433 if test "x$enable_asm" = xyes; then
437 linux* | *freebsd* | dragonfly* | *netbsd*)
438 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
444 linux* | *freebsd* | dragonfly* | *netbsd*)
445 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
467 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
468 MESA_ASM_SOURCES='$(X86_SOURCES)'
469 GLAPI_ASM_SOURCES='$(X86_API)'
470 AC_MSG_RESULT([yes, x86])
473 ASM_FLAGS="-DUSE_X86_64_ASM"
474 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
475 GLAPI_ASM_SOURCES='$(X86-64_API)'
476 AC_MSG_RESULT([yes, x86_64])
479 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
480 MESA_ASM_SOURCES='$(PPC_SOURCES)'
481 AC_MSG_RESULT([yes, ppc])
484 ASM_FLAGS="-DUSE_SPARC_ASM"
485 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
486 GLAPI_ASM_SOURCES='$(SPARC_API)'
487 AC_MSG_RESULT([yes, sparc])
490 AC_MSG_RESULT([no, platform not supported])
494 AC_SUBST([ASM_FLAGS])
495 AC_SUBST([MESA_ASM_SOURCES])
496 AC_SUBST([GLAPI_ASM_SOURCES])
501 dnl Check to see if dlopen is in default libraries (like Solaris, which
502 dnl has it in libc), or if libdl is needed to get it.
503 AC_CHECK_FUNC([dlopen], [],
504 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
505 AC_SUBST([DLOPEN_LIBS])
507 dnl See if posix_memalign is available
508 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
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"
526 AC_ARG_ENABLE([opengl],
527 [AS_HELP_STRING([--disable-opengl],
528 [disable support for standard OpenGL API @<:@default=no@:>@])],
529 [enable_opengl="$enableval"],
531 AC_ARG_ENABLE([gles1],
532 [AS_HELP_STRING([--enable-gles1],
533 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
534 [enable_gles1="$enableval"],
536 AC_ARG_ENABLE([gles2],
537 [AS_HELP_STRING([--enable-gles2],
538 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
539 [enable_gles2="$enableval"],
541 AC_ARG_ENABLE([openvg],
542 [AS_HELP_STRING([--enable-openvg],
543 [enable support for OpenVG API @<:@default=no@:>@])],
544 [enable_openvg="$enableval"],
548 [AS_HELP_STRING([--enable-dri],
549 [enable DRI modules @<:@default=auto@:>@])],
550 [enable_dri="$enableval"],
553 [AS_HELP_STRING([--enable-glx],
554 [enable GLX library @<:@default=auto@:>@])],
555 [enable_glx="$enableval"],
557 AC_ARG_ENABLE([osmesa],
558 [AS_HELP_STRING([--enable-osmesa],
559 [enable OSMesa library @<:@default=auto@:>@])],
560 [enable_osmesa="$enableval"],
561 [enable_osmesa=auto])
563 [AS_HELP_STRING([--disable-egl],
564 [disable EGL library @<:@default=enabled@:>@])],
565 [enable_egl="$enableval"],
568 AC_ARG_ENABLE([xorg],
569 [AS_HELP_STRING([--enable-xorg],
570 [enable support for X.Org DDX API @<:@default=no@:>@])],
571 [enable_xorg="$enableval"],
574 [AS_HELP_STRING([--enable-xa],
575 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
576 [enable_xa="$enableval"],
578 AC_ARG_ENABLE([d3d1x],
579 [AS_HELP_STRING([--enable-d3d1x],
580 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
581 [enable_d3d1x="$enableval"],
584 [AS_HELP_STRING([--enable-gbm],
585 [enable gbm library @<:@default=auto@:>@])],
586 [enable_gbm="$enableval"],
589 AC_ARG_ENABLE([xlib_glx],
590 [AS_HELP_STRING([--enable-xlib-glx],
591 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
592 [enable_xlib_glx="$enableval"],
593 [enable_xlib_glx=auto])
594 AC_ARG_ENABLE([gallium_egl],
595 [AS_HELP_STRING([--enable-gallium-egl],
596 [enable optional EGL state tracker (not required
597 for EGL support in Gallium with OpenGL and OpenGL ES)
598 @<:@default=disable@:>@])],
599 [enable_gallium_egl="$enableval"],
600 [enable_gallium_egl=no])
601 AC_ARG_ENABLE([gallium_gbm],
602 [AS_HELP_STRING([--enable-gallium-gbm],
603 [enable optional gbm state tracker (not required for
604 gbm support in Gallium)
605 @<:@default=auto@:>@])],
606 [enable_gallium_gbm="$enableval"],
607 [enable_gallium_gbm=auto])
609 # Option for Gallium drivers
610 GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
612 AC_ARG_WITH([gallium-drivers],
613 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
614 [comma delimited Gallium drivers list, e.g.
615 "i915,i965,nouveau,r300,r600,svga,swrast"
616 @<:@default=r300,r600,swrast@:>@])],
617 [with_gallium_drivers="$withval"],
618 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
620 if test "x$enable_opengl" = xno -a \
621 "x$enable_gles1" = xno -a \
622 "x$enable_gles2" = xno -a \
623 "x$enable_openvg" = xno -a \
624 "x$enable_xorg" = xno -a \
625 "x$enable_xa" = xno -a \
626 "x$enable_d3d1x" = xno; then
627 AC_MSG_ERROR([at least one API should be enabled])
631 if test "x$enable_opengl" = xno; then
632 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
634 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
636 if test "x$enable_gles1" = xyes; then
637 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
639 if test "x$enable_gles2" = xyes; then
640 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
642 AC_SUBST([API_DEFINES])
644 AC_ARG_ENABLE([shared-glapi],
645 [AS_HELP_STRING([--enable-shared-glapi],
646 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
647 [enable_shared_glapi="$enableval"],
648 [enable_shared_glapi=no])
651 if test "x$enable_shared_glapi" = xyes; then
654 AC_SUBST([SHARED_GLAPI])
657 dnl Driver configuration. Options are xlib, dri and osmesa right now.
658 dnl More later: fbdev, ...
660 default_driver="xlib"
665 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
668 *freebsd* | dragonfly* | *netbsd*)
670 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
675 if test "x$enable_opengl" = xno; then
679 AC_ARG_WITH([driver],
680 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
681 [mesa_driver="$withval"],
683 dnl Check for valid option
684 case "x$mesa_driver" in
685 xxlib|xdri|xosmesa|xno)
686 if test "x$enable_dri" != xauto -o \
687 "x$enable_glx" != xauto -o \
688 "x$enable_osmesa" != xauto -o \
689 "x$enable_xlib_glx" != xauto; then
690 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
694 mesa_driver="$default_driver"
697 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
701 # map $mesa_driver to APIs
702 if test "x$enable_dri" = xauto; then
703 case "x$mesa_driver" in
704 xdri) enable_dri=yes ;;
709 if test "x$enable_glx" = xauto; then
710 case "x$mesa_driver" in
711 xdri|xxlib) enable_glx=yes ;;
716 if test "x$enable_osmesa" = xauto; then
717 case "x$mesa_driver" in
718 xxlib|xosmesa) enable_osmesa=yes ;;
719 *) enable_osmesa=no ;;
723 if test "x$enable_xlib_glx" = xauto; then
724 case "x$mesa_driver" in
725 xxlib) enable_xlib_glx=yes ;;
726 *) enable_xlib_glx=no ;;
730 if test "x$enable_glx" = xno; then
735 dnl Driver specific build directories
738 dnl this variable will be prepended to SRC_DIRS and is not exported
743 GALLIUM_DIRS="auxiliary drivers state_trackers"
744 GALLIUM_TARGET_DIRS=""
745 GALLIUM_WINSYS_DIRS="sw"
746 GALLIUM_DRIVERS_DIRS="softpipe failover galahad trace rbug noop identity"
747 GALLIUM_STATE_TRACKERS_DIRS=""
749 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
750 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
752 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
756 # build glapi if OpenGL is enabled
757 if test "x$enable_opengl" = xyes; then
758 CORE_DIRS="$CORE_DIRS mapi/glapi"
761 # build es1api if OpenGL ES 1.x is enabled
762 if test "x$enable_gles1" = xyes; then
763 CORE_DIRS="$CORE_DIRS mapi/es1api"
766 # build es2api if OpenGL ES 2.x is enabled
767 if test "x$enable_gles2" = xyes; then
768 CORE_DIRS="$CORE_DIRS mapi/es2api"
771 # build glsl and mesa if OpenGL or OpenGL ES is enabled
772 case "x$enable_opengl$enable_gles1$enable_gles2" in
774 CORE_DIRS="$CORE_DIRS glsl mesa"
778 case "x$enable_glx$enable_xlib_glx" in
780 DRIVER_DIRS="$DRIVER_DIRS x11"
781 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
782 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
783 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
787 SRC_DIRS="$SRC_DIRS glx"
791 if test "x$enable_dri" = xyes; then
792 DRIVER_DIRS="$DRIVER_DIRS dri"
794 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib sw/dri"
795 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
799 if test "x$enable_osmesa" = xyes; then
800 # the empty space matters for osmesa... (see src/mesa/Makefile)
801 if test -n "$DRIVER_DIRS"; then
802 DRIVER_DIRS="$DRIVER_DIRS osmesa"
810 AC_SUBST([DRIVER_DIRS])
811 AC_SUBST([GALLIUM_DIRS])
812 AC_SUBST([GALLIUM_TARGET_DIRS])
813 AC_SUBST([GALLIUM_WINSYS_DIRS])
814 AC_SUBST([GALLIUM_DRIVERS_DIRS])
815 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
816 AC_SUBST([MESA_LLVM])
819 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
820 [have_libdrm=yes], [have_libdrm=no])
822 if test "x$enable_dri" = xyes; then
823 # DRI must be shared, I think
824 if test "$enable_static" = yes; then
825 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
828 # not a hard requirement as swrast does not depend on it
829 if test "x$have_libdrm" = xyes; then
830 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
835 dnl Find out if X is available. The variable have_x is set if libX11 is
836 dnl found to mimic AC_PATH_XTRA.
838 if test -n "$PKG_CONFIG"; then
839 AC_MSG_CHECKING([pkg-config files for X11 are available])
840 PKG_CHECK_EXISTS([x11],[
846 AC_MSG_RESULT([$x11_pkgconfig])
850 dnl Use the autoconf macro if no pkg-config files
851 if test "$x11_pkgconfig" = yes; then
852 PKG_CHECK_MODULES([X11], [x11])
855 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
856 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
857 AC_SUBST([X11_CFLAGS])
861 dnl Try to tell the user that the --x-* options are only used when
862 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
863 m4_divert_once([HELP_BEGIN],
864 [These options are only used when the X libraries cannot be found by the
865 pkg-config utility.])
867 dnl We need X for xlib and dri, so bomb now if it's not found
868 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
869 AC_MSG_ERROR([X11 development libraries needed for GLX])
872 dnl XCB - this is only used for GLX right now
874 [AS_HELP_STRING([--enable-xcb],
875 [use XCB for GLX @<:@default=disabled@:>@])],
876 [enable_xcb="$enableval"],
878 if test "x$enable_xcb" = xyes; then
879 DEFINES="$DEFINES -DUSE_XCB"
884 dnl Direct rendering or just indirect rendering
887 dnl Disable by default on GNU/Hurd
888 driglx_direct_default="no"
891 dnl Disable by default on cygwin
892 driglx_direct_default="no"
895 driglx_direct_default="yes"
898 AC_ARG_ENABLE([driglx-direct],
899 [AS_HELP_STRING([--disable-driglx-direct],
900 [enable direct rendering in GLX and EGL for DRI \
901 @<:@default=auto@:>@])],
902 [driglx_direct="$enableval"],
903 [driglx_direct="$driglx_direct_default"])
906 dnl libGL configuration per driver
908 case "x$enable_glx$enable_xlib_glx" in
911 if test "$x11_pkgconfig" = yes; then
912 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
913 GL_PC_REQ_PRIV="x11 xext"
914 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
915 GL_LIB_DEPS="$XLIBGL_LIBS"
917 # should check these...
918 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
919 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
920 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
921 GL_PC_CFLAGS="$X11_INCLUDES"
923 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
924 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
926 # if static, move the external libraries to the programs
927 # and empty the libraries for libGL
928 if test "$enable_static" = yes; then
929 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
935 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
936 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
937 if test x"$driglx_direct" = xyes; then
938 if test "x$have_libdrm" != xyes; then
939 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
941 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
942 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
945 # find the DRI deps for libGL
946 if test "$x11_pkgconfig" = yes; then
947 dri_modules="x11 xext xdamage xfixes"
949 # add xf86vidmode if available
950 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
951 if test "$HAVE_XF86VIDMODE" = yes ; then
952 dri_modules="$dri_modules xxf86vm"
955 # add xcb modules if necessary
956 if test "$enable_xcb" = yes; then
957 dri_modules="$dri_modules x11-xcb xcb-glx"
960 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
961 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
962 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
963 GL_LIB_DEPS="$DRIGL_LIBS"
965 # should check these...
966 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
967 if test "x$HAVE_XF86VIDMODE" == xyes; then
968 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
970 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
972 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
973 GL_PC_CFLAGS="$X11_INCLUDES"
975 # XCB can only be used from pkg-config
976 if test "$enable_xcb" = yes; then
977 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
978 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
979 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
980 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
984 # need DRM libs, -lpthread, etc.
985 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
986 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
990 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
991 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
992 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
993 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
995 AC_SUBST([GL_LIB_DEPS])
996 AC_SUBST([GL_PC_REQ_PRIV])
997 AC_SUBST([GL_PC_LIB_PRIV])
998 AC_SUBST([GL_PC_CFLAGS])
999 AC_SUBST([DRI_PC_REQ_PRIV])
1000 AC_SUBST([GLESv1_CM_LIB_DEPS])
1001 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1002 AC_SUBST([GLESv2_LIB_DEPS])
1003 AC_SUBST([GLESv2_PC_LIB_PRIV])
1005 GLAPI_LIB_DEPS="-lpthread"
1006 AC_SUBST([GLAPI_LIB_DEPS])
1009 dnl Setup default DRI CFLAGS
1010 DRI_CFLAGS='$(CFLAGS)'
1011 DRI_CXXFLAGS='$(CXXFLAGS)'
1012 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1013 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1015 AC_ARG_ENABLE([shared-dricore],
1016 [AS_HELP_STRING([--enable-shared-dricore],
1017 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1018 [enable_dricore="$enableval"],
1019 [enable_dricore=no])
1020 if test "x$enable_dri" = xyes ; then
1021 if test "$enable_dricore" = yes ; then
1022 if test "$GCC$GXX" != yesyes ; then
1023 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1026 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1027 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1028 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1029 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1030 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1031 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1032 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1036 AC_SUBST([DRICORE_LIBS])
1037 AC_SUBST([DRICORE_GLSL_LIBS])
1038 AC_SUBST([DRICORE_LIB_DEPS])
1039 AC_SUBST([DRI_CXXFLAGS])
1040 AC_SUBST([DRI_CFLAGS])
1041 AC_SUBST([MESA_MODULES])
1043 AC_SUBST([HAVE_XF86VIDMODE])
1045 PKG_CHECK_MODULES([LIBDRM_RADEON],
1046 [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED],
1047 HAVE_LIBDRM_RADEON=yes,
1048 HAVE_LIBDRM_RADEON=no)
1053 case "x$enable_glx$enable_xlib_glx" in
1055 DEFINES="$DEFINES -DUSE_XSHM"
1058 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1059 if test "x$driglx_direct" = xyes; then
1060 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1069 AC_ARG_ENABLE([glx-tls],
1070 [AS_HELP_STRING([--enable-glx-tls],
1071 [enable TLS support in GLX @<:@default=disabled@:>@])],
1072 [GLX_USE_TLS="$enableval"],
1074 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1076 AS_IF([test "x$GLX_USE_TLS" = xyes],
1077 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1082 dnl Directory for DRI drivers
1083 AC_ARG_WITH([dri-driverdir],
1084 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1085 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1086 [DRI_DRIVER_INSTALL_DIR="$withval"],
1087 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1088 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1089 dnl Extra search path for DRI drivers
1090 AC_ARG_WITH([dri-searchpath],
1091 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1092 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1093 [DRI_DRIVER_SEARCH_DIR="$withval"],
1094 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1095 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1096 dnl Which drivers to build - default is chosen by platform
1097 AC_ARG_WITH([dri-drivers],
1098 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1099 [comma delimited DRI drivers list, e.g.
1100 "swrast,i965,radeon" @<:@default=auto@:>@])],
1101 [with_dri_drivers="$withval"],
1102 [with_dri_drivers=yes])
1103 if test "x$with_dri_drivers" = x; then
1107 dnl If $with_dri_drivers is yes, directories will be added through
1110 case "$with_dri_drivers" in
1113 # classic DRI drivers require FEATURE_GL to build
1114 if test "x$enable_opengl" = xyes; then
1119 # verify the requested driver directories exist
1120 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1121 for driver in $dri_drivers; do
1122 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1123 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1125 DRI_DIRS="$dri_drivers"
1126 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1127 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1132 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1133 if test "x$enable_dri" = xyes; then
1134 # Platform specific settings and drivers to build
1137 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1138 DEFINES="$DEFINES -DHAVE_ALIAS"
1142 # sis is missing because they have not be converted to use
1143 # the new interface. i810 are missing because there is no
1144 # x86-64 system where they could *ever* be used.
1145 if test "x$DRI_DIRS" = "xyes"; then
1146 DRI_DIRS="i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1147 radeon savage tdfx unichrome swrast"
1151 # Build only the drivers for cards that exist on PowerPC.
1152 # At some point MGA will be added, but not yet.
1153 if test "x$DRI_DIRS" = "xyes"; then
1154 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
1158 # Build only the drivers for cards that exist on sparc`
1159 if test "x$DRI_DIRS" = "xyes"; then
1160 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
1165 freebsd* | dragonfly* | *netbsd*)
1166 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1167 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1169 if test "x$DRI_DIRS" = "xyes"; then
1170 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1171 radeon tdfx unichrome savage sis swrast"
1175 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1176 DEFINES="$DEFINES -DHAVE_ALIAS"
1179 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1182 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1183 if test "x$DRI_DIRS" = "xyes"; then
1190 if test "x$DRI_DIRS" = "xyes"; then
1191 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \
1192 savage sis tdfx unichrome swrast"
1195 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1198 if test "x$enable_dri" = xyes; then
1201 AC_ARG_WITH([expat],
1202 [AS_HELP_STRING([--with-expat=DIR],
1203 [expat install directory])],[
1204 EXPAT_INCLUDES="-I$withval/include"
1205 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1206 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1207 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1209 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1210 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1211 [AC_MSG_ERROR([Expat required for DRI.])])
1214 # libdrm is required for all except swrast
1215 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1216 if test "x$have_libdrm" != xyes; then
1217 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1221 # put all the necessary libs together, including possibly libdricore
1222 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1224 AC_SUBST([DRI_DIRS])
1225 AC_SUBST([EXPAT_INCLUDES])
1226 AC_SUBST([DRI_LIB_DEPS])
1230 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1236 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1241 *radeon*|*r200*|*r300*|*r600*)
1242 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
1243 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
1244 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
1248 AC_SUBST([RADEON_CFLAGS])
1249 AC_SUBST([RADEON_LDFLAGS])
1253 dnl OSMesa configuration
1256 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1257 AC_ARG_WITH([osmesa-bits],
1258 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1259 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1260 [osmesa_bits="$withval"],
1262 if test "x$osmesa_bits" != x8; then
1263 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1264 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1268 case "x$osmesa_bits" in
1273 OSMESA_LIB="OSMesa$osmesa_bits"
1274 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1277 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1280 AC_SUBST([OSMESA_LIB])
1282 if test "x$enable_osmesa" = xyes; then
1283 # only link libraries with osmesa if shared
1284 if test "$enable_static" = no; then
1285 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1290 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1292 AC_SUBST([OSMESA_LIB_DEPS])
1293 AC_SUBST([OSMESA_MESA_DEPS])
1294 AC_SUBST([OSMESA_PC_REQ])
1295 AC_SUBST([OSMESA_PC_LIB_PRIV])
1298 dnl EGL configuration
1302 if test "x$enable_egl" = xyes; then
1303 SRC_DIRS="$SRC_DIRS egl"
1304 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1307 if test "$enable_static" != yes; then
1308 # build egl_glx when libGL is built
1309 if test "x$enable_glx" = xyes; then
1310 EGL_DRIVERS_DIRS="glx"
1313 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1314 [have_libudev=yes],[have_libudev=no])
1315 if test "$have_libudev" = yes; then
1316 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1318 if test "x$enable_dri" = xyes; then
1319 # build egl_dri2 when xcb-dri2 is available
1320 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1321 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1323 if test "$have_xcb_dri2" = yes; then
1324 EGL_DRIVER_DRI2=dri2
1325 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1326 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1327 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1328 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1332 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1335 AC_SUBST([EGL_LIB_DEPS])
1336 AC_SUBST([EGL_DRIVERS_DIRS])
1339 dnl gbm configuration
1341 if test "x$enable_gbm" = xauto; then
1342 case "$with_egl_platforms" in
1349 if test "x$enable_gbm" = xyes; then
1350 SRC_DIRS="$SRC_DIRS gbm"
1353 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1354 AC_MSG_ERROR([gbm needs udev]))
1355 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1357 if test "x$enable_dri" = xyes; then
1358 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1359 if test "$SHARED_GLAPI" -eq 0; then
1360 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1364 AC_SUBST([GBM_LIB_DEPS])
1365 AC_SUBST([GBM_BACKEND_DIRS])
1366 GBM_PC_REQ_PRIV="libudev"
1367 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1369 AC_SUBST([GBM_PC_REQ_PRIV])
1370 AC_SUBST([GBM_PC_LIB_PRIV])
1371 AC_SUBST([GBM_PC_CFLAGS])
1374 dnl EGL Gallium configuration
1376 if test "x$enable_gallium_egl" = xyes; then
1377 if test "x$with_gallium_drivers" = x; then
1378 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1380 if test "x$enable_egl" = xno; then
1381 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1383 if test "x$have_libdrm" != xyes; then
1384 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1387 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1388 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1393 dnl gbm Gallium configuration
1395 if test "x$enable_gallium_gbm" = xauto; then
1396 case "$enable_gbm$HAVE_ST_EGL$with_egl_platforms" in
1398 enable_gallium_gbm=yes ;;
1400 enable_gallium_gbm=no ;;
1403 if test "x$enable_gallium_gbm" = xyes; then
1404 if test "x$with_gallium_drivers" = x; then
1405 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1407 if test "x$enable_gbm" = xno; then
1408 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1411 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1412 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1417 dnl X.Org DDX configuration
1419 if test "x$enable_xorg" = xyes; then
1420 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1421 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1422 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1423 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1424 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1425 HAVE_XEXTPROTO_71="no")
1426 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1431 dnl XA configuration
1433 if test "x$enable_xa" = xyes; then
1434 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1439 dnl OpenVG configuration
1443 if test "x$enable_openvg" = xyes; then
1444 if test "x$enable_egl" = xno; then
1445 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1447 if test "x$with_gallium_drivers" = x; then
1448 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1450 if test "x$enable_gallium_egl" = xno; then
1451 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1454 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1455 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1456 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1457 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1462 dnl D3D1X configuration
1465 if test "x$enable_d3d1x" = xyes; then
1466 if test "x$with_gallium_drivers" = x; then
1467 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1470 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1475 dnl GLU configuration
1477 AC_ARG_ENABLE([glu],
1478 [AS_HELP_STRING([--disable-glu],
1479 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1480 [enable_glu="$enableval"],
1483 if test "x$enable_glu" = xyes; then
1484 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1485 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1490 if test "x$enable_glu" = xyes; then
1491 SRC_DIRS="$SRC_DIRS glu"
1493 if test "x$enable_glx" = xno; then
1494 # Link libGLU to libOSMesa instead of libGL
1497 if test "$enable_static" = no; then
1498 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1503 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1505 GLU_PC_LIB_PRIV="-lm"
1506 if test "$enable_static" = no; then
1508 GLU_MESA_DEPS='-l$(GL_LIB)'
1512 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1516 if test "$enable_static" = no; then
1517 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1519 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1520 AC_SUBST([GLU_LIB_DEPS])
1521 AC_SUBST([GLU_MESA_DEPS])
1522 AC_SUBST([GLU_PC_REQ])
1523 AC_SUBST([GLU_PC_REQ_PRIV])
1524 AC_SUBST([GLU_PC_LIB_PRIV])
1525 AC_SUBST([GLU_PC_CFLAGS])
1528 dnl GLw configuration
1530 AC_ARG_ENABLE([glw],
1531 [AS_HELP_STRING([--disable-glw],
1532 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
1533 [enable_glw="$enableval"],
1535 dnl Don't build GLw on osmesa
1536 if test "x$enable_glw" = xyes -a "x$enable_glx" = xno; then
1537 AC_MSG_NOTICE([Disabling GLw since there is no OpenGL driver])
1540 AC_ARG_ENABLE([motif],
1541 [AS_HELP_STRING([--enable-motif],
1542 [use Motif widgets in GLw @<:@default=disabled@:>@])],
1543 [enable_motif="$enableval"],
1546 if test "x$enable_glw" = xyes; then
1547 SRC_DIRS="$SRC_DIRS glw"
1548 if test "$x11_pkgconfig" = yes; then
1549 PKG_CHECK_MODULES([GLW],[x11 xt])
1550 GLW_PC_REQ_PRIV="x11 xt"
1551 GLW_LIB_DEPS="$GLW_LIBS"
1553 # should check these...
1554 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
1555 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1556 GLW_PC_CFLAGS="$X11_INCLUDES"
1559 GLW_SOURCES="GLwDrawA.c"
1561 if test "x$enable_motif" = xyes; then
1562 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1563 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1564 if test "x$MOTIF_CONFIG" != xno; then
1565 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1566 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1568 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1569 [AC_MSG_ERROR([Can't locate Motif headers])])
1570 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1571 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1573 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1574 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
1575 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1576 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
1579 # If static, empty GLW_LIB_DEPS and add libs for programs to link
1580 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
1581 if test "$enable_static" = no; then
1582 GLW_MESA_DEPS='-l$(GL_LIB)'
1583 GLW_LIB_DEPS="$GLW_LIB_DEPS"
1585 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1590 AC_SUBST([GLW_LIB_DEPS])
1591 AC_SUBST([GLW_MESA_DEPS])
1592 AC_SUBST([GLW_SOURCES])
1593 AC_SUBST([MOTIF_CFLAGS])
1594 AC_SUBST([GLW_PC_REQ_PRIV])
1595 AC_SUBST([GLW_PC_LIB_PRIV])
1596 AC_SUBST([GLW_PC_CFLAGS])
1599 dnl GLUT configuration
1601 if test -f "$srcdir/include/GL/glut.h"; then
1606 AC_ARG_ENABLE([glut],
1607 [AS_HELP_STRING([--disable-glut],
1608 [enable GLUT library @<:@default=enabled if source available@:>@])],
1609 [enable_glut="$enableval"],
1610 [enable_glut="$default_glut"])
1612 dnl Don't build glut without GLX
1613 if test "x$enable_glut" = xyes -a "x$enable_glx" = xno; then
1614 AC_MSG_NOTICE([Disabling glut since there is no OpenGL driver])
1617 dnl Can't build glut if GLU not available
1618 if test "x$enable_glu$enable_glut" = xnoyes; then
1619 AC_MSG_WARN([Disabling glut since GLU is disabled])
1623 if test "x$enable_glut" = xyes; then
1624 SRC_DIRS="$SRC_DIRS glut/glx"
1625 if test "$x11_pkgconfig" = yes; then
1626 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1627 GLUT_PC_REQ_PRIV="x11 xmu xi"
1628 GLUT_LIB_DEPS="$GLUT_LIBS"
1630 # should check these...
1631 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1632 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1633 GLUT_PC_CFLAGS="$X11_INCLUDES"
1635 if test "x$GCC" = xyes; then
1636 GLUT_CFLAGS="$GLUT_CFLAGS -fexceptions"
1638 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1639 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
1641 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1642 if test "$enable_static" = no; then
1643 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1645 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1650 AC_SUBST([GLUT_LIB_DEPS])
1651 AC_SUBST([GLUT_MESA_DEPS])
1652 AC_SUBST([GLUT_CFLAGS])
1653 AC_SUBST([GLUT_PC_REQ_PRIV])
1654 AC_SUBST([GLUT_PC_LIB_PRIV])
1655 AC_SUBST([GLUT_PC_CFLAGS])
1658 dnl Program library dependencies
1659 dnl Only libm is added here if necessary as the libraries should
1660 dnl be pulled in by the linker
1662 if test "x$APP_LIB_DEPS" = x; then
1665 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1668 APP_LIB_DEPS="-lX11"
1675 AC_SUBST([APP_LIB_DEPS])
1676 AC_SUBST([PROGRAM_DIRS])
1679 dnl Gallium configuration
1681 if test "x$with_gallium_drivers" != x; then
1682 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1683 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1688 AC_SUBST([LLVM_CFLAGS])
1689 AC_SUBST([LLVM_LIBS])
1690 AC_SUBST([LLVM_LDFLAGS])
1691 AC_SUBST([LLVM_VERSION])
1695 case "x$enable_opengl$enable_gles1$enable_gles2" in
1697 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1701 AC_SUBST([VG_LIB_DEPS])
1702 AC_SUBST([EGL_CLIENT_APIS])
1704 AC_ARG_WITH([egl-platforms],
1705 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1706 [comma delimited native platforms libEGL supports, e.g.
1707 "x11,drm" @<:@default=auto@:>@])],
1708 [with_egl_platforms="$withval"],
1709 [with_egl_platforms=yes])
1712 WAYLAND_EGL_LIB_DEPS=""
1714 case "$with_egl_platforms" in
1716 if test "x$enable_egl" = xyes; then
1721 if test "x$enable_egl" != xyes; then
1722 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1724 # verify the requested driver directories exist
1725 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1726 for plat in $egl_platforms; do
1727 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1728 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1729 if test "$plat" = "fbdev"; then
1730 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1732 if test "$plat" = "wayland"; then
1733 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1734 [AC_MSG_ERROR([cannot find libwayland-client])])
1735 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1736 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1738 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1739 AC_MSG_ERROR([EGL platform drm needs gbm])
1741 case "$plat$have_libudev" in
1743 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1746 EGL_PLATFORMS="$egl_platforms"
1749 AC_SUBST([EGL_PLATFORMS])
1751 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1752 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1753 WAYLAND_EGL_PC_LIB_PRIV=
1754 WAYLAND_EGL_PC_CFLAGS=
1756 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1757 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1758 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1761 AC_ARG_WITH([egl-driver-dir],
1762 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1763 [directory for EGL drivers [[default=${libdir}/egl]]])],
1764 [EGL_DRIVER_INSTALL_DIR="$withval"],
1765 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1766 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1768 AC_ARG_WITH([xorg-driver-dir],
1769 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1770 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1771 [XORG_DRIVER_INSTALL_DIR="$withval"],
1772 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1773 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1775 AC_ARG_WITH([max-width],
1776 [AS_HELP_STRING([--with-max-width=N],
1777 [Maximum framebuffer width (4096)])],
1778 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1779 AS_IF([test "${withval}" -gt "4096"],
1780 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1782 AC_ARG_WITH([max-height],
1783 [AS_HELP_STRING([--with-max-height=N],
1784 [Maximum framebuffer height (4096)])],
1785 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1786 AS_IF([test "${withval}" -gt "4096"],
1787 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1793 AC_ARG_ENABLE([gallium-llvm],
1794 [AS_HELP_STRING([--enable-gallium-llvm],
1795 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1796 [enable_gallium_llvm="$enableval"],
1797 [enable_gallium_llvm=auto])
1798 if test "x$with_gallium_drivers" = x; then
1799 enable_gallium_llvm=no
1801 if test "x$enable_gallium_llvm" = xauto; then
1803 i*86|x86_64) enable_gallium_llvm=yes;;
1806 if test "x$enable_gallium_llvm" = xyes; then
1807 if test "x$LLVM_CONFIG" != xno; then
1808 LLVM_VERSION=`$LLVM_CONFIG --version`
1809 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed 's/-DNDEBUG\>//g'`
1810 LLVM_LIBS="`$LLVM_CONFIG --libs` -lstdc++"
1812 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1813 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1814 DEFINES="$DEFINES -DGALLIUM_LLVMPIPE -D__STDC_CONSTANT_MACROS"
1824 dnl Gallium helper functions
1826 gallium_check_st() {
1827 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1828 test "x$HAVE_ST_XA" = xyes; then
1829 if test "x$have_libdrm" != xyes; then
1830 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1832 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1834 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1835 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1837 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1838 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1840 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1841 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1845 gallium_require_llvm() {
1846 if test "x$MESA_LLVM" = x0; then
1848 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1854 if test "x$with_gallium_drivers" != x; then
1855 # This is for compile-testing
1856 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 i965 r300 svga"
1857 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1859 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1860 for driver in $gallium_drivers; do
1863 gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx" "xa-vmwgfx"
1866 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1869 gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1872 gallium_require_llvm "Gallium R300"
1873 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300"
1876 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1877 gallium_check_st "r600/drm" "dri-r600"
1880 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1881 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
1884 if test "x$HAVE_ST_DRI" = xyes; then
1885 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1889 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1895 dnl prepend CORE_DIRS to SRC_DIRS
1896 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1898 dnl Restore LDFLAGS and CPPFLAGS
1899 LDFLAGS="$_SAVE_LDFLAGS"
1900 CPPFLAGS="$_SAVE_CPPFLAGS"
1902 dnl Substitute the config
1903 AC_CONFIG_FILES([configs/autoconf])
1905 dnl Replace the configs/current symlink
1906 AC_CONFIG_COMMANDS([configs],[
1907 if test -f configs/current || test -L configs/current; then
1908 rm -f configs/current
1910 ln -s autoconf configs/current
1913 dnl Sort the dirs alphabetically
1914 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort|tr "\n" " "`
1915 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort|tr "\n" " "`
1916 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort|tr "\n" " "`
1917 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort|tr "\n" " "`
1922 dnl Output some configuration info for the user
1925 echo " prefix: $prefix"
1926 echo " exec_prefix: $exec_prefix"
1927 echo " libdir: $libdir"
1928 echo " includedir: $includedir"
1932 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1933 echo " OpenVG: $enable_openvg"
1937 if test "x$enable_osmesa" != xno; then
1938 echo " OSMesa: lib$OSMESA_LIB"
1943 if test "x$enable_dri" != xno; then
1944 # cleanup the drivers var
1945 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1946 if test "x$DRI_DIRS" = x; then
1947 echo " DRI drivers: no"
1949 echo " DRI drivers: $dri_dirs"
1951 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1952 echo " Shared dricore: $enable_dricore"
1955 case "x$enable_glx$enable_xlib_glx" in
1957 echo " GLX: Xlib-based"
1960 echo " GLX: DRI-based"
1961 echo " Use XCB: $enable_xcb"
1964 echo " GLX: $enable_glx"
1969 echo " GLU: $enable_glu"
1970 echo " GLw: $enable_glw (Motif: $enable_motif)"
1971 echo " glut: $enable_glut"
1975 echo " EGL: $enable_egl"
1976 if test "$enable_egl" = yes; then
1977 echo " EGL platforms: $EGL_PLATFORMS"
1980 for d in $EGL_DRIVERS_DIRS; do
1981 egl_drivers="$egl_drivers builtin:egl_$d"
1984 if test "x$HAVE_ST_EGL" = xyes; then
1985 echo " EGL drivers: ${egl_drivers} egl_gallium"
1986 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
1988 echo " EGL drivers: $egl_drivers"
1993 if test "x$MESA_LLVM" = x1; then
1995 echo " llvm-config: $LLVM_CONFIG"
1996 echo " llvm-version: $LLVM_VERSION"
2002 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2003 echo " Gallium: yes"
2004 echo " Gallium dirs: $GALLIUM_DIRS"
2005 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2006 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2007 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2008 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2015 echo " Shared libs: $enable_shared"
2016 echo " Static libs: $enable_static"
2018 dnl Compiler options
2019 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2020 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2021 $SED 's/^ *//;s/ */ /;s/ *$//'`
2022 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2023 $SED 's/^ *//;s/ */ /;s/ *$//'`
2024 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2026 echo " CFLAGS: $cflags"
2027 echo " CXXFLAGS: $cxxflags"
2028 echo " Macros: $defines"
2030 echo " PYTHON2: $PYTHON2"
2033 echo " Run '${MAKE-make}' to build Mesa"