OSDN Git Service

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