1 dnl Process this file with autoconf to create configure.
5 dnl Versioning - scrape the version from configs/default
6 m4_define([mesa_version],
7 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
8 m4_ifval(mesa_version,,
9 [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
11 dnl Tell the user about autoconf.html in the --help output
12 m4_divert_once([HELP_END], [
13 See docs/autoconf.html for more details on the options for Mesa.])
15 AC_INIT([Mesa],[mesa_version],
16 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17 AC_CONFIG_AUX_DIR([bin])
20 dnl Versions for external dependencies
21 LIBDRM_REQUIRED=2.4.24
22 LIBDRM_RADEON_REQUIRED=2.4.24
23 LIBDRM_INTEL_REQUIRED=2.4.24
24 LIBDRM_NOUVEAU_REQUIRED=0.6
25 DRI2PROTO_REQUIRED=2.6
26 GLPROTO_REQUIRED=1.4.14
27 LIBDRM_XORG_REQUIRED=2.4.24
28 LIBKMS_XORG_REQUIRED=1.0.0
34 AC_CHECK_PROGS([MAKE], [gmake make])
35 AC_CHECK_PROGS([PYTHON2], [python2 python])
36 AC_PATH_PROG([MKDEP], [makedepend])
37 AC_PATH_PROG([SED], [sed])
39 if test "x$MKDEP" = "x"; then
40 AC_MSG_ERROR([makedepend is required to build Mesa])
43 AC_PATH_PROG([FLEX], [flex])
44 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
46 AC_PATH_PROG([BISON], [bison])
47 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
49 dnl Our fallback install-sh is a symlink to minstall. Use the existing
50 dnl configuration in that case.
52 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
54 dnl We need a POSIX shell for parts of the build. Assume we have one
58 # Solaris /bin/sh is too old/non-POSIX compliant
59 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
64 dnl clang is mostly GCC-compatible, but its version is much lower,
65 dnl so we have to check for it.
66 AC_MSG_CHECKING([if compiling with clang])
69 [AC_LANG_PROGRAM([], [[
74 [CLANG=yes], [CLANG=no])
76 AC_MSG_RESULT([$CLANG])
78 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
79 dnl versions are explictly not supported.
80 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
81 AC_MSG_CHECKING([whether gcc version is sufficient])
85 GCC_VERSION=`$CC -dumpversion`
86 if test $? -eq 0; then
87 major=`echo $GCC_VERSION | cut -d. -f1`
88 minor=`echo $GCC_VERSION | cut -d. -f1`
91 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
93 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
100 MKDEP_OPTIONS=-fdepend
101 dnl Ask gcc where it's keeping its secret headers
102 if test "x$GCC" = xyes; then
103 for dir in include include-fixed; do
104 GCC_INCLUDES=`$CC -print-file-name=$dir`
105 if test "x$GCC_INCLUDES" != x && \
106 test "$GCC_INCLUDES" != "$dir" && \
107 test -d "$GCC_INCLUDES"; then
108 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
112 AC_SUBST([MKDEP_OPTIONS])
114 dnl Make sure the pkg-config macros are defined
115 m4_ifndef([PKG_PROG_PKG_CONFIG],
116 [m4_fatal([Could not locate the pkg-config autoconf macros.
117 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
118 are in a different location, try setting the environment variable
119 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
120 PKG_PROG_PKG_CONFIG()
122 dnl LIB_DIR - library basename
123 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
126 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
127 _SAVE_LDFLAGS="$LDFLAGS"
128 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
129 AC_SUBST([EXTRA_LIB_PATH])
131 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
132 _SAVE_CPPFLAGS="$CPPFLAGS"
133 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
134 AC_SUBST([X11_INCLUDES])
141 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
144 DEFINES="$DEFINES -DPTHREADS -DSVR4"
147 DEFINES="$DEFINES -DPTHREADS"
151 dnl Add flags for gcc and g++
152 if test "x$GCC" = xyes; then
153 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
154 if test "x$CLANG" = "xno"; then
155 CFLAGS="$CFLAGS -ffast-math"
158 # Enable -fvisibility=hidden if using a gcc that supports it
159 save_CFLAGS="$CFLAGS"
160 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
161 VISIBILITY_CFLAGS="-fvisibility=hidden"
162 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
163 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
164 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
166 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
169 # Work around aliasing bugs - developers should comment this out
170 CFLAGS="$CFLAGS -fno-strict-aliasing"
172 if test "x$GXX" = xyes; then
173 CXXFLAGS="$CXXFLAGS -Wall"
175 # Enable -fvisibility=hidden if using a gcc that supports it
176 save_CXXFLAGS="$CXXFLAGS"
177 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
178 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
179 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
181 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
182 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
185 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
186 CXXFLAGS=$save_CXXFLAGS
188 # Work around aliasing bugs - developers should comment this out
189 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
192 dnl even if the compiler appears to support it, using visibility attributes isn't
193 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
197 VISIBILITY_CXXFLAGS=""
201 AC_SUBST([VISIBILITY_CFLAGS])
202 AC_SUBST([VISIBILITY_CXXFLAGS])
204 dnl These should be unnecessary, but let the user set them if they want
205 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
206 Default is to use CFLAGS.])
207 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
208 compiler. Default is to use CFLAGS.])
209 AC_SUBST([OPT_FLAGS])
210 AC_SUBST([ARCH_FLAGS])
213 dnl Hacks to enable 32 or 64 bit build
215 AC_ARG_ENABLE([32-bit],
216 [AS_HELP_STRING([--enable-32-bit],
217 [build 32-bit libraries @<:@default=auto@:>@])],
218 [enable_32bit="$enableval"],
221 if test "x$enable_32bit" = xyes; then
222 if test "x$GCC" = xyes; then
223 CFLAGS="$CFLAGS -m32"
224 ARCH_FLAGS="$ARCH_FLAGS -m32"
226 if test "x$GXX" = xyes; then
227 CXXFLAGS="$CXXFLAGS -m32"
230 AC_ARG_ENABLE([64-bit],
231 [AS_HELP_STRING([--enable-64-bit],
232 [build 64-bit libraries @<:@default=auto@:>@])],
233 [enable_64bit="$enableval"],
236 if test "x$enable_64bit" = xyes; then
237 if test "x$GCC" = xyes; then
238 CFLAGS="$CFLAGS -m64"
240 if test "x$GXX" = xyes; then
241 CXXFLAGS="$CXXFLAGS -m64"
246 dnl shared/static libraries, mimic libtool options
248 AC_ARG_ENABLE([static],
249 [AS_HELP_STRING([--enable-static],
250 [build static libraries @<:@default=disabled@:>@])],
251 [enable_static="$enableval"],
254 case "x$enable_static" in
256 x ) enable_static=no ;;
258 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
261 AC_ARG_ENABLE([shared],
262 [AS_HELP_STRING([--disable-shared],
263 [build shared libraries @<:@default=enabled@:>@])],
264 [enable_shared="$enableval"],
267 case "x$enable_shared" in
269 x ) enable_shared=yes ;;
271 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
275 dnl Can't have static and shared libraries, default to static if user
276 dnl explicitly requested. If both disabled, set to static since shared
277 dnl was explicitly requirested.
278 case "x$enable_static$enable_shared" in
280 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
284 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
292 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
293 if test "$enable_static" = yes; then
294 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
296 AC_SUBST([MKLIB_OPTIONS])
299 dnl other compiler options
301 AC_ARG_ENABLE([debug],
302 [AS_HELP_STRING([--enable-debug],
303 [use debug compiler flags and macros @<:@default=disabled@:>@])],
304 [enable_debug="$enableval"],
307 if test "x$enable_debug" = xyes; then
308 DEFINES="$DEFINES -DDEBUG"
309 if test "x$GCC" = xyes; then
312 if test "x$GXX" = xyes; then
313 CXXFLAGS="$CXXFLAGS -g"
320 LIB_PREFIX_GLOB='lib'
321 LIB_VERSION_SEPARATOR='.'
322 if test "$enable_static" = yes; then
327 LIB_EXTENSION='dylib' ;;
329 dnl prefix can be 'cyg' or 'lib'
330 LIB_PREFIX_GLOB='???'
331 LIB_VERSION_SEPARATOR='-'
332 LIB_EXTENSION='dll' ;;
336 LIB_EXTENSION='so' ;;
341 dnl potentially-infringing-but-nobody-knows-for-sure stuff
343 AC_ARG_ENABLE([texture-float],
344 [AS_HELP_STRING([--enable-texture-float],
345 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
346 [enable_texture_float="$enableval"],
347 [enable_texture_float=no]
349 if test "x$enable_texture_float" = xyes; then
350 AC_MSG_WARN([Floating-point textures enabled.])
351 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
352 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
355 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
356 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
357 GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
358 GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
359 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
360 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
361 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
362 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
363 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
364 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
365 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
366 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
368 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
369 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
370 GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
371 GLW_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLW_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
372 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
373 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
374 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
375 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
376 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
377 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
378 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
379 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
380 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
382 AC_SUBST([GL_LIB_NAME])
383 AC_SUBST([GLU_LIB_NAME])
384 AC_SUBST([GLUT_LIB_NAME])
385 AC_SUBST([GLW_LIB_NAME])
386 AC_SUBST([OSMESA_LIB_NAME])
387 AC_SUBST([EGL_LIB_NAME])
388 AC_SUBST([GLESv1_CM_LIB_NAME])
389 AC_SUBST([GLESv2_LIB_NAME])
390 AC_SUBST([VG_LIB_NAME])
391 AC_SUBST([GLAPI_LIB_NAME])
392 AC_SUBST([WAYLAND_EGL_LIB_NAME])
393 AC_SUBST([GBM_LIB_NAME])
395 AC_SUBST([GL_LIB_GLOB])
396 AC_SUBST([GLU_LIB_GLOB])
397 AC_SUBST([GLUT_LIB_GLOB])
398 AC_SUBST([GLW_LIB_GLOB])
399 AC_SUBST([OSMESA_LIB_GLOB])
400 AC_SUBST([EGL_LIB_GLOB])
401 AC_SUBST([GLESv1_CM_LIB_GLOB])
402 AC_SUBST([GLESv2_LIB_GLOB])
403 AC_SUBST([VG_LIB_GLOB])
404 AC_SUBST([GLAPI_LIB_GLOB])
405 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
406 AC_SUBST([GBM_LIB_GLOB])
409 dnl Arch/platform-specific settings
412 [AS_HELP_STRING([--disable-asm],
413 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
414 [enable_asm="$enableval"],
421 AC_MSG_CHECKING([whether to enable assembly])
422 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
423 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
424 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
428 AC_MSG_RESULT([no, cross compiling])
432 # check for supported arches
433 if test "x$enable_asm" = xyes; then
437 linux* | *freebsd* | dragonfly* | *netbsd*)
438 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
444 linux* | *freebsd* | dragonfly* | *netbsd*)
445 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
467 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
468 MESA_ASM_SOURCES='$(X86_SOURCES)'
469 GLAPI_ASM_SOURCES='$(X86_API)'
470 AC_MSG_RESULT([yes, x86])
473 ASM_FLAGS="-DUSE_X86_64_ASM"
474 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
475 GLAPI_ASM_SOURCES='$(X86-64_API)'
476 AC_MSG_RESULT([yes, x86_64])
479 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
480 MESA_ASM_SOURCES='$(PPC_SOURCES)'
481 AC_MSG_RESULT([yes, ppc])
484 ASM_FLAGS="-DUSE_SPARC_ASM"
485 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
486 GLAPI_ASM_SOURCES='$(SPARC_API)'
487 AC_MSG_RESULT([yes, sparc])
490 AC_MSG_RESULT([no, platform not supported])
494 AC_SUBST([ASM_FLAGS])
495 AC_SUBST([MESA_ASM_SOURCES])
496 AC_SUBST([GLAPI_ASM_SOURCES])
501 dnl Check to see if dlopen is in default libraries (like Solaris, which
502 dnl has it in libc), or if libdl is needed to get it.
503 AC_CHECK_FUNC([dlopen], [],
504 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
505 AC_SUBST([DLOPEN_LIBS])
507 dnl See if posix_memalign is available
508 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
510 dnl SELinux awareness.
511 AC_ARG_ENABLE([selinux],
512 [AS_HELP_STRING([--enable-selinux],
513 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
514 [MESA_SELINUX="$enableval"],
516 if test "x$enable_selinux" = "xyes"; then
517 AC_CHECK_HEADER([selinux/selinux.h],[],
518 [AC_MSG_ERROR([SELinux headers not found])])
519 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
520 [AC_MSG_ERROR([SELinux library not found])])
521 SELINUX_LIBS="-lselinux"
522 DEFINES="$DEFINES -DMESA_SELINUX"
526 AC_ARG_ENABLE([opengl],
527 [AS_HELP_STRING([--disable-opengl],
528 [disable support for standard OpenGL API @<:@default=no@:>@])],
529 [enable_opengl="$enableval"],
531 AC_ARG_ENABLE([gles1],
532 [AS_HELP_STRING([--enable-gles1],
533 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
534 [enable_gles1="$enableval"],
536 AC_ARG_ENABLE([gles2],
537 [AS_HELP_STRING([--enable-gles2],
538 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
539 [enable_gles2="$enableval"],
541 AC_ARG_ENABLE([openvg],
542 [AS_HELP_STRING([--enable-openvg],
543 [enable support for OpenVG API @<:@default=no@:>@])],
544 [enable_openvg="$enableval"],
548 [AS_HELP_STRING([--enable-dri],
549 [enable DRI modules @<:@default=auto@:>@])],
550 [enable_dri="$enableval"],
553 [AS_HELP_STRING([--enable-glx],
554 [enable GLX library @<:@default=auto@:>@])],
555 [enable_glx="$enableval"],
557 AC_ARG_ENABLE([osmesa],
558 [AS_HELP_STRING([--enable-osmesa],
559 [enable OSMesa library @<:@default=auto@:>@])],
560 [enable_osmesa="$enableval"],
561 [enable_osmesa=auto])
563 [AS_HELP_STRING([--disable-egl],
564 [disable EGL library @<:@default=enabled@:>@])],
565 [enable_egl="$enableval"],
568 AC_ARG_ENABLE([xorg],
569 [AS_HELP_STRING([--enable-xorg],
570 [enable support for X.Org DDX API @<:@default=no@:>@])],
571 [enable_xorg="$enableval"],
574 [AS_HELP_STRING([--enable-xa],
575 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
576 [enable_xa="$enableval"],
578 AC_ARG_ENABLE([d3d1x],
579 [AS_HELP_STRING([--enable-d3d1x],
580 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
581 [enable_d3d1x="$enableval"],
584 [AS_HELP_STRING([--enable-gbm],
585 [enable gbm library @<:@default=auto@:>@])],
586 [enable_gbm="$enableval"],
589 AC_ARG_ENABLE([xlib_glx],
590 [AS_HELP_STRING([--enable-xlib-glx],
591 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
592 [enable_xlib_glx="$enableval"],
593 [enable_xlib_glx=auto])
594 AC_ARG_ENABLE([gallium_egl],
595 [AS_HELP_STRING([--enable-gallium-egl],
596 [enable optional EGL state tracker (not required
597 for EGL support in Gallium with OpenGL and OpenGL ES)
598 @<:@default=disable@:>@])],
599 [enable_gallium_egl="$enableval"],
600 [enable_gallium_egl=no])
601 AC_ARG_ENABLE([gallium_gbm],
602 [AS_HELP_STRING([--enable-gallium-gbm],
603 [enable optional gbm state tracker (not required for
604 gbm support in Gallium)
605 @<:@default=auto@:>@])],
606 [enable_gallium_gbm="$enableval"],
607 [enable_gallium_gbm=auto])
609 # Option for Gallium drivers
610 GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
612 AC_ARG_WITH([gallium-drivers],
613 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
614 [comma delimited Gallium drivers list, e.g.
615 "i915,i965,nouveau,r300,r600,svga,swrast"
616 @<:@default=r300,r600,swrast@:>@])],
617 [with_gallium_drivers="$withval"],
618 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
620 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
621 # here so that the script doesn't choke on an unknown driver name later.
622 case "$with_gallium_drivers" in
623 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
624 no) with_gallium_drivers='' ;;
627 if test "x$enable_opengl" = xno -a \
628 "x$enable_gles1" = xno -a \
629 "x$enable_gles2" = xno -a \
630 "x$enable_openvg" = xno -a \
631 "x$enable_xorg" = xno -a \
632 "x$enable_xa" = xno -a \
633 "x$enable_d3d1x" = xno; then
634 AC_MSG_ERROR([at least one API should be enabled])
638 if test "x$enable_opengl" = xno; then
639 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
641 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
643 if test "x$enable_gles1" = xyes; then
644 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
646 if test "x$enable_gles2" = xyes; then
647 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
649 AC_SUBST([API_DEFINES])
651 AC_ARG_ENABLE([shared-glapi],
652 [AS_HELP_STRING([--enable-shared-glapi],
653 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
654 [enable_shared_glapi="$enableval"],
655 [enable_shared_glapi=no])
658 if test "x$enable_shared_glapi" = xyes; then
661 AC_SUBST([SHARED_GLAPI])
664 dnl Driver configuration. Options are xlib, dri and osmesa right now.
665 dnl More later: fbdev, ...
667 default_driver="xlib"
672 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
675 *freebsd* | dragonfly* | *netbsd*)
677 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
682 if test "x$enable_opengl" = xno; then
686 AC_ARG_WITH([driver],
687 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
688 [mesa_driver="$withval"],
690 dnl Check for valid option
691 case "x$mesa_driver" in
692 xxlib|xdri|xosmesa|xno)
693 if test "x$enable_dri" != xauto -o \
694 "x$enable_glx" != xauto -o \
695 "x$enable_osmesa" != xauto -o \
696 "x$enable_xlib_glx" != xauto; then
697 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
701 mesa_driver="$default_driver"
704 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
708 # map $mesa_driver to APIs
709 if test "x$enable_dri" = xauto; then
710 case "x$mesa_driver" in
711 xdri) enable_dri=yes ;;
716 if test "x$enable_glx" = xauto; then
717 case "x$mesa_driver" in
718 xdri|xxlib) enable_glx=yes ;;
723 if test "x$enable_osmesa" = xauto; then
724 case "x$mesa_driver" in
725 xxlib|xosmesa) enable_osmesa=yes ;;
726 *) enable_osmesa=no ;;
730 if test "x$enable_xlib_glx" = xauto; then
731 case "x$mesa_driver" in
732 xxlib) enable_xlib_glx=yes ;;
733 *) enable_xlib_glx=no ;;
737 if test "x$enable_glx" = xno; then
742 dnl Driver specific build directories
745 dnl this variable will be prepended to SRC_DIRS and is not exported
750 GALLIUM_DIRS="auxiliary drivers state_trackers"
751 GALLIUM_TARGET_DIRS=""
752 GALLIUM_WINSYS_DIRS="sw"
753 GALLIUM_DRIVERS_DIRS="softpipe failover galahad trace rbug noop identity"
754 GALLIUM_STATE_TRACKERS_DIRS=""
756 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
757 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
759 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
763 # build glapi if OpenGL is enabled
764 if test "x$enable_opengl" = xyes; then
765 CORE_DIRS="$CORE_DIRS mapi/glapi"
768 # build es1api if OpenGL ES 1.x is enabled
769 if test "x$enable_gles1" = xyes; then
770 CORE_DIRS="$CORE_DIRS mapi/es1api"
773 # build es2api if OpenGL ES 2.x is enabled
774 if test "x$enable_gles2" = xyes; then
775 CORE_DIRS="$CORE_DIRS mapi/es2api"
778 # build glsl and mesa if OpenGL or OpenGL ES is enabled
779 case "x$enable_opengl$enable_gles1$enable_gles2" in
781 CORE_DIRS="$CORE_DIRS glsl mesa"
785 case "x$enable_glx$enable_xlib_glx" in
787 DRIVER_DIRS="$DRIVER_DIRS x11"
788 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
789 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
790 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
794 SRC_DIRS="$SRC_DIRS glx"
798 if test "x$enable_dri" = xyes; then
799 DRIVER_DIRS="$DRIVER_DIRS dri"
801 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
802 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
806 if test "x$enable_osmesa" = xyes; then
807 # the empty space matters for osmesa... (see src/mesa/Makefile)
808 if test -n "$DRIVER_DIRS"; then
809 DRIVER_DIRS="$DRIVER_DIRS osmesa"
817 AC_SUBST([DRIVER_DIRS])
818 AC_SUBST([GALLIUM_DIRS])
819 AC_SUBST([GALLIUM_TARGET_DIRS])
820 AC_SUBST([GALLIUM_WINSYS_DIRS])
821 AC_SUBST([GALLIUM_DRIVERS_DIRS])
822 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
823 AC_SUBST([MESA_LLVM])
826 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
827 [have_libdrm=yes], [have_libdrm=no])
829 if test "x$enable_dri" = xyes; then
830 # DRI must be shared, I think
831 if test "$enable_static" = yes; then
832 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
835 # not a hard requirement as swrast does not depend on it
836 if test "x$have_libdrm" = xyes; then
837 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
842 dnl Find out if X is available. The variable have_x is set if libX11 is
843 dnl found to mimic AC_PATH_XTRA.
845 if test -n "$PKG_CONFIG"; then
846 AC_MSG_CHECKING([pkg-config files for X11 are available])
847 PKG_CHECK_EXISTS([x11],[
853 AC_MSG_RESULT([$x11_pkgconfig])
857 dnl Use the autoconf macro if no pkg-config files
858 if test "$x11_pkgconfig" = yes; then
859 PKG_CHECK_MODULES([X11], [x11])
862 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
863 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
864 AC_SUBST([X11_CFLAGS])
868 dnl Try to tell the user that the --x-* options are only used when
869 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
870 m4_divert_once([HELP_BEGIN],
871 [These options are only used when the X libraries cannot be found by the
872 pkg-config utility.])
874 dnl We need X for xlib and dri, so bomb now if it's not found
875 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
876 AC_MSG_ERROR([X11 development libraries needed for GLX])
879 dnl XCB - this is only used for GLX right now
881 [AS_HELP_STRING([--enable-xcb],
882 [use XCB for GLX @<:@default=disabled@:>@])],
883 [enable_xcb="$enableval"],
885 if test "x$enable_xcb" = xyes; then
886 DEFINES="$DEFINES -DUSE_XCB"
891 dnl Direct rendering or just indirect rendering
894 dnl Disable by default on GNU/Hurd
895 driglx_direct_default="no"
898 dnl Disable by default on cygwin
899 driglx_direct_default="no"
902 driglx_direct_default="yes"
905 AC_ARG_ENABLE([driglx-direct],
906 [AS_HELP_STRING([--disable-driglx-direct],
907 [enable direct rendering in GLX and EGL for DRI \
908 @<:@default=auto@:>@])],
909 [driglx_direct="$enableval"],
910 [driglx_direct="$driglx_direct_default"])
913 dnl libGL configuration per driver
915 case "x$enable_glx$enable_xlib_glx" in
918 if test "$x11_pkgconfig" = yes; then
919 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
920 GL_PC_REQ_PRIV="x11 xext"
921 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
922 GL_LIB_DEPS="$XLIBGL_LIBS"
924 # should check these...
925 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
926 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
927 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
928 GL_PC_CFLAGS="$X11_INCLUDES"
930 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
931 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
933 # if static, move the external libraries to the programs
934 # and empty the libraries for libGL
935 if test "$enable_static" = yes; then
936 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
942 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
943 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
944 if test x"$driglx_direct" = xyes; then
945 if test "x$have_libdrm" != xyes; then
946 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
948 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
949 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
952 # find the DRI deps for libGL
953 if test "$x11_pkgconfig" = yes; then
954 dri_modules="x11 xext xdamage xfixes"
956 # add xf86vidmode if available
957 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
958 if test "$HAVE_XF86VIDMODE" = yes ; then
959 dri_modules="$dri_modules xxf86vm"
962 # add xcb modules if necessary
963 if test "$enable_xcb" = yes; then
964 dri_modules="$dri_modules x11-xcb xcb-glx"
967 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
968 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
969 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
970 GL_LIB_DEPS="$DRIGL_LIBS"
972 # should check these...
973 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
974 if test "x$HAVE_XF86VIDMODE" == xyes; then
975 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
977 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
979 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
980 GL_PC_CFLAGS="$X11_INCLUDES"
982 # XCB can only be used from pkg-config
983 if test "$enable_xcb" = yes; then
984 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
985 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
986 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
987 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
991 # need DRM libs, -lpthread, etc.
992 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
993 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
997 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
998 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
999 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1000 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1002 AC_SUBST([GL_LIB_DEPS])
1003 AC_SUBST([GL_PC_REQ_PRIV])
1004 AC_SUBST([GL_PC_LIB_PRIV])
1005 AC_SUBST([GL_PC_CFLAGS])
1006 AC_SUBST([DRI_PC_REQ_PRIV])
1007 AC_SUBST([GLESv1_CM_LIB_DEPS])
1008 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1009 AC_SUBST([GLESv2_LIB_DEPS])
1010 AC_SUBST([GLESv2_PC_LIB_PRIV])
1012 GLAPI_LIB_DEPS="-lpthread"
1013 AC_SUBST([GLAPI_LIB_DEPS])
1016 dnl Setup default DRI CFLAGS
1017 DRI_CFLAGS='$(CFLAGS)'
1018 DRI_CXXFLAGS='$(CXXFLAGS)'
1019 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1020 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1022 AC_ARG_ENABLE([shared-dricore],
1023 [AS_HELP_STRING([--enable-shared-dricore],
1024 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1025 [enable_dricore="$enableval"],
1026 [enable_dricore=no])
1027 if test "x$enable_dri" = xyes ; then
1028 if test "$enable_dricore" = yes ; then
1029 if test "$GCC$GXX" != yesyes ; then
1030 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1033 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1034 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1035 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1036 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1037 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1038 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1039 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1043 AC_SUBST([DRICORE_LIBS])
1044 AC_SUBST([DRICORE_GLSL_LIBS])
1045 AC_SUBST([DRICORE_LIB_DEPS])
1046 AC_SUBST([DRI_CXXFLAGS])
1047 AC_SUBST([DRI_CFLAGS])
1048 AC_SUBST([MESA_MODULES])
1050 AC_SUBST([HAVE_XF86VIDMODE])
1052 PKG_CHECK_MODULES([LIBDRM_RADEON],
1053 [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED],
1054 HAVE_LIBDRM_RADEON=yes,
1055 HAVE_LIBDRM_RADEON=no)
1060 case "x$enable_glx$enable_xlib_glx" in
1062 DEFINES="$DEFINES -DUSE_XSHM"
1065 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1066 if test "x$driglx_direct" = xyes; then
1067 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1076 AC_ARG_ENABLE([glx-tls],
1077 [AS_HELP_STRING([--enable-glx-tls],
1078 [enable TLS support in GLX @<:@default=disabled@:>@])],
1079 [GLX_USE_TLS="$enableval"],
1081 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1083 AS_IF([test "x$GLX_USE_TLS" = xyes],
1084 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1089 dnl Directory for DRI drivers
1090 AC_ARG_WITH([dri-driverdir],
1091 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1092 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1093 [DRI_DRIVER_INSTALL_DIR="$withval"],
1094 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1095 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1096 dnl Extra search path for DRI drivers
1097 AC_ARG_WITH([dri-searchpath],
1098 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1099 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1100 [DRI_DRIVER_SEARCH_DIR="$withval"],
1101 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1102 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1103 dnl Which drivers to build - default is chosen by platform
1104 AC_ARG_WITH([dri-drivers],
1105 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1106 [comma delimited DRI drivers list, e.g.
1107 "swrast,i965,radeon" @<:@default=auto@:>@])],
1108 [with_dri_drivers="$withval"],
1109 [with_dri_drivers=yes])
1110 if test "x$with_dri_drivers" = x; then
1114 dnl If $with_dri_drivers is yes, directories will be added through
1117 case "$with_dri_drivers" in
1120 # classic DRI drivers require FEATURE_GL to build
1121 if test "x$enable_opengl" = xyes; then
1126 # verify the requested driver directories exist
1127 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1128 for driver in $dri_drivers; do
1129 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1130 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1132 DRI_DIRS="$dri_drivers"
1133 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1134 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1139 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1140 if test "x$enable_dri" = xyes; then
1141 # Platform specific settings and drivers to build
1144 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1145 DEFINES="$DEFINES -DHAVE_ALIAS"
1149 # sis is missing because they have not be converted to use
1150 # the new interface. i810 are missing because there is no
1151 # x86-64 system where they could *ever* be used.
1152 if test "x$DRI_DIRS" = "xyes"; then
1153 DRI_DIRS="i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1154 radeon savage tdfx unichrome swrast"
1158 # Build only the drivers for cards that exist on PowerPC.
1159 # At some point MGA will be added, but not yet.
1160 if test "x$DRI_DIRS" = "xyes"; then
1161 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
1165 # Build only the drivers for cards that exist on sparc`
1166 if test "x$DRI_DIRS" = "xyes"; then
1167 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
1172 freebsd* | dragonfly* | *netbsd*)
1173 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1174 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1176 if test "x$DRI_DIRS" = "xyes"; then
1177 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1178 radeon tdfx unichrome savage sis swrast"
1182 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1183 DEFINES="$DEFINES -DHAVE_ALIAS"
1186 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1189 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1190 if test "x$DRI_DIRS" = "xyes"; then
1197 if test "x$DRI_DIRS" = "xyes"; then
1198 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \
1199 savage sis tdfx unichrome swrast"
1202 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1205 if test "x$enable_dri" = xyes; then
1208 AC_ARG_WITH([expat],
1209 [AS_HELP_STRING([--with-expat=DIR],
1210 [expat install directory])],[
1211 EXPAT_INCLUDES="-I$withval/include"
1212 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1213 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1214 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1216 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1217 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1218 [AC_MSG_ERROR([Expat required for DRI.])])
1221 # libdrm is required for all except swrast
1222 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1223 if test "x$have_libdrm" != xyes; then
1224 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1228 # put all the necessary libs together, including possibly libdricore
1229 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1231 AC_SUBST([DRI_DIRS])
1232 AC_SUBST([EXPAT_INCLUDES])
1233 AC_SUBST([DRI_LIB_DEPS])
1237 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1243 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1248 *radeon*|*r200*|*r300*|*r600*)
1249 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
1250 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
1251 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
1255 AC_SUBST([RADEON_CFLAGS])
1256 AC_SUBST([RADEON_LDFLAGS])
1260 dnl OSMesa configuration
1263 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1264 AC_ARG_WITH([osmesa-bits],
1265 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1266 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1267 [osmesa_bits="$withval"],
1269 if test "x$osmesa_bits" != x8; then
1270 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1271 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1275 case "x$osmesa_bits" in
1280 OSMESA_LIB="OSMesa$osmesa_bits"
1281 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1284 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1287 AC_SUBST([OSMESA_LIB])
1289 if test "x$enable_osmesa" = xyes; then
1290 # only link libraries with osmesa if shared
1291 if test "$enable_static" = no; then
1292 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1297 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1299 AC_SUBST([OSMESA_LIB_DEPS])
1300 AC_SUBST([OSMESA_MESA_DEPS])
1301 AC_SUBST([OSMESA_PC_REQ])
1302 AC_SUBST([OSMESA_PC_LIB_PRIV])
1305 dnl EGL configuration
1309 if test "x$enable_egl" = xyes; then
1310 SRC_DIRS="$SRC_DIRS egl"
1311 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1314 if test "$enable_static" != yes; then
1315 # build egl_glx when libGL is built
1316 if test "x$enable_glx" = xyes; then
1317 EGL_DRIVERS_DIRS="glx"
1320 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1321 [have_libudev=yes],[have_libudev=no])
1322 if test "$have_libudev" = yes; then
1323 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1325 if test "x$enable_dri" = xyes; then
1326 # build egl_dri2 when xcb-dri2 is available
1327 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1328 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1330 if test "$have_xcb_dri2" = yes; then
1331 EGL_DRIVER_DRI2=dri2
1332 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1333 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1334 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1335 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1339 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1342 AC_SUBST([EGL_LIB_DEPS])
1343 AC_SUBST([EGL_DRIVERS_DIRS])
1346 dnl gbm configuration
1348 if test "x$enable_gbm" = xauto; then
1349 case "$with_egl_platforms" in
1356 if test "x$enable_gbm" = xyes; then
1357 SRC_DIRS="$SRC_DIRS gbm"
1360 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1361 AC_MSG_ERROR([gbm needs udev]))
1362 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1364 if test "x$enable_dri" = xyes; then
1365 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1366 if test "$SHARED_GLAPI" -eq 0; then
1367 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1371 AC_SUBST([GBM_LIB_DEPS])
1372 AC_SUBST([GBM_BACKEND_DIRS])
1373 GBM_PC_REQ_PRIV="libudev"
1374 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1376 AC_SUBST([GBM_PC_REQ_PRIV])
1377 AC_SUBST([GBM_PC_LIB_PRIV])
1378 AC_SUBST([GBM_PC_CFLAGS])
1381 dnl EGL Gallium configuration
1383 if test "x$enable_gallium_egl" = xyes; then
1384 if test "x$with_gallium_drivers" = x; then
1385 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1387 if test "x$enable_egl" = xno; then
1388 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1390 if test "x$have_libdrm" != xyes; then
1391 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1394 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1395 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1400 dnl gbm Gallium configuration
1402 if test "x$enable_gallium_gbm" = xauto; then
1403 case "$enable_gbm$HAVE_ST_EGL$with_egl_platforms" in
1405 enable_gallium_gbm=yes ;;
1407 enable_gallium_gbm=no ;;
1410 if test "x$enable_gallium_gbm" = xyes; then
1411 if test "x$with_gallium_drivers" = x; then
1412 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1414 if test "x$enable_gbm" = xno; then
1415 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1418 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1419 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1424 dnl X.Org DDX configuration
1426 if test "x$enable_xorg" = xyes; then
1427 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1428 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1429 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1430 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1431 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1432 HAVE_XEXTPROTO_71="no")
1433 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1438 dnl XA configuration
1440 if test "x$enable_xa" = xyes; then
1441 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1446 dnl OpenVG configuration
1450 if test "x$enable_openvg" = xyes; then
1451 if test "x$enable_egl" = xno; then
1452 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1454 if test "x$with_gallium_drivers" = x; then
1455 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1457 if test "x$enable_gallium_egl" = xno; then
1458 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1461 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1462 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1463 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1464 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1469 dnl D3D1X configuration
1472 if test "x$enable_d3d1x" = xyes; then
1473 if test "x$with_gallium_drivers" = x; then
1474 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1477 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1482 dnl GLU configuration
1484 AC_ARG_ENABLE([glu],
1485 [AS_HELP_STRING([--disable-glu],
1486 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1487 [enable_glu="$enableval"],
1490 if test "x$enable_glu" = xyes; then
1491 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1492 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1497 if test "x$enable_glu" = xyes; then
1498 SRC_DIRS="$SRC_DIRS glu"
1500 if test "x$enable_glx" = xno; then
1501 # Link libGLU to libOSMesa instead of libGL
1504 if test "$enable_static" = no; then
1505 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1510 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1512 GLU_PC_LIB_PRIV="-lm"
1513 if test "$enable_static" = no; then
1515 GLU_MESA_DEPS='-l$(GL_LIB)'
1519 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1523 if test "$enable_static" = no; then
1524 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1526 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1527 AC_SUBST([GLU_LIB_DEPS])
1528 AC_SUBST([GLU_MESA_DEPS])
1529 AC_SUBST([GLU_PC_REQ])
1530 AC_SUBST([GLU_PC_REQ_PRIV])
1531 AC_SUBST([GLU_PC_LIB_PRIV])
1532 AC_SUBST([GLU_PC_CFLAGS])
1535 dnl GLw configuration
1537 AC_ARG_ENABLE([glw],
1538 [AS_HELP_STRING([--disable-glw],
1539 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
1540 [enable_glw="$enableval"],
1542 dnl Don't build GLw on osmesa
1543 if test "x$enable_glw" = xyes -a "x$enable_glx" = xno; then
1544 AC_MSG_NOTICE([Disabling GLw since there is no OpenGL driver])
1547 AC_ARG_ENABLE([motif],
1548 [AS_HELP_STRING([--enable-motif],
1549 [use Motif widgets in GLw @<:@default=disabled@:>@])],
1550 [enable_motif="$enableval"],
1553 if test "x$enable_glw" = xyes; then
1554 SRC_DIRS="$SRC_DIRS glw"
1555 if test "$x11_pkgconfig" = yes; then
1556 PKG_CHECK_MODULES([GLW],[x11 xt])
1557 GLW_PC_REQ_PRIV="x11 xt"
1558 GLW_LIB_DEPS="$GLW_LIBS"
1560 # should check these...
1561 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
1562 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1563 GLW_PC_CFLAGS="$X11_INCLUDES"
1566 GLW_SOURCES="GLwDrawA.c"
1568 if test "x$enable_motif" = xyes; then
1569 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1570 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1571 if test "x$MOTIF_CONFIG" != xno; then
1572 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1573 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1575 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1576 [AC_MSG_ERROR([Can't locate Motif headers])])
1577 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1578 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1580 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1581 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
1582 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1583 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
1586 # If static, empty GLW_LIB_DEPS and add libs for programs to link
1587 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
1588 if test "$enable_static" = no; then
1589 GLW_MESA_DEPS='-l$(GL_LIB)'
1590 GLW_LIB_DEPS="$GLW_LIB_DEPS"
1592 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1597 AC_SUBST([GLW_LIB_DEPS])
1598 AC_SUBST([GLW_MESA_DEPS])
1599 AC_SUBST([GLW_SOURCES])
1600 AC_SUBST([MOTIF_CFLAGS])
1601 AC_SUBST([GLW_PC_REQ_PRIV])
1602 AC_SUBST([GLW_PC_LIB_PRIV])
1603 AC_SUBST([GLW_PC_CFLAGS])
1606 dnl GLUT configuration
1608 if test -f "$srcdir/include/GL/glut.h"; then
1613 AC_ARG_ENABLE([glut],
1614 [AS_HELP_STRING([--disable-glut],
1615 [enable GLUT library @<:@default=enabled if source available@:>@])],
1616 [enable_glut="$enableval"],
1617 [enable_glut="$default_glut"])
1619 dnl Don't build glut without GLX
1620 if test "x$enable_glut" = xyes -a "x$enable_glx" = xno; then
1621 AC_MSG_NOTICE([Disabling glut since there is no OpenGL driver])
1624 dnl Can't build glut if GLU not available
1625 if test "x$enable_glu$enable_glut" = xnoyes; then
1626 AC_MSG_WARN([Disabling glut since GLU is disabled])
1630 if test "x$enable_glut" = xyes; then
1631 SRC_DIRS="$SRC_DIRS glut/glx"
1632 if test "$x11_pkgconfig" = yes; then
1633 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1634 GLUT_PC_REQ_PRIV="x11 xmu xi"
1635 GLUT_LIB_DEPS="$GLUT_LIBS"
1637 # should check these...
1638 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1639 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1640 GLUT_PC_CFLAGS="$X11_INCLUDES"
1642 if test "x$GCC" = xyes; then
1643 GLUT_CFLAGS="$GLUT_CFLAGS -fexceptions"
1645 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1646 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
1648 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1649 if test "$enable_static" = no; then
1650 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1652 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1657 AC_SUBST([GLUT_LIB_DEPS])
1658 AC_SUBST([GLUT_MESA_DEPS])
1659 AC_SUBST([GLUT_CFLAGS])
1660 AC_SUBST([GLUT_PC_REQ_PRIV])
1661 AC_SUBST([GLUT_PC_LIB_PRIV])
1662 AC_SUBST([GLUT_PC_CFLAGS])
1665 dnl Program library dependencies
1666 dnl Only libm is added here if necessary as the libraries should
1667 dnl be pulled in by the linker
1669 if test "x$APP_LIB_DEPS" = x; then
1672 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1675 APP_LIB_DEPS="-lX11"
1682 AC_SUBST([APP_LIB_DEPS])
1683 AC_SUBST([PROGRAM_DIRS])
1686 dnl Gallium configuration
1688 if test "x$with_gallium_drivers" != x; then
1689 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1690 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1695 AC_SUBST([LLVM_CFLAGS])
1696 AC_SUBST([LLVM_LIBS])
1697 AC_SUBST([LLVM_LDFLAGS])
1698 AC_SUBST([LLVM_VERSION])
1702 case "x$enable_opengl$enable_gles1$enable_gles2" in
1704 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1708 AC_SUBST([VG_LIB_DEPS])
1709 AC_SUBST([EGL_CLIENT_APIS])
1711 AC_ARG_WITH([egl-platforms],
1712 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1713 [comma delimited native platforms libEGL supports, e.g.
1714 "x11,drm" @<:@default=auto@:>@])],
1715 [with_egl_platforms="$withval"],
1716 [with_egl_platforms=yes])
1719 WAYLAND_EGL_LIB_DEPS=""
1721 case "$with_egl_platforms" in
1723 if test "x$enable_egl" = xyes; then
1728 if test "x$enable_egl" != xyes; then
1729 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1731 # verify the requested driver directories exist
1732 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1733 for plat in $egl_platforms; do
1734 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1735 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1736 if test "$plat" = "fbdev"; then
1737 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1739 if test "$plat" = "wayland"; then
1740 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1741 [AC_MSG_ERROR([cannot find libwayland-client])])
1742 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1743 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1745 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1746 AC_MSG_ERROR([EGL platform drm needs gbm])
1748 case "$plat$have_libudev" in
1750 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1753 EGL_PLATFORMS="$egl_platforms"
1756 AC_SUBST([EGL_PLATFORMS])
1758 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1759 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1760 WAYLAND_EGL_PC_LIB_PRIV=
1761 WAYLAND_EGL_PC_CFLAGS=
1763 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1764 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1765 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1768 AC_ARG_WITH([egl-driver-dir],
1769 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1770 [directory for EGL drivers [[default=${libdir}/egl]]])],
1771 [EGL_DRIVER_INSTALL_DIR="$withval"],
1772 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1773 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1775 AC_ARG_WITH([xorg-driver-dir],
1776 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1777 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1778 [XORG_DRIVER_INSTALL_DIR="$withval"],
1779 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1780 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1782 AC_ARG_WITH([max-width],
1783 [AS_HELP_STRING([--with-max-width=N],
1784 [Maximum framebuffer width (4096)])],
1785 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1786 AS_IF([test "${withval}" -gt "4096"],
1787 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1789 AC_ARG_WITH([max-height],
1790 [AS_HELP_STRING([--with-max-height=N],
1791 [Maximum framebuffer height (4096)])],
1792 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1793 AS_IF([test "${withval}" -gt "4096"],
1794 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1800 AC_ARG_ENABLE([gallium-llvm],
1801 [AS_HELP_STRING([--enable-gallium-llvm],
1802 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1803 [enable_gallium_llvm="$enableval"],
1804 [enable_gallium_llvm=auto])
1805 if test "x$with_gallium_drivers" = x; then
1806 enable_gallium_llvm=no
1808 if test "x$enable_gallium_llvm" = xauto; then
1810 i*86|x86_64) enable_gallium_llvm=yes;;
1813 if test "x$enable_gallium_llvm" = xyes; then
1814 if test "x$LLVM_CONFIG" != xno; then
1815 LLVM_VERSION=`$LLVM_CONFIG --version`
1816 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed 's/-DNDEBUG\>//g'`
1817 LLVM_LIBS="`$LLVM_CONFIG --libs` -lstdc++"
1819 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1820 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1821 DEFINES="$DEFINES -DGALLIUM_LLVMPIPE -D__STDC_CONSTANT_MACROS"
1831 dnl Gallium helper functions
1833 gallium_check_st() {
1834 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1835 test "x$HAVE_ST_XA" = xyes; then
1836 if test "x$have_libdrm" != xyes; then
1837 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1839 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1841 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1842 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1844 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1845 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1847 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1848 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1852 gallium_require_llvm() {
1853 if test "x$MESA_LLVM" = x0; then
1855 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1861 if test "x$with_gallium_drivers" != x; then
1862 # This is for compile-testing
1863 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 i965 r300 svga"
1864 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1866 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1867 for driver in $gallium_drivers; do
1870 gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx" "xa-vmwgfx"
1873 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1876 gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1879 gallium_require_llvm "Gallium R300"
1880 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300"
1883 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1884 gallium_check_st "r600/drm" "dri-r600"
1887 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1888 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
1891 if test "x$HAVE_ST_DRI" = xyes; then
1892 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1896 AC_MSG_ERROR([Unknown Gallium driver: $driver])
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 Substitute the config
1910 AC_CONFIG_FILES([configs/autoconf])
1912 dnl Replace the configs/current symlink
1913 AC_CONFIG_COMMANDS([configs],[
1914 if test -f configs/current || test -L configs/current; then
1915 rm -f configs/current
1917 ln -s autoconf configs/current
1920 dnl Sort the dirs alphabetically
1921 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort|tr "\n" " "`
1922 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort|tr "\n" " "`
1923 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort|tr "\n" " "`
1924 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort|tr "\n" " "`
1929 dnl Output some configuration info for the user
1932 echo " prefix: $prefix"
1933 echo " exec_prefix: $exec_prefix"
1934 echo " libdir: $libdir"
1935 echo " includedir: $includedir"
1939 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1940 echo " OpenVG: $enable_openvg"
1944 if test "x$enable_osmesa" != xno; then
1945 echo " OSMesa: lib$OSMESA_LIB"
1950 if test "x$enable_dri" != xno; then
1951 # cleanup the drivers var
1952 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1953 if test "x$DRI_DIRS" = x; then
1954 echo " DRI drivers: no"
1956 echo " DRI drivers: $dri_dirs"
1958 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1959 echo " Shared dricore: $enable_dricore"
1962 case "x$enable_glx$enable_xlib_glx" in
1964 echo " GLX: Xlib-based"
1967 echo " GLX: DRI-based"
1968 echo " Use XCB: $enable_xcb"
1971 echo " GLX: $enable_glx"
1976 echo " GLU: $enable_glu"
1977 echo " GLw: $enable_glw (Motif: $enable_motif)"
1978 echo " glut: $enable_glut"
1982 echo " EGL: $enable_egl"
1983 if test "$enable_egl" = yes; then
1984 echo " EGL platforms: $EGL_PLATFORMS"
1987 for d in $EGL_DRIVERS_DIRS; do
1988 egl_drivers="$egl_drivers builtin:egl_$d"
1991 if test "x$HAVE_ST_EGL" = xyes; then
1992 echo " EGL drivers: ${egl_drivers} egl_gallium"
1993 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
1995 echo " EGL drivers: $egl_drivers"
2000 if test "x$MESA_LLVM" = x1; then
2002 echo " llvm-config: $LLVM_CONFIG"
2003 echo " llvm-version: $LLVM_VERSION"
2009 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2010 echo " Gallium: yes"
2011 echo " Gallium dirs: $GALLIUM_DIRS"
2012 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2013 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2014 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2015 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2022 echo " Shared libs: $enable_shared"
2023 echo " Static libs: $enable_static"
2025 dnl Compiler options
2026 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2027 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2028 $SED 's/^ *//;s/ */ /;s/ *$//'`
2029 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2030 $SED 's/^ *//;s/ */ /;s/ *$//'`
2031 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2033 echo " CFLAGS: $cflags"
2034 echo " CXXFLAGS: $cxxflags"
2035 echo " Macros: $defines"
2037 echo " PYTHON2: $PYTHON2"
2040 echo " Run '${MAKE-make}' to build Mesa"