OSDN Git Service

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