Don't pass -ffast-math to clang, since it ignores it and complains.
[profile/ivi/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 Versions for external dependencies
21 LIBDRM_REQUIRED=2.4.15
22 LIBDRM_RADEON_REQUIRED=2.4.17
23 DRI2PROTO_REQUIRED=2.1
24 GLPROTO_REQUIRED=1.4.11
25 LIBDRM_XORG_REQUIRED=2.4.17
26 LIBKMS_XORG_REQUIRED=1.0.0
27
28 dnl Check for progs
29 AC_PROG_CPP
30 AC_PROG_CC
31 AC_PROG_CXX
32 AC_CHECK_PROGS([MAKE], [gmake make])
33 AC_PATH_PROG([MKDEP], [makedepend])
34 AC_PATH_PROG([SED], [sed])
35
36 dnl Our fallback install-sh is a symlink to minstall. Use the existing
37 dnl configuration in that case.
38 AC_PROG_INSTALL
39 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
40
41 dnl We need a POSIX shell for parts of the build. Assume we have one
42 dnl in most cases.
43 case "$host_os" in
44 solaris*)
45     # Solaris /bin/sh is too old/non-POSIX compliant
46     AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
47     SHELL="$POSIX_SHELL"
48     ;;
49 esac
50
51 dnl clang is mostly GCC-compatible, but its version is much lower,
52 dnl so we have to check for it.
53 AC_MSG_CHECKING([if compiling with clang])
54
55 AC_COMPILE_IFELSE(
56 [AC_LANG_PROGRAM([], [[
57 #ifndef __clang__
58        not clang
59 #endif
60 ]])],
61 [CLANG=yes], [CLANG=no])
62
63 AC_MSG_RESULT([$CLANG])
64
65 dnl If we're using GCC, make sure that it is at least version 3.3.0.  Older
66 dnl versions are explictly not supported.
67 if test "x$GCC" = xyes -a "x$CLANG" = xno; then
68     AC_MSG_CHECKING([whether gcc version is sufficient])
69     major=0
70     minor=0
71
72     GCC_VERSION=`$CC -dumpversion`
73     if test $? -eq 0; then
74         major=`echo $GCC_VERSION | cut -d. -f1`
75         minor=`echo $GCC_VERSION | cut -d. -f1`
76     fi
77
78     if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
79         AC_MSG_RESULT([no])
80         AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
81     else
82         AC_MSG_RESULT([yes])
83     fi
84 fi
85
86
87 MKDEP_OPTIONS=-fdepend
88 dnl Ask gcc where it's keeping its secret headers
89 if test "x$GCC" = xyes; then
90     for dir in include include-fixed; do
91         GCC_INCLUDES=`$CC -print-file-name=$dir`
92         if test "x$GCC_INCLUDES" != x && \
93            test "$GCC_INCLUDES" != "$dir" && \
94            test -d "$GCC_INCLUDES"; then
95             MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
96         fi
97     done
98 fi
99 AC_SUBST([MKDEP_OPTIONS])
100
101 dnl Make sure the pkg-config macros are defined
102 m4_ifndef([PKG_PROG_PKG_CONFIG],
103     [m4_fatal([Could not locate the pkg-config autoconf macros.
104   These are usually located in /usr/share/aclocal/pkg.m4. If your macros
105   are in a different location, try setting the environment variable
106   ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
107 PKG_PROG_PKG_CONFIG()
108
109 dnl LIB_DIR - library basename
110 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
111 AC_SUBST([LIB_DIR])
112
113 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
114 _SAVE_LDFLAGS="$LDFLAGS"
115 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
116 AC_SUBST([EXTRA_LIB_PATH])
117
118 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
119 _SAVE_CPPFLAGS="$CPPFLAGS"
120 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
121 AC_SUBST([X11_INCLUDES])
122
123 dnl Compiler macros
124 DEFINES=""
125 AC_SUBST([DEFINES])
126 case "$host_os" in
127 linux*|*-gnu*|gnu*)
128     DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
129     ;;
130 solaris*)
131     DEFINES="$DEFINES -DPTHREADS -DSVR4"
132     ;;
133 cygwin*)
134     DEFINES="$DEFINES -DPTHREADS"
135     ;;
136 esac
137
138 dnl Add flags for gcc and g++
139 if test "x$GCC" = xyes; then
140     CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
141     if test "x$CLANG" = "xno"; then
142        CFLAGS="$CFLAGS -ffast-math"
143     fi
144
145     # Enable -fvisibility=hidden if using a gcc that supports it
146     save_CFLAGS="$CFLAGS"
147     AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
148     CFLAGS="$CFLAGS -fvisibility=hidden"
149     AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
150                    [CFLAGS="$save_CFLAGS" ; AC_MSG_RESULT([no])]);
151
152     # Work around aliasing bugs - developers should comment this out
153     CFLAGS="$CFLAGS -fno-strict-aliasing"
154 fi
155 if test "x$GXX" = xyes; then
156     CXXFLAGS="$CXXFLAGS -Wall"
157
158     # Work around aliasing bugs - developers should comment this out
159     CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
160 fi
161
162 dnl These should be unnecessary, but let the user set them if they want
163 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
164     Default is to use CFLAGS.])
165 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
166     compiler. Default is to use CFLAGS.])
167 AC_SUBST([OPT_FLAGS])
168 AC_SUBST([ARCH_FLAGS])
169
170 dnl
171 dnl Hacks to enable 32 or 64 bit build
172 dnl
173 AC_ARG_ENABLE([32-bit],
174     [AS_HELP_STRING([--enable-32-bit],
175         [build 32-bit libraries @<:@default=auto@:>@])],
176     [enable_32bit="$enableval"],
177     [enable_32bit=auto]
178 )
179 if test "x$enable_32bit" = xyes; then
180     if test "x$GCC" = xyes; then
181         CFLAGS="$CFLAGS -m32"
182         ARCH_FLAGS="$ARCH_FLAGS -m32"
183     fi
184     if test "x$GXX" = xyes; then
185         CXXFLAGS="$CXXFLAGS -m32"
186     fi
187 fi
188 AC_ARG_ENABLE([64-bit],
189     [AS_HELP_STRING([--enable-64-bit],
190         [build 64-bit libraries @<:@default=auto@:>@])],
191     [enable_64bit="$enableval"],
192     [enable_64bit=auto]
193 )
194 if test "x$enable_64bit" = xyes; then
195     if test "x$GCC" = xyes; then
196         CFLAGS="$CFLAGS -m64"
197     fi
198     if test "x$GXX" = xyes; then
199         CXXFLAGS="$CXXFLAGS -m64"
200     fi
201 fi
202
203 dnl
204 dnl shared/static libraries, mimic libtool options
205 dnl
206 AC_ARG_ENABLE([static],
207     [AS_HELP_STRING([--enable-static],
208         [build static libraries @<:@default=disabled@:>@])],
209     [enable_static="$enableval"],
210     [enable_static=no]
211 )
212 case "x$enable_static" in
213 xyes|xno ) ;;
214 x ) enable_static=no ;;
215 * )
216     AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
217     ;;
218 esac
219 AC_ARG_ENABLE([shared],
220     [AS_HELP_STRING([--disable-shared],
221         [build shared libraries @<:@default=enabled@:>@])],
222     [enable_shared="$enableval"],
223     [enable_shared=yes]
224 )
225 case "x$enable_shared" in
226 xyes|xno ) ;;
227 x ) enable_shared=yes ;;
228 * )
229     AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
230     ;;
231 esac
232
233 dnl Can't have static and shared libraries, default to static if user
234 dnl explicitly requested. If both disabled, set to static since shared
235 dnl was explicitly requirested.
236 case "x$enable_static$enable_shared" in
237 xyesyes )
238     AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
239     enable_shared=no
240     ;;
241 xnono )
242     AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
243     enable_static=yes
244     ;;
245 esac
246
247 dnl
248 dnl mklib options
249 dnl
250 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
251 if test "$enable_static" = yes; then
252     MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
253 fi
254 AC_SUBST([MKLIB_OPTIONS])
255
256 dnl
257 dnl other compiler options
258 dnl
259 AC_ARG_ENABLE([debug],
260     [AS_HELP_STRING([--enable-debug],
261         [use debug compiler flags and macros @<:@default=disabled@:>@])],
262     [enable_debug="$enableval"],
263     [enable_debug=no]
264 )
265 if test "x$enable_debug" = xyes; then
266     DEFINES="$DEFINES -DDEBUG"
267     if test "x$GCC" = xyes; then
268         CFLAGS="$CFLAGS -g"
269     fi
270     if test "x$GXX" = xyes; then
271         CXXFLAGS="$CXXFLAGS -g"
272     fi
273 fi
274
275 dnl
276 dnl library names
277 dnl
278 if test "$enable_static" = yes; then
279     LIB_EXTENSION='a'
280 else
281     case "$host_os" in
282     darwin* )
283         LIB_EXTENSION='dylib' ;;
284     cygwin* )
285         LIB_EXTENSION='dll.a' ;;
286     aix* )
287         LIB_EXTENSION='a' ;;
288     * )
289         LIB_EXTENSION='so' ;;
290     esac
291 fi
292
293 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
294 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
295 GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
296 GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
297 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
298 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
299 GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
300 GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
301 VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
302
303 GL_LIB_GLOB='lib$(GL_LIB).*'${LIB_EXTENSION}'*'
304 GLU_LIB_GLOB='lib$(GLU_LIB).*'${LIB_EXTENSION}'*'
305 GLUT_LIB_GLOB='lib$(GLUT_LIB).*'${LIB_EXTENSION}'*'
306 GLW_LIB_GLOB='lib$(GLW_LIB).*'${LIB_EXTENSION}'*'
307 OSMESA_LIB_GLOB='lib$(OSMESA_LIB).*'${LIB_EXTENSION}'*'
308 EGL_LIB_GLOB='lib$(EGL_LIB).*'${LIB_EXTENSION}'*'
309 GLESv1_CM_LIB_GLOB='lib$(GLESv1_CM_LIB).*'${LIB_EXTENSION}'*'
310 GLESv2_LIB_GLOB='lib$(GLESv2_LIB).*'${LIB_EXTENSION}'*'
311 VG_LIB_GLOB='lib$(VG_LIB).*'${LIB_EXTENSION}'*'
312
313 AC_SUBST([GL_LIB_NAME])
314 AC_SUBST([GLU_LIB_NAME])
315 AC_SUBST([GLUT_LIB_NAME])
316 AC_SUBST([GLW_LIB_NAME])
317 AC_SUBST([OSMESA_LIB_NAME])
318 AC_SUBST([EGL_LIB_NAME])
319 AC_SUBST([GLESv1_CM_LIB_NAME])
320 AC_SUBST([GLESv2_LIB_NAME])
321 AC_SUBST([VG_LIB_NAME])
322
323 AC_SUBST([GL_LIB_GLOB])
324 AC_SUBST([GLU_LIB_GLOB])
325 AC_SUBST([GLUT_LIB_GLOB])
326 AC_SUBST([GLW_LIB_GLOB])
327 AC_SUBST([OSMESA_LIB_GLOB])
328 AC_SUBST([EGL_LIB_GLOB])
329 AC_SUBST([GLESv1_CM_LIB_GLOB])
330 AC_SUBST([GLESv2_LIB_GLOB])
331 AC_SUBST([VG_LIB_GLOB])
332
333 dnl
334 dnl Arch/platform-specific settings
335 dnl
336 AC_ARG_ENABLE([asm],
337     [AS_HELP_STRING([--disable-asm],
338         [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
339     [enable_asm="$enableval"],
340     [enable_asm=yes]
341 )
342 asm_arch=""
343 ASM_FLAGS=""
344 MESA_ASM_SOURCES=""
345 GLAPI_ASM_SOURCES=""
346 AC_MSG_CHECKING([whether to enable assembly])
347 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
348 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
349 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
350     case "$host_cpu" in
351     i?86 | x86_64)
352         enable_asm=no
353         AC_MSG_RESULT([no, cross compiling])
354         ;;
355     esac
356 fi
357 # check for supported arches
358 if test "x$enable_asm" = xyes; then
359     case "$host_cpu" in
360     i?86)
361         case "$host_os" in
362         linux* | *freebsd* | dragonfly*)
363             test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
364             ;;
365         esac
366         ;;
367     x86_64)
368         case "$host_os" in
369         linux* | *freebsd* | dragonfly*)
370             test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
371             ;;
372         esac
373         ;;
374     powerpc)
375         case "$host_os" in
376         linux*)
377             asm_arch=ppc
378             ;;
379         esac
380         ;;
381     sparc*)
382         case "$host_os" in
383         linux*)
384             asm_arch=sparc
385             ;;
386         esac
387         ;;
388     esac
389
390     case "$asm_arch" in
391     x86)
392         ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
393         MESA_ASM_SOURCES='$(X86_SOURCES)'
394         GLAPI_ASM_SOURCES='$(X86_API)'
395         AC_MSG_RESULT([yes, x86])
396         ;;
397     x86_64)
398         ASM_FLAGS="-DUSE_X86_64_ASM"
399         MESA_ASM_SOURCES='$(X86-64_SOURCES)'
400         GLAPI_ASM_SOURCES='$(X86-64_API)'
401         AC_MSG_RESULT([yes, x86_64])
402         ;;
403     ppc)
404         ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
405         MESA_ASM_SOURCES='$(PPC_SOURCES)'
406         AC_MSG_RESULT([yes, ppc])
407         ;;
408     sparc)
409         ASM_FLAGS="-DUSE_SPARC_ASM"
410         MESA_ASM_SOURCES='$(SPARC_SOURCES)'
411         GLAPI_ASM_SOURCES='$(SPARC_API)'
412         AC_MSG_RESULT([yes, sparc])
413         ;;
414     *)
415         AC_MSG_RESULT([no, platform not supported])
416         ;;
417     esac
418 fi
419 AC_SUBST([ASM_FLAGS])
420 AC_SUBST([MESA_ASM_SOURCES])
421 AC_SUBST([GLAPI_ASM_SOURCES])
422
423 dnl PIC code macro
424 MESA_PIC_FLAGS
425
426 dnl Check to see if dlopen is in default libraries (like Solaris, which
427 dnl has it in libc), or if libdl is needed to get it.
428 AC_CHECK_FUNC([dlopen], [],
429     [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
430 AC_SUBST([DLOPEN_LIBS])
431
432 dnl See if posix_memalign is available
433 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
434
435 dnl SELinux awareness.
436 AC_ARG_ENABLE([selinux],
437     [AS_HELP_STRING([--enable-selinux],
438         [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
439     [MESA_SELINUX="$enableval"],
440     [MESA_SELINUX=no])
441 if test "x$enable_selinux" = "xyes"; then
442     AC_CHECK_HEADER([selinux/selinux.h],[],
443                     [AC_MSG_ERROR([SELinux headers not found])])
444     AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
445                  [AC_MSG_ERROR([SELinux library not found])])
446     SELINUX_LIBS="-lselinux"
447     DEFINES="$DEFINES -DMESA_SELINUX"
448 fi
449
450 dnl
451 dnl Driver configuration. Options are xlib, dri and osmesa right now.
452 dnl More later: fbdev, ...
453 dnl
454 default_driver="xlib"
455
456 case "$host_os" in
457 linux*)
458     case "$host_cpu" in
459     i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
460     esac
461     ;;
462 *freebsd* | dragonfly*)
463     case "$host_cpu" in
464     i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
465     esac
466     ;;
467 esac
468
469 AC_ARG_WITH([driver],
470     [AS_HELP_STRING([--with-driver=DRIVER],
471         [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
472     [mesa_driver="$withval"],
473     [mesa_driver="$default_driver"])
474 dnl Check for valid option
475 case "x$mesa_driver" in
476 xxlib|xdri|xosmesa)
477     ;;
478 *)
479     AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
480     ;;
481 esac
482
483 PKG_CHECK_MODULES([TALLOC], [talloc])
484 AC_SUBST([TALLOC_LIBS])
485 AC_SUBST([TALLOC_CFLAGS])
486
487 dnl
488 dnl Driver specific build directories
489 dnl
490
491 dnl this variable will be prepended to SRC_DIRS and is not exported
492 CORE_DIRS="mapi/glapi glsl mesa"
493
494 SRC_DIRS=""
495 GLU_DIRS="sgi"
496 GALLIUM_DIRS="auxiliary drivers state_trackers"
497 GALLIUM_TARGET_DIRS=""
498 GALLIUM_WINSYS_DIRS="sw"
499 GALLIUM_DRIVERS_DIRS="softpipe failover galahad trace rbug identity"
500 GALLIUM_STATE_TRACKERS_DIRS=""
501
502 case "$mesa_driver" in
503 xlib)
504     DRIVER_DIRS="x11"
505     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
506     GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
507     ;;
508 dri)
509     SRC_DIRS="$SRC_DIRS glx"
510     DRIVER_DIRS="dri"
511     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib sw/dri"
512     ;;
513 osmesa)
514     DRIVER_DIRS="osmesa"
515     ;;
516 esac
517 AC_SUBST([SRC_DIRS])
518 AC_SUBST([GLU_DIRS])
519 AC_SUBST([DRIVER_DIRS])
520 AC_SUBST([GALLIUM_DIRS])
521 AC_SUBST([GALLIUM_TARGET_DIRS])
522 AC_SUBST([GALLIUM_WINSYS_DIRS])
523 AC_SUBST([GALLIUM_DRIVERS_DIRS])
524 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
525 AC_SUBST([MESA_LLVM])
526
527 dnl
528 dnl Find out if X is available. The variable have_x is set if libX11 is
529 dnl found to mimic AC_PATH_XTRA.
530 dnl
531 if test -n "$PKG_CONFIG"; then
532     AC_MSG_CHECKING([pkg-config files for X11 are available])
533     PKG_CHECK_EXISTS([x11],[
534         x11_pkgconfig=yes
535         have_x=yes
536         ],[
537         x11_pkgconfig=no
538     ])
539     AC_MSG_RESULT([$x11_pkgconfig])
540 else
541     x11_pkgconfig=no
542 fi
543 dnl Use the autoconf macro if no pkg-config files
544 if test "$x11_pkgconfig" = yes; then
545     PKG_CHECK_MODULES([X11], [x11])
546 else
547     AC_PATH_XTRA
548     test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
549     test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
550     AC_SUBST([X11_CFLAGS])
551     AC_SUBST([X11_LIBS])
552 fi
553
554 dnl Try to tell the user that the --x-* options are only used when
555 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
556 m4_divert_once([HELP_BEGIN],
557 [These options are only used when the X libraries cannot be found by the
558 pkg-config utility.])
559
560 dnl We need X for xlib and dri, so bomb now if it's not found
561 case "$mesa_driver" in
562 xlib|dri)
563     if test "$no_x" = yes; then
564         AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
565     fi
566     ;;
567 esac
568
569 dnl XCB - this is only used for GLX right now
570 AC_ARG_ENABLE([xcb],
571     [AS_HELP_STRING([--enable-xcb],
572         [use XCB for GLX @<:@default=disabled@:>@])],
573     [enable_xcb="$enableval"],
574     [enable_xcb=no])
575 if test "x$enable_xcb" = xyes; then
576     DEFINES="$DEFINES -DUSE_XCB"
577 else
578     enable_xcb=no
579 fi
580
581 dnl
582 dnl libGL configuration per driver
583 dnl
584 case "$mesa_driver" in
585 xlib)
586     if test "$x11_pkgconfig" = yes; then
587         PKG_CHECK_MODULES([XLIBGL], [x11 xext])
588         GL_PC_REQ_PRIV="x11 xext"
589         X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
590         GL_LIB_DEPS="$XLIBGL_LIBS"
591     else
592         # should check these...
593         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
594         GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
595         GL_PC_LIB_PRIV="$GL_LIB_DEPS"
596         GL_PC_CFLAGS="$X11_INCLUDES"
597     fi
598     GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $TALLOC_LIBS"
599     GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread $TALLOC_LIBS"
600
601     # if static, move the external libraries to the programs
602     # and empty the libraries for libGL
603     if test "$enable_static" = yes; then
604         APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
605         GL_LIB_DEPS=""
606     fi
607     ;;
608 dri)
609     # DRI must be shared, I think
610     if test "$enable_static" = yes; then
611         AC_MSG_ERROR([Can't use static libraries for DRI drivers])
612     fi
613
614     # Check for libdrm
615     PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
616     PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
617     PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
618     GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED glproto >= $GLPROTO_REQUIRED"
619     DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
620
621     # find the DRI deps for libGL
622     if test "$x11_pkgconfig" = yes; then
623         # add xcb modules if necessary
624         dri_modules="x11 xext xxf86vm xdamage xfixes"
625         if test "$enable_xcb" = yes; then
626             dri_modules="$dri_modules x11-xcb xcb-glx"
627         fi
628
629         PKG_CHECK_MODULES([DRIGL], [$dri_modules])
630         GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
631         X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
632         GL_LIB_DEPS="$DRIGL_LIBS"
633     else
634         # should check these...
635         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
636         GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
637         GL_PC_LIB_PRIV="$GL_LIB_DEPS"
638         GL_PC_CFLAGS="$X11_INCLUDES"
639
640         # XCB can only be used from pkg-config
641         if test "$enable_xcb" = yes; then
642             PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
643             GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
644             X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
645             GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
646         fi
647     fi
648
649     # need DRM libs, -lpthread, etc.
650     GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
651     GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
652     GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
653     GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
654     GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
655     GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
656     ;;
657 osmesa)
658     # No libGL for osmesa
659     GL_LIB_DEPS=""
660     ;;
661 esac
662 AC_SUBST([GL_LIB_DEPS])
663 AC_SUBST([GL_PC_REQ_PRIV])
664 AC_SUBST([GL_PC_LIB_PRIV])
665 AC_SUBST([GL_PC_CFLAGS])
666 AC_SUBST([DRI_PC_REQ_PRIV])
667 AC_SUBST([GLESv1_CM_LIB_DEPS])
668 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
669 AC_SUBST([GLESv2_LIB_DEPS])
670 AC_SUBST([GLESv2_PC_LIB_PRIV])
671
672
673 dnl
674 dnl More X11 setup
675 dnl
676 if test "$mesa_driver" = xlib; then
677     DEFINES="$DEFINES -DUSE_XSHM"
678 fi
679
680 dnl
681 dnl More DRI setup
682 dnl
683 AC_ARG_ENABLE([glx-tls],
684     [AS_HELP_STRING([--enable-glx-tls],
685         [enable TLS support in GLX @<:@default=disabled@:>@])],
686     [GLX_USE_TLS="$enableval"],
687     [GLX_USE_TLS=no])
688 dnl Directory for DRI drivers
689 AC_ARG_WITH([dri-driverdir],
690     [AS_HELP_STRING([--with-dri-driverdir=DIR],
691         [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
692     [DRI_DRIVER_INSTALL_DIR="$withval"],
693     [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
694 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
695 dnl Extra search path for DRI drivers
696 AC_ARG_WITH([dri-searchpath],
697     [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
698         [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
699     [DRI_DRIVER_SEARCH_DIR="$withval"],
700     [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
701 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
702 dnl Direct rendering or just indirect rendering
703 AC_ARG_ENABLE([driglx-direct],
704     [AS_HELP_STRING([--disable-driglx-direct],
705         [enable direct rendering in GLX and EGL for DRI @<:@default=enabled@:>@])],
706     [driglx_direct="$enableval"],
707     [driglx_direct="yes"])
708 dnl Which drivers to build - default is chosen by platform
709 AC_ARG_WITH([dri-drivers],
710     [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
711         [comma delimited DRI drivers list, e.g.
712         "swrast,i965,radeon" @<:@default=auto@:>@])],
713     [with_dri_drivers="$withval"],
714     [with_dri_drivers=yes])
715 if test "x$with_dri_drivers" = x; then
716     with_dri_drivers=no
717 fi
718
719 dnl Determine which APIs to support
720 AC_ARG_ENABLE([opengl],
721     [AS_HELP_STRING([--disable-opengl],
722         [disable support for standard OpenGL API @<:@default=no@:>@])],
723     [enable_opengl="$enableval"],
724     [enable_opengl=yes])
725 AC_ARG_ENABLE([gles1],
726     [AS_HELP_STRING([--enable-gles1],
727         [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
728     [enable_gles1="$enableval"],
729     [enable_gles1=no])
730 AC_ARG_ENABLE([gles2],
731     [AS_HELP_STRING([--enable-gles2],
732         [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
733     [enable_gles2="$enableval"],
734     [enable_gles2=no])
735 AC_ARG_ENABLE([gles-overlay],
736     [AS_HELP_STRING([--enable-gles-overlay],
737         [build separate OpenGL ES only libraries @<:@default=no@:>@])],
738     [enable_gles_overlay="$enableval"],
739     [enable_gles_overlay=no])
740
741 API_DEFINES=""
742 GLES_OVERLAY=0
743 if test "x$enable_opengl" = xno; then
744     API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
745 else
746     API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
747 fi
748 if test "x$enable_gles1" = xyes; then
749     API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
750 fi
751 if test "x$enable_gles2" = xyes; then
752     API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
753 fi
754 if test "x$enable_gles_overlay" = xyes -o \
755     "x$enable_gles1" = xyes -o "x$enable_gles2" = xyes; then
756     CORE_DIRS="mapi/es1api mapi/es2api $CORE_DIRS"
757     if test "x$enable_gles_overlay" = xyes; then
758         GLES_OVERLAY=1
759     fi
760 fi
761 AC_SUBST([API_DEFINES])
762 AC_SUBST([GLES_OVERLAY])
763
764 dnl If $with_dri_drivers is yes, directories will be added through
765 dnl platform checks
766 DRI_DIRS=""
767 case "$with_dri_drivers" in
768 no) ;;
769 yes)
770     DRI_DIRS="yes"
771     ;;
772 *)
773     # verify the requested driver directories exist
774     dri_drivers=`IFS=', '; echo $with_dri_drivers`
775     for driver in $dri_drivers; do
776         test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
777             AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
778     done
779     DRI_DIRS="$dri_drivers"
780     ;;
781 esac
782
783 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
784 if test "$mesa_driver" = dri; then
785     # Use TLS in GLX?
786     if test "x$GLX_USE_TLS" = xyes; then
787         DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
788     fi
789
790     # Platform specific settings and drivers to build
791     case "$host_os" in
792     linux*)
793         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
794         if test "x$driglx_direct" = xyes; then
795             DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
796         fi
797         DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
798
799         case "$host_cpu" in
800         x86_64)
801             # sis is missing because they have not be converted to use
802             # the new interface.  i810 are missing because there is no
803             # x86-64 system where they could *ever* be used.
804             if test "x$DRI_DIRS" = "xyes"; then
805                 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 r600 radeon \
806                     savage tdfx unichrome swrast"
807             fi
808             ;;
809         powerpc*)
810             # Build only the drivers for cards that exist on PowerPC.
811             # At some point MGA will be added, but not yet.
812             if test "x$DRI_DIRS" = "xyes"; then
813                 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
814             fi
815             ;;
816         sparc*)
817             # Build only the drivers for cards that exist on sparc`
818             if test "x$DRI_DIRS" = "xyes"; then
819                 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
820             fi
821             ;;
822         esac
823         ;;
824     freebsd* | dragonfly*)
825         DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
826         DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
827         DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
828         if test "x$driglx_direct" = xyes; then
829             DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
830         fi
831         if test "x$GXX" = xyes; then
832             CXXFLAGS="$CXXFLAGS -ansi -pedantic"
833         fi
834
835         if test "x$DRI_DIRS" = "xyes"; then
836             DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
837                 unichrome savage sis swrast"
838         fi
839         ;;
840     gnu*)
841         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
842         DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
843         ;;
844     solaris*)
845         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
846         DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
847         if test "x$driglx_direct" = xyes; then
848             DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
849         fi
850         ;;
851     esac
852
853     # default drivers
854     if test "x$DRI_DIRS" = "xyes"; then
855         DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
856             savage sis tdfx unichrome swrast"
857     fi
858
859     DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/  */ /g'`
860
861     # Check for expat
862     EXPAT_INCLUDES=""
863     EXPAT_LIB=-lexpat
864     AC_ARG_WITH([expat],
865         [AS_HELP_STRING([--with-expat=DIR],
866             [expat install directory])],[
867         EXPAT_INCLUDES="-I$withval/include"
868         CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
869         LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
870         EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
871         ])
872     AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
873     AC_CHECK_LIB([expat],[XML_ParserCreate],[],
874         [AC_MSG_ERROR([Expat required for DRI.])])
875
876     # put all the necessary libs together
877     DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS $TALLOC_LIBS"
878 fi
879 AC_SUBST([DRI_DIRS])
880 AC_SUBST([EXPAT_INCLUDES])
881 AC_SUBST([DRI_LIB_DEPS])
882
883 case $DRI_DIRS in
884 *i915*|*i965*)
885     PKG_CHECK_MODULES([INTEL], [libdrm_intel >= 2.4.21])
886     ;;
887 esac
888
889 case $DRI_DIRS in
890 *radeon*|*r200*|*r300*|*r600*)
891     PKG_CHECK_MODULES([LIBDRM_RADEON],
892                       [libdrm_radeon libdrm >= $LIBDRM_RADEON_REQUIRED],
893                       HAVE_LIBDRM_RADEON=yes,
894                       HAVE_LIBDRM_RADEON=no)
895
896     if test "$HAVE_LIBDRM_RADEON" = yes; then
897         RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
898         RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
899     fi
900     ;;
901 esac
902 AC_SUBST([RADEON_CFLAGS])
903 AC_SUBST([RADEON_LDFLAGS])
904
905
906 dnl
907 dnl OSMesa configuration
908 dnl
909 if test "$mesa_driver" = xlib; then
910     default_gl_osmesa=yes
911 else
912     default_gl_osmesa=no
913 fi
914 AC_ARG_ENABLE([gl-osmesa],
915     [AS_HELP_STRING([--enable-gl-osmesa],
916         [enable OSMesa with libGL @<:@default=enabled for xlib driver@:>@])],
917     [gl_osmesa="$enableval"],
918     [gl_osmesa="$default_gl_osmesa"])
919 if test "x$gl_osmesa" = xyes; then
920     if test "$mesa_driver" = osmesa; then
921         AC_MSG_ERROR([libGL is not available for OSMesa driver])
922     else
923         DRIVER_DIRS="$DRIVER_DIRS osmesa"
924     fi
925 fi
926
927 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
928 AC_ARG_WITH([osmesa-bits],
929     [AS_HELP_STRING([--with-osmesa-bits=BITS],
930         [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
931     [osmesa_bits="$withval"],
932     [osmesa_bits=8])
933 if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
934     AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
935     osmesa_bits=8
936 fi
937 case "x$osmesa_bits" in
938 x8)
939     OSMESA_LIB=OSMesa
940     ;;
941 x16|x32)
942     OSMESA_LIB="OSMesa$osmesa_bits"
943     DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
944     ;;
945 *)
946     AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
947     ;;
948 esac
949 AC_SUBST([OSMESA_LIB])
950
951 case "$DRIVER_DIRS" in
952 *osmesa*)
953     # only link libraries with osmesa if shared
954     if test "$enable_static" = no; then
955         OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS $TALLOC_LIBS"
956     else
957         OSMESA_LIB_DEPS=""
958     fi
959     OSMESA_MESA_DEPS=""
960     OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS $TALLOC_LIBS"
961     ;;
962 esac
963 AC_SUBST([OSMESA_LIB_DEPS])
964 AC_SUBST([OSMESA_MESA_DEPS])
965 AC_SUBST([OSMESA_PC_REQ])
966 AC_SUBST([OSMESA_PC_LIB_PRIV])
967
968 dnl
969 dnl EGL configuration
970 dnl
971 AC_ARG_ENABLE([egl],
972     [AS_HELP_STRING([--disable-egl],
973         [disable EGL library @<:@default=enabled@:>@])],
974     [enable_egl="$enableval"],
975     [enable_egl=yes])
976 if test "x$enable_egl" = xyes; then
977     SRC_DIRS="$SRC_DIRS egl"
978     EGL_LIB_DEPS="$DLOPEN_LIBS -lpthread"
979     EGL_DRIVERS_DIRS=""
980     if test "$enable_static" != yes; then
981         # build egl_glx when libGL is built
982         if test "$mesa_driver" != osmesa; then
983             EGL_DRIVERS_DIRS="glx"
984         fi
985
986         if test "$mesa_driver" = dri; then
987             # build egl_dri2 when xcb-dri2 is available
988             PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
989                           [have_xcb_dri2=yes],[have_xcb_dri2=no])
990             PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
991                           [have_libudev=yes],[have_libudev=no])
992             
993             if test "$have_xcb_dri2" = yes; then
994                 EGL_DRIVER_DRI2=dri2
995                 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
996                 if test "$have_libudev" = yes; then
997                     DEFINES="$DEFINES -DHAVE_LIBUDEV"
998                 fi
999             fi
1000         fi
1001
1002         EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1003     fi
1004 fi
1005 AC_SUBST([EGL_LIB_DEPS])
1006 AC_SUBST([EGL_DRIVERS_DIRS])
1007
1008 dnl
1009 dnl GLU configuration
1010 dnl
1011 AC_ARG_ENABLE([glu],
1012     [AS_HELP_STRING([--disable-glu],
1013         [enable OpenGL Utility library @<:@default=enabled@:>@])],
1014     [enable_glu="$enableval"],
1015     [enable_glu=yes])
1016 if test "x$enable_glu" = xyes; then
1017     SRC_DIRS="$SRC_DIRS glu"
1018
1019     case "$mesa_driver" in
1020     osmesa)
1021         # Link libGLU to libOSMesa instead of libGL
1022         GLU_LIB_DEPS=""
1023         GLU_PC_REQ="osmesa"
1024         if test "$enable_static" = no; then
1025             GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1026         else
1027             GLU_MESA_DEPS=""
1028         fi
1029         ;;
1030     *)
1031         # If static, empty GLU_LIB_DEPS and add libs for programs to link
1032         GLU_PC_REQ="gl"
1033         GLU_PC_LIB_PRIV="-lm"
1034         if test "$enable_static" = no; then
1035             GLU_LIB_DEPS="-lm"
1036             GLU_MESA_DEPS='-l$(GL_LIB)'
1037         else
1038             GLU_LIB_DEPS=""
1039             GLU_MESA_DEPS=""
1040             APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1041         fi
1042         ;;
1043     esac
1044 fi
1045 if test "$enable_static" = no; then
1046     GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1047 fi
1048 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1049 AC_SUBST([GLU_LIB_DEPS])
1050 AC_SUBST([GLU_MESA_DEPS])
1051 AC_SUBST([GLU_PC_REQ])
1052 AC_SUBST([GLU_PC_REQ_PRIV])
1053 AC_SUBST([GLU_PC_LIB_PRIV])
1054 AC_SUBST([GLU_PC_CFLAGS])
1055
1056 dnl
1057 dnl GLw configuration
1058 dnl
1059 AC_ARG_ENABLE([glw],
1060     [AS_HELP_STRING([--disable-glw],
1061         [enable Xt/Motif widget library @<:@default=enabled@:>@])],
1062     [enable_glw="$enableval"],
1063     [enable_glw=yes])
1064 dnl Don't build GLw on osmesa
1065 if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
1066     AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
1067     enable_glw=no
1068 fi
1069 AC_ARG_ENABLE([motif],
1070     [AS_HELP_STRING([--enable-motif],
1071         [use Motif widgets in GLw @<:@default=disabled@:>@])],
1072     [enable_motif="$enableval"],
1073     [enable_motif=no])
1074
1075 if test "x$enable_glw" = xyes; then
1076     SRC_DIRS="$SRC_DIRS glw"
1077     if test "$x11_pkgconfig" = yes; then
1078         PKG_CHECK_MODULES([GLW],[x11 xt])
1079         GLW_PC_REQ_PRIV="x11 xt"
1080         GLW_LIB_DEPS="$GLW_LIBS"
1081     else
1082         # should check these...
1083         GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
1084         GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1085         GLW_PC_CFLAGS="$X11_INCLUDES"
1086     fi
1087
1088     GLW_SOURCES="GLwDrawA.c"
1089     MOTIF_CFLAGS=
1090     if test "x$enable_motif" = xyes; then
1091         GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1092         AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1093         if test "x$MOTIF_CONFIG" != xno; then
1094             MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1095             MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1096         else
1097             AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1098                 [AC_MSG_ERROR([Can't locate Motif headers])])
1099             AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1100                 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1101         fi
1102         # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1103         GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
1104         GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1105         GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
1106     fi
1107
1108     # If static, empty GLW_LIB_DEPS and add libs for programs to link
1109     GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
1110     if test "$enable_static" = no; then
1111         GLW_MESA_DEPS='-l$(GL_LIB)'
1112         GLW_LIB_DEPS="$GLW_LIB_DEPS"
1113     else
1114         APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1115         GLW_LIB_DEPS=""
1116         GLW_MESA_DEPS=""
1117     fi
1118 fi
1119 AC_SUBST([GLW_LIB_DEPS])
1120 AC_SUBST([GLW_MESA_DEPS])
1121 AC_SUBST([GLW_SOURCES])
1122 AC_SUBST([MOTIF_CFLAGS])
1123 AC_SUBST([GLW_PC_REQ_PRIV])
1124 AC_SUBST([GLW_PC_LIB_PRIV])
1125 AC_SUBST([GLW_PC_CFLAGS])
1126
1127 dnl
1128 dnl GLUT configuration
1129 dnl
1130 if test -f "$srcdir/include/GL/glut.h"; then
1131     default_glut=yes
1132 else
1133     default_glut=no
1134 fi
1135 AC_ARG_ENABLE([glut],
1136     [AS_HELP_STRING([--disable-glut],
1137         [enable GLUT library @<:@default=enabled if source available@:>@])],
1138     [enable_glut="$enableval"],
1139     [enable_glut="$default_glut"])
1140
1141 dnl Can't build glut if GLU not available
1142 if test "x$enable_glu$enable_glut" = xnoyes; then
1143     AC_MSG_WARN([Disabling glut since GLU is disabled])
1144     enable_glut=no
1145 fi
1146 dnl Don't build glut on osmesa
1147 if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1148     AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1149     enable_glut=no
1150 fi
1151
1152 if test "x$enable_glut" = xyes; then
1153     SRC_DIRS="$SRC_DIRS glut/glx"
1154     if test "$x11_pkgconfig" = yes; then
1155         PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1156         GLUT_PC_REQ_PRIV="x11 xmu xi"
1157         GLUT_LIB_DEPS="$GLUT_LIBS"
1158     else
1159         # should check these...
1160         GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1161         GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1162         GLUT_PC_CFLAGS="$X11_INCLUDES"
1163     fi
1164     if test "x$GCC" = xyes; then
1165         GLUT_CFLAGS="$GLUT_CFLAGS -fexceptions"
1166     fi
1167     GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1168     GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
1169
1170     # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1171     if test "$enable_static" = no; then
1172         GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1173     else
1174         APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1175         GLUT_LIB_DEPS=""
1176         GLUT_MESA_DEPS=""
1177     fi
1178 fi
1179 AC_SUBST([GLUT_LIB_DEPS])
1180 AC_SUBST([GLUT_MESA_DEPS])
1181 AC_SUBST([GLUT_CFLAGS])
1182 AC_SUBST([GLUT_PC_REQ_PRIV])
1183 AC_SUBST([GLUT_PC_LIB_PRIV])
1184 AC_SUBST([GLUT_PC_CFLAGS])
1185
1186 dnl
1187 dnl Program library dependencies
1188 dnl    Only libm is added here if necessary as the libraries should
1189 dnl    be pulled in by the linker
1190 dnl
1191 if test "x$APP_LIB_DEPS" = x; then
1192     case "$host_os" in
1193     solaris*)
1194         APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1195         ;;
1196     cygwin*)
1197         APP_LIB_DEPS="-lX11"
1198         ;;
1199     *)
1200         APP_LIB_DEPS="-lm"
1201         ;;
1202     esac
1203 fi
1204 AC_SUBST([APP_LIB_DEPS])
1205 AC_SUBST([PROGRAM_DIRS])
1206
1207 dnl
1208 dnl Gallium configuration
1209 dnl
1210 AC_ARG_ENABLE([gallium],
1211     [AS_HELP_STRING([--disable-gallium],
1212         [build gallium @<:@default=enabled@:>@])],
1213     [enable_gallium="$enableval"],
1214     [enable_gallium=yes])
1215 if test "x$enable_gallium" = xyes; then
1216     SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1217     AC_CHECK_HEADER([udis86.h], [HAS_UDIS86="yes"],
1218                 [HAS_UDIS86="no"])
1219     AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1220 fi
1221
1222 AC_SUBST([LLVM_CFLAGS])
1223 AC_SUBST([LLVM_LIBS])
1224 AC_SUBST([LLVM_LDFLAGS])
1225 AC_SUBST([LLVM_VERSION])
1226
1227 VG_LIB_DEPS=""
1228 EGL_CLIENT_APIS='$(GL_LIB)'
1229 if test "x$enable_gles_overlay" = xyes; then
1230     EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GLESv1_CM_LIB) $(GLESv2_LIB)'
1231 fi
1232
1233 dnl
1234 dnl Gallium state trackers configuration
1235 dnl
1236 AC_ARG_WITH([state-trackers],
1237     [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1238         [comma delimited state_trackers list, e.g.
1239         "egl,glx" @<:@default=auto@:>@])],
1240     [with_state_trackers="$withval"],
1241     [with_state_trackers=yes])
1242
1243 case "$with_state_trackers" in
1244 no)
1245     GALLIUM_STATE_TRACKERS_DIRS=""
1246     ;;
1247 yes)
1248     # look at what else is built
1249     case "$mesa_driver" in
1250     xlib)
1251         GALLIUM_STATE_TRACKERS_DIRS=glx
1252         ;;
1253     dri)
1254         GALLIUM_STATE_TRACKERS_DIRS="dri"
1255         HAVE_ST_DRI="yes"
1256         if test "x$enable_egl" = xyes; then
1257             GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl"
1258             HAVE_ST_EGL="yes"
1259         fi
1260         # Have only tested st/xorg on 1.6.0 servers
1261         PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6.0 libdrm >= $LIBDRM_XORG_REQUIRED libkms >= $LIBKMS_XORG_REQUIRED],
1262             HAVE_ST_XORG="yes"; GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg",
1263             HAVE_ST_XORG="no")
1264         ;;
1265     esac
1266     ;;
1267 *)
1268     # verify the requested state tracker exist
1269     state_trackers=""
1270     _state_trackers=`IFS=', '; echo $with_state_trackers`
1271     for tracker in $_state_trackers; do
1272         case "$tracker" in
1273         dri)
1274             if test "x$mesa_driver" != xdri; then
1275                 AC_MSG_ERROR([cannot build dri state tracker without mesa driver set to dri])
1276             fi
1277             HAVE_ST_DRI="yes"
1278             ;;
1279         egl)
1280             if test "x$enable_egl" != xyes; then
1281                 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1282             fi
1283             HAVE_ST_EGL="yes"
1284             ;;
1285         xorg)
1286             PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1287             PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1288             PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1289             HAVE_ST_XORG="yes"
1290             ;;
1291         es)
1292             AC_MSG_WARN([state tracker 'es' has been replaced by --enable-gles-overlay])
1293
1294             if test "x$enable_gles_overlay" != xyes; then
1295                 if test "x$enable_gles1" != xyes -a "x$enable_gles2" != xyes; then
1296                     CORE_DIRS="mapi/es1api mapi/es2api $CORE_DIRS"
1297                 fi
1298                 GLES_OVERLAY=1
1299                 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GLESv1_CM_LIB) $(GLESv2_LIB)'
1300             fi
1301             tracker=""
1302             ;;
1303         vega)
1304             CORE_DIRS="$CORE_DIRS mapi/vgapi"
1305             VG_LIB_DEPS="$VG_LIB_DEPS -lpthread"
1306             EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1307             ;;
1308         esac
1309
1310         if test -n "$tracker"; then
1311             test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1312                 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1313             if test -n "$state_trackers"; then
1314                 state_trackers="$state_trackers $tracker"
1315             else
1316                 state_trackers="$tracker"
1317             fi
1318         fi
1319     done
1320     GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1321     ;;
1322 esac
1323
1324 AC_SUBST([VG_LIB_DEPS])
1325 AC_SUBST([EGL_CLIENT_APIS])
1326
1327 if test "x$HAVE_ST_EGL" = xyes; then
1328         GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl"
1329         # define GLX_DIRECT_RENDERING even when the driver is not dri
1330         if test "x$mesa_driver" != xdri -a "x$driglx_direct" = xyes; then
1331             DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1332         fi
1333 fi
1334
1335 if test "x$HAVE_ST_XORG" = xyes; then
1336     PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1337         HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1338         HAVE_XEXTPROTO_71="no")
1339 fi
1340
1341 AC_ARG_WITH([egl-platforms],
1342     [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1343         [comma delimited native platforms libEGL supports, e.g.
1344         "x11,kms" @<:@default=auto@:>@])],
1345     [with_egl_platforms="$withval"],
1346     [with_egl_platforms=yes])
1347 AC_ARG_WITH([egl-displays],
1348     [AS_HELP_STRING([--with-egl-displays@<:@=DIRS...@:>@],
1349         [DEPRECATED.  Use --with-egl-platforms instead])],
1350     [with_egl_platforms="$withval"])
1351
1352 EGL_PLATFORMS=""
1353 case "$with_egl_platforms" in
1354 yes)
1355     if test "x$enable_egl" = xyes && test "x$mesa_driver" != xosmesa; then
1356         EGL_PLATFORMS="x11"
1357     fi
1358     ;;
1359 *)
1360     if test "x$enable_egl" != xyes; then
1361         AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1362     fi
1363     # verify the requested driver directories exist
1364     egl_platforms=`IFS=', '; echo $with_egl_platforms`
1365     for plat in $egl_platforms; do
1366         test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1367             AC_MSG_ERROR([EGL platform '$plat' does't exist])
1368         if test "$plat" = "fbdev"; then
1369                 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1370         fi
1371     done
1372     EGL_PLATFORMS="$egl_platforms"
1373     ;;
1374 esac
1375 AC_SUBST([EGL_PLATFORMS])
1376
1377 AC_ARG_WITH([egl-driver-dir],
1378     [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1379                     [directory for EGL drivers [[default=${libdir}/egl]]])],
1380     [EGL_DRIVER_INSTALL_DIR="$withval"],
1381     [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1382 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1383
1384 AC_ARG_WITH([xorg-driver-dir],
1385     [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1386                     [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1387     [XORG_DRIVER_INSTALL_DIR="$withval"],
1388     [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1389 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1390
1391 AC_ARG_WITH([max-width],
1392     [AS_HELP_STRING([--with-max-width=N],
1393                     [Maximum framebuffer width (4096)])],
1394     [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1395      AS_IF([test "${withval}" -gt "4096"],
1396            [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1397 )
1398 AC_ARG_WITH([max-height],
1399     [AS_HELP_STRING([--with-max-height=N],
1400                     [Maximum framebuffer height (4096)])],
1401     [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1402      AS_IF([test "${withval}" -gt "4096"],
1403            [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1404 )
1405
1406 dnl
1407 dnl Gallium LLVM
1408 dnl
1409 AC_ARG_ENABLE([gallium-llvm],
1410     [AS_HELP_STRING([--enable-gallium-llvm],
1411         [build gallium LLVM support @<:@default=disabled@:>@])],
1412     [enable_gallium_llvm="$enableval"],
1413     [enable_gallium_llvm=auto])
1414 if test "x$enable_gallium_llvm" = xyes; then
1415     if test "x$LLVM_CONFIG" != xno; then
1416         LLVM_VERSION=`$LLVM_CONFIG --version`
1417         LLVM_CFLAGS=`$LLVM_CONFIG --cflags`
1418         LLVM_LIBS="`$LLVM_CONFIG --libs jit interpreter nativecodegen bitwriter` -lstdc++"
1419
1420         if test "x$HAS_UDIS86" != xno; then
1421             LLVM_LIBS="$LLVM_LIBS -ludis86"
1422             DEFINES="$DEFINES -DHAVE_UDIS86"
1423         fi
1424         LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1425         GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1426         DEFINES="$DEFINES -DGALLIUM_LLVMPIPE -D__STDC_CONSTANT_MACROS"
1427         MESA_LLVM=1
1428     else
1429         MESA_LLVM=0
1430     fi
1431 else
1432     MESA_LLVM=0
1433 fi
1434
1435 dnl
1436 dnl Gallium helper functions
1437 dnl
1438 gallium_check_st() {
1439     if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes; then
1440          GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1441     fi
1442     if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1443          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1444     fi
1445     if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1446          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1447     fi
1448 }
1449
1450
1451 dnl
1452 dnl Gallium SVGA configuration
1453 dnl
1454 AC_ARG_ENABLE([gallium-svga],
1455     [AS_HELP_STRING([--enable-gallium-svga],
1456         [build gallium SVGA @<:@default=disabled@:>@])],
1457     [enable_gallium_svga="$enableval"],
1458     [enable_gallium_svga=auto])
1459 if test "x$enable_gallium_svga" = xyes; then
1460     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
1461     gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
1462 elif test "x$enable_gallium_svga" = xauto; then
1463     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
1464 fi
1465
1466 dnl
1467 dnl Gallium i915 configuration
1468 dnl
1469 AC_ARG_ENABLE([gallium-i915],
1470     [AS_HELP_STRING([--enable-gallium-i915],
1471         [build gallium i915 @<:@default=disabled@:>@])],
1472     [enable_gallium_i915="$enableval"],
1473     [enable_gallium_i915=auto])
1474 if test "x$enable_gallium_i915" = xyes; then
1475     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1476     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
1477     gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1478 elif test "x$enable_gallium_i915" = xauto; then
1479     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1480     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
1481 fi
1482
1483 dnl
1484 dnl Gallium i965 configuration
1485 dnl
1486 AC_ARG_ENABLE([gallium-i965],
1487     [AS_HELP_STRING([--enable-gallium-i965],
1488         [build gallium i965 @<:@default=disabled@:>@])],
1489     [enable_gallium_i965="$enableval"],
1490     [enable_gallium_i965=auto])
1491 if test "x$enable_gallium_i965" = xyes; then
1492     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
1493     gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1494 elif test "x$enable_gallium_i965" = xauto; then
1495     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
1496 fi
1497
1498 dnl
1499 dnl Gallium Radeon configuration
1500 dnl
1501 AC_ARG_ENABLE([gallium-radeon],
1502     [AS_HELP_STRING([--enable-gallium-radeon],
1503         [build gallium radeon @<:@default=disabled@:>@])],
1504     [enable_gallium_radeon="$enableval"],
1505     [enable_gallium_radeon=auto])
1506 if test "x$enable_gallium_radeon" = xyes; then
1507     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1508     gallium_check_st "radeon/drm" "dri-r300" "xorg-radeon"
1509 elif test "x$enable_gallium_radeon" = xauto; then
1510     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1511 fi
1512
1513 dnl
1514 dnl Gallium Radeon r600g configuration
1515 dnl
1516 AC_ARG_ENABLE([gallium-r600],
1517     [AS_HELP_STRING([--enable-gallium-r600],
1518         [build gallium radeon @<:@default=disabled@:>@])],
1519     [enable_gallium_r600="$enableval"],
1520     [enable_gallium_r600=auto])
1521 if test "x$enable_gallium_r600" = xyes; then
1522     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1523     gallium_check_st "r600/drm" "dri-r600"
1524 fi
1525
1526 dnl
1527 dnl Gallium Nouveau configuration
1528 dnl
1529 AC_ARG_ENABLE([gallium-nouveau],
1530     [AS_HELP_STRING([--enable-gallium-nouveau],
1531         [build gallium nouveau @<:@default=disabled@:>@])],
1532     [enable_gallium_nouveau="$enableval"],
1533     [enable_gallium_nouveau=no])
1534 if test "x$enable_gallium_nouveau" = xyes; then
1535     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50"
1536     gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
1537 fi
1538
1539 dnl
1540 dnl Gallium swrast configuration
1541 dnl
1542 AC_ARG_ENABLE([gallium-swrast],
1543     [AS_HELP_STRING([--enable-gallium-swrast],
1544         [build gallium swrast @<:@default=auto@:>@])],
1545     [enable_gallium_swrast="$enableval"],
1546     [enable_gallium_swrast=auto])
1547 if test "x$enable_gallium_swrast" = xyes || test "x$enable_gallium_swrast" = xauto; then
1548     if test "x$HAVE_ST_DRI" = xyes; then
1549         GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1550     fi
1551 fi
1552
1553 dnl prepend CORE_DIRS to SRC_DIRS
1554 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1555
1556 dnl Restore LDFLAGS and CPPFLAGS
1557 LDFLAGS="$_SAVE_LDFLAGS"
1558 CPPFLAGS="$_SAVE_CPPFLAGS"
1559
1560 dnl Substitute the config
1561 AC_CONFIG_FILES([configs/autoconf])
1562
1563 dnl Replace the configs/current symlink
1564 AC_CONFIG_COMMANDS([configs],[
1565 if test -f configs/current || test -L configs/current; then
1566     rm -f configs/current
1567 fi
1568 ln -s autoconf configs/current
1569 ])
1570
1571 AC_OUTPUT
1572
1573 dnl
1574 dnl Output some configuration info for the user
1575 dnl
1576 echo ""
1577 echo "        prefix:          $prefix"
1578 echo "        exec_prefix:     $exec_prefix"
1579 echo "        libdir:          $libdir"
1580 echo "        includedir:      $includedir"
1581
1582 dnl Driver info
1583 echo ""
1584 echo "        Driver:          $mesa_driver"
1585 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1586     echo "        OSMesa:          lib$OSMESA_LIB"
1587 else
1588     echo "        OSMesa:          no"
1589 fi
1590 if test "$mesa_driver" = dri; then
1591     # cleanup the drivers var
1592     dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
1593 if test "x$DRI_DIRS" = x; then
1594     echo "        DRI drivers:     no"
1595 else
1596     echo "        DRI drivers:     $dri_dirs"
1597 fi
1598     echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
1599 fi
1600 echo "        Use XCB:         $enable_xcb"
1601
1602 echo ""
1603 if test "x$MESA_LLVM" = x1; then
1604     echo "        llvm:            yes"
1605     echo "        llvm-config:     $LLVM_CONFIG"
1606     echo "        llvm-version:    $LLVM_VERSION"
1607 else
1608     echo "        llvm:            no"
1609 fi
1610
1611 echo ""
1612 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1613     echo "        Gallium:         yes"
1614     echo "        Gallium dirs:    $GALLIUM_DIRS"
1615     echo "        Target dirs:     $GALLIUM_TARGET_DIRS"
1616     echo "        Winsys dirs:     $GALLIUM_WINSYS_DIRS"
1617     echo "        Driver dirs:     $GALLIUM_DRIVERS_DIRS"
1618     echo "        Trackers dirs:   $GALLIUM_STATE_TRACKERS_DIRS"
1619     if test "x$HAVE_ST_EGL" = xyes; then
1620         echo "        EGL client APIs: $EGL_CLIENT_APIS"
1621     fi
1622 else
1623     echo "        Gallium:         no"
1624 fi
1625
1626 dnl Libraries
1627 echo ""
1628 echo "        Shared libs:     $enable_shared"
1629 echo "        Static libs:     $enable_static"
1630 if test "$enable_egl" = yes; then
1631     echo "        EGL:             $EGL_DRIVERS_DIRS"
1632     echo "        EGL platforms:   $EGL_PLATFORMS"
1633 else
1634     echo "        EGL:             no"
1635 fi
1636 echo "        GLU:             $enable_glu"
1637 echo "        GLw:             $enable_glw (Motif: $enable_motif)"
1638 echo "        glut:            $enable_glut"
1639
1640 dnl Compiler options
1641 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1642 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1643     $SED 's/^ *//;s/  */ /;s/ *$//'`
1644 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1645     $SED 's/^ *//;s/  */ /;s/ *$//'`
1646 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/  */ /;s/ *$//'`
1647 echo ""
1648 echo "        CFLAGS:          $cflags"
1649 echo "        CXXFLAGS:        $cxxflags"
1650 echo "        Macros:          $defines"
1651
1652 echo ""
1653 echo "        Run '${MAKE-make}' to build Mesa"
1654 echo ""