1 dnl Process this file with autoconf to create configure.
5 dnl Versioning - scrape the version from configs/default
6 m4_define([mesa_version],
7 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
8 m4_ifval(mesa_version,,
9 [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
11 dnl Tell the user about autoconf.html in the --help output
12 m4_divert_once([HELP_END], [
13 See docs/autoconf.html for more details on the options for Mesa.])
15 AC_INIT([Mesa],[mesa_version],
16 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17 AC_CONFIG_AUX_DIR([bin])
20 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
22 USER_CXXFLAGS="$CXXFLAGS"
24 dnl Versions for external dependencies
25 LIBDRM_REQUIRED=2.4.24
26 LIBDRM_RADEON_REQUIRED=2.4.24
27 LIBDRM_INTEL_REQUIRED=2.4.24
28 LIBDRM_NOUVEAU_REQUIRED=0.6
29 DRI2PROTO_REQUIRED=2.1
30 GLPROTO_REQUIRED=1.4.11
31 LIBDRM_XORG_REQUIRED=2.4.24
32 LIBKMS_XORG_REQUIRED=1.0.0
38 AC_CHECK_PROGS([MAKE], [gmake make])
39 AC_CHECK_PROGS([PYTHON2], [python2 python])
40 AC_PATH_PROG([MKDEP], [makedepend])
41 AC_PATH_PROG([SED], [sed])
43 if test "x$MKDEP" = "x"; then
44 AC_MSG_ERROR([makedepend is required to build Mesa])
47 AC_PATH_PROG([FLEX], [flex])
48 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
50 AC_PATH_PROG([BISON], [bison])
51 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
53 dnl Our fallback install-sh is a symlink to minstall. Use the existing
54 dnl configuration in that case.
56 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
58 dnl We need a POSIX shell for parts of the build. Assume we have one
62 # Solaris /bin/sh is too old/non-POSIX compliant
63 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
68 dnl clang is mostly GCC-compatible, but its version is much lower,
69 dnl so we have to check for it.
70 AC_MSG_CHECKING([if compiling with clang])
73 [AC_LANG_PROGRAM([], [[
78 [CLANG=yes], [CLANG=no])
80 AC_MSG_RESULT([$CLANG])
82 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
83 dnl versions are explictly not supported.
84 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
85 AC_MSG_CHECKING([whether gcc version is sufficient])
89 GCC_VERSION=`$CC -dumpversion`
90 if test $? -eq 0; then
91 major=`echo $GCC_VERSION | cut -d. -f1`
92 minor=`echo $GCC_VERSION | cut -d. -f2`
95 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
97 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
104 MKDEP_OPTIONS=-fdepend
105 dnl Ask gcc where it's keeping its secret headers
106 if test "x$GCC" = xyes; then
107 for dir in include include-fixed; do
108 GCC_INCLUDES=`$CC -print-file-name=$dir`
109 if test "x$GCC_INCLUDES" != x && \
110 test "$GCC_INCLUDES" != "$dir" && \
111 test -d "$GCC_INCLUDES"; then
112 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
116 AC_SUBST([MKDEP_OPTIONS])
118 dnl Make sure the pkg-config macros are defined
119 m4_ifndef([PKG_PROG_PKG_CONFIG],
120 [m4_fatal([Could not locate the pkg-config autoconf macros.
121 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
122 are in a different location, try setting the environment variable
123 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
124 PKG_PROG_PKG_CONFIG()
126 dnl LIB_DIR - library basename
127 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
130 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
131 _SAVE_LDFLAGS="$LDFLAGS"
132 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
133 AC_SUBST([EXTRA_LIB_PATH])
135 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
136 _SAVE_CPPFLAGS="$CPPFLAGS"
137 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
138 AC_SUBST([X11_INCLUDES])
145 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
148 DEFINES="$DEFINES -DPTHREADS -DSVR4"
151 DEFINES="$DEFINES -DPTHREADS"
155 dnl Add flags for gcc and g++
156 if test "x$GCC" = xyes; then
157 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
158 if test "x$CLANG" = "xno"; then
159 CFLAGS="$CFLAGS -ffast-math"
162 # Enable -fvisibility=hidden if using a gcc that supports it
163 save_CFLAGS="$CFLAGS"
164 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
165 VISIBILITY_CFLAGS="-fvisibility=hidden"
166 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
167 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
168 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
170 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
173 # Work around aliasing bugs - developers should comment this out
174 CFLAGS="$CFLAGS -fno-strict-aliasing"
176 if test "x$GXX" = xyes; then
177 CXXFLAGS="$CXXFLAGS -Wall"
179 # Enable -fvisibility=hidden if using a gcc that supports it
180 save_CXXFLAGS="$CXXFLAGS"
181 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
182 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
183 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
184 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
185 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
187 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
188 CXXFLAGS=$save_CXXFLAGS
190 # Work around aliasing bugs - developers should comment this out
191 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
194 AC_SUBST([VISIBILITY_CFLAGS])
195 AC_SUBST([VISIBILITY_CXXFLAGS])
197 dnl These should be unnecessary, but let the user set them if they want
198 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
199 Default is to use CFLAGS.])
200 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
201 compiler. Default is to use CFLAGS.])
202 AC_SUBST([OPT_FLAGS])
203 AC_SUBST([ARCH_FLAGS])
206 dnl Hacks to enable 32 or 64 bit build
208 AC_ARG_ENABLE([32-bit],
209 [AS_HELP_STRING([--enable-32-bit],
210 [build 32-bit libraries @<:@default=auto@:>@])],
211 [enable_32bit="$enableval"],
214 if test "x$enable_32bit" = xyes; then
215 if test "x$GCC" = xyes; then
216 CFLAGS="$CFLAGS -m32"
217 ARCH_FLAGS="$ARCH_FLAGS -m32"
219 if test "x$GXX" = xyes; then
220 CXXFLAGS="$CXXFLAGS -m32"
223 AC_ARG_ENABLE([64-bit],
224 [AS_HELP_STRING([--enable-64-bit],
225 [build 64-bit libraries @<:@default=auto@:>@])],
226 [enable_64bit="$enableval"],
229 if test "x$enable_64bit" = xyes; then
230 if test "x$GCC" = xyes; then
231 CFLAGS="$CFLAGS -m64"
233 if test "x$GXX" = xyes; then
234 CXXFLAGS="$CXXFLAGS -m64"
239 dnl shared/static libraries, mimic libtool options
241 AC_ARG_ENABLE([static],
242 [AS_HELP_STRING([--enable-static],
243 [build static libraries @<:@default=disabled@:>@])],
244 [enable_static="$enableval"],
247 case "x$enable_static" in
249 x ) enable_static=no ;;
251 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
254 AC_ARG_ENABLE([shared],
255 [AS_HELP_STRING([--disable-shared],
256 [build shared libraries @<:@default=enabled@:>@])],
257 [enable_shared="$enableval"],
260 case "x$enable_shared" in
262 x ) enable_shared=yes ;;
264 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
268 dnl Can't have static and shared libraries, default to static if user
269 dnl explicitly requested. If both disabled, set to static since shared
270 dnl was explicitly requirested.
271 case "x$enable_static$enable_shared" in
273 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
277 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
285 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
286 if test "$enable_static" = yes; then
287 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
289 AC_SUBST([MKLIB_OPTIONS])
292 dnl other compiler options
294 AC_ARG_ENABLE([debug],
295 [AS_HELP_STRING([--enable-debug],
296 [use debug compiler flags and macros @<:@default=disabled@:>@])],
297 [enable_debug="$enableval"],
300 if test "x$enable_debug" = xyes; then
301 DEFINES="$DEFINES -DDEBUG"
302 if test "x$GCC" = xyes; then
305 if test "x$GXX" = xyes; then
306 CXXFLAGS="$CXXFLAGS -g"
313 LIB_PREFIX_GLOB='lib'
314 LIB_VERSION_SEPARATOR='.'
315 if test "$enable_static" = yes; then
320 LIB_EXTENSION='dylib' ;;
322 dnl prefix can be 'cyg' or 'lib'
323 LIB_PREFIX_GLOB='???'
324 LIB_VERSION_SEPARATOR='-'
325 LIB_EXTENSION='dll' ;;
329 LIB_EXTENSION='so' ;;
334 dnl potentially-infringing-but-nobody-knows-for-sure stuff
336 AC_ARG_ENABLE([texture-float],
337 [AS_HELP_STRING([--enable-texture-float],
338 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
339 [enable_texture_float="$enableval"],
340 [enable_texture_float=no]
342 if test "x$enable_texture_float" = xyes; then
343 AC_MSG_WARN([Floating-point textures enabled.])
344 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
345 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
348 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
349 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
350 GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
351 GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
352 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
353 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
354 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
355 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
356 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
357 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
358 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
359 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
361 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
362 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
363 GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
364 GLW_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLW_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
365 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
366 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
367 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
368 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
369 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
370 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
371 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
372 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
373 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
375 AC_SUBST([GL_LIB_NAME])
376 AC_SUBST([GLU_LIB_NAME])
377 AC_SUBST([GLUT_LIB_NAME])
378 AC_SUBST([GLW_LIB_NAME])
379 AC_SUBST([OSMESA_LIB_NAME])
380 AC_SUBST([EGL_LIB_NAME])
381 AC_SUBST([GLESv1_CM_LIB_NAME])
382 AC_SUBST([GLESv2_LIB_NAME])
383 AC_SUBST([VG_LIB_NAME])
384 AC_SUBST([GLAPI_LIB_NAME])
385 AC_SUBST([WAYLAND_EGL_LIB_NAME])
386 AC_SUBST([GBM_LIB_NAME])
388 AC_SUBST([GL_LIB_GLOB])
389 AC_SUBST([GLU_LIB_GLOB])
390 AC_SUBST([GLUT_LIB_GLOB])
391 AC_SUBST([GLW_LIB_GLOB])
392 AC_SUBST([OSMESA_LIB_GLOB])
393 AC_SUBST([EGL_LIB_GLOB])
394 AC_SUBST([GLESv1_CM_LIB_GLOB])
395 AC_SUBST([GLESv2_LIB_GLOB])
396 AC_SUBST([VG_LIB_GLOB])
397 AC_SUBST([GLAPI_LIB_GLOB])
398 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
399 AC_SUBST([GBM_LIB_GLOB])
402 dnl Arch/platform-specific settings
405 [AS_HELP_STRING([--disable-asm],
406 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
407 [enable_asm="$enableval"],
414 AC_MSG_CHECKING([whether to enable assembly])
415 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
416 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
417 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
421 AC_MSG_RESULT([no, cross compiling])
425 # check for supported arches
426 if test "x$enable_asm" = xyes; then
430 linux* | *freebsd* | dragonfly* | *netbsd*)
431 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
437 linux* | *freebsd* | dragonfly* | *netbsd*)
438 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
460 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
461 MESA_ASM_SOURCES='$(X86_SOURCES)'
462 GLAPI_ASM_SOURCES='$(X86_API)'
463 AC_MSG_RESULT([yes, x86])
466 ASM_FLAGS="-DUSE_X86_64_ASM"
467 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
468 GLAPI_ASM_SOURCES='$(X86-64_API)'
469 AC_MSG_RESULT([yes, x86_64])
472 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
473 MESA_ASM_SOURCES='$(PPC_SOURCES)'
474 AC_MSG_RESULT([yes, ppc])
477 ASM_FLAGS="-DUSE_SPARC_ASM"
478 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
479 GLAPI_ASM_SOURCES='$(SPARC_API)'
480 AC_MSG_RESULT([yes, sparc])
483 AC_MSG_RESULT([no, platform not supported])
487 AC_SUBST([ASM_FLAGS])
488 AC_SUBST([MESA_ASM_SOURCES])
489 AC_SUBST([GLAPI_ASM_SOURCES])
494 dnl Check to see if dlopen is in default libraries (like Solaris, which
495 dnl has it in libc), or if libdl is needed to get it.
496 AC_CHECK_FUNC([dlopen], [],
497 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
498 AC_SUBST([DLOPEN_LIBS])
500 dnl See if posix_memalign is available
501 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
503 dnl SELinux awareness.
504 AC_ARG_ENABLE([selinux],
505 [AS_HELP_STRING([--enable-selinux],
506 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
507 [MESA_SELINUX="$enableval"],
509 if test "x$enable_selinux" = "xyes"; then
510 AC_CHECK_HEADER([selinux/selinux.h],[],
511 [AC_MSG_ERROR([SELinux headers not found])])
512 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
513 [AC_MSG_ERROR([SELinux library not found])])
514 SELINUX_LIBS="-lselinux"
515 DEFINES="$DEFINES -DMESA_SELINUX"
519 AC_ARG_ENABLE([opengl],
520 [AS_HELP_STRING([--disable-opengl],
521 [disable support for standard OpenGL API @<:@default=no@:>@])],
522 [enable_opengl="$enableval"],
524 AC_ARG_ENABLE([gles1],
525 [AS_HELP_STRING([--enable-gles1],
526 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
527 [enable_gles1="$enableval"],
529 AC_ARG_ENABLE([gles2],
530 [AS_HELP_STRING([--enable-gles2],
531 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
532 [enable_gles2="$enableval"],
534 AC_ARG_ENABLE([openvg],
535 [AS_HELP_STRING([--enable-openvg],
536 [enable support for OpenVG API @<:@default=no@:>@])],
537 [enable_openvg="$enableval"],
539 AC_ARG_ENABLE([xorg],
540 [AS_HELP_STRING([--enable-xorg],
541 [enable support for X.Org DDX API @<:@default=no@:>@])],
542 [enable_xorg="$enableval"],
544 AC_ARG_ENABLE([d3d1x],
545 [AS_HELP_STRING([--enable-d3d1x],
546 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
547 [enable_d3d1x="$enableval"],
550 [AS_HELP_STRING([--disable-egl],
551 [disable EGL library @<:@default=enabled@:>@])],
552 [enable_egl="$enableval"],
555 [AS_HELP_STRING([--enable-gbm],
556 [enable gbm library @<:@default=auto@:>@])],
557 [enable_gbm="$enableval"],
559 AC_ARG_ENABLE([gallium_egl],
560 [AS_HELP_STRING([--enable-gallium-egl],
561 [enable optional EGL state tracker (not required
562 for EGL support in Gallium with OpenGL and OpenGL ES)
563 @<:@default=disable@:>@])],
564 [enable_gallium_egl="$enableval"],
565 [enable_gallium_egl=no])
566 AC_ARG_ENABLE([gallium_gbm],
567 [AS_HELP_STRING([--enable-gallium-gbm],
568 [enable optional gbm state tracker (not required for
569 gbm support in Gallium)
570 @<:@default=auto@:>@])],
571 [enable_gallium_gbm="$enableval"],
572 [enable_gallium_gbm=auto])
574 # Option for Gallium drivers
575 GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
577 AC_ARG_WITH([gallium-drivers],
578 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
579 [comma delimited Gallium drivers list, e.g.
580 "i915,i965,nouveau,r300,r600,svga,swrast"
581 @<:@default=r300,r600,swrast@:>@])],
582 [with_gallium_drivers="$withval"],
583 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
585 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
586 # here so that the script doesn't choke on an unknown driver name later.
587 case "$with_gallium_drivers" in
588 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
589 no) with_gallium_drivers='' ;;
592 if test "x$enable_opengl" = xno -a \
593 "x$enable_gles1" = xno -a \
594 "x$enable_gles2" = xno -a \
595 "x$enable_openvg" = xno -a \
596 "x$enable_xorg" = xno -a \
597 "x$enable_d3d1x" = xno; then
598 AC_MSG_ERROR([at least one API should be enabled])
602 if test "x$enable_opengl" = xno; then
603 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
605 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
607 if test "x$enable_gles1" = xyes; then
608 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
610 if test "x$enable_gles2" = xyes; then
611 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
613 AC_SUBST([API_DEFINES])
615 AC_ARG_ENABLE([shared-glapi],
616 [AS_HELP_STRING([--enable-shared-glapi],
617 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
618 [enable_shared_glapi="$enableval"],
619 [enable_shared_glapi=no])
622 if test "x$enable_shared_glapi" = xyes; then
625 AC_SUBST([SHARED_GLAPI])
628 dnl Driver configuration. Options are xlib, dri and osmesa right now.
629 dnl More later: fbdev, ...
631 default_driver="xlib"
636 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
639 *freebsd* | dragonfly* | *netbsd*)
641 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
646 if test "x$enable_opengl" = xno; then
650 AC_ARG_WITH([driver],
651 [AS_HELP_STRING([--with-driver=DRIVER],
652 [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
653 [mesa_driver="$withval"],
654 [mesa_driver="$default_driver"])
655 dnl Check for valid option
656 case "x$mesa_driver" in
658 if test "x$enable_opengl" = xno; then
659 AC_MSG_ERROR([Driver '$mesa_driver' requires OpenGL enabled])
665 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
670 dnl Driver specific build directories
673 dnl this variable will be prepended to SRC_DIRS and is not exported
678 GALLIUM_DIRS="auxiliary drivers state_trackers"
679 GALLIUM_TARGET_DIRS=""
680 GALLIUM_WINSYS_DIRS="sw"
681 GALLIUM_DRIVERS_DIRS="softpipe failover galahad trace rbug noop identity"
682 GALLIUM_STATE_TRACKERS_DIRS=""
684 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
685 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
687 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
691 # build glapi if OpenGL is enabled
692 if test "x$enable_opengl" = xyes; then
693 CORE_DIRS="$CORE_DIRS mapi/glapi"
696 # build es1api if OpenGL ES 1.x is enabled
697 if test "x$enable_gles1" = xyes; then
698 CORE_DIRS="$CORE_DIRS mapi/es1api"
701 # build es2api if OpenGL ES 2.x is enabled
702 if test "x$enable_gles2" = xyes; then
703 CORE_DIRS="$CORE_DIRS mapi/es2api"
706 # build glsl and mesa if OpenGL or OpenGL ES is enabled
707 case "x$enable_opengl$enable_gles1$enable_gles2" in
709 CORE_DIRS="$CORE_DIRS glsl mesa"
713 case "$mesa_driver" in
716 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
717 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
718 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
721 SRC_DIRS="$SRC_DIRS glx"
723 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib sw/dri"
724 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
736 AC_SUBST([DRIVER_DIRS])
737 AC_SUBST([GALLIUM_DIRS])
738 AC_SUBST([GALLIUM_TARGET_DIRS])
739 AC_SUBST([GALLIUM_WINSYS_DIRS])
740 AC_SUBST([GALLIUM_DRIVERS_DIRS])
741 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
742 AC_SUBST([MESA_LLVM])
745 dnl Find out if X is available. The variable have_x is set if libX11 is
746 dnl found to mimic AC_PATH_XTRA.
748 if test -n "$PKG_CONFIG"; then
749 AC_MSG_CHECKING([pkg-config files for X11 are available])
750 PKG_CHECK_EXISTS([x11],[
756 AC_MSG_RESULT([$x11_pkgconfig])
760 dnl Use the autoconf macro if no pkg-config files
761 if test "$x11_pkgconfig" = yes; then
762 PKG_CHECK_MODULES([X11], [x11])
765 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
766 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
767 AC_SUBST([X11_CFLAGS])
771 dnl Try to tell the user that the --x-* options are only used when
772 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
773 m4_divert_once([HELP_BEGIN],
774 [These options are only used when the X libraries cannot be found by the
775 pkg-config utility.])
777 dnl We need X for xlib and dri, so bomb now if it's not found
778 case "$mesa_driver" in
780 if test "$no_x" = yes; then
781 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
786 dnl XCB - this is only used for GLX right now
788 [AS_HELP_STRING([--enable-xcb],
789 [use XCB for GLX @<:@default=disabled@:>@])],
790 [enable_xcb="$enableval"],
792 if test "x$enable_xcb" = xyes; then
793 DEFINES="$DEFINES -DUSE_XCB"
798 dnl Direct rendering or just indirect rendering
801 dnl Disable by default on GNU/Hurd
802 driglx_direct_default="no"
805 dnl Disable by default on cygwin
806 driglx_direct_default="no"
809 driglx_direct_default="yes"
812 AC_ARG_ENABLE([driglx-direct],
813 [AS_HELP_STRING([--disable-driglx-direct],
814 [enable direct rendering in GLX and EGL for DRI \
815 @<:@default=auto@:>@])],
816 [driglx_direct="$enableval"],
817 [driglx_direct="$driglx_direct_default"])
820 dnl libGL configuration per driver
822 case "$mesa_driver" in
824 if test "$x11_pkgconfig" = yes; then
825 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
826 GL_PC_REQ_PRIV="x11 xext"
827 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
828 GL_LIB_DEPS="$XLIBGL_LIBS"
830 # should check these...
831 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
832 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
833 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
834 GL_PC_CFLAGS="$X11_INCLUDES"
836 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
837 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
839 # if static, move the external libraries to the programs
840 # and empty the libraries for libGL
841 if test "$enable_static" = yes; then
842 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
846 dri|no) # these checks are still desired when there is no mesa_driver
847 # DRI must be shared, I think
848 if test "$enable_static" = yes; then
849 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
852 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
853 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
856 if test x"$driglx_direct" = xyes; then
858 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
859 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
860 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
861 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
864 # find the DRI deps for libGL
865 if test "$x11_pkgconfig" = yes; then
866 dri_modules="x11 xext xdamage xfixes"
868 # add xf86vidmode if available
869 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
870 if test "$HAVE_XF86VIDMODE" = yes ; then
871 dri_modules="$dri_modules xxf86vm"
874 # add xcb modules if necessary
875 if test "$enable_xcb" = yes; then
876 dri_modules="$dri_modules x11-xcb xcb-glx"
879 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
880 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
881 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
882 GL_LIB_DEPS="$DRIGL_LIBS"
884 # should check these...
885 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
886 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
887 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
888 GL_PC_CFLAGS="$X11_INCLUDES"
890 # XCB can only be used from pkg-config
891 if test "$enable_xcb" = yes; then
892 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
893 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
894 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
895 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
899 # need DRM libs, -lpthread, etc.
900 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
901 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
902 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
903 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
904 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
905 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
908 # No libGL for osmesa
912 AC_SUBST([GL_LIB_DEPS])
913 AC_SUBST([GL_PC_REQ_PRIV])
914 AC_SUBST([GL_PC_LIB_PRIV])
915 AC_SUBST([GL_PC_CFLAGS])
916 AC_SUBST([DRI_PC_REQ_PRIV])
917 AC_SUBST([GLESv1_CM_LIB_DEPS])
918 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
919 AC_SUBST([GLESv2_LIB_DEPS])
920 AC_SUBST([GLESv2_PC_LIB_PRIV])
922 GLAPI_LIB_DEPS="-lpthread"
923 AC_SUBST([GLAPI_LIB_DEPS])
926 dnl Setup default DRI CFLAGS
927 DRI_CFLAGS='$(CFLAGS)'
928 DRI_CXXFLAGS='$(CXXFLAGS)'
929 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
930 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
932 AC_ARG_ENABLE([shared-dricore],
933 [AS_HELP_STRING([--enable-shared-dricore],
934 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
935 [enable_dricore="$enableval"],
937 if test "$mesa_driver" = dri ; then
938 if test "$enable_dricore" = yes ; then
939 if test "$GCC$GXX" != yesyes ; then
940 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
943 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
944 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
945 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
946 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
947 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
948 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
949 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
953 AC_SUBST([DRICORE_LIBS])
954 AC_SUBST([DRICORE_GLSL_LIBS])
955 AC_SUBST([DRICORE_LIB_DEPS])
956 AC_SUBST([DRI_CXXFLAGS])
957 AC_SUBST([DRI_CFLAGS])
958 AC_SUBST([MESA_MODULES])
960 AC_SUBST([HAVE_XF86VIDMODE])
965 if test "$mesa_driver" = xlib; then
966 DEFINES="$DEFINES -DUSE_XSHM"
973 AC_ARG_ENABLE([glx-tls],
974 [AS_HELP_STRING([--enable-glx-tls],
975 [enable TLS support in GLX @<:@default=disabled@:>@])],
976 [GLX_USE_TLS="$enableval"],
978 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
980 AS_IF([test "x$GLX_USE_TLS" = xyes],
981 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
986 dnl Directory for DRI drivers
987 AC_ARG_WITH([dri-driverdir],
988 [AS_HELP_STRING([--with-dri-driverdir=DIR],
989 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
990 [DRI_DRIVER_INSTALL_DIR="$withval"],
991 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
992 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
993 dnl Extra search path for DRI drivers
994 AC_ARG_WITH([dri-searchpath],
995 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
996 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
997 [DRI_DRIVER_SEARCH_DIR="$withval"],
998 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
999 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1000 dnl Which drivers to build - default is chosen by platform
1001 AC_ARG_WITH([dri-drivers],
1002 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1003 [comma delimited DRI drivers list, e.g.
1004 "swrast,i965,radeon" @<:@default=auto@:>@])],
1005 [with_dri_drivers="$withval"],
1006 [with_dri_drivers=yes])
1007 if test "x$with_dri_drivers" = x; then
1011 dnl If $with_dri_drivers is yes, directories will be added through
1014 case "$with_dri_drivers" in
1020 # verify the requested driver directories exist
1021 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1022 for driver in $dri_drivers; do
1023 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1024 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1026 DRI_DIRS="$dri_drivers"
1030 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1031 if test "$mesa_driver" = dri -o "$mesa_driver" = no; then
1032 # Platform specific settings and drivers to build
1035 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1036 if test "x$driglx_direct" = xyes; then
1037 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1039 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
1043 # sis is missing because they have not be converted to use
1044 # the new interface. i810 are missing because there is no
1045 # x86-64 system where they could *ever* be used.
1046 if test "x$DRI_DIRS" = "xyes"; then
1047 DRI_DIRS="i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1048 radeon savage tdfx unichrome swrast"
1052 # Build only the drivers for cards that exist on PowerPC.
1053 # At some point MGA will be added, but not yet.
1054 if test "x$DRI_DIRS" = "xyes"; then
1055 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
1059 # Build only the drivers for cards that exist on sparc`
1060 if test "x$DRI_DIRS" = "xyes"; then
1061 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
1066 freebsd* | dragonfly* | *netbsd*)
1067 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1068 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1069 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1070 if test "x$driglx_direct" = xyes; then
1071 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1074 if test "x$DRI_DIRS" = "xyes"; then
1075 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1076 radeon tdfx unichrome savage sis swrast"
1080 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1081 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
1084 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1085 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1086 if test "x$driglx_direct" = xyes; then
1087 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1091 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1092 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1093 if test "x$driglx_direct" = xyes; then
1094 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1096 if test "x$DRI_DIRS" = "xyes"; then
1103 if test "x$DRI_DIRS" = "xyes"; then
1104 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \
1105 savage sis tdfx unichrome swrast"
1108 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1111 if test "$mesa_driver" = dri; then
1114 AC_ARG_WITH([expat],
1115 [AS_HELP_STRING([--with-expat=DIR],
1116 [expat install directory])],[
1117 EXPAT_INCLUDES="-I$withval/include"
1118 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1119 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1120 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1122 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1123 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1124 [AC_MSG_ERROR([Expat required for DRI.])])
1127 # put all the necessary libs together, including possibly libdricore
1128 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1130 AC_SUBST([DRI_DIRS])
1131 AC_SUBST([EXPAT_INCLUDES])
1132 AC_SUBST([DRI_LIB_DEPS])
1136 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1142 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1147 *radeon*|*r200*|*r300*|*r600*)
1148 PKG_CHECK_MODULES([LIBDRM_RADEON],
1149 [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED],
1150 HAVE_LIBDRM_RADEON=yes,
1151 HAVE_LIBDRM_RADEON=no)
1153 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
1154 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
1155 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
1159 AC_SUBST([RADEON_CFLAGS])
1160 AC_SUBST([RADEON_LDFLAGS])
1164 dnl OSMesa configuration
1166 if test "$mesa_driver" = xlib; then
1167 default_gl_osmesa=yes
1169 default_gl_osmesa=no
1171 AC_ARG_ENABLE([gl-osmesa],
1172 [AS_HELP_STRING([--enable-gl-osmesa],
1173 [enable OSMesa with libGL @<:@default=enabled for xlib driver@:>@])],
1174 [gl_osmesa="$enableval"],
1175 [gl_osmesa="$default_gl_osmesa"])
1176 if test "x$gl_osmesa" = xyes; then
1177 if test "x$enable_opengl" = xno; then
1178 AC_MSG_ERROR([OpenGL is not available for OSMesa driver])
1180 if test "$mesa_driver" = osmesa; then
1181 AC_MSG_ERROR([libGL is not available for OSMesa driver])
1183 DRIVER_DIRS="$DRIVER_DIRS osmesa"
1187 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1188 AC_ARG_WITH([osmesa-bits],
1189 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1190 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1191 [osmesa_bits="$withval"],
1193 if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
1194 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
1197 case "x$osmesa_bits" in
1202 OSMESA_LIB="OSMesa$osmesa_bits"
1203 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1206 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1209 AC_SUBST([OSMESA_LIB])
1211 case "$DRIVER_DIRS" in
1213 # only link libraries with osmesa if shared
1214 if test "$enable_static" = no; then
1215 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1220 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1223 AC_SUBST([OSMESA_LIB_DEPS])
1224 AC_SUBST([OSMESA_MESA_DEPS])
1225 AC_SUBST([OSMESA_PC_REQ])
1226 AC_SUBST([OSMESA_PC_LIB_PRIV])
1229 dnl gbm configuration
1231 if test "x$enable_gbm" = xauto; then
1232 case "$with_egl_platforms" in
1239 if test "x$enable_gbm" = xyes; then
1240 SRC_DIRS="$SRC_DIRS gbm"
1243 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1244 AC_MSG_ERROR([gbm needs udev]))
1245 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1247 if test "$mesa_driver" = dri; then
1248 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1249 if test "$SHARED_GLAPI" -eq 0; then
1250 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1254 AC_SUBST([GBM_LIB_DEPS])
1255 AC_SUBST([GBM_BACKEND_DIRS])
1256 GBM_PC_REQ_PRIV="libudev"
1257 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1259 AC_SUBST([GBM_PC_REQ_PRIV])
1260 AC_SUBST([GBM_PC_LIB_PRIV])
1261 AC_SUBST([GBM_PC_CFLAGS])
1264 dnl EGL configuration
1268 if test "x$enable_egl" = xno; then
1269 if test "x$mesa_driver" = xno; then
1270 AC_MSG_ERROR([cannot disable EGL when there is no mesa driver])
1273 if test "x$enable_egl" = xyes; then
1274 SRC_DIRS="$SRC_DIRS egl"
1275 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1278 if test "$enable_static" != yes; then
1279 # build egl_glx when libGL is built
1280 if test "$mesa_driver" = xlib -o "$mesa_driver" = dri; then
1281 EGL_DRIVERS_DIRS="glx"
1284 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1285 [have_libudev=yes],[have_libudev=no])
1286 if test "$have_libudev" = yes; then
1287 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1289 if test "$mesa_driver" = dri; then
1290 # build egl_dri2 when xcb-dri2 is available
1291 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1292 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1294 if test "$have_xcb_dri2" = yes; then
1295 EGL_DRIVER_DRI2=dri2
1296 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1297 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1298 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1299 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1303 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1306 AC_SUBST([EGL_LIB_DEPS])
1307 AC_SUBST([EGL_DRIVERS_DIRS])
1310 dnl EGL Gallium configuration
1312 if test "x$enable_gallium_egl" = xyes; then
1313 if test "x$with_gallium_drivers" = x; then
1314 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1316 if test "x$enable_egl" = xno; then
1317 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1320 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1321 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1326 dnl gbm Gallium configuration
1328 if test "x$enable_gallium_gbm" = xauto; then
1329 case "$enable_gbm$HAVE_ST_EGL$with_egl_platforms" in
1331 enable_gallium_gbm=yes ;;
1333 enable_gallium_gbm=no ;;
1336 if test "x$enable_gallium_gbm" = xyes; then
1337 if test "x$with_gallium_drivers" = x; then
1338 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1340 if test "x$enable_gbm" = xno; then
1341 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1344 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1345 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1350 dnl X.Org DDX configuration
1352 if test "x$enable_xorg" = xyes; then
1353 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1354 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1355 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1356 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1357 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1358 HAVE_XEXTPROTO_71="no")
1359 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1364 dnl OpenVG configuration
1368 if test "x$enable_openvg" = xyes; then
1369 if test "x$enable_egl" = xno; then
1370 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1372 if test "x$with_gallium_drivers" = x; then
1373 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1375 if test "x$enable_gallium_egl" = xno; then
1376 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1379 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1380 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1381 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1382 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1387 dnl D3D1X configuration
1390 if test "x$enable_d3d1x" = xyes; then
1391 if test "x$with_gallium_drivers" = x; then
1392 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1395 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1400 dnl GLU configuration
1402 AC_ARG_ENABLE([glu],
1403 [AS_HELP_STRING([--disable-glu],
1404 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1405 [enable_glu="$enableval"],
1408 if test "x$enable_glu" = xyes -a "x$mesa_driver" = xno; then
1409 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1413 if test "x$enable_glu" = xyes; then
1414 SRC_DIRS="$SRC_DIRS glu"
1416 case "$mesa_driver" in
1418 # Link libGLU to libOSMesa instead of libGL
1421 if test "$enable_static" = no; then
1422 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1428 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1430 GLU_PC_LIB_PRIV="-lm"
1431 if test "$enable_static" = no; then
1433 GLU_MESA_DEPS='-l$(GL_LIB)'
1437 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1442 if test "$enable_static" = no; then
1443 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1445 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1446 AC_SUBST([GLU_LIB_DEPS])
1447 AC_SUBST([GLU_MESA_DEPS])
1448 AC_SUBST([GLU_PC_REQ])
1449 AC_SUBST([GLU_PC_REQ_PRIV])
1450 AC_SUBST([GLU_PC_LIB_PRIV])
1451 AC_SUBST([GLU_PC_CFLAGS])
1454 dnl GLw configuration
1456 AC_ARG_ENABLE([glw],
1457 [AS_HELP_STRING([--disable-glw],
1458 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
1459 [enable_glw="$enableval"],
1461 dnl Don't build GLw on osmesa
1462 if test "x$enable_glw" = xyes; then
1463 case "$mesa_driver" in
1465 AC_MSG_NOTICE([Disabling GLw since there is no OpenGL driver])
1470 AC_ARG_ENABLE([motif],
1471 [AS_HELP_STRING([--enable-motif],
1472 [use Motif widgets in GLw @<:@default=disabled@:>@])],
1473 [enable_motif="$enableval"],
1476 if test "x$enable_glw" = xyes; then
1477 SRC_DIRS="$SRC_DIRS glw"
1478 if test "$x11_pkgconfig" = yes; then
1479 PKG_CHECK_MODULES([GLW],[x11 xt])
1480 GLW_PC_REQ_PRIV="x11 xt"
1481 GLW_LIB_DEPS="$GLW_LIBS"
1483 # should check these...
1484 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
1485 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1486 GLW_PC_CFLAGS="$X11_INCLUDES"
1489 GLW_SOURCES="GLwDrawA.c"
1491 if test "x$enable_motif" = xyes; then
1492 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1493 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1494 if test "x$MOTIF_CONFIG" != xno; then
1495 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1496 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1498 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1499 [AC_MSG_ERROR([Can't locate Motif headers])])
1500 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1501 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1503 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1504 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
1505 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1506 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
1509 # If static, empty GLW_LIB_DEPS and add libs for programs to link
1510 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
1511 if test "$enable_static" = no; then
1512 GLW_MESA_DEPS='-l$(GL_LIB)'
1513 GLW_LIB_DEPS="$GLW_LIB_DEPS"
1515 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1520 AC_SUBST([GLW_LIB_DEPS])
1521 AC_SUBST([GLW_MESA_DEPS])
1522 AC_SUBST([GLW_SOURCES])
1523 AC_SUBST([MOTIF_CFLAGS])
1524 AC_SUBST([GLW_PC_REQ_PRIV])
1525 AC_SUBST([GLW_PC_LIB_PRIV])
1526 AC_SUBST([GLW_PC_CFLAGS])
1529 dnl GLUT configuration
1531 if test -f "$srcdir/include/GL/glut.h"; then
1536 AC_ARG_ENABLE([glut],
1537 [AS_HELP_STRING([--disable-glut],
1538 [enable GLUT library @<:@default=enabled if source available@:>@])],
1539 [enable_glut="$enableval"],
1540 [enable_glut="$default_glut"])
1542 dnl Don't build glut on osmesa
1543 if test "x$enable_glut" = xyes; then
1544 case "$mesa_driver" in
1546 AC_MSG_NOTICE([Disabling glut since there is no OpenGL driver])
1551 dnl Can't build glut if GLU not available
1552 if test "x$enable_glu$enable_glut" = xnoyes; then
1553 AC_MSG_WARN([Disabling glut since GLU is disabled])
1557 if test "x$enable_glut" = xyes; then
1558 SRC_DIRS="$SRC_DIRS glut/glx"
1559 if test "$x11_pkgconfig" = yes; then
1560 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1561 GLUT_PC_REQ_PRIV="x11 xmu xi"
1562 GLUT_LIB_DEPS="$GLUT_LIBS"
1564 # should check these...
1565 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1566 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1567 GLUT_PC_CFLAGS="$X11_INCLUDES"
1569 if test "x$GCC" = xyes; then
1570 GLUT_CFLAGS="$GLUT_CFLAGS -fexceptions"
1572 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1573 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
1575 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1576 if test "$enable_static" = no; then
1577 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1579 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1584 AC_SUBST([GLUT_LIB_DEPS])
1585 AC_SUBST([GLUT_MESA_DEPS])
1586 AC_SUBST([GLUT_CFLAGS])
1587 AC_SUBST([GLUT_PC_REQ_PRIV])
1588 AC_SUBST([GLUT_PC_LIB_PRIV])
1589 AC_SUBST([GLUT_PC_CFLAGS])
1592 dnl Program library dependencies
1593 dnl Only libm is added here if necessary as the libraries should
1594 dnl be pulled in by the linker
1596 if test "x$APP_LIB_DEPS" = x; then
1599 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1602 APP_LIB_DEPS="-lX11"
1609 AC_SUBST([APP_LIB_DEPS])
1610 AC_SUBST([PROGRAM_DIRS])
1613 dnl Gallium configuration
1615 if test "x$with_gallium_drivers" != x; then
1616 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1619 AC_SUBST([LLVM_CFLAGS])
1620 AC_SUBST([LLVM_LIBS])
1621 AC_SUBST([LLVM_LDFLAGS])
1622 AC_SUBST([LLVM_VERSION])
1626 case "x$enable_opengl$enable_gles1$enable_gles2" in
1628 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1632 AC_SUBST([VG_LIB_DEPS])
1633 AC_SUBST([EGL_CLIENT_APIS])
1635 AC_ARG_WITH([egl-platforms],
1636 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1637 [comma delimited native platforms libEGL supports, e.g.
1638 "x11,drm" @<:@default=auto@:>@])],
1639 [with_egl_platforms="$withval"],
1640 [with_egl_platforms=yes])
1643 WAYLAND_EGL_LIB_DEPS=""
1645 case "$with_egl_platforms" in
1647 if test "x$enable_egl" = xyes && test "x$mesa_driver" != xosmesa; then
1652 if test "x$enable_egl" != xyes; then
1653 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1655 # verify the requested driver directories exist
1656 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1657 for plat in $egl_platforms; do
1658 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1659 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1660 if test "$plat" = "fbdev"; then
1661 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1663 if test "$plat" = "wayland"; then
1664 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1665 [AC_MSG_ERROR([cannot find libwayland-client])])
1666 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1667 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1669 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1670 AC_MSG_ERROR([EGL platform drm needs gbm])
1672 case "$plat$have_libudev" in
1674 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1677 EGL_PLATFORMS="$egl_platforms"
1680 AC_SUBST([EGL_PLATFORMS])
1682 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1683 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1684 WAYLAND_EGL_PC_LIB_PRIV=
1685 WAYLAND_EGL_PC_CFLAGS=
1687 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1688 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1689 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1692 AC_ARG_WITH([egl-driver-dir],
1693 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1694 [directory for EGL drivers [[default=${libdir}/egl]]])],
1695 [EGL_DRIVER_INSTALL_DIR="$withval"],
1696 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1697 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1699 AC_ARG_WITH([xorg-driver-dir],
1700 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1701 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1702 [XORG_DRIVER_INSTALL_DIR="$withval"],
1703 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1704 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1706 AC_ARG_WITH([max-width],
1707 [AS_HELP_STRING([--with-max-width=N],
1708 [Maximum framebuffer width (4096)])],
1709 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1710 AS_IF([test "${withval}" -gt "4096"],
1711 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1713 AC_ARG_WITH([max-height],
1714 [AS_HELP_STRING([--with-max-height=N],
1715 [Maximum framebuffer height (4096)])],
1716 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1717 AS_IF([test "${withval}" -gt "4096"],
1718 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1724 AC_ARG_ENABLE([gallium-llvm],
1725 [AS_HELP_STRING([--enable-gallium-llvm],
1726 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1727 [enable_gallium_llvm="$enableval"],
1728 [enable_gallium_llvm=auto])
1729 if test "x$with_gallium_drivers" = x; then
1730 enable_gallium_llvm=no
1732 if test "x$enable_gallium_llvm" = xauto; then
1734 i*86|x86_64) enable_gallium_llvm=yes;;
1737 if test "x$enable_gallium_llvm" = xyes; then
1738 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1740 if test "x$LLVM_CONFIG" != xno; then
1741 LLVM_VERSION=`$LLVM_CONFIG --version`
1742 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags`
1743 LLVM_LIBS="`$LLVM_CONFIG --libs` -lstdc++"
1745 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1746 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1747 DEFINES="$DEFINES -DGALLIUM_LLVMPIPE -D__STDC_CONSTANT_MACROS"
1757 dnl Gallium helper functions
1759 gallium_check_st() {
1760 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes; then
1761 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1763 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1764 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1766 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1767 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1771 gallium_require_llvm() {
1772 if test "x$MESA_LLVM" = x0; then
1774 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1780 if test "x$with_gallium_drivers" != x; then
1781 # This is for compile-testing
1782 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 i965 r300 svga"
1783 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1785 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1786 for driver in $gallium_drivers; do
1789 gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
1792 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1793 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1796 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1797 gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1800 gallium_require_llvm "Gallium R300"
1801 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300"
1804 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1805 gallium_check_st "r600/drm" "dri-r600"
1808 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1809 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1810 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
1813 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1814 if test "x$MESA_LLVM" = x1; then
1815 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1818 if test "x$HAVE_ST_DRI" = xyes; then
1819 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1823 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1829 dnl prepend CORE_DIRS to SRC_DIRS
1830 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1832 dnl Restore LDFLAGS and CPPFLAGS
1833 LDFLAGS="$_SAVE_LDFLAGS"
1834 CPPFLAGS="$_SAVE_CPPFLAGS"
1836 dnl Add user CFLAGS and CXXFLAGS
1837 CFLAGS="$CFLAGS $USER_CFLAGS"
1838 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1840 dnl Substitute the config
1841 AC_CONFIG_FILES([configs/autoconf])
1843 dnl Replace the configs/current symlink
1844 AC_CONFIG_COMMANDS([configs],[
1845 if test -f configs/current || test -L configs/current; then
1846 rm -f configs/current
1848 ln -s autoconf configs/current
1854 dnl Output some configuration info for the user
1857 echo " prefix: $prefix"
1858 echo " exec_prefix: $exec_prefix"
1859 echo " libdir: $libdir"
1860 echo " includedir: $includedir"
1864 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1865 echo " OpenVG: $enable_openvg"
1869 echo " Driver: $mesa_driver"
1870 if test "$mesa_driver" != no; then
1871 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1872 echo " OSMesa: lib$OSMESA_LIB"
1876 if test "$mesa_driver" = dri; then
1877 # cleanup the drivers var
1878 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1879 if test "x$DRI_DIRS" = x; then
1880 echo " DRI drivers: no"
1882 echo " DRI drivers: $dri_dirs"
1884 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1885 echo " Use XCB: $enable_xcb"
1886 echo " Shared dricore: $enable_dricore"
1890 echo " GLU: $enable_glu"
1891 echo " GLw: $enable_glw (Motif: $enable_motif)"
1892 echo " glut: $enable_glut"
1896 echo " EGL: $enable_egl"
1897 if test "$enable_egl" = yes; then
1898 echo " EGL platforms: $EGL_PLATFORMS"
1901 for d in $EGL_DRIVERS_DIRS; do
1902 egl_drivers="$egl_drivers builtin:egl_$d"
1905 if test "x$HAVE_ST_EGL" = xyes; then
1906 echo " EGL drivers: ${egl_drivers} egl_gallium"
1907 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
1909 echo " EGL drivers: $egl_drivers"
1914 if test "x$MESA_LLVM" = x1; then
1916 echo " llvm-config: $LLVM_CONFIG"
1917 echo " llvm-version: $LLVM_VERSION"
1923 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1924 echo " Gallium: yes"
1925 echo " Gallium dirs: $GALLIUM_DIRS"
1926 echo " Target dirs: $GALLIUM_TARGET_DIRS"
1927 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
1928 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
1929 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1936 echo " Shared libs: $enable_shared"
1937 echo " Static libs: $enable_static"
1939 dnl Compiler options
1940 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1941 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1942 $SED 's/^ *//;s/ */ /;s/ *$//'`
1943 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1944 $SED 's/^ *//;s/ */ /;s/ *$//'`
1945 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1947 echo " CFLAGS: $cflags"
1948 echo " CXXFLAGS: $cxxflags"
1949 echo " Macros: $defines"
1951 echo " PYTHON2: $PYTHON2"
1954 echo " Run '${MAKE-make}' to build Mesa"