st/omx: initial OpenMAX support
[mesa/omx.git] / configure.ac
blob5a7df71558a897d507a82a50a4de68e9fcbeb084
1 dnl Process this file with autoconf to create configure.
3 AC_PREREQ([2.60])
5 dnl Tell the user about autoconf.html in the --help output
6 m4_divert_once([HELP_END], [
7 See docs/autoconf.html for more details on the options for Mesa.])
9 m4_define(MESA_VERSION, m4_normalize(m4_include(VERSION)))
10 AC_INIT([Mesa], [MESA_VERSION],
11     [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
12 AC_CONFIG_AUX_DIR([bin])
13 AC_CONFIG_MACRO_DIR([m4])
14 AC_CANONICAL_SYSTEM
15 AM_INIT_AUTOMAKE([foreign])
17 # Support silent build rules, requires at least automake-1.11. Disable
18 # by either passing --disable-silent-rules to configure or passing V=1
19 # to make
20 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
21     [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
23 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
25 dnl Set internal versions
26 OSMESA_VERSION=8
27 AC_SUBST([OSMESA_VERSION])
29 dnl Versions for external dependencies
30 LIBDRM_REQUIRED=2.4.24
31 LIBDRM_RADEON_REQUIRED=2.4.46
32 LIBDRM_INTEL_REQUIRED=2.4.49
33 LIBDRM_NVVIEUX_REQUIRED=2.4.33
34 LIBDRM_NOUVEAU_REQUIRED="2.4.33 libdrm >= 2.4.41"
35 LIBDRM_FREEDRENO_REQUIRED=2.4.39
36 DRI2PROTO_REQUIRED=2.6
37 GLPROTO_REQUIRED=1.4.14
39 dnl Check for progs
40 AC_PROG_CPP
41 AC_PROG_CC
42 AC_PROG_CXX
43 AM_PROG_CC_C_O
44 AM_PROG_AS
45 AC_CHECK_PROGS([MAKE], [gmake make])
46 AC_CHECK_PROGS([PYTHON2], [python2 python])
47 AX_PYTHON_MODULE([libxml2], [needed])
48 AC_PROG_SED
49 AC_PROG_MKDIR_P
51 LT_PREREQ([2.2])
52 LT_INIT([disable-static])
54 AX_PROG_BISON([],
55               AS_IF([test ! -f "$srcdir/src/glsl/glcpp/glcpp-parse.c"],
56                     [AC_MSG_ERROR([bison not found - unable to compile glcpp-parse.y])]))
57 AX_PROG_FLEX([],
58              AS_IF([test ! -f "$srcdir/src/glsl/glcpp/glcpp-lex.c"],
59                    [AC_MSG_ERROR([flex not found - unable to compile glcpp-lex.l])]))
61 AC_PATH_PROG([PERL], [perl])
63 AC_CHECK_PROG(INDENT, indent, indent, cat)
64 if test "x$INDENT" != "xcat"; then
65     AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -TGLubyte -TGLbyte -TBool')
68 AC_PROG_INSTALL
70 dnl We need a POSIX shell for parts of the build. Assume we have one
71 dnl in most cases.
72 case "$host_os" in
73 solaris*)
74     # Solaris /bin/sh is too old/non-POSIX compliant
75     AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
76     SHELL="$POSIX_SHELL"
77     ;;
78 esac
80 dnl clang is mostly GCC-compatible, but its version is much lower,
81 dnl so we have to check for it.
82 AC_MSG_CHECKING([if compiling with clang])
84 AC_COMPILE_IFELSE(
85 [AC_LANG_PROGRAM([], [[
86 #ifndef __clang__
87        not clang
88 #endif
89 ]])],
90 [acv_mesa_CLANG=yes], [acv_mesa_CLANG=no])
92 AC_MSG_RESULT([$acv_mesa_CLANG])
94 dnl If we're using GCC, make sure that it is at least version 3.3.0.  Older
95 dnl versions are explictly not supported.
96 GEN_ASM_OFFSETS=no
97 if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
98     AC_MSG_CHECKING([whether gcc version is sufficient])
99     major=0
100     minor=0
102     GCC_VERSION=`$CC -dumpversion`
103     if test $? -eq 0; then
104         GCC_VERSION_MAJOR=`echo $GCC_VERSION | cut -d. -f1`
105         GCC_VERSION_MINOR=`echo $GCC_VERSION | cut -d. -f2`
106     fi
108     if test $GCC_VERSION_MAJOR -lt 3 -o $GCC_VERSION_MAJOR -eq 3 -a $GCC_VERSION_MINOR -lt 3 ; then
109         AC_MSG_RESULT([no])
110         AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
111     else
112         AC_MSG_RESULT([yes])
113     fi
115     if test "x$cross_compiling" = xyes; then
116         GEN_ASM_OFFSETS=yes
117     fi
119 AM_CONDITIONAL([GEN_ASM_OFFSETS], test "x$GEN_ASM_OFFSETS" = xyes)
121 dnl Make sure the pkg-config macros are defined
122 m4_ifndef([PKG_PROG_PKG_CONFIG],
123     [m4_fatal([Could not locate the pkg-config autoconf macros.
124   These are usually located in /usr/share/aclocal/pkg.m4. If your macros
125   are in a different location, try setting the environment variable
126   ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
127 PKG_PROG_PKG_CONFIG()
129 dnl LIB_DIR - library basename
130 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
131 AC_SUBST([LIB_DIR])
133 dnl Cache LDFLAGS and CPPFLAGS so we can add to them and restore later
134 _SAVE_LDFLAGS="$LDFLAGS"
135 _SAVE_CPPFLAGS="$CPPFLAGS"
137 dnl Compiler macros
138 DEFINES=""
139 AC_SUBST([DEFINES])
140 case "$host_os" in
141 linux*|*-gnu*|gnu*)
142     DEFINES="$DEFINES -D_GNU_SOURCE -DHAVE_PTHREAD"
143     ;;
144 solaris*)
145     DEFINES="$DEFINES -DHAVE_PTHREAD -DSVR4"
146     ;;
147 cygwin*)
148     DEFINES="$DEFINES -DHAVE_PTHREAD"
149     ;;
150 esac
152 dnl Add flags for gcc and g++
153 if test "x$GCC" = xyes; then
154     case "$host_os" in
155     cygwin*)
156         CFLAGS="$CFLAGS -Wall -std=gnu99"
157         ;;
158     *)
159         CFLAGS="$CFLAGS -Wall -std=c99"
160         ;;
161     esac
163     # Enable -Werror=implicit-function-declaration and
164     # -Werror=missing-prototypes, if available, or otherwise, just
165     # -Wmissing-prototypes.  This is particularly useful to avoid
166     # generating a loadable driver module that has undefined symbols.
167     save_CFLAGS="$CFLAGS"
168     AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
169     CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
170     CFLAGS="$CFLAGS -Werror=missing-prototypes"
171     AC_LINK_IFELSE([AC_LANG_PROGRAM()],
172                    AC_MSG_RESULT([yes]),
173                    [CFLAGS="$save_CFLAGS -Wmissing-prototypes";
174                     AC_MSG_RESULT([no])]);
176     # Enable -fvisibility=hidden if using a gcc that supports it
177     save_CFLAGS="$CFLAGS"
178     AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
179     VISIBILITY_CFLAGS="-fvisibility=hidden"
180     CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
181     AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
182                    [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
184     # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
185     CFLAGS=$save_CFLAGS
187     # Work around aliasing bugs - developers should comment this out
188     CFLAGS="$CFLAGS -fno-strict-aliasing"
190     # gcc's builtin memcmp is slower than glibc's
191     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
192     CFLAGS="$CFLAGS -fno-builtin-memcmp"
194 if test "x$GXX" = xyes; then
195     CXXFLAGS="$CXXFLAGS -Wall"
197     # Enable -fvisibility=hidden if using a gcc that supports it
198     save_CXXFLAGS="$CXXFLAGS"
199     AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
200     VISIBILITY_CXXFLAGS="-fvisibility=hidden"
201     CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
202     AC_LANG_PUSH([C++])
203     AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
204                    [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
205     AC_LANG_POP([C++])
207     # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
208     CXXFLAGS=$save_CXXFLAGS
210     # Work around aliasing bugs - developers should comment this out
211     CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
213     # gcc's builtin memcmp is slower than glibc's
214     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
215     CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
218 dnl even if the compiler appears to support it, using visibility attributes isn't
219 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
220 case "$host_os" in
221 cygwin*)
222     VISIBILITY_CFLAGS=""
223     VISIBILITY_CXXFLAGS=""
224     ;;
225 esac
227 AC_SUBST([VISIBILITY_CFLAGS])
228 AC_SUBST([VISIBILITY_CXXFLAGS])
231 dnl Hacks to enable 32 or 64 bit build
233 AC_ARG_ENABLE([32-bit],
234     [AS_HELP_STRING([--enable-32-bit],
235         [build 32-bit libraries @<:@default=auto@:>@])],
236     [enable_32bit="$enableval"],
237     [enable_32bit=auto]
239 if test "x$enable_32bit" = xyes; then
240     if test "x$GCC" = xyes; then
241         CFLAGS="$CFLAGS -m32"
242         CCASFLAGS="$CCASFLAGS -m32"
243     fi
244     if test "x$GXX" = xyes; then
245         CXXFLAGS="$CXXFLAGS -m32"
246     fi
248 AC_ARG_ENABLE([64-bit],
249     [AS_HELP_STRING([--enable-64-bit],
250         [build 64-bit libraries @<:@default=auto@:>@])],
251     [enable_64bit="$enableval"],
252     [enable_64bit=auto]
254 if test "x$enable_64bit" = xyes; then
255     if test "x$GCC" = xyes; then
256         CFLAGS="$CFLAGS -m64"
257     fi
258     if test "x$GXX" = xyes; then
259         CXXFLAGS="$CXXFLAGS -m64"
260     fi
263 dnl Can't have static and shared libraries, default to static if user
264 dnl explicitly requested. If both disabled, set to static since shared
265 dnl was explicitly requested.
266 case "x$enable_static$enable_shared" in
267 xyesyes )
268     AC_MSG_WARN([Cannot build static and shared libraries, disabling shared])
269     enable_shared=no
270     ;;
271 xnono )
272     AC_MSG_WARN([Cannot disable both static and shared libraries, enabling static])
273     enable_static=yes
274     ;;
275 esac
277 AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes)
280 dnl other compiler options
282 AC_ARG_ENABLE([debug],
283     [AS_HELP_STRING([--enable-debug],
284         [use debug compiler flags and macros @<:@default=disabled@:>@])],
285     [enable_debug="$enableval"],
286     [enable_debug=no]
288 if test "x$enable_debug" = xyes; then
289     DEFINES="$DEFINES -DDEBUG"
290     if test "x$GCC" = xyes; then
291         CFLAGS="$CFLAGS -g -O0"
292     fi
293     if test "x$GXX" = xyes; then
294         CXXFLAGS="$CXXFLAGS -g -O0"
295     fi
299 dnl library names
301 LIB_PREFIX_GLOB='lib'
302 LIB_VERSION_SEPARATOR='.'
303 if test "$enable_static" = yes; then
304     LIB_EXTENSION='a'
305 else
306     case "$host_os" in
307     darwin* )
308         LIB_EXTENSION='dylib' ;;
309     cygwin* )
310         dnl prefix can be 'cyg' or 'lib'
311         LIB_PREFIX_GLOB='???'
312         LIB_VERSION_SEPARATOR='-'
313         LIB_EXTENSION='dll' ;;
314     aix* )
315         LIB_EXTENSION='a' ;;
316     * )
317         LIB_EXTENSION='so' ;;
318     esac
320 AC_ARG_WITH([gl-lib-name],
321   [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
322     [specify GL library name @<:@default=GL@:>@])],
323   [GL_LIB=$withval],
324   [GL_LIB=GL])
325 AC_ARG_WITH([osmesa-lib-name],
326   [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
327     [specify OSMesa library name @<:@default=OSMesa@:>@])],
328   [OSMESA_LIB=$withval],
329   [OSMESA_LIB=OSMesa])
330 AS_IF([test "x$GL_LIB" = xyes], [GL_LIB=GL])
331 AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
334 dnl Mangled Mesa support
336 AC_ARG_ENABLE([mangling],
337   [AS_HELP_STRING([--enable-mangling],
338     [enable mangled symbols and library name @<:@default=disabled@:>@])],
339   [enable_mangling="${enableval}"],
340   [enable_mangling=no]
342 if test "x${enable_mangling}" = "xyes" ; then
343   DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
344   GL_LIB="Mangled${GL_LIB}"
345   OSMESA_LIB="Mangled${OSMESA_LIB}"
347 AC_SUBST([GL_LIB])
348 AC_SUBST([OSMESA_LIB])
351 dnl potentially-infringing-but-nobody-knows-for-sure stuff
353 AC_ARG_ENABLE([texture-float],
354     [AS_HELP_STRING([--enable-texture-float],
355         [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
356     [enable_texture_float="$enableval"],
357     [enable_texture_float=no]
359 if test "x$enable_texture_float" = xyes; then
360     AC_MSG_WARN([Floating-point textures enabled.])
361     AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
362     DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
365 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
366 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
367 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
368 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
369 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
370 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
371 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
373 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
374 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
375 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
376 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
377 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
378 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
379 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
381 AC_SUBST([GL_LIB_NAME])
382 AC_SUBST([OSMESA_LIB_NAME])
383 AC_SUBST([EGL_LIB_NAME])
384 AC_SUBST([GLESv1_CM_LIB_NAME])
385 AC_SUBST([GLESv2_LIB_NAME])
386 AC_SUBST([VG_LIB_NAME])
387 AC_SUBST([GLAPI_LIB_NAME])
389 AC_SUBST([GL_LIB_GLOB])
390 AC_SUBST([EGL_LIB_GLOB])
391 AC_SUBST([GLESv1_CM_LIB_GLOB])
392 AC_SUBST([GLESv2_LIB_GLOB])
393 AC_SUBST([VG_LIB_GLOB])
394 AC_SUBST([GLAPI_LIB_GLOB])
397 dnl Arch/platform-specific settings
399 AC_ARG_ENABLE([asm],
400     [AS_HELP_STRING([--disable-asm],
401         [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
402     [enable_asm="$enableval"],
403     [enable_asm=yes]
405 asm_arch=""
406 AC_MSG_CHECKING([whether to enable assembly])
407 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
408 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
409 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
410     case "$host_cpu" in
411     i?86 | x86_64 | amd64)
412         enable_asm=no
413         AC_MSG_RESULT([no, cross compiling])
414         ;;
415     esac
417 # check for supported arches
418 if test "x$enable_asm" = xyes; then
419     case "$host_cpu" in
420     i?86)
421         case "$host_os" in
422         linux* | *freebsd* | dragonfly* | *netbsd* | openbsd*)
423             test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
424             ;;
425         gnu*)
426             asm_arch=x86
427             ;;
428         esac
429         ;;
430     x86_64|amd64)
431         case "$host_os" in
432         linux* | *freebsd* | dragonfly* | *netbsd* | openbsd*)
433             test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
434             ;;
435         esac
436         ;;
437     sparc*)
438         case "$host_os" in
439         linux*)
440             asm_arch=sparc
441             ;;
442         esac
443         ;;
444     esac
446     case "$asm_arch" in
447     x86)
448         DEFINES="$DEFINES -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
449         AC_MSG_RESULT([yes, x86])
450         ;;
451     x86_64|amd64)
452         DEFINES="$DEFINES -DUSE_X86_64_ASM"
453         AC_MSG_RESULT([yes, x86_64])
454         ;;
455     sparc)
456         DEFINES="$DEFINES -DUSE_SPARC_ASM"
457         AC_MSG_RESULT([yes, sparc])
458         ;;
459     *)
460         AC_MSG_RESULT([no, platform not supported])
461         ;;
462     esac
465 dnl Check to see if dlopen is in default libraries (like Solaris, which
466 dnl has it in libc), or if libdl is needed to get it.
467 AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
468     [AC_CHECK_LIB([dl], [dlopen],
469        [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])])
470 AC_SUBST([DLOPEN_LIBS])
472 case "$host_os" in
473 darwin*|mingw*)
474     ;;
476     AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],
477                    [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt],
478                                  [AC_MSG_ERROR([Couldn't find clock_gettime])])])
479     AC_SUBST([CLOCK_LIB])
480     ;;
481 esac
483 dnl See if posix_memalign is available
484 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
486 dnl Check for pthreads
487 AX_PTHREAD
488 dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS
489 dnl to -pthread, which causes problems if we need -lpthread to appear in
490 dnl pkgconfig files.
491 test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
493 dnl SELinux awareness.
494 AC_ARG_ENABLE([selinux],
495     [AS_HELP_STRING([--enable-selinux],
496         [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
497     [MESA_SELINUX="$enableval"],
498     [MESA_SELINUX=no])
499 if test "x$enable_selinux" = "xyes"; then
500     AC_CHECK_HEADER([selinux/selinux.h],[],
501                     [AC_MSG_ERROR([SELinux headers not found])])
502     AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
503                  [AC_MSG_ERROR([SELinux library not found])])
504     SELINUX_LIBS="-lselinux"
505     DEFINES="$DEFINES -DMESA_SELINUX"
507 AC_SUBST([SELINUX_LIBS])
509 dnl Options for APIs
510 AC_ARG_ENABLE([opengl],
511     [AS_HELP_STRING([--disable-opengl],
512         [disable support for standard OpenGL API @<:@default=no@:>@])],
513     [enable_opengl="$enableval"],
514     [enable_opengl=yes])
515 AC_ARG_ENABLE([gles1],
516     [AS_HELP_STRING([--enable-gles1],
517         [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
518     [enable_gles1="$enableval"],
519     [enable_gles1=no])
520 AC_ARG_ENABLE([gles2],
521     [AS_HELP_STRING([--enable-gles2],
522         [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
523     [enable_gles2="$enableval"],
524     [enable_gles2=no])
525 AC_ARG_ENABLE([openvg],
526     [AS_HELP_STRING([--enable-openvg],
527         [enable support for OpenVG API @<:@default=no@:>@])],
528     [enable_openvg="$enableval"],
529     [enable_openvg=no])
531 AC_ARG_ENABLE([dri],
532     [AS_HELP_STRING([--enable-dri],
533         [enable DRI modules @<:@default=enabled@:>@])],
534     [enable_dri="$enableval"],
535     [enable_dri=yes])
536 AC_ARG_ENABLE([glx],
537     [AS_HELP_STRING([--enable-glx],
538         [enable GLX library @<:@default=enabled@:>@])],
539     [enable_glx="$enableval"],
540     [enable_glx=yes])
541 AC_ARG_ENABLE([osmesa],
542     [AS_HELP_STRING([--enable-osmesa],
543         [enable OSMesa library @<:@default=disabled@:>@])],
544     [enable_osmesa="$enableval"],
545     [enable_osmesa=no])
546 AC_ARG_ENABLE([gallium-osmesa],
547     [AS_HELP_STRING([--enable-gallium-osmesa],
548         [enable Gallium implementation of the OSMesa library @<:@default=disabled@:>@])],
549     [enable_gallium_osmesa="$enableval"],
550     [enable_gallium_osmesa=no])
551 AC_ARG_ENABLE([egl],
552     [AS_HELP_STRING([--disable-egl],
553         [disable EGL library @<:@default=enabled@:>@])],
554     [enable_egl="$enableval"],
555     [enable_egl=yes])
557 AC_ARG_ENABLE([xa],
558     [AS_HELP_STRING([--enable-xa],
559         [enable build of the XA X Acceleration API @<:@default=no@:>@])],
560     [enable_xa="$enableval"],
561     [enable_xa=no])
562 AC_ARG_ENABLE([gbm],
563    [AS_HELP_STRING([--enable-gbm],
564          [enable gbm library @<:@default=auto@:>@])],
565    [enable_gbm="$enableval"],
566    [enable_gbm=auto])
568 AC_ARG_ENABLE([xvmc],
569    [AS_HELP_STRING([--enable-xvmc],
570          [enable xvmc library @<:@default=auto@:>@])],
571    [enable_xvmc="$enableval"],
572    [enable_xvmc=auto])
573 AC_ARG_ENABLE([vdpau],
574    [AS_HELP_STRING([--enable-vdpau],
575          [enable vdpau library @<:@default=auto@:>@])],
576    [enable_vdpau="$enableval"],
577    [enable_vdpau=auto])
578 AC_ARG_ENABLE([omx],
579    [AS_HELP_STRING([--enable-omx],
580          [enable OpenMAX library @<:@default=no@:>@])],
581    [enable_omx="$enableval"],
582    [enable_omx=no])
583 AC_ARG_ENABLE([opencl],
584    [AS_HELP_STRING([--enable-opencl],
585          [enable OpenCL library NOTE: Enabling this option will also enable
586           --with-llvm-shared-libs
587           @<:@default=no@:>@])],
588    [],
589    [enable_opencl=no])
590 AC_ARG_ENABLE([opencl_icd],
591    [AS_HELP_STRING([--enable-opencl-icd],
592           [Build an OpenCL ICD library to be loaded by an ICD implementation
593            @<:@default=no@:>@])],
594     [enable_opencl_icd="$enableval"],
595     [enable_opencl_icd=no])
596 AC_ARG_ENABLE([xlib-glx],
597     [AS_HELP_STRING([--enable-xlib-glx],
598         [make GLX library Xlib-based instead of DRI-based @<:@default=disabled@:>@])],
599     [enable_xlib_glx="$enableval"],
600     [enable_xlib_glx=no])
601 AC_ARG_ENABLE([gallium-egl],
602     [AS_HELP_STRING([--enable-gallium-egl],
603         [enable optional EGL state tracker (not required
604          for EGL support in Gallium with OpenGL and OpenGL ES)
605          @<:@default=disable@:>@])],
606     [enable_gallium_egl="$enableval"],
607     [enable_gallium_egl=no])
608 AC_ARG_ENABLE([gallium-gbm],
609     [AS_HELP_STRING([--enable-gallium-gbm],
610         [enable optional gbm state tracker (not required for
611          gbm support in Gallium)
612          @<:@default=auto@:>@])],
613     [enable_gallium_gbm="$enableval"],
614     [enable_gallium_gbm=auto])
616 AC_ARG_ENABLE([r600-llvm-compiler],
617     [AS_HELP_STRING([--enable-r600-llvm-compiler],
618         [Enable experimental LLVM backend for graphics shaders @<:@default=disable@:>@])],
619     [enable_r600_llvm="$enableval"],
620     [enable_r600_llvm=no])
622 AC_ARG_ENABLE([gallium-tests],
623     [AS_HELP_STRING([--enable-gallium-tests],
624         [Enable optional Gallium tests) @<:@default=disable@:>@])],
625     [enable_gallium_tests="$enableval"],
626     [enable_gallium_tests=no])
628 # Option for Gallium drivers
630 # Keep this in sync with the --with-gallium-drivers help string default value
631 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
633 AC_ARG_WITH([gallium-drivers],
634     [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
635         [comma delimited Gallium drivers list, e.g.
636         "i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast"
637         @<:@default=r300,r600,svga,swrast@:>@])],
638     [with_gallium_drivers="$withval"],
639     [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
641 # Doing '--without-gallium-drivers' will set this variable to 'no'.  Clear it
642 # here so that the script doesn't choke on an unknown driver name later.
643 case "$with_gallium_drivers" in
644     yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
645     no) with_gallium_drivers='' ;;
646 esac
648 if test "x$enable_opengl" = xno -a \
649         "x$enable_gles1" = xno -a \
650         "x$enable_gles2" = xno -a \
651         "x$enable_openvg" = xno -a \
652         "x$enable_xa" = xno -a \
653         "x$enable_xvmc" = xno -a \
654         "x$enable_vdpau" = xno -a \
655         "x$enable_omx" = xno -a \
656         "x$enable_opencl" = xno; then
657     AC_MSG_ERROR([at least one API should be enabled])
660 # Building OpenGL ES1 and/or ES2 without OpenGL is not supported on mesa 9.0.x
661 if test "x$enable_opengl" = xno -a \
662         "x$enable_gles1" = xyes; then
663     AC_MSG_ERROR([Building OpenGL ES1 without OpenGL is not supported])
666 if test "x$enable_opengl" = xno -a \
667         "x$enable_gles2" = xyes; then
668     AC_MSG_ERROR([Building OpenGL ES2 without OpenGL is not supported])
671 AM_CONDITIONAL(HAVE_OPENGL, test "x$enable_opengl" = xyes)
672 AM_CONDITIONAL(HAVE_OPENGL_ES1, test "x$enable_gles1" = xyes)
673 AM_CONDITIONAL(HAVE_OPENGL_ES2, test "x$enable_gles2" = xyes)
674 AM_CONDITIONAL(NEED_OPENGL_COMMON, test "x$enable_opengl" = xyes -o \
675                                         "x$enable_gles1" = xyes -o \
676                                         "x$enable_gles2" = xyes)
678 if test "x$enable_glx" = xno; then
679     AC_MSG_WARN([GLX disabled, disabling Xlib-GLX])
680     enable_xlib_glx=no
683 if test "x$enable_dri$enable_xlib_glx" = xyesyes; then
684     AC_MSG_ERROR([DRI and Xlib-GLX cannot be built together])
687 if test "x$enable_opengl$enable_xlib_glx" = xnoyes; then
688     AC_MSG_ERROR([Xlib-GLX cannot be built without OpenGL])
691 # Disable GLX if OpenGL is not enabled
692 if test "x$enable_glx$enable_opengl" = xyesno; then
693     AC_MSG_WARN([OpenGL not enabled, disabling GLX])
694     enable_glx=no
697 # Disable GLX if DRI and Xlib-GLX are not enabled
698 if test "x$enable_glx" = xyes -a \
699         "x$enable_dri" = xno -a \
700         "x$enable_xlib_glx" = xno; then
701     AC_MSG_WARN([Neither DRI nor Xlib-GLX enabled, disabling GLX])
702     enable_glx=no
705 AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xyes -a \
706                                   "x$enable_dri" = xyes)
707 AM_CONDITIONAL(HAVE_DRI, test "x$enable_dri" = xyes)
709 AC_ARG_ENABLE([shared-glapi],
710     [AS_HELP_STRING([--enable-shared-glapi],
711         [Enable shared glapi for OpenGL @<:@default=yes@:>@])],
712     [enable_shared_glapi="$enableval"],
713     [enable_shared_glapi="$enable_dri"])
715 # Shared GLAPI is only useful for DRI
716 if test "x$enable_dri" = xno; then
717     AC_MSG_NOTICE([Shared GLAPI is only useful for DRI, disabling])
718     enable_shared_glapi=no
721 AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes)
724 dnl Driver specific build directories
726 GALLIUM_TARGET_DIRS=""
727 GALLIUM_WINSYS_DIRS="sw"
728 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
729 GALLIUM_STATE_TRACKERS_DIRS=""
731 case "x$enable_glx$enable_xlib_glx" in
732 xyesyes)
733     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
734     GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
735     GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
736     NEED_WINSYS_XLIB="yes"
737     ;;
738 esac
740 if test "x$enable_dri" = xyes; then
741     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
742     GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
745 if test "x$enable_gallium_osmesa" = xyes; then
746     if test -z "$with_gallium_drivers"; then
747         AC_MSG_ERROR([Cannot enable gallium_osmesa without Gallium])
748     fi
749     if test "x$enable_osmesa" = xyes; then
750         AC_MSG_ERROR([Cannot enable both classic and Gallium OSMesa implementations])
751     fi
752     GALLIUM_STATE_TRACKERS_DIRS="osmesa $GALLIUM_STATE_TRACKERS_DIRS"
753     GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS osmesa"
756 AC_SUBST([MESA_LLVM])
758 # Check for libdrm
759 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
760                   [have_libdrm=yes], [have_libdrm=no])
762 if test "x$enable_dri" = xyes; then
763     # DRI must be shared, I think
764     if test "$enable_static" = yes; then
765         AC_MSG_ERROR([Cannot use static libraries for DRI drivers])
766     fi
768     # not a hard requirement as swrast does not depend on it
769     if test "x$have_libdrm" = xyes; then
770         DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
771     fi
774 dnl Direct rendering or just indirect rendering
775 case "$host_os" in
776 gnu*)
777     dnl Disable by default on GNU/Hurd
778     driglx_direct_default="no"
779     ;;
780 cygwin*)
781     dnl Disable by default on cygwin
782     driglx_direct_default="no"
783     ;;
785     driglx_direct_default="yes"
786     ;;
787 esac
788 AC_ARG_ENABLE([driglx-direct],
789     [AS_HELP_STRING([--disable-driglx-direct],
790         [disable direct rendering in GLX and EGL for DRI \
791             @<:@default=auto@:>@])],
792     [driglx_direct="$enableval"],
793     [driglx_direct="$driglx_direct_default"])
796 dnl libGL configuration per driver
798 case "x$enable_glx$enable_xlib_glx" in
799 xyesyes)
800     # Xlib-based GLX
801     PKG_CHECK_MODULES([XLIBGL], [x11 xext])
802     GL_PC_REQ_PRIV="x11 xext"
803     X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
804     GL_LIB_DEPS="$XLIBGL_LIBS"
805     GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
806     GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm $PTHREAD_LIBS"
807     ;;
808 xyesno)
809     # DRI-based GLX
810     PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
811     if test x"$driglx_direct" = xyes; then
812         if test "x$have_libdrm" != xyes; then
813             AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
814         fi
815         PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
816         GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
817     fi
819     # find the DRI deps for libGL
820     dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= 1.8.1 xcb-dri2 >= 1.8"
822     # add xf86vidmode if available
823     PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
824     if test "$HAVE_XF86VIDMODE" = yes ; then
825         dri_modules="$dri_modules xxf86vm"
826     fi
828     PKG_CHECK_MODULES([DRIGL], [$dri_modules])
829     GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
830     X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
831     GL_LIB_DEPS="$DRIGL_LIBS"
833     # need DRM libs, $PTHREAD_LIBS, etc.
834     GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
835     GL_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
836     ;;
837 esac
839 # This is outside the case (above) so that it is invoked even for non-GLX
840 # builds.
841 AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes)
843 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
844 GLESv1_CM_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
845 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
846 GLESv2_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
848 AC_SUBST([X11_INCLUDES])
849 AC_SUBST([GL_LIB_DEPS])
850 AC_SUBST([GL_PC_REQ_PRIV])
851 AC_SUBST([GL_PC_LIB_PRIV])
852 AC_SUBST([GL_PC_CFLAGS])
853 AC_SUBST([DRI_PC_REQ_PRIV])
854 AC_SUBST([GLESv1_CM_LIB_DEPS])
855 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
856 AC_SUBST([GLESv2_LIB_DEPS])
857 AC_SUBST([GLESv2_PC_LIB_PRIV])
859 AC_SUBST([HAVE_XF86VIDMODE])
862 dnl More GLX setup
864 case "x$enable_glx$enable_xlib_glx" in
865 xyesyes)
866     DEFINES="$DEFINES -DUSE_XSHM"
867     ;;
868 xyesno)
869     DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
870     if test "x$driglx_direct" = xyes; then
871         DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
872     fi
873     ;;
874 esac
877 dnl TLS detection
880 AC_ARG_ENABLE([glx-tls],
881     [AS_HELP_STRING([--enable-glx-tls],
882         [enable TLS support in GLX @<:@default=disabled@:>@])],
883     [GLX_USE_TLS="$enableval"],
884     [GLX_USE_TLS=no])
885 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
887 AS_IF([test "x$GLX_USE_TLS" = xyes -a "x$ax_pthread_ok" = xyes],
888       [DEFINES="${DEFINES} -DGLX_USE_TLS -DHAVE_PTHREAD"])
891 dnl More DRI setup
893 dnl Directory for DRI drivers
894 AC_ARG_WITH([dri-driverdir],
895     [AS_HELP_STRING([--with-dri-driverdir=DIR],
896         [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
897     [DRI_DRIVER_INSTALL_DIR="$withval"],
898     [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
899 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
900 dnl Extra search path for DRI drivers
901 AC_ARG_WITH([dri-searchpath],
902     [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
903         [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
904     [DRI_DRIVER_SEARCH_DIR="$withval"],
905     [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
906 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
907 dnl Which drivers to build - default is chosen by platform
908 AC_ARG_WITH([dri-drivers],
909     [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
910         [comma delimited DRI drivers list, e.g.
911         "swrast,i965,radeon" @<:@default=auto@:>@])],
912     [with_dri_drivers="$withval"],
913     [with_dri_drivers=yes])
914 if test "x$with_dri_drivers" = x; then
915     with_dri_drivers=no
918 dnl If $with_dri_drivers is yes, directories will be added through
919 dnl platform checks
920 DRI_DIRS=""
921 case "$with_dri_drivers" in
922 no) ;;
923 yes)
924     # classic DRI drivers
925     if test "x$enable_opengl" = xyes; then
926         DRI_DIRS="yes"
927     fi
928     ;;
930     # verify the requested driver directories exist
931     dri_drivers=`IFS=', '; echo $with_dri_drivers`
932     for driver in $dri_drivers; do
933         test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
934             AC_MSG_ERROR([DRI driver directory '$driver' does not exist])
935     done
936     DRI_DIRS="$dri_drivers"
937     if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
938         AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
939     fi
940     ;;
941 esac
943 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
944 if test "x$enable_dri" = xyes; then
945     # Platform specific settings and drivers to build
946     case "$host_os" in
947     linux*)
948         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1"
949         DEFINES="$DEFINES -DHAVE_ALIAS"
951         case "$host_cpu" in
952         x86_64|amd64)
953             if test "x$DRI_DIRS" = "xyes"; then
954                 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
955             fi
956             ;;
957         powerpc*)
958             # Build only the drivers for cards that exist on PowerPC.
959             if test "x$DRI_DIRS" = "xyes"; then
960                 DRI_DIRS="r200 radeon swrast"
961             fi
962             ;;
963         sparc*)
964             # Build only the drivers for cards that exist on sparc
965             if test "x$DRI_DIRS" = "xyes"; then
966                 DRI_DIRS="r200 radeon swrast"
967             fi
968             ;;
969         esac
970         ;;
971     *freebsd* | dragonfly* | *netbsd* | openbsd*)
972         DEFINES="$DEFINES -DHAVE_PTHREAD -DUSE_EXTERNAL_DXTN_LIB=1"
973         DEFINES="$DEFINES -DHAVE_ALIAS"
975         if test "x$DRI_DIRS" = "xyes"; then
976             DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
977         fi
978         ;;
979     gnu*)
980         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1"
981         DEFINES="$DEFINES -DHAVE_ALIAS"
982         ;;
983     solaris*)
984         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1"
985         ;;
986     cygwin*)
987         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1"
988         if test "x$DRI_DIRS" = "xyes"; then
989             DRI_DIRS="swrast"
990         fi
991         ;;
992     esac
994     # default drivers
995     if test "x$DRI_DIRS" = "xyes"; then
996         DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
997     fi
999     DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/  */ /g'`
1001     # Check for expat
1002     PKG_CHECK_EXISTS([EXPAT], [have_expat=yes], [have_expat=no])
1003     if test "x$have_expat" = "xyes"; then
1004        PKG_CHECK_MODULES([EXPAT], [expat], [],
1005                          AC_MSG_ERROR([Expat required for DRI.]))
1006     else
1007        # expat version 2.0 and earlier do not provide expat.pc
1008        EXPAT_LIBS=-lexpat
1009     fi
1011     # If we are building any DRI driver other than swrast.
1012     if test -n "$DRI_DIRS"; then
1013         if test x"$DRI_DIRS" != xswrast; then
1014             # ... libdrm is required
1015             if test "x$have_libdrm" != xyes; then
1016                 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1017             fi
1018             DRICOMMON_NEED_LIBDRM=yes
1019         else
1020             DRICOMMON_NEED_LIBDRM=no
1021         fi
1022     fi
1024     # put all the necessary libs together
1025     DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1026     GALLIUM_DRI_LIB_DEPS="$GALLIUM_DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIBS -lm $CLOCK_LIB $PTHREAD_LIBS $DLOPEN_LIBS"
1028     DRI_DRIVER_LDFLAGS="-module -avoid-version -shared -Wl,-Bsymbolic"
1031 AM_CONDITIONAL(NEED_MEGADRIVER, test -n "$DRI_DIRS")
1032 AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_xlib_glx" = xyes -o \
1033                                   "x$enable_osmesa" = xyes -o \
1034                                   -n "$DRI_DIRS")
1035 AC_SUBST([DRI_LIB_DEPS])
1036 AC_SUBST([DRI_DRIVER_LDFLAGS])
1037 AC_SUBST([GALLIUM_DRI_LIB_DEPS])
1039 case $DRI_DIRS in
1040 *i915*|*i965*)
1041     PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1043     for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1044         case $d in
1045         i915)
1046             HAVE_I915_DRI=yes;
1047             ;;
1048         i965)
1049             HAVE_I965_DRI=yes;
1050             ;;
1051         esac
1052     done
1054     ;;
1055 esac
1057 case $DRI_DIRS in
1058 *nouveau*)
1059     PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED])
1060     HAVE_NOUVEAU_DRI=yes;
1061     ;;
1062 esac
1064 case $DRI_DIRS in
1065 *radeon*|*r200*)
1066     PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1068     for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1069         case $d in
1070         radeon)
1071             HAVE_RADEON_DRI=yes;
1072             ;;
1073         r200)
1074             HAVE_R200_DRI=yes;
1075             ;;
1076         esac
1077     done
1079     ;;
1080 esac
1082 case $DRI_DIRS in
1083 *swrast*)
1084     HAVE_SWRAST_DRI=yes;
1085     ;;
1086 esac
1089 dnl OSMesa configuration
1092 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1093 AC_ARG_WITH([osmesa-bits],
1094     [AS_HELP_STRING([--with-osmesa-bits=BITS],
1095         [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1096     [osmesa_bits="$withval"],
1097     [osmesa_bits=8])
1098 if test "x$osmesa_bits" != x8; then
1099     if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1100         AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1101         osmesa_bits=8
1102     fi
1104 case "x$osmesa_bits" in
1106     OSMESA_LIB="${OSMESA_LIB}"
1107     ;;
1108 x16|x32)
1109     OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1110     DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1111     ;;
1113     AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1114     ;;
1115 esac
1117 if test "x$enable_osmesa" = xyes -o "x$enable_gallium_osmesa" = xyes; then
1118     # only link libraries with osmesa if shared
1119     if test "$enable_static" = no; then
1120         OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1121     else
1122         OSMESA_LIB_DEPS=""
1123     fi
1124     OSMESA_MESA_DEPS=""
1125     OSMESA_PC_LIB_PRIV="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1128 AC_SUBST([OSMESA_LIB_DEPS])
1129 AC_SUBST([OSMESA_MESA_DEPS])
1130 AC_SUBST([OSMESA_PC_REQ])
1131 AC_SUBST([OSMESA_PC_LIB_PRIV])
1134 dnl gbm configuration
1136 if test "x$enable_gbm" = xauto; then
1137     case "$with_egl_platforms" in
1138         *drm*)
1139             enable_gbm=yes ;;
1140          *)
1141             enable_gbm=no ;;
1142     esac
1144 if test "x$enable_gbm" = xyes; then
1145     PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1146                       AC_MSG_ERROR([gbm needs udev]))
1148     if test "x$enable_dri" = xyes; then
1149         GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1150         if test "x$enable_shared_glapi" = xno; then
1151             AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1152         fi
1153     fi
1155 AM_CONDITIONAL(HAVE_GBM, test "x$enable_gbm" = xyes)
1156 GBM_PC_REQ_PRIV="libudev"
1157 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1158 AC_SUBST([GBM_PC_REQ_PRIV])
1159 AC_SUBST([GBM_PC_LIB_PRIV])
1162 dnl EGL configuration
1164 EGL_CLIENT_APIS=""
1166 if test "x$enable_egl" = xyes; then
1167     EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS $PTHREAD_LIBS"
1169     AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1171     if test "$enable_static" != yes; then
1172         # build egl_glx when libGL is built
1173         PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1174                           [have_libudev=yes],[have_libudev=no])
1175         if test "$have_libudev" = yes; then
1176             DEFINES="$DEFINES -DHAVE_LIBUDEV"
1177         fi
1179         if test "x$enable_dri" = xyes; then
1180             HAVE_EGL_DRIVER_DRI2=1
1181         fi
1183     fi
1185 AM_CONDITIONAL(HAVE_EGL, test "x$enable_egl" = xyes)
1186 AC_SUBST([EGL_LIB_DEPS])
1189 dnl EGL Gallium configuration
1191 if test "x$enable_gallium_egl" = xyes; then
1192     if test "x$with_gallium_drivers" = x; then
1193         AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1194     fi
1195     if test "x$enable_egl" = xno; then
1196         AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1197     fi
1198     if test "x$have_libdrm" != xyes; then
1199         AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1200     fi
1202     GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1203     GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1205 AM_CONDITIONAL(HAVE_GALLIUM_EGL, test "x$enable_gallium_egl" = xyes)
1208 dnl gbm Gallium configuration
1210 if test "x$enable_gallium_gbm" = xauto; then
1211     case "$enable_gbm$enable_gallium_egl$enable_dri$with_egl_platforms" in
1212         yesyesyes*drm*)
1213             enable_gallium_gbm=yes ;;
1214          *)
1215             enable_gallium_gbm=no ;;
1216     esac
1218 if test "x$enable_gallium_gbm" = xyes; then
1219     if test "x$with_gallium_drivers" = x; then
1220         AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1221     fi
1222     if test "x$enable_gbm" = xno; then
1223         AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1224     fi
1225     # gbm_gallium abuses DRI_LIB_DEPS to link.  Make sure it is set.
1226     if test "x$enable_dri" = xno; then
1227         AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1228     fi
1230     GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1231     GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1232     enable_gallium_loader=yes
1234 AM_CONDITIONAL(HAVE_GALLIUM_GBM, test "x$enable_gallium_gbm" = xyes)
1237 dnl XA configuration
1239 if test "x$enable_xa" = xyes; then
1240     GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1242 AM_CONDITIONAL(HAVE_ST_XA, test "x$enable_xa" = xyes)
1245 dnl OpenVG configuration
1247 VG_LIB_DEPS=""
1249 if test "x$enable_openvg" = xyes; then
1250     if test "x$enable_egl" = xno; then
1251         AC_MSG_ERROR([cannot enable OpenVG without EGL])
1252     fi
1253     if test "x$with_gallium_drivers" = x; then
1254         AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1255     fi
1256     if test "x$enable_gallium_egl" = xno; then
1257         AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1258     fi
1260     EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1261     VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS $PTHREAD_LIBS"
1262     GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1263     VG_PC_LIB_PRIV="-lm $CLOCK_LIB $PTHREAD_LIBS $DLOPEN_LIBS"
1264     AC_SUBST([VG_PC_LIB_PRIV])
1266 AM_CONDITIONAL(HAVE_OPENVG, test "x$enable_openvg" = xyes)
1269 dnl Gallium G3DVL configuration
1271 if test -n "$with_gallium_drivers"; then
1272     if test "x$enable_xvmc" = xauto; then
1273         PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1274     fi
1276     if test "x$enable_vdpau" = xauto; then
1277         PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1278     fi
1280     if test "x$enable_omx" = xauto; then
1281         PKG_CHECK_EXISTS([libomxil-bellagio], [enable_omx=yes], [enable_omx=no])
1282     fi
1285 if test "x$enable_xvmc" = xyes; then
1286     PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 x11-xcb xcb-dri2 >= 1.8])
1287     GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xvmc"
1289 AM_CONDITIONAL(HAVE_ST_XVMC, test "x$enable_xvmc" = xyes)
1291 if test "x$enable_vdpau" = xyes; then
1292     PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1 x11-xcb xcb-dri2 >= 1.8])
1293     GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1295 AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes)
1297 if test "x$enable_omx" = xyes; then
1298     PKG_CHECK_MODULES([OMX], [libomxil-bellagio >= 0.0 x11-xcb xcb-dri2 >= 1.8])
1299     GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS omx"
1301 AM_CONDITIONAL(HAVE_ST_OMX, test "x$enable_omx" = xyes)
1304 dnl OpenCL configuration
1307 AC_ARG_WITH([libclc-path],
1308    [AS_HELP_STRING([--with-libclc-path],
1309          [DEPRECATED: See http://dri.freedesktop.org/wiki/GalliumCompute#How_to_Install])],
1310    [LIBCLC_PATH="$withval"],
1311    [LIBCLC_PATH=""])
1313 if test "x$LIBCLC_PATH" != x; then
1314    AC_MSG_ERROR([The --with-libclc-path option has been deprecated.
1315                   Please review the updated build instructions for clover:
1316                   http://dri.freedesktop.org/wiki/GalliumCompute])
1320 AC_ARG_WITH([clang-libdir],
1321    [AS_HELP_STRING([--with-clang-libdir],
1322          [Path to Clang libraries @<:@default=llvm-config --libdir@:>@])],
1323    [CLANG_LIBDIR="$withval"],
1324    [CLANG_LIBDIR=""])
1326 PKG_CHECK_EXISTS([libclc], [have_libclc=yes], [have_libclc=no])
1328 if test "x$enable_opencl" = xyes; then
1329     if test "x$with_gallium_drivers" = x; then
1330         AC_MSG_ERROR([cannot enable OpenCL without Gallium])
1331     fi
1333     if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 7; then
1334         AC_MSG_ERROR([gcc >= 4.7 is required to build clover])
1335     fi
1337     if test "x$have_libclc" = xno; then
1338         AC_MSG_ERROR([pkg-config cannot find libclc.pc which is required to build clover.
1339                     Make sure the directory containing libclc.pc is specified in your
1340                     PKG_CONFIG_PATH environment variable.
1341                     By default libclc.pc is installed to /usr/local/share/pkgconfig/])
1342     else
1343         LIBCLC_INCLUDEDIR=`$PKG_CONFIG --variable=includedir libclc`
1344         LIBCLC_LIBEXECDIR=`$PKG_CONFIG --variable=libexecdir libclc`
1345         AC_SUBST([LIBCLC_INCLUDEDIR])
1346         AC_SUBST([LIBCLC_LIBEXECDIR])
1347     fi
1349     GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS clover"
1350     GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS opencl"
1351     enable_gallium_loader=yes
1353     if test "x$enable_opencl_icd" = xyes; then
1354         OPENCL_LIBNAME="MesaOpenCL"
1355     else
1356         OPENCL_LIBNAME="OpenCL"
1357     fi
1359 AM_CONDITIONAL(HAVE_CLOVER, test "x$enable_opencl" = xyes)
1360 AM_CONDITIONAL(HAVE_CLOVER_ICD, test "x$enable_opencl_icd" = xyes)
1361 AC_SUBST([OPENCL_LIBNAME])
1364 dnl Gallium configuration
1366 AM_CONDITIONAL(HAVE_GALLIUM, test -n "$with_gallium_drivers")
1368 AC_SUBST([LLVM_BINDIR])
1369 AC_SUBST([LLVM_CFLAGS])
1370 AC_SUBST([LLVM_CPPFLAGS])
1371 AC_SUBST([LLVM_CXXFLAGS])
1372 AC_SUBST([LLVM_LIBDIR])
1373 AC_SUBST([LLVM_LIBS])
1374 AC_SUBST([LLVM_LDFLAGS])
1375 AC_SUBST([LLVM_INCLUDEDIR])
1376 AC_SUBST([LLVM_VERSION])
1377 AC_SUBST([CLANG_RESOURCE_DIR])
1379 case "x$enable_opengl$enable_gles1$enable_gles2" in
1380 x*yes*)
1381     EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1382     ;;
1383 esac
1385 AC_SUBST([VG_LIB_DEPS])
1386 AC_SUBST([EGL_CLIENT_APIS])
1389 dnl EGL Platforms configuration
1391 AC_ARG_WITH([egl-platforms],
1392     [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1393         [comma delimited native platforms libEGL supports, e.g.
1394         "x11,drm" @<:@default=auto@:>@])],
1395     [with_egl_platforms="$withval"],
1396     [if test "x$enable_egl" = xyes; then
1397         with_egl_platforms="x11"
1398     else
1399         with_egl_platforms=""
1400     fi])
1402 if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then
1403     AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1406 # Do per-EGL platform setups and checks
1407 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1408 for plat in $egl_platforms; do
1409         case "$plat" in
1410         wayland)
1411                 PKG_CHECK_MODULES([WAYLAND], [wayland-client >= 1.2.0 wayland-server >= 1.2.0])
1412                 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1414                 WAYLAND_PREFIX=`$PKG_CONFIG --variable=prefix wayland-client`
1415                 AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner],,
1416                              [${WAYLAND_PREFIX}/bin$PATH_SEPARATOR$PATH])
1417                 ;;
1419         x11)
1420                 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 >= 1.8 xcb-xfixes])
1422                 if test "x$enable_glx" = xyes; then
1423                         HAVE_EGL_DRIVER_GLX=1
1424                 fi
1425                 ;;
1427         drm)
1428                 test "x$enable_gbm" = "xno" &&
1429                         AC_MSG_ERROR([EGL platform drm needs gbm])
1430                 ;;
1432         android|fbdev|gdi|null)
1433                 ;;
1435         *)
1436                 AC_MSG_ERROR([EGL platform '$plat' does not exist])
1437                 ;;
1438         esac
1440         case "$plat$have_libudev" in
1441                 waylandno|drmno)
1442                     AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1443         esac
1444 done
1446 # libEGL wants to default to the first platform specified in
1447 # ./configure.  parse that here.
1448 if test "x$egl_platforms" != "x"; then
1449     FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr 'a-z' 'A-Z'`
1450     EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS"
1451 else
1452     EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
1455 if echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1; then
1456     NEED_WINSYS_XLIB=yes
1458 AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1)
1459 AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep 'wayland' >/dev/null 2>&1)
1460 AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep 'drm' >/dev/null 2>&1)
1461 AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep 'fbdev' >/dev/null 2>&1)
1462 AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep 'null' >/dev/null 2>&1)
1464 AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x")
1465 AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != "x")
1467 AC_SUBST([EGL_NATIVE_PLATFORM])
1468 AC_SUBST([EGL_CFLAGS])
1470 # If we don't have the X11 platform, set this define so we don't try to include
1471 # the X11 headers.
1472 if ! echo "$egl_platforms" | grep -q 'x11'; then
1473     DEFINES="$DEFINES -DMESA_EGL_NO_X11_HEADERS"
1474     GL_PC_CFLAGS="$GL_PC_CFLAGS -DMESA_EGL_NO_X11_HEADERS"
1477 AC_ARG_WITH([egl-driver-dir],
1478     [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1479                     [directory for EGL drivers [[default=${libdir}/egl]]])],
1480     [EGL_DRIVER_INSTALL_DIR="$withval"],
1481     [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1482 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1484 AC_ARG_WITH([max-width],
1485     [AS_HELP_STRING([--with-max-width=N],
1486                     [Maximum framebuffer width (4096)])],
1487     [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1488      AS_IF([test "${withval}" -gt "4096"],
1489            [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1491 AC_ARG_WITH([max-height],
1492     [AS_HELP_STRING([--with-max-height=N],
1493                     [Maximum framebuffer height (4096)])],
1494     [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1495      AS_IF([test "${withval}" -gt "4096"],
1496            [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1500 dnl Gallium LLVM
1502 AC_ARG_ENABLE([gallium-llvm],
1503     [AS_HELP_STRING([--enable-gallium-llvm],
1504         [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1505     [enable_gallium_llvm="$enableval"],
1506     [enable_gallium_llvm=auto])
1508 AC_ARG_WITH([llvm-shared-libs],
1509     [AS_HELP_STRING([--with-llvm-shared-libs],
1510         [link with LLVM shared libraries @<:@default=disabled@:>@])],
1511     [],
1512     [with_llvm_shared_libs=no])
1514 AC_ARG_WITH([llvm-prefix],
1515     [AS_HELP_STRING([--with-llvm-prefix],
1516         [Prefix for LLVM installations in non-standard locations])],
1517     [llvm_prefix="$withval"],
1518     [llvm_prefix=""])
1521 # Call this inside ` ` to get the return value.
1522 # $1 is the llvm-config command with arguments.
1523 strip_unwanted_llvm_flags() {
1524     # Use \> (marks the end of the word)
1525     echo `$1` | sed \
1526         -e 's/-DNDEBUG\>//g' \
1527         -e 's/-pedantic\>//g' \
1528         -e 's/-Wcovered-switch-default\>//g' \
1529         -e 's/-O.\>//g' \
1530         -e 's/-g\>//g' \
1531         -e 's/-Wall\>//g' \
1532         -e 's/-fomit-frame-pointer\>//g'
1536 if test "x$with_gallium_drivers" = x; then
1537     enable_gallium_llvm=no
1539 if test "x$enable_gallium_llvm" = xauto; then
1540     case "$host_cpu" in
1541     i*86|x86_64|amd64) enable_gallium_llvm=yes;;
1542     esac
1544 if test "x$enable_gallium_llvm" = xyes; then
1545     if test "x$llvm_prefix" != x; then
1546         AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"])
1547     else
1548         AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1549     fi
1551     if test "x$LLVM_CONFIG" != xno; then
1552         LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1553         LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1554         LLVM_BINDIR=`$LLVM_CONFIG --bindir`
1555         LLVM_CPPFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cppflags"`
1556         LLVM_CFLAGS=$LLVM_CPPFLAGS   # CPPFLAGS seem to be sufficient
1557         LLVM_CXXFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cxxflags"`
1558         LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir`
1559         LLVM_LIBDIR=`$LLVM_CONFIG --libdir`
1561         AC_COMPUTE_INT([LLVM_VERSION_MAJOR], [LLVM_VERSION_MAJOR],
1562             [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
1563         AC_COMPUTE_INT([LLVM_VERSION_MINOR], [LLVM_VERSION_MINOR],
1564             [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
1566         if test "x${LLVM_VERSION_MAJOR}" != x; then
1567             LLVM_VERSION_INT="${LLVM_VERSION_MAJOR}0${LLVM_VERSION_MINOR}"
1568         else
1569             LLVM_VERSION_INT=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/\10\2/g'`
1570         fi
1572         LLVM_COMPONENTS="engine bitwriter"
1573         if $LLVM_CONFIG --components | grep -qw 'mcjit'; then
1574             LLVM_COMPONENTS="${LLVM_COMPONENTS} mcjit"
1575         fi
1577         if test "x$enable_opencl" = xyes; then
1578             LLVM_COMPONENTS="${LLVM_COMPONENTS} ipo linker instrumentation"
1579             # LLVM 3.3 >= 177971 requires IRReader
1580             if $LLVM_CONFIG --components | grep -qw 'irreader'; then
1581                 LLVM_COMPONENTS="${LLVM_COMPONENTS} irreader"
1582             fi
1583             # LLVM 3.4 requires Option
1584             if $LLVM_CONFIG --components | grep -qw 'option'; then
1585                 LLVM_COMPONENTS="${LLVM_COMPONENTS} option"
1586             fi
1587         fi
1588         DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT"
1589         MESA_LLVM=1
1591         dnl Check for Clang internal headers
1592         if test "x$enable_opencl" = xyes; then
1593             if test "x$CLANG_LIBDIR" = x; then
1594                 CLANG_LIBDIR=${LLVM_LIBDIR}
1595             fi
1596             CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
1597             AS_IF([test ! -f "$CLANG_RESOURCE_DIR/include/stddef.h"],
1598                 [AC_MSG_ERROR([Could not find clang internal header stddef.h in $CLANG_RESOURCE_DIR Use --with-clang-libdir to specify the correct path to the clang libraries.])])
1599         fi
1600     else
1601         MESA_LLVM=0
1602         LLVM_VERSION_INT=0
1603     fi
1604 else
1605     MESA_LLVM=0
1606     LLVM_VERSION_INT=0
1609 dnl Directory for XVMC libs
1610 AC_ARG_WITH([xvmc-libdir],
1611     [AS_HELP_STRING([--with-xvmc-libdir=DIR],
1612         [directory for the XVMC libraries @<:@default=${libdir}@:>@])],
1613     [XVMC_LIB_INSTALL_DIR="$withval"],
1614     [XVMC_LIB_INSTALL_DIR='${libdir}'])
1615 AC_SUBST([XVMC_LIB_INSTALL_DIR])
1618 dnl Gallium Tests
1620 if test "x$enable_gallium_tests" = xyes; then
1621     enable_gallium_loader=yes
1623 AM_CONDITIONAL(HAVE_GALLIUM_TESTS, test "x$enable_gallium_tests" = xyes)
1625 if test "x$enable_gallium_loader" = xyes; then
1626     GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS pipe-loader"
1628 AM_CONDITIONAL(NEED_GALLIUM_LOADER, test "x$enable_gallium_loader" = xyes)
1630 dnl Directory for VDPAU libs
1631 AC_ARG_WITH([vdpau-libdir],
1632     [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1633         [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1634     [VDPAU_LIB_INSTALL_DIR="$withval"],
1635     [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1636 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1638 AC_ARG_WITH([omx-libdir],
1639     [AS_HELP_STRING([--with-omx-libdir=DIR],
1640         [directory for the OMX libraries])],
1641     [OMX_LIB_INSTALL_DIR="$withval"],
1642     [OMX_LIB_INSTALL_DIR=`$PKG_CONFIG --variable=pluginsdir libomxil-bellagio`])
1643 AC_SUBST([OMX_LIB_INSTALL_DIR])
1645 dnl Directory for OpenCL libs
1646 AC_ARG_WITH([opencl-libdir],
1647     [AS_HELP_STRING([--with-opencl-libdir=DIR],
1648         [directory for auxiliary libraries used by the OpenCL implementation @<:@default=${libdir}/opencl@:>@])],
1649     [OPENCL_LIB_INSTALL_DIR="$withval"],
1650     [OPENCL_LIB_INSTALL_DIR='${libdir}/opencl'])
1651 AC_SUBST([OPENCL_LIB_INSTALL_DIR])
1654 dnl Gallium helper functions
1656 gallium_check_st() {
1657     if test "x$NEED_NONNULL_WINSYS" = xyes; then
1658          if test "x$have_libdrm" != xyes; then
1659             AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1660          fi
1661          GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1662     fi
1663     if test "x$enable_dri" = xyes && test "x$2" != x; then
1664          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1665     fi
1666     if test "x$enable_xa" = xyes && test "x$3" != x; then
1667          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1668     fi
1669     if test "x$enable_xvmc" = xyes && test "x$4" != x; then
1670          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1671     fi
1672     if test "x$enable_vdpau" = xyes && test "x$5" != x; then
1673          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1674     fi
1675     if test "x$enable_omx" = xyes && test "x$6" != x; then
1676          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1677     fi
1680 gallium_require_llvm() {
1681     if test "x$MESA_LLVM" = x0; then
1682         case "$host_cpu" in
1683         i*86|x86_64|amd64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1684         esac
1685     fi
1688 gallium_require_drm_loader() {
1689     if test "x$enable_gallium_loader" = xyes; then
1690         PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1691                           AC_MSG_ERROR([Gallium drm loader requires libudev]))
1692         if test "x$have_libdrm" != xyes; then
1693             AC_MSG_ERROR([Gallium drm loader requires libdrm >= $LIBDRM_REQUIRED])
1694         fi
1695         enable_gallium_drm_loader=yes
1696     fi
1699 radeon_llvm_check() {
1700     LLVM_REQUIRED_VERSION_MAJOR="3"
1701     LLVM_REQUIRED_VERSION_MINOR="3"
1702     if test "$LLVM_VERSION_INT" -lt "${LLVM_REQUIRED_VERSION_MAJOR}0${LLVM_REQUIRED_VERSION_MINOR}"; then
1703         AC_MSG_ERROR([LLVM $LLVM_REQUIRED_VERSION_MAJOR.$LLVM_REQUIRED_VERSION_MINOR or newer is required for r600g and radeonsi.])
1704     fi
1705     if test true && $LLVM_CONFIG --targets-built | grep -qvw 'R600' ; then
1706         AC_MSG_ERROR([LLVM R600 Target not enabled.  You can enable it when building the LLVM
1707                       sources with the --enable-experimental-targets=R600
1708                       configure flag])
1709     fi
1710     LLVM_COMPONENTS="${LLVM_COMPONENTS} r600 bitreader ipo"
1711     NEED_RADEON_LLVM=yes
1712     AC_CHECK_LIB([elf], [elf_memory], [ELF_LIB=-lelf],
1713                                  [AC_MSG_ERROR([radeonsi and r600g require libelf when using LLVM])])
1716 dnl Gallium drivers
1717 if test "x$enable_dri" = xyes -o "x$enable_xa" = xyes -o \
1718         "x$enable_xvmc" = xyes -o "x$enable_vdpau" = xyes; then
1719     NEED_NONNULL_WINSYS=yes
1721 AM_CONDITIONAL(NEED_NONNULL_WINSYS, test "x$NEED_NONNULL_WINSYS" = xyes)
1723 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1724 if test "x$with_gallium_drivers" != x; then
1725     gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1726     for driver in $gallium_drivers; do
1727         case "x$driver" in
1728         xsvga)
1729             HAVE_GALLIUM_SVGA=yes
1730             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1731             gallium_check_st "svga/drm" "dri-vmwgfx" "xa-vmwgfx"
1732             ;;
1733         xi915)
1734             HAVE_GALLIUM_I915=yes
1735             PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1736             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1737             if test "x$MESA_LLVM" = x1; then
1738                 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1739             fi
1740             GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1741             gallium_check_st "i915/drm" "dri-i915"
1742             DRICOMMON_NEED_LIBDRM=yes
1743             ;;
1744         xilo)
1745             HAVE_GALLIUM_ILO=yes
1746             PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1747             gallium_require_drm_loader
1748             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS ilo"
1749             gallium_check_st "intel/drm" "dri-ilo"
1750             DRICOMMON_NEED_LIBDRM=yes
1751             ;;
1752         xr300)
1753             HAVE_GALLIUM_R300=yes
1754             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1755             gallium_require_llvm "Gallium R300"
1756             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1757             gallium_check_st "radeon/drm" "r300/dri" "" "" ""
1758             DRICOMMON_NEED_LIBDRM=yes
1759             ;;
1760         xr600)
1761             HAVE_GALLIUM_R600=yes
1762             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1763             gallium_require_drm_loader
1764             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1765             if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then
1766                 radeon_llvm_check
1767                 LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
1768             fi
1769             if test "x$enable_r600_llvm" = xyes; then
1770                 USE_R600_LLVM_COMPILER=yes;
1771             fi
1772             if test "x$enable_opencl" = xyes; then
1773                 LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
1774             fi
1775             gallium_check_st "radeon/drm" "r600/dri" "" "r600/xvmc" "r600/vdpau" "r600/omx"
1776             DRICOMMON_NEED_LIBDRM=yes
1777             ;;
1778         xradeonsi)
1779             HAVE_GALLIUM_RADEONSI=yes
1780             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1781             gallium_require_drm_loader
1782             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS radeonsi"
1783             radeon_llvm_check
1784             gallium_check_st "radeon/drm" "radeonsi/dri" "" "" "radeonsi/vdpau" "radeonsi/omx"
1785             DRICOMMON_NEED_LIBDRM=yes
1786             ;;
1787         xnouveau)
1788             HAVE_GALLIUM_NOUVEAU=yes
1789             PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1790             gallium_require_drm_loader
1791             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau"
1792             gallium_check_st "nouveau/drm" "dri-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1793             DRICOMMON_NEED_LIBDRM=yes
1794             ;;
1795         xfreedreno)
1796             HAVE_GALLIUM_FREEDRENO=yes
1797             PKG_CHECK_MODULES([FREEDRENO], [libdrm_freedreno >= $LIBDRM_FREEDRENO_REQUIRED])
1798             gallium_require_drm_loader
1799             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS freedreno"
1800             gallium_check_st "freedreno/drm" "dri-freedreno" "" "" ""
1801             DRICOMMON_NEED_LIBDRM=yes
1802             ;;
1803         xswrast)
1804             HAVE_GALLIUM_SOFTPIPE=yes
1805             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1806             if test "x$MESA_LLVM" = x1; then
1807                 HAVE_GALLIUM_LLVMPIPE=yes
1808                 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1809             fi
1811             if test "x$enable_dri" = xyes; then
1812                 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1813             fi
1814             ;;
1815         *)
1816             AC_MSG_ERROR([Unknown Gallium driver: $driver])
1817             ;;
1818         esac
1819     done
1822 dnl Set LLVM_LIBS - This is done after the driver configuration so
1823 dnl that drivers can add additonal components to LLVM_COMPONENTS.
1824 dnl Previously, gallium drivers were updating LLVM_LIBS directly
1825 dnl by calling llvm-config --libs ${DRIVER_LLVM_COMPONENTS}, but
1826 dnl this was causing the same libraries to be appear multiple times
1827 dnl in LLVM_LIBS.
1829 if test "x$MESA_LLVM" != x0; then
1831     LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
1833     if test "x$with_llvm_shared_libs" = xyes; then
1834         dnl We can't use $LLVM_VERSION because it has 'svn' stripped out,
1835         LLVM_SO_NAME=LLVM-`$LLVM_CONFIG --version`
1836         AS_IF([test -f "$LLVM_LIBDIR/lib$LLVM_SO_NAME.so"], [llvm_have_one_so=yes])
1838         if test "x$llvm_have_one_so" = xyes; then
1839             dnl LLVM was built using auto*, so there is only one shared object.
1840             LLVM_LIBS="-l$LLVM_SO_NAME"
1841         else
1842             dnl If LLVM was built with CMake, there will be one shared object per
1843             dnl component.
1844             AS_IF([test ! -f "$LLVM_LIBDIR/libLLVMTarget.so"],
1845                     [AC_MSG_ERROR([Could not find llvm shared libraries:
1846         Please make sure you have built llvm with the --enable-shared option
1847         and that your llvm libraries are installed in $LLVM_LIBDIR
1848         If you have installed your llvm libraries to a different directory you
1849         can use the --with-llvm-prefix= configure flag to specify this directory.
1850         NOTE: Mesa is attempting to use llvm shared libraries because you have
1851         passed one of the following options to configure:
1852                 --with-llvm-shared-libs
1853                 --enable-opencl
1854         If you do not want to build with llvm shared libraries and instead want to
1855         use llvm static libraries then remove these options from your configure
1856         invocation and reconfigure.])])
1858            dnl We don't need to update LLVM_LIBS in this case because the LLVM
1859            dnl install uses a shared object for each compoenent and we have
1860            dnl already added all of these objects to LLVM_LIBS.
1861         fi
1862     fi
1865 AM_CONDITIONAL(HAVE_GALLIUM_SVGA, test "x$HAVE_GALLIUM_SVGA" = xyes)
1866 AM_CONDITIONAL(HAVE_GALLIUM_I915, test "x$HAVE_GALLIUM_I915" = xyes)
1867 AM_CONDITIONAL(HAVE_GALLIUM_ILO, test "x$HAVE_GALLIUM_ILO" = xyes)
1868 AM_CONDITIONAL(HAVE_GALLIUM_R300, test "x$HAVE_GALLIUM_R300" = xyes)
1869 AM_CONDITIONAL(HAVE_GALLIUM_R600, test "x$HAVE_GALLIUM_R600" = xyes)
1870 AM_CONDITIONAL(HAVE_GALLIUM_RADEONSI, test "x$HAVE_GALLIUM_RADEONSI" = xyes)
1871 AM_CONDITIONAL(HAVE_GALLIUM_NOUVEAU, test "x$HAVE_GALLIUM_NOUVEAU" = xyes)
1872 AM_CONDITIONAL(HAVE_GALLIUM_FREEDRENO, test "x$HAVE_GALLIUM_FREEDRENO" = xyes)
1873 AM_CONDITIONAL(HAVE_GALLIUM_SOFTPIPE, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes)
1874 AM_CONDITIONAL(HAVE_GALLIUM_LLVMPIPE, test "x$HAVE_GALLIUM_LLVMPIPE" = xyes)
1876 AM_CONDITIONAL(NEED_GALLIUM_SOFTPIPE_DRIVER, test "x$HAVE_GALLIUM_SVGA" = xyes -o \
1877                                                   "x$HAVE_GALLIUM_I915" = xyes -o \
1878                                                   "x$HAVE_GALLIUM_SOFTPIPE" = xyes)
1879 AM_CONDITIONAL(NEED_GALLIUM_LLVMPIPE_DRIVER, test "x$HAVE_GALLIUM_I915" = xyes -o \
1880                                                   "x$HAVE_GALLIUM_SOFTPIPE" = xyes \
1881                                                   && test "x$MESA_LLVM" = x1)
1883 if test "x$enable_gallium_loader" = xyes; then
1884     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1886     if test "x$enable_gallium_drm_loader" = xyes; then
1887         GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRM"
1888         PKG_CHECK_MODULES([GALLIUM_PIPE_LOADER_XCB], [xcb xcb-dri2],
1889                           pipe_loader_have_xcb=yes, pipe_loader_have_xcb=no)
1890         if test "x$pipe_loader_have_xcb" = xyes; then
1891             GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_XCB"
1892             GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS $GALLIUM_PIPE_LOADER_XCB_LIBS $LIBDRM_LIBS"
1893         fi
1894     fi
1896     AC_SUBST([GALLIUM_PIPE_LOADER_DEFINES])
1897     AC_SUBST([GALLIUM_PIPE_LOADER_LIBS])
1900 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
1901 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1902 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
1903 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
1904 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
1905 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
1907 AM_CONDITIONAL(NEED_RADEON_DRM_WINSYS, test "x$NEED_NONNULL_WINSYS" = xyes -a \
1908                                             "x$HAVE_GALLIUM_R300" = xyes -o \
1909                                             "x$HAVE_GALLIUM_R600" = xyes -o \
1910                                             "x$HAVE_GALLIUM_RADEONSI" = xyes)
1911 AM_CONDITIONAL(NEED_WINSYS_WRAPPER, test "x$HAVE_GALLIUM_I915" = xyes -o \
1912                                          "x$HAVE_GALLIUM_SVGA" = xyes)
1913 AM_CONDITIONAL(NEED_WINSYS_XLIB, test "x$NEED_WINSYS_XLIB" = xyes)
1914 AM_CONDITIONAL(NEED_RADEON_LLVM, test x$NEED_RADEON_LLVM = xyes)
1915 AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes)
1916 AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes)
1917 AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes)
1918 AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
1919 AM_CONDITIONAL(HAVE_MESA_LLVM, test x$MESA_LLVM = x1)
1921 AC_SUBST([ELF_LIB])
1923 AM_CONDITIONAL(DRICOMMON_NEED_LIBDRM, test "x$DRICOMMON_NEED_LIBDRM" = xyes)
1924 AM_CONDITIONAL(HAVE_X11_DRIVER, test "x$enable_xlib_glx" = xyes)
1925 AM_CONDITIONAL(HAVE_OSMESA, test "x$enable_osmesa" = xyes)
1926 AM_CONDITIONAL(HAVE_GALLIUM_OSMESA, test "x$enable_gallium_osmesa" = xyes)
1928 AM_CONDITIONAL(HAVE_X86_ASM, test "x$asm_arch" = xx86 -o "x$asm_arch" = xx86_64)
1929 AM_CONDITIONAL(HAVE_X86_64_ASM, test "x$asm_arch" = xx86_64)
1930 AM_CONDITIONAL(HAVE_SPARC_ASM, test "x$asm_arch" = xsparc)
1932 AC_SUBST([VDPAU_MAJOR], 1)
1933 AC_SUBST([VDPAU_MINOR], 0)
1935 AC_SUBST([XVMC_MAJOR], 1)
1936 AC_SUBST([XVMC_MINOR], 0)
1938 AC_SUBST([XA_MAJOR], 2)
1939 AC_SUBST([XA_MINOR], 0)
1940 AC_SUBST([XA_TINY], 0)
1941 AC_SUBST([XA_VERSION], "$XA_MAJOR.$XA_MINOR.$XA_TINY")
1943 dnl Restore LDFLAGS and CPPFLAGS
1944 LDFLAGS="$_SAVE_LDFLAGS"
1945 CPPFLAGS="$_SAVE_CPPFLAGS"
1947 dnl Suppress clang's warnings about unused CFLAGS and CXXFLAGS
1948 if test "x$acv_mesa_CLANG" = xyes; then
1949     CFLAGS="$CFLAGS -Qunused-arguments"
1950     CXXFLAGS="$CXXFLAGS -Qunused-arguments"
1953 dnl Add user CFLAGS and CXXFLAGS
1954 CFLAGS="$CFLAGS $USER_CFLAGS"
1955 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1957 dnl Substitute the config
1958 AC_CONFIG_FILES([Makefile
1959                 src/Makefile
1960                 src/egl/Makefile
1961                 src/egl/drivers/Makefile
1962                 src/egl/drivers/dri2/Makefile
1963                 src/egl/drivers/glx/Makefile
1964                 src/egl/main/Makefile
1965                 src/egl/main/egl.pc
1966                 src/egl/wayland/Makefile
1967                 src/egl/wayland/wayland-drm/Makefile
1968                 src/egl/wayland/wayland-egl/Makefile
1969                 src/egl/wayland/wayland-egl/wayland-egl.pc
1970                 src/gallium/auxiliary/Makefile
1971                 src/gallium/auxiliary/pipe-loader/Makefile
1972                 src/gallium/drivers/Makefile
1973                 src/gallium/drivers/freedreno/Makefile
1974                 src/gallium/drivers/freedreno/a2xx/Makefile
1975                 src/gallium/drivers/freedreno/a3xx/Makefile
1976                 src/gallium/drivers/galahad/Makefile
1977                 src/gallium/drivers/i915/Makefile
1978                 src/gallium/drivers/identity/Makefile
1979                 src/gallium/drivers/ilo/Makefile
1980                 src/gallium/drivers/llvmpipe/Makefile
1981                 src/gallium/drivers/noop/Makefile
1982                 src/gallium/drivers/nouveau/Makefile
1983                 src/gallium/drivers/r300/Makefile
1984                 src/gallium/drivers/r600/Makefile
1985                 src/gallium/drivers/radeon/Makefile
1986                 src/gallium/drivers/radeonsi/Makefile
1987                 src/gallium/drivers/rbug/Makefile
1988                 src/gallium/drivers/softpipe/Makefile
1989                 src/gallium/drivers/svga/Makefile
1990                 src/gallium/drivers/trace/Makefile
1991                 src/gallium/state_trackers/Makefile
1992                 src/gallium/state_trackers/clover/Makefile
1993                 src/gallium/state_trackers/dri/Makefile
1994                 src/gallium/state_trackers/dri/drm/Makefile
1995                 src/gallium/state_trackers/dri/sw/Makefile
1996                 src/gallium/state_trackers/egl/Makefile
1997                 src/gallium/state_trackers/gbm/Makefile
1998                 src/gallium/state_trackers/glx/xlib/Makefile
1999                 src/gallium/state_trackers/osmesa/Makefile
2000                 src/gallium/state_trackers/omx/Makefile
2001                 src/gallium/state_trackers/vdpau/Makefile
2002                 src/gallium/state_trackers/vega/Makefile
2003                 src/gallium/state_trackers/xa/Makefile
2004                 src/gallium/state_trackers/xvmc/Makefile
2005                 src/gallium/targets/Makefile
2006                 src/gallium/targets/dri-freedreno/Makefile
2007                 src/gallium/targets/dri-i915/Makefile
2008                 src/gallium/targets/dri-ilo/Makefile
2009                 src/gallium/targets/dri-nouveau/Makefile
2010                 src/gallium/targets/dri-swrast/Makefile
2011                 src/gallium/targets/dri-vmwgfx/Makefile
2012                 src/gallium/targets/egl-static/Makefile
2013                 src/gallium/targets/gbm/Makefile
2014                 src/gallium/targets/opencl/Makefile
2015                 src/gallium/targets/osmesa/Makefile
2016                 src/gallium/targets/osmesa/osmesa.pc
2017                 src/gallium/targets/pipe-loader/Makefile
2018                 src/gallium/targets/radeonsi/dri/Makefile
2019                 src/gallium/targets/radeonsi/vdpau/Makefile
2020                 src/gallium/targets/radeonsi/omx/Makefile
2021                 src/gallium/targets/r300/dri/Makefile
2022                 src/gallium/targets/r600/dri/Makefile
2023                 src/gallium/targets/r600/vdpau/Makefile
2024                 src/gallium/targets/r600/xvmc/Makefile
2025                 src/gallium/targets/r600/omx/Makefile
2026                 src/gallium/targets/libgl-xlib/Makefile
2027                 src/gallium/targets/vdpau-nouveau/Makefile
2028                 src/gallium/targets/xa-vmwgfx/Makefile
2029                 src/gallium/targets/xa-vmwgfx/xatracker.pc
2030                 src/gallium/targets/xvmc-nouveau/Makefile
2031                 src/gallium/tests/trivial/Makefile
2032                 src/gallium/tests/unit/Makefile
2033                 src/gallium/winsys/Makefile
2034                 src/gallium/winsys/freedreno/drm/Makefile
2035                 src/gallium/winsys/i915/drm/Makefile
2036                 src/gallium/winsys/i915/sw/Makefile
2037                 src/gallium/winsys/intel/drm/Makefile
2038                 src/gallium/winsys/nouveau/drm/Makefile
2039                 src/gallium/winsys/radeon/drm/Makefile
2040                 src/gallium/winsys/svga/drm/Makefile
2041                 src/gallium/winsys/sw/dri/Makefile
2042                 src/gallium/winsys/sw/fbdev/Makefile
2043                 src/gallium/winsys/sw/null/Makefile
2044                 src/gallium/winsys/sw/wayland/Makefile
2045                 src/gallium/winsys/sw/wrapper/Makefile
2046                 src/gallium/winsys/sw/xlib/Makefile
2047                 src/gbm/Makefile
2048                 src/gbm/main/gbm.pc
2049                 src/glsl/Makefile
2050                 src/glx/Makefile
2051                 src/glx/tests/Makefile
2052                 src/gtest/Makefile
2053                 src/mapi/Makefile
2054                 src/mapi/es1api/Makefile
2055                 src/mapi/es1api/glesv1_cm.pc
2056                 src/mapi/es2api/Makefile
2057                 src/mapi/es2api/glesv2.pc
2058                 src/mapi/glapi/Makefile
2059                 src/mapi/glapi/gen/Makefile
2060                 src/mapi/glapi/tests/Makefile
2061                 src/mapi/shared-glapi/Makefile
2062                 src/mapi/shared-glapi/tests/Makefile
2063                 src/mapi/vgapi/Makefile
2064                 src/mapi/vgapi/vg.pc
2065                 src/mesa/Makefile
2066                 src/mesa/gl.pc
2067                 src/mesa/drivers/dri/dri.pc
2068                 src/mesa/drivers/dri/common/Makefile
2069                 src/mesa/drivers/dri/common/xmlpool/Makefile
2070                 src/mesa/drivers/dri/i915/Makefile
2071                 src/mesa/drivers/dri/i965/Makefile
2072                 src/mesa/drivers/dri/Makefile
2073                 src/mesa/drivers/dri/nouveau/Makefile
2074                 src/mesa/drivers/dri/r200/Makefile
2075                 src/mesa/drivers/dri/radeon/Makefile
2076                 src/mesa/drivers/dri/swrast/Makefile
2077                 src/mesa/drivers/osmesa/Makefile
2078                 src/mesa/drivers/osmesa/osmesa.pc
2079                 src/mesa/drivers/x11/Makefile
2080                 src/mesa/main/tests/Makefile
2081                 src/mesa/main/tests/hash_table/Makefile])
2083 dnl Sort the dirs alphabetically
2084 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2085 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2086 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2087 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2089 AC_OUTPUT
2092 dnl Output some configuration info for the user
2094 echo ""
2095 echo "        prefix:          $prefix"
2096 echo "        exec_prefix:     $exec_prefix"
2097 echo "        libdir:          $libdir"
2098 echo "        includedir:      $includedir"
2100 dnl API info
2101 echo ""
2102 echo "        OpenGL:          $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
2103 echo "        OpenVG:          $enable_openvg"
2105 dnl Driver info
2106 echo ""
2107 case "x$enable_osmesa$enable_gallium_osmesa" in
2108 xnoyes)
2109         echo "        OSMesa:          lib$OSMESA_LIB (Gallium)"
2110         ;;
2111 xyesno)
2112         echo "        OSMesa:          lib$OSMESA_LIB"
2113         ;;
2114 xnono)
2115         echo "        OSMesa:          no"
2116         ;;
2117 esac
2119 if test "x$enable_dri" != xno; then
2120         # cleanup the drivers var
2121         dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
2122         if test "x$DRI_DIRS" = x; then
2123             echo "        DRI drivers:     no"
2124         else
2125             echo "        DRI drivers:     $dri_dirs"
2126         fi
2127         echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
2130 case "x$enable_glx$enable_xlib_glx" in
2131 xyesyes)
2132     echo "        GLX:             Xlib-based"
2133     ;;
2134 xyesno)
2135     echo "        GLX:             DRI-based"
2136     ;;
2138     echo "        GLX:             $enable_glx"
2139     ;;
2140 esac
2142 dnl EGL
2143 echo ""
2144 echo "        EGL:             $enable_egl"
2145 if test "$enable_egl" = yes; then
2146     echo "        EGL platforms:   $egl_platforms"
2148     egl_drivers=""
2149     if test "x$HAVE_EGL_DRIVER_GLX" != "x"; then
2150         egl_drivers="$egl_drivers builtin:egl_glx"
2151     fi
2152     if test "x$HAVE_EGL_DRIVER_DRI2" != "x"; then
2153         egl_drivers="$egl_drivers builtin:egl_dri2"
2154     fi
2156     if test "x$enable_gallium_egl" = xyes; then
2157         echo "        EGL drivers:    ${egl_drivers} egl_gallium"
2158         echo "        EGL Gallium STs:$EGL_CLIENT_APIS"
2159     else
2160         echo "        EGL drivers:    $egl_drivers"
2161     fi
2164 echo ""
2165 if test "x$MESA_LLVM" = x1; then
2166     echo "        llvm:            yes"
2167     echo "        llvm-config:     $LLVM_CONFIG"
2168     echo "        llvm-version:    $LLVM_VERSION"
2169 else
2170     echo "        llvm:            no"
2173 echo ""
2174 if test -n "$with_gallium_drivers"; then
2175     echo "        Gallium:         yes"
2176     echo "        Target dirs:     $GALLIUM_TARGET_DIRS"
2177     echo "        Winsys dirs:     $GALLIUM_WINSYS_DIRS"
2178     echo "        Driver dirs:     $GALLIUM_DRIVERS_DIRS"
2179     echo "        Trackers dirs:   $GALLIUM_STATE_TRACKERS_DIRS"
2180 else
2181     echo "        Gallium:         no"
2185 dnl Libraries
2186 echo ""
2187 echo "        Shared libs:     $enable_shared"
2188 echo "        Static libs:     $enable_static"
2189 echo "        Shared-glapi:    $enable_shared_glapi"
2191 dnl Compiler options
2192 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2193 cflags=`echo $CFLAGS | \
2194     $SED 's/^ *//;s/  */ /;s/ *$//'`
2195 cxxflags=`echo $CXXFLAGS | \
2196     $SED 's/^ *//;s/  */ /;s/ *$//'`
2197 defines=`echo $DEFINES | $SED 's/^ *//;s/  */ /;s/ *$//'`
2198 echo ""
2199 echo "        CFLAGS:          $cflags"
2200 echo "        CXXFLAGS:        $cxxflags"
2201 echo "        Macros:          $defines"
2202 echo ""
2203 if test "x$MESA_LLVM" = x1; then
2204     echo "        LLVM_CFLAGS:     $LLVM_CFLAGS"
2205     echo "        LLVM_CXXFLAGS:   $LLVM_CXXFLAGS"
2206     echo "        LLVM_CPPFLAGS:   $LLVM_CPPFLAGS"
2207     echo ""
2209 echo "        PYTHON2:         $PYTHON2"
2211 echo ""
2212 echo "        Run '${MAKE-make}' to build Mesa"
2213 echo ""