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