OSDN Git Service

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