1 dnl Process this file with autoconf to create configure.
5 dnl Versioning - scrape the version from configs/default
6 m4_define([mesa_version],
7 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
8 m4_ifval(mesa_version,,
9 [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
11 dnl Tell the user about autoconf.html in the --help output
12 m4_divert_once([HELP_END], [
13 See docs/autoconf.html for more details on the options for Mesa.])
15 AC_INIT([Mesa],[mesa_version],
16 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17 AC_CONFIG_AUX_DIR([bin])
20 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
22 USER_CXXFLAGS="$CXXFLAGS"
24 dnl Versions for external dependencies
25 LIBDRM_REQUIRED=2.4.24
26 LIBDRM_RADEON_REQUIRED=2.4.24
27 LIBDRM_INTEL_REQUIRED=2.4.24
28 LIBDRM_NOUVEAU_REQUIRED=0.6
29 DRI2PROTO_REQUIRED=2.6
30 GLPROTO_REQUIRED=1.4.14
31 LIBDRM_XORG_REQUIRED=2.4.24
32 LIBKMS_XORG_REQUIRED=1.0.0
38 AC_CHECK_PROGS([MAKE], [gmake make])
39 AC_CHECK_PROGS([PYTHON2], [python2 python])
40 AC_PATH_PROG([MKDEP], [makedepend])
41 AC_PATH_PROG([SED], [sed])
43 if test "x$MKDEP" = "x"; then
44 AC_MSG_ERROR([makedepend is required to build Mesa])
47 AC_PATH_PROG([FLEX], [flex])
48 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
50 AC_PATH_PROG([BISON], [bison])
51 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
53 dnl Our fallback install-sh is a symlink to minstall. Use the existing
54 dnl configuration in that case.
56 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
58 dnl We need a POSIX shell for parts of the build. Assume we have one
62 # Solaris /bin/sh is too old/non-POSIX compliant
63 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
68 dnl clang is mostly GCC-compatible, but its version is much lower,
69 dnl so we have to check for it.
70 AC_MSG_CHECKING([if compiling with clang])
73 [AC_LANG_PROGRAM([], [[
78 [CLANG=yes], [CLANG=no])
80 AC_MSG_RESULT([$CLANG])
82 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
83 dnl versions are explictly not supported.
84 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
85 AC_MSG_CHECKING([whether gcc version is sufficient])
89 GCC_VERSION=`$CC -dumpversion`
90 if test $? -eq 0; then
91 major=`echo $GCC_VERSION | cut -d. -f1`
92 minor=`echo $GCC_VERSION | cut -d. -f2`
95 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
97 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
104 MKDEP_OPTIONS=-fdepend
105 dnl Ask gcc where it's keeping its secret headers
106 if test "x$GCC" = xyes; then
107 for dir in include include-fixed; do
108 GCC_INCLUDES=`$CC -print-file-name=$dir`
109 if test "x$GCC_INCLUDES" != x && \
110 test "$GCC_INCLUDES" != "$dir" && \
111 test -d "$GCC_INCLUDES"; then
112 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
116 AC_SUBST([MKDEP_OPTIONS])
118 dnl Make sure the pkg-config macros are defined
119 m4_ifndef([PKG_PROG_PKG_CONFIG],
120 [m4_fatal([Could not locate the pkg-config autoconf macros.
121 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
122 are in a different location, try setting the environment variable
123 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
124 PKG_PROG_PKG_CONFIG()
126 dnl LIB_DIR - library basename
127 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
130 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
131 _SAVE_LDFLAGS="$LDFLAGS"
132 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
133 AC_SUBST([EXTRA_LIB_PATH])
135 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
136 _SAVE_CPPFLAGS="$CPPFLAGS"
137 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
138 AC_SUBST([X11_INCLUDES])
145 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
148 DEFINES="$DEFINES -DPTHREADS -DSVR4"
151 DEFINES="$DEFINES -DPTHREADS"
155 dnl Add flags for gcc and g++
156 if test "x$GCC" = xyes; then
157 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
158 if test "x$CLANG" = "xno"; then
159 CFLAGS="$CFLAGS -ffast-math"
162 # Enable -fvisibility=hidden if using a gcc that supports it
163 save_CFLAGS="$CFLAGS"
164 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
165 VISIBILITY_CFLAGS="-fvisibility=hidden"
166 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
167 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
168 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
170 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
173 # Work around aliasing bugs - developers should comment this out
174 CFLAGS="$CFLAGS -fno-strict-aliasing"
176 if test "x$GXX" = xyes; then
177 CXXFLAGS="$CXXFLAGS -Wall"
179 # Enable -fvisibility=hidden if using a gcc that supports it
180 save_CXXFLAGS="$CXXFLAGS"
181 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
182 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
183 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
185 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
186 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
189 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
190 CXXFLAGS=$save_CXXFLAGS
192 # Work around aliasing bugs - developers should comment this out
193 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
196 dnl even if the compiler appears to support it, using visibility attributes isn't
197 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
201 VISIBILITY_CXXFLAGS=""
205 AC_SUBST([VISIBILITY_CFLAGS])
206 AC_SUBST([VISIBILITY_CXXFLAGS])
208 dnl These should be unnecessary, but let the user set them if they want
209 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
210 Default is to use CFLAGS.])
211 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
212 compiler. Default is to use CFLAGS.])
213 AC_SUBST([OPT_FLAGS])
214 AC_SUBST([ARCH_FLAGS])
217 dnl Hacks to enable 32 or 64 bit build
219 AC_ARG_ENABLE([32-bit],
220 [AS_HELP_STRING([--enable-32-bit],
221 [build 32-bit libraries @<:@default=auto@:>@])],
222 [enable_32bit="$enableval"],
225 if test "x$enable_32bit" = xyes; then
226 if test "x$GCC" = xyes; then
227 CFLAGS="$CFLAGS -m32"
228 ARCH_FLAGS="$ARCH_FLAGS -m32"
230 if test "x$GXX" = xyes; then
231 CXXFLAGS="$CXXFLAGS -m32"
234 AC_ARG_ENABLE([64-bit],
235 [AS_HELP_STRING([--enable-64-bit],
236 [build 64-bit libraries @<:@default=auto@:>@])],
237 [enable_64bit="$enableval"],
240 if test "x$enable_64bit" = xyes; then
241 if test "x$GCC" = xyes; then
242 CFLAGS="$CFLAGS -m64"
244 if test "x$GXX" = xyes; then
245 CXXFLAGS="$CXXFLAGS -m64"
250 dnl shared/static libraries, mimic libtool options
252 AC_ARG_ENABLE([static],
253 [AS_HELP_STRING([--enable-static],
254 [build static libraries @<:@default=disabled@:>@])],
255 [enable_static="$enableval"],
258 case "x$enable_static" in
260 x ) enable_static=no ;;
262 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
265 AC_ARG_ENABLE([shared],
266 [AS_HELP_STRING([--disable-shared],
267 [build shared libraries @<:@default=enabled@:>@])],
268 [enable_shared="$enableval"],
271 case "x$enable_shared" in
273 x ) enable_shared=yes ;;
275 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
279 dnl Can't have static and shared libraries, default to static if user
280 dnl explicitly requested. If both disabled, set to static since shared
281 dnl was explicitly requirested.
282 case "x$enable_static$enable_shared" in
284 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
288 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
296 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
297 if test "$enable_static" = yes; then
298 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
300 AC_SUBST([MKLIB_OPTIONS])
303 dnl other compiler options
305 AC_ARG_ENABLE([debug],
306 [AS_HELP_STRING([--enable-debug],
307 [use debug compiler flags and macros @<:@default=disabled@:>@])],
308 [enable_debug="$enableval"],
311 if test "x$enable_debug" = xyes; then
312 DEFINES="$DEFINES -DDEBUG"
313 if test "x$GCC" = xyes; then
316 if test "x$GXX" = xyes; then
317 CXXFLAGS="$CXXFLAGS -g"
324 LIB_PREFIX_GLOB='lib'
325 LIB_VERSION_SEPARATOR='.'
326 if test "$enable_static" = yes; then
331 LIB_EXTENSION='dylib' ;;
333 dnl prefix can be 'cyg' or 'lib'
334 LIB_PREFIX_GLOB='???'
335 LIB_VERSION_SEPARATOR='-'
336 LIB_EXTENSION='dll' ;;
340 LIB_EXTENSION='so' ;;
345 dnl potentially-infringing-but-nobody-knows-for-sure stuff
347 AC_ARG_ENABLE([texture-float],
348 [AS_HELP_STRING([--enable-texture-float],
349 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
350 [enable_texture_float="$enableval"],
351 [enable_texture_float=no]
353 if test "x$enable_texture_float" = xyes; then
354 AC_MSG_WARN([Floating-point textures enabled.])
355 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
356 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
359 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
360 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
361 GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
362 GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
363 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
364 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
365 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
366 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
367 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
368 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
369 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
370 GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
372 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
373 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
374 GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
375 GLW_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLW_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
376 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
377 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
378 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
379 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
380 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
381 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
382 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
383 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
384 GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
386 AC_SUBST([GL_LIB_NAME])
387 AC_SUBST([GLU_LIB_NAME])
388 AC_SUBST([GLUT_LIB_NAME])
389 AC_SUBST([GLW_LIB_NAME])
390 AC_SUBST([OSMESA_LIB_NAME])
391 AC_SUBST([EGL_LIB_NAME])
392 AC_SUBST([GLESv1_CM_LIB_NAME])
393 AC_SUBST([GLESv2_LIB_NAME])
394 AC_SUBST([VG_LIB_NAME])
395 AC_SUBST([GLAPI_LIB_NAME])
396 AC_SUBST([WAYLAND_EGL_LIB_NAME])
397 AC_SUBST([GBM_LIB_NAME])
399 AC_SUBST([GL_LIB_GLOB])
400 AC_SUBST([GLU_LIB_GLOB])
401 AC_SUBST([GLUT_LIB_GLOB])
402 AC_SUBST([GLW_LIB_GLOB])
403 AC_SUBST([OSMESA_LIB_GLOB])
404 AC_SUBST([EGL_LIB_GLOB])
405 AC_SUBST([GLESv1_CM_LIB_GLOB])
406 AC_SUBST([GLESv2_LIB_GLOB])
407 AC_SUBST([VG_LIB_GLOB])
408 AC_SUBST([GLAPI_LIB_GLOB])
409 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
410 AC_SUBST([GBM_LIB_GLOB])
413 dnl Arch/platform-specific settings
416 [AS_HELP_STRING([--disable-asm],
417 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
418 [enable_asm="$enableval"],
425 AC_MSG_CHECKING([whether to enable assembly])
426 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
427 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
428 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
432 AC_MSG_RESULT([no, cross compiling])
436 # check for supported arches
437 if test "x$enable_asm" = xyes; then
441 linux* | *freebsd* | dragonfly* | *netbsd*)
442 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
448 linux* | *freebsd* | dragonfly* | *netbsd*)
449 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
471 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
472 MESA_ASM_SOURCES='$(X86_SOURCES)'
473 GLAPI_ASM_SOURCES='$(X86_API)'
474 AC_MSG_RESULT([yes, x86])
477 ASM_FLAGS="-DUSE_X86_64_ASM"
478 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
479 GLAPI_ASM_SOURCES='$(X86-64_API)'
480 AC_MSG_RESULT([yes, x86_64])
483 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
484 MESA_ASM_SOURCES='$(PPC_SOURCES)'
485 AC_MSG_RESULT([yes, ppc])
488 ASM_FLAGS="-DUSE_SPARC_ASM"
489 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
490 GLAPI_ASM_SOURCES='$(SPARC_API)'
491 AC_MSG_RESULT([yes, sparc])
494 AC_MSG_RESULT([no, platform not supported])
498 AC_SUBST([ASM_FLAGS])
499 AC_SUBST([MESA_ASM_SOURCES])
500 AC_SUBST([GLAPI_ASM_SOURCES])
505 dnl Check to see if dlopen is in default libraries (like Solaris, which
506 dnl has it in libc), or if libdl is needed to get it.
507 AC_CHECK_FUNC([dlopen], [],
508 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
509 AC_SUBST([DLOPEN_LIBS])
511 dnl See if posix_memalign is available
512 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
514 dnl SELinux awareness.
515 AC_ARG_ENABLE([selinux],
516 [AS_HELP_STRING([--enable-selinux],
517 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
518 [MESA_SELINUX="$enableval"],
520 if test "x$enable_selinux" = "xyes"; then
521 AC_CHECK_HEADER([selinux/selinux.h],[],
522 [AC_MSG_ERROR([SELinux headers not found])])
523 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
524 [AC_MSG_ERROR([SELinux library not found])])
525 SELINUX_LIBS="-lselinux"
526 DEFINES="$DEFINES -DMESA_SELINUX"
530 AC_ARG_ENABLE([opengl],
531 [AS_HELP_STRING([--disable-opengl],
532 [disable support for standard OpenGL API @<:@default=no@:>@])],
533 [enable_opengl="$enableval"],
535 AC_ARG_ENABLE([gles1],
536 [AS_HELP_STRING([--enable-gles1],
537 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
538 [enable_gles1="$enableval"],
540 AC_ARG_ENABLE([gles2],
541 [AS_HELP_STRING([--enable-gles2],
542 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
543 [enable_gles2="$enableval"],
545 AC_ARG_ENABLE([openvg],
546 [AS_HELP_STRING([--enable-openvg],
547 [enable support for OpenVG API @<:@default=no@:>@])],
548 [enable_openvg="$enableval"],
552 [AS_HELP_STRING([--enable-dri],
553 [enable DRI modules @<:@default=auto@:>@])],
554 [enable_dri="$enableval"],
557 [AS_HELP_STRING([--enable-glx],
558 [enable GLX library @<:@default=auto@:>@])],
559 [enable_glx="$enableval"],
561 AC_ARG_ENABLE([osmesa],
562 [AS_HELP_STRING([--enable-osmesa],
563 [enable OSMesa library @<:@default=auto@:>@])],
564 [enable_osmesa="$enableval"],
565 [enable_osmesa=auto])
567 [AS_HELP_STRING([--disable-egl],
568 [disable EGL library @<:@default=enabled@:>@])],
569 [enable_egl="$enableval"],
572 AC_ARG_ENABLE([xorg],
573 [AS_HELP_STRING([--enable-xorg],
574 [enable support for X.Org DDX API @<:@default=no@:>@])],
575 [enable_xorg="$enableval"],
578 [AS_HELP_STRING([--enable-xa],
579 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
580 [enable_xa="$enableval"],
582 AC_ARG_ENABLE([d3d1x],
583 [AS_HELP_STRING([--enable-d3d1x],
584 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
585 [enable_d3d1x="$enableval"],
588 [AS_HELP_STRING([--enable-gbm],
589 [enable gbm library @<:@default=auto@:>@])],
590 [enable_gbm="$enableval"],
593 AC_ARG_ENABLE([xvmc],
594 [AS_HELP_STRING([--enable-xvmc],
595 [enable xvmc library @<:@default=auto@:>@])],
596 [enable_xvmc="$enableval"],
598 AC_ARG_ENABLE([vdpau],
599 [AS_HELP_STRING([--enable-vdpau],
600 [enable vdpau library @<:@default=auto@:>@])],
601 [enable_vdpau="$enableval"],
604 [AS_HELP_STRING([--enable-va],
605 [enable va library @<:@default=auto@:>@])],
606 [enable_va="$enableval"],
609 AC_ARG_ENABLE([xlib_glx],
610 [AS_HELP_STRING([--enable-xlib-glx],
611 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
612 [enable_xlib_glx="$enableval"],
613 [enable_xlib_glx=auto])
614 AC_ARG_ENABLE([gallium_egl],
615 [AS_HELP_STRING([--enable-gallium-egl],
616 [enable optional EGL state tracker (not required
617 for EGL support in Gallium with OpenGL and OpenGL ES)
618 @<:@default=disable@:>@])],
619 [enable_gallium_egl="$enableval"],
620 [enable_gallium_egl=no])
621 AC_ARG_ENABLE([gallium_gbm],
622 [AS_HELP_STRING([--enable-gallium-gbm],
623 [enable optional gbm state tracker (not required for
624 gbm support in Gallium)
625 @<:@default=auto@:>@])],
626 [enable_gallium_gbm="$enableval"],
627 [enable_gallium_gbm=auto])
629 # Option for Gallium drivers
630 GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
632 AC_ARG_WITH([gallium-drivers],
633 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
634 [comma delimited Gallium drivers list, e.g.
635 "i915,i965,nouveau,r300,r600,svga,swrast"
636 @<:@default=r300,r600,swrast@:>@])],
637 [with_gallium_drivers="$withval"],
638 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
640 # Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
641 # here so that the script doesn't choke on an unknown driver name later.
642 case "$with_gallium_drivers" in
643 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
644 no) with_gallium_drivers='' ;;
647 if test "x$enable_opengl" = xno -a \
648 "x$enable_gles1" = xno -a \
649 "x$enable_gles2" = xno -a \
650 "x$enable_openvg" = xno -a \
651 "x$enable_xorg" = xno -a \
652 "x$enable_xa" = xno -a \
653 "x$enable_d3d1x" = xno -a \
654 "x$enable_xvmc" = xno -a \
655 "x$enable_vdpau" = xno -a \
656 "x$enable_va" = xno; then
657 AC_MSG_ERROR([at least one API should be enabled])
661 if test "x$enable_opengl" = xno; then
662 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
664 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
666 if test "x$enable_gles1" = xyes; then
667 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
669 if test "x$enable_gles2" = xyes; then
670 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
672 AC_SUBST([API_DEFINES])
674 AC_ARG_ENABLE([shared-glapi],
675 [AS_HELP_STRING([--enable-shared-glapi],
676 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
677 [enable_shared_glapi="$enableval"],
678 [enable_shared_glapi=no])
681 if test "x$enable_shared_glapi" = xyes; then
684 AC_SUBST([SHARED_GLAPI])
687 dnl Driver configuration. Options are xlib, dri and osmesa right now.
688 dnl More later: fbdev, ...
690 default_driver="xlib"
695 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
698 *freebsd* | dragonfly* | *netbsd*)
700 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
705 if test "x$enable_opengl" = xno; then
709 AC_ARG_WITH([driver],
710 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
711 [mesa_driver="$withval"],
713 dnl Check for valid option
714 case "x$mesa_driver" in
715 xxlib|xdri|xosmesa|xno)
716 if test "x$enable_dri" != xauto -o \
717 "x$enable_glx" != xauto -o \
718 "x$enable_osmesa" != xauto -o \
719 "x$enable_xlib_glx" != xauto; then
720 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
724 mesa_driver="$default_driver"
727 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
731 # map $mesa_driver to APIs
732 if test "x$enable_dri" = xauto; then
733 case "x$mesa_driver" in
734 xdri) enable_dri=yes ;;
739 if test "x$enable_glx" = xauto; then
740 case "x$mesa_driver" in
741 xdri|xxlib) enable_glx=yes ;;
746 if test "x$enable_osmesa" = xauto; then
747 case "x$mesa_driver" in
748 xxlib|xosmesa) enable_osmesa=yes ;;
749 *) enable_osmesa=no ;;
753 if test "x$enable_xlib_glx" = xauto; then
754 case "x$mesa_driver" in
755 xxlib) enable_xlib_glx=yes ;;
756 *) enable_xlib_glx=no ;;
760 if test "x$enable_glx" = xno; then
765 dnl Driver specific build directories
768 dnl this variable will be prepended to SRC_DIRS and is not exported
773 GALLIUM_DIRS="auxiliary drivers state_trackers"
774 GALLIUM_TARGET_DIRS=""
775 GALLIUM_WINSYS_DIRS="sw"
776 GALLIUM_DRIVERS_DIRS="failover galahad trace rbug noop identity"
777 GALLIUM_STATE_TRACKERS_DIRS=""
779 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
780 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
782 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
786 # build glapi if OpenGL is enabled
787 if test "x$enable_opengl" = xyes; then
788 CORE_DIRS="$CORE_DIRS mapi/glapi"
791 # build es1api if OpenGL ES 1.x is enabled
792 if test "x$enable_gles1" = xyes; then
793 CORE_DIRS="$CORE_DIRS mapi/es1api"
796 # build es2api if OpenGL ES 2.x is enabled
797 if test "x$enable_gles2" = xyes; then
798 CORE_DIRS="$CORE_DIRS mapi/es2api"
801 # build glsl and mesa if OpenGL or OpenGL ES is enabled
802 case "x$enable_opengl$enable_gles1$enable_gles2" in
804 CORE_DIRS="$CORE_DIRS glsl mesa"
808 case "x$enable_glx$enable_xlib_glx" in
810 DRIVER_DIRS="$DRIVER_DIRS x11"
811 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
812 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
813 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
814 HAVE_WINSYS_XLIB="yes"
818 SRC_DIRS="$SRC_DIRS glx"
822 if test "x$enable_dri" = xyes; then
823 DRIVER_DIRS="$DRIVER_DIRS dri"
825 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
826 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
830 if test "x$enable_osmesa" = xyes; then
831 # the empty space matters for osmesa... (see src/mesa/Makefile)
832 if test -n "$DRIVER_DIRS"; then
833 DRIVER_DIRS="$DRIVER_DIRS osmesa"
841 AC_SUBST([DRIVER_DIRS])
842 AC_SUBST([GALLIUM_DIRS])
843 AC_SUBST([GALLIUM_TARGET_DIRS])
844 AC_SUBST([GALLIUM_WINSYS_DIRS])
845 AC_SUBST([GALLIUM_DRIVERS_DIRS])
846 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
847 AC_SUBST([MESA_LLVM])
850 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
851 [have_libdrm=yes], [have_libdrm=no])
853 if test "x$enable_dri" = xyes; then
854 # DRI must be shared, I think
855 if test "$enable_static" = yes; then
856 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
859 # not a hard requirement as swrast does not depend on it
860 if test "x$have_libdrm" = xyes; then
861 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
866 dnl Find out if X is available. The variable have_x is set if libX11 is
867 dnl found to mimic AC_PATH_XTRA.
869 if test -n "$PKG_CONFIG"; then
870 AC_MSG_CHECKING([pkg-config files for X11 are available])
871 PKG_CHECK_EXISTS([x11],[
877 AC_MSG_RESULT([$x11_pkgconfig])
881 dnl Use the autoconf macro if no pkg-config files
882 if test "$x11_pkgconfig" = yes; then
883 PKG_CHECK_MODULES([X11], [x11])
886 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
887 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
888 AC_SUBST([X11_CFLAGS])
892 dnl Try to tell the user that the --x-* options are only used when
893 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
894 m4_divert_once([HELP_BEGIN],
895 [These options are only used when the X libraries cannot be found by the
896 pkg-config utility.])
898 dnl We need X for xlib and dri, so bomb now if it's not found
899 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
900 AC_MSG_ERROR([X11 development libraries needed for GLX])
903 dnl XCB - this is only used for GLX right now
905 [AS_HELP_STRING([--enable-xcb],
906 [use XCB for GLX @<:@default=disabled@:>@])],
907 [enable_xcb="$enableval"],
909 if test "x$enable_xcb" = xyes; then
910 DEFINES="$DEFINES -DUSE_XCB"
915 dnl Direct rendering or just indirect rendering
918 dnl Disable by default on GNU/Hurd
919 driglx_direct_default="no"
922 dnl Disable by default on cygwin
923 driglx_direct_default="no"
926 driglx_direct_default="yes"
929 AC_ARG_ENABLE([driglx-direct],
930 [AS_HELP_STRING([--disable-driglx-direct],
931 [enable direct rendering in GLX and EGL for DRI \
932 @<:@default=auto@:>@])],
933 [driglx_direct="$enableval"],
934 [driglx_direct="$driglx_direct_default"])
937 dnl libGL configuration per driver
939 case "x$enable_glx$enable_xlib_glx" in
942 if test "$x11_pkgconfig" = yes; then
943 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
944 GL_PC_REQ_PRIV="x11 xext"
945 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
946 GL_LIB_DEPS="$XLIBGL_LIBS"
948 # should check these...
949 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
950 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
951 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
952 GL_PC_CFLAGS="$X11_INCLUDES"
954 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
955 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
957 # if static, move the external libraries to the programs
958 # and empty the libraries for libGL
959 if test "$enable_static" = yes; then
960 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
966 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
967 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
968 if test x"$driglx_direct" = xyes; then
969 if test "x$have_libdrm" != xyes; then
970 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
972 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
973 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
976 # find the DRI deps for libGL
977 if test "$x11_pkgconfig" = yes; then
978 dri_modules="x11 xext xdamage xfixes"
980 # add xf86vidmode if available
981 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
982 if test "$HAVE_XF86VIDMODE" = yes ; then
983 dri_modules="$dri_modules xxf86vm"
986 # add xcb modules if necessary
987 if test "$enable_xcb" = yes; then
988 dri_modules="$dri_modules x11-xcb xcb-glx"
991 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
992 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
993 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
994 GL_LIB_DEPS="$DRIGL_LIBS"
996 # should check these...
997 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
998 if test "x$HAVE_XF86VIDMODE" == xyes; then
999 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
1001 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1003 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1004 GL_PC_CFLAGS="$X11_INCLUDES"
1006 # XCB can only be used from pkg-config
1007 if test "$enable_xcb" = yes; then
1008 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1009 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1010 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1011 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1015 # need DRM libs, -lpthread, etc.
1016 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1017 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1021 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1022 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1023 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1024 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1026 AC_SUBST([GL_LIB_DEPS])
1027 AC_SUBST([GL_PC_REQ_PRIV])
1028 AC_SUBST([GL_PC_LIB_PRIV])
1029 AC_SUBST([GL_PC_CFLAGS])
1030 AC_SUBST([DRI_PC_REQ_PRIV])
1031 AC_SUBST([GLESv1_CM_LIB_DEPS])
1032 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1033 AC_SUBST([GLESv2_LIB_DEPS])
1034 AC_SUBST([GLESv2_PC_LIB_PRIV])
1036 GLAPI_LIB_DEPS="-lpthread"
1037 AC_SUBST([GLAPI_LIB_DEPS])
1040 dnl Setup default DRI CFLAGS
1041 DRI_CFLAGS='$(CFLAGS)'
1042 DRI_CXXFLAGS='$(CXXFLAGS)'
1043 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1044 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1046 AC_ARG_ENABLE([shared-dricore],
1047 [AS_HELP_STRING([--enable-shared-dricore],
1048 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1049 [enable_dricore="$enableval"],
1050 [enable_dricore=no])
1051 if test "x$enable_dri" = xyes ; then
1052 if test "$enable_dricore" = yes ; then
1053 if test "$GCC$GXX" != yesyes ; then
1054 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1057 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1058 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1059 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1060 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1061 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1062 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1063 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1067 AC_SUBST([DRICORE_LIBS])
1068 AC_SUBST([DRICORE_GLSL_LIBS])
1069 AC_SUBST([DRICORE_LIB_DEPS])
1070 AC_SUBST([DRI_CXXFLAGS])
1071 AC_SUBST([DRI_CFLAGS])
1072 AC_SUBST([MESA_MODULES])
1074 AC_SUBST([HAVE_XF86VIDMODE])
1079 case "x$enable_glx$enable_xlib_glx" in
1081 DEFINES="$DEFINES -DUSE_XSHM"
1084 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1085 if test "x$driglx_direct" = xyes; then
1086 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1095 AC_ARG_ENABLE([glx-tls],
1096 [AS_HELP_STRING([--enable-glx-tls],
1097 [enable TLS support in GLX @<:@default=disabled@:>@])],
1098 [GLX_USE_TLS="$enableval"],
1100 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1102 AS_IF([test "x$GLX_USE_TLS" = xyes],
1103 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1108 dnl Directory for DRI drivers
1109 AC_ARG_WITH([dri-driverdir],
1110 [AS_HELP_STRING([--with-dri-driverdir=DIR],
1111 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1112 [DRI_DRIVER_INSTALL_DIR="$withval"],
1113 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1114 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1115 dnl Extra search path for DRI drivers
1116 AC_ARG_WITH([dri-searchpath],
1117 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1118 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1119 [DRI_DRIVER_SEARCH_DIR="$withval"],
1120 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1121 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1122 dnl Which drivers to build - default is chosen by platform
1123 AC_ARG_WITH([dri-drivers],
1124 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1125 [comma delimited DRI drivers list, e.g.
1126 "swrast,i965,radeon" @<:@default=auto@:>@])],
1127 [with_dri_drivers="$withval"],
1128 [with_dri_drivers=yes])
1129 if test "x$with_dri_drivers" = x; then
1133 dnl If $with_dri_drivers is yes, directories will be added through
1136 case "$with_dri_drivers" in
1139 # classic DRI drivers require FEATURE_GL to build
1140 if test "x$enable_opengl" = xyes; then
1145 # verify the requested driver directories exist
1146 dri_drivers=`IFS=', '; echo $with_dri_drivers`
1147 for driver in $dri_drivers; do
1148 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1149 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1151 DRI_DIRS="$dri_drivers"
1152 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1153 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1158 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1159 if test "x$enable_dri" = xyes; then
1160 # Platform specific settings and drivers to build
1163 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1164 DEFINES="$DEFINES -DHAVE_ALIAS"
1168 # sis is missing because they have not be converted to use
1169 # the new interface. i810 are missing because there is no
1170 # x86-64 system where they could *ever* be used.
1171 if test "x$DRI_DIRS" = "xyes"; then
1172 DRI_DIRS="i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1173 radeon savage tdfx unichrome swrast"
1177 # Build only the drivers for cards that exist on PowerPC.
1178 # At some point MGA will be added, but not yet.
1179 if test "x$DRI_DIRS" = "xyes"; then
1180 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
1184 # Build only the drivers for cards that exist on sparc`
1185 if test "x$DRI_DIRS" = "xyes"; then
1186 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
1191 freebsd* | dragonfly* | *netbsd*)
1192 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1193 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1195 if test "x$DRI_DIRS" = "xyes"; then
1196 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1197 radeon tdfx unichrome savage sis swrast"
1201 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1202 DEFINES="$DEFINES -DHAVE_ALIAS"
1205 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1208 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1209 if test "x$DRI_DIRS" = "xyes"; then
1216 if test "x$DRI_DIRS" = "xyes"; then
1217 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \
1218 savage sis tdfx unichrome swrast"
1221 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1224 if test "x$enable_dri" = xyes; then
1227 AC_ARG_WITH([expat],
1228 [AS_HELP_STRING([--with-expat=DIR],
1229 [expat install directory])],[
1230 EXPAT_INCLUDES="-I$withval/include"
1231 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1232 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1233 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1235 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1236 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1237 [AC_MSG_ERROR([Expat required for DRI.])])
1240 # libdrm is required for all except swrast
1241 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1242 if test "x$have_libdrm" != xyes; then
1243 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1247 # put all the necessary libs together, including possibly libdricore
1248 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1250 AC_SUBST([DRI_DIRS])
1251 AC_SUBST([EXPAT_INCLUDES])
1252 AC_SUBST([DRI_LIB_DEPS])
1256 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1262 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1267 *radeon*|*r200*|*r300*|*r600*)
1268 PKG_CHECK_MODULES([LIBDRM_RADEON],
1269 [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED],
1270 HAVE_LIBDRM_RADEON=yes,
1271 HAVE_LIBDRM_RADEON=no)
1273 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
1274 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
1275 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
1279 AC_SUBST([RADEON_CFLAGS])
1280 AC_SUBST([RADEON_LDFLAGS])
1284 dnl OSMesa configuration
1287 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1288 AC_ARG_WITH([osmesa-bits],
1289 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1290 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1291 [osmesa_bits="$withval"],
1293 if test "x$osmesa_bits" != x8; then
1294 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1295 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1299 case "x$osmesa_bits" in
1304 OSMESA_LIB="OSMesa$osmesa_bits"
1305 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1308 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1311 AC_SUBST([OSMESA_LIB])
1313 if test "x$enable_osmesa" = xyes; then
1314 # only link libraries with osmesa if shared
1315 if test "$enable_static" = no; then
1316 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1321 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1323 AC_SUBST([OSMESA_LIB_DEPS])
1324 AC_SUBST([OSMESA_MESA_DEPS])
1325 AC_SUBST([OSMESA_PC_REQ])
1326 AC_SUBST([OSMESA_PC_LIB_PRIV])
1329 dnl gbm configuration
1331 if test "x$enable_gbm" = xauto; then
1332 case "$with_egl_platforms" in
1339 if test "x$enable_gbm" = xyes; then
1340 SRC_DIRS="$SRC_DIRS gbm"
1343 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1344 AC_MSG_ERROR([gbm needs udev]))
1345 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1347 if test "x$enable_dri" = xyes; then
1348 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1349 if test "$SHARED_GLAPI" -eq 0; then
1350 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1354 AC_SUBST([GBM_LIB_DEPS])
1355 AC_SUBST([GBM_BACKEND_DIRS])
1356 GBM_PC_REQ_PRIV="libudev"
1357 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1359 AC_SUBST([GBM_PC_REQ_PRIV])
1360 AC_SUBST([GBM_PC_LIB_PRIV])
1361 AC_SUBST([GBM_PC_CFLAGS])
1364 dnl EGL configuration
1368 if test "x$enable_egl" = xyes; then
1369 SRC_DIRS="$SRC_DIRS egl"
1370 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1373 AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1375 if test "$enable_static" != yes; then
1376 # build egl_glx when libGL is built
1377 if test "x$enable_glx" = xyes; then
1378 EGL_DRIVERS_DIRS="glx"
1381 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1382 [have_libudev=yes],[have_libudev=no])
1383 if test "$have_libudev" = yes; then
1384 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1386 if test "x$enable_dri" = xyes; then
1387 # build egl_dri2 when xcb-dri2 is available
1388 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1389 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1391 if test "$have_xcb_dri2" = yes; then
1392 EGL_DRIVER_DRI2=dri2
1393 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1394 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1395 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1396 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1400 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1403 AC_SUBST([EGL_LIB_DEPS])
1404 AC_SUBST([EGL_DRIVERS_DIRS])
1407 dnl EGL Gallium configuration
1409 if test "x$enable_gallium_egl" = xyes; then
1410 if test "x$with_gallium_drivers" = x; then
1411 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1413 if test "x$enable_egl" = xno; then
1414 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1416 if test "x$have_libdrm" != xyes; then
1417 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1420 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1421 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1426 dnl gbm Gallium configuration
1428 if test "x$enable_gallium_gbm" = xauto; then
1429 case "$enable_gbm$HAVE_ST_EGL$with_egl_platforms" in
1431 enable_gallium_gbm=yes ;;
1433 enable_gallium_gbm=no ;;
1436 if test "x$enable_gallium_gbm" = xyes; then
1437 if test "x$with_gallium_drivers" = x; then
1438 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1440 if test "x$enable_gbm" = xno; then
1441 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1444 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1445 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1450 dnl X.Org DDX configuration
1452 if test "x$enable_xorg" = xyes; then
1453 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1454 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1455 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1456 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1457 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1458 HAVE_XEXTPROTO_71="no")
1459 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1464 dnl XA configuration
1466 if test "x$enable_xa" = xyes; then
1467 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1472 dnl OpenVG configuration
1476 if test "x$enable_openvg" = xyes; then
1477 if test "x$enable_egl" = xno; then
1478 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1480 if test "x$with_gallium_drivers" = x; then
1481 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1483 if test "x$enable_gallium_egl" = xno; then
1484 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1487 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1488 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1489 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1490 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1495 dnl D3D1X configuration
1498 if test "x$enable_d3d1x" = xyes; then
1499 if test "x$with_gallium_drivers" = x; then
1500 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1503 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1508 dnl Gallium G3DVL configuration
1510 AC_ARG_ENABLE([gallium-g3dvl],
1511 [AS_HELP_STRING([--enable-gallium-g3dvl],
1512 [build gallium g3dvl @<:@default=disabled@:>@])],
1513 [enable_gallium_g3dvl="$enableval"],
1514 [enable_gallium_g3dvl=no])
1515 if test "x$enable_gallium_g3dvl" = xyes; then
1516 if test "x$with_gallium_drivers" = x; then
1517 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1520 if test "x$enable_xvmc" = xauto; then
1521 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1524 if test "x$enable_vdpau" = xauto; then
1525 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1528 if test "x$enable_va" = xauto; then
1529 #don't enable vaapi state tracker even if package exists
1530 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1535 if test "x$enable_xvmc" = xyes; then
1536 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1537 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1541 if test "x$enable_vdpau" = xyes; then
1542 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1543 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1547 if test "x$enable_va" = xyes; then
1548 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1549 AC_MSG_WARN([vaapi state tracker currently unmaintained])
1550 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1555 dnl GLU configuration
1557 AC_ARG_ENABLE([glu],
1558 [AS_HELP_STRING([--disable-glu],
1559 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1560 [enable_glu="$enableval"],
1563 if test "x$enable_glu" = xyes; then
1564 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1565 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1570 if test "x$enable_glu" = xyes; then
1571 SRC_DIRS="$SRC_DIRS glu"
1573 if test "x$enable_glx" = xno; then
1574 # Link libGLU to libOSMesa instead of libGL
1577 if test "$enable_static" = no; then
1578 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1583 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1585 GLU_PC_LIB_PRIV="-lm"
1586 if test "$enable_static" = no; then
1588 GLU_MESA_DEPS='-l$(GL_LIB)'
1592 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1596 if test "$enable_static" = no; then
1597 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1599 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1600 AC_SUBST([GLU_LIB_DEPS])
1601 AC_SUBST([GLU_MESA_DEPS])
1602 AC_SUBST([GLU_PC_REQ])
1603 AC_SUBST([GLU_PC_REQ_PRIV])
1604 AC_SUBST([GLU_PC_LIB_PRIV])
1605 AC_SUBST([GLU_PC_CFLAGS])
1608 dnl GLw configuration
1610 AC_ARG_ENABLE([glw],
1611 [AS_HELP_STRING([--disable-glw],
1612 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
1613 [enable_glw="$enableval"],
1615 dnl Don't build GLw on osmesa
1616 if test "x$enable_glw" = xyes -a "x$enable_glx" = xno; then
1617 AC_MSG_NOTICE([Disabling GLw since there is no OpenGL driver])
1620 AC_ARG_ENABLE([motif],
1621 [AS_HELP_STRING([--enable-motif],
1622 [use Motif widgets in GLw @<:@default=disabled@:>@])],
1623 [enable_motif="$enableval"],
1626 if test "x$enable_glw" = xyes; then
1627 SRC_DIRS="$SRC_DIRS glw"
1628 if test "$x11_pkgconfig" = yes; then
1629 PKG_CHECK_MODULES([GLW],[x11 xt])
1630 GLW_PC_REQ_PRIV="x11 xt"
1631 GLW_LIB_DEPS="$GLW_LIBS"
1633 # should check these...
1634 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
1635 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1636 GLW_PC_CFLAGS="$X11_INCLUDES"
1639 GLW_SOURCES="GLwDrawA.c"
1641 if test "x$enable_motif" = xyes; then
1642 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1643 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1644 if test "x$MOTIF_CONFIG" != xno; then
1645 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1646 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1648 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1649 [AC_MSG_ERROR([Can't locate Motif headers])])
1650 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1651 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1653 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1654 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
1655 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1656 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
1659 # If static, empty GLW_LIB_DEPS and add libs for programs to link
1660 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
1661 if test "$enable_static" = no; then
1662 GLW_MESA_DEPS='-l$(GL_LIB)'
1663 GLW_LIB_DEPS="$GLW_LIB_DEPS"
1665 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1670 AC_SUBST([GLW_LIB_DEPS])
1671 AC_SUBST([GLW_MESA_DEPS])
1672 AC_SUBST([GLW_SOURCES])
1673 AC_SUBST([MOTIF_CFLAGS])
1674 AC_SUBST([GLW_PC_REQ_PRIV])
1675 AC_SUBST([GLW_PC_LIB_PRIV])
1676 AC_SUBST([GLW_PC_CFLAGS])
1679 dnl Program library dependencies
1680 dnl Only libm is added here if necessary as the libraries should
1681 dnl be pulled in by the linker
1683 if test "x$APP_LIB_DEPS" = x; then
1686 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1689 APP_LIB_DEPS="-lX11"
1696 AC_SUBST([APP_LIB_DEPS])
1697 AC_SUBST([PROGRAM_DIRS])
1700 dnl Gallium configuration
1702 if test "x$with_gallium_drivers" != x; then
1703 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1706 AC_SUBST([LLVM_CFLAGS])
1707 AC_SUBST([LLVM_LIBS])
1708 AC_SUBST([LLVM_LDFLAGS])
1709 AC_SUBST([LLVM_VERSION])
1711 case "x$enable_opengl$enable_gles1$enable_gles2" in
1713 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1717 AC_SUBST([VG_LIB_DEPS])
1718 AC_SUBST([EGL_CLIENT_APIS])
1720 AC_ARG_WITH([egl-platforms],
1721 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1722 [comma delimited native platforms libEGL supports, e.g.
1723 "x11,drm" @<:@default=auto@:>@])],
1724 [with_egl_platforms="$withval"],
1725 [with_egl_platforms=yes])
1728 WAYLAND_EGL_LIB_DEPS=""
1730 case "$with_egl_platforms" in
1732 if test "x$enable_egl" = xyes; then
1737 if test "x$enable_egl" != xyes; then
1738 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1740 # verify the requested driver directories exist
1741 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1742 for plat in $egl_platforms; do
1743 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1744 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1745 if test "$plat" = "fbdev"; then
1746 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1748 if test "$plat" = "wayland"; then
1749 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1750 [AC_MSG_ERROR([cannot find libwayland-client])])
1751 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1752 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1754 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1755 AC_MSG_ERROR([EGL platform drm needs gbm])
1757 case "$plat$have_libudev" in
1759 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1762 EGL_PLATFORMS="$egl_platforms"
1765 AC_SUBST([EGL_PLATFORMS])
1767 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1768 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1769 WAYLAND_EGL_PC_LIB_PRIV=
1770 WAYLAND_EGL_PC_CFLAGS=
1772 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1773 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1774 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1777 AC_ARG_WITH([egl-driver-dir],
1778 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1779 [directory for EGL drivers [[default=${libdir}/egl]]])],
1780 [EGL_DRIVER_INSTALL_DIR="$withval"],
1781 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1782 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1784 AC_ARG_WITH([xorg-driver-dir],
1785 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1786 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1787 [XORG_DRIVER_INSTALL_DIR="$withval"],
1788 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1789 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1791 AC_ARG_WITH([max-width],
1792 [AS_HELP_STRING([--with-max-width=N],
1793 [Maximum framebuffer width (4096)])],
1794 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1795 AS_IF([test "${withval}" -gt "4096"],
1796 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1798 AC_ARG_WITH([max-height],
1799 [AS_HELP_STRING([--with-max-height=N],
1800 [Maximum framebuffer height (4096)])],
1801 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1802 AS_IF([test "${withval}" -gt "4096"],
1803 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1809 AC_ARG_ENABLE([gallium-llvm],
1810 [AS_HELP_STRING([--enable-gallium-llvm],
1811 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1812 [enable_gallium_llvm="$enableval"],
1813 [enable_gallium_llvm=auto])
1814 if test "x$with_gallium_drivers" = x; then
1815 enable_gallium_llvm=no
1817 if test "x$enable_gallium_llvm" = xauto; then
1819 i*86|x86_64) enable_gallium_llvm=yes;;
1822 if test "x$enable_gallium_llvm" = xyes; then
1823 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1825 if test "x$LLVM_CONFIG" != xno; then
1826 LLVM_VERSION=`$LLVM_CONFIG --version`
1827 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed 's/-DNDEBUG\>//g'`
1828 LLVM_LIBS="`$LLVM_CONFIG --libs` -lstdc++"
1830 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1831 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1840 dnl Directory for VDPAU libs
1841 AC_ARG_WITH([vdpau-libdir],
1842 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1843 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1844 [VDPAU_LIB_INSTALL_DIR="$withval"],
1845 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1846 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1848 dnl Directory for VA libs
1849 AC_ARG_WITH([va-libdir],
1850 [AS_HELP_STRING([--with-va-libdir=DIR],
1851 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1852 [VA_LIB_INSTALL_DIR="$withval"],
1853 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1854 AC_SUBST([VA_LIB_INSTALL_DIR])
1857 dnl Gallium helper functions
1859 gallium_check_st() {
1860 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1861 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1862 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1863 if test "x$have_libdrm" != xyes; then
1864 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1866 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1868 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1869 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1871 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1872 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1874 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1875 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1877 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1878 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1879 NEED_G3DVL_DRI="yes"
1881 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1882 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1883 NEED_G3DVL_DRI="yes"
1885 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1886 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1887 NEED_G3DVL_DRI="yes"
1891 gallium_require_llvm() {
1892 if test "x$MESA_LLVM" = x0; then
1894 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1900 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1901 if test "x$with_gallium_drivers" != x; then
1902 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1903 for driver in $gallium_drivers; do
1906 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1907 gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx" "xa-vmwgfx"
1910 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1911 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1912 if test "x$MESA_LLVM" = x1; then
1913 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1915 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1916 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1919 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1920 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965 softpipe"
1921 if test "x$MESA_LLVM" = x1; then
1922 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1924 gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1927 gallium_require_llvm "Gallium R300"
1928 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1929 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1932 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1933 gallium_check_st "r600/drm" "dri-r600" "" "" "xvmc-r600" "vdpau-r600" "va-r600"
1936 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1937 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1938 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau"
1941 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1942 if test "x$MESA_LLVM" = x1; then
1943 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1946 if test "x$HAVE_ST_DRI" = xyes; then
1947 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1949 if test "x$HAVE_ST_VDPAU" = xyes; then
1950 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1952 if test "x$HAVE_ST_XVMC" = xyes; then
1953 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1955 if test "x$HAVE_ST_VA" = xyes; then
1956 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1958 if test "x$HAVE_ST_VDPAU" == xyes ||
1959 test "x$HAVE_ST_XVMC" == xyes ||
1960 test "x$HAVE_ST_VA" == xyes; then
1961 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1962 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1967 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1973 if test "x$NEED_G3DVL_DRI" = xyes; then
1974 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1977 dnl prepend CORE_DIRS to SRC_DIRS
1978 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1980 dnl Restore LDFLAGS and CPPFLAGS
1981 LDFLAGS="$_SAVE_LDFLAGS"
1982 CPPFLAGS="$_SAVE_CPPFLAGS"
1984 dnl Add user CFLAGS and CXXFLAGS
1985 CFLAGS="$CFLAGS $USER_CFLAGS"
1986 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1988 dnl Substitute the config
1989 AC_CONFIG_FILES([configs/autoconf])
1991 dnl Replace the configs/current symlink
1992 AC_CONFIG_COMMANDS([configs],[
1993 if test -f configs/current || test -L configs/current; then
1994 rm -f configs/current
1996 ln -s autoconf configs/current
1999 dnl Sort the dirs alphabetically
2000 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort|tr "\n" " "`
2001 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort|tr "\n" " "`
2002 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort|tr "\n" " "`
2003 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort|tr "\n" " "`
2008 dnl Output some configuration info for the user
2011 echo " prefix: $prefix"
2012 echo " exec_prefix: $exec_prefix"
2013 echo " libdir: $libdir"
2014 echo " includedir: $includedir"
2018 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
2019 echo " OpenVG: $enable_openvg"
2023 if test "x$enable_osmesa" != xno; then
2024 echo " OSMesa: lib$OSMESA_LIB"
2029 if test "x$enable_dri" != xno; then
2030 # cleanup the drivers var
2031 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2032 if test "x$DRI_DIRS" = x; then
2033 echo " DRI drivers: no"
2035 echo " DRI drivers: $dri_dirs"
2037 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
2038 echo " Shared dricore: $enable_dricore"
2041 case "x$enable_glx$enable_xlib_glx" in
2043 echo " GLX: Xlib-based"
2046 echo " GLX: DRI-based"
2047 echo " Use XCB: $enable_xcb"
2050 echo " GLX: $enable_glx"
2055 echo " GLU: $enable_glu"
2056 echo " GLw: $enable_glw (Motif: $enable_motif)"
2060 echo " EGL: $enable_egl"
2061 if test "$enable_egl" = yes; then
2062 echo " EGL platforms: $EGL_PLATFORMS"
2065 for d in $EGL_DRIVERS_DIRS; do
2066 egl_drivers="$egl_drivers builtin:egl_$d"
2069 if test "x$HAVE_ST_EGL" = xyes; then
2070 echo " EGL drivers: ${egl_drivers} egl_gallium"
2071 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2073 echo " EGL drivers: $egl_drivers"
2078 if test "x$MESA_LLVM" = x1; then
2080 echo " llvm-config: $LLVM_CONFIG"
2081 echo " llvm-version: $LLVM_VERSION"
2087 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2088 echo " Gallium: yes"
2089 echo " Gallium dirs: $GALLIUM_DIRS"
2090 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2091 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2092 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2093 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2100 echo " Shared libs: $enable_shared"
2101 echo " Static libs: $enable_static"
2103 dnl Compiler options
2104 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2105 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2106 $SED 's/^ *//;s/ */ /;s/ *$//'`
2107 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2108 $SED 's/^ *//;s/ */ /;s/ *$//'`
2109 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2111 echo " CFLAGS: $cflags"
2112 echo " CXXFLAGS: $cxxflags"
2113 echo " Macros: $defines"
2115 echo " PYTHON2: $PYTHON2"
2118 echo " Run '${MAKE-make}' to build Mesa"