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