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