OSDN Git Service

vc4: Make _dest variants of qir ALU helpers to provide an explicit dest.
[android-x86/external-mesa.git] / configure.ac
1 dnl Copyright © 2011-2014 Intel Corporation
2 dnl Copyright © 2011-2014 Emil Velikov <emil.l.velikov@gmail.com>
3 dnl Copyright © 2007-2010 Dan Nicholson
4 dnl Copyright © 2010-2014 Marek Olšák <maraeo@gmail.com>
5 dnl Copyright © 2010-2014 Christian König
6 dnl Copyright © 2012-2014 Tom Stellard <tstellar@gmail.com>
7 dnl Copyright © 2009-2012 Jakob Bornecrantz
8 dnl Copyright © 2009-2014 Jon TURNEY
9 dnl Copyright © 2011-2012 Benjamin Franzke
10 dnl Copyright © 2008-2014 David Airlie
11 dnl Copyright © 2009-2013 Brian Paul
12 dnl Copyright © 2003-2007 Keith Packard, Daniel Stone
13 dnl
14 dnl Permission is hereby granted, free of charge, to any person obtaining a
15 dnl copy of this software and associated documentation files (the "Software"),
16 dnl to deal in the Software without restriction, including without limitation
17 dnl the rights to use, copy, modify, merge, publish, distribute, sublicense,
18 dnl and/or sell copies of the Software, and to permit persons to whom the
19 dnl Software is furnished to do so, subject to the following conditions:
20 dnl
21 dnl The above copyright notice and this permission notice (including the next
22 dnl paragraph) shall be included in all copies or substantial portions of the
23 dnl Software.
24 dnl
25 dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26 dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27 dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
28 dnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29 dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
30 dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
31 dnl DEALINGS IN THE SOFTWARE.
32 dnl
33 dnl Process this file with autoconf to create configure.
34
35 AC_PREREQ([2.60])
36
37 dnl Tell the user about autoconf.html in the --help output
38 m4_divert_once([HELP_END], [
39 See docs/autoconf.html for more details on the options for Mesa.])
40
41 m4_define(MESA_VERSION, m4_normalize(m4_include(VERSION)))
42 AC_INIT([Mesa], [MESA_VERSION],
43     [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
44 AC_CONFIG_AUX_DIR([bin])
45 AC_CONFIG_MACRO_DIR([m4])
46 AC_CANONICAL_SYSTEM
47 AM_INIT_AUTOMAKE([foreign tar-ustar dist-xz subdir-objects])
48
49 dnl We only support native Windows builds (MinGW/MSVC) through SCons.
50 case "$host_os" in
51 mingw*)
52     AC_MSG_ERROR([MinGW build not supported through autoconf/automake, use SCons instead])
53     ;;
54 esac
55
56 # Support silent build rules, requires at least automake-1.11. Disable
57 # by either passing --disable-silent-rules to configure or passing V=1
58 # to make
59 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
60     [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
61
62 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
63
64 dnl Set internal versions
65 OSMESA_VERSION=8
66 AC_SUBST([OSMESA_VERSION])
67 OPENCL_VERSION=1
68 AC_SUBST([OPENCL_VERSION])
69
70 dnl Versions for external dependencies
71 LIBDRM_REQUIRED=2.4.60
72 LIBDRM_RADEON_REQUIRED=2.4.56
73 LIBDRM_AMDGPU_REQUIRED=2.4.63
74 LIBDRM_INTEL_REQUIRED=2.4.61
75 LIBDRM_NVVIEUX_REQUIRED=2.4.33
76 LIBDRM_NOUVEAU_REQUIRED=2.4.62
77 LIBDRM_FREEDRENO_REQUIRED=2.4.64
78 DRI2PROTO_REQUIRED=2.6
79 DRI3PROTO_REQUIRED=1.0
80 PRESENTPROTO_REQUIRED=1.0
81 LIBUDEV_REQUIRED=151
82 GLPROTO_REQUIRED=1.4.14
83 LIBOMXIL_BELLAGIO_REQUIRED=0.0
84 LIBVA_REQUIRED=0.35.0
85 VDPAU_REQUIRED=1.1
86 WAYLAND_REQUIRED=1.2.0
87 XCB_REQUIRED=1.9.3
88 XCBDRI2_REQUIRED=1.8
89 XCBGLX_REQUIRED=1.8.1
90 XSHMFENCE_REQUIRED=1.1
91 XVMC_REQUIRED=1.0.6
92 PYTHON_MAKO_REQUIRED=0.3.4
93
94 dnl Check for progs
95 AC_PROG_CPP
96 AC_PROG_CC
97 AC_PROG_CXX
98 AM_PROG_CC_C_O
99 AM_PROG_AS
100 AX_CHECK_GNU_MAKE
101 AC_CHECK_PROGS([PYTHON2], [python2 python])
102 AC_PROG_SED
103 AC_PROG_MKDIR_P
104
105 AC_SYS_LARGEFILE
106
107 LT_PREREQ([2.2])
108 LT_INIT([disable-static])
109
110 AX_PROG_BISON([],
111               AS_IF([test ! -f "$srcdir/src/glsl/glcpp/glcpp-parse.c"],
112                     [AC_MSG_ERROR([bison not found - unable to compile glcpp-parse.y])]))
113 AX_PROG_FLEX([],
114              AS_IF([test ! -f "$srcdir/src/glsl/glcpp/glcpp-lex.c"],
115                    [AC_MSG_ERROR([flex not found - unable to compile glcpp-lex.l])]))
116
117 AC_CHECK_PROG(INDENT, indent, indent, cat)
118 if test "x$INDENT" != "xcat"; then
119     # Only GNU indent is supported
120     INDENT_VERSION=`indent --version | grep GNU`
121     if test $? -eq 0; then
122        AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -TGLubyte -TGLbyte -TBool')
123     else
124        INDENT="cat"
125     fi
126 fi
127
128 AX_CHECK_PYTHON_MAKO_MODULE($PYTHON_MAKO_REQUIRED)
129
130 if test -z "$PYTHON2"; then
131     if test ! -f "$srcdir/src/util/format_srgb.c"; then
132         AC_MSG_ERROR([Python not found - unable to generate sources])
133     fi
134 else
135     if test "x$acv_mako_found" = xno; then
136         if test ! -f "$srcdir/src/mesa/main/format_unpack.c"; then
137             AC_MSG_ERROR([Python mako module v$PYTHON_MAKO_REQUIRED or higher not found])
138         fi
139     fi
140 fi
141
142 AC_PROG_INSTALL
143
144 dnl We need a POSIX shell for parts of the build. Assume we have one
145 dnl in most cases.
146 case "$host_os" in
147 solaris*)
148     # Solaris /bin/sh is too old/non-POSIX compliant
149     AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
150     SHELL="$POSIX_SHELL"
151     ;;
152 esac
153
154 dnl clang is mostly GCC-compatible, but its version is much lower,
155 dnl so we have to check for it.
156 AC_MSG_CHECKING([if compiling with clang])
157
158 AC_COMPILE_IFELSE(
159 [AC_LANG_PROGRAM([], [[
160 #ifndef __clang__
161        not clang
162 #endif
163 ]])],
164 [acv_mesa_CLANG=yes], [acv_mesa_CLANG=no])
165
166 AC_MSG_RESULT([$acv_mesa_CLANG])
167
168 dnl If we're using GCC, make sure that it is at least version 4.2.0.  Older
169 dnl versions are explictly not supported.
170 GEN_ASM_OFFSETS=no
171 USE_GNU99=no
172 if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
173     AC_MSG_CHECKING([whether gcc version is sufficient])
174     major=0
175     minor=0
176
177     GCC_VERSION=`$CC -dumpversion`
178     if test $? -eq 0; then
179         GCC_VERSION_MAJOR=`echo $GCC_VERSION | cut -d. -f1`
180         GCC_VERSION_MINOR=`echo $GCC_VERSION | cut -d. -f2`
181     fi
182
183     if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 2 ; then
184         AC_MSG_RESULT([no])
185         AC_MSG_ERROR([If using GCC, version 4.2.0 or later is required.])
186     else
187         AC_MSG_RESULT([yes])
188     fi
189
190     if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 6 ; then
191         USE_GNU99=yes
192     fi
193     if test "x$cross_compiling" = xyes; then
194         GEN_ASM_OFFSETS=yes
195     fi
196 fi
197
198 dnl Check for compiler builtins
199 AX_GCC_BUILTIN([__builtin_bswap32])
200 AX_GCC_BUILTIN([__builtin_bswap64])
201 AX_GCC_BUILTIN([__builtin_clz])
202 AX_GCC_BUILTIN([__builtin_clzll])
203 AX_GCC_BUILTIN([__builtin_ctz])
204 AX_GCC_BUILTIN([__builtin_expect])
205 AX_GCC_BUILTIN([__builtin_ffs])
206 AX_GCC_BUILTIN([__builtin_ffsll])
207 AX_GCC_BUILTIN([__builtin_popcount])
208 AX_GCC_BUILTIN([__builtin_popcountll])
209 AX_GCC_BUILTIN([__builtin_unreachable])
210
211 AX_GCC_FUNC_ATTRIBUTE([const])
212 AX_GCC_FUNC_ATTRIBUTE([flatten])
213 AX_GCC_FUNC_ATTRIBUTE([format])
214 AX_GCC_FUNC_ATTRIBUTE([malloc])
215 AX_GCC_FUNC_ATTRIBUTE([packed])
216 AX_GCC_FUNC_ATTRIBUTE([pure])
217 AX_GCC_FUNC_ATTRIBUTE([unused])
218 AX_GCC_FUNC_ATTRIBUTE([warn_unused_result])
219
220 AM_CONDITIONAL([GEN_ASM_OFFSETS], test "x$GEN_ASM_OFFSETS" = xyes)
221
222 dnl Make sure the pkg-config macros are defined
223 m4_ifndef([PKG_PROG_PKG_CONFIG],
224     [m4_fatal([Could not locate the pkg-config autoconf macros.
225   These are usually located in /usr/share/aclocal/pkg.m4. If your macros
226   are in a different location, try setting the environment variable
227   ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
228 PKG_PROG_PKG_CONFIG()
229
230 dnl LIB_DIR - library basename
231 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
232 AC_SUBST([LIB_DIR])
233
234 dnl Cache LDFLAGS and CPPFLAGS so we can add to them and restore later
235 _SAVE_LDFLAGS="$LDFLAGS"
236 _SAVE_CPPFLAGS="$CPPFLAGS"
237
238 dnl Compiler macros
239 DEFINES="-D__STDC_LIMIT_MACROS"
240 AC_SUBST([DEFINES])
241 case "$host_os" in
242 linux*|*-gnu*|gnu*)
243     DEFINES="$DEFINES -D_GNU_SOURCE"
244     ;;
245 solaris*)
246     DEFINES="$DEFINES -DSVR4"
247     ;;
248 cygwin*)
249     DEFINES="$DEFINES -D_XOPEN_SOURCE=700"
250     ;;
251 esac
252
253 dnl Add flags for gcc and g++
254 if test "x$GCC" = xyes; then
255     CFLAGS="$CFLAGS -Wall"
256
257     if test "x$USE_GNU99" = xyes; then
258         CFLAGS="$CFLAGS -std=gnu99"
259     else
260         CFLAGS="$CFLAGS -std=c99"
261     fi
262
263     # Enable -Werror=implicit-function-declaration and
264     # -Werror=missing-prototypes, if available, or otherwise, just
265     # -Wmissing-prototypes.  This is particularly useful to avoid
266     # generating a loadable driver module that has undefined symbols.
267     save_CFLAGS="$CFLAGS"
268     AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
269     CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
270     CFLAGS="$CFLAGS -Werror=missing-prototypes"
271     AC_LINK_IFELSE([AC_LANG_PROGRAM()],
272                    AC_MSG_RESULT([yes]),
273                    [CFLAGS="$save_CFLAGS -Wmissing-prototypes";
274                     AC_MSG_RESULT([no])]);
275
276     # Enable -fvisibility=hidden if using a gcc that supports it
277     save_CFLAGS="$CFLAGS"
278     AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
279     VISIBILITY_CFLAGS="-fvisibility=hidden"
280     CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
281     AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
282                    [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
283
284     # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
285     CFLAGS=$save_CFLAGS
286
287     # Work around aliasing bugs - developers should comment this out
288     CFLAGS="$CFLAGS -fno-strict-aliasing"
289
290     # We don't want floating-point math functions to set errno or trap
291     CFLAGS="$CFLAGS -fno-math-errno -fno-trapping-math"
292
293     # gcc's builtin memcmp is slower than glibc's
294     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
295     CFLAGS="$CFLAGS -fno-builtin-memcmp"
296
297     # Flags to help ensure that certain portions of the code -- and only those
298     # portions -- can be built with MSVC:
299     # - src/util, src/gallium/auxiliary, and src/gallium/drivers/llvmpipe needs
300     #   to build with Windows SDK 7.0.7600, which bundles MSVC 2008
301     # - non-Linux/Posix OpenGL portions needs to build on MSVC 2013 (which
302     #   supports most of C99)
303     # - the rest has no compiler compiler restrictions
304     MSVC2013_COMPAT_CFLAGS="-Werror=pointer-arith"
305     MSVC2013_COMPAT_CXXFLAGS="-Werror=pointer-arith"
306
307     # Enable -Werror=vla if compiler supports it
308     save_CFLAGS="$CFLAGS"
309     AC_MSG_CHECKING([whether $CC supports -Werror=vla])
310     CFLAGS="$CFLAGS -Werror=vla"
311     AC_LINK_IFELSE([AC_LANG_PROGRAM()],
312                    [MSVC2013_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=vla";
313                     MSVC2013_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS -Werror=vla";
314                     AC_MSG_RESULT([yes])],
315                     AC_MSG_RESULT([no]));
316     CFLAGS="$save_CFLAGS"
317
318     MSVC2008_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=declaration-after-statement"
319     MSVC2008_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS"
320 fi
321 if test "x$GXX" = xyes; then
322     CXXFLAGS="$CXXFLAGS -Wall"
323
324     # Enable -fvisibility=hidden if using a gcc that supports it
325     save_CXXFLAGS="$CXXFLAGS"
326     AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
327     VISIBILITY_CXXFLAGS="-fvisibility=hidden"
328     CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
329     AC_LANG_PUSH([C++])
330     AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
331                    [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
332     AC_LANG_POP([C++])
333
334     # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
335     CXXFLAGS=$save_CXXFLAGS
336
337     # Work around aliasing bugs - developers should comment this out
338     CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
339
340     # gcc's builtin memcmp is slower than glibc's
341     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
342     CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
343 fi
344
345 AC_SUBST([MSVC2013_COMPAT_CFLAGS])
346 AC_SUBST([MSVC2013_COMPAT_CXXFLAGS])
347 AC_SUBST([MSVC2008_COMPAT_CFLAGS])
348 AC_SUBST([MSVC2008_COMPAT_CXXFLAGS])
349
350 dnl even if the compiler appears to support it, using visibility attributes isn't
351 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
352 case "$host_os" in
353 cygwin*)
354     VISIBILITY_CFLAGS=""
355     VISIBILITY_CXXFLAGS=""
356     ;;
357 esac
358
359 AC_SUBST([VISIBILITY_CFLAGS])
360 AC_SUBST([VISIBILITY_CXXFLAGS])
361
362 dnl
363 dnl Optional flags, check for compiler support
364 dnl
365 SSE41_CFLAGS="-msse4.1"
366 dnl Code compiled by GCC with -msse* assumes a 16 byte aligned
367 dnl stack, but on x86-32 such alignment is not guaranteed.
368 case "$target_cpu" in
369 i?86)
370     SSE41_CFLAGS="$SSE41_CFLAGS -mstackrealign"
371     ;;
372 esac
373 save_CFLAGS="$CFLAGS"
374 CFLAGS="$SSE41_CFLAGS $CFLAGS"
375 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
376 #include <smmintrin.h>
377 int main () {
378     __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
379     c = _mm_max_epu32(a, b);
380     return 0;
381 }]])], SSE41_SUPPORTED=1)
382 CFLAGS="$save_CFLAGS"
383 if test "x$SSE41_SUPPORTED" = x1; then
384     DEFINES="$DEFINES -DUSE_SSE41"
385 fi
386 AM_CONDITIONAL([SSE41_SUPPORTED], [test x$SSE41_SUPPORTED = x1])
387 AC_SUBST([SSE41_CFLAGS], $SSE41_CFLAGS)
388
389 dnl Can't have static and shared libraries, default to static if user
390 dnl explicitly requested. If both disabled, set to static since shared
391 dnl was explicitly requested.
392 case "x$enable_static$enable_shared" in
393 xyesyes)
394     AC_MSG_WARN([Cannot build static and shared libraries, disabling shared])
395     enable_shared=no
396     ;;
397 xnono)
398     AC_MSG_WARN([Cannot disable both static and shared libraries, enabling shared])
399     enable_shared=yes
400     ;;
401 esac
402
403 AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes)
404
405 dnl
406 dnl other compiler options
407 dnl
408 AC_ARG_ENABLE([debug],
409     [AS_HELP_STRING([--enable-debug],
410         [use debug compiler flags and macros @<:@default=disabled@:>@])],
411     [enable_debug="$enableval"],
412     [enable_debug=no]
413 )
414 if test "x$enable_debug" = xyes; then
415     DEFINES="$DEFINES -DDEBUG"
416     if test "x$GCC" = xyes; then
417         if ! echo "$CFLAGS" | grep -q -e '-g'; then
418             CFLAGS="$CFLAGS -g"
419         fi
420         if ! echo "$CFLAGS" | grep -q -e '-O'; then
421             CFLAGS="$CFLAGS -O0"
422         fi
423     fi
424     if test "x$GXX" = xyes; then
425         if ! echo "$CXXFLAGS" | grep -q -e '-g'; then
426             CXXFLAGS="$CXXFLAGS -g"
427         fi
428         if ! echo "$CXXFLAGS" | grep -q -e '-O'; then
429             CXXFLAGS="$CXXFLAGS -O0"
430         fi
431     fi
432 else
433    DEFINES="$DEFINES -DNDEBUG"
434 fi
435
436 dnl
437 dnl Check if linker supports -Bsymbolic
438 dnl
439 save_LDFLAGS=$LDFLAGS
440 LDFLAGS="$LDFLAGS -Wl,-Bsymbolic"
441 AC_MSG_CHECKING([if ld supports -Bsymbolic])
442 AC_LINK_IFELSE(
443     [AC_LANG_SOURCE([int main() { return 0;}])],
444     [AC_MSG_RESULT([yes])
445         BSYMBOLIC="-Wl,-Bsymbolic";],
446     [AC_MSG_RESULT([no])
447         BSYMBOLIC="";])
448 LDFLAGS=$save_LDFLAGS
449
450 AC_SUBST([BSYMBOLIC])
451
452 dnl
453 dnl Check if linker supports garbage collection
454 dnl
455 save_LDFLAGS=$LDFLAGS
456 LDFLAGS="$LDFLAGS -Wl,--gc-sections"
457 AC_MSG_CHECKING([whether ld supports --gc-sections])
458 AC_LINK_IFELSE(
459     [AC_LANG_SOURCE([static char UnusedFunc() { return 5; } int main() { return 0;}])],
460     [AC_MSG_RESULT([yes])
461         GC_SECTIONS="-Wl,--gc-sections";],
462     [AC_MSG_RESULT([no])
463         GC_SECTIONS="";])
464 LDFLAGS=$save_LDFLAGS
465
466 AC_SUBST([GC_SECTIONS])
467
468 dnl
469 dnl OpenBSD does not have DT_NEEDED entries for libc by design
470 dnl so when these flags are passed to ld via libtool the checks will fail
471 dnl
472 case "$host_os" in
473 openbsd* | darwin* )
474     LD_NO_UNDEFINED="" ;;
475 *)
476     LD_NO_UNDEFINED="-Wl,--no-undefined" ;;
477 esac
478
479 AC_SUBST([LD_NO_UNDEFINED])
480
481 dnl
482 dnl Check if linker supports version scripts
483 dnl
484 AC_MSG_CHECKING([if the linker supports version-scripts])
485 save_LDFLAGS=$LDFLAGS
486 LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
487 cat > conftest.map <<EOF
488 VERSION_1 {
489      global:
490          main;
491
492      local:
493          *;
494 };
495 EOF
496 AC_LINK_IFELSE(
497     [AC_LANG_SOURCE([int main() { return 0;}])],
498     [have_ld_version_script=yes;AC_MSG_RESULT(yes)],
499     [have_ld_version_script=no; AC_MSG_RESULT(no)])
500 LDFLAGS=$save_LDFLAGS
501 AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
502
503 dnl
504 dnl Check if linker supports dynamic list files
505 dnl
506 AC_MSG_CHECKING([if the linker supports --dynamic-list])
507 save_LDFLAGS=$LDFLAGS
508 LDFLAGS="$LDFLAGS -Wl,--dynamic-list=conftest.dyn"
509 cat > conftest.dyn <<EOF
510 {
511         radeon_drm_winsys_create;
512 };
513 EOF
514 AC_LINK_IFELSE(
515     [AC_LANG_SOURCE([int main() { return 0;}])],
516     [have_ld_dynamic_list=yes;AC_MSG_RESULT(yes)],
517     [have_ld_dynamic_list=no; AC_MSG_RESULT(no)])
518 LDFLAGS=$save_LDFLAGS
519 AM_CONDITIONAL(HAVE_LD_DYNAMIC_LIST, test "$have_ld_dynamic_list" = "yes")
520
521 dnl
522 dnl compatibility symlinks
523 dnl
524 case "$host_os" in
525 linux* )
526     HAVE_COMPAT_SYMLINKS=yes ;;
527 * )
528     HAVE_COMPAT_SYMLINKS=no ;;
529 esac
530
531 AM_CONDITIONAL(HAVE_COMPAT_SYMLINKS, test "x$HAVE_COMPAT_SYMLINKS" = xyes)
532
533 dnl
534 dnl library names
535 dnl
536 case "$host_os" in
537 darwin* )
538     LIB_EXT='dylib' ;;
539 cygwin* )
540     LIB_EXT='dll' ;;
541 aix* )
542     LIB_EXT='a' ;;
543 * )
544     LIB_EXT='so' ;;
545 esac
546
547 AC_SUBST([LIB_EXT])
548
549 AC_ARG_WITH([gl-lib-name],
550   [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
551     [specify GL library name @<:@default=GL@:>@])],
552   [GL_LIB=$withval],
553   [GL_LIB=GL])
554 AC_ARG_WITH([osmesa-lib-name],
555   [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
556     [specify OSMesa library name @<:@default=OSMesa@:>@])],
557   [OSMESA_LIB=$withval],
558   [OSMESA_LIB=OSMesa])
559 AS_IF([test "x$GL_LIB" = xyes], [GL_LIB=GL])
560 AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
561
562 dnl
563 dnl Mangled Mesa support
564 dnl
565 AC_ARG_ENABLE([mangling],
566   [AS_HELP_STRING([--enable-mangling],
567     [enable mangled symbols and library name @<:@default=disabled@:>@])],
568   [enable_mangling="${enableval}"],
569   [enable_mangling=no]
570 )
571 if test "x${enable_mangling}" = "xyes" ; then
572   DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
573   GL_LIB="Mangled${GL_LIB}"
574   OSMESA_LIB="Mangled${OSMESA_LIB}"
575 fi
576 AC_SUBST([GL_LIB])
577 AC_SUBST([OSMESA_LIB])
578
579 dnl
580 dnl potentially-infringing-but-nobody-knows-for-sure stuff
581 dnl
582 AC_ARG_ENABLE([texture-float],
583     [AS_HELP_STRING([--enable-texture-float],
584         [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
585     [enable_texture_float="$enableval"],
586     [enable_texture_float=no]
587 )
588 if test "x$enable_texture_float" = xyes; then
589     AC_MSG_WARN([Floating-point textures enabled.])
590     AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
591     DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
592 fi
593
594 dnl
595 dnl Arch/platform-specific settings
596 dnl
597 AC_ARG_ENABLE([asm],
598     [AS_HELP_STRING([--disable-asm],
599         [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
600     [enable_asm="$enableval"],
601     [enable_asm=yes]
602 )
603 asm_arch=""
604 AC_MSG_CHECKING([whether to enable assembly])
605 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
606 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
607 if test "x$enable_asm" = xyes -a "x$cross_compiling" = xyes; then
608     case "$host_cpu" in
609     i?86 | x86_64 | amd64)
610         enable_asm=no
611         AC_MSG_RESULT([no, cross compiling])
612         ;;
613     esac
614 fi
615 # check for supported arches
616 if test "x$enable_asm" = xyes; then
617     case "$host_cpu" in
618     i?86)
619         case "$host_os" in
620         linux* | *freebsd* | dragonfly* | *netbsd* | openbsd* | gnu*)
621             asm_arch=x86
622             ;;
623         esac
624         ;;
625     x86_64|amd64)
626         case "$host_os" in
627         linux* | *freebsd* | dragonfly* | *netbsd* | openbsd*)
628             asm_arch=x86_64
629             ;;
630         esac
631         ;;
632     sparc*)
633         case "$host_os" in
634         linux*)
635             asm_arch=sparc
636             ;;
637         esac
638         ;;
639     esac
640
641     case "$asm_arch" in
642     x86)
643         DEFINES="$DEFINES -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
644         AC_MSG_RESULT([yes, x86])
645         ;;
646     x86_64|amd64)
647         DEFINES="$DEFINES -DUSE_X86_64_ASM"
648         AC_MSG_RESULT([yes, x86_64])
649         ;;
650     sparc)
651         DEFINES="$DEFINES -DUSE_SPARC_ASM"
652         AC_MSG_RESULT([yes, sparc])
653         ;;
654     *)
655         AC_MSG_RESULT([no, platform not supported])
656         ;;
657     esac
658 fi
659
660 AC_CHECK_HEADER([xlocale.h], [DEFINES="$DEFINES -DHAVE_XLOCALE_H"])
661 AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"])
662 AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"])
663 AC_CHECK_FUNC([mkostemp], [DEFINES="$DEFINES -DHAVE_MKOSTEMP"])
664
665 dnl Check to see if dlopen is in default libraries (like Solaris, which
666 dnl has it in libc), or if libdl is needed to get it.
667 AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
668     [AC_CHECK_LIB([dl], [dlopen],
669        [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])])
670 AC_SUBST([DLOPEN_LIBS])
671
672 dnl Check if that library also has dladdr
673 save_LIBS="$LIBS"
674 LIBS="$LIBS $DLOPEN_LIBS"
675 AC_CHECK_FUNCS([dladdr])
676 LIBS="$save_LIBS"
677
678 case "$host_os" in
679 darwin*)
680     ;;
681 *)
682     AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],
683                    [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt],
684                                  [AC_MSG_ERROR([Could not find clock_gettime])])])
685     AC_SUBST([CLOCK_LIB])
686     ;;
687 esac
688
689 dnl See if posix_memalign is available
690 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
691
692 dnl Check for pthreads
693 AX_PTHREAD
694 if test "x$ax_pthread_ok" = xno; then
695     AC_MSG_ERROR([Building mesa on this platform requires pthreads])
696 fi
697 dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS
698 dnl to -pthread, which causes problems if we need -lpthread to appear in
699 dnl pkgconfig files.
700 test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
701
702 dnl SELinux awareness.
703 AC_ARG_ENABLE([selinux],
704     [AS_HELP_STRING([--enable-selinux],
705         [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
706     [MESA_SELINUX="$enableval"],
707     [MESA_SELINUX=no])
708 if test "x$enable_selinux" = "xyes"; then
709     PKG_CHECK_MODULES([SELINUX], [libselinux], [],
710         [AC_CHECK_HEADER([selinux/selinux.h],[],
711                          [AC_MSG_ERROR([SELinux headers not found])])
712          AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
713                       [AC_MSG_ERROR([SELinux library not found])])
714          SELINUX_LIBS="-lselinux"])
715     DEFINES="$DEFINES -DMESA_SELINUX"
716 fi
717 AC_SUBST([SELINUX_CFLAGS])
718 AC_SUBST([SELINUX_LIBS])
719
720 dnl Options for APIs
721 AC_ARG_ENABLE([opengl],
722     [AS_HELP_STRING([--disable-opengl],
723         [disable support for standard OpenGL API @<:@default=enabled@:>@])],
724     [enable_opengl="$enableval"],
725     [enable_opengl=yes])
726 AC_ARG_ENABLE([gles1],
727     [AS_HELP_STRING([--disable-gles1],
728         [disable support for OpenGL ES 1.x API @<:@default=enabled@:>@])],
729     [enable_gles1="$enableval"],
730     [enable_gles1=yes])
731 AC_ARG_ENABLE([gles2],
732     [AS_HELP_STRING([--disable-gles2],
733         [disable support for OpenGL ES 2.x API @<:@default=enabled@:>@])],
734     [enable_gles2="$enableval"],
735     [enable_gles2=yes])
736
737 AC_ARG_ENABLE([dri],
738     [AS_HELP_STRING([--enable-dri],
739         [enable DRI modules @<:@default=enabled@:>@])],
740     [enable_dri="$enableval"],
741     [enable_dri=yes])
742
743 case "$host_os" in
744 linux*)
745     dri3_default=yes
746     ;;
747 *)
748     dri3_default=no
749     ;;
750 esac
751 AC_ARG_ENABLE([dri3],
752     [AS_HELP_STRING([--enable-dri3],
753         [enable DRI3 @<:@default=auto@:>@])],
754     [enable_dri3="$enableval"],
755     [enable_dri3="$dri3_default"])
756 AC_ARG_ENABLE([glx],
757     [AS_HELP_STRING([--enable-glx],
758         [enable GLX library @<:@default=enabled@:>@])],
759     [enable_glx="$enableval"],
760     [enable_glx=yes])
761 AC_ARG_ENABLE([osmesa],
762     [AS_HELP_STRING([--enable-osmesa],
763         [enable OSMesa library @<:@default=disabled@:>@])],
764     [enable_osmesa="$enableval"],
765     [enable_osmesa=no])
766 AC_ARG_ENABLE([gallium-osmesa],
767     [AS_HELP_STRING([--enable-gallium-osmesa],
768         [enable Gallium implementation of the OSMesa library @<:@default=disabled@:>@])],
769     [enable_gallium_osmesa="$enableval"],
770     [enable_gallium_osmesa=no])
771 AC_ARG_ENABLE([egl],
772     [AS_HELP_STRING([--disable-egl],
773         [disable EGL library @<:@default=enabled@:>@])],
774     [enable_egl="$enableval"],
775     [enable_egl=yes])
776
777 AC_ARG_ENABLE([xa],
778     [AS_HELP_STRING([--enable-xa],
779         [enable build of the XA X Acceleration API @<:@default=disabled@:>@])],
780     [enable_xa="$enableval"],
781     [enable_xa=no])
782 AC_ARG_ENABLE([gbm],
783    [AS_HELP_STRING([--enable-gbm],
784          [enable gbm library @<:@default=auto@:>@])],
785    [enable_gbm="$enableval"],
786    [enable_gbm=auto])
787 AC_ARG_ENABLE([nine],
788     [AS_HELP_STRING([--enable-nine],
789         [enable build of the nine Direct3D9 API @<:@default=no@:>@])],
790     [enable_nine="$enableval"],
791     [enable_nine=no])
792
793 AC_ARG_ENABLE([xvmc],
794    [AS_HELP_STRING([--enable-xvmc],
795          [enable xvmc library @<:@default=auto@:>@])],
796    [enable_xvmc="$enableval"],
797    [enable_xvmc=auto])
798 AC_ARG_ENABLE([vdpau],
799    [AS_HELP_STRING([--enable-vdpau],
800          [enable vdpau library @<:@default=auto@:>@])],
801    [enable_vdpau="$enableval"],
802    [enable_vdpau=auto])
803 AC_ARG_ENABLE([omx],
804    [AS_HELP_STRING([--enable-omx],
805          [enable OpenMAX library @<:@default=disabled@:>@])],
806    [enable_omx="$enableval"],
807    [enable_omx=no])
808 AC_ARG_ENABLE([va],
809    [AS_HELP_STRING([--enable-va],
810          [enable va library @<:@default=auto@:>@])],
811    [enable_va="$enableval"],
812    [enable_va=auto])
813 AC_ARG_ENABLE([opencl],
814    [AS_HELP_STRING([--enable-opencl],
815          [enable OpenCL library @<:@default=disabled@:>@])],
816    [enable_opencl="$enableval"],
817    [enable_opencl=no])
818 AC_ARG_ENABLE([opencl_icd],
819    [AS_HELP_STRING([--enable-opencl-icd],
820           [Build an OpenCL ICD library to be loaded by an ICD implementation
821            @<:@default=disabled@:>@])],
822     [enable_opencl_icd="$enableval"],
823     [enable_opencl_icd=no])
824 AC_ARG_ENABLE([xlib-glx],
825     [AS_HELP_STRING([--enable-xlib-glx],
826         [make GLX library Xlib-based instead of DRI-based @<:@default=disabled@:>@])],
827     [enable_xlib_glx="$enableval"],
828     [enable_xlib_glx=no])
829
830 AC_ARG_ENABLE([r600-llvm-compiler],
831     [AS_HELP_STRING([--enable-r600-llvm-compiler],
832         [Enable experimental LLVM backend for graphics shaders @<:@default=disabled@:>@])],
833     [enable_r600_llvm="$enableval"],
834     [enable_r600_llvm=no])
835
836 AC_ARG_ENABLE([gallium-tests],
837     [AS_HELP_STRING([--enable-gallium-tests],
838         [Enable optional Gallium tests) @<:@default=disabled@:>@])],
839     [enable_gallium_tests="$enableval"],
840     [enable_gallium_tests=no])
841
842 # Option for Gallium drivers
843
844 # Keep this in sync with the --with-gallium-drivers help string default value
845 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
846
847 AC_ARG_WITH([gallium-drivers],
848     [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
849         [comma delimited Gallium drivers list, e.g.
850         "i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4"
851         @<:@default=r300,r600,svga,swrast@:>@])],
852     [with_gallium_drivers="$withval"],
853     [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
854
855 # Doing '--without-gallium-drivers' will set this variable to 'no'.  Clear it
856 # here so that the script doesn't choke on an unknown driver name later.
857 case "$with_gallium_drivers" in
858     yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
859     no) with_gallium_drivers='' ;;
860 esac
861
862 if test "x$enable_opengl" = xno -a \
863         "x$enable_gles1" = xno -a \
864         "x$enable_gles2" = xno -a \
865         "x$enable_nine" = xno -a \
866         "x$enable_xa" = xno -a \
867         "x$enable_xvmc" = xno -a \
868         "x$enable_vdpau" = xno -a \
869         "x$enable_omx" = xno -a \
870         "x$enable_va" = xno -a \
871         "x$enable_opencl" = xno; then
872     AC_MSG_ERROR([at least one API should be enabled])
873 fi
874
875 # Building OpenGL ES1 and/or ES2 without OpenGL is not supported on mesa 9.0.x
876 if test "x$enable_opengl" = xno -a \
877         "x$enable_gles1" = xyes; then
878     AC_MSG_ERROR([Building OpenGL ES1 without OpenGL is not supported])
879 fi
880
881 if test "x$enable_opengl" = xno -a \
882         "x$enable_gles2" = xyes; then
883     AC_MSG_ERROR([Building OpenGL ES2 without OpenGL is not supported])
884 fi
885
886 AM_CONDITIONAL(HAVE_OPENGL, test "x$enable_opengl" = xyes)
887 AM_CONDITIONAL(HAVE_OPENGL_ES1, test "x$enable_gles1" = xyes)
888 AM_CONDITIONAL(HAVE_OPENGL_ES2, test "x$enable_gles2" = xyes)
889 AM_CONDITIONAL(NEED_OPENGL_COMMON, test "x$enable_opengl" = xyes -o \
890                                         "x$enable_gles1" = xyes -o \
891                                         "x$enable_gles2" = xyes)
892
893 if test "x$enable_glx" = xno; then
894     AC_MSG_WARN([GLX disabled, disabling Xlib-GLX])
895     enable_xlib_glx=no
896 fi
897
898 if test "x$enable_dri$enable_xlib_glx" = xyesyes; then
899     AC_MSG_ERROR([DRI and Xlib-GLX cannot be built together])
900 fi
901
902 if test "x$enable_opengl$enable_xlib_glx" = xnoyes; then
903     AC_MSG_ERROR([Xlib-GLX cannot be built without OpenGL])
904 fi
905
906 # Disable GLX if OpenGL is not enabled
907 if test "x$enable_glx$enable_opengl" = xyesno; then
908     AC_MSG_WARN([OpenGL not enabled, disabling GLX])
909     enable_glx=no
910 fi
911
912 # Disable GLX if DRI and Xlib-GLX are not enabled
913 if test "x$enable_glx" = xyes -a \
914         "x$enable_dri" = xno -a \
915         "x$enable_xlib_glx" = xno; then
916     AC_MSG_WARN([Neither DRI nor Xlib-GLX enabled, disabling GLX])
917     enable_glx=no
918 fi
919
920 AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xyes -a \
921                                   "x$enable_dri" = xyes)
922
923 # Check for libdrm
924 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
925                   [have_libdrm=yes], [have_libdrm=no])
926 if test "x$have_libdrm" = xyes; then
927         DEFINES="$DEFINES -DHAVE_LIBDRM"
928 fi
929
930 # Select which platform-dependent DRI code gets built
931 case "$host_os" in
932 darwin*)
933     dri_platform='apple' ;;
934 gnu*|cygwin*)
935     dri_platform='none' ;;
936 *)
937     dri_platform='drm' ;;
938 esac
939
940 AM_CONDITIONAL(HAVE_DRICOMMON, test "x$enable_dri" = xyes )
941 AM_CONDITIONAL(HAVE_DRISW, test "x$enable_dri" = xyes )
942 AM_CONDITIONAL(HAVE_DRI2, test "x$enable_dri" = xyes -a "x$dri_platform" = xdrm -a "x$have_libdrm" = xyes )
943 AM_CONDITIONAL(HAVE_DRI3, test "x$enable_dri3" = xyes -a "x$dri_platform" = xdrm -a "x$have_libdrm" = xyes )
944 AM_CONDITIONAL(HAVE_APPLEDRI, test "x$enable_dri" = xyes -a "x$dri_platform" = xapple )
945
946 AC_ARG_ENABLE([shared-glapi],
947     [AS_HELP_STRING([--enable-shared-glapi],
948         [Enable shared glapi for OpenGL @<:@default=enabled@:>@])],
949     [enable_shared_glapi="$enableval"],
950     [enable_shared_glapi=yes])
951
952 case "x$enable_opengl$enable_gles1$enable_gles2" in
953 x*yes*yes*)
954     if test "x$enable_shared_glapi" = xno; then
955         AC_MSG_ERROR([shared GLAPI required when building two or more of
956                       the following APIs - opengl, gles1 gles2])
957     fi
958     ;;
959 esac
960
961 AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes)
962
963 # Build the pipe-drivers as separate libraries/modules.
964 # Do not touch this unless you know what you are doing.
965 # XXX: Expose via configure option ?
966 enable_shared_pipe_drivers=no
967
968 dnl
969 dnl Driver specific build directories
970 dnl
971
972 if test -n "$with_gallium_drivers" -a "x$enable_glx$enable_xlib_glx" = xyesyes; then
973     NEED_WINSYS_XLIB="yes"
974 fi
975
976 if test "x$enable_dri" = xyes; then
977     enable_gallium_loader="$enable_shared_pipe_drivers"
978 fi
979
980 if test "x$enable_gallium_osmesa" = xyes; then
981     if ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
982         AC_MSG_ERROR([gallium_osmesa requires the gallium swrast driver])
983     fi
984     if test "x$enable_osmesa" = xyes; then
985         AC_MSG_ERROR([Cannot enable both classic and Gallium OSMesa implementations])
986     fi
987 fi
988
989 AC_SUBST([MESA_LLVM])
990
991 # SHA1 hashing
992 AC_ARG_WITH([sha1],
993         [AS_HELP_STRING([--with-sha1=libc|libmd|libnettle|libgcrypt|libcrypto|libsha1|CommonCrypto|CryptoAPI],
994         [choose SHA1 implementation])])
995 case "x$with_sha1" in
996 x | xlibc | xlibmd | xlibnettle | xlibgcrypt | xlibcrypto | xlibsha1 | xCommonCrypto | xCryptoAPI)
997   ;;
998 *)
999         AC_MSG_ERROR([Illegal value for --with-sha1: $with_sha1])
1000 esac
1001
1002 AC_CHECK_FUNC([SHA1Init], [HAVE_SHA1_IN_LIBC=yes])
1003 if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_LIBC" = xyes; then
1004         with_sha1=libc
1005 fi
1006 if test "x$with_sha1" = xlibc && test "x$HAVE_SHA1_IN_LIBC" != xyes; then
1007         AC_MSG_ERROR([sha1 in libc requested but not found])
1008 fi
1009 if test "x$with_sha1" = xlibc; then
1010         AC_DEFINE([HAVE_SHA1_IN_LIBC], [1],
1011                 [Use libc SHA1 functions])
1012         SHA1_LIBS=""
1013 fi
1014 AC_CHECK_FUNC([CC_SHA1_Init], [HAVE_SHA1_IN_COMMONCRYPTO=yes])
1015 if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_COMMONCRYPTO" = xyes; then
1016         with_sha1=CommonCrypto
1017 fi
1018 if test "x$with_sha1" = xCommonCrypto && test "x$HAVE_SHA1_IN_COMMONCRYPTO" != xyes; then
1019         AC_MSG_ERROR([CommonCrypto requested but not found])
1020 fi
1021 if test "x$with_sha1" = xCommonCrypto; then
1022         AC_DEFINE([HAVE_SHA1_IN_COMMONCRYPTO], [1],
1023                 [Use CommonCrypto SHA1 functions])
1024         SHA1_LIBS=""
1025 fi
1026 dnl stdcall functions cannot be tested with AC_CHECK_LIB
1027 AC_CHECK_HEADER([wincrypt.h], [HAVE_SHA1_IN_CRYPTOAPI=yes], [], [#include <windows.h>])
1028 if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_CRYPTOAPI" = xyes; then
1029         with_sha1=CryptoAPI
1030 fi
1031 if test "x$with_sha1" = xCryptoAPI && test "x$HAVE_SHA1_IN_CRYPTOAPI" != xyes; then
1032         AC_MSG_ERROR([CryptoAPI requested but not found])
1033 fi
1034 if test "x$with_sha1" = xCryptoAPI; then
1035         AC_DEFINE([HAVE_SHA1_IN_CRYPTOAPI], [1],
1036                 [Use CryptoAPI SHA1 functions])
1037         SHA1_LIBS=""
1038 fi
1039 AC_CHECK_LIB([md], [SHA1Init], [HAVE_LIBMD=yes])
1040 if test "x$with_sha1" = x && test "x$HAVE_LIBMD" = xyes; then
1041         with_sha1=libmd
1042 fi
1043 if test "x$with_sha1" = xlibmd && test "x$HAVE_LIBMD" != xyes; then
1044         AC_MSG_ERROR([libmd requested but not found])
1045 fi
1046 if test "x$with_sha1" = xlibmd; then
1047         AC_DEFINE([HAVE_SHA1_IN_LIBMD], [1],
1048                   [Use libmd SHA1 functions])
1049         SHA1_LIBS=-lmd
1050 fi
1051 PKG_CHECK_MODULES([LIBSHA1], [libsha1], [HAVE_LIBSHA1=yes], [HAVE_LIBSHA1=no])
1052 if test "x$with_sha1" = x && test "x$HAVE_LIBSHA1" = xyes; then
1053    with_sha1=libsha1
1054 fi
1055 if test "x$with_sha1" = xlibsha1 && test "x$HAVE_LIBSHA1" != xyes; then
1056         AC_MSG_ERROR([libsha1 requested but not found])
1057 fi
1058 if test "x$with_sha1" = xlibsha1; then
1059         AC_DEFINE([HAVE_SHA1_IN_LIBSHA1], [1],
1060                   [Use libsha1 for SHA1])
1061         SHA1_LIBS=-lsha1
1062 fi
1063 AC_CHECK_LIB([nettle], [nettle_sha1_init], [HAVE_LIBNETTLE=yes])
1064 if test "x$with_sha1" = x && test "x$HAVE_LIBNETTLE" = xyes; then
1065         with_sha1=libnettle
1066 fi
1067 if test "x$with_sha1" = xlibnettle && test "x$HAVE_LIBNETTLE" != xyes; then
1068         AC_MSG_ERROR([libnettle requested but not found])
1069 fi
1070 if test "x$with_sha1" = xlibnettle; then
1071         AC_DEFINE([HAVE_SHA1_IN_LIBNETTLE], [1],
1072                   [Use libnettle SHA1 functions])
1073         SHA1_LIBS=-lnettle
1074 fi
1075 AC_CHECK_LIB([gcrypt], [gcry_md_open], [HAVE_LIBGCRYPT=yes])
1076 if test "x$with_sha1" = x && test "x$HAVE_LIBGCRYPT" = xyes; then
1077         with_sha1=libgcrypt
1078 fi
1079 if test "x$with_sha1" = xlibgcrypt && test "x$HAVE_LIBGCRYPT" != xyes; then
1080         AC_MSG_ERROR([libgcrypt requested but not found])
1081 fi
1082 if test "x$with_sha1" = xlibgcrypt; then
1083         AC_DEFINE([HAVE_SHA1_IN_LIBGCRYPT], [1],
1084                   [Use libgcrypt SHA1 functions])
1085         SHA1_LIBS=-lgcrypt
1086 fi
1087 # We don't need all of the OpenSSL libraries, just libcrypto
1088 AC_CHECK_LIB([crypto], [SHA1_Init], [HAVE_LIBCRYPTO=yes])
1089 PKG_CHECK_MODULES([OPENSSL], [openssl], [HAVE_OPENSSL_PKC=yes],
1090                   [HAVE_OPENSSL_PKC=no])
1091 if test "x$HAVE_LIBCRYPTO" = xyes || test "x$HAVE_OPENSSL_PKC" = xyes; then
1092         if test "x$with_sha1" = x; then
1093                 with_sha1=libcrypto
1094         fi
1095 else
1096         if test "x$with_sha1" = xlibcrypto; then
1097                 AC_MSG_ERROR([OpenSSL libcrypto requested but not found])
1098         fi
1099 fi
1100 if test "x$with_sha1" = xlibcrypto; then
1101         if test "x$HAVE_LIBCRYPTO" = xyes; then
1102                 SHA1_LIBS=-lcrypto
1103         else
1104                 SHA1_LIBS="$OPENSSL_LIBS"
1105                 SHA1_CFLAGS="$OPENSSL_CFLAGS"
1106         fi
1107 fi
1108 AC_MSG_CHECKING([for SHA1 implementation])
1109 AC_MSG_RESULT([$with_sha1])
1110 AC_SUBST(SHA1_LIBS)
1111 AC_SUBST(SHA1_CFLAGS)
1112
1113 # Allow user to configure out the shader-cache feature
1114 AC_ARG_ENABLE([shader-cache],
1115     AS_HELP_STRING([--disable-shader-cache], [Disable binary shader cache]),
1116     [enable_shader_cache="$enableval"],
1117     [if test "x$with_sha1" != "x"; then
1118         enable_shader_cache=yes
1119      else
1120         enable_shader_cache=no
1121      fi])
1122 if test "x$with_sha1" = "x"; then
1123     if test "x$enable_shader_cache" = "xyes"; then
1124         AC_MSG_ERROR([Cannot enable shader cache (no SHA-1 implementation found)])
1125     fi
1126 fi
1127 AM_CONDITIONAL([ENABLE_SHADER_CACHE], [test x$enable_shader_cache = xyes])
1128
1129 case "$host_os" in
1130 linux*)
1131     need_pci_id=yes ;;
1132 *)
1133     need_pci_id=no ;;
1134 esac
1135
1136 PKG_CHECK_MODULES([LIBUDEV], [libudev >= $LIBUDEV_REQUIRED],
1137                   have_libudev=yes, have_libudev=no)
1138
1139 AC_ARG_ENABLE([sysfs],
1140     [AS_HELP_STRING([--enable-sysfs],
1141         [enable /sys PCI identification @<:@default=disabled@:>@])],
1142     [have_sysfs="$enableval"],
1143     [have_sysfs=no]
1144 )
1145
1146 if test "x$enable_dri" = xyes; then
1147     if test "$enable_static" = yes; then
1148         AC_MSG_ERROR([Cannot use static libraries for DRI drivers])
1149     fi
1150
1151     # not a hard requirement as swrast does not depend on it
1152     if test "x$have_libdrm" = xyes; then
1153         DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
1154     fi
1155 fi
1156
1157 AC_ARG_ENABLE([driglx-direct],
1158     [AS_HELP_STRING([--disable-driglx-direct],
1159         [disable direct rendering in GLX and EGL for DRI \
1160             @<:@default=auto@:>@])],
1161     [driglx_direct="$enableval"],
1162     [driglx_direct="yes"])
1163
1164 dnl
1165 dnl libGL configuration per driver
1166 dnl
1167 case "x$enable_glx$enable_xlib_glx" in
1168 xyesyes)
1169     # Xlib-based GLX
1170     dri_modules="x11 xext xcb"
1171     PKG_CHECK_MODULES([XLIBGL], [$dri_modules])
1172     GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1173     X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
1174     GL_LIB_DEPS="$XLIBGL_LIBS"
1175     GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1176     GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm $PTHREAD_LIBS"
1177     ;;
1178 xyesno)
1179     # DRI-based GLX
1180     PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
1181
1182     # find the DRI deps for libGL
1183     dri_modules="x11 xext xdamage xfixes x11-xcb xcb xcb-glx >= $XCBGLX_REQUIRED"
1184
1185     if test x"$driglx_direct" = xyes; then
1186         if test x"$dri_platform" = xdrm ; then
1187             DEFINES="$DEFINES -DGLX_USE_DRM"
1188             if test "x$have_libdrm" != xyes; then
1189                AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
1190             fi
1191
1192             PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
1193             GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
1194             if test x"$enable_dri3" = xyes; then
1195                PKG_CHECK_MODULES([DRI3PROTO], [dri3proto >= $DRI3PROTO_REQUIRED])
1196                PKG_CHECK_MODULES([PRESENTPROTO], [presentproto >= $PRESENTPROTO_REQUIRED])
1197             fi
1198
1199             if test x"$enable_dri" = xyes; then
1200                dri_modules="$dri_modules xcb-dri2 >= $XCBDRI2_REQUIRED"
1201             fi
1202
1203             if test x"$enable_dri3" = xyes; then
1204                PKG_CHECK_EXISTS([xcb >= $XCB_REQUIRED], [], AC_MSG_ERROR([DRI3 requires xcb >= $XCB_REQUIRED]))
1205                dri_modules="$dri_modules xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
1206             fi
1207         fi
1208         if test x"$dri_platform" = xapple ; then
1209             DEFINES="$DEFINES -DGLX_USE_APPLEGL"
1210         fi
1211     fi
1212
1213     # add xf86vidmode if available
1214     PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
1215     if test "$HAVE_XF86VIDMODE" = yes ; then
1216         dri_modules="$dri_modules xxf86vm"
1217     fi
1218
1219     PKG_CHECK_MODULES([DRIGL], [$dri_modules])
1220     GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1221     X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
1222     GL_LIB_DEPS="$DRIGL_LIBS"
1223
1224     # need DRM libs, $PTHREAD_LIBS, etc.
1225     GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1226     GL_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1227     ;;
1228 esac
1229
1230 have_pci_id=no
1231 if test "$have_libudev" = yes; then
1232     DEFINES="$DEFINES -DHAVE_LIBUDEV"
1233     have_pci_id=yes
1234 fi
1235
1236 if test "$have_sysfs" = yes; then
1237     DEFINES="$DEFINES -DHAVE_SYSFS"
1238     have_pci_id=yes
1239 fi
1240
1241 # This is outside the case (above) so that it is invoked even for non-GLX
1242 # builds.
1243 AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes)
1244
1245 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1246 GLESv1_CM_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1247 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1248 GLESv2_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1249
1250 AC_SUBST([X11_INCLUDES])
1251 AC_SUBST([GL_LIB_DEPS])
1252 AC_SUBST([GL_PC_REQ_PRIV])
1253 AC_SUBST([GL_PC_LIB_PRIV])
1254 AC_SUBST([GL_PC_CFLAGS])
1255 AC_SUBST([DRI_PC_REQ_PRIV])
1256 AC_SUBST([GLESv1_CM_LIB_DEPS])
1257 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1258 AC_SUBST([GLESv2_LIB_DEPS])
1259 AC_SUBST([GLESv2_PC_LIB_PRIV])
1260
1261 AC_SUBST([HAVE_XF86VIDMODE])
1262
1263 dnl
1264 dnl More GLX setup
1265 dnl
1266 case "x$enable_glx$enable_xlib_glx" in
1267 xyesyes)
1268     DEFINES="$DEFINES -DUSE_XSHM"
1269     ;;
1270 xyesno)
1271     DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1272     if test "x$driglx_direct" = xyes; then
1273         DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1274     fi
1275     ;;
1276 esac
1277
1278 dnl
1279 dnl TLS detection
1280 dnl
1281
1282 AC_ARG_ENABLE([glx-tls],
1283     [AS_HELP_STRING([--enable-glx-tls],
1284         [enable TLS support in GLX @<:@default=disabled@:>@])],
1285     [GLX_USE_TLS="$enableval"],
1286     [GLX_USE_TLS=no])
1287 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1288
1289 AS_IF([test "x$GLX_USE_TLS" = xyes -a "x$ax_pthread_ok" = xyes],
1290       [DEFINES="${DEFINES} -DGLX_USE_TLS"])
1291
1292 dnl
1293 dnl More DRI setup
1294 dnl
1295 dnl Directory for DRI drivers
1296 AC_ARG_WITH([dri-driverdir],
1297     [AS_HELP_STRING([--with-dri-driverdir=DIR],
1298         [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1299     [DRI_DRIVER_INSTALL_DIR="$withval"],
1300     [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1301 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1302 dnl Extra search path for DRI drivers
1303 AC_ARG_WITH([dri-searchpath],
1304     [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1305         [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1306     [DRI_DRIVER_SEARCH_DIR="$withval"],
1307     [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1308 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1309 dnl Which drivers to build - default is chosen by platform
1310 AC_ARG_WITH([dri-drivers],
1311     [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1312         [comma delimited classic DRI drivers list, e.g.
1313         "swrast,i965,radeon" @<:@default=auto@:>@])],
1314     [with_dri_drivers="$withval"],
1315     [with_dri_drivers=auto])
1316
1317 if test "x$with_dri_drivers" = xauto; then
1318     if test "x$enable_opengl" = xyes -a "x$enable_dri" = xyes; then
1319         with_dri_drivers="yes"
1320     else
1321         with_dri_drivers="no"
1322     fi
1323 fi
1324 if test "x$with_dri_drivers" = xno; then
1325     with_dri_drivers=''
1326 fi
1327
1328 dnl If $with_dri_drivers is yes, drivers will be added through
1329 dnl platform checks. Set DEFINES and LIB_DEPS
1330 if test "x$enable_dri" = xyes; then
1331     # Platform specific settings and drivers to build
1332     case "$host_os" in
1333     linux*)
1334         DEFINES="$DEFINES -DHAVE_ALIAS"
1335         if test "x$enable_dri3" = xyes; then
1336             DEFINES="$DEFINES -DHAVE_DRI3"
1337         fi
1338
1339         if test "x$have_pci_id" != xyes; then
1340             AC_MSG_ERROR([libudev-dev or sysfs required for building DRI])
1341         fi
1342
1343         case "$host_cpu" in
1344         powerpc* | sparc*)
1345             # Build only the drivers for cards that exist on PowerPC/sparc
1346             if test "x$with_dri_drivers" = "xyes"; then
1347                 with_dri_drivers="r200 radeon swrast"
1348             fi
1349             ;;
1350         esac
1351         ;;
1352     *freebsd* | dragonfly* | *netbsd* | openbsd*)
1353         DEFINES="$DEFINES -DHAVE_ALIAS"
1354         ;;
1355     gnu*)
1356         DEFINES="$DEFINES -DHAVE_ALIAS"
1357         ;;
1358     cygwin*)
1359         if test "x$with_dri_drivers" = "xyes"; then
1360             with_dri_drivers="swrast"
1361         fi
1362         ;;
1363     darwin*)
1364         DEFINES="$DEFINES -DGLX_ALIAS_UNSUPPORTED -DBUILDING_MESA"
1365         if test "x$with_dri_drivers" = "xyes"; then
1366             with_dri_drivers="swrast"
1367         fi
1368         ;;
1369     esac
1370
1371     # default drivers
1372     if test "x$with_dri_drivers" = "xyes"; then
1373         with_dri_drivers="i915 i965 nouveau r200 radeon swrast"
1374     fi
1375
1376     # Check for expat
1377     PKG_CHECK_MODULES([EXPAT], [expat], [],
1378         # expat version 2.0 and earlier do not provide expat.pc
1379         [AC_CHECK_HEADER([expat.h],[],
1380                          [AC_MSG_ERROR([Expat headers required for DRI not found])])
1381          AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1382                      [AC_MSG_ERROR([Expat library required for DRI not found])])
1383          EXPAT_LIBS="-lexpat"])
1384
1385     # put all the necessary libs together
1386     DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1387 fi
1388
1389 AC_SUBST([DRI_LIB_DEPS])
1390
1391 DRI_DIRS=''
1392 dnl Duplicates in DRI_DIRS are removed by sorting it at the end of this block
1393 if test -n "$with_dri_drivers"; then
1394     if test "x$enable_opengl" != xyes; then
1395         AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1396     fi
1397
1398     dri_drivers=`IFS=', '; echo $with_dri_drivers`
1399     for driver in $dri_drivers; do
1400         DRI_DIRS="$DRI_DIRS $driver"
1401         case "x$driver" in
1402         xi915)
1403             HAVE_I915_DRI=yes;
1404             PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1405             ;;
1406         xi965)
1407             HAVE_I965_DRI=yes;
1408             PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1409             ;;
1410         xnouveau)
1411             HAVE_NOUVEAU_DRI=yes;
1412             PKG_CHECK_MODULES([NVVIEUX], [libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED])
1413             ;;
1414         xradeon)
1415             HAVE_RADEON_DRI=yes;
1416             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1417             ;;
1418         xr200)
1419             HAVE_R200_DRI=yes;
1420             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1421             ;;
1422         xswrast)
1423             HAVE_SWRAST_DRI=yes;
1424             ;;
1425         *)
1426             AC_MSG_ERROR([classic DRI driver '$driver' does not exist])
1427             ;;
1428         esac
1429     done
1430     DRI_DIRS=`echo $DRI_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1431 fi
1432
1433 AM_CONDITIONAL(NEED_MEGADRIVER, test -n "$DRI_DIRS")
1434 AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_xlib_glx" = xyes -o \
1435                                   "x$enable_osmesa" = xyes -o \
1436                                   -n "$DRI_DIRS")
1437
1438 dnl
1439 dnl OSMesa configuration
1440 dnl
1441
1442 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1443 AC_ARG_WITH([osmesa-bits],
1444     [AS_HELP_STRING([--with-osmesa-bits=BITS],
1445         [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1446     [osmesa_bits="$withval"],
1447     [osmesa_bits=8])
1448 if test "x$osmesa_bits" != x8; then
1449     if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1450         AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1451         osmesa_bits=8
1452     fi
1453 fi
1454 case "x$osmesa_bits" in
1455 x8)
1456     OSMESA_LIB="${OSMESA_LIB}"
1457     ;;
1458 x16|x32)
1459     OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1460     DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1461     ;;
1462 *)
1463     AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1464     ;;
1465 esac
1466
1467 if test "x$enable_osmesa" = xyes -o "x$enable_gallium_osmesa" = xyes; then
1468     # only link libraries with osmesa if shared
1469     if test "$enable_static" = no; then
1470         OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1471     else
1472         OSMESA_LIB_DEPS=""
1473     fi
1474     OSMESA_PC_LIB_PRIV="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1475 fi
1476
1477 AC_SUBST([OSMESA_LIB_DEPS])
1478 AC_SUBST([OSMESA_PC_REQ])
1479 AC_SUBST([OSMESA_PC_LIB_PRIV])
1480
1481 dnl
1482 dnl gbm configuration
1483 dnl
1484 if test "x$enable_gbm" = xauto; then
1485     case "$with_egl_platforms" in
1486         *drm*)
1487             enable_gbm=yes ;;
1488          *)
1489             enable_gbm=no ;;
1490     esac
1491 fi
1492 if test "x$enable_gbm" = xyes; then
1493     if test "x$need_pci_id$have_pci_id" = xyesno; then
1494         AC_MSG_ERROR([gbm requires udev >= $LIBUDEV_REQUIRED or sysfs])
1495     fi
1496
1497     if test "x$enable_dri" = xyes; then
1498         if test "x$enable_shared_glapi" = xno; then
1499             AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1500         fi
1501     else
1502         # Strictly speaking libgbm does not require --enable-dri, although
1503         # both of its backends do. Thus one can build libgbm without any
1504         # backends if --disable-dri is set.
1505         # To avoid unnecessary complexity of checking if at least one backend
1506         # is available when building, just mandate --enable-dri.
1507         AC_MSG_ERROR([gbm requires --enable-dri])
1508     fi
1509 fi
1510 AM_CONDITIONAL(HAVE_GBM, test "x$enable_gbm" = xyes)
1511 if test "x$need_pci_id$have_libudev" = xyesyes; then
1512     GBM_PC_REQ_PRIV="libudev >= $LIBUDEV_REQUIRED"
1513 else
1514     GBM_PC_REQ_PRIV=""
1515 fi
1516 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1517 AC_SUBST([GBM_PC_REQ_PRIV])
1518 AC_SUBST([GBM_PC_LIB_PRIV])
1519
1520 dnl
1521 dnl EGL configuration
1522 dnl
1523 EGL_CLIENT_APIS=""
1524
1525 if test "x$enable_egl" = xyes; then
1526     EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS $PTHREAD_LIBS"
1527
1528     AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1529
1530     if test "$enable_static" != yes; then
1531         if test "x$enable_dri" = xyes; then
1532             HAVE_EGL_DRIVER_DRI2=1
1533             if test "x$enable_shared_glapi" = xno; then
1534                 AC_MSG_ERROR([egl_dri2 requires --enable-shared-glapi])
1535             fi
1536         else
1537             # Avoid building an "empty" libEGL. Drop/update this
1538             # when other backends (haiku?) come along.
1539             AC_MSG_ERROR([egl requires --enable-dri])
1540         fi
1541
1542     fi
1543 fi
1544 AM_CONDITIONAL(HAVE_EGL, test "x$enable_egl" = xyes)
1545 AC_SUBST([EGL_LIB_DEPS])
1546
1547 dnl
1548 dnl XA configuration
1549 dnl
1550 if test "x$enable_xa" = xyes; then
1551     if test "x$with_gallium_drivers" = xswrast; then
1552        AC_MSG_ERROR([
1553           Building xa requires at least one non swrast gallium driver.
1554           If you are looking to use libxatracker.so with the VMware driver,
1555           make sure to include svga in the gallium drivers list, apart from
1556           enabling XA.
1557           Example: ./configure --enable-xa --with-gallium-drivers=svga...])
1558     fi
1559     enable_gallium_loader=$enable_shared_pipe_drivers
1560 fi
1561 AM_CONDITIONAL(HAVE_ST_XA, test "x$enable_xa" = xyes)
1562
1563 dnl
1564 dnl Gallium G3DVL configuration
1565 dnl
1566 if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then
1567     if test "x$enable_xvmc" = xauto; then
1568         PKG_CHECK_EXISTS([xvmc >= $XVMC_REQUIRED], [enable_xvmc=yes], [enable_xvmc=no])
1569     fi
1570
1571     if test "x$enable_vdpau" = xauto; then
1572         PKG_CHECK_EXISTS([vdpau >= $VDPAU_REQUIRED], [enable_vdpau=yes], [enable_vdpau=no])
1573     fi
1574
1575     if test "x$enable_omx" = xauto; then
1576         PKG_CHECK_EXISTS([libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED], [enable_omx=yes], [enable_omx=no])
1577     fi
1578
1579     if test "x$enable_va" = xauto; then
1580         PKG_CHECK_EXISTS([libva >= $LIBVA_REQUIRED], [enable_va=yes], [enable_va=no])
1581     fi
1582 fi
1583
1584 if test "x$enable_dri" = xyes -o \
1585         "x$enable_xvmc" = xyes -o \
1586         "x$enable_vdpau" = xyes -o \
1587         "x$enable_omx" = xyes -o \
1588         "x$enable_va" = xyes; then
1589     need_gallium_vl=yes
1590 fi
1591 AM_CONDITIONAL(NEED_GALLIUM_VL, test "x$need_gallium_vl" = xyes)
1592
1593 if test "x$enable_xvmc" = xyes -o \
1594         "x$enable_vdpau" = xyes -o \
1595         "x$enable_omx" = xyes -o \
1596         "x$enable_va" = xyes; then
1597     PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
1598     need_gallium_vl_winsys=yes
1599 fi
1600 AM_CONDITIONAL(NEED_GALLIUM_VL_WINSYS, test "x$need_gallium_vl_winsys" = xyes)
1601
1602 if test "x$enable_xvmc" = xyes; then
1603     PKG_CHECK_MODULES([XVMC], [xvmc >= $XVMC_REQUIRED])
1604     enable_gallium_loader=$enable_shared_pipe_drivers
1605 fi
1606 AM_CONDITIONAL(HAVE_ST_XVMC, test "x$enable_xvmc" = xyes)
1607
1608 if test "x$enable_vdpau" = xyes; then
1609     PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED])
1610     enable_gallium_loader=$enable_shared_pipe_drivers
1611 fi
1612 AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes)
1613
1614 if test "x$enable_omx" = xyes; then
1615     PKG_CHECK_MODULES([OMX], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED])
1616     enable_gallium_loader=$enable_shared_pipe_drivers
1617 fi
1618 AM_CONDITIONAL(HAVE_ST_OMX, test "x$enable_omx" = xyes)
1619
1620 if test "x$enable_va" = xyes; then
1621     PKG_CHECK_MODULES([VA], [libva >= $LIBVA_REQUIRED])
1622     enable_gallium_loader=$enable_shared_pipe_drivers
1623 fi
1624 AM_CONDITIONAL(HAVE_ST_VA, test "x$enable_va" = xyes)
1625
1626 dnl
1627 dnl Nine Direct3D9 configuration
1628 dnl
1629 if test "x$enable_nine" = xyes; then
1630     if ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
1631         AC_MSG_ERROR([nine requires the gallium swrast driver])
1632     fi
1633     if test "x$with_gallium_drivers" = xswrast; then
1634         AC_MSG_ERROR([nine requires at least one non-swrast gallium driver])
1635     fi
1636     if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 6; then
1637         AC_MSG_ERROR([gcc >= 4.6 is required to build nine])
1638     fi
1639
1640     if test "x$enable_dri3" = xno; then
1641         AC_MSG_WARN([using nine together with wine requires DRI3 enabled system])
1642     fi
1643
1644     enable_gallium_loader=$enable_shared_pipe_drivers
1645 fi
1646 AM_CONDITIONAL(HAVE_ST_NINE, test "x$enable_nine" = xyes)
1647
1648 dnl
1649 dnl OpenCL configuration
1650 dnl
1651
1652 AC_ARG_WITH([clang-libdir],
1653    [AS_HELP_STRING([--with-clang-libdir],
1654          [Path to Clang libraries @<:@default=llvm-config --libdir@:>@])],
1655    [CLANG_LIBDIR="$withval"],
1656    [CLANG_LIBDIR=''])
1657
1658 PKG_CHECK_EXISTS([libclc], [have_libclc=yes], [have_libclc=no])
1659 AC_CHECK_LIB([elf], [elf_memory], [have_libelf=yes;ELF_LIB=-lelf])
1660
1661 if test "x$enable_opencl" = xyes; then
1662     if test -z "$with_gallium_drivers"; then
1663         AC_MSG_ERROR([cannot enable OpenCL without Gallium])
1664     fi
1665
1666     if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 7; then
1667         AC_MSG_ERROR([gcc >= 4.7 is required to build clover])
1668     fi
1669
1670     if test "x$have_libclc" = xno; then
1671         AC_MSG_ERROR([pkg-config cannot find libclc.pc which is required to build clover.
1672                     Make sure the directory containing libclc.pc is specified in your
1673                     PKG_CONFIG_PATH environment variable.
1674                     By default libclc.pc is installed to /usr/local/share/pkgconfig/])
1675     else
1676         LIBCLC_INCLUDEDIR=`$PKG_CONFIG --variable=includedir libclc`
1677         LIBCLC_LIBEXECDIR=`$PKG_CONFIG --variable=libexecdir libclc`
1678         AC_SUBST([LIBCLC_INCLUDEDIR])
1679         AC_SUBST([LIBCLC_LIBEXECDIR])
1680     fi
1681
1682     # XXX: Use $enable_shared_pipe_drivers once converted to use static/shared pipe-drivers
1683     enable_gallium_loader=yes
1684
1685     if test "x$enable_opencl_icd" = xyes; then
1686         OPENCL_LIBNAME="MesaOpenCL"
1687     else
1688         OPENCL_LIBNAME="OpenCL"
1689     fi
1690
1691     if test "x$have_libelf" != xyes; then
1692        AC_MSG_ERROR([Clover requires libelf])
1693     fi
1694 fi
1695 AM_CONDITIONAL(HAVE_CLOVER, test "x$enable_opencl" = xyes)
1696 AM_CONDITIONAL(HAVE_CLOVER_ICD, test "x$enable_opencl_icd" = xyes)
1697 AC_SUBST([OPENCL_LIBNAME])
1698
1699 dnl
1700 dnl Gallium configuration
1701 dnl
1702 AM_CONDITIONAL(HAVE_GALLIUM, test -n "$with_gallium_drivers")
1703
1704 AC_SUBST([LLVM_BINDIR])
1705 AC_SUBST([LLVM_CFLAGS])
1706 AC_SUBST([LLVM_CPPFLAGS])
1707 AC_SUBST([LLVM_CXXFLAGS])
1708 AC_SUBST([LLVM_LIBDIR])
1709 AC_SUBST([LLVM_LIBS])
1710 AC_SUBST([LLVM_LDFLAGS])
1711 AC_SUBST([LLVM_INCLUDEDIR])
1712 AC_SUBST([LLVM_VERSION])
1713 AC_SUBST([CLANG_RESOURCE_DIR])
1714
1715 case "x$enable_opengl$enable_gles1$enable_gles2" in
1716 x*yes*)
1717     EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1718     ;;
1719 esac
1720
1721 AC_SUBST([VG_LIB_DEPS])
1722 AC_SUBST([EGL_CLIENT_APIS])
1723
1724 dnl
1725 dnl EGL Platforms configuration
1726 dnl
1727 AC_ARG_WITH([egl-platforms],
1728     [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1729         [comma delimited native platforms libEGL supports, e.g.
1730         "x11,drm" @<:@default=auto@:>@])],
1731     [with_egl_platforms="$withval"],
1732     [if test "x$enable_egl" = xyes; then
1733         with_egl_platforms="x11"
1734     else
1735         with_egl_platforms=""
1736     fi])
1737
1738 if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then
1739     AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1740 fi
1741
1742 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland_scanner],
1743         WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland_scanner`,
1744         WAYLAND_SCANNER='')
1745 if test "x$WAYLAND_SCANNER" = x; then
1746     AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner])
1747 fi
1748
1749 # Do per-EGL platform setups and checks
1750 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1751 for plat in $egl_platforms; do
1752         case "$plat" in
1753         wayland)
1754                 test "x$have_libdrm" != xyes &&
1755                         AC_MSG_ERROR([EGL platform wayland requires libdrm >= $LIBDRM_REQUIRED])
1756
1757                 PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED])
1758
1759                 if test "x$WAYLAND_SCANNER" = x; then
1760                         AC_MSG_ERROR([wayland-scanner is needed to compile the wayland egl platform])
1761                 fi
1762                 ;;
1763
1764         x11)
1765                 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED xcb-xfixes])
1766                 ;;
1767
1768         drm)
1769                 test "x$enable_gbm" = "xno" &&
1770                         AC_MSG_ERROR([EGL platform drm needs gbm])
1771                 test "x$have_libdrm" != xyes &&
1772                         AC_MSG_ERROR([EGL platform drm requires libdrm >= $LIBDRM_REQUIRED])
1773                 ;;
1774
1775         surfaceless)
1776                 test "x$have_libdrm" != xyes &&
1777                         AC_MSG_ERROR([EGL platform surfaceless requires libdrm >= $LIBDRM_REQUIRED])
1778                 ;;
1779
1780         *)
1781                 AC_MSG_ERROR([EGL platform '$plat' does not exist])
1782                 ;;
1783         esac
1784
1785         case "$plat$need_pci_id$have_pci_id" in
1786                 waylandyesno|drmyesno)
1787                     AC_MSG_ERROR([cannot build $plat platform without udev >= $LIBUDEV_REQUIRED or sysfs]) ;;
1788         esac
1789 done
1790
1791 # libEGL wants to default to the first platform specified in
1792 # ./configure.  parse that here.
1793 if test "x$egl_platforms" != "x"; then
1794     FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr '[[a-z]]' '[[A-Z]]'`
1795     EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS"
1796 else
1797     EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
1798 fi
1799
1800 AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep -q 'x11')
1801 AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep -q 'wayland')
1802 AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep -q 'drm')
1803 AM_CONDITIONAL(HAVE_EGL_PLATFORM_SURFACELESS, echo "$egl_platforms" | grep -q 'surfaceless')
1804 AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep -q 'null')
1805
1806 AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x")
1807
1808 AC_SUBST([EGL_NATIVE_PLATFORM])
1809 AC_SUBST([EGL_CFLAGS])
1810
1811 # If we don't have the X11 platform, set this define so we don't try to include
1812 # the X11 headers.
1813 if ! echo "$egl_platforms" | grep -q 'x11'; then
1814     DEFINES="$DEFINES -DMESA_EGL_NO_X11_HEADERS"
1815     GL_PC_CFLAGS="$GL_PC_CFLAGS -DMESA_EGL_NO_X11_HEADERS"
1816 fi
1817
1818 dnl
1819 dnl Gallium LLVM
1820 dnl
1821 AC_ARG_ENABLE([gallium-llvm],
1822     [AS_HELP_STRING([--enable-gallium-llvm],
1823         [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1824     [enable_gallium_llvm="$enableval"],
1825     [enable_gallium_llvm=auto])
1826
1827 AC_ARG_ENABLE([llvm-shared-libs],
1828     [AS_HELP_STRING([--enable-llvm-shared-libs],
1829         [link with LLVM shared libraries @<:@default=enabled@:>@])],
1830     [enable_llvm_shared_libs="$enableval"],
1831     [enable_llvm_shared_libs=yes])
1832
1833 AC_ARG_WITH([llvm-prefix],
1834     [AS_HELP_STRING([--with-llvm-prefix],
1835         [Prefix for LLVM installations in non-standard locations])],
1836     [llvm_prefix="$withval"],
1837     [llvm_prefix=''])
1838
1839
1840 # Call this inside ` ` to get the return value.
1841 # $1 is the llvm-config command with arguments.
1842 strip_unwanted_llvm_flags() {
1843     # Use \> (marks the end of the word)
1844     echo `$1` | sed \
1845         -e 's/-DNDEBUG\>//g' \
1846         -e 's/-D_GNU_SOURCE\>//g' \
1847         -e 's/-pedantic\>//g' \
1848         -e 's/-Wcovered-switch-default\>//g' \
1849         -e 's/-O.\>//g' \
1850         -e 's/-g\>//g' \
1851         -e 's/-Wall\>//g' \
1852         -e 's/-Wcast-qual\>//g' \
1853         -e 's/-Woverloaded-virtual\>//g' \
1854         -e 's/-fcolor-diagnostics\>//g' \
1855         -e 's/-fdata-sections\>//g' \
1856         -e 's/-ffunction-sections\>//g' \
1857         -e 's/-fno-exceptions\>//g' \
1858         -e 's/-fomit-frame-pointer\>//g' \
1859         -e 's/-fvisibility-inlines-hidden\>//g' \
1860         -e 's/-fPIC\>//g' \
1861         -e 's/-fstack-protector-strong\>//g'
1862 }
1863
1864 llvm_check_version_for() {
1865     if test "${LLVM_VERSION_INT}${LLVM_VERSION_PATCH}" -lt "${1}0${2}${3}"; then
1866         AC_MSG_ERROR([LLVM $1.$2.$3 or newer is required for $4])
1867     fi
1868 }
1869
1870
1871
1872 if test -z "$with_gallium_drivers"; then
1873     enable_gallium_llvm=no
1874 fi
1875 if test "x$enable_gallium_llvm" = xauto; then
1876     case "$host_cpu" in
1877     i*86|x86_64|amd64) enable_gallium_llvm=yes;;
1878     esac
1879 fi
1880 if test "x$enable_gallium_llvm" = xyes; then
1881     if test -n "$llvm_prefix"; then
1882         AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"])
1883     else
1884         AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no])
1885     fi
1886
1887     if test "x$LLVM_CONFIG" != xno; then
1888         LLVM_VERSION=`$LLVM_CONFIG --version | egrep -o '^[[0-9.]]+'`
1889         LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1890         LLVM_BINDIR=`$LLVM_CONFIG --bindir`
1891         LLVM_CPPFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cppflags"`
1892         LLVM_CFLAGS=$LLVM_CPPFLAGS   # CPPFLAGS seem to be sufficient
1893         LLVM_CXXFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cxxflags"`
1894         LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir`
1895         LLVM_LIBDIR=`$LLVM_CONFIG --libdir`
1896
1897         AC_COMPUTE_INT([LLVM_VERSION_MAJOR], [LLVM_VERSION_MAJOR],
1898             [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
1899         AC_COMPUTE_INT([LLVM_VERSION_MINOR], [LLVM_VERSION_MINOR],
1900             [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
1901
1902         LLVM_VERSION_PATCH=`echo $LLVM_VERSION | cut -d. -f3 | egrep -o '^[[0-9]]+'`
1903         if test -z "$LLVM_VERSION_PATCH"; then
1904             LLVM_VERSION_PATCH=0
1905         fi
1906
1907         if test -n "${LLVM_VERSION_MAJOR}"; then
1908             LLVM_VERSION_INT="${LLVM_VERSION_MAJOR}0${LLVM_VERSION_MINOR}"
1909         else
1910             LLVM_VERSION_INT=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/\10\2/g'`
1911         fi
1912
1913         LLVM_REQUIRED_VERSION_MAJOR="3"
1914         LLVM_REQUIRED_VERSION_MINOR="3"
1915         if test "$LLVM_VERSION_INT" -lt "${LLVM_REQUIRED_VERSION_MAJOR}0${LLVM_REQUIRED_VERSION_MINOR}"; then
1916             AC_MSG_ERROR([LLVM $LLVM_REQUIRED_VERSION_MAJOR.$LLVM_REQUIRED_VERSION_MINOR or newer is required])
1917         fi
1918
1919         LLVM_COMPONENTS="engine bitwriter mcjit mcdisassembler"
1920
1921         if test "x$enable_opencl" = xyes; then
1922             llvm_check_version_for "3" "5" "0" "opencl"
1923
1924             LLVM_COMPONENTS="${LLVM_COMPONENTS} all-targets ipo linker instrumentation"
1925             LLVM_COMPONENTS="${LLVM_COMPONENTS} irreader option objcarcopts profiledata"
1926         fi
1927         DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DMESA_LLVM_VERSION_PATCH=$LLVM_VERSION_PATCH"
1928         MESA_LLVM=1
1929
1930         dnl Check for Clang internal headers
1931         if test "x$enable_opencl" = xyes; then
1932             if test -z "$CLANG_LIBDIR"; then
1933                 CLANG_LIBDIR=${LLVM_LIBDIR}
1934             fi
1935             CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
1936             AS_IF([test ! -f "$CLANG_RESOURCE_DIR/include/stddef.h"],
1937                 [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.])])
1938         fi
1939     else
1940         MESA_LLVM=0
1941         LLVM_VERSION_INT=0
1942     fi
1943 else
1944     MESA_LLVM=0
1945     LLVM_VERSION_INT=0
1946
1947     if test "x$enable_opencl" = xyes; then
1948         AC_MSG_ERROR([cannot enable OpenCL without LLVM])
1949     fi
1950 fi
1951
1952 dnl Directory for XVMC libs
1953 AC_ARG_WITH([xvmc-libdir],
1954     [AS_HELP_STRING([--with-xvmc-libdir=DIR],
1955         [directory for the XVMC libraries @<:@default=${libdir}@:>@])],
1956     [XVMC_LIB_INSTALL_DIR="$withval"],
1957     [XVMC_LIB_INSTALL_DIR='${libdir}'])
1958 AC_SUBST([XVMC_LIB_INSTALL_DIR])
1959
1960 dnl
1961 dnl Gallium Tests
1962 dnl
1963 if test "x$enable_gallium_tests" = xyes; then
1964     # XXX: Use $enable_shared_pipe_drivers once converted to use static/shared pipe-drivers
1965     enable_gallium_loader=yes
1966 fi
1967 AM_CONDITIONAL(HAVE_GALLIUM_TESTS, test "x$enable_gallium_tests" = xyes)
1968
1969 dnl Directory for VDPAU libs
1970 AC_ARG_WITH([vdpau-libdir],
1971     [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1972         [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1973     [VDPAU_LIB_INSTALL_DIR="$withval"],
1974     [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1975 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1976
1977 dnl Directory for OMX libs
1978
1979 AC_ARG_WITH([omx-libdir],
1980     [AS_HELP_STRING([--with-omx-libdir=DIR],
1981         [directory for the OMX libraries])],
1982     [OMX_LIB_INSTALL_DIR="$withval"],
1983     [OMX_LIB_INSTALL_DIR=`$PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libomxil-bellagio`])
1984 AC_SUBST([OMX_LIB_INSTALL_DIR])
1985
1986 dnl Directory for VA libs
1987
1988 AC_ARG_WITH([va-libdir],
1989     [AS_HELP_STRING([--with-va-libdir=DIR],
1990         [directory for the VA libraries @<:@${libdir}/dri@:>@])],
1991     [VA_LIB_INSTALL_DIR="$withval"],
1992     [VA_LIB_INSTALL_DIR="${libdir}/dri"])
1993 AC_SUBST([VA_LIB_INSTALL_DIR])
1994
1995 AC_ARG_WITH([d3d-libdir],
1996     [AS_HELP_STRING([--with-d3d-libdir=DIR],
1997         [directory for the D3D modules @<:@${libdir}/d3d@:>@])],
1998     [D3D_DRIVER_INSTALL_DIR="$withval"],
1999     [D3D_DRIVER_INSTALL_DIR="${libdir}/d3d"])
2000 AC_SUBST([D3D_DRIVER_INSTALL_DIR])
2001
2002 dnl
2003 dnl Gallium helper functions
2004 dnl
2005 gallium_require_drm() {
2006     if test "x$have_libdrm" != xyes; then
2007        AC_MSG_ERROR([$1 requires libdrm >= $LIBDRM_REQUIRED])
2008     fi
2009 }
2010
2011 gallium_require_llvm() {
2012     if test "x$MESA_LLVM" = x0; then
2013         case "$host" in *gnux32) return;; esac
2014         case "$host_cpu" in
2015         i*86|x86_64|amd64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
2016         esac
2017     fi
2018 }
2019
2020 gallium_require_drm_loader() {
2021     if test "x$enable_gallium_loader" = xyes; then
2022         if test "x$need_pci_id$have_pci_id" = xyesno; then
2023             AC_MSG_ERROR([Gallium drm loader requires libudev >= $LIBUDEV_REQUIRED or sysfs])
2024         fi
2025         enable_gallium_drm_loader=yes
2026     fi
2027     if test "x$enable_va" = xyes && test "x$7" != x; then
2028          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
2029     fi
2030 }
2031
2032 require_egl_drm() {
2033     case "$with_egl_platforms" in
2034         *drm*)
2035             ;;
2036          *)
2037             AC_MSG_ERROR([--with-egl-platforms=drm is required to build the $1 driver.])
2038             ;;
2039     esac
2040     if test "x$enable_gbm" != xyes; then
2041             AC_MSG_ERROR([--enable-gbm is required to build the $1 driver.])
2042     fi
2043 }
2044
2045 radeon_llvm_check() {
2046     if test ${LLVM_VERSION_INT} -lt 307; then
2047         amdgpu_llvm_target_name='r600'
2048     else
2049         amdgpu_llvm_target_name='amdgpu'
2050     fi
2051     if test "x$enable_gallium_llvm" != "xyes"; then
2052         AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
2053     fi
2054     llvm_check_version_for "3" "4" "2" $1 
2055     if test true && $LLVM_CONFIG --targets-built | grep -iqvw $amdgpu_llvm_target_name ; then
2056         AC_MSG_ERROR([LLVM $amdgpu_llvm_target_name not enabled in your LLVM build.])
2057     fi
2058     LLVM_COMPONENTS="${LLVM_COMPONENTS} $amdgpu_llvm_target_name bitreader ipo"
2059     NEED_RADEON_LLVM=yes
2060     if test "x$have_libelf" != xyes; then
2061        AC_MSG_ERROR([$1 requires libelf when using llvm])
2062     fi
2063 }
2064
2065 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
2066 if test -n "$with_gallium_drivers"; then
2067     gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
2068     for driver in $gallium_drivers; do
2069         case "x$driver" in
2070         xsvga)
2071             HAVE_GALLIUM_SVGA=yes
2072             gallium_require_drm "svga"
2073             gallium_require_drm_loader
2074             ;;
2075         xi915)
2076             HAVE_GALLIUM_I915=yes
2077             PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
2078             gallium_require_drm "Gallium i915"
2079             gallium_require_drm_loader
2080             ;;
2081         xilo)
2082             HAVE_GALLIUM_ILO=yes
2083             PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
2084             gallium_require_drm "Gallium i965/ilo"
2085             gallium_require_drm_loader
2086             ;;
2087         xr300)
2088             HAVE_GALLIUM_R300=yes
2089             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
2090             gallium_require_drm "Gallium R300"
2091             gallium_require_drm_loader
2092             gallium_require_llvm "Gallium R300"
2093             ;;
2094         xr600)
2095             HAVE_GALLIUM_R600=yes
2096             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
2097             gallium_require_drm "Gallium R600"
2098             gallium_require_drm_loader
2099             if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then
2100                 radeon_llvm_check "r600g"
2101                 LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
2102             fi
2103             if test "x$enable_r600_llvm" = xyes; then
2104                 USE_R600_LLVM_COMPILER=yes;
2105             fi
2106             if test "x$enable_opencl" = xyes; then
2107                 LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
2108             fi
2109             ;;
2110         xradeonsi)
2111             HAVE_GALLIUM_RADEONSI=yes
2112             PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
2113             PKG_CHECK_MODULES([AMDGPU], [libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED])
2114             gallium_require_drm "radeonsi"
2115             gallium_require_drm_loader
2116             radeon_llvm_check "radeonsi"
2117             require_egl_drm "radeonsi"
2118             ;;
2119         xnouveau)
2120             HAVE_GALLIUM_NOUVEAU=yes
2121             PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
2122             gallium_require_drm "nouveau"
2123             gallium_require_drm_loader
2124             ;;
2125         xfreedreno)
2126             HAVE_GALLIUM_FREEDRENO=yes
2127             PKG_CHECK_MODULES([FREEDRENO], [libdrm_freedreno >= $LIBDRM_FREEDRENO_REQUIRED])
2128             gallium_require_drm "freedreno"
2129             gallium_require_drm_loader
2130             ;;
2131         xswrast)
2132             HAVE_GALLIUM_SOFTPIPE=yes
2133             if test "x$MESA_LLVM" = x1; then
2134                 HAVE_GALLIUM_LLVMPIPE=yes
2135             fi
2136             ;;
2137         xvc4)
2138             HAVE_GALLIUM_VC4=yes
2139             gallium_require_drm "vc4"
2140             gallium_require_drm_loader
2141
2142             case "$host_cpu" in
2143                 i?86 | x86_64 | amd64)
2144                 USE_VC4_SIMULATOR=yes
2145                 ;;
2146             esac
2147             ;;
2148         *)
2149             AC_MSG_ERROR([Unknown Gallium driver: $driver])
2150             ;;
2151         esac
2152     done
2153 fi
2154
2155 dnl Set LLVM_LIBS - This is done after the driver configuration so
2156 dnl that drivers can add additional components to LLVM_COMPONENTS.
2157 dnl Previously, gallium drivers were updating LLVM_LIBS directly
2158 dnl by calling llvm-config --libs ${DRIVER_LLVM_COMPONENTS}, but
2159 dnl this was causing the same libraries to be appear multiple times
2160 dnl in LLVM_LIBS.
2161
2162 if test "x$MESA_LLVM" != x0; then
2163
2164     LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
2165
2166     if test "x$enable_llvm_shared_libs" = xyes; then
2167         dnl We can't use $LLVM_VERSION because it has 'svn' stripped out,
2168         LLVM_SO_NAME=LLVM-`$LLVM_CONFIG --version`
2169         AS_IF([test -f "$LLVM_LIBDIR/lib$LLVM_SO_NAME.so"], [llvm_have_one_so=yes])
2170
2171         if test "x$llvm_have_one_so" = xyes; then
2172             dnl LLVM was built using auto*, so there is only one shared object.
2173             LLVM_LIBS="-l$LLVM_SO_NAME"
2174         else
2175             dnl If LLVM was built with CMake, there will be one shared object per
2176             dnl component.
2177             AS_IF([test ! -f "$LLVM_LIBDIR/libLLVMTarget.so"],
2178                     [AC_MSG_ERROR([Could not find llvm shared libraries:
2179         Please make sure you have built llvm with the --enable-shared option
2180         and that your llvm libraries are installed in $LLVM_LIBDIR
2181         If you have installed your llvm libraries to a different directory you
2182         can use the --with-llvm-prefix= configure flag to specify this directory.
2183         NOTE: Mesa is attempting to use llvm shared libraries by default.
2184         If you do not want to build with llvm shared libraries and instead want to
2185         use llvm static libraries then add --disable-llvm-shared-libs to your configure
2186         invocation and rebuild.])])
2187
2188            dnl We don't need to update LLVM_LIBS in this case because the LLVM
2189            dnl install uses a shared object for each component and we have
2190            dnl already added all of these objects to LLVM_LIBS.
2191         fi
2192     else
2193         AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues])
2194         dnl We need to link to llvm system libs when using static libs
2195         dnl However, only llvm 3.5+ provides --system-libs
2196         if test $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then
2197             LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`"
2198         fi
2199     fi
2200 fi
2201
2202 AM_CONDITIONAL(HAVE_GALLIUM_SVGA, test "x$HAVE_GALLIUM_SVGA" = xyes)
2203 AM_CONDITIONAL(HAVE_GALLIUM_I915, test "x$HAVE_GALLIUM_I915" = xyes)
2204 AM_CONDITIONAL(HAVE_GALLIUM_ILO, test "x$HAVE_GALLIUM_ILO" = xyes)
2205 AM_CONDITIONAL(HAVE_GALLIUM_R300, test "x$HAVE_GALLIUM_R300" = xyes)
2206 AM_CONDITIONAL(HAVE_GALLIUM_R600, test "x$HAVE_GALLIUM_R600" = xyes)
2207 AM_CONDITIONAL(HAVE_GALLIUM_RADEONSI, test "x$HAVE_GALLIUM_RADEONSI" = xyes)
2208 AM_CONDITIONAL(HAVE_GALLIUM_RADEON_COMMON, test "x$HAVE_GALLIUM_R600" = xyes -o \
2209                                                 "x$HAVE_GALLIUM_RADEONSI" = xyes)
2210 AM_CONDITIONAL(HAVE_GALLIUM_NOUVEAU, test "x$HAVE_GALLIUM_NOUVEAU" = xyes)
2211 AM_CONDITIONAL(HAVE_GALLIUM_FREEDRENO, test "x$HAVE_GALLIUM_FREEDRENO" = xyes)
2212 AM_CONDITIONAL(HAVE_GALLIUM_SOFTPIPE, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes)
2213 AM_CONDITIONAL(HAVE_GALLIUM_LLVMPIPE, test "x$HAVE_GALLIUM_LLVMPIPE" = xyes)
2214 AM_CONDITIONAL(HAVE_GALLIUM_VC4, test "x$HAVE_GALLIUM_VC4" = xyes)
2215
2216 AM_CONDITIONAL(HAVE_GALLIUM_STATIC_TARGETS, test "x$enable_shared_pipe_drivers" = xno)
2217
2218 # NOTE: anything using xcb or other client side libs ends up in separate
2219 #       _CLIENT variables.  The pipe loader is built in two variants,
2220 #       one that is standalone and does not link any x client libs (for
2221 #       use by XA tracker in particular, but could be used in any case
2222 #       where communication with xserver is not desired).
2223 if test "x$enable_gallium_loader" = xyes; then
2224     if test "x$enable_dri" = xyes; then
2225         GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRI"
2226     fi
2227
2228     if test "x$enable_gallium_drm_loader" = xyes; then
2229         GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRM"
2230     fi
2231
2232     AC_SUBST([GALLIUM_PIPE_LOADER_DEFINES])
2233 fi
2234
2235 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
2236 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
2237 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
2238 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
2239 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
2240 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
2241
2242 AM_CONDITIONAL(NEED_RADEON_DRM_WINSYS, test "x$HAVE_GALLIUM_R300" = xyes -o \
2243                                             "x$HAVE_GALLIUM_R600" = xyes -o \
2244                                             "x$HAVE_GALLIUM_RADEONSI" = xyes)
2245 AM_CONDITIONAL(NEED_WINSYS_XLIB, test "x$NEED_WINSYS_XLIB" = xyes)
2246 AM_CONDITIONAL(NEED_RADEON_LLVM, test x$NEED_RADEON_LLVM = xyes)
2247 AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes)
2248 AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes)
2249 AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes)
2250 AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
2251 AM_CONDITIONAL(HAVE_MESA_LLVM, test x$MESA_LLVM = x1)
2252 AM_CONDITIONAL(USE_VC4_SIMULATOR, test x$USE_VC4_SIMULATOR = xyes)
2253 if test "x$USE_VC4_SIMULATOR" = xyes -a "x$HAVE_GALLIUM_ILO" = xyes; then
2254     AC_MSG_ERROR([VC4 simulator on x86 replaces i965 driver build, so ilo must be disabled.])
2255 fi
2256
2257 AC_SUBST([ELF_LIB])
2258
2259 AM_CONDITIONAL(HAVE_LIBDRM, test "x$have_libdrm" = xyes)
2260 AM_CONDITIONAL(HAVE_X11_DRIVER, test "x$enable_xlib_glx" = xyes)
2261 AM_CONDITIONAL(HAVE_OSMESA, test "x$enable_osmesa" = xyes)
2262 AM_CONDITIONAL(HAVE_GALLIUM_OSMESA, test "x$enable_gallium_osmesa" = xyes)
2263
2264 AM_CONDITIONAL(HAVE_X86_ASM, test "x$asm_arch" = xx86 -o "x$asm_arch" = xx86_64)
2265 AM_CONDITIONAL(HAVE_X86_64_ASM, test "x$asm_arch" = xx86_64)
2266 AM_CONDITIONAL(HAVE_SPARC_ASM, test "x$asm_arch" = xsparc)
2267
2268 AC_SUBST([NINE_MAJOR], 1)
2269 AC_SUBST([NINE_MINOR], 0)
2270 AC_SUBST([NINE_TINY], 0)
2271 AC_SUBST([NINE_VERSION], "$NINE_MAJOR.$NINE_MINOR.$NINE_TINY")
2272
2273 AC_SUBST([VDPAU_MAJOR], 1)
2274 AC_SUBST([VDPAU_MINOR], 0)
2275
2276 VA_MAJOR=`$PKG_CONFIG --modversion libva | $SED -n 's/\([[^\.]]*\)\..*$/\1/p'`
2277 VA_MINOR=`$PKG_CONFIG --modversion libva | $SED -n 's/.*\.\(.*\)\..*$/\1/p'`
2278 AC_SUBST([VA_MAJOR], $VA_MAJOR)
2279 AC_SUBST([VA_MINOR], $VA_MINOR)
2280
2281 AC_SUBST([XVMC_MAJOR], 1)
2282 AC_SUBST([XVMC_MINOR], 0)
2283
2284 XA_HEADER="$srcdir/src/gallium/state_trackers/xa/xa_tracker.h"
2285 XA_MAJOR=`grep "#define XA_TRACKER_VERSION_MAJOR" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_MAJOR //'`
2286 XA_MINOR=`grep "#define XA_TRACKER_VERSION_MINOR" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_MINOR //'`
2287 XA_TINY=`grep "#define XA_TRACKER_VERSION_PATCH" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_PATCH //'`
2288
2289 AC_SUBST([XA_MAJOR], $XA_MAJOR)
2290 AC_SUBST([XA_MINOR], $XA_MINOR)
2291 AC_SUBST([XA_TINY], $XA_TINY)
2292 AC_SUBST([XA_VERSION], "$XA_MAJOR.$XA_MINOR.$XA_TINY")
2293
2294 dnl Restore LDFLAGS and CPPFLAGS
2295 LDFLAGS="$_SAVE_LDFLAGS"
2296 CPPFLAGS="$_SAVE_CPPFLAGS"
2297
2298 dnl Suppress clang's warnings about unused CFLAGS and CXXFLAGS
2299 if test "x$acv_mesa_CLANG" = xyes; then
2300     CFLAGS="$CFLAGS -Qunused-arguments"
2301     CXXFLAGS="$CXXFLAGS -Qunused-arguments"
2302 fi
2303
2304 dnl Add user CFLAGS and CXXFLAGS
2305 CFLAGS="$CFLAGS $USER_CFLAGS"
2306 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
2307
2308 dnl Substitute the config
2309 AC_CONFIG_FILES([Makefile
2310                 src/Makefile
2311                 src/egl/Makefile
2312                 src/egl/main/egl.pc
2313                 src/egl/wayland/wayland-drm/Makefile
2314                 src/egl/wayland/wayland-egl/Makefile
2315                 src/egl/wayland/wayland-egl/wayland-egl.pc
2316                 src/gallium/Makefile
2317                 src/gallium/auxiliary/Makefile
2318                 src/gallium/auxiliary/pipe-loader/Makefile
2319                 src/gallium/drivers/freedreno/Makefile
2320                 src/gallium/drivers/i915/Makefile
2321                 src/gallium/drivers/ilo/Makefile
2322                 src/gallium/drivers/llvmpipe/Makefile
2323                 src/gallium/drivers/noop/Makefile
2324                 src/gallium/drivers/nouveau/Makefile
2325                 src/gallium/drivers/r300/Makefile
2326                 src/gallium/drivers/r600/Makefile
2327                 src/gallium/drivers/radeon/Makefile
2328                 src/gallium/drivers/radeonsi/Makefile
2329                 src/gallium/drivers/rbug/Makefile
2330                 src/gallium/drivers/softpipe/Makefile
2331                 src/gallium/drivers/svga/Makefile
2332                 src/gallium/drivers/trace/Makefile
2333                 src/gallium/drivers/vc4/Makefile
2334                 src/gallium/state_trackers/clover/Makefile
2335                 src/gallium/state_trackers/dri/Makefile
2336                 src/gallium/state_trackers/glx/xlib/Makefile
2337                 src/gallium/state_trackers/nine/Makefile
2338                 src/gallium/state_trackers/omx/Makefile
2339                 src/gallium/state_trackers/osmesa/Makefile
2340                 src/gallium/state_trackers/va/Makefile
2341                 src/gallium/state_trackers/vdpau/Makefile
2342                 src/gallium/state_trackers/xa/Makefile
2343                 src/gallium/state_trackers/xvmc/Makefile
2344                 src/gallium/targets/d3dadapter9/Makefile
2345                 src/gallium/targets/d3dadapter9/d3d.pc
2346                 src/gallium/targets/dri/Makefile
2347                 src/gallium/targets/libgl-xlib/Makefile
2348                 src/gallium/targets/omx/Makefile
2349                 src/gallium/targets/opencl/Makefile
2350                 src/gallium/targets/opencl/mesa.icd
2351                 src/gallium/targets/osmesa/Makefile
2352                 src/gallium/targets/osmesa/osmesa.pc
2353                 src/gallium/targets/pipe-loader/Makefile
2354                 src/gallium/targets/va/Makefile
2355                 src/gallium/targets/vdpau/Makefile
2356                 src/gallium/targets/xa/Makefile
2357                 src/gallium/targets/xa/xatracker.pc
2358                 src/gallium/targets/xvmc/Makefile
2359                 src/gallium/tests/trivial/Makefile
2360                 src/gallium/tests/unit/Makefile
2361                 src/gallium/winsys/freedreno/drm/Makefile
2362                 src/gallium/winsys/i915/drm/Makefile
2363                 src/gallium/winsys/intel/drm/Makefile
2364                 src/gallium/winsys/nouveau/drm/Makefile
2365                 src/gallium/winsys/radeon/drm/Makefile
2366                 src/gallium/winsys/amdgpu/drm/Makefile
2367                 src/gallium/winsys/svga/drm/Makefile
2368                 src/gallium/winsys/sw/dri/Makefile
2369                 src/gallium/winsys/sw/kms-dri/Makefile
2370                 src/gallium/winsys/sw/null/Makefile
2371                 src/gallium/winsys/sw/wrapper/Makefile
2372                 src/gallium/winsys/sw/xlib/Makefile
2373                 src/gallium/winsys/vc4/drm/Makefile
2374                 src/gbm/Makefile
2375                 src/gbm/main/gbm.pc
2376                 src/glsl/Makefile
2377                 src/glx/Makefile
2378                 src/glx/apple/Makefile
2379                 src/glx/tests/Makefile
2380                 src/gtest/Makefile
2381                 src/loader/Makefile
2382                 src/mapi/Makefile
2383                 src/mapi/es1api/glesv1_cm.pc
2384                 src/mapi/es2api/glesv2.pc
2385                 src/mapi/glapi/gen/Makefile
2386                 src/mesa/Makefile
2387                 src/mesa/gl.pc
2388                 src/mesa/drivers/dri/dri.pc
2389                 src/mesa/drivers/dri/common/Makefile
2390                 src/mesa/drivers/dri/common/xmlpool/Makefile
2391                 src/mesa/drivers/dri/i915/Makefile
2392                 src/mesa/drivers/dri/i965/Makefile
2393                 src/mesa/drivers/dri/Makefile
2394                 src/mesa/drivers/dri/nouveau/Makefile
2395                 src/mesa/drivers/dri/r200/Makefile
2396                 src/mesa/drivers/dri/radeon/Makefile
2397                 src/mesa/drivers/dri/swrast/Makefile
2398                 src/mesa/drivers/osmesa/Makefile
2399                 src/mesa/drivers/osmesa/osmesa.pc
2400                 src/mesa/drivers/x11/Makefile
2401                 src/mesa/main/tests/Makefile
2402                 src/util/Makefile
2403                 src/util/tests/hash_table/Makefile])
2404
2405 AC_OUTPUT
2406
2407 dnl
2408 dnl Output some configuration info for the user
2409 dnl
2410 echo ""
2411 echo "        prefix:          $prefix"
2412 echo "        exec_prefix:     $exec_prefix"
2413 echo "        libdir:          $libdir"
2414 echo "        includedir:      $includedir"
2415
2416 dnl API info
2417 echo ""
2418 echo "        OpenGL:          $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
2419
2420 dnl Driver info
2421 echo ""
2422 case "x$enable_osmesa$enable_gallium_osmesa" in
2423 xnoyes)
2424         echo "        OSMesa:          lib$OSMESA_LIB (Gallium)"
2425         ;;
2426 xyesno)
2427         echo "        OSMesa:          lib$OSMESA_LIB"
2428         ;;
2429 xnono)
2430         echo "        OSMesa:          no"
2431         ;;
2432 esac
2433
2434 echo ""
2435 if test "x$enable_dri" != xno; then
2436         echo "        DRI platform:    $dri_platform"
2437         if test -z "$DRI_DIRS"; then
2438             echo "        DRI drivers:     no"
2439         else
2440             echo "        DRI drivers:     $DRI_DIRS"
2441         fi
2442         echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
2443 fi
2444
2445 case "x$enable_glx$enable_xlib_glx" in
2446 xyesyes)
2447     echo "        GLX:             Xlib-based"
2448     ;;
2449 xyesno)
2450     echo "        GLX:             DRI-based"
2451     ;;
2452 *)
2453     echo "        GLX:             $enable_glx"
2454     ;;
2455 esac
2456
2457 dnl EGL
2458 echo ""
2459 echo "        EGL:             $enable_egl"
2460 if test "$enable_egl" = yes; then
2461     echo "        EGL platforms:   $egl_platforms"
2462
2463     egl_drivers=""
2464     if test "x$HAVE_EGL_DRIVER_DRI2" != "x"; then
2465         egl_drivers="$egl_drivers builtin:egl_dri2"
2466     fi
2467
2468     echo "        EGL drivers:    $egl_drivers"
2469 fi
2470
2471 echo ""
2472 if test "x$MESA_LLVM" = x1; then
2473     echo "        llvm:            yes"
2474     echo "        llvm-config:     $LLVM_CONFIG"
2475     echo "        llvm-version:    $LLVM_VERSION"
2476 else
2477     echo "        llvm:            no"
2478 fi
2479
2480 echo ""
2481 if test -n "$with_gallium_drivers"; then
2482     echo "        Gallium:         yes"
2483 else
2484     echo "        Gallium:         no"
2485 fi
2486
2487 dnl Shader cache
2488 echo ""
2489 echo "        Shader cache:    $enable_shader_cache"
2490 if test "x$enable_shader_cache" = "xyes"; then
2491     echo "        With SHA1 from:  $with_sha1"
2492 fi
2493
2494 dnl Libraries
2495 echo ""
2496 echo "        Shared libs:     $enable_shared"
2497 echo "        Static libs:     $enable_static"
2498 echo "        Shared-glapi:    $enable_shared_glapi"
2499
2500 dnl Compiler options
2501 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2502 cflags=`echo $CFLAGS | \
2503     $SED 's/^ *//;s/  */ /;s/ *$//'`
2504 cxxflags=`echo $CXXFLAGS | \
2505     $SED 's/^ *//;s/  */ /;s/ *$//'`
2506 defines=`echo $DEFINES | $SED 's/^ *//;s/  */ /;s/ *$//'`
2507 echo ""
2508 echo "        CFLAGS:          $cflags"
2509 echo "        CXXFLAGS:        $cxxflags"
2510 echo "        Macros:          $defines"
2511 echo ""
2512 if test "x$MESA_LLVM" = x1; then
2513     echo "        LLVM_CFLAGS:     $LLVM_CFLAGS"
2514     echo "        LLVM_CXXFLAGS:   $LLVM_CXXFLAGS"
2515     echo "        LLVM_CPPFLAGS:   $LLVM_CPPFLAGS"
2516     echo "        LLVM_LDFLAGS:    $LLVM_LDFLAGS"
2517     echo ""
2518 fi
2519 echo "        PYTHON2:         $PYTHON2"
2520
2521 echo ""
2522 echo "        Run '${MAKE-make}' to build Mesa"
2523 echo ""