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