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