Revert "Always build shared glapi"
[profile/ivi/mesa.git] / configure.ac
1 dnl Process this file with autoconf to create configure.
2
3 AC_PREREQ([2.60])
4
5 dnl Versioning - scrape the version from configs/default
6 m4_define([mesa_version],
7     [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
8 m4_ifval(mesa_version,,
9     [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
10
11 dnl Tell the user about autoconf.html in the --help output
12 m4_divert_once([HELP_END], [
13 See docs/autoconf.html for more details on the options for Mesa.])
14
15 AC_INIT([Mesa],[mesa_version],
16     [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17 AC_CONFIG_AUX_DIR([bin])
18 AC_CANONICAL_HOST
19 AM_INIT_AUTOMAKE([foreign])
20
21 # Support silent build rules, requires at least automake-1.11. Disable
22 # by either passing --disable-silent-rules to configure or passing V=1
23 # to make
24 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
25
26 LT_PREREQ([2.2])
27 LT_INIT([disable-static])
28
29 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
30 USER_CFLAGS="$CFLAGS"
31 USER_CXXFLAGS="$CXXFLAGS"
32
33 dnl Versions for external dependencies
34 LIBDRM_REQUIRED=2.4.24
35 LIBDRM_RADEON_REQUIRED=2.4.24
36 LIBDRM_INTEL_REQUIRED=2.4.30
37 LIBDRM_NOUVEAU_REQUIRED=0.6
38 DRI2PROTO_REQUIRED=2.6
39 GLPROTO_REQUIRED=1.4.14
40 LIBDRM_XORG_REQUIRED=2.4.24
41 LIBKMS_XORG_REQUIRED=1.0.0
42
43 dnl Check for progs
44 AC_PROG_CPP
45 AC_PROG_CC
46 AC_PROG_CXX
47 AC_CHECK_PROGS([MAKE], [gmake make])
48 AC_CHECK_PROGS([PYTHON2], [python2 python])
49 AC_PROG_SED
50 AC_PROG_MKDIR_P
51 AC_PATH_PROG([MKDEP], [makedepend])
52
53 if test "x$MKDEP" = "x"; then
54     AC_MSG_ERROR([makedepend is required to build Mesa])
55 fi
56
57 AC_PATH_PROG([FLEX], [flex])
58 test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
59
60 AC_PATH_PROG([BISON], [bison])
61 test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
62
63 dnl Our fallback install-sh is a symlink to minstall. Use the existing
64 dnl configuration in that case.
65 AC_PROG_INSTALL
66 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
67
68 dnl We need a POSIX shell for parts of the build. Assume we have one
69 dnl in most cases.
70 case "$host_os" in
71 solaris*)
72     # Solaris /bin/sh is too old/non-POSIX compliant
73     AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
74     SHELL="$POSIX_SHELL"
75     ;;
76 esac
77
78 AC_PATH_PROG([GTESTCONFIG], [gtest-config])
79 if test "x$GTESTCONFIG" != "x"; then
80     GTEST_CFLAGS=`gtest-config --cppflags --cxxflags`
81     GTEST_LIBS=`gtest-config --ldflags --libs`
82     AC_SUBST([GTEST_CFLAGS])
83     AC_SUBST([GTEST_LIBS])
84     HAVE_GTEST=yes
85 else
86     HAVE_GTEST=no
87 fi
88 AM_CONDITIONAL(HAVE_GTEST, test x$HAVE_GTEST = xyes)
89
90 dnl clang is mostly GCC-compatible, but its version is much lower,
91 dnl so we have to check for it.
92 AC_MSG_CHECKING([if compiling with clang])
93
94 AC_COMPILE_IFELSE(
95 [AC_LANG_PROGRAM([], [[
96 #ifndef __clang__
97        not clang
98 #endif
99 ]])],
100 [CLANG=yes], [CLANG=no])
101
102 AC_MSG_RESULT([$CLANG])
103
104 dnl If we're using GCC, make sure that it is at least version 3.3.0.  Older
105 dnl versions are explictly not supported.
106 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
107     AC_MSG_CHECKING([whether gcc version is sufficient])
108     major=0
109     minor=0
110
111     GCC_VERSION=`$CC -dumpversion`
112     if test $? -eq 0; then
113         major=`echo $GCC_VERSION | cut -d. -f1`
114         minor=`echo $GCC_VERSION | cut -d. -f2`
115     fi
116
117     if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
118         AC_MSG_RESULT([no])
119         AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
120     else
121         AC_MSG_RESULT([yes])
122     fi
123 fi
124
125
126 MKDEP_OPTIONS=-fdepend
127 dnl Ask gcc where it's keeping its secret headers
128 if test "x$GCC" = xyes; then
129     for dir in include include-fixed; do
130         GCC_INCLUDES=`$CC -print-file-name=$dir`
131         if test "x$GCC_INCLUDES" != x && \
132            test "$GCC_INCLUDES" != "$dir" && \
133            test -d "$GCC_INCLUDES"; then
134             MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
135         fi
136     done
137 fi
138 AC_SUBST([MKDEP_OPTIONS])
139
140 dnl Make sure the pkg-config macros are defined
141 m4_ifndef([PKG_PROG_PKG_CONFIG],
142     [m4_fatal([Could not locate the pkg-config autoconf macros.
143   These are usually located in /usr/share/aclocal/pkg.m4. If your macros
144   are in a different location, try setting the environment variable
145   ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
146 PKG_PROG_PKG_CONFIG()
147
148 dnl LIB_DIR - library basename
149 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
150 AC_SUBST([LIB_DIR])
151
152 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
153 _SAVE_LDFLAGS="$LDFLAGS"
154 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
155 AC_SUBST([EXTRA_LIB_PATH])
156
157 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
158 _SAVE_CPPFLAGS="$CPPFLAGS"
159 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
160 AC_SUBST([X11_INCLUDES])
161
162 dnl Compiler macros
163 DEFINES=""
164 AC_SUBST([DEFINES])
165 case "$host_os" in
166 linux*|*-gnu*|gnu*)
167     DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
168     ;;
169 solaris*)
170     DEFINES="$DEFINES -DPTHREADS -DSVR4"
171     ;;
172 cygwin*)
173     DEFINES="$DEFINES -DPTHREADS"
174     ;;
175 esac
176
177 dnl Add flags for gcc and g++
178 if test "x$GCC" = xyes; then
179     CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
180
181     # Enable -fvisibility=hidden if using a gcc that supports it
182     save_CFLAGS="$CFLAGS"
183     AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
184     VISIBILITY_CFLAGS="-fvisibility=hidden"
185     CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
186     AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
187                    [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
188
189     # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
190     CFLAGS=$save_CFLAGS
191
192     # Work around aliasing bugs - developers should comment this out
193     CFLAGS="$CFLAGS -fno-strict-aliasing"
194
195     # gcc's builtin memcmp is slower than glibc's
196     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
197     CFLAGS="$CFLAGS -fno-builtin-memcmp"
198 fi
199 if test "x$GXX" = xyes; then
200     CXXFLAGS="$CXXFLAGS -Wall"
201
202     # Enable -fvisibility=hidden if using a gcc that supports it
203     save_CXXFLAGS="$CXXFLAGS"
204     AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
205     VISIBILITY_CXXFLAGS="-fvisibility=hidden"
206     CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
207     AC_LANG_PUSH([C++])
208     AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
209                    [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
210     AC_LANG_POP([C++])
211
212     # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
213     CXXFLAGS=$save_CXXFLAGS
214
215     # Work around aliasing bugs - developers should comment this out
216     CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
217
218     # gcc's builtin memcmp is slower than glibc's
219     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
220     CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
221 fi
222
223 dnl even if the compiler appears to support it, using visibility attributes isn't
224 dnl going to do anything useful currently on cygwin apart from emit lots of warnings
225 case "$host_os" in
226 cygwin*)
227     VISIBILITY_CFLAGS=""
228     VISIBILITY_CXXFLAGS=""
229     ;;
230 esac
231
232 AC_SUBST([VISIBILITY_CFLAGS])
233 AC_SUBST([VISIBILITY_CXXFLAGS])
234
235 dnl These should be unnecessary, but let the user set them if they want
236 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
237     Default is to use CFLAGS.])
238 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
239     compiler. Default is to use CFLAGS.])
240 AC_SUBST([OPT_FLAGS])
241 AC_SUBST([ARCH_FLAGS])
242
243 dnl
244 dnl Hacks to enable 32 or 64 bit build
245 dnl
246 AC_ARG_ENABLE([32-bit],
247     [AS_HELP_STRING([--enable-32-bit],
248         [build 32-bit libraries @<:@default=auto@:>@])],
249     [enable_32bit="$enableval"],
250     [enable_32bit=auto]
251 )
252 if test "x$enable_32bit" = xyes; then
253     if test "x$GCC" = xyes; then
254         CFLAGS="$CFLAGS -m32"
255         ARCH_FLAGS="$ARCH_FLAGS -m32"
256     fi
257     if test "x$GXX" = xyes; then
258         CXXFLAGS="$CXXFLAGS -m32"
259     fi
260 fi
261 AC_ARG_ENABLE([64-bit],
262     [AS_HELP_STRING([--enable-64-bit],
263         [build 64-bit libraries @<:@default=auto@:>@])],
264     [enable_64bit="$enableval"],
265     [enable_64bit=auto]
266 )
267 if test "x$enable_64bit" = xyes; then
268     if test "x$GCC" = xyes; then
269         CFLAGS="$CFLAGS -m64"
270     fi
271     if test "x$GXX" = xyes; then
272         CXXFLAGS="$CXXFLAGS -m64"
273     fi
274 fi
275
276 dnl
277 dnl shared/static libraries, mimic libtool options
278 dnl
279 AC_ARG_ENABLE([static],
280     [AS_HELP_STRING([--enable-static],
281         [build static libraries @<:@default=disabled@:>@])],
282     [enable_static="$enableval"],
283     [enable_static=no]
284 )
285 case "x$enable_static" in
286 xyes|xno ) ;;
287 x ) enable_static=no ;;
288 * )
289     AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
290     ;;
291 esac
292 AC_ARG_ENABLE([shared],
293     [AS_HELP_STRING([--disable-shared],
294         [build shared libraries @<:@default=enabled@:>@])],
295     [enable_shared="$enableval"],
296     [enable_shared=yes]
297 )
298 case "x$enable_shared" in
299 xyes|xno ) ;;
300 x ) enable_shared=yes ;;
301 * )
302     AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
303     ;;
304 esac
305
306 dnl Can't have static and shared libraries, default to static if user
307 dnl explicitly requested. If both disabled, set to static since shared
308 dnl was explicitly requirested.
309 case "x$enable_static$enable_shared" in
310 xyesyes )
311     AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
312     enable_shared=no
313     ;;
314 xnono )
315     AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
316     enable_static=yes
317     ;;
318 esac
319
320 dnl
321 dnl mklib options
322 dnl
323 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
324 if test "$enable_static" = yes; then
325     MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
326 fi
327 AC_SUBST([MKLIB_OPTIONS])
328
329 dnl
330 dnl other compiler options
331 dnl
332 AC_ARG_ENABLE([debug],
333     [AS_HELP_STRING([--enable-debug],
334         [use debug compiler flags and macros @<:@default=disabled@:>@])],
335     [enable_debug="$enableval"],
336     [enable_debug=no]
337 )
338 if test "x$enable_debug" = xyes; then
339     DEFINES="$DEFINES -DDEBUG"
340     if test "x$GCC" = xyes; then
341         CFLAGS="$CFLAGS -g"
342     fi
343     if test "x$GXX" = xyes; then
344         CXXFLAGS="$CXXFLAGS -g"
345     fi
346 fi
347
348 dnl
349 dnl library names
350 dnl
351 LIB_PREFIX_GLOB='lib'
352 LIB_VERSION_SEPARATOR='.'
353 if test "$enable_static" = yes; then
354     LIB_EXTENSION='a'
355 else
356     case "$host_os" in
357     darwin* )
358         LIB_EXTENSION='dylib' ;;
359     cygwin* )
360         dnl prefix can be 'cyg' or 'lib'
361         LIB_PREFIX_GLOB='???'
362         LIB_VERSION_SEPARATOR='-'
363         LIB_EXTENSION='dll' ;;
364     aix* )
365         LIB_EXTENSION='a' ;;
366     * )
367         LIB_EXTENSION='so' ;;
368     esac
369 fi
370
371 dnl
372 dnl Mangled Mesa support
373 dnl
374 AC_ARG_ENABLE([mangling],
375   [AS_HELP_STRING([--enable-mangling],
376     [enable mangled symbols and library name @<:@default=disabled@:>@])],
377   [enable_mangling="${enableval}"],
378   [enable_mangling=no]
379 )
380 GL_LIB="GL"
381 GLU_LIB="GLU"
382 OSMESA_LIB="OSMesa"
383 if test "x${enable_mangling}" = "xyes" ; then
384   DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
385   GL_LIB="MangledGL"
386   GLU_LIB="MangledGLU"
387   OSMESA_LIB="MangledOSMesa"
388 fi
389 AC_SUBST([GL_LIB])
390 AC_SUBST([GLU_LIB])
391 AC_SUBST([OSMESA_LIB])
392
393 dnl
394 dnl potentially-infringing-but-nobody-knows-for-sure stuff
395 dnl
396 AC_ARG_ENABLE([texture-float],
397     [AS_HELP_STRING([--enable-texture-float],
398         [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
399     [enable_texture_float="$enableval"],
400     [enable_texture_float=no]
401 )
402 if test "x$enable_texture_float" = xyes; then
403     AC_MSG_WARN([Floating-point textures enabled.])
404     AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
405     DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
406 fi
407
408 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
409 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
410 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
411 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
412 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
413 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
414 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
415 GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
416 WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
417
418 GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
419 GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
420 OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
421 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
422 EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
423 GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
424 GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
425 VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
426 GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
427 WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
428
429 AC_SUBST([GL_LIB_NAME])
430 AC_SUBST([GLU_LIB_NAME])
431 AC_SUBST([OSMESA_LIB_NAME])
432 AC_SUBST([EGL_LIB_NAME])
433 AC_SUBST([GLESv1_CM_LIB_NAME])
434 AC_SUBST([GLESv2_LIB_NAME])
435 AC_SUBST([VG_LIB_NAME])
436 AC_SUBST([GLAPI_LIB_NAME])
437 AC_SUBST([WAYLAND_EGL_LIB_NAME])
438
439 AC_SUBST([GL_LIB_GLOB])
440 AC_SUBST([GLU_LIB_GLOB])
441 AC_SUBST([OSMESA_LIB_GLOB])
442 AC_SUBST([EGL_LIB_GLOB])
443 AC_SUBST([GLESv1_CM_LIB_GLOB])
444 AC_SUBST([GLESv2_LIB_GLOB])
445 AC_SUBST([VG_LIB_GLOB])
446 AC_SUBST([GLAPI_LIB_GLOB])
447 AC_SUBST([WAYLAND_EGL_LIB_GLOB])
448
449 dnl
450 dnl Arch/platform-specific settings
451 dnl
452 AC_ARG_ENABLE([asm],
453     [AS_HELP_STRING([--disable-asm],
454         [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
455     [enable_asm="$enableval"],
456     [enable_asm=yes]
457 )
458 asm_arch=""
459 ASM_FLAGS=""
460 MESA_ASM_SOURCES=""
461 GLAPI_ASM_SOURCES=""
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)
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*)
479             test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
480             ;;
481         esac
482         ;;
483     x86_64)
484         case "$host_os" in
485         linux* | *freebsd* | dragonfly* | *netbsd*)
486             test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
487             ;;
488         esac
489         ;;
490     powerpc)
491         case "$host_os" in
492         linux*)
493             asm_arch=ppc
494             ;;
495         esac
496         ;;
497     sparc*)
498         case "$host_os" in
499         linux*)
500             asm_arch=sparc
501             ;;
502         esac
503         ;;
504     esac
505
506     case "$asm_arch" in
507     x86)
508         ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
509         MESA_ASM_SOURCES='$(X86_SOURCES)'
510         GLAPI_ASM_SOURCES='$(X86_API)'
511         AC_MSG_RESULT([yes, x86])
512         ;;
513     x86_64)
514         ASM_FLAGS="-DUSE_X86_64_ASM"
515         MESA_ASM_SOURCES='$(X86-64_SOURCES)'
516         GLAPI_ASM_SOURCES='$(X86-64_API)'
517         AC_MSG_RESULT([yes, x86_64])
518         ;;
519     sparc)
520         ASM_FLAGS="-DUSE_SPARC_ASM"
521         MESA_ASM_SOURCES='$(SPARC_SOURCES)'
522         GLAPI_ASM_SOURCES='$(SPARC_API)'
523         AC_MSG_RESULT([yes, sparc])
524         ;;
525     *)
526         AC_MSG_RESULT([no, platform not supported])
527         ;;
528     esac
529 fi
530 AC_SUBST([ASM_FLAGS])
531 AC_SUBST([MESA_ASM_SOURCES])
532 AC_SUBST([GLAPI_ASM_SOURCES])
533
534 dnl PIC code macro
535 MESA_PIC_FLAGS
536
537 dnl Check to see if dlopen is in default libraries (like Solaris, which
538 dnl has it in libc), or if libdl is needed to get it.
539 AC_CHECK_FUNC([dlopen], [],
540     [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
541 AC_SUBST([DLOPEN_LIBS])
542
543 dnl See if posix_memalign is available
544 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
545
546 dnl SELinux awareness.
547 AC_ARG_ENABLE([selinux],
548     [AS_HELP_STRING([--enable-selinux],
549         [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
550     [MESA_SELINUX="$enableval"],
551     [MESA_SELINUX=no])
552 if test "x$enable_selinux" = "xyes"; then
553     AC_CHECK_HEADER([selinux/selinux.h],[],
554                     [AC_MSG_ERROR([SELinux headers not found])])
555     AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
556                  [AC_MSG_ERROR([SELinux library not found])])
557     SELINUX_LIBS="-lselinux"
558     DEFINES="$DEFINES -DMESA_SELINUX"
559 fi
560
561 dnl Options for APIs
562 AC_ARG_ENABLE([opengl],
563     [AS_HELP_STRING([--disable-opengl],
564         [disable support for standard OpenGL API @<:@default=no@:>@])],
565     [enable_opengl="$enableval"],
566     [enable_opengl=yes])
567 AC_ARG_ENABLE([gles1],
568     [AS_HELP_STRING([--enable-gles1],
569         [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
570     [enable_gles1="$enableval"],
571     [enable_gles1=no])
572 AC_ARG_ENABLE([gles2],
573     [AS_HELP_STRING([--enable-gles2],
574         [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
575     [enable_gles2="$enableval"],
576     [enable_gles2=no])
577 AC_ARG_ENABLE([openvg],
578     [AS_HELP_STRING([--enable-openvg],
579         [enable support for OpenVG API @<:@default=no@:>@])],
580     [enable_openvg="$enableval"],
581     [enable_openvg=no])
582
583 AC_ARG_ENABLE([dri],
584     [AS_HELP_STRING([--enable-dri],
585         [enable DRI modules @<:@default=auto@:>@])],
586     [enable_dri="$enableval"],
587     [enable_dri=auto])
588 AC_ARG_ENABLE([glx],
589     [AS_HELP_STRING([--enable-glx],
590         [enable GLX library @<:@default=auto@:>@])],
591     [enable_glx="$enableval"],
592     [enable_glx=auto])
593 AC_ARG_ENABLE([osmesa],
594     [AS_HELP_STRING([--enable-osmesa],
595         [enable OSMesa library @<:@default=auto@:>@])],
596     [enable_osmesa="$enableval"],
597     [enable_osmesa=auto])
598 AC_ARG_ENABLE([egl],
599     [AS_HELP_STRING([--disable-egl],
600         [disable EGL library @<:@default=enabled@:>@])],
601     [enable_egl="$enableval"],
602     [enable_egl=yes])
603
604 AC_ARG_ENABLE([xorg],
605     [AS_HELP_STRING([--enable-xorg],
606         [enable support for X.Org DDX API @<:@default=no@:>@])],
607     [enable_xorg="$enableval"],
608     [enable_xorg=no])
609 AC_ARG_ENABLE([xa],
610     [AS_HELP_STRING([--enable-xa],
611         [enable build of the XA X Acceleration API @<:@default=no@:>@])],
612     [enable_xa="$enableval"],
613     [enable_xa=no])
614 AC_ARG_ENABLE([d3d1x],
615     [AS_HELP_STRING([--enable-d3d1x],
616         [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
617     [enable_d3d1x="$enableval"],
618     [enable_d3d1x=no])
619 AC_ARG_ENABLE([gbm],
620    [AS_HELP_STRING([--enable-gbm],
621          [enable gbm library @<:@default=auto@:>@])],
622    [enable_gbm="$enableval"],
623    [enable_gbm=auto])
624
625 AC_ARG_ENABLE([xvmc],
626    [AS_HELP_STRING([--enable-xvmc],
627          [enable xvmc library @<:@default=auto@:>@])],
628    [enable_xvmc="$enableval"],
629    [enable_xvmc=auto])
630 AC_ARG_ENABLE([vdpau],
631    [AS_HELP_STRING([--enable-vdpau],
632          [enable vdpau library @<:@default=auto@:>@])],
633    [enable_vdpau="$enableval"],
634    [enable_vdpau=auto])
635 AC_ARG_ENABLE([va],
636    [AS_HELP_STRING([--enable-va],
637          [enable va library @<:@default=auto@:>@])],
638    [enable_va="$enableval"],
639    [enable_va=auto])
640
641 AC_ARG_ENABLE([xlib_glx],
642     [AS_HELP_STRING([--enable-xlib-glx],
643         [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
644     [enable_xlib_glx="$enableval"],
645     [enable_xlib_glx=auto])
646 AC_ARG_ENABLE([gallium_egl],
647     [AS_HELP_STRING([--enable-gallium-egl],
648         [enable optional EGL state tracker (not required
649          for EGL support in Gallium with OpenGL and OpenGL ES)
650          @<:@default=disable@:>@])],
651     [enable_gallium_egl="$enableval"],
652     [enable_gallium_egl=no])
653 AC_ARG_ENABLE([gallium_gbm],
654     [AS_HELP_STRING([--enable-gallium-gbm],
655         [enable optional gbm state tracker (not required for
656          gbm support in Gallium)
657          @<:@default=auto@:>@])],
658     [enable_gallium_gbm="$enableval"],
659     [enable_gallium_gbm=auto])
660
661 # Option for Gallium drivers
662 GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
663
664 AC_ARG_WITH([gallium-drivers],
665     [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
666         [comma delimited Gallium drivers list, e.g.
667         "i915,nouveau,r300,r600,svga,swrast"
668         @<:@default=r300,r600,swrast@:>@])],
669     [with_gallium_drivers="$withval"],
670     [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
671
672 # Doing '--without-gallium-drivers' will set this variable to 'no'.  Clear it
673 # here so that the script doesn't choke on an unknown driver name later.
674 case "$with_gallium_drivers" in
675     yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
676     no) with_gallium_drivers='' ;;
677 esac
678
679 if test "x$enable_opengl" = xno -a \
680         "x$enable_gles1" = xno -a \
681         "x$enable_gles2" = xno -a \
682         "x$enable_openvg" = xno -a \
683         "x$enable_xorg" = xno -a \
684         "x$enable_xa" = xno -a \
685         "x$enable_d3d1x" = xno -a \
686         "x$enable_xvmc" = xno -a \
687         "x$enable_vdpau" = xno -a \
688         "x$enable_va" = xno; then
689     AC_MSG_ERROR([at least one API should be enabled])
690 fi
691
692 API_DEFINES=""
693 if test "x$enable_opengl" = xno; then
694     API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
695 else
696     API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
697 fi
698 if test "x$enable_gles1" = xyes; then
699     API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
700 fi
701 if test "x$enable_gles2" = xyes; then
702     API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
703 fi
704 AC_SUBST([API_DEFINES])
705
706 AC_ARG_ENABLE([shared-glapi],
707     [AS_HELP_STRING([--enable-shared-glapi],
708         [EXPERIMENTAL.  Enable shared glapi for OpenGL @<:@default=no@:>@])],
709     [enable_shared_glapi="$enableval"],
710     [enable_shared_glapi=no])
711
712 SHARED_GLAPI="0"
713 if test "x$enable_shared_glapi" = xyes; then
714     SHARED_GLAPI="1"
715 fi
716 AC_SUBST([SHARED_GLAPI])
717
718 dnl
719 dnl Driver configuration. Options are xlib, dri and osmesa right now.
720 dnl More later: fbdev, ...
721 dnl
722 default_driver="xlib"
723
724 case "$host_os" in
725 linux*)
726     case "$host_cpu" in
727     i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
728     esac
729     ;;
730 *freebsd* | dragonfly* | *netbsd*)
731     case "$host_cpu" in
732     i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
733     esac
734     ;;
735 esac
736
737 if test "x$enable_opengl" = xno; then
738     default_driver="no"
739 fi
740
741 AC_ARG_WITH([driver],
742     [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
743     [mesa_driver="$withval"],
744     [mesa_driver=auto])
745 dnl Check for valid option
746 case "x$mesa_driver" in
747 xxlib|xdri|xosmesa|xno)
748     if test "x$enable_dri" != xauto -o \
749             "x$enable_glx" != xauto -o \
750             "x$enable_osmesa" != xauto -o \
751             "x$enable_xlib_glx" != xauto; then
752         AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
753     fi
754     ;;
755 xauto)
756     mesa_driver="$default_driver"
757     ;;
758 *)
759     AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
760     ;;
761 esac
762
763 # map $mesa_driver to APIs
764 if test "x$enable_dri" = xauto; then
765     case "x$mesa_driver" in
766     xdri) enable_dri=yes ;;
767     *)    enable_dri=no ;;
768     esac
769 fi
770
771 if test "x$enable_glx" = xauto; then
772     case "x$mesa_driver" in
773     xdri|xxlib) enable_glx=yes ;;
774     *)          enable_glx=no ;;
775     esac
776 fi
777
778 if test "x$enable_osmesa" = xauto; then
779     case "x$mesa_driver" in
780     xxlib|xosmesa) enable_osmesa=yes ;;
781     *)             enable_osmesa=no ;;
782     esac
783 fi
784
785 if test "x$enable_xlib_glx" = xauto; then
786     case "x$mesa_driver" in
787     xxlib) enable_xlib_glx=yes ;;
788     *)     enable_xlib_glx=no ;;
789     esac
790 fi
791
792 if test "x$enable_glx" = xno; then
793     enable_xlib_glx=no
794 fi
795
796 AM_CONDITIONAL(HAVE_DRI, test x"$enable_dri" = xyes)
797
798 dnl
799 dnl Driver specific build directories
800 dnl
801
802 dnl this variable will be prepended to SRC_DIRS and is not exported
803 CORE_DIRS=""
804
805 SRC_DIRS=""
806 GLU_DIRS="sgi"
807 GALLIUM_DIRS="auxiliary drivers state_trackers"
808 GALLIUM_TARGET_DIRS=""
809 GALLIUM_WINSYS_DIRS="sw"
810 GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
811 GALLIUM_STATE_TRACKERS_DIRS=""
812
813 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
814 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
815 x*yes*)
816     CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
817     ;;
818 esac
819
820 # build glapi if OpenGL is enabled
821 if test "x$enable_opengl" = xyes; then
822     CORE_DIRS="$CORE_DIRS mapi/glapi"
823 fi
824
825 # build es1api if OpenGL ES 1.x is enabled
826 if test "x$enable_gles1" = xyes; then
827     CORE_DIRS="$CORE_DIRS mapi/es1api"
828 fi
829
830 # build es2api if OpenGL ES 2.x is enabled
831 if test "x$enable_gles2" = xyes; then
832     CORE_DIRS="$CORE_DIRS mapi/es2api"
833 fi
834
835 # build glsl and mesa if OpenGL or OpenGL ES is enabled
836 case "x$enable_opengl$enable_gles1$enable_gles2" in
837 x*yes*)
838     CORE_DIRS="$CORE_DIRS glsl mesa"
839     ;;
840 esac
841
842 case "x$enable_glx$enable_xlib_glx" in
843 xyesyes)
844     DRIVER_DIRS="$DRIVER_DIRS x11"
845     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
846     GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
847     GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
848     HAVE_WINSYS_XLIB="yes"
849     ;;
850 xyesno)
851     # DRI-based GLX
852     SRC_DIRS="$SRC_DIRS glx"
853     ;;
854 esac
855
856 if test "x$enable_dri" = xyes; then
857     DRIVER_DIRS="$DRIVER_DIRS dri"
858
859     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
860     GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
861     HAVE_ST_DRI="yes"
862 fi
863
864 if test "x$enable_osmesa" = xyes; then
865     # the empty space matters for osmesa... (see src/mesa/Makefile)
866     if test -n "$DRIVER_DIRS"; then
867         DRIVER_DIRS="$DRIVER_DIRS osmesa"
868     else
869         DRIVER_DIRS="osmesa"
870     fi
871 fi
872
873 AC_SUBST([SRC_DIRS])
874 AC_SUBST([GLU_DIRS])
875 AC_SUBST([DRIVER_DIRS])
876 AC_SUBST([GALLIUM_DIRS])
877 AC_SUBST([GALLIUM_TARGET_DIRS])
878 AC_SUBST([GALLIUM_WINSYS_DIRS])
879 AC_SUBST([GALLIUM_DRIVERS_DIRS])
880 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
881 AC_SUBST([MESA_LLVM])
882
883 # Check for libdrm
884 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
885                   [have_libdrm=yes], [have_libdrm=no])
886
887 if test "x$enable_dri" = xyes; then
888     # DRI must be shared, I think
889     if test "$enable_static" = yes; then
890         AC_MSG_ERROR([Can't use static libraries for DRI drivers])
891     fi
892
893     # not a hard requirement as swrast does not depend on it
894     if test "x$have_libdrm" = xyes; then
895         DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
896     fi
897 fi
898
899 dnl
900 dnl Find out if X is available. The variable have_x is set if libX11 is
901 dnl found to mimic AC_PATH_XTRA.
902 dnl
903 if test -n "$PKG_CONFIG"; then
904     AC_MSG_CHECKING([pkg-config files for X11 are available])
905     PKG_CHECK_EXISTS([x11],[
906         x11_pkgconfig=yes
907         have_x=yes
908         ],[
909         x11_pkgconfig=no
910     ])
911     AC_MSG_RESULT([$x11_pkgconfig])
912 else
913     x11_pkgconfig=no
914 fi
915 dnl Use the autoconf macro if no pkg-config files
916 if test "$x11_pkgconfig" = yes; then
917     PKG_CHECK_MODULES([X11], [x11])
918 else
919     AC_PATH_XTRA
920     test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
921     test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
922     AC_SUBST([X11_CFLAGS])
923     AC_SUBST([X11_LIBS])
924 fi
925
926 dnl Try to tell the user that the --x-* options are only used when
927 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
928 m4_divert_once([HELP_BEGIN],
929 [These options are only used when the X libraries cannot be found by the
930 pkg-config utility.])
931
932 dnl We need X for xlib and dri, so bomb now if it's not found
933 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
934     AC_MSG_ERROR([X11 development libraries needed for GLX])
935 fi
936
937 if test "x$enable_glx" = xyes; then
938     DEFINES="$DEFINES -DUSE_XCB"
939 fi
940
941 dnl Direct rendering or just indirect rendering
942 case "$host_os" in
943 gnu*)
944     dnl Disable by default on GNU/Hurd
945     driglx_direct_default="no"
946     ;;
947 cygwin*)
948     dnl Disable by default on cygwin
949     driglx_direct_default="no"
950     ;;
951 *)
952     driglx_direct_default="yes"
953     ;;
954 esac
955 AC_ARG_ENABLE([driglx-direct],
956     [AS_HELP_STRING([--disable-driglx-direct],
957         [enable direct rendering in GLX and EGL for DRI \
958             @<:@default=auto@:>@])],
959     [driglx_direct="$enableval"],
960     [driglx_direct="$driglx_direct_default"])
961
962 dnl
963 dnl libGL configuration per driver
964 dnl
965 case "x$enable_glx$enable_xlib_glx" in
966 xyesyes)
967     # Xlib-based GLX
968     if test "$x11_pkgconfig" = yes; then
969         PKG_CHECK_MODULES([XLIBGL], [x11 xext])
970         GL_PC_REQ_PRIV="x11 xext"
971         X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
972         GL_LIB_DEPS="$XLIBGL_LIBS"
973     else
974         # should check these...
975         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
976         GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
977         GL_PC_LIB_PRIV="$GL_LIB_DEPS"
978         GL_PC_CFLAGS="$X11_INCLUDES"
979     fi
980     GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS"
981     GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
982     ;;
983 xyesno)
984     # DRI-based GLX
985     PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
986     GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
987     if test x"$driglx_direct" = xyes; then
988         if test "x$have_libdrm" != xyes; then
989             AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
990         fi
991         PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
992         GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
993     fi
994
995     # find the DRI deps for libGL
996     if test "$x11_pkgconfig" = yes; then
997         dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx"
998
999         # add xf86vidmode if available
1000         PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
1001         if test "$HAVE_XF86VIDMODE" = yes ; then
1002             dri_modules="$dri_modules xxf86vm"
1003         fi
1004
1005         PKG_CHECK_MODULES([DRIGL], [$dri_modules])
1006         GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1007         X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
1008         GL_LIB_DEPS="$DRIGL_LIBS"
1009     else
1010         # should check these...
1011         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
1012         if test "x$HAVE_XF86VIDMODE" == xyes; then
1013            GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
1014         else
1015            GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1016         fi
1017         GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1018         GL_PC_CFLAGS="$X11_INCLUDES"
1019
1020         # XCB can only be used from pkg-config
1021         PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1022         GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1023         X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1024         GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1025     fi
1026
1027     # Check to see if the xcb-glx library is new enough to support
1028     # GLX_ARB_create_context.  This bit of hackery is necessary until XCB 1.8
1029     # is released.
1030     save_CPPFLAGS="$CPPFLAGS"
1031     save_LDFLAGS="$LDFLAGS"
1032     CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
1033     LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
1034     AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
1035         [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
1036         [HAVE_XCB_GLX_CREATE_CONTEXT=no])
1037     CPPFLAGS="$save_CPPFLAGS"
1038     LDFLAGS="$save_LDFLAGS"
1039
1040     if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
1041         X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
1042     fi
1043
1044     # need DRM libs, -lpthread, etc.
1045     GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1046     GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1047     ;;
1048 esac
1049
1050 # This is outside the case (above) so that it is invoked even for non-GLX
1051 # builds.
1052 AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
1053     test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
1054
1055 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1056 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1057 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1058 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1059
1060 AC_SUBST([GL_LIB_DEPS])
1061 AC_SUBST([GL_PC_REQ_PRIV])
1062 AC_SUBST([GL_PC_LIB_PRIV])
1063 AC_SUBST([GL_PC_CFLAGS])
1064 AC_SUBST([DRI_PC_REQ_PRIV])
1065 AC_SUBST([GLESv1_CM_LIB_DEPS])
1066 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1067 AC_SUBST([GLESv2_LIB_DEPS])
1068 AC_SUBST([GLESv2_PC_LIB_PRIV])
1069
1070 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
1071 AC_SUBST([GLAPI_LIB_DEPS])
1072
1073
1074 dnl Setup default DRI CFLAGS
1075 DRI_CFLAGS='$(CFLAGS)'
1076 DRI_CXXFLAGS='$(CXXFLAGS)'
1077 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1078 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1079
1080 if test "x$enable_dri" = xyes && test "x$driglx_direct" = xyes ; then
1081     DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1082     DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1083     DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1084     DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1085     DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1086     DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1087     MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1088 fi
1089 AC_SUBST([DRICORE_LIBS])
1090 AC_SUBST([DRICORE_GLSL_LIBS])
1091 AC_SUBST([DRICORE_LIB_DEPS])
1092 AC_SUBST([DRI_CXXFLAGS])
1093 AC_SUBST([DRI_CFLAGS])
1094 AC_SUBST([MESA_MODULES])
1095
1096 AC_SUBST([HAVE_XF86VIDMODE])
1097
1098 dnl
1099 dnl More GLX setup
1100 dnl
1101 case "x$enable_glx$enable_xlib_glx" in
1102 xyesyes)
1103     DEFINES="$DEFINES -DUSE_XSHM"
1104     ;;
1105 xyesno)
1106     DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1107     if test "x$driglx_direct" = xyes; then
1108         DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1109     fi
1110     ;;
1111 esac
1112
1113 dnl
1114 dnl TLS detection
1115 dnl
1116
1117 AC_ARG_ENABLE([glx-tls],
1118     [AS_HELP_STRING([--enable-glx-tls],
1119         [enable TLS support in GLX @<:@default=disabled@:>@])],
1120     [GLX_USE_TLS="$enableval"],
1121     [GLX_USE_TLS=no])
1122 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1123
1124 AS_IF([test "x$GLX_USE_TLS" = xyes],
1125       [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1126
1127 dnl
1128 dnl More DRI setup
1129 dnl
1130 dnl Directory for DRI drivers
1131 AC_ARG_WITH([dri-driverdir],
1132     [AS_HELP_STRING([--with-dri-driverdir=DIR],
1133         [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1134     [DRI_DRIVER_INSTALL_DIR="$withval"],
1135     [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1136 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1137 dnl Extra search path for DRI drivers
1138 AC_ARG_WITH([dri-searchpath],
1139     [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1140         [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1141     [DRI_DRIVER_SEARCH_DIR="$withval"],
1142     [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1143 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1144 dnl Which drivers to build - default is chosen by platform
1145 AC_ARG_WITH([dri-drivers],
1146     [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1147         [comma delimited DRI drivers list, e.g.
1148         "swrast,i965,radeon" @<:@default=auto@:>@])],
1149     [with_dri_drivers="$withval"],
1150     [with_dri_drivers=yes])
1151 if test "x$with_dri_drivers" = x; then
1152     with_dri_drivers=no
1153 fi
1154
1155 dnl If $with_dri_drivers is yes, directories will be added through
1156 dnl platform checks
1157 DRI_DIRS=""
1158 case "$with_dri_drivers" in
1159 no) ;;
1160 yes)
1161     # classic DRI drivers require FEATURE_GL to build
1162     if test "x$enable_opengl" = xyes; then
1163         DRI_DIRS="yes"
1164     fi
1165     ;;
1166 *)
1167     # verify the requested driver directories exist
1168     dri_drivers=`IFS=', '; echo $with_dri_drivers`
1169     for driver in $dri_drivers; do
1170         test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1171             AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1172     done
1173     DRI_DIRS="$dri_drivers"
1174     if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1175         AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1176     fi
1177     ;;
1178 esac
1179
1180 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1181 if test "x$enable_dri" = xyes; then
1182     # Platform specific settings and drivers to build
1183     case "$host_os" in
1184     linux*)
1185         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1186         DEFINES="$DEFINES -DHAVE_ALIAS"
1187
1188         case "$host_cpu" in
1189         x86_64)
1190             if test "x$DRI_DIRS" = "xyes"; then
1191                 DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1192             fi
1193             ;;
1194         powerpc*)
1195             # Build only the drivers for cards that exist on PowerPC.
1196             if test "x$DRI_DIRS" = "xyes"; then
1197                 DRI_DIRS="r200 radeon swrast"
1198             fi
1199             ;;
1200         sparc*)
1201             # Build only the drivers for cards that exist on sparc
1202             if test "x$DRI_DIRS" = "xyes"; then
1203                 DRI_DIRS="r200 radeon swrast"
1204             fi
1205             ;;
1206         esac
1207         ;;
1208     freebsd* | dragonfly* | *netbsd*)
1209         DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1210         DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1211
1212         if test "x$DRI_DIRS" = "xyes"; then
1213             DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1214         fi
1215         ;;
1216     gnu*)
1217         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1218         DEFINES="$DEFINES -DHAVE_ALIAS"
1219         ;;
1220     solaris*)
1221         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1222         ;;
1223     cygwin*)
1224         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1225         if test "x$DRI_DIRS" = "xyes"; then
1226             DRI_DIRS="swrast"
1227         fi
1228         ;;
1229     esac
1230
1231     # default drivers
1232     if test "x$DRI_DIRS" = "xyes"; then
1233         DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1234     fi
1235
1236     DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/  */ /g'`
1237
1238     # Check for expat
1239     if test "x$enable_dri" = xyes; then
1240         EXPAT_INCLUDES=""
1241         EXPAT_LIB=-lexpat
1242         AC_ARG_WITH([expat],
1243             [AS_HELP_STRING([--with-expat=DIR],
1244                 [expat install directory])],[
1245             EXPAT_INCLUDES="-I$withval/include"
1246             CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1247             LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1248             EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1249             ])
1250         AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1251         save_LIBS="$LIBS"
1252         AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1253             [AC_MSG_ERROR([Expat required for DRI.])])
1254         LIBS="$save_LIBS"
1255     fi
1256
1257     # libdrm is required for all except swrast
1258     if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1259         if test "x$have_libdrm" != xyes; then
1260             AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1261         fi
1262     fi
1263
1264     # put all the necessary libs together
1265     DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1266 fi
1267 AC_SUBST([DRI_DIRS])
1268 AC_SUBST([EXPAT_INCLUDES])
1269 AC_SUBST([DRI_LIB_DEPS])
1270
1271 case $DRI_DIRS in
1272 *i915*|*i965*)
1273     PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1274
1275     for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1276         case $d in
1277         i915)
1278             HAVE_I915_DRI=yes;
1279             ;;
1280         i965)
1281             HAVE_I965_DRI=yes;
1282             ;;
1283         esac
1284     done
1285
1286     ;;
1287 esac
1288
1289 case $DRI_DIRS in
1290 *nouveau*)
1291     PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1292     HAVE_NOUVEAU_DRI=yes;
1293     ;;
1294 esac
1295
1296 case $DRI_DIRS in
1297 *radeon*|*r200*)
1298     PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1299
1300     for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1301         case $d in
1302         radeon)
1303             HAVE_RADEON_DRI=yes;
1304             ;;
1305         r200)
1306             HAVE_R200_DRI=yes;
1307             ;;
1308         esac
1309     done
1310
1311     ;;
1312 esac
1313
1314 case $DRI_DIRS in
1315 *swrast*)
1316     HAVE_SWRAST_DRI=yes;
1317     ;;
1318 esac
1319
1320 AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
1321 AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1322 AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
1323 AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
1324 AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
1325 AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
1326
1327 dnl
1328 dnl OSMesa configuration
1329 dnl
1330
1331 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1332 AC_ARG_WITH([osmesa-bits],
1333     [AS_HELP_STRING([--with-osmesa-bits=BITS],
1334         [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1335     [osmesa_bits="$withval"],
1336     [osmesa_bits=8])
1337 if test "x$osmesa_bits" != x8; then
1338     if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1339         AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1340         osmesa_bits=8
1341     fi
1342 fi
1343 case "x$osmesa_bits" in
1344 x8)
1345     OSMESA_LIB="${OSMESA_LIB}"
1346     ;;
1347 x16|x32)
1348     OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1349     DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1350     ;;
1351 *)
1352     AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1353     ;;
1354 esac
1355
1356 if test "x$enable_osmesa" = xyes; then
1357     # only link libraries with osmesa if shared
1358     if test "$enable_static" = no; then
1359         OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1360     else
1361         OSMESA_LIB_DEPS=""
1362     fi
1363     OSMESA_MESA_DEPS=""
1364     OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1365 fi
1366 AC_SUBST([OSMESA_LIB_DEPS])
1367 AC_SUBST([OSMESA_MESA_DEPS])
1368 AC_SUBST([OSMESA_PC_REQ])
1369 AC_SUBST([OSMESA_PC_LIB_PRIV])
1370
1371 dnl
1372 dnl gbm configuration
1373 dnl
1374 if test "x$enable_gbm" = xauto; then
1375     case "$with_egl_platforms" in
1376         *drm*)
1377             enable_gbm=yes ;;
1378          *)
1379             enable_gbm=no ;;
1380     esac
1381 fi
1382 if test "x$enable_gbm" = xyes; then
1383     SRC_DIRS="$SRC_DIRS gbm"
1384
1385     PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1386                       AC_MSG_ERROR([gbm needs udev]))
1387
1388     if test "x$enable_dri" = xyes; then
1389         GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1390         if test "$SHARED_GLAPI" -eq 0; then
1391             AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1392         fi
1393     fi
1394 fi
1395 GBM_PC_REQ_PRIV="libudev"
1396 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1397 AC_SUBST([GBM_PC_REQ_PRIV])
1398 AC_SUBST([GBM_PC_LIB_PRIV])
1399
1400 dnl
1401 dnl EGL configuration
1402 dnl
1403 EGL_CLIENT_APIS=""
1404
1405 if test "x$enable_egl" = xyes; then
1406     SRC_DIRS="$SRC_DIRS egl"
1407     EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1408     EGL_DRIVERS_DIRS=""
1409
1410     AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1411
1412     if test "$enable_static" != yes; then
1413         # build egl_glx when libGL is built
1414         if test "x$enable_glx" = xyes; then
1415             EGL_DRIVERS_DIRS="glx"
1416         fi
1417
1418         PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1419                           [have_libudev=yes],[have_libudev=no])
1420         if test "$have_libudev" = yes; then
1421             DEFINES="$DEFINES -DHAVE_LIBUDEV"
1422         fi
1423         if test "x$enable_dri" = xyes; then
1424             # build egl_dri2 when xcb-dri2 is available
1425             PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1426                           [have_xcb_dri2=yes],[have_xcb_dri2=no])
1427             
1428             if test "$have_xcb_dri2" = yes; then
1429                 EGL_DRIVER_DRI2=dri2
1430                 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1431                 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1432                 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1433                           [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1434             fi
1435         fi
1436
1437         EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1438     fi
1439 fi
1440 AC_SUBST([EGL_LIB_DEPS])
1441 AC_SUBST([EGL_DRIVERS_DIRS])
1442
1443 dnl
1444 dnl EGL Gallium configuration
1445 dnl
1446 if test "x$enable_gallium_egl" = xyes; then
1447     if test "x$with_gallium_drivers" = x; then
1448         AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1449     fi
1450     if test "x$enable_egl" = xno; then
1451         AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1452     fi
1453     if test "x$have_libdrm" != xyes; then
1454         AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1455     fi
1456
1457     GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1458     GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1459     HAVE_ST_EGL="yes"
1460 fi
1461
1462 dnl
1463 dnl gbm Gallium configuration
1464 dnl
1465 if test "x$enable_gallium_gbm" = xauto; then
1466     case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1467         yesyesyes*drm*)
1468             enable_gallium_gbm=yes ;;
1469          *)
1470             enable_gallium_gbm=no ;;
1471     esac
1472 fi
1473 if test "x$enable_gallium_gbm" = xyes; then
1474     if test "x$with_gallium_drivers" = x; then
1475         AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1476     fi
1477     if test "x$enable_gbm" = xno; then
1478         AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1479     fi
1480     # gbm_gallium abuses DRI_LIB_DEPS to link.  Make sure it is set.
1481     if test "x$enable_dri" = xno; then
1482         AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1483     fi
1484
1485     GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1486     GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1487     HAVE_ST_GBM="yes"
1488 fi
1489
1490 dnl
1491 dnl X.Org DDX configuration
1492 dnl
1493 if test "x$enable_xorg" = xyes; then
1494     PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1495     PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1496     PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1497     PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1498         HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1499         HAVE_XEXTPROTO_71="no")
1500     GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1501     HAVE_ST_XORG=yes
1502 fi
1503
1504 dnl
1505 dnl XA configuration
1506 dnl
1507 if test "x$enable_xa" = xyes; then
1508 AC_PROG_AWK
1509 AC_PROG_GREP
1510 AC_CHECK_PROG(NM, nm, "nm")
1511 if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1512 AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1513 enable_xa=no
1514 fi
1515 fi
1516 if test "x$enable_xa" = xyes; then
1517     GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1518     HAVE_ST_XA=yes
1519     AC_SUBST(AWK)
1520     AC_SUBST(GREP)
1521     AC_SUBST(NM)
1522 fi
1523
1524 dnl
1525 dnl OpenVG configuration
1526 dnl
1527 VG_LIB_DEPS=""
1528
1529 if test "x$enable_openvg" = xyes; then
1530     if test "x$enable_egl" = xno; then
1531         AC_MSG_ERROR([cannot enable OpenVG without EGL])
1532     fi
1533     if test "x$with_gallium_drivers" = x; then
1534         AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1535     fi
1536     if test "x$enable_gallium_egl" = xno; then
1537         AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1538     fi
1539
1540     EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1541     VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1542     CORE_DIRS="$CORE_DIRS mapi/vgapi"
1543     GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1544     HAVE_ST_VEGA=yes
1545 fi
1546
1547 dnl
1548 dnl D3D1X configuration
1549 dnl
1550
1551 if test "x$enable_d3d1x" = xyes; then
1552     if test "x$with_gallium_drivers" = x; then
1553         AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1554     fi
1555
1556     GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1557     HAVE_ST_D3D1X=yes
1558 fi
1559
1560 dnl
1561 dnl Gallium G3DVL configuration
1562 dnl
1563 AC_ARG_ENABLE([gallium-g3dvl],
1564     [AS_HELP_STRING([--enable-gallium-g3dvl],
1565         [build gallium g3dvl @<:@default=disabled@:>@])],
1566     [enable_gallium_g3dvl="$enableval"],
1567     [enable_gallium_g3dvl=no])
1568 if test "x$enable_gallium_g3dvl" = xyes; then
1569     if test "x$with_gallium_drivers" = x; then
1570         AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1571     fi
1572
1573     if test "x$enable_xvmc" = xauto; then
1574         PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1575     fi
1576
1577     if test "x$enable_vdpau" = xauto; then
1578         PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1579     fi
1580
1581     if test "x$enable_va" = xauto; then
1582         #don't enable vaapi state tracker even if package exists
1583         #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1584         enable_va=no
1585     fi
1586 fi
1587
1588 if test "x$enable_xvmc" = xyes; then
1589     PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1590     GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1591     HAVE_ST_XVMC="yes"
1592 fi
1593
1594 if test "x$enable_vdpau" = xyes; then
1595     PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1596     GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1597     HAVE_ST_VDPAU="yes"
1598 fi
1599
1600 if test "x$enable_va" = xyes; then
1601     PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1602     AC_MSG_WARN([vaapi state tracker currently unmaintained])
1603     GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1604     HAVE_ST_VA="yes"
1605 fi
1606
1607 dnl
1608 dnl GLU configuration
1609 dnl
1610 AC_ARG_ENABLE([glu],
1611     [AS_HELP_STRING([--disable-glu],
1612         [enable OpenGL Utility library @<:@default=enabled@:>@])],
1613     [enable_glu="$enableval"],
1614     [enable_glu=yes])
1615
1616 if test "x$enable_glu" = xyes; then
1617     if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1618         AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1619         enable_glu=no
1620     fi
1621 fi
1622
1623 if test "x$enable_glu" = xyes; then
1624     SRC_DIRS="$SRC_DIRS glu"
1625
1626     if test "x$enable_glx" = xno; then
1627         # Link libGLU to libOSMesa instead of libGL
1628         GLU_LIB_DEPS=""
1629         GLU_PC_REQ="osmesa"
1630         if test "$enable_static" = no; then
1631             GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1632         else
1633             GLU_MESA_DEPS=""
1634         fi
1635     else
1636         # If static, empty GLU_LIB_DEPS and add libs for programs to link
1637         GLU_PC_REQ="gl"
1638         GLU_PC_LIB_PRIV="-lm"
1639         if test "$enable_static" = no; then
1640             GLU_LIB_DEPS="-lm"
1641             GLU_MESA_DEPS='-l$(GL_LIB)'
1642         else
1643             GLU_LIB_DEPS=""
1644             GLU_MESA_DEPS=""
1645         fi
1646     fi
1647 fi
1648 if test "$enable_static" = no; then
1649     GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1650 fi
1651 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1652 AC_SUBST([GLU_LIB_DEPS])
1653 AC_SUBST([GLU_MESA_DEPS])
1654 AC_SUBST([GLU_PC_REQ])
1655 AC_SUBST([GLU_PC_REQ_PRIV])
1656 AC_SUBST([GLU_PC_LIB_PRIV])
1657 AC_SUBST([GLU_PC_CFLAGS])
1658
1659 AC_SUBST([PROGRAM_DIRS])
1660
1661 dnl
1662 dnl Gallium configuration
1663 dnl
1664 if test "x$with_gallium_drivers" != x; then
1665     SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1666 fi
1667
1668 AC_SUBST([LLVM_CFLAGS])
1669 AC_SUBST([LLVM_LIBS])
1670 AC_SUBST([LLVM_LDFLAGS])
1671 AC_SUBST([LLVM_VERSION])
1672
1673 case "x$enable_opengl$enable_gles1$enable_gles2" in
1674 x*yes*)
1675     EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1676     ;;
1677 esac
1678
1679 AC_SUBST([VG_LIB_DEPS])
1680 AC_SUBST([EGL_CLIENT_APIS])
1681
1682 AC_ARG_WITH([egl-platforms],
1683     [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1684         [comma delimited native platforms libEGL supports, e.g.
1685         "x11,drm" @<:@default=auto@:>@])],
1686     [with_egl_platforms="$withval"],
1687     [with_egl_platforms=yes])
1688
1689 EGL_PLATFORMS=""
1690 WAYLAND_EGL_LIB_DEPS=""
1691
1692 case "$with_egl_platforms" in
1693 yes)
1694     if test "x$enable_egl" = xyes; then
1695         EGL_PLATFORMS="x11"
1696     fi
1697     ;;
1698 *)
1699     if test "x$enable_egl" != xyes; then
1700         AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1701     fi
1702     # verify the requested driver directories exist
1703     egl_platforms=`IFS=', '; echo $with_egl_platforms`
1704     for plat in $egl_platforms; do
1705         test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1706             AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1707         if test "$plat" = "fbdev"; then
1708                 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1709         fi
1710         if test "$plat" = "null"; then
1711                 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1712         fi
1713         if test "$plat" = "wayland"; then
1714                 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1715                                   [AC_MSG_ERROR([cannot find libwayland-client])])
1716                 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1717                 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1718         fi
1719         if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1720                 AC_MSG_ERROR([EGL platform drm needs gbm])
1721         fi
1722         case "$plat$have_libudev" in
1723                 waylandno|drmno)
1724                     AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1725         esac
1726     done
1727     EGL_PLATFORMS="$egl_platforms"
1728     ;;
1729 esac
1730 AC_SUBST([EGL_PLATFORMS])
1731
1732 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1733 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1734 WAYLAND_EGL_PC_LIB_PRIV=
1735 WAYLAND_EGL_PC_CFLAGS=
1736
1737 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1738 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1739 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1740
1741
1742 AC_ARG_WITH([egl-driver-dir],
1743     [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1744                     [directory for EGL drivers [[default=${libdir}/egl]]])],
1745     [EGL_DRIVER_INSTALL_DIR="$withval"],
1746     [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1747 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1748
1749 AC_ARG_WITH([xorg-driver-dir],
1750     [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1751                     [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1752     [XORG_DRIVER_INSTALL_DIR="$withval"],
1753     [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1754 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1755
1756 AC_ARG_WITH([max-width],
1757     [AS_HELP_STRING([--with-max-width=N],
1758                     [Maximum framebuffer width (4096)])],
1759     [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1760      AS_IF([test "${withval}" -gt "4096"],
1761            [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1762 )
1763 AC_ARG_WITH([max-height],
1764     [AS_HELP_STRING([--with-max-height=N],
1765                     [Maximum framebuffer height (4096)])],
1766     [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1767      AS_IF([test "${withval}" -gt "4096"],
1768            [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1769 )
1770
1771 dnl
1772 dnl Gallium LLVM
1773 dnl
1774 AC_ARG_ENABLE([gallium-llvm],
1775     [AS_HELP_STRING([--enable-gallium-llvm],
1776         [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1777     [enable_gallium_llvm="$enableval"],
1778     [enable_gallium_llvm=auto])
1779 if test "x$with_gallium_drivers" = x; then
1780     enable_gallium_llvm=no
1781 fi
1782 if test "x$enable_gallium_llvm" = xauto; then
1783     case "$host_cpu" in
1784     i*86|x86_64) enable_gallium_llvm=yes;;
1785     esac
1786 fi
1787 if test "x$enable_gallium_llvm" = xyes; then
1788     AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1789
1790     if test "x$LLVM_CONFIG" != xno; then
1791         LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1792         LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g'`
1793         LLVM_LIBS="`$LLVM_CONFIG --libs`"
1794
1795         LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1796         DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1797         MESA_LLVM=1
1798     else
1799         MESA_LLVM=0
1800     fi
1801 else
1802     MESA_LLVM=0
1803 fi
1804
1805 dnl Directory for VDPAU libs
1806 AC_ARG_WITH([vdpau-libdir],
1807     [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1808         [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1809     [VDPAU_LIB_INSTALL_DIR="$withval"],
1810     [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1811 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1812
1813 dnl Directory for VA libs
1814 AC_ARG_WITH([va-libdir],
1815     [AS_HELP_STRING([--with-va-libdir=DIR],
1816         [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1817     [VA_LIB_INSTALL_DIR="$withval"],
1818     [VA_LIB_INSTALL_DIR='${libdir}/va'])
1819 AC_SUBST([VA_LIB_INSTALL_DIR])
1820
1821 dnl
1822 dnl Gallium helper functions
1823 dnl
1824 gallium_check_st() {
1825     if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1826          test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1827          test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1828          if test "x$have_libdrm" != xyes; then
1829             AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1830          fi
1831          GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1832     fi
1833     if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1834          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1835     fi
1836     if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1837          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1838     fi
1839     if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1840          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1841     fi
1842     if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1843          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1844          NEED_G3DVL_DRI="yes"
1845     fi
1846     if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1847          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1848          NEED_G3DVL_DRI="yes"
1849     fi
1850     if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1851          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1852          NEED_G3DVL_DRI="yes"
1853     fi
1854 }
1855
1856 gallium_require_llvm() {
1857     if test "x$MESA_LLVM" = x0; then
1858         case "$host_cpu" in
1859         i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1860         esac
1861     fi
1862 }
1863
1864 dnl Gallium drivers
1865 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1866 if test "x$with_gallium_drivers" != x; then
1867     gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1868     for driver in $gallium_drivers; do
1869         case "x$driver" in
1870         xsvga)
1871             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1872             gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1873             ;;
1874         xi915)
1875             PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1876             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1877             if test "x$MESA_LLVM" = x1; then
1878                 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1879             fi
1880             GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1881             gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1882             ;;
1883         xr300)
1884             gallium_require_llvm "Gallium R300"
1885             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1886             gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1887             ;;
1888         xr600)
1889             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1890             gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1891             ;;
1892         xnouveau)
1893             PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1894             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1895             gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1896             ;;
1897         xswrast)
1898             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1899             if test "x$MESA_LLVM" = x1; then
1900                 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1901             fi
1902
1903             if test "x$HAVE_ST_DRI" = xyes; then
1904                 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1905             fi
1906             if test "x$HAVE_ST_VDPAU" = xyes; then
1907                 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1908             fi
1909             if test "x$HAVE_ST_XVMC" = xyes; then
1910                 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1911             fi
1912             if test "x$HAVE_ST_VA" = xyes; then
1913                 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1914             fi
1915             if test "x$HAVE_ST_VDPAU" = xyes ||
1916                test "x$HAVE_ST_XVMC" = xyes ||
1917                test "x$HAVE_ST_VA" = xyes; then
1918                if test "x$HAVE_WINSYS_XLIB" != xyes; then
1919                   GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1920                fi
1921             fi
1922             ;;
1923         *)
1924             AC_MSG_ERROR([Unknown Gallium driver: $driver])
1925             ;;
1926         esac
1927     done
1928 fi
1929
1930 if test "x$NEED_G3DVL_DRI" = xyes; then
1931     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1932 fi
1933
1934 dnl prepend CORE_DIRS to SRC_DIRS
1935 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1936
1937 dnl Restore LDFLAGS and CPPFLAGS
1938 LDFLAGS="$_SAVE_LDFLAGS"
1939 CPPFLAGS="$_SAVE_CPPFLAGS"
1940
1941 dnl Add user CFLAGS and CXXFLAGS
1942 CFLAGS="$CFLAGS $USER_CFLAGS"
1943 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1944
1945 dnl Substitute the config
1946 AC_CONFIG_FILES([configs/autoconf
1947                 src/gbm/Makefile
1948                 src/gbm/main/gbm.pc
1949                 src/mesa/drivers/dri/dri.pc
1950                 src/mesa/drivers/dri/Makefile
1951                 src/mesa/drivers/dri/i915/Makefile
1952                 src/mesa/drivers/dri/i965/Makefile
1953                 src/mesa/drivers/dri/nouveau/Makefile
1954                 src/mesa/drivers/dri/r200/Makefile
1955                 src/mesa/drivers/dri/radeon/Makefile
1956                 src/mesa/drivers/dri/swrast/Makefile
1957                 tests/Makefile
1958                 tests/glx/Makefile])
1959
1960 dnl Replace the configs/current symlink
1961 AC_CONFIG_COMMANDS([configs],[
1962 if test -f configs/current || test -L configs/current; then
1963     rm -f configs/current
1964 fi
1965 ln -s autoconf configs/current
1966 ])
1967
1968 dnl Sort the dirs alphabetically
1969 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1970 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1971 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1972 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1973
1974 AC_OUTPUT
1975
1976 dnl
1977 dnl Output some configuration info for the user
1978 dnl
1979 echo ""
1980 echo "        prefix:          $prefix"
1981 echo "        exec_prefix:     $exec_prefix"
1982 echo "        libdir:          $libdir"
1983 echo "        includedir:      $includedir"
1984
1985 dnl API info
1986 echo ""
1987 echo "        OpenGL:          $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
1988 echo "        OpenVG:          $enable_openvg"
1989
1990 dnl Driver info
1991 echo ""
1992 if test "x$enable_osmesa" != xno; then
1993         echo "        OSMesa:          lib$OSMESA_LIB"
1994 else
1995         echo "        OSMesa:          no"
1996 fi
1997
1998 if test "x$enable_dri" != xno; then
1999         # cleanup the drivers var
2000         dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
2001         if test "x$DRI_DIRS" = x; then
2002             echo "        DRI drivers:     no"
2003         else
2004             echo "        DRI drivers:     $dri_dirs"
2005         fi
2006         echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
2007 fi
2008
2009 case "x$enable_glx$enable_xlib_glx" in
2010 xyesyes)
2011     echo "        GLX:             Xlib-based"
2012     ;;
2013 xyesno)
2014     echo "        GLX:             DRI-based"
2015     ;;
2016 *)
2017     echo "        GLX:             $enable_glx"
2018     ;;
2019 esac
2020
2021 echo ""
2022 echo "        GLU:             $enable_glu"
2023
2024 dnl EGL
2025 echo ""
2026 echo "        EGL:             $enable_egl"
2027 if test "$enable_egl" = yes; then
2028     echo "        EGL platforms:   $EGL_PLATFORMS"
2029
2030     egl_drivers=""
2031     for d in $EGL_DRIVERS_DIRS; do
2032         egl_drivers="$egl_drivers builtin:egl_$d"
2033     done
2034
2035     if test "x$HAVE_ST_EGL" = xyes; then
2036         echo "        EGL drivers:    ${egl_drivers} egl_gallium"
2037         echo "        EGL Gallium STs:$EGL_CLIENT_APIS"
2038     else
2039         echo "        EGL drivers:    $egl_drivers"
2040     fi
2041 fi
2042
2043 echo ""
2044 if test "x$MESA_LLVM" = x1; then
2045     echo "        llvm:            yes"
2046     echo "        llvm-config:     $LLVM_CONFIG"
2047     echo "        llvm-version:    $LLVM_VERSION"
2048 else
2049     echo "        llvm:            no"
2050 fi
2051
2052 echo ""
2053 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2054     echo "        Gallium:         yes"
2055     echo "        Gallium dirs:    $GALLIUM_DIRS"
2056     echo "        Target dirs:     $GALLIUM_TARGET_DIRS"
2057     echo "        Winsys dirs:     $GALLIUM_WINSYS_DIRS"
2058     echo "        Driver dirs:     $GALLIUM_DRIVERS_DIRS"
2059     echo "        Trackers dirs:   $GALLIUM_STATE_TRACKERS_DIRS"
2060 else
2061     echo "        Gallium:         no"
2062 fi
2063
2064
2065 dnl Libraries
2066 echo ""
2067 echo "        Shared libs:     $enable_shared"
2068 echo "        Static libs:     $enable_static"
2069
2070 dnl Compiler options
2071 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2072 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2073     $SED 's/^ *//;s/  */ /;s/ *$//'`
2074 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2075     $SED 's/^ *//;s/  */ /;s/ *$//'`
2076 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/  */ /;s/ *$//'`
2077 echo ""
2078 echo "        CFLAGS:          $cflags"
2079 echo "        CXXFLAGS:        $cxxflags"
2080 echo "        Macros:          $defines"
2081 echo ""
2082 echo "        PYTHON2:         $PYTHON2"
2083
2084 echo ""
2085 echo "        Run '${MAKE-make}' to build Mesa"
2086 echo ""