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