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