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.1
26 GLPROTO_REQUIRED=1.4.11
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"],
573 AC_ARG_ENABLE([d3d1x],
574 [AS_HELP_STRING([--enable-d3d1x],
575 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
576 [enable_d3d1x="$enableval"],
579 [AS_HELP_STRING([--enable-gbm],
580 [enable gbm library @<:@default=auto@:>@])],
581 [enable_gbm="$enableval"],
584 AC_ARG_ENABLE([xlib_glx],
585 [AS_HELP_STRING([--enable-xlib-glx],
586 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
587 [enable_xlib_glx="$enableval"],
588 [enable_xlib_glx=auto])
589 AC_ARG_ENABLE([gallium_egl],
590 [AS_HELP_STRING([--enable-gallium-egl],
591 [enable optional EGL state tracker (not required
592 for EGL support in Gallium with OpenGL and OpenGL ES)
593 @<:@default=disable@:>@])],
594 [enable_gallium_egl="$enableval"],
595 [enable_gallium_egl=no])
596 AC_ARG_ENABLE([gallium_gbm],
597 [AS_HELP_STRING([--enable-gallium-gbm],
598 [enable optional gbm state tracker (not required for
599 gbm support in Gallium)
600 @<:@default=auto@:>@])],
601 [enable_gallium_gbm="$enableval"],
602 [enable_gallium_gbm=auto])
604 # Option for Gallium drivers
605 GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
607 AC_ARG_WITH([gallium-drivers],
608 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
609 [comma delimited Gallium drivers list, e.g.
610 "i915,i965,nouveau,r300,r600,svga,swrast"
611 @<:@default=r300,r600,swrast@:>@])],
612 [with_gallium_drivers="$withval"],
613 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
615 if test "x$enable_opengl" = xno -a \
616 "x$enable_gles1" = xno -a \
617 "x$enable_gles2" = xno -a \
618 "x$enable_openvg" = xno -a \
619 "x$enable_xorg" = xno -a \
620 "x$enable_d3d1x" = xno; then
621 AC_MSG_ERROR([at least one API should be enabled])
625 if test "x$enable_opengl" = xno; then
626 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
628 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
630 if test "x$enable_gles1" = xyes; then
631 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
633 if test "x$enable_gles2" = xyes; then
634 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
636 AC_SUBST([API_DEFINES])
638 AC_ARG_ENABLE([shared-glapi],
639 [AS_HELP_STRING([--enable-shared-glapi],
640 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
641 [enable_shared_glapi="$enableval"],
642 [enable_shared_glapi=no])
645 if test "x$enable_shared_glapi" = xyes; then
648 AC_SUBST([SHARED_GLAPI])
651 dnl Driver configuration. Options are xlib, dri and osmesa right now.
652 dnl More later: fbdev, ...
654 default_driver="xlib"
659 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
662 *freebsd* | dragonfly* | *netbsd*)
664 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
669 if test "x$enable_opengl" = xno; then
673 AC_ARG_WITH([driver],
674 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
675 [mesa_driver="$withval"],
677 dnl Check for valid option
678 case "x$mesa_driver" in
679 xxlib|xdri|xosmesa|xno)
680 if test "x$enable_dri" != xauto -o \
681 "x$enable_glx" != xauto -o \
682 "x$enable_osmesa" != xauto -o \
683 "x$enable_xlib_glx" != xauto; then
684 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
688 mesa_driver="$default_driver"
691 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
695 # map $mesa_driver to APIs
696 if test "x$enable_dri" = xauto; then
697 case "x$mesa_driver" in
698 xdri) enable_dri=yes ;;
703 if test "x$enable_glx" = xauto; then
704 case "x$mesa_driver" in
705 xdri|xxlib) enable_glx=yes ;;
710 if test "x$enable_osmesa" = xauto; then
711 case "x$mesa_driver" in
712 xxlib|xosmesa) enable_osmesa=yes ;;
713 *) enable_osmesa=no ;;
717 if test "x$enable_xlib_glx" = xauto; then
718 case "x$mesa_driver" in
719 xxlib) enable_xlib_glx=yes ;;
720 *) enable_xlib_glx=no ;;
724 if test "x$enable_glx" = xno; then
729 dnl Driver specific build directories
732 dnl this variable will be prepended to SRC_DIRS and is not exported
737 GALLIUM_DIRS="auxiliary drivers state_trackers"
738 GALLIUM_TARGET_DIRS=""
739 GALLIUM_WINSYS_DIRS="sw"
740 GALLIUM_DRIVERS_DIRS="softpipe failover galahad trace rbug noop identity"
741 GALLIUM_STATE_TRACKERS_DIRS=""
743 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
744 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
746 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
750 # build glapi if OpenGL is enabled
751 if test "x$enable_opengl" = xyes; then
752 CORE_DIRS="$CORE_DIRS mapi/glapi"
755 # build es1api if OpenGL ES 1.x is enabled
756 if test "x$enable_gles1" = xyes; then
757 CORE_DIRS="$CORE_DIRS mapi/es1api"
760 # build es2api if OpenGL ES 2.x is enabled
761 if test "x$enable_gles2" = xyes; then
762 CORE_DIRS="$CORE_DIRS mapi/es2api"
765 # build glsl and mesa if OpenGL or OpenGL ES is enabled
766 case "x$enable_opengl$enable_gles1$enable_gles2" in
768 CORE_DIRS="$CORE_DIRS glsl mesa"
772 case "x$enable_glx$enable_xlib_glx" in
774 DRIVER_DIRS="$DRIVER_DIRS x11"
775 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
776 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
777 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
781 SRC_DIRS="$SRC_DIRS glx"
785 if test "x$enable_dri" = xyes; then
786 DRIVER_DIRS="$DRIVER_DIRS dri"
788 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib sw/dri"
789 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
793 if test "x$enable_osmesa" = xyes; then
794 # the empty space matters for osmesa... (see src/mesa/Makefile)
795 if test -n "$DRIVER_DIRS"; then
796 DRIVER_DIRS="$DRIVER_DIRS osmesa"
804 AC_SUBST([DRIVER_DIRS])
805 AC_SUBST([GALLIUM_DIRS])
806 AC_SUBST([GALLIUM_TARGET_DIRS])
807 AC_SUBST([GALLIUM_WINSYS_DIRS])
808 AC_SUBST([GALLIUM_DRIVERS_DIRS])
809 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
810 AC_SUBST([MESA_LLVM])
813 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
814 [have_libdrm=yes], [have_libdrm=no])
816 if test "x$enable_dri" = xyes; then
817 # DRI must be shared, I think
818 if test "$enable_static" = yes; then
819 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
822 # not a hard requirement as swrast does not depend on it
823 if test "x$have_libdrm" = xyes; then
824 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
829 dnl Find out if X is available. The variable have_x is set if libX11 is
830 dnl found to mimic AC_PATH_XTRA.
832 if test -n "$PKG_CONFIG"; then
833 AC_MSG_CHECKING([pkg-config files for X11 are available])
834 PKG_CHECK_EXISTS([x11],[
840 AC_MSG_RESULT([$x11_pkgconfig])
844 dnl Use the autoconf macro if no pkg-config files
845 if test "$x11_pkgconfig" = yes; then
846 PKG_CHECK_MODULES([X11], [x11])
849 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
850 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
851 AC_SUBST([X11_CFLAGS])
855 dnl Try to tell the user that the --x-* options are only used when
856 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
857 m4_divert_once([HELP_BEGIN],
858 [These options are only used when the X libraries cannot be found by the
859 pkg-config utility.])
861 dnl We need X for xlib and dri, so bomb now if it's not found
862 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
863 AC_MSG_ERROR([X11 development libraries needed for GLX])
866 dnl XCB - this is only used for GLX right now
868 [AS_HELP_STRING([--enable-xcb],
869 [use XCB for GLX @<:@default=disabled@:>@])],
870 [enable_xcb="$enableval"],
872 if test "x$enable_xcb" = xyes; then
873 DEFINES="$DEFINES -DUSE_XCB"
878 dnl Direct rendering or just indirect rendering
881 dnl Disable by default on GNU/Hurd
882 driglx_direct_default="no"
885 dnl Disable by default on cygwin
886 driglx_direct_default="no"
889 driglx_direct_default="yes"
892 AC_ARG_ENABLE([driglx-direct],
893 [AS_HELP_STRING([--disable-driglx-direct],
894 [enable direct rendering in GLX and EGL for DRI \
895 @<:@default=auto@:>@])],
896 [driglx_direct="$enableval"],
897 [driglx_direct="$driglx_direct_default"])
900 dnl libGL configuration per driver
902 case "x$enable_glx$enable_xlib_glx" in
905 if test "$x11_pkgconfig" = yes; then
906 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
907 GL_PC_REQ_PRIV="x11 xext"
908 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
909 GL_LIB_DEPS="$XLIBGL_LIBS"
911 # should check these...
912 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
913 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
914 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
915 GL_PC_CFLAGS="$X11_INCLUDES"
917 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
918 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
920 # if static, move the external libraries to the programs
921 # and empty the libraries for libGL
922 if test "$enable_static" = yes; then
923 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
929 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
930 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
931 if test x"$driglx_direct" = xyes; then
932 if test "x$have_libdrm" != xyes; then
933 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
935 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
936 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
939 # find the DRI deps for libGL
940 if test "$x11_pkgconfig" = yes; then
941 dri_modules="x11 xext xdamage xfixes"
943 # add xf86vidmode if available
944 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
945 if test "$HAVE_XF86VIDMODE" = yes ; then
946 dri_modules="$dri_modules xxf86vm"
949 # add xcb modules if necessary
950 if test "$enable_xcb" = yes; then
951 dri_modules="$dri_modules x11-xcb xcb-glx"
954 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
955 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
956 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
957 GL_LIB_DEPS="$DRIGL_LIBS"
959 # should check these...
960 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
961 if test "x$HAVE_XF86VIDMODE" == xyes; then
962 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
964 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
966 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
967 GL_PC_CFLAGS="$X11_INCLUDES"
969 # XCB can only be used from pkg-config
970 if test "$enable_xcb" = yes; then
971 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
972 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
973 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
974 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
978 # need DRM libs, -lpthread, etc.
979 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
980 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
984 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
985 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
986 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
987 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
989 AC_SUBST([GL_LIB_DEPS])
990 AC_SUBST([GL_PC_REQ_PRIV])
991 AC_SUBST([GL_PC_LIB_PRIV])
992 AC_SUBST([GL_PC_CFLAGS])
993 AC_SUBST([DRI_PC_REQ_PRIV])
994 AC_SUBST([GLESv1_CM_LIB_DEPS])
995 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
996 AC_SUBST([GLESv2_LIB_DEPS])
997 AC_SUBST([GLESv2_PC_LIB_PRIV])
999 GLAPI_LIB_DEPS="-lpthread"
1000 AC_SUBST([GLAPI_LIB_DEPS])
1003 dnl Setup default DRI CFLAGS
1004 DRI_CFLAGS='$(CFLAGS)'
1005 DRI_CXXFLAGS='$(CXXFLAGS)'
1006 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1007 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1009 AC_ARG_ENABLE([shared-dricore],
1010 [AS_HELP_STRING([--enable-shared-dricore],
1011 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1012 [enable_dricore="$enableval"],
1013 [enable_dricore=no])
1014 if test "x$enable_dri" = xyes ; then
1015 if test "$enable_dricore" = yes ; then
1016 if test "$GCC$GXX" != yesyes ; then
1017 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1020 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1021 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1022 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1023 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1024 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1025 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1026 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1030 AC_SUBST([DRICORE_LIBS])
1031 AC_SUBST([DRICORE_GLSL_LIBS])
1032 AC_SUBST([DRICORE_LIB_DEPS])
1033 AC_SUBST([DRI_CXXFLAGS])
1034 AC_SUBST([DRI_CFLAGS])
1035 AC_SUBST([MESA_MODULES])
1037 AC_SUBST([HAVE_XF86VIDMODE])
1039 PKG_CHECK_MODULES([LIBDRM_RADEON],
1040 [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED],
1041 HAVE_LIBDRM_RADEON=yes,
1042 HAVE_LIBDRM_RADEON=no)
1047 case "x$enable_glx$enable_xlib_glx" in
1049 DEFINES="$DEFINES -DUSE_XSHM"
1052 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1053 if test "x$driglx_direct" = xyes; then
1054 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1063 AC_ARG_ENABLE([glx-tls],
1064 [AS_HELP_STRING([--enable-glx-tls],
1065 [enable TLS support in GLX @<:@default=disabled@:>@])],
1066 [GLX_USE_TLS="$enableval"],
1068 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1070 AS_IF([test "x$GLX_USE_TLS" = xyes],
1071 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1076 dnl Directory for DRI drivers
1077 AC_ARG_WITH([dri-driverdir],
1078 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1079 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1080 [DRI_DRIVER_INSTALL_DIR="$withval"],
1081 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1082 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1083 dnl Extra search path for DRI drivers
1084 AC_ARG_WITH([dri-searchpath],
1085 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1086 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1087 [DRI_DRIVER_SEARCH_DIR="$withval"],
1088 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1089 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1090 dnl Which drivers to build - default is chosen by platform
1091 AC_ARG_WITH([dri-drivers],
1092 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1093 [comma delimited DRI drivers list, e.g.
1094 "swrast,i965,radeon" @<:@default=auto@:>@])],
1095 [with_dri_drivers="$withval"],
1096 [with_dri_drivers=yes])
1097 if test "x$with_dri_drivers" = x; then
1101 dnl If $with_dri_drivers is yes, directories will be added through
1104 case "$with_dri_drivers" in
1107 # classic DRI drivers require FEATURE_GL to build
1108 if test "x$enable_opengl" = xyes; then
1113 # verify the requested driver directories exist
1114 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1115 for driver in $dri_drivers; do
1116 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1117 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1119 DRI_DIRS="$dri_drivers"
1120 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1121 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1126 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1127 if test "x$enable_dri" = xyes; then
1128 # Platform specific settings and drivers to build
1131 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1132 DEFINES="$DEFINES -DHAVE_ALIAS"
1136 # sis is missing because they have not be converted to use
1137 # the new interface. i810 are missing because there is no
1138 # x86-64 system where they could *ever* be used.
1139 if test "x$DRI_DIRS" = "xyes"; then
1140 DRI_DIRS="i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1141 radeon savage tdfx unichrome swrast"
1145 # Build only the drivers for cards that exist on PowerPC.
1146 # At some point MGA will be added, but not yet.
1147 if test "x$DRI_DIRS" = "xyes"; then
1148 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
1152 # Build only the drivers for cards that exist on sparc`
1153 if test "x$DRI_DIRS" = "xyes"; then
1154 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
1159 freebsd* | dragonfly* | *netbsd*)
1160 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1161 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1163 if test "x$DRI_DIRS" = "xyes"; then
1164 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1165 radeon tdfx unichrome savage sis swrast"
1169 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1170 DEFINES="$DEFINES -DHAVE_ALIAS"
1173 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1176 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1177 if test "x$DRI_DIRS" = "xyes"; then
1184 if test "x$DRI_DIRS" = "xyes"; then
1185 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \
1186 savage sis tdfx unichrome swrast"
1189 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1192 if test "x$enable_dri" = xyes; then
1195 AC_ARG_WITH([expat],
1196 [AS_HELP_STRING([--with-expat=DIR],
1197 [expat install directory])],[
1198 EXPAT_INCLUDES="-I$withval/include"
1199 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1200 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1201 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1203 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1204 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1205 [AC_MSG_ERROR([Expat required for DRI.])])
1208 # libdrm is required for all except swrast
1209 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1210 if test "x$have_libdrm" != xyes; then
1211 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1215 # put all the necessary libs together, including possibly libdricore
1216 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1218 AC_SUBST([DRI_DIRS])
1219 AC_SUBST([EXPAT_INCLUDES])
1220 AC_SUBST([DRI_LIB_DEPS])
1224 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1230 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1235 *radeon*|*r200*|*r300*|*r600*)
1236 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
1237 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
1238 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
1242 AC_SUBST([RADEON_CFLAGS])
1243 AC_SUBST([RADEON_LDFLAGS])
1247 dnl OSMesa configuration
1250 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1251 AC_ARG_WITH([osmesa-bits],
1252 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1253 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1254 [osmesa_bits="$withval"],
1256 if test "x$osmesa_bits" != x8; then
1257 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1258 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1262 case "x$osmesa_bits" in
1267 OSMESA_LIB="OSMesa$osmesa_bits"
1268 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1271 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1274 AC_SUBST([OSMESA_LIB])
1276 if test "x$enable_osmesa" = xyes; then
1277 # only link libraries with osmesa if shared
1278 if test "$enable_static" = no; then
1279 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1284 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1286 AC_SUBST([OSMESA_LIB_DEPS])
1287 AC_SUBST([OSMESA_MESA_DEPS])
1288 AC_SUBST([OSMESA_PC_REQ])
1289 AC_SUBST([OSMESA_PC_LIB_PRIV])
1292 dnl EGL configuration
1296 if test "x$enable_egl" = xyes; then
1297 SRC_DIRS="$SRC_DIRS egl"
1298 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1301 if test "$enable_static" != yes; then
1302 # build egl_glx when libGL is built
1303 if test "x$enable_glx" = xyes; then
1304 EGL_DRIVERS_DIRS="glx"
1307 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1308 [have_libudev=yes],[have_libudev=no])
1309 if test "$have_libudev" = yes; then
1310 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1312 if test "x$enable_dri" = xyes; then
1313 # build egl_dri2 when xcb-dri2 is available
1314 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1315 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1317 if test "$have_xcb_dri2" = yes; then
1318 EGL_DRIVER_DRI2=dri2
1319 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1320 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1321 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1322 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1326 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1329 AC_SUBST([EGL_LIB_DEPS])
1330 AC_SUBST([EGL_DRIVERS_DIRS])
1333 dnl gbm configuration
1335 if test "x$enable_gbm" = xauto; then
1336 case "$with_egl_platforms" in
1343 if test "x$enable_gbm" = xyes; then
1344 SRC_DIRS="$SRC_DIRS gbm"
1347 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1348 AC_MSG_ERROR([gbm needs udev]))
1349 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1351 if test "x$enable_dri" = xyes; then
1352 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1353 if test "$SHARED_GLAPI" -eq 0; then
1354 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1358 AC_SUBST([GBM_LIB_DEPS])
1359 AC_SUBST([GBM_BACKEND_DIRS])
1360 GBM_PC_REQ_PRIV="libudev"
1361 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1363 AC_SUBST([GBM_PC_REQ_PRIV])
1364 AC_SUBST([GBM_PC_LIB_PRIV])
1365 AC_SUBST([GBM_PC_CFLAGS])
1368 dnl EGL Gallium configuration
1370 if test "x$enable_gallium_egl" = xyes; then
1371 if test "x$with_gallium_drivers" = x; then
1372 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1374 if test "x$enable_egl" = xno; then
1375 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1377 if test "x$have_libdrm" != xyes; then
1378 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1381 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1382 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1387 dnl gbm Gallium configuration
1389 if test "x$enable_gallium_gbm" = xauto; then
1390 case "$enable_gbm$HAVE_ST_EGL$with_egl_platforms" in
1392 enable_gallium_gbm=yes ;;
1394 enable_gallium_gbm=no ;;
1397 if test "x$enable_gallium_gbm" = xyes; then
1398 if test "x$with_gallium_drivers" = x; then
1399 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1401 if test "x$enable_gbm" = xno; then
1402 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1405 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1406 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1411 dnl X.Org DDX configuration
1413 if test "x$enable_xorg" = xyes; then
1414 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1415 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1416 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1417 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1418 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1419 HAVE_XEXTPROTO_71="no")
1420 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1425 dnl OpenVG configuration
1429 if test "x$enable_openvg" = xyes; then
1430 if test "x$enable_egl" = xno; then
1431 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1433 if test "x$with_gallium_drivers" = x; then
1434 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1436 if test "x$enable_gallium_egl" = xno; then
1437 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1440 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1441 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1442 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1443 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1448 dnl D3D1X configuration
1451 if test "x$enable_d3d1x" = xyes; then
1452 if test "x$with_gallium_drivers" = x; then
1453 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1456 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1461 dnl GLU configuration
1463 AC_ARG_ENABLE([glu],
1464 [AS_HELP_STRING([--disable-glu],
1465 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1466 [enable_glu="$enableval"],
1469 if test "x$enable_glu" = xyes; then
1470 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1471 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1476 if test "x$enable_glu" = xyes; then
1477 SRC_DIRS="$SRC_DIRS glu"
1479 if test "x$enable_glx" = xno; then
1480 # Link libGLU to libOSMesa instead of libGL
1483 if test "$enable_static" = no; then
1484 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1489 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1491 GLU_PC_LIB_PRIV="-lm"
1492 if test "$enable_static" = no; then
1494 GLU_MESA_DEPS='-l$(GL_LIB)'
1498 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1502 if test "$enable_static" = no; then
1503 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1505 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1506 AC_SUBST([GLU_LIB_DEPS])
1507 AC_SUBST([GLU_MESA_DEPS])
1508 AC_SUBST([GLU_PC_REQ])
1509 AC_SUBST([GLU_PC_REQ_PRIV])
1510 AC_SUBST([GLU_PC_LIB_PRIV])
1511 AC_SUBST([GLU_PC_CFLAGS])
1514 dnl GLw configuration
1516 AC_ARG_ENABLE([glw],
1517 [AS_HELP_STRING([--disable-glw],
1518 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
1519 [enable_glw="$enableval"],
1521 dnl Don't build GLw on osmesa
1522 if test "x$enable_glw" = xyes -a "x$enable_glx" = xno; then
1523 AC_MSG_NOTICE([Disabling GLw since there is no OpenGL driver])
1526 AC_ARG_ENABLE([motif],
1527 [AS_HELP_STRING([--enable-motif],
1528 [use Motif widgets in GLw @<:@default=disabled@:>@])],
1529 [enable_motif="$enableval"],
1532 if test "x$enable_glw" = xyes; then
1533 SRC_DIRS="$SRC_DIRS glw"
1534 if test "$x11_pkgconfig" = yes; then
1535 PKG_CHECK_MODULES([GLW],[x11 xt])
1536 GLW_PC_REQ_PRIV="x11 xt"
1537 GLW_LIB_DEPS="$GLW_LIBS"
1539 # should check these...
1540 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
1541 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1542 GLW_PC_CFLAGS="$X11_INCLUDES"
1545 GLW_SOURCES="GLwDrawA.c"
1547 if test "x$enable_motif" = xyes; then
1548 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1549 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1550 if test "x$MOTIF_CONFIG" != xno; then
1551 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1552 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1554 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1555 [AC_MSG_ERROR([Can't locate Motif headers])])
1556 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1557 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1559 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1560 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
1561 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1562 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
1565 # If static, empty GLW_LIB_DEPS and add libs for programs to link
1566 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
1567 if test "$enable_static" = no; then
1568 GLW_MESA_DEPS='-l$(GL_LIB)'
1569 GLW_LIB_DEPS="$GLW_LIB_DEPS"
1571 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1576 AC_SUBST([GLW_LIB_DEPS])
1577 AC_SUBST([GLW_MESA_DEPS])
1578 AC_SUBST([GLW_SOURCES])
1579 AC_SUBST([MOTIF_CFLAGS])
1580 AC_SUBST([GLW_PC_REQ_PRIV])
1581 AC_SUBST([GLW_PC_LIB_PRIV])
1582 AC_SUBST([GLW_PC_CFLAGS])
1585 dnl GLUT configuration
1587 if test -f "$srcdir/include/GL/glut.h"; then
1592 AC_ARG_ENABLE([glut],
1593 [AS_HELP_STRING([--disable-glut],
1594 [enable GLUT library @<:@default=enabled if source available@:>@])],
1595 [enable_glut="$enableval"],
1596 [enable_glut="$default_glut"])
1598 dnl Don't build glut without GLX
1599 if test "x$enable_glut" = xyes -a "x$enable_glx" = xno; then
1600 AC_MSG_NOTICE([Disabling glut since there is no OpenGL driver])
1603 dnl Can't build glut if GLU not available
1604 if test "x$enable_glu$enable_glut" = xnoyes; then
1605 AC_MSG_WARN([Disabling glut since GLU is disabled])
1609 if test "x$enable_glut" = xyes; then
1610 SRC_DIRS="$SRC_DIRS glut/glx"
1611 if test "$x11_pkgconfig" = yes; then
1612 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1613 GLUT_PC_REQ_PRIV="x11 xmu xi"
1614 GLUT_LIB_DEPS="$GLUT_LIBS"
1616 # should check these...
1617 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1618 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1619 GLUT_PC_CFLAGS="$X11_INCLUDES"
1621 if test "x$GCC" = xyes; then
1622 GLUT_CFLAGS="$GLUT_CFLAGS -fexceptions"
1624 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1625 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
1627 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1628 if test "$enable_static" = no; then
1629 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1631 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1636 AC_SUBST([GLUT_LIB_DEPS])
1637 AC_SUBST([GLUT_MESA_DEPS])
1638 AC_SUBST([GLUT_CFLAGS])
1639 AC_SUBST([GLUT_PC_REQ_PRIV])
1640 AC_SUBST([GLUT_PC_LIB_PRIV])
1641 AC_SUBST([GLUT_PC_CFLAGS])
1644 dnl Program library dependencies
1645 dnl Only libm is added here if necessary as the libraries should
1646 dnl be pulled in by the linker
1648 if test "x$APP_LIB_DEPS" = x; then
1651 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1654 APP_LIB_DEPS="-lX11"
1661 AC_SUBST([APP_LIB_DEPS])
1662 AC_SUBST([PROGRAM_DIRS])
1665 dnl Gallium configuration
1667 if test "x$with_gallium_drivers" != x; then
1668 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1669 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1674 AC_SUBST([LLVM_CFLAGS])
1675 AC_SUBST([LLVM_LIBS])
1676 AC_SUBST([LLVM_LDFLAGS])
1677 AC_SUBST([LLVM_VERSION])
1681 case "x$enable_opengl$enable_gles1$enable_gles2" in
1683 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1687 AC_SUBST([VG_LIB_DEPS])
1688 AC_SUBST([EGL_CLIENT_APIS])
1690 AC_ARG_WITH([egl-platforms],
1691 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1692 [comma delimited native platforms libEGL supports, e.g.
1693 "x11,drm" @<:@default=auto@:>@])],
1694 [with_egl_platforms="$withval"],
1695 [with_egl_platforms=yes])
1698 WAYLAND_EGL_LIB_DEPS=""
1700 case "$with_egl_platforms" in
1702 if test "x$enable_egl" = xyes; then
1707 if test "x$enable_egl" != xyes; then
1708 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1710 # verify the requested driver directories exist
1711 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1712 for plat in $egl_platforms; do
1713 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1714 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1715 if test "$plat" = "fbdev"; then
1716 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1718 if test "$plat" = "wayland"; then
1719 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1720 [AC_MSG_ERROR([cannot find libwayland-client])])
1721 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1722 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1724 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1725 AC_MSG_ERROR([EGL platform drm needs gbm])
1727 case "$plat$have_libudev" in
1729 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1732 EGL_PLATFORMS="$egl_platforms"
1735 AC_SUBST([EGL_PLATFORMS])
1737 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1738 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1739 WAYLAND_EGL_PC_LIB_PRIV=
1740 WAYLAND_EGL_PC_CFLAGS=
1742 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1743 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1744 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1747 AC_ARG_WITH([egl-driver-dir],
1748 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1749 [directory for EGL drivers [[default=${libdir}/egl]]])],
1750 [EGL_DRIVER_INSTALL_DIR="$withval"],
1751 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1752 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1754 AC_ARG_WITH([xorg-driver-dir],
1755 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1756 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1757 [XORG_DRIVER_INSTALL_DIR="$withval"],
1758 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1759 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1761 AC_ARG_WITH([max-width],
1762 [AS_HELP_STRING([--with-max-width=N],
1763 [Maximum framebuffer width (4096)])],
1764 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1765 AS_IF([test "${withval}" -gt "4096"],
1766 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1768 AC_ARG_WITH([max-height],
1769 [AS_HELP_STRING([--with-max-height=N],
1770 [Maximum framebuffer height (4096)])],
1771 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1772 AS_IF([test "${withval}" -gt "4096"],
1773 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1779 AC_ARG_ENABLE([gallium-llvm],
1780 [AS_HELP_STRING([--enable-gallium-llvm],
1781 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1782 [enable_gallium_llvm="$enableval"],
1783 [enable_gallium_llvm=auto])
1784 if test "x$with_gallium_drivers" = x; then
1785 enable_gallium_llvm=no
1787 if test "x$enable_gallium_llvm" = xauto; then
1789 i*86|x86_64) enable_gallium_llvm=yes;;
1792 if test "x$enable_gallium_llvm" = xyes; then
1793 if test "x$LLVM_CONFIG" != xno; then
1794 LLVM_VERSION=`$LLVM_CONFIG --version`
1795 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags`
1796 LLVM_LIBS="`$LLVM_CONFIG --libs` -lstdc++"
1798 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1799 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1800 DEFINES="$DEFINES -DGALLIUM_LLVMPIPE -D__STDC_CONSTANT_MACROS"
1810 dnl Gallium helper functions
1812 gallium_check_st() {
1813 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes; then
1814 if test "x$have_libdrm" != xyes; then
1815 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1817 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1819 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1820 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1822 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1823 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1827 gallium_require_llvm() {
1828 if test "x$MESA_LLVM" = x0; then
1830 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1836 if test "x$with_gallium_drivers" != x; then
1837 # This is for compile-testing
1838 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 i965 r300 svga"
1839 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1841 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1842 for driver in $gallium_drivers; do
1845 gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
1848 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1851 gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1854 gallium_require_llvm "Gallium R300"
1855 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300"
1858 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1859 gallium_check_st "r600/drm" "dri-r600"
1862 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1863 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
1866 if test "x$HAVE_ST_DRI" = xyes; then
1867 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1871 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1877 dnl prepend CORE_DIRS to SRC_DIRS
1878 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1880 dnl Restore LDFLAGS and CPPFLAGS
1881 LDFLAGS="$_SAVE_LDFLAGS"
1882 CPPFLAGS="$_SAVE_CPPFLAGS"
1884 dnl Substitute the config
1885 AC_CONFIG_FILES([configs/autoconf])
1887 dnl Replace the configs/current symlink
1888 AC_CONFIG_COMMANDS([configs],[
1889 if test -f configs/current || test -L configs/current; then
1890 rm -f configs/current
1892 ln -s autoconf configs/current
1895 dnl Sort the dirs alphabetically
1896 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort|tr "\n" " "`
1897 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort|tr "\n" " "`
1898 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort|tr "\n" " "`
1899 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort|tr "\n" " "`
1904 dnl Output some configuration info for the user
1907 echo " prefix: $prefix"
1908 echo " exec_prefix: $exec_prefix"
1909 echo " libdir: $libdir"
1910 echo " includedir: $includedir"
1914 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1915 echo " OpenVG: $enable_openvg"
1919 if test "x$enable_osmesa" != xno; then
1920 echo " OSMesa: lib$OSMESA_LIB"
1925 if test "x$enable_dri" != xno; then
1926 # cleanup the drivers var
1927 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1928 if test "x$DRI_DIRS" = x; then
1929 echo " DRI drivers: no"
1931 echo " DRI drivers: $dri_dirs"
1933 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1934 echo " Shared dricore: $enable_dricore"
1937 case "x$enable_glx$enable_xlib_glx" in
1939 echo " GLX: Xlib-based"
1942 echo " GLX: DRI-based"
1943 echo " Use XCB: $enable_xcb"
1946 echo " GLX: $enable_glx"
1951 echo " GLU: $enable_glu"
1952 echo " GLw: $enable_glw (Motif: $enable_motif)"
1953 echo " glut: $enable_glut"
1957 echo " EGL: $enable_egl"
1958 if test "$enable_egl" = yes; then
1959 echo " EGL platforms: $EGL_PLATFORMS"
1962 for d in $EGL_DRIVERS_DIRS; do
1963 egl_drivers="$egl_drivers builtin:egl_$d"
1966 if test "x$HAVE_ST_EGL" = xyes; then
1967 echo " EGL drivers: ${egl_drivers} egl_gallium"
1968 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
1970 echo " EGL drivers: $egl_drivers"
1975 if test "x$MESA_LLVM" = x1; then
1977 echo " llvm-config: $LLVM_CONFIG"
1978 echo " llvm-version: $LLVM_VERSION"
1984 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1985 echo " Gallium: yes"
1986 echo " Gallium dirs: $GALLIUM_DIRS"
1987 echo " Target dirs: $GALLIUM_TARGET_DIRS"
1988 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
1989 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
1990 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1997 echo " Shared libs: $enable_shared"
1998 echo " Static libs: $enable_static"
2000 dnl Compiler options
2001 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2002 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2003 $SED 's/^ *//;s/ */ /;s/ *$//'`
2004 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2005 $SED 's/^ *//;s/ */ /;s/ *$//'`
2006 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2008 echo " CFLAGS: $cflags"
2009 echo " CXXFLAGS: $cxxflags"
2010 echo " Macros: $defines"
2012 echo " PYTHON2: $PYTHON2"
2015 echo " Run '${MAKE-make}' to build Mesa"