1 dnl Process this file with autoconf to create configure.
5 dnl Versioning - scrape the version from configs/default
6 m4_define([mesa_version],
7 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
8 m4_ifval(mesa_version,,
9 [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
11 dnl Tell the user about autoconf.html in the --help output
12 m4_divert_once([HELP_END], [
13 See docs/autoconf.html for more details on the options for Mesa.])
15 AC_INIT([Mesa],[mesa_version],
16 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17 AC_CONFIG_AUX_DIR([bin])
20 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
22 USER_CXXFLAGS="$CXXFLAGS"
24 dnl Versions for external dependencies
25 LIBDRM_REQUIRED=2.4.24
26 LIBDRM_RADEON_REQUIRED=2.4.24
27 LIBDRM_INTEL_REQUIRED=2.4.24
28 LIBDRM_NOUVEAU_REQUIRED=0.6
29 DRI2PROTO_REQUIRED=2.6
30 GLPROTO_REQUIRED=1.4.14
31 LIBDRM_XORG_REQUIRED=2.4.24
32 LIBKMS_XORG_REQUIRED=1.0.0
38 AC_CHECK_PROGS([MAKE], [gmake make])
39 AC_CHECK_PROGS([PYTHON2], [python2 python])
40 AC_PATH_PROG([MKDEP], [makedepend])
41 AC_PATH_PROG([SED], [sed])
43 if test "x$MKDEP" = "x"; then
44 AC_MSG_ERROR([makedepend is required to build Mesa])
47 AC_PATH_PROG([FLEX], [flex])
48 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
50 AC_PATH_PROG([BISON], [bison])
51 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
53 dnl Our fallback install-sh is a symlink to minstall. Use the existing
54 dnl configuration in that case.
56 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
58 dnl We need a POSIX shell for parts of the build. Assume we have one
62 # Solaris /bin/sh is too old/non-POSIX compliant
63 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
68 dnl clang is mostly GCC-compatible, but its version is much lower,
69 dnl so we have to check for it.
70 AC_MSG_CHECKING([if compiling with clang])
73 [AC_LANG_PROGRAM([], [[
78 [CLANG=yes], [CLANG=no])
80 AC_MSG_RESULT([$CLANG])
82 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
83 dnl versions are explictly not supported.
84 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
85 AC_MSG_CHECKING([whether gcc version is sufficient])
89 GCC_VERSION=`$CC -dumpversion`
90 if test $? -eq 0; then
91 major=`echo $GCC_VERSION | cut -d. -f1`
92 minor=`echo $GCC_VERSION | cut -d. -f2`
95 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
97 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
104 MKDEP_OPTIONS=-fdepend
105 dnl Ask gcc where it's keeping its secret headers
106 if test "x$GCC" = xyes; then
107 for dir in include include-fixed; do
108 GCC_INCLUDES=`$CC -print-file-name=$dir`
109 if test "x$GCC_INCLUDES" != x && \
110 test "$GCC_INCLUDES" != "$dir" && \
111 test -d "$GCC_INCLUDES"; then
112 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
116 AC_SUBST([MKDEP_OPTIONS])
118 dnl Make sure the pkg-config macros are defined
119 m4_ifndef([PKG_PROG_PKG_CONFIG],
120 [m4_fatal([Could not locate the pkg-config autoconf macros.
121 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
122 are in a different location, try setting the environment variable
123 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
124 PKG_PROG_PKG_CONFIG()
126 dnl LIB_DIR - library basename
127 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
130 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
131 _SAVE_LDFLAGS="$LDFLAGS"
132 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
133 AC_SUBST([EXTRA_LIB_PATH])
135 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
136 _SAVE_CPPFLAGS="$CPPFLAGS"
137 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
138 AC_SUBST([X11_INCLUDES])
145 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
148 DEFINES="$DEFINES -DPTHREADS -DSVR4"
151 DEFINES="$DEFINES -DPTHREADS"
155 dnl Add flags for gcc and g++
156 if test "x$GCC" = xyes; then
157 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
158 if test "x$CLANG" = "xno"; then
159 CFLAGS="$CFLAGS -ffast-math"
162 # Enable -fvisibility=hidden if using a gcc that supports it
163 save_CFLAGS="$CFLAGS"
164 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
165 VISIBILITY_CFLAGS="-fvisibility=hidden"
166 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
167 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
168 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
170 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
173 # Work around aliasing bugs - developers should comment this out
174 CFLAGS="$CFLAGS -fno-strict-aliasing"
176 if test "x$GXX" = xyes; then
177 CXXFLAGS="$CXXFLAGS -Wall"
179 # Enable -fvisibility=hidden if using a gcc that supports it
180 save_CXXFLAGS="$CXXFLAGS"
181 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
182 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
183 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
185 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
186 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
189 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
190 CXXFLAGS=$save_CXXFLAGS
192 # Work around aliasing bugs - developers should comment this out
193 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
196 dnl even if the compiler appears to support it, using visibility attributes isn't
197 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
201 VISIBILITY_CXXFLAGS=""
205 AC_SUBST([VISIBILITY_CFLAGS])
206 AC_SUBST([VISIBILITY_CXXFLAGS])
208 dnl These should be unnecessary, but let the user set them if they want
209 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
210 Default is to use CFLAGS.])
211 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
212 compiler. Default is to use CFLAGS.])
213 AC_SUBST([OPT_FLAGS])
214 AC_SUBST([ARCH_FLAGS])
217 dnl Hacks to enable 32 or 64 bit build
219 AC_ARG_ENABLE([32-bit],
220 [AS_HELP_STRING([--enable-32-bit],
221 [build 32-bit libraries @<:@default=auto@:>@])],
222 [enable_32bit="$enableval"],
225 if test "x$enable_32bit" = xyes; then
226 if test "x$GCC" = xyes; then
227 CFLAGS="$CFLAGS -m32"
228 ARCH_FLAGS="$ARCH_FLAGS -m32"
230 if test "x$GXX" = xyes; then
231 CXXFLAGS="$CXXFLAGS -m32"
234 AC_ARG_ENABLE([64-bit],
235 [AS_HELP_STRING([--enable-64-bit],
236 [build 64-bit libraries @<:@default=auto@:>@])],
237 [enable_64bit="$enableval"],
240 if test "x$enable_64bit" = xyes; then
241 if test "x$GCC" = xyes; then
242 CFLAGS="$CFLAGS -m64"
244 if test "x$GXX" = xyes; then
245 CXXFLAGS="$CXXFLAGS -m64"
250 dnl shared/static libraries, mimic libtool options
252 AC_ARG_ENABLE([static],
253 [AS_HELP_STRING([--enable-static],
254 [build static libraries @<:@default=disabled@:>@])],
255 [enable_static="$enableval"],
258 case "x$enable_static" in
260 x ) enable_static=no ;;
262 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
265 AC_ARG_ENABLE([shared],
266 [AS_HELP_STRING([--disable-shared],
267 [build shared libraries @<:@default=enabled@:>@])],
268 [enable_shared="$enableval"],
271 case "x$enable_shared" in
273 x ) enable_shared=yes ;;
275 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
279 dnl Can't have static and shared libraries, default to static if user
280 dnl explicitly requested. If both disabled, set to static since shared
281 dnl was explicitly requirested.
282 case "x$enable_static$enable_shared" in
284 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
288 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
296 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
297 if test "$enable_static" = yes; then
298 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
300 AC_SUBST([MKLIB_OPTIONS])
303 dnl other compiler options
305 AC_ARG_ENABLE([debug],
306 [AS_HELP_STRING([--enable-debug],
307 [use debug compiler flags and macros @<:@default=disabled@:>@])],
308 [enable_debug="$enableval"],
311 if test "x$enable_debug" = xyes; then
312 DEFINES="$DEFINES -DDEBUG"
313 if test "x$GCC" = xyes; then
316 if test "x$GXX" = xyes; then
317 CXXFLAGS="$CXXFLAGS -g"
324 LIB_PREFIX_GLOB='lib'
325 LIB_VERSION_SEPARATOR='.'
326 if test "$enable_static" = yes; then
331 LIB_EXTENSION='dylib' ;;
333 dnl prefix can be 'cyg' or 'lib'
334 LIB_PREFIX_GLOB='???'
335 LIB_VERSION_SEPARATOR='-'
336 LIB_EXTENSION='dll' ;;
340 LIB_EXTENSION='so' ;;
345 dnl potentially-infringing-but-nobody-knows-for-sure stuff
347 AC_ARG_ENABLE([texture-float],
348 [AS_HELP_STRING([--enable-texture-float],
349 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
350 [enable_texture_float="$enableval"],
351 [enable_texture_float=no]
353 if test "x$enable_texture_float" = xyes; then
354 AC_MSG_WARN([Floating-point textures enabled.])
355 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
356 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
359 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
360 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
361 GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
362 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
363 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
364 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
365 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
366 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
367 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
368 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
369 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
371 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
372 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
373 GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
374 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
375 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
376 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
377 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
378 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
379 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
380 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
381 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
382 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
384 AC_SUBST([GL_LIB_NAME])
385 AC_SUBST([GLU_LIB_NAME])
386 AC_SUBST([GLUT_LIB_NAME])
387 AC_SUBST([OSMESA_LIB_NAME])
388 AC_SUBST([EGL_LIB_NAME])
389 AC_SUBST([GLESv1_CM_LIB_NAME])
390 AC_SUBST([GLESv2_LIB_NAME])
391 AC_SUBST([VG_LIB_NAME])
392 AC_SUBST([GLAPI_LIB_NAME])
393 AC_SUBST([WAYLAND_EGL_LIB_NAME])
394 AC_SUBST([GBM_LIB_NAME])
396 AC_SUBST([GL_LIB_GLOB])
397 AC_SUBST([GLU_LIB_GLOB])
398 AC_SUBST([GLUT_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([xvmc],
590 [AS_HELP_STRING([--enable-xvmc],
591 [enable xvmc library @<:@default=auto@:>@])],
592 [enable_xvmc="$enableval"],
594 AC_ARG_ENABLE([vdpau],
595 [AS_HELP_STRING([--enable-vdpau],
596 [enable vdpau library @<:@default=auto@:>@])],
597 [enable_vdpau="$enableval"],
600 [AS_HELP_STRING([--enable-va],
601 [enable va library @<:@default=auto@:>@])],
602 [enable_va="$enableval"],
605 AC_ARG_ENABLE([xlib_glx],
606 [AS_HELP_STRING([--enable-xlib-glx],
607 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
608 [enable_xlib_glx="$enableval"],
609 [enable_xlib_glx=auto])
610 AC_ARG_ENABLE([gallium_egl],
611 [AS_HELP_STRING([--enable-gallium-egl],
612 [enable optional EGL state tracker (not required
613 for EGL support in Gallium with OpenGL and OpenGL ES)
614 @<:@default=disable@:>@])],
615 [enable_gallium_egl="$enableval"],
616 [enable_gallium_egl=no])
617 AC_ARG_ENABLE([gallium_gbm],
618 [AS_HELP_STRING([--enable-gallium-gbm],
619 [enable optional gbm state tracker (not required for
620 gbm support in Gallium)
621 @<:@default=auto@:>@])],
622 [enable_gallium_gbm="$enableval"],
623 [enable_gallium_gbm=auto])
625 # Option for Gallium drivers
626 GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
628 AC_ARG_WITH([gallium-drivers],
629 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
630 [comma delimited Gallium drivers list, e.g.
631 "i915,i965,nouveau,r300,r600,svga,swrast"
632 @<:@default=r300,r600,swrast@:>@])],
633 [with_gallium_drivers="$withval"],
634 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
636 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
637 # here so that the script doesn't choke on an unknown driver name later.
638 case "$with_gallium_drivers" in
639 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
640 no) with_gallium_drivers='' ;;
643 if test "x$enable_opengl" = xno -a \
644 "x$enable_gles1" = xno -a \
645 "x$enable_gles2" = xno -a \
646 "x$enable_openvg" = xno -a \
647 "x$enable_xorg" = xno -a \
648 "x$enable_xa" = xno -a \
649 "x$enable_d3d1x" = xno -a \
650 "x$enable_xvmc" = xno -a \
651 "x$enable_vdpau" = xno -a \
652 "x$enable_va" = xno; then
653 AC_MSG_ERROR([at least one API should be enabled])
657 if test "x$enable_opengl" = xno; then
658 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
660 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
662 if test "x$enable_gles1" = xyes; then
663 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
665 if test "x$enable_gles2" = xyes; then
666 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
668 AC_SUBST([API_DEFINES])
670 AC_ARG_ENABLE([shared-glapi],
671 [AS_HELP_STRING([--enable-shared-glapi],
672 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
673 [enable_shared_glapi="$enableval"],
674 [enable_shared_glapi=no])
677 if test "x$enable_shared_glapi" = xyes; then
680 AC_SUBST([SHARED_GLAPI])
683 dnl Driver configuration. Options are xlib, dri and osmesa right now.
684 dnl More later: fbdev, ...
686 default_driver="xlib"
691 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
694 *freebsd* | dragonfly* | *netbsd*)
696 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
701 if test "x$enable_opengl" = xno; then
705 AC_ARG_WITH([driver],
706 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
707 [mesa_driver="$withval"],
709 dnl Check for valid option
710 case "x$mesa_driver" in
711 xxlib|xdri|xosmesa|xno)
712 if test "x$enable_dri" != xauto -o \
713 "x$enable_glx" != xauto -o \
714 "x$enable_osmesa" != xauto -o \
715 "x$enable_xlib_glx" != xauto; then
716 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
720 mesa_driver="$default_driver"
723 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
727 # map $mesa_driver to APIs
728 if test "x$enable_dri" = xauto; then
729 case "x$mesa_driver" in
730 xdri) enable_dri=yes ;;
735 if test "x$enable_glx" = xauto; then
736 case "x$mesa_driver" in
737 xdri|xxlib) enable_glx=yes ;;
742 if test "x$enable_osmesa" = xauto; then
743 case "x$mesa_driver" in
744 xxlib|xosmesa) enable_osmesa=yes ;;
745 *) enable_osmesa=no ;;
749 if test "x$enable_xlib_glx" = xauto; then
750 case "x$mesa_driver" in
751 xxlib) enable_xlib_glx=yes ;;
752 *) enable_xlib_glx=no ;;
756 if test "x$enable_glx" = xno; then
761 dnl Driver specific build directories
764 dnl this variable will be prepended to SRC_DIRS and is not exported
769 GALLIUM_DIRS="auxiliary drivers state_trackers"
770 GALLIUM_TARGET_DIRS=""
771 GALLIUM_WINSYS_DIRS="sw"
772 GALLIUM_DRIVERS_DIRS="failover galahad trace rbug noop identity"
773 GALLIUM_STATE_TRACKERS_DIRS=""
775 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
776 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
778 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
782 # build glapi if OpenGL is enabled
783 if test "x$enable_opengl" = xyes; then
784 CORE_DIRS="$CORE_DIRS mapi/glapi"
787 # build es1api if OpenGL ES 1.x is enabled
788 if test "x$enable_gles1" = xyes; then
789 CORE_DIRS="$CORE_DIRS mapi/es1api"
792 # build es2api if OpenGL ES 2.x is enabled
793 if test "x$enable_gles2" = xyes; then
794 CORE_DIRS="$CORE_DIRS mapi/es2api"
797 # build glsl and mesa if OpenGL or OpenGL ES is enabled
798 case "x$enable_opengl$enable_gles1$enable_gles2" in
800 CORE_DIRS="$CORE_DIRS glsl mesa"
804 case "x$enable_glx$enable_xlib_glx" in
806 DRIVER_DIRS="$DRIVER_DIRS x11"
807 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
808 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
809 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
810 HAVE_WINSYS_XLIB="yes"
814 SRC_DIRS="$SRC_DIRS glx"
818 if test "x$enable_dri" = xyes; then
819 DRIVER_DIRS="$DRIVER_DIRS dri"
821 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
822 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
826 if test "x$enable_osmesa" = xyes; then
827 # the empty space matters for osmesa... (see src/mesa/Makefile)
828 if test -n "$DRIVER_DIRS"; then
829 DRIVER_DIRS="$DRIVER_DIRS osmesa"
837 AC_SUBST([DRIVER_DIRS])
838 AC_SUBST([GALLIUM_DIRS])
839 AC_SUBST([GALLIUM_TARGET_DIRS])
840 AC_SUBST([GALLIUM_WINSYS_DIRS])
841 AC_SUBST([GALLIUM_DRIVERS_DIRS])
842 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
843 AC_SUBST([MESA_LLVM])
846 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
847 [have_libdrm=yes], [have_libdrm=no])
849 if test "x$enable_dri" = xyes; then
850 # DRI must be shared, I think
851 if test "$enable_static" = yes; then
852 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
855 # not a hard requirement as swrast does not depend on it
856 if test "x$have_libdrm" = xyes; then
857 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
862 dnl Find out if X is available. The variable have_x is set if libX11 is
863 dnl found to mimic AC_PATH_XTRA.
865 if test -n "$PKG_CONFIG"; then
866 AC_MSG_CHECKING([pkg-config files for X11 are available])
867 PKG_CHECK_EXISTS([x11],[
873 AC_MSG_RESULT([$x11_pkgconfig])
877 dnl Use the autoconf macro if no pkg-config files
878 if test "$x11_pkgconfig" = yes; then
879 PKG_CHECK_MODULES([X11], [x11])
882 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
883 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
884 AC_SUBST([X11_CFLAGS])
888 dnl Try to tell the user that the --x-* options are only used when
889 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
890 m4_divert_once([HELP_BEGIN],
891 [These options are only used when the X libraries cannot be found by the
892 pkg-config utility.])
894 dnl We need X for xlib and dri, so bomb now if it's not found
895 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
896 AC_MSG_ERROR([X11 development libraries needed for GLX])
899 dnl XCB - this is only used for GLX right now
901 [AS_HELP_STRING([--enable-xcb],
902 [use XCB for GLX @<:@default=disabled@:>@])],
903 [enable_xcb="$enableval"],
905 if test "x$enable_xcb" = xyes; then
906 DEFINES="$DEFINES -DUSE_XCB"
911 dnl Direct rendering or just indirect rendering
914 dnl Disable by default on GNU/Hurd
915 driglx_direct_default="no"
918 dnl Disable by default on cygwin
919 driglx_direct_default="no"
922 driglx_direct_default="yes"
925 AC_ARG_ENABLE([driglx-direct],
926 [AS_HELP_STRING([--disable-driglx-direct],
927 [enable direct rendering in GLX and EGL for DRI \
928 @<:@default=auto@:>@])],
929 [driglx_direct="$enableval"],
930 [driglx_direct="$driglx_direct_default"])
933 dnl libGL configuration per driver
935 case "x$enable_glx$enable_xlib_glx" in
938 if test "$x11_pkgconfig" = yes; then
939 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
940 GL_PC_REQ_PRIV="x11 xext"
941 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
942 GL_LIB_DEPS="$XLIBGL_LIBS"
944 # should check these...
945 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
946 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
947 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
948 GL_PC_CFLAGS="$X11_INCLUDES"
950 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
951 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
953 # if static, move the external libraries to the programs
954 # and empty the libraries for libGL
955 if test "$enable_static" = yes; then
956 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
962 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
963 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
964 if test x"$driglx_direct" = xyes; then
965 if test "x$have_libdrm" != xyes; then
966 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
968 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
969 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
972 # find the DRI deps for libGL
973 if test "$x11_pkgconfig" = yes; then
974 dri_modules="x11 xext xdamage xfixes"
976 # add xf86vidmode if available
977 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
978 if test "$HAVE_XF86VIDMODE" = yes ; then
979 dri_modules="$dri_modules xxf86vm"
982 # add xcb modules if necessary
983 if test "$enable_xcb" = yes; then
984 dri_modules="$dri_modules x11-xcb xcb-glx"
987 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
988 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
989 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
990 GL_LIB_DEPS="$DRIGL_LIBS"
992 # should check these...
993 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
994 if test "x$HAVE_XF86VIDMODE" == xyes; then
995 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
997 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
999 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1000 GL_PC_CFLAGS="$X11_INCLUDES"
1002 # XCB can only be used from pkg-config
1003 if test "$enable_xcb" = yes; then
1004 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1005 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1006 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1007 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1011 # need DRM libs, -lpthread, etc.
1012 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1013 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1017 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1018 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1019 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1020 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1022 AC_SUBST([GL_LIB_DEPS])
1023 AC_SUBST([GL_PC_REQ_PRIV])
1024 AC_SUBST([GL_PC_LIB_PRIV])
1025 AC_SUBST([GL_PC_CFLAGS])
1026 AC_SUBST([DRI_PC_REQ_PRIV])
1027 AC_SUBST([GLESv1_CM_LIB_DEPS])
1028 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1029 AC_SUBST([GLESv2_LIB_DEPS])
1030 AC_SUBST([GLESv2_PC_LIB_PRIV])
1032 GLAPI_LIB_DEPS="-lpthread"
1033 AC_SUBST([GLAPI_LIB_DEPS])
1036 dnl Setup default DRI CFLAGS
1037 DRI_CFLAGS='$(CFLAGS)'
1038 DRI_CXXFLAGS='$(CXXFLAGS)'
1039 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1040 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1042 AC_ARG_ENABLE([shared-dricore],
1043 [AS_HELP_STRING([--enable-shared-dricore],
1044 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1045 [enable_dricore="$enableval"],
1046 [enable_dricore=no])
1047 if test "x$enable_dri" = xyes ; then
1048 if test "$enable_dricore" = yes ; then
1049 if test "$GCC$GXX" != yesyes ; then
1050 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1053 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1054 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1055 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1056 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1057 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1058 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1059 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1063 AC_SUBST([DRICORE_LIBS])
1064 AC_SUBST([DRICORE_GLSL_LIBS])
1065 AC_SUBST([DRICORE_LIB_DEPS])
1066 AC_SUBST([DRI_CXXFLAGS])
1067 AC_SUBST([DRI_CFLAGS])
1068 AC_SUBST([MESA_MODULES])
1070 AC_SUBST([HAVE_XF86VIDMODE])
1075 case "x$enable_glx$enable_xlib_glx" in
1077 DEFINES="$DEFINES -DUSE_XSHM"
1080 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1081 if test "x$driglx_direct" = xyes; then
1082 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1091 AC_ARG_ENABLE([glx-tls],
1092 [AS_HELP_STRING([--enable-glx-tls],
1093 [enable TLS support in GLX @<:@default=disabled@:>@])],
1094 [GLX_USE_TLS="$enableval"],
1096 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1098 AS_IF([test "x$GLX_USE_TLS" = xyes],
1099 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1104 dnl Directory for DRI drivers
1105 AC_ARG_WITH([dri-driverdir],
1106 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1107 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1108 [DRI_DRIVER_INSTALL_DIR="$withval"],
1109 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1110 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1111 dnl Extra search path for DRI drivers
1112 AC_ARG_WITH([dri-searchpath],
1113 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1114 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1115 [DRI_DRIVER_SEARCH_DIR="$withval"],
1116 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1117 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1118 dnl Which drivers to build - default is chosen by platform
1119 AC_ARG_WITH([dri-drivers],
1120 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1121 [comma delimited DRI drivers list, e.g.
1122 "swrast,i965,radeon" @<:@default=auto@:>@])],
1123 [with_dri_drivers="$withval"],
1124 [with_dri_drivers=yes])
1125 if test "x$with_dri_drivers" = x; then
1129 dnl If $with_dri_drivers is yes, directories will be added through
1132 case "$with_dri_drivers" in
1135 # classic DRI drivers require FEATURE_GL to build
1136 if test "x$enable_opengl" = xyes; then
1141 # verify the requested driver directories exist
1142 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1143 for driver in $dri_drivers; do
1144 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1145 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1147 DRI_DIRS="$dri_drivers"
1148 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1149 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1154 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1155 if test "x$enable_dri" = xyes; then
1156 # Platform specific settings and drivers to build
1159 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1160 DEFINES="$DEFINES -DHAVE_ALIAS"
1164 # sis is missing because they have not be converted to use
1165 # the new interface. i810 are missing because there is no
1166 # x86-64 system where they could *ever* be used.
1167 if test "x$DRI_DIRS" = "xyes"; then
1168 DRI_DIRS="i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1169 radeon savage tdfx unichrome swrast"
1173 # Build only the drivers for cards that exist on PowerPC.
1174 # At some point MGA will be added, but not yet.
1175 if test "x$DRI_DIRS" = "xyes"; then
1176 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
1180 # Build only the drivers for cards that exist on sparc`
1181 if test "x$DRI_DIRS" = "xyes"; then
1182 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
1187 freebsd* | dragonfly* | *netbsd*)
1188 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1189 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1191 if test "x$DRI_DIRS" = "xyes"; then
1192 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1193 radeon tdfx unichrome savage sis swrast"
1197 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1198 DEFINES="$DEFINES -DHAVE_ALIAS"
1201 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1204 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1205 if test "x$DRI_DIRS" = "xyes"; then
1212 if test "x$DRI_DIRS" = "xyes"; then
1213 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \
1214 savage sis tdfx unichrome swrast"
1217 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1220 if test "x$enable_dri" = xyes; then
1223 AC_ARG_WITH([expat],
1224 [AS_HELP_STRING([--with-expat=DIR],
1225 [expat install directory])],[
1226 EXPAT_INCLUDES="-I$withval/include"
1227 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1228 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1229 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1231 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1232 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1233 [AC_MSG_ERROR([Expat required for DRI.])])
1236 # libdrm is required for all except swrast
1237 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1238 if test "x$have_libdrm" != xyes; then
1239 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1243 # put all the necessary libs together, including possibly libdricore
1244 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1246 AC_SUBST([DRI_DIRS])
1247 AC_SUBST([EXPAT_INCLUDES])
1248 AC_SUBST([DRI_LIB_DEPS])
1252 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1258 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1263 *radeon*|*r200*|*r300*|*r600*)
1264 PKG_CHECK_MODULES([LIBDRM_RADEON],
1265 [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED],
1266 HAVE_LIBDRM_RADEON=yes,
1267 HAVE_LIBDRM_RADEON=no)
1269 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
1270 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
1271 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
1275 AC_SUBST([RADEON_CFLAGS])
1276 AC_SUBST([RADEON_LDFLAGS])
1280 dnl OSMesa configuration
1283 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1284 AC_ARG_WITH([osmesa-bits],
1285 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1286 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1287 [osmesa_bits="$withval"],
1289 if test "x$osmesa_bits" != x8; then
1290 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1291 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1295 case "x$osmesa_bits" in
1300 OSMESA_LIB="OSMesa$osmesa_bits"
1301 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1304 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1307 AC_SUBST([OSMESA_LIB])
1309 if test "x$enable_osmesa" = xyes; then
1310 # only link libraries with osmesa if shared
1311 if test "$enable_static" = no; then
1312 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1317 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1319 AC_SUBST([OSMESA_LIB_DEPS])
1320 AC_SUBST([OSMESA_MESA_DEPS])
1321 AC_SUBST([OSMESA_PC_REQ])
1322 AC_SUBST([OSMESA_PC_LIB_PRIV])
1325 dnl gbm configuration
1327 if test "x$enable_gbm" = xauto; then
1328 case "$with_egl_platforms" in
1335 if test "x$enable_gbm" = xyes; then
1336 SRC_DIRS="$SRC_DIRS gbm"
1339 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1340 AC_MSG_ERROR([gbm needs udev]))
1341 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1343 if test "x$enable_dri" = xyes; then
1344 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1345 if test "$SHARED_GLAPI" -eq 0; then
1346 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1350 AC_SUBST([GBM_LIB_DEPS])
1351 AC_SUBST([GBM_BACKEND_DIRS])
1352 GBM_PC_REQ_PRIV="libudev"
1353 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1355 AC_SUBST([GBM_PC_REQ_PRIV])
1356 AC_SUBST([GBM_PC_LIB_PRIV])
1357 AC_SUBST([GBM_PC_CFLAGS])
1360 dnl EGL configuration
1364 if test "x$enable_egl" = xyes; then
1365 SRC_DIRS="$SRC_DIRS egl"
1366 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1369 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1371 if test "$enable_static" != yes; then
1372 # build egl_glx when libGL is built
1373 if test "x$enable_glx" = xyes; then
1374 EGL_DRIVERS_DIRS="glx"
1377 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1378 [have_libudev=yes],[have_libudev=no])
1379 if test "$have_libudev" = yes; then
1380 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1382 if test "x$enable_dri" = xyes; then
1383 # build egl_dri2 when xcb-dri2 is available
1384 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1385 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1387 if test "$have_xcb_dri2" = yes; then
1388 EGL_DRIVER_DRI2=dri2
1389 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1390 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1391 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1392 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1396 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1399 AC_SUBST([EGL_LIB_DEPS])
1400 AC_SUBST([EGL_DRIVERS_DIRS])
1403 dnl EGL Gallium configuration
1405 if test "x$enable_gallium_egl" = xyes; then
1406 if test "x$with_gallium_drivers" = x; then
1407 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1409 if test "x$enable_egl" = xno; then
1410 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1412 if test "x$have_libdrm" != xyes; then
1413 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1416 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1417 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1422 dnl gbm Gallium configuration
1424 if test "x$enable_gallium_gbm" = xauto; then
1425 case "$enable_gbm$HAVE_ST_EGL$with_egl_platforms" in
1427 enable_gallium_gbm=yes ;;
1429 enable_gallium_gbm=no ;;
1432 if test "x$enable_gallium_gbm" = xyes; then
1433 if test "x$with_gallium_drivers" = x; then
1434 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1436 if test "x$enable_gbm" = xno; then
1437 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1440 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1441 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1446 dnl X.Org DDX configuration
1448 if test "x$enable_xorg" = xyes; then
1449 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1450 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1451 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1452 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1453 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1454 HAVE_XEXTPROTO_71="no")
1455 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1460 dnl XA configuration
1462 if test "x$enable_xa" = xyes; then
1463 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1468 dnl OpenVG configuration
1472 if test "x$enable_openvg" = xyes; then
1473 if test "x$enable_egl" = xno; then
1474 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1476 if test "x$with_gallium_drivers" = x; then
1477 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1479 if test "x$enable_gallium_egl" = xno; then
1480 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1483 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1484 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1485 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1486 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1491 dnl D3D1X configuration
1494 if test "x$enable_d3d1x" = xyes; then
1495 if test "x$with_gallium_drivers" = x; then
1496 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1499 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1504 dnl Gallium G3DVL configuration
1506 AC_ARG_ENABLE([gallium-g3dvl],
1507 [AS_HELP_STRING([--enable-gallium-g3dvl],
1508 [build gallium g3dvl @<:@default=disabled@:>@])],
1509 [enable_gallium_g3dvl="$enableval"],
1510 [enable_gallium_g3dvl=no])
1511 if test "x$enable_gallium_g3dvl" = xyes; then
1512 if test "x$with_gallium_drivers" = x; then
1513 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1516 if test "x$enable_xvmc" = xauto; then
1517 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1520 if test "x$enable_vdpau" = xauto; then
1521 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1524 if test "x$enable_va" = xauto; then
1525 #don't enable vaapi state tracker even if package exists
1526 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1531 if test "x$enable_xvmc" = xyes; then
1532 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1533 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1537 if test "x$enable_vdpau" = xyes; then
1538 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1539 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1543 if test "x$enable_va" = xyes; then
1544 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1545 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1546 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1551 dnl GLU configuration
1553 AC_ARG_ENABLE([glu],
1554 [AS_HELP_STRING([--disable-glu],
1555 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1556 [enable_glu="$enableval"],
1559 if test "x$enable_glu" = xyes; then
1560 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1561 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1566 if test "x$enable_glu" = xyes; then
1567 SRC_DIRS="$SRC_DIRS glu"
1569 if test "x$enable_glx" = xno; then
1570 # Link libGLU to libOSMesa instead of libGL
1573 if test "$enable_static" = no; then
1574 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1579 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1581 GLU_PC_LIB_PRIV="-lm"
1582 if test "$enable_static" = no; then
1584 GLU_MESA_DEPS='-l$(GL_LIB)'
1588 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1592 if test "$enable_static" = no; then
1593 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1595 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1596 AC_SUBST([GLU_LIB_DEPS])
1597 AC_SUBST([GLU_MESA_DEPS])
1598 AC_SUBST([GLU_PC_REQ])
1599 AC_SUBST([GLU_PC_REQ_PRIV])
1600 AC_SUBST([GLU_PC_LIB_PRIV])
1601 AC_SUBST([GLU_PC_CFLAGS])
1604 dnl Program library dependencies
1605 dnl Only libm is added here if necessary as the libraries should
1606 dnl be pulled in by the linker
1608 if test "x$APP_LIB_DEPS" = x; then
1611 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1614 APP_LIB_DEPS="-lX11"
1621 AC_SUBST([APP_LIB_DEPS])
1622 AC_SUBST([PROGRAM_DIRS])
1625 dnl Gallium configuration
1627 if test "x$with_gallium_drivers" != x; then
1628 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1631 AC_SUBST([LLVM_CFLAGS])
1632 AC_SUBST([LLVM_LIBS])
1633 AC_SUBST([LLVM_LDFLAGS])
1634 AC_SUBST([LLVM_VERSION])
1636 case "x$enable_opengl$enable_gles1$enable_gles2" in
1638 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1642 AC_SUBST([VG_LIB_DEPS])
1643 AC_SUBST([EGL_CLIENT_APIS])
1645 AC_ARG_WITH([egl-platforms],
1646 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1647 [comma delimited native platforms libEGL supports, e.g.
1648 "x11,drm" @<:@default=auto@:>@])],
1649 [with_egl_platforms="$withval"],
1650 [with_egl_platforms=yes])
1653 WAYLAND_EGL_LIB_DEPS=""
1655 case "$with_egl_platforms" in
1657 if test "x$enable_egl" = xyes; then
1662 if test "x$enable_egl" != xyes; then
1663 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1665 # verify the requested driver directories exist
1666 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1667 for plat in $egl_platforms; do
1668 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1669 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1670 if test "$plat" = "fbdev"; then
1671 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1673 if test "$plat" = "wayland"; then
1674 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1675 [AC_MSG_ERROR([cannot find libwayland-client])])
1676 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1677 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1679 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1680 AC_MSG_ERROR([EGL platform drm needs gbm])
1682 case "$plat$have_libudev" in
1684 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1687 EGL_PLATFORMS="$egl_platforms"
1690 AC_SUBST([EGL_PLATFORMS])
1692 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1693 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1694 WAYLAND_EGL_PC_LIB_PRIV=
1695 WAYLAND_EGL_PC_CFLAGS=
1697 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1698 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1699 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1702 AC_ARG_WITH([egl-driver-dir],
1703 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1704 [directory for EGL drivers [[default=${libdir}/egl]]])],
1705 [EGL_DRIVER_INSTALL_DIR="$withval"],
1706 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1707 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1709 AC_ARG_WITH([xorg-driver-dir],
1710 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1711 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1712 [XORG_DRIVER_INSTALL_DIR="$withval"],
1713 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1714 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1716 AC_ARG_WITH([max-width],
1717 [AS_HELP_STRING([--with-max-width=N],
1718 [Maximum framebuffer width (4096)])],
1719 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1720 AS_IF([test "${withval}" -gt "4096"],
1721 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1723 AC_ARG_WITH([max-height],
1724 [AS_HELP_STRING([--with-max-height=N],
1725 [Maximum framebuffer height (4096)])],
1726 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1727 AS_IF([test "${withval}" -gt "4096"],
1728 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1734 AC_ARG_ENABLE([gallium-llvm],
1735 [AS_HELP_STRING([--enable-gallium-llvm],
1736 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1737 [enable_gallium_llvm="$enableval"],
1738 [enable_gallium_llvm=auto])
1739 if test "x$with_gallium_drivers" = x; then
1740 enable_gallium_llvm=no
1742 if test "x$enable_gallium_llvm" = xauto; then
1744 i*86|x86_64) enable_gallium_llvm=yes;;
1747 if test "x$enable_gallium_llvm" = xyes; then
1748 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1750 if test "x$LLVM_CONFIG" != xno; then
1751 LLVM_VERSION=`$LLVM_CONFIG --version`
1752 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed 's/-DNDEBUG\>//g'`
1753 LLVM_LIBS="`$LLVM_CONFIG --libs` -lstdc++"
1755 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1756 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1765 dnl Directory for VDPAU libs
1766 AC_ARG_WITH([vdpau-libdir],
1767 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1768 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1769 [VDPAU_LIB_INSTALL_DIR="$withval"],
1770 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1771 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1773 dnl Directory for VA libs
1774 AC_ARG_WITH([va-libdir],
1775 [AS_HELP_STRING([--with-va-libdir=DIR],
1776 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1777 [VA_LIB_INSTALL_DIR="$withval"],
1778 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1779 AC_SUBST([VA_LIB_INSTALL_DIR])
1782 dnl Gallium helper functions
1784 gallium_check_st() {
1785 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1786 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1787 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1788 if test "x$have_libdrm" != xyes; then
1789 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1791 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1793 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1794 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1796 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1797 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1799 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1800 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1802 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1803 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1804 NEED_G3DVL_DRI="yes"
1806 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1807 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1808 NEED_G3DVL_DRI="yes"
1810 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1811 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1812 NEED_G3DVL_DRI="yes"
1816 gallium_require_llvm() {
1817 if test "x$MESA_LLVM" = x0; then
1819 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1825 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1826 if test "x$with_gallium_drivers" != x; then
1827 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1828 for driver in $gallium_drivers; do
1831 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1832 gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx" "xa-vmwgfx"
1835 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1836 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1837 if test "x$MESA_LLVM" = x1; then
1838 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1840 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1841 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1844 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1845 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965 softpipe"
1846 if test "x$MESA_LLVM" = x1; then
1847 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1849 gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1852 gallium_require_llvm "Gallium R300"
1853 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1854 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1857 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1858 gallium_check_st "r600/drm radeon/drm" "dri-r600" "" "" "xvmc-r600" "vdpau-r600" "va-r600"
1861 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1862 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1863 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau"
1866 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1867 if test "x$MESA_LLVM" = x1; then
1868 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1871 if test "x$HAVE_ST_DRI" = xyes; then
1872 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1874 if test "x$HAVE_ST_VDPAU" = xyes; then
1875 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1877 if test "x$HAVE_ST_XVMC" = xyes; then
1878 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1880 if test "x$HAVE_ST_VA" = xyes; then
1881 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1883 if test "x$HAVE_ST_VDPAU" == xyes ||
1884 test "x$HAVE_ST_XVMC" == xyes ||
1885 test "x$HAVE_ST_VA" == xyes; then
1886 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1887 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1892 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1898 if test "x$NEED_G3DVL_DRI" = xyes; then
1899 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1902 dnl prepend CORE_DIRS to SRC_DIRS
1903 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1905 dnl Restore LDFLAGS and CPPFLAGS
1906 LDFLAGS="$_SAVE_LDFLAGS"
1907 CPPFLAGS="$_SAVE_CPPFLAGS"
1909 dnl Add user CFLAGS and CXXFLAGS
1910 CFLAGS="$CFLAGS $USER_CFLAGS"
1911 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1913 dnl Substitute the config
1914 AC_CONFIG_FILES([configs/autoconf])
1916 dnl Replace the configs/current symlink
1917 AC_CONFIG_COMMANDS([configs],[
1918 if test -f configs/current || test -L configs/current; then
1919 rm -f configs/current
1921 ln -s autoconf configs/current
1924 dnl Sort the dirs alphabetically
1925 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort|tr "\n" " "`
1926 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort|tr "\n" " "`
1927 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort|tr "\n" " "`
1928 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort|tr "\n" " "`
1933 dnl Output some configuration info for the user
1936 echo " prefix: $prefix"
1937 echo " exec_prefix: $exec_prefix"
1938 echo " libdir: $libdir"
1939 echo " includedir: $includedir"
1943 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1944 echo " OpenVG: $enable_openvg"
1948 if test "x$enable_osmesa" != xno; then
1949 echo " OSMesa: lib$OSMESA_LIB"
1954 if test "x$enable_dri" != xno; then
1955 # cleanup the drivers var
1956 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1957 if test "x$DRI_DIRS" = x; then
1958 echo " DRI drivers: no"
1960 echo " DRI drivers: $dri_dirs"
1962 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1963 echo " Shared dricore: $enable_dricore"
1966 case "x$enable_glx$enable_xlib_glx" in
1968 echo " GLX: Xlib-based"
1971 echo " GLX: DRI-based"
1972 echo " Use XCB: $enable_xcb"
1975 echo " GLX: $enable_glx"
1980 echo " GLU: $enable_glu"
1984 echo " EGL: $enable_egl"
1985 if test "$enable_egl" = yes; then
1986 echo " EGL platforms: $EGL_PLATFORMS"
1989 for d in $EGL_DRIVERS_DIRS; do
1990 egl_drivers="$egl_drivers builtin:egl_$d"
1993 if test "x$HAVE_ST_EGL" = xyes; then
1994 echo " EGL drivers: ${egl_drivers} egl_gallium"
1995 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
1997 echo " EGL drivers: $egl_drivers"
2002 if test "x$MESA_LLVM" = x1; then
2004 echo " llvm-config: $LLVM_CONFIG"
2005 echo " llvm-version: $LLVM_VERSION"
2011 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2012 echo " Gallium: yes"
2013 echo " Gallium dirs: $GALLIUM_DIRS"
2014 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2015 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2016 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2017 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2024 echo " Shared libs: $enable_shared"
2025 echo " Static libs: $enable_static"
2027 dnl Compiler options
2028 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2029 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2030 $SED 's/^ *//;s/ */ /;s/ *$//'`
2031 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2032 $SED 's/^ *//;s/ */ /;s/ *$//'`
2033 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2035 echo " CFLAGS: $cflags"
2036 echo " CXXFLAGS: $cxxflags"
2037 echo " Macros: $defines"
2039 echo " PYTHON2: $PYTHON2"
2042 echo " Run '${MAKE-make}' to build Mesa"