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 DRI2PROTO_REQUIRED=2.1
25 GLPROTO_REQUIRED=1.4.11
26 LIBDRM_XORG_REQUIRED=2.4.24
27 LIBKMS_XORG_REQUIRED=1.0.0
33 AC_CHECK_PROGS([MAKE], [gmake make])
34 AC_CHECK_PROGS([PYTHON2], [python2 python])
35 AC_PATH_PROG([MKDEP], [makedepend])
36 AC_PATH_PROG([SED], [sed])
38 if test "x$MKDEP" = "x"; then
39 AC_MSG_ERROR([makedepend is required to build Mesa])
42 AC_PATH_PROG([FLEX], [flex])
43 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
45 AC_PATH_PROG([BISON], [bison])
46 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
48 dnl Our fallback install-sh is a symlink to minstall. Use the existing
49 dnl configuration in that case.
51 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
53 dnl We need a POSIX shell for parts of the build. Assume we have one
57 # Solaris /bin/sh is too old/non-POSIX compliant
58 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
63 dnl clang is mostly GCC-compatible, but its version is much lower,
64 dnl so we have to check for it.
65 AC_MSG_CHECKING([if compiling with clang])
68 [AC_LANG_PROGRAM([], [[
73 [CLANG=yes], [CLANG=no])
75 AC_MSG_RESULT([$CLANG])
77 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
78 dnl versions are explictly not supported.
79 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
80 AC_MSG_CHECKING([whether gcc version is sufficient])
84 GCC_VERSION=`$CC -dumpversion`
85 if test $? -eq 0; then
86 major=`echo $GCC_VERSION | cut -d. -f1`
87 minor=`echo $GCC_VERSION | cut -d. -f1`
90 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
92 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
99 MKDEP_OPTIONS=-fdepend
100 dnl Ask gcc where it's keeping its secret headers
101 if test "x$GCC" = xyes; then
102 for dir in include include-fixed; do
103 GCC_INCLUDES=`$CC -print-file-name=$dir`
104 if test "x$GCC_INCLUDES" != x && \
105 test "$GCC_INCLUDES" != "$dir" && \
106 test -d "$GCC_INCLUDES"; then
107 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
111 AC_SUBST([MKDEP_OPTIONS])
113 dnl Make sure the pkg-config macros are defined
114 m4_ifndef([PKG_PROG_PKG_CONFIG],
115 [m4_fatal([Could not locate the pkg-config autoconf macros.
116 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
117 are in a different location, try setting the environment variable
118 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
119 PKG_PROG_PKG_CONFIG()
121 dnl LIB_DIR - library basename
122 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
125 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
126 _SAVE_LDFLAGS="$LDFLAGS"
127 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
128 AC_SUBST([EXTRA_LIB_PATH])
130 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
131 _SAVE_CPPFLAGS="$CPPFLAGS"
132 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
133 AC_SUBST([X11_INCLUDES])
140 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
143 DEFINES="$DEFINES -DPTHREADS -DSVR4"
146 DEFINES="$DEFINES -DPTHREADS"
150 dnl Add flags for gcc and g++
151 if test "x$GCC" = xyes; then
152 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
153 if test "x$CLANG" = "xno"; then
154 CFLAGS="$CFLAGS -ffast-math"
157 # Enable -fvisibility=hidden if using a gcc that supports it
158 save_CFLAGS="$CFLAGS"
159 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
160 VISIBILITY_CFLAGS="-fvisibility=hidden"
161 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
162 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
163 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
165 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
168 # Work around aliasing bugs - developers should comment this out
169 CFLAGS="$CFLAGS -fno-strict-aliasing"
171 if test "x$GXX" = xyes; then
172 CXXFLAGS="$CXXFLAGS -Wall"
174 # Enable -fvisibility=hidden if using a gcc that supports it
175 save_CXXFLAGS="$CXXFLAGS"
176 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
177 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
178 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
179 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
180 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
182 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
183 CXXFLAGS=$save_CXXFLAGS
185 # Work around aliasing bugs - developers should comment this out
186 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
189 AC_SUBST([VISIBILITY_CFLAGS])
190 AC_SUBST([VISIBILITY_CXXFLAGS])
192 dnl These should be unnecessary, but let the user set them if they want
193 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
194 Default is to use CFLAGS.])
195 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
196 compiler. Default is to use CFLAGS.])
197 AC_SUBST([OPT_FLAGS])
198 AC_SUBST([ARCH_FLAGS])
201 dnl Hacks to enable 32 or 64 bit build
203 AC_ARG_ENABLE([32-bit],
204 [AS_HELP_STRING([--enable-32-bit],
205 [build 32-bit libraries @<:@default=auto@:>@])],
206 [enable_32bit="$enableval"],
209 if test "x$enable_32bit" = xyes; then
210 if test "x$GCC" = xyes; then
211 CFLAGS="$CFLAGS -m32"
212 ARCH_FLAGS="$ARCH_FLAGS -m32"
214 if test "x$GXX" = xyes; then
215 CXXFLAGS="$CXXFLAGS -m32"
218 AC_ARG_ENABLE([64-bit],
219 [AS_HELP_STRING([--enable-64-bit],
220 [build 64-bit libraries @<:@default=auto@:>@])],
221 [enable_64bit="$enableval"],
224 if test "x$enable_64bit" = xyes; then
225 if test "x$GCC" = xyes; then
226 CFLAGS="$CFLAGS -m64"
228 if test "x$GXX" = xyes; then
229 CXXFLAGS="$CXXFLAGS -m64"
234 dnl shared/static libraries, mimic libtool options
236 AC_ARG_ENABLE([static],
237 [AS_HELP_STRING([--enable-static],
238 [build static libraries @<:@default=disabled@:>@])],
239 [enable_static="$enableval"],
242 case "x$enable_static" in
244 x ) enable_static=no ;;
246 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
249 AC_ARG_ENABLE([shared],
250 [AS_HELP_STRING([--disable-shared],
251 [build shared libraries @<:@default=enabled@:>@])],
252 [enable_shared="$enableval"],
255 case "x$enable_shared" in
257 x ) enable_shared=yes ;;
259 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
263 dnl Can't have static and shared libraries, default to static if user
264 dnl explicitly requested. If both disabled, set to static since shared
265 dnl was explicitly requirested.
266 case "x$enable_static$enable_shared" in
268 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
272 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
280 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
281 if test "$enable_static" = yes; then
282 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
284 AC_SUBST([MKLIB_OPTIONS])
287 dnl other compiler options
289 AC_ARG_ENABLE([debug],
290 [AS_HELP_STRING([--enable-debug],
291 [use debug compiler flags and macros @<:@default=disabled@:>@])],
292 [enable_debug="$enableval"],
295 if test "x$enable_debug" = xyes; then
296 DEFINES="$DEFINES -DDEBUG"
297 if test "x$GCC" = xyes; then
300 if test "x$GXX" = xyes; then
301 CXXFLAGS="$CXXFLAGS -g"
308 LIB_PREFIX_GLOB='lib'
309 LIB_VERSION_SEPARATOR='.'
310 if test "$enable_static" = yes; then
315 LIB_EXTENSION='dylib' ;;
317 dnl prefix can be 'cyg' or 'lib'
318 LIB_PREFIX_GLOB='???'
319 LIB_VERSION_SEPARATOR='-'
320 LIB_EXTENSION='dll' ;;
324 LIB_EXTENSION='so' ;;
329 dnl potentially-infringing-but-nobody-knows-for-sure stuff
331 AC_ARG_ENABLE([texture-float],
332 [AS_HELP_STRING([--enable-texture-float],
333 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
334 [enable_texture_float="$enableval"],
335 [enable_texture_float=no]
337 if test "x$enable_texture_float" = xyes; then
338 AC_MSG_WARN([Floating-point textures enabled.])
339 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
340 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
343 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
344 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
345 GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
346 GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
347 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
348 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
349 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
350 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
351 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
352 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
353 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
355 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
356 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
357 GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
358 GLW_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLW_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
359 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
360 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
361 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
362 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
363 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
364 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
365 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
366 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
368 AC_SUBST([GL_LIB_NAME])
369 AC_SUBST([GLU_LIB_NAME])
370 AC_SUBST([GLUT_LIB_NAME])
371 AC_SUBST([GLW_LIB_NAME])
372 AC_SUBST([OSMESA_LIB_NAME])
373 AC_SUBST([EGL_LIB_NAME])
374 AC_SUBST([GLESv1_CM_LIB_NAME])
375 AC_SUBST([GLESv2_LIB_NAME])
376 AC_SUBST([VG_LIB_NAME])
377 AC_SUBST([GLAPI_LIB_NAME])
378 AC_SUBST([WAYLAND_EGL_LIB_NAME])
380 AC_SUBST([GL_LIB_GLOB])
381 AC_SUBST([GLU_LIB_GLOB])
382 AC_SUBST([GLUT_LIB_GLOB])
383 AC_SUBST([GLW_LIB_GLOB])
384 AC_SUBST([OSMESA_LIB_GLOB])
385 AC_SUBST([EGL_LIB_GLOB])
386 AC_SUBST([GLESv1_CM_LIB_GLOB])
387 AC_SUBST([GLESv2_LIB_GLOB])
388 AC_SUBST([VG_LIB_GLOB])
389 AC_SUBST([GLAPI_LIB_GLOB])
390 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
393 dnl Arch/platform-specific settings
396 [AS_HELP_STRING([--disable-asm],
397 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
398 [enable_asm="$enableval"],
405 AC_MSG_CHECKING([whether to enable assembly])
406 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
407 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
408 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
412 AC_MSG_RESULT([no, cross compiling])
416 # check for supported arches
417 if test "x$enable_asm" = xyes; then
421 linux* | *freebsd* | dragonfly* | *netbsd*)
422 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
428 linux* | *freebsd* | dragonfly* | *netbsd*)
429 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
451 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
452 MESA_ASM_SOURCES='$(X86_SOURCES)'
453 GLAPI_ASM_SOURCES='$(X86_API)'
454 AC_MSG_RESULT([yes, x86])
457 ASM_FLAGS="-DUSE_X86_64_ASM"
458 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
459 GLAPI_ASM_SOURCES='$(X86-64_API)'
460 AC_MSG_RESULT([yes, x86_64])
463 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
464 MESA_ASM_SOURCES='$(PPC_SOURCES)'
465 AC_MSG_RESULT([yes, ppc])
468 ASM_FLAGS="-DUSE_SPARC_ASM"
469 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
470 GLAPI_ASM_SOURCES='$(SPARC_API)'
471 AC_MSG_RESULT([yes, sparc])
474 AC_MSG_RESULT([no, platform not supported])
478 AC_SUBST([ASM_FLAGS])
479 AC_SUBST([MESA_ASM_SOURCES])
480 AC_SUBST([GLAPI_ASM_SOURCES])
485 dnl Check to see if dlopen is in default libraries (like Solaris, which
486 dnl has it in libc), or if libdl is needed to get it.
487 AC_CHECK_FUNC([dlopen], [],
488 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
489 AC_SUBST([DLOPEN_LIBS])
491 dnl See if posix_memalign is available
492 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
494 dnl SELinux awareness.
495 AC_ARG_ENABLE([selinux],
496 [AS_HELP_STRING([--enable-selinux],
497 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
498 [MESA_SELINUX="$enableval"],
500 if test "x$enable_selinux" = "xyes"; then
501 AC_CHECK_HEADER([selinux/selinux.h],[],
502 [AC_MSG_ERROR([SELinux headers not found])])
503 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
504 [AC_MSG_ERROR([SELinux library not found])])
505 SELINUX_LIBS="-lselinux"
506 DEFINES="$DEFINES -DMESA_SELINUX"
509 dnl Determine which APIs to support
510 AC_ARG_ENABLE([opengl],
511 [AS_HELP_STRING([--disable-opengl],
512 [disable support for standard OpenGL API @<:@default=no@:>@])],
513 [enable_opengl="$enableval"],
515 AC_ARG_ENABLE([gles1],
516 [AS_HELP_STRING([--enable-gles1],
517 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
518 [enable_gles1="$enableval"],
520 AC_ARG_ENABLE([gles2],
521 [AS_HELP_STRING([--enable-gles2],
522 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
523 [enable_gles2="$enableval"],
525 AC_ARG_ENABLE([gles-overlay],
526 [AS_HELP_STRING([--enable-gles-overlay],
527 [DEPRECATED. Same as --enable-gles1 and --enable-gles2])],
528 [enable_gles1="$enableval"; enable_gles2="$enableval"],
531 AC_ARG_ENABLE([openvg],
532 [AS_HELP_STRING([--enable-openvg],
533 [enable support for OpenVG API @<:@default=no@:>@])],
534 [enable_openvg="$enableval"],
537 dnl smooth the transition; should be removed eventually
538 if test "x$enable_openvg" = xno; then
539 case "x$with_state_trackers" in
541 AC_MSG_WARN([vega state tracker is enabled without --enable-openvg])
547 if test "x$enable_opengl" = xno -a \
548 "x$enable_gles1" = xno -a \
549 "x$enable_gles2" = xno -a \
550 "x$enable_openvg" = xno; then
551 AC_MSG_ERROR([at least one API should be enabled])
555 if test "x$enable_opengl" = xno; then
556 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
558 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
560 if test "x$enable_gles1" = xyes; then
561 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
563 if test "x$enable_gles2" = xyes; then
564 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
566 AC_SUBST([API_DEFINES])
568 AC_ARG_ENABLE([shared-glapi],
569 [AS_HELP_STRING([--enable-shared-glapi],
570 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
571 [enable_shared_glapi="$enableval"],
572 [enable_shared_glapi=no])
575 if test "x$enable_shared_glapi" = xyes; then
578 AC_SUBST([SHARED_GLAPI])
581 dnl Driver configuration. Options are xlib, dri and osmesa right now.
582 dnl More later: fbdev, ...
584 default_driver="xlib"
589 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
592 *freebsd* | dragonfly* | *netbsd*)
594 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
599 if test "x$enable_opengl" = xno; then
603 AC_ARG_WITH([driver],
604 [AS_HELP_STRING([--with-driver=DRIVER],
605 [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
606 [mesa_driver="$withval"],
607 [mesa_driver="$default_driver"])
608 dnl Check for valid option
609 case "x$mesa_driver" in
611 if test "x$enable_opengl" = xno; then
612 AC_MSG_ERROR([Driver '$mesa_driver' requires OpenGL enabled])
618 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
623 dnl Driver specific build directories
626 dnl this variable will be prepended to SRC_DIRS and is not exported
631 GALLIUM_DIRS="auxiliary drivers state_trackers"
632 GALLIUM_TARGET_DIRS=""
633 GALLIUM_WINSYS_DIRS="sw"
634 GALLIUM_DRIVERS_DIRS="softpipe failover galahad trace rbug noop identity"
635 GALLIUM_STATE_TRACKERS_DIRS=""
637 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
638 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
640 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
644 # build glapi if OpenGL is enabled
645 if test "x$enable_opengl" = xyes; then
646 CORE_DIRS="$CORE_DIRS mapi/glapi"
649 # build es1api if OpenGL ES 1.x is enabled
650 if test "x$enable_gles1" = xyes; then
651 CORE_DIRS="$CORE_DIRS mapi/es1api"
654 # build es2api if OpenGL ES 2.x is enabled
655 if test "x$enable_gles2" = xyes; then
656 CORE_DIRS="$CORE_DIRS mapi/es2api"
659 # build vgapi if OpenVG is enabled
660 if test "x$enable_openvg" = xyes; then
661 CORE_DIRS="$CORE_DIRS mapi/vgapi"
664 # build glsl and mesa if OpenGL or OpenGL ES is enabled
665 case "x$enable_opengl$enable_gles1$enable_gles2" in
667 CORE_DIRS="$CORE_DIRS glsl mesa"
671 case "$mesa_driver" in
674 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
675 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
678 SRC_DIRS="$SRC_DIRS glx"
680 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib sw/dri"
691 AC_SUBST([DRIVER_DIRS])
692 AC_SUBST([GALLIUM_DIRS])
693 AC_SUBST([GALLIUM_TARGET_DIRS])
694 AC_SUBST([GALLIUM_WINSYS_DIRS])
695 AC_SUBST([GALLIUM_DRIVERS_DIRS])
696 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
697 AC_SUBST([MESA_LLVM])
700 dnl Find out if X is available. The variable have_x is set if libX11 is
701 dnl found to mimic AC_PATH_XTRA.
703 if test -n "$PKG_CONFIG"; then
704 AC_MSG_CHECKING([pkg-config files for X11 are available])
705 PKG_CHECK_EXISTS([x11],[
711 AC_MSG_RESULT([$x11_pkgconfig])
715 dnl Use the autoconf macro if no pkg-config files
716 if test "$x11_pkgconfig" = yes; then
717 PKG_CHECK_MODULES([X11], [x11])
720 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
721 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
722 AC_SUBST([X11_CFLAGS])
726 dnl Try to tell the user that the --x-* options are only used when
727 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
728 m4_divert_once([HELP_BEGIN],
729 [These options are only used when the X libraries cannot be found by the
730 pkg-config utility.])
732 dnl We need X for xlib and dri, so bomb now if it's not found
733 case "$mesa_driver" in
735 if test "$no_x" = yes; then
736 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
741 dnl XCB - this is only used for GLX right now
743 [AS_HELP_STRING([--enable-xcb],
744 [use XCB for GLX @<:@default=disabled@:>@])],
745 [enable_xcb="$enableval"],
747 if test "x$enable_xcb" = xyes; then
748 DEFINES="$DEFINES -DUSE_XCB"
753 dnl Direct rendering or just indirect rendering
756 dnl Disable by default on GNU/Hurd
757 driglx_direct_default="no"
760 dnl Disable by default on cygwin
761 driglx_direct_default="no"
764 driglx_direct_default="yes"
767 AC_ARG_ENABLE([driglx-direct],
768 [AS_HELP_STRING([--disable-driglx-direct],
769 [enable direct rendering in GLX and EGL for DRI \
770 @<:@default=auto@:>@])],
771 [driglx_direct="$enableval"],
772 [driglx_direct="$driglx_direct_default"])
775 dnl libGL configuration per driver
777 case "$mesa_driver" in
779 if test "$x11_pkgconfig" = yes; then
780 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
781 GL_PC_REQ_PRIV="x11 xext"
782 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
783 GL_LIB_DEPS="$XLIBGL_LIBS"
785 # should check these...
786 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
787 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
788 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
789 GL_PC_CFLAGS="$X11_INCLUDES"
791 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
792 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
794 # if static, move the external libraries to the programs
795 # and empty the libraries for libGL
796 if test "$enable_static" = yes; then
797 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
801 dri|no) # these checks are still desired when there is no mesa_driver
802 # DRI must be shared, I think
803 if test "$enable_static" = yes; then
804 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
807 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
808 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
811 if test x"$driglx_direct" = xyes; then
813 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
814 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
815 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
816 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
819 # find the DRI deps for libGL
820 if test "$x11_pkgconfig" = yes; then
821 dri_modules="x11 xext xdamage xfixes"
823 # add xf86vidmode if available
824 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
825 if test "$HAVE_XF86VIDMODE" = yes ; then
826 dri_modules="$dri_modules xxf86vm"
829 # add xcb modules if necessary
830 if test "$enable_xcb" = yes; then
831 dri_modules="$dri_modules x11-xcb xcb-glx"
834 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
835 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
836 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
837 GL_LIB_DEPS="$DRIGL_LIBS"
839 # should check these...
840 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
841 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
842 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
843 GL_PC_CFLAGS="$X11_INCLUDES"
845 # XCB can only be used from pkg-config
846 if test "$enable_xcb" = yes; then
847 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
848 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
849 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
850 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
854 # need DRM libs, -lpthread, etc.
855 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
856 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
857 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
858 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
859 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
860 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
863 # No libGL for osmesa
867 AC_SUBST([GL_LIB_DEPS])
868 AC_SUBST([GL_PC_REQ_PRIV])
869 AC_SUBST([GL_PC_LIB_PRIV])
870 AC_SUBST([GL_PC_CFLAGS])
871 AC_SUBST([DRI_PC_REQ_PRIV])
872 AC_SUBST([GLESv1_CM_LIB_DEPS])
873 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
874 AC_SUBST([GLESv2_LIB_DEPS])
875 AC_SUBST([GLESv2_PC_LIB_PRIV])
877 GLAPI_LIB_DEPS="-lpthread"
878 AC_SUBST([GLAPI_LIB_DEPS])
881 dnl Setup default DRI CFLAGS
882 DRI_CFLAGS='$(CFLAGS)'
883 DRI_CXXFLAGS='$(CXXFLAGS)'
884 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
885 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
887 AC_ARG_ENABLE([shared-dricore],
888 [AS_HELP_STRING([--enable-shared-dricore],
889 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
890 [enable_dricore="$enableval"],
892 if test "$mesa_driver" = dri ; then
893 if test "$enable_dricore" = yes ; then
894 if test "$GCC$GXX" != yesyes ; then
895 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
898 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
899 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
900 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
901 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
902 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
903 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
904 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
908 AC_SUBST([DRICORE_LIBS])
909 AC_SUBST([DRICORE_GLSL_LIBS])
910 AC_SUBST([DRICORE_LIB_DEPS])
911 AC_SUBST([DRI_CXXFLAGS])
912 AC_SUBST([DRI_CFLAGS])
913 AC_SUBST([MESA_MODULES])
915 AC_SUBST([HAVE_XF86VIDMODE])
917 PKG_CHECK_MODULES([LIBDRM_RADEON],
918 [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED],
919 HAVE_LIBDRM_RADEON=yes,
920 HAVE_LIBDRM_RADEON=no)
925 if test "$mesa_driver" = xlib; then
926 DEFINES="$DEFINES -DUSE_XSHM"
933 AC_ARG_ENABLE([glx-tls],
934 [AS_HELP_STRING([--enable-glx-tls],
935 [enable TLS support in GLX @<:@default=disabled@:>@])],
936 [GLX_USE_TLS="$enableval"],
938 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
940 AS_IF([test "x$GLX_USE_TLS" = xyes],
941 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
946 dnl Directory for DRI drivers
947 AC_ARG_WITH([dri-driverdir],
948 [AS_HELP_STRING([--with-dri-driverdir=DIR],
949 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
950 [DRI_DRIVER_INSTALL_DIR="$withval"],
951 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
952 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
953 dnl Extra search path for DRI drivers
954 AC_ARG_WITH([dri-searchpath],
955 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
956 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
957 [DRI_DRIVER_SEARCH_DIR="$withval"],
958 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
959 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
960 dnl Which drivers to build - default is chosen by platform
961 AC_ARG_WITH([dri-drivers],
962 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
963 [comma delimited DRI drivers list, e.g.
964 "swrast,i965,radeon" @<:@default=auto@:>@])],
965 [with_dri_drivers="$withval"],
966 [with_dri_drivers=yes])
967 if test "x$with_dri_drivers" = x; then
971 dnl If $with_dri_drivers is yes, directories will be added through
974 case "$with_dri_drivers" in
980 # verify the requested driver directories exist
981 dri_drivers=`IFS=', '; echo $with_dri_drivers`
982 for driver in $dri_drivers; do
983 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
984 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
986 DRI_DIRS="$dri_drivers"
990 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
991 if test "$mesa_driver" = dri -o "$mesa_driver" = no; then
992 # Platform specific settings and drivers to build
995 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
996 if test "x$driglx_direct" = xyes; then
997 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
999 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
1003 # sis is missing because they have not be converted to use
1004 # the new interface. i810 are missing because there is no
1005 # x86-64 system where they could *ever* be used.
1006 if test "x$DRI_DIRS" = "xyes"; then
1007 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 r600 radeon \
1008 savage tdfx unichrome swrast"
1012 # Build only the drivers for cards that exist on PowerPC.
1013 # At some point MGA will be added, but not yet.
1014 if test "x$DRI_DIRS" = "xyes"; then
1015 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
1019 # Build only the drivers for cards that exist on sparc`
1020 if test "x$DRI_DIRS" = "xyes"; then
1021 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
1026 freebsd* | dragonfly* | *netbsd*)
1027 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1028 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1029 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1030 if test "x$driglx_direct" = xyes; then
1031 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1034 if test "x$DRI_DIRS" = "xyes"; then
1035 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
1036 unichrome savage sis swrast"
1040 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1041 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
1044 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1045 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1046 if test "x$driglx_direct" = xyes; then
1047 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1051 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1052 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1053 if test "x$driglx_direct" = xyes; then
1054 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1056 if test "x$DRI_DIRS" = "xyes"; then
1063 if test "x$DRI_DIRS" = "xyes"; then
1064 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
1065 savage sis tdfx unichrome swrast"
1068 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1071 if test "$mesa_driver" = dri; then
1074 AC_ARG_WITH([expat],
1075 [AS_HELP_STRING([--with-expat=DIR],
1076 [expat install directory])],[
1077 EXPAT_INCLUDES="-I$withval/include"
1078 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1079 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1080 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1082 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1083 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1084 [AC_MSG_ERROR([Expat required for DRI.])])
1087 # put all the necessary libs together, including possibly libdricore
1088 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1090 AC_SUBST([DRI_DIRS])
1091 AC_SUBST([EXPAT_INCLUDES])
1092 AC_SUBST([DRI_LIB_DEPS])
1096 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1101 *radeon*|*r200*|*r300*|*r600*)
1102 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
1103 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
1104 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
1108 AC_SUBST([RADEON_CFLAGS])
1109 AC_SUBST([RADEON_LDFLAGS])
1113 dnl OSMesa configuration
1115 if test "$mesa_driver" = xlib; then
1116 default_gl_osmesa=yes
1118 default_gl_osmesa=no
1120 AC_ARG_ENABLE([gl-osmesa],
1121 [AS_HELP_STRING([--enable-gl-osmesa],
1122 [enable OSMesa with libGL @<:@default=enabled for xlib driver@:>@])],
1123 [gl_osmesa="$enableval"],
1124 [gl_osmesa="$default_gl_osmesa"])
1125 if test "x$gl_osmesa" = xyes; then
1126 if test "x$enable_opengl" = xno; then
1127 AC_MSG_ERROR([OpenGL is not available for OSMesa driver])
1129 if test "$mesa_driver" = osmesa; then
1130 AC_MSG_ERROR([libGL is not available for OSMesa driver])
1132 DRIVER_DIRS="$DRIVER_DIRS osmesa"
1136 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1137 AC_ARG_WITH([osmesa-bits],
1138 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1139 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1140 [osmesa_bits="$withval"],
1142 if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
1143 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
1146 case "x$osmesa_bits" in
1151 OSMESA_LIB="OSMesa$osmesa_bits"
1152 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1155 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1158 AC_SUBST([OSMESA_LIB])
1160 case "$DRIVER_DIRS" in
1162 # only link libraries with osmesa if shared
1163 if test "$enable_static" = no; then
1164 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1169 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1172 AC_SUBST([OSMESA_LIB_DEPS])
1173 AC_SUBST([OSMESA_MESA_DEPS])
1174 AC_SUBST([OSMESA_PC_REQ])
1175 AC_SUBST([OSMESA_PC_LIB_PRIV])
1178 dnl EGL configuration
1180 AC_ARG_ENABLE([egl],
1181 [AS_HELP_STRING([--disable-egl],
1182 [disable EGL library @<:@default=enabled@:>@])],
1183 [enable_egl="$enableval"],
1185 if test "x$enable_egl" = xno; then
1186 if test "x$mesa_driver" = xno; then
1187 AC_MSG_ERROR([cannot disable EGL when there is no mesa driver])
1189 if test "x$enable_openvg" = xyes; then
1190 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1193 if test "x$enable_egl" = xyes; then
1194 SRC_DIRS="$SRC_DIRS egl"
1195 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1197 if test "$enable_static" != yes; then
1198 # build egl_glx when libGL is built
1199 if test "$mesa_driver" = xlib -o "$mesa_driver" = dri; then
1200 EGL_DRIVERS_DIRS="glx"
1203 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1204 [have_libudev=yes],[have_libudev=no])
1205 if test "$mesa_driver" = dri; then
1206 # build egl_dri2 when xcb-dri2 is available
1207 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1208 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1210 if test "$have_xcb_dri2" = yes; then
1211 EGL_DRIVER_DRI2=dri2
1212 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1213 if test "$have_libudev" = yes; then
1214 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1216 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1217 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1218 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1222 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1225 AC_SUBST([EGL_LIB_DEPS])
1226 AC_SUBST([EGL_DRIVERS_DIRS])
1229 dnl GLU configuration
1231 AC_ARG_ENABLE([glu],
1232 [AS_HELP_STRING([--disable-glu],
1233 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1234 [enable_glu="$enableval"],
1237 if test "x$enable_glu" = xyes -a "x$mesa_driver" = xno; then
1238 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1242 if test "x$enable_glu" = xyes; then
1243 SRC_DIRS="$SRC_DIRS glu"
1245 case "$mesa_driver" in
1247 # Link libGLU to libOSMesa instead of libGL
1250 if test "$enable_static" = no; then
1251 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1257 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1259 GLU_PC_LIB_PRIV="-lm"
1260 if test "$enable_static" = no; then
1262 GLU_MESA_DEPS='-l$(GL_LIB)'
1266 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1271 if test "$enable_static" = no; then
1272 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1274 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1275 AC_SUBST([GLU_LIB_DEPS])
1276 AC_SUBST([GLU_MESA_DEPS])
1277 AC_SUBST([GLU_PC_REQ])
1278 AC_SUBST([GLU_PC_REQ_PRIV])
1279 AC_SUBST([GLU_PC_LIB_PRIV])
1280 AC_SUBST([GLU_PC_CFLAGS])
1283 dnl GLw configuration
1285 AC_ARG_ENABLE([glw],
1286 [AS_HELP_STRING([--disable-glw],
1287 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
1288 [enable_glw="$enableval"],
1290 dnl Don't build GLw on osmesa
1291 if test "x$enable_glw" = xyes; then
1292 case "$mesa_driver" in
1294 AC_MSG_NOTICE([Disabling GLw since there is no OpenGL driver])
1299 AC_ARG_ENABLE([motif],
1300 [AS_HELP_STRING([--enable-motif],
1301 [use Motif widgets in GLw @<:@default=disabled@:>@])],
1302 [enable_motif="$enableval"],
1305 if test "x$enable_glw" = xyes; then
1306 SRC_DIRS="$SRC_DIRS glw"
1307 if test "$x11_pkgconfig" = yes; then
1308 PKG_CHECK_MODULES([GLW],[x11 xt])
1309 GLW_PC_REQ_PRIV="x11 xt"
1310 GLW_LIB_DEPS="$GLW_LIBS"
1312 # should check these...
1313 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
1314 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1315 GLW_PC_CFLAGS="$X11_INCLUDES"
1318 GLW_SOURCES="GLwDrawA.c"
1320 if test "x$enable_motif" = xyes; then
1321 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1322 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1323 if test "x$MOTIF_CONFIG" != xno; then
1324 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1325 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1327 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1328 [AC_MSG_ERROR([Can't locate Motif headers])])
1329 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1330 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1332 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1333 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
1334 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1335 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
1338 # If static, empty GLW_LIB_DEPS and add libs for programs to link
1339 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
1340 if test "$enable_static" = no; then
1341 GLW_MESA_DEPS='-l$(GL_LIB)'
1342 GLW_LIB_DEPS="$GLW_LIB_DEPS"
1344 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1349 AC_SUBST([GLW_LIB_DEPS])
1350 AC_SUBST([GLW_MESA_DEPS])
1351 AC_SUBST([GLW_SOURCES])
1352 AC_SUBST([MOTIF_CFLAGS])
1353 AC_SUBST([GLW_PC_REQ_PRIV])
1354 AC_SUBST([GLW_PC_LIB_PRIV])
1355 AC_SUBST([GLW_PC_CFLAGS])
1358 dnl GLUT configuration
1360 if test -f "$srcdir/include/GL/glut.h"; then
1365 AC_ARG_ENABLE([glut],
1366 [AS_HELP_STRING([--disable-glut],
1367 [enable GLUT library @<:@default=enabled if source available@:>@])],
1368 [enable_glut="$enableval"],
1369 [enable_glut="$default_glut"])
1371 dnl Don't build glut on osmesa
1372 if test "x$enable_glut" = xyes; then
1373 case "$mesa_driver" in
1375 AC_MSG_NOTICE([Disabling glut since there is no OpenGL driver])
1380 dnl Can't build glut if GLU not available
1381 if test "x$enable_glu$enable_glut" = xnoyes; then
1382 AC_MSG_WARN([Disabling glut since GLU is disabled])
1386 if test "x$enable_glut" = xyes; then
1387 SRC_DIRS="$SRC_DIRS glut/glx"
1388 if test "$x11_pkgconfig" = yes; then
1389 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1390 GLUT_PC_REQ_PRIV="x11 xmu xi"
1391 GLUT_LIB_DEPS="$GLUT_LIBS"
1393 # should check these...
1394 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1395 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1396 GLUT_PC_CFLAGS="$X11_INCLUDES"
1398 if test "x$GCC" = xyes; then
1399 GLUT_CFLAGS="$GLUT_CFLAGS -fexceptions"
1401 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1402 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
1404 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1405 if test "$enable_static" = no; then
1406 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1408 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1413 AC_SUBST([GLUT_LIB_DEPS])
1414 AC_SUBST([GLUT_MESA_DEPS])
1415 AC_SUBST([GLUT_CFLAGS])
1416 AC_SUBST([GLUT_PC_REQ_PRIV])
1417 AC_SUBST([GLUT_PC_LIB_PRIV])
1418 AC_SUBST([GLUT_PC_CFLAGS])
1421 dnl Program library dependencies
1422 dnl Only libm is added here if necessary as the libraries should
1423 dnl be pulled in by the linker
1425 if test "x$APP_LIB_DEPS" = x; then
1428 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1431 APP_LIB_DEPS="-lX11"
1438 AC_SUBST([APP_LIB_DEPS])
1439 AC_SUBST([PROGRAM_DIRS])
1442 dnl Gallium configuration
1444 AC_ARG_ENABLE([gallium],
1445 [AS_HELP_STRING([--disable-gallium],
1446 [build gallium @<:@default=enabled@:>@])],
1447 [enable_gallium="$enableval"],
1448 [enable_gallium=yes])
1449 if test "x$enable_gallium" = xno -a "x$enable_openvg" = xyes; then
1450 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1452 if test "x$enable_gallium" = xyes; then
1453 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1454 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1457 AC_SUBST([LLVM_CFLAGS])
1458 AC_SUBST([LLVM_LIBS])
1459 AC_SUBST([LLVM_LDFLAGS])
1460 AC_SUBST([LLVM_VERSION])
1463 dnl Gallium state trackers configuration
1466 AC_ARG_ENABLE([gallium-egl],
1467 [AS_HELP_STRING([--enable-gallium-egl],
1468 [enable gallium EGL state tracker @<:@default=auto@:>@])],
1469 [enable_gallium_egl="$enableval"],
1470 [enable_gallium_egl=auto])
1471 if test "x$enable_gallium_egl" = xauto; then
1472 case "$mesa_driver" in
1474 enable_gallium_egl=$enable_egl
1477 enable_gallium_egl=$enable_openvg
1481 case "x$enable_egl$enable_gallium_egl" in
1483 AC_MSG_ERROR([cannot build Gallium EGL state tracker without EGL])
1486 AC_ARG_WITH([state-trackers],
1487 [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1488 [comma delimited state_trackers list, e.g.
1489 "egl,glx" @<:@default=auto@:>@])],
1490 [with_state_trackers="$withval"],
1491 [with_state_trackers=yes])
1493 case "$with_state_trackers" in
1495 GALLIUM_STATE_TRACKERS_DIRS=""
1498 # look at what else is built
1499 case "$mesa_driver" in
1501 GALLIUM_STATE_TRACKERS_DIRS=glx
1504 GALLIUM_STATE_TRACKERS_DIRS="dri"
1506 # Have only tested st/xorg on 1.6.0 servers
1507 PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6.0 libdrm >= $LIBDRM_XORG_REQUIRED libkms >= $LIBKMS_XORG_REQUIRED],
1508 HAVE_ST_XORG="yes"; GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg",
1513 if test "x$enable_egl" = xyes; then
1514 if test "$enable_openvg" = yes; then
1515 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vega"
1519 if test "$enable_gallium_egl" = yes; then
1520 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl"
1526 # verify the requested state tracker exist
1528 _state_trackers=`IFS=', '; echo $with_state_trackers`
1529 for tracker in $_state_trackers; do
1532 if test "x$mesa_driver" != xdri; then
1533 AC_MSG_ERROR([cannot build dri state tracker without mesa driver set to dri])
1538 if test "x$enable_egl" != xyes; then
1539 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1544 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1545 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1546 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1550 if test "x$enable_openvg" != xyes; then
1551 AC_MSG_ERROR([cannot build vega state tracker without --enable-openvg])
1557 if test "x$enable_gallium_g3dvl" != xyes; then
1558 AC_MSG_ERROR([cannot build XvMC state tracker without --enable-gallium-g3dvl])
1563 # Check for libvdpau?
1564 if test "x$enable_gallium_g3dvl" != xyes; then
1565 AC_MSG_ERROR([cannot build vdpau state tracker without --enable-gallium-g3dvl])
1571 if test "x$enable_gallium_g3dvl" != xyes; then
1572 AC_MSG_ERROR([cannot build va state tracker without --enable-gallium-g3dvl])
1578 if test -n "$tracker"; then
1579 test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1580 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1581 if test -n "$state_trackers"; then
1582 state_trackers="$state_trackers $tracker"
1584 state_trackers="$tracker"
1588 GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1590 # append --enable-openvg/--enable-gallium-egl to --with-state-trackers
1591 if test "x$have_st_vega" != xyes -a "x$enable_openvg" = xyes; then
1592 AC_MSG_ERROR([--with-state-trackers specified but vega is missing])
1594 if test "x$HAVE_ST_EGL" != xyes -a "x$enable_gallium_egl" = xyes; then
1595 AC_MSG_ERROR([--with-state-trackers specified but egl is missing])
1604 case "x$enable_opengl$enable_gles1$enable_gles2" in
1606 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1609 if test "x$enable_openvg" = xyes; then
1610 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1611 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1614 AC_SUBST([VG_LIB_DEPS])
1615 AC_SUBST([EGL_CLIENT_APIS])
1617 if test "x$HAVE_ST_EGL" = xyes; then
1618 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl"
1621 if test "x$HAVE_ST_XORG" = xyes; then
1622 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1623 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1624 HAVE_XEXTPROTO_71="no")
1627 AC_ARG_WITH([egl-platforms],
1628 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1629 [comma delimited native platforms libEGL supports, e.g.
1630 "x11,drm" @<:@default=auto@:>@])],
1631 [with_egl_platforms="$withval"],
1632 [with_egl_platforms=yes])
1633 AC_ARG_WITH([egl-displays],
1634 [AS_HELP_STRING([--with-egl-displays@<:@=DIRS...@:>@],
1635 [DEPRECATED. Use --with-egl-platforms instead])],
1636 [with_egl_platforms="$withval"])
1639 WAYLAND_EGL_LIB_DEPS=""
1641 case "$with_egl_platforms" in
1643 if test "x$enable_egl" = xyes && test "x$mesa_driver" != xosmesa; then
1645 if test "$mesa_driver" = dri; then
1646 EGL_PLATFORMS="$EGL_PLATFORMS drm"
1651 if test "x$enable_egl" != xyes; then
1652 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1654 # verify the requested driver directories exist
1655 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1656 for plat in $egl_platforms; do
1657 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1658 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1659 if test "$plat" = "fbdev"; then
1660 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1662 if test "$plat" = "wayland"; then
1663 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1664 [AC_MSG_ERROR([cannot find libwayland-client])])
1665 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1666 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1669 EGL_PLATFORMS="$egl_platforms"
1672 AC_SUBST([EGL_PLATFORMS])
1674 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1675 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1676 WAYLAND_EGL_PC_LIB_PRIV=
1677 WAYLAND_EGL_PC_CFLAGS=
1679 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1680 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1681 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1684 AC_ARG_WITH([egl-driver-dir],
1685 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1686 [directory for EGL drivers [[default=${libdir}/egl]]])],
1687 [EGL_DRIVER_INSTALL_DIR="$withval"],
1688 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1689 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1691 AC_ARG_WITH([xorg-driver-dir],
1692 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1693 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1694 [XORG_DRIVER_INSTALL_DIR="$withval"],
1695 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1696 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1698 AC_ARG_WITH([max-width],
1699 [AS_HELP_STRING([--with-max-width=N],
1700 [Maximum framebuffer width (4096)])],
1701 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1702 AS_IF([test "${withval}" -gt "4096"],
1703 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1705 AC_ARG_WITH([max-height],
1706 [AS_HELP_STRING([--with-max-height=N],
1707 [Maximum framebuffer height (4096)])],
1708 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1709 AS_IF([test "${withval}" -gt "4096"],
1710 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1716 AC_ARG_ENABLE([gallium-llvm],
1717 [AS_HELP_STRING([--enable-gallium-llvm],
1718 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1719 [enable_gallium_llvm="$enableval"],
1720 [enable_gallium_llvm=auto])
1721 if test "x$enable_gallium_llvm" = xauto; then
1723 i*86|x86_64) enable_gallium_llvm=yes;;
1726 if test "x$enable_gallium_llvm" = xyes; then
1727 if test "x$LLVM_CONFIG" != xno; then
1728 LLVM_VERSION=`$LLVM_CONFIG --version`
1729 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags`
1730 LLVM_LIBS="`$LLVM_CONFIG --libs` -lstdc++"
1732 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1733 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1734 DEFINES="$DEFINES -DGALLIUM_LLVMPIPE -D__STDC_CONSTANT_MACROS"
1744 dnl Gallium helper functions
1746 gallium_check_st() {
1747 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes || test "x$HAVE_ST_XVMC" = xyes || test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1748 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1750 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1751 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1753 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1754 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1756 if test "x$HAVE_ST_XVMC" = xyes && test "x$4" != x; then
1757 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1759 if test "x$HAVE_ST_VDPAU" = xyes && test "x$5" != x; then
1760 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1762 if test "x$HAVE_ST_VA" = xyes && test "x$6" != x; then
1763 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1769 dnl Gallium SVGA configuration
1771 AC_ARG_ENABLE([gallium-svga],
1772 [AS_HELP_STRING([--enable-gallium-svga],
1773 [build gallium SVGA @<:@default=disabled@:>@])],
1774 [enable_gallium_svga="$enableval"],
1775 [enable_gallium_svga=auto])
1776 if test "x$enable_gallium_svga" = xyes; then
1777 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
1778 gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
1779 elif test "x$enable_gallium_svga" = xauto; then
1780 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
1784 dnl Gallium i915 configuration
1786 AC_ARG_ENABLE([gallium-i915],
1787 [AS_HELP_STRING([--enable-gallium-i915],
1788 [build gallium i915 @<:@default=disabled@:>@])],
1789 [enable_gallium_i915="$enableval"],
1790 [enable_gallium_i915=auto])
1791 if test "x$enable_gallium_i915" = xyes; then
1792 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1793 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
1794 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1795 elif test "x$enable_gallium_i915" = xauto; then
1796 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1797 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
1801 dnl Gallium i965 configuration
1803 AC_ARG_ENABLE([gallium-i965],
1804 [AS_HELP_STRING([--enable-gallium-i965],
1805 [build gallium i965 @<:@default=disabled@:>@])],
1806 [enable_gallium_i965="$enableval"],
1807 [enable_gallium_i965=auto])
1808 if test "x$enable_gallium_i965" = xyes; then
1809 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
1810 gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1811 elif test "x$enable_gallium_i965" = xauto; then
1812 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
1816 dnl Gallium Radeon r300g configuration
1818 AC_ARG_ENABLE([gallium-r300],
1819 [AS_HELP_STRING([--enable-gallium-r300],
1820 [build gallium r300 @<:@default=build DRI driver only@:>@])],
1821 [enable_gallium_r300="$enableval"],
1822 [enable_gallium_r300=auto])
1824 if test "$mesa_driver" != dri ; then
1825 if test "x$enable_gallium_r300" = xauto; then
1826 enable_gallium_r300=no
1830 if test "x$enable_gallium_r300" != xno; then
1831 if test "x$MESA_LLVM" = x0; then
1833 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build Gallium R300 on x86 and x86_64]);;
1837 if test "x$enable_gallium_r300" = xauto; then
1838 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1839 gallium_check_st "radeon/drm" "dri-r300"
1840 elif test "x$enable_gallium_r300" = xyes; then
1841 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1842 gallium_check_st "radeon/drm" "dri-r300" "xorg-radeon"
1846 dnl Gallium Radeon r600g configuration
1848 AC_ARG_ENABLE([gallium-r600],
1849 [AS_HELP_STRING([--enable-gallium-r600],
1850 [build gallium r600 @<:@default=disabled@:>@])],
1851 [enable_gallium_r600="$enableval"],
1852 [enable_gallium_r600=auto])
1853 if test "x$enable_gallium_r600" = xyes; then
1854 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1855 gallium_check_st "r600/drm" "dri-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1859 dnl Gallium Nouveau configuration
1861 AC_ARG_ENABLE([gallium-nouveau],
1862 [AS_HELP_STRING([--enable-gallium-nouveau],
1863 [build gallium nouveau @<:@default=disabled@:>@])],
1864 [enable_gallium_nouveau="$enableval"],
1865 [enable_gallium_nouveau=no])
1866 if test "x$enable_gallium_nouveau" = xyes; then
1867 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1868 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "xvmc-nouveau"
1872 dnl Gallium G3DVL configuration
1874 AC_ARG_ENABLE([gallium-g3dvl],
1875 [AS_HELP_STRING([--enable-gallium-g3dvl],
1876 [build gallium g3dvl @<:@default=disabled@:>@])],
1877 [enable_gallium_g3dvl="$enableval"],
1878 [enable_gallium_g3dvl=no])
1879 if test "x$enable_gallium_g3dvl" = xyes; then
1880 case "$mesa_driver" in
1882 if test "x$HAVE_ST_VDPAU" = xyes; then
1883 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1885 if test "x$HAVE_ST_XVMC" = xyes; then
1886 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1888 if test "x$HAVE_ST_VA" = xyes; then
1889 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1893 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1897 dnl Directory for VDPAU libs
1898 AC_ARG_WITH([vdpau-libdir],
1899 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1900 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1901 [VDPAU_LIB_INSTALL_DIR="$withval"],
1902 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1903 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1905 dnl Directory for VA libs
1906 AC_ARG_WITH([va-libdir],
1907 [AS_HELP_STRING([--with-va-libdir=DIR],
1908 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1909 [VA_LIB_INSTALL_DIR="$withval"],
1910 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1911 AC_SUBST([VA_LIB_INSTALL_DIR])
1914 dnl Gallium swrast configuration
1916 AC_ARG_ENABLE([gallium-swrast],
1917 [AS_HELP_STRING([--enable-gallium-swrast],
1918 [build gallium swrast @<:@default=auto@:>@])],
1919 [enable_gallium_swrast="$enableval"],
1920 [enable_gallium_swrast=auto])
1921 if test "x$enable_gallium_swrast" = xyes || test "x$enable_gallium_swrast" = xauto; then
1922 if test "x$HAVE_ST_DRI" = xyes; then
1923 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1927 dnl prepend CORE_DIRS to SRC_DIRS
1928 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1930 dnl Restore LDFLAGS and CPPFLAGS
1931 LDFLAGS="$_SAVE_LDFLAGS"
1932 CPPFLAGS="$_SAVE_CPPFLAGS"
1934 dnl Substitute the config
1935 AC_CONFIG_FILES([configs/autoconf])
1937 dnl Replace the configs/current symlink
1938 AC_CONFIG_COMMANDS([configs],[
1939 if test -f configs/current || test -L configs/current; then
1940 rm -f configs/current
1942 ln -s autoconf configs/current
1948 dnl Output some configuration info for the user
1951 echo " prefix: $prefix"
1952 echo " exec_prefix: $exec_prefix"
1953 echo " libdir: $libdir"
1954 echo " includedir: $includedir"
1958 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1959 echo " OpenVG: $enable_openvg"
1963 echo " Driver: $mesa_driver"
1964 if test "$mesa_driver" != no; then
1965 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1966 echo " OSMesa: lib$OSMESA_LIB"
1970 if test "$mesa_driver" = dri; then
1971 # cleanup the drivers var
1972 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1973 if test "x$DRI_DIRS" = x; then
1974 echo " DRI drivers: no"
1976 echo " DRI drivers: $dri_dirs"
1978 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1979 echo " Use XCB: $enable_xcb"
1980 echo " Shared dricore: $enable_dricore"
1984 echo " GLU: $enable_glu"
1985 echo " GLw: $enable_glw (Motif: $enable_motif)"
1986 echo " glut: $enable_glut"
1990 echo " EGL: $enable_egl"
1991 if test "$enable_egl" = yes; then
1992 echo " EGL platforms: $EGL_PLATFORMS"
1995 for d in $EGL_DRIVERS_DIRS; do
1996 egl_drivers="$egl_drivers builtin:egl_$d"
1999 if test "$enable_gallium" = yes -a "$HAVE_ST_EGL" = yes; then
2000 echo " EGL drivers: ${egl_drivers} egl_gallium"
2001 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2003 echo " EGL drivers: $egl_drivers"
2008 if test "x$MESA_LLVM" = x1; then
2010 echo " llvm-config: $LLVM_CONFIG"
2011 echo " llvm-version: $LLVM_VERSION"
2017 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2018 echo " Gallium: yes"
2019 echo " Gallium dirs: $GALLIUM_DIRS"
2020 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2021 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2022 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2023 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2030 echo " Shared libs: $enable_shared"
2031 echo " Static libs: $enable_static"
2033 dnl Compiler options
2034 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2035 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2036 $SED 's/^ *//;s/ */ /;s/ *$//'`
2037 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2038 $SED 's/^ *//;s/ */ /;s/ *$//'`
2039 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2041 echo " CFLAGS: $cflags"
2042 echo " CXXFLAGS: $cxxflags"
2043 echo " Macros: $defines"
2045 echo " PYTHON2: $PYTHON2"
2048 echo " Run '${MAKE-make}' to build Mesa"