OSDN Git Service

Cygwin: Teach mklib/minstall to properly install libraries on cygwin
[android-x86/external-mesa.git] / configure.ac
1 dnl Process this file with autoconf to create configure.
2
3 AC_PREREQ([2.59])
4
5 dnl Versioning - scrape the version from configs/default
6 m4_define([mesa_version],
7     [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
8 m4_ifval(mesa_version,,
9     [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
10
11 dnl Tell the user about autoconf.html in the --help output
12 m4_divert_once([HELP_END], [
13 See docs/autoconf.html for more details on the options for Mesa.])
14
15 AC_INIT([Mesa],[mesa_version],
16     [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17 AC_CONFIG_AUX_DIR([bin])
18 AC_CANONICAL_HOST
19
20 dnl 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         # add xcb modules if necessary
630         dri_modules="x11 xext xxf86vm xdamage xfixes"
631         if test "$enable_xcb" = yes; then
632             dri_modules="$dri_modules x11-xcb xcb-glx"
633         fi
634
635         PKG_CHECK_MODULES([DRIGL], [$dri_modules])
636         GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
637         X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
638         GL_LIB_DEPS="$DRIGL_LIBS"
639     else
640         # should check these...
641         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
642         GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
643         GL_PC_LIB_PRIV="$GL_LIB_DEPS"
644         GL_PC_CFLAGS="$X11_INCLUDES"
645
646         # XCB can only be used from pkg-config
647         if test "$enable_xcb" = yes; then
648             PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
649             GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
650             X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
651             GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
652         fi
653     fi
654
655     # need DRM libs, -lpthread, etc.
656     GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
657     GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
658     GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
659     GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
660     GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
661     GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
662     ;;
663 osmesa)
664     # No libGL for osmesa
665     GL_LIB_DEPS=""
666     ;;
667 esac
668 AC_SUBST([GL_LIB_DEPS])
669 AC_SUBST([GL_PC_REQ_PRIV])
670 AC_SUBST([GL_PC_LIB_PRIV])
671 AC_SUBST([GL_PC_CFLAGS])
672 AC_SUBST([DRI_PC_REQ_PRIV])
673 AC_SUBST([GLESv1_CM_LIB_DEPS])
674 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
675 AC_SUBST([GLESv2_LIB_DEPS])
676 AC_SUBST([GLESv2_PC_LIB_PRIV])
677
678
679 dnl
680 dnl More X11 setup
681 dnl
682 if test "$mesa_driver" = xlib; then
683     DEFINES="$DEFINES -DUSE_XSHM"
684 fi
685
686 dnl
687 dnl More DRI setup
688 dnl
689 AC_ARG_ENABLE([glx-tls],
690     [AS_HELP_STRING([--enable-glx-tls],
691         [enable TLS support in GLX @<:@default=disabled@:>@])],
692     [GLX_USE_TLS="$enableval"],
693     [GLX_USE_TLS=no])
694 dnl Directory for DRI drivers
695 AC_ARG_WITH([dri-driverdir],
696     [AS_HELP_STRING([--with-dri-driverdir=DIR],
697         [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
698     [DRI_DRIVER_INSTALL_DIR="$withval"],
699     [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
700 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
701 dnl Extra search path for DRI drivers
702 AC_ARG_WITH([dri-searchpath],
703     [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
704         [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
705     [DRI_DRIVER_SEARCH_DIR="$withval"],
706     [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
707 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
708 dnl Direct rendering or just indirect rendering
709 AC_ARG_ENABLE([driglx-direct],
710     [AS_HELP_STRING([--disable-driglx-direct],
711         [enable direct rendering in GLX and EGL for DRI @<:@default=enabled@:>@])],
712     [driglx_direct="$enableval"],
713     [driglx_direct="yes"])
714 dnl Which drivers to build - default is chosen by platform
715 AC_ARG_WITH([dri-drivers],
716     [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
717         [comma delimited DRI drivers list, e.g.
718         "swrast,i965,radeon" @<:@default=auto@:>@])],
719     [with_dri_drivers="$withval"],
720     [with_dri_drivers=yes])
721 if test "x$with_dri_drivers" = x; then
722     with_dri_drivers=no
723 fi
724
725 dnl Determine which APIs to support
726 AC_ARG_ENABLE([opengl],
727     [AS_HELP_STRING([--disable-opengl],
728         [disable support for standard OpenGL API @<:@default=no@:>@])],
729     [enable_opengl="$enableval"],
730     [enable_opengl=yes])
731 AC_ARG_ENABLE([gles1],
732     [AS_HELP_STRING([--enable-gles1],
733         [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
734     [enable_gles1="$enableval"],
735     [enable_gles1=no])
736 AC_ARG_ENABLE([gles2],
737     [AS_HELP_STRING([--enable-gles2],
738         [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
739     [enable_gles2="$enableval"],
740     [enable_gles2=no])
741 AC_ARG_ENABLE([gles-overlay],
742     [AS_HELP_STRING([--enable-gles-overlay],
743         [build separate OpenGL ES only libraries @<:@default=no@:>@])],
744     [enable_gles_overlay="$enableval"],
745     [enable_gles_overlay=no])
746
747 API_DEFINES=""
748 GLES_OVERLAY=0
749 if test "x$enable_opengl" = xno; then
750     API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
751 else
752     API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
753 fi
754 if test "x$enable_gles1" = xyes; then
755     API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
756 fi
757 if test "x$enable_gles2" = xyes; then
758     API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
759 fi
760 if test "x$enable_gles_overlay" = xyes -o \
761     "x$enable_gles1" = xyes -o "x$enable_gles2" = xyes; then
762     CORE_DIRS="mapi/es1api mapi/es2api $CORE_DIRS"
763     if test "x$enable_gles_overlay" = xyes; then
764         GLES_OVERLAY=1
765     fi
766 fi
767 AC_SUBST([API_DEFINES])
768 AC_SUBST([GLES_OVERLAY])
769
770 dnl If $with_dri_drivers is yes, directories will be added through
771 dnl platform checks
772 DRI_DIRS=""
773 case "$with_dri_drivers" in
774 no) ;;
775 yes)
776     DRI_DIRS="yes"
777     ;;
778 *)
779     # verify the requested driver directories exist
780     dri_drivers=`IFS=', '; echo $with_dri_drivers`
781     for driver in $dri_drivers; do
782         test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
783             AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
784     done
785     DRI_DIRS="$dri_drivers"
786     ;;
787 esac
788
789 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
790 if test "$mesa_driver" = dri; then
791     # Use TLS in GLX?
792     if test "x$GLX_USE_TLS" = xyes; then
793         DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
794     fi
795
796     # Platform specific settings and drivers to build
797     case "$host_os" in
798     linux*)
799         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
800         if test "x$driglx_direct" = xyes; then
801             DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
802         fi
803         DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
804
805         case "$host_cpu" in
806         x86_64)
807             # sis is missing because they have not be converted to use
808             # the new interface.  i810 are missing because there is no
809             # x86-64 system where they could *ever* be used.
810             if test "x$DRI_DIRS" = "xyes"; then
811                 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 r600 radeon \
812                     savage tdfx unichrome swrast"
813             fi
814             ;;
815         powerpc*)
816             # Build only the drivers for cards that exist on PowerPC.
817             # At some point MGA will be added, but not yet.
818             if test "x$DRI_DIRS" = "xyes"; then
819                 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
820             fi
821             ;;
822         sparc*)
823             # Build only the drivers for cards that exist on sparc`
824             if test "x$DRI_DIRS" = "xyes"; then
825                 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
826             fi
827             ;;
828         esac
829         ;;
830     freebsd* | dragonfly*)
831         DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
832         DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
833         DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
834         if test "x$driglx_direct" = xyes; then
835             DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
836         fi
837         if test "x$GXX" = xyes; then
838             CXXFLAGS="$CXXFLAGS -ansi -pedantic"
839         fi
840
841         if test "x$DRI_DIRS" = "xyes"; then
842             DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
843                 unichrome savage sis swrast"
844         fi
845         ;;
846     gnu*)
847         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
848         DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
849         ;;
850     solaris*)
851         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
852         DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
853         if test "x$driglx_direct" = xyes; then
854             DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
855         fi
856         ;;
857     esac
858
859     # default drivers
860     if test "x$DRI_DIRS" = "xyes"; then
861         DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
862             savage sis tdfx unichrome swrast"
863     fi
864
865     DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/  */ /g'`
866
867     # Check for expat
868     EXPAT_INCLUDES=""
869     EXPAT_LIB=-lexpat
870     AC_ARG_WITH([expat],
871         [AS_HELP_STRING([--with-expat=DIR],
872             [expat install directory])],[
873         EXPAT_INCLUDES="-I$withval/include"
874         CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
875         LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
876         EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
877         ])
878     AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
879     AC_CHECK_LIB([expat],[XML_ParserCreate],[],
880         [AC_MSG_ERROR([Expat required for DRI.])])
881
882     # put all the necessary libs together
883     DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS $TALLOC_LIBS"
884 fi
885 AC_SUBST([DRI_DIRS])
886 AC_SUBST([EXPAT_INCLUDES])
887 AC_SUBST([DRI_LIB_DEPS])
888
889 case $DRI_DIRS in
890 *i915*|*i965*)
891     PKG_CHECK_MODULES([INTEL], [libdrm_intel >= 2.4.21])
892     ;;
893 esac
894
895 case $DRI_DIRS in
896 *radeon*|*r200*|*r300*|*r600*)
897     PKG_CHECK_MODULES([LIBDRM_RADEON],
898                       [libdrm_radeon libdrm >= $LIBDRM_RADEON_REQUIRED],
899                       HAVE_LIBDRM_RADEON=yes,
900                       HAVE_LIBDRM_RADEON=no)
901
902     if test "$HAVE_LIBDRM_RADEON" = yes; then
903         RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
904         RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
905     fi
906     ;;
907 esac
908 AC_SUBST([RADEON_CFLAGS])
909 AC_SUBST([RADEON_LDFLAGS])
910
911
912 dnl
913 dnl OSMesa configuration
914 dnl
915 if test "$mesa_driver" = xlib; then
916     default_gl_osmesa=yes
917 else
918     default_gl_osmesa=no
919 fi
920 AC_ARG_ENABLE([gl-osmesa],
921     [AS_HELP_STRING([--enable-gl-osmesa],
922         [enable OSMesa with libGL @<:@default=enabled for xlib driver@:>@])],
923     [gl_osmesa="$enableval"],
924     [gl_osmesa="$default_gl_osmesa"])
925 if test "x$gl_osmesa" = xyes; then
926     if test "$mesa_driver" = osmesa; then
927         AC_MSG_ERROR([libGL is not available for OSMesa driver])
928     else
929         DRIVER_DIRS="$DRIVER_DIRS osmesa"
930     fi
931 fi
932
933 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
934 AC_ARG_WITH([osmesa-bits],
935     [AS_HELP_STRING([--with-osmesa-bits=BITS],
936         [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
937     [osmesa_bits="$withval"],
938     [osmesa_bits=8])
939 if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
940     AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
941     osmesa_bits=8
942 fi
943 case "x$osmesa_bits" in
944 x8)
945     OSMESA_LIB=OSMesa
946     ;;
947 x16|x32)
948     OSMESA_LIB="OSMesa$osmesa_bits"
949     DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
950     ;;
951 *)
952     AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
953     ;;
954 esac
955 AC_SUBST([OSMESA_LIB])
956
957 case "$DRIVER_DIRS" in
958 *osmesa*)
959     # only link libraries with osmesa if shared
960     if test "$enable_static" = no; then
961         OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS $TALLOC_LIBS"
962     else
963         OSMESA_LIB_DEPS=""
964     fi
965     OSMESA_MESA_DEPS=""
966     OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS $TALLOC_LIBS"
967     ;;
968 esac
969 AC_SUBST([OSMESA_LIB_DEPS])
970 AC_SUBST([OSMESA_MESA_DEPS])
971 AC_SUBST([OSMESA_PC_REQ])
972 AC_SUBST([OSMESA_PC_LIB_PRIV])
973
974 dnl
975 dnl EGL configuration
976 dnl
977 AC_ARG_ENABLE([egl],
978     [AS_HELP_STRING([--disable-egl],
979         [disable EGL library @<:@default=enabled@:>@])],
980     [enable_egl="$enableval"],
981     [enable_egl=yes])
982 if test "x$enable_egl" = xyes; then
983     SRC_DIRS="$SRC_DIRS egl"
984     EGL_LIB_DEPS="$DLOPEN_LIBS -lpthread"
985     EGL_DRIVERS_DIRS=""
986     if test "$enable_static" != yes; then
987         # build egl_glx when libGL is built
988         if test "$mesa_driver" != osmesa; then
989             EGL_DRIVERS_DIRS="glx"
990         fi
991
992         if test "$mesa_driver" = dri; then
993             # build egl_dri2 when xcb-dri2 is available
994             PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
995                           [have_xcb_dri2=yes],[have_xcb_dri2=no])
996             PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
997                           [have_libudev=yes],[have_libudev=no])
998             
999             if test "$have_xcb_dri2" = yes; then
1000                 EGL_DRIVER_DRI2=dri2
1001                 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1002                 if test "$have_libudev" = yes; then
1003                     DEFINES="$DEFINES -DHAVE_LIBUDEV"
1004                 fi
1005             fi
1006         fi
1007
1008         EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1009     fi
1010 fi
1011 AC_SUBST([EGL_LIB_DEPS])
1012 AC_SUBST([EGL_DRIVERS_DIRS])
1013
1014 dnl
1015 dnl GLU configuration
1016 dnl
1017 AC_ARG_ENABLE([glu],
1018     [AS_HELP_STRING([--disable-glu],
1019         [enable OpenGL Utility library @<:@default=enabled@:>@])],
1020     [enable_glu="$enableval"],
1021     [enable_glu=yes])
1022 if test "x$enable_glu" = xyes; then
1023     SRC_DIRS="$SRC_DIRS glu"
1024
1025     case "$mesa_driver" in
1026     osmesa)
1027         # Link libGLU to libOSMesa instead of libGL
1028         GLU_LIB_DEPS=""
1029         GLU_PC_REQ="osmesa"
1030         if test "$enable_static" = no; then
1031             GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1032         else
1033             GLU_MESA_DEPS=""
1034         fi
1035         ;;
1036     *)
1037         # If static, empty GLU_LIB_DEPS and add libs for programs to link
1038         GLU_PC_REQ="gl"
1039         GLU_PC_LIB_PRIV="-lm"
1040         if test "$enable_static" = no; then
1041             GLU_LIB_DEPS="-lm"
1042             GLU_MESA_DEPS='-l$(GL_LIB)'
1043         else
1044             GLU_LIB_DEPS=""
1045             GLU_MESA_DEPS=""
1046             APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1047         fi
1048         ;;
1049     esac
1050 fi
1051 if test "$enable_static" = no; then
1052     GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1053 fi
1054 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1055 AC_SUBST([GLU_LIB_DEPS])
1056 AC_SUBST([GLU_MESA_DEPS])
1057 AC_SUBST([GLU_PC_REQ])
1058 AC_SUBST([GLU_PC_REQ_PRIV])
1059 AC_SUBST([GLU_PC_LIB_PRIV])
1060 AC_SUBST([GLU_PC_CFLAGS])
1061
1062 dnl
1063 dnl GLw configuration
1064 dnl
1065 AC_ARG_ENABLE([glw],
1066     [AS_HELP_STRING([--disable-glw],
1067         [enable Xt/Motif widget library @<:@default=enabled@:>@])],
1068     [enable_glw="$enableval"],
1069     [enable_glw=yes])
1070 dnl Don't build GLw on osmesa
1071 if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
1072     AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
1073     enable_glw=no
1074 fi
1075 AC_ARG_ENABLE([motif],
1076     [AS_HELP_STRING([--enable-motif],
1077         [use Motif widgets in GLw @<:@default=disabled@:>@])],
1078     [enable_motif="$enableval"],
1079     [enable_motif=no])
1080
1081 if test "x$enable_glw" = xyes; then
1082     SRC_DIRS="$SRC_DIRS glw"
1083     if test "$x11_pkgconfig" = yes; then
1084         PKG_CHECK_MODULES([GLW],[x11 xt])
1085         GLW_PC_REQ_PRIV="x11 xt"
1086         GLW_LIB_DEPS="$GLW_LIBS"
1087     else
1088         # should check these...
1089         GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
1090         GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1091         GLW_PC_CFLAGS="$X11_INCLUDES"
1092     fi
1093
1094     GLW_SOURCES="GLwDrawA.c"
1095     MOTIF_CFLAGS=
1096     if test "x$enable_motif" = xyes; then
1097         GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1098         AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1099         if test "x$MOTIF_CONFIG" != xno; then
1100             MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1101             MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1102         else
1103             AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1104                 [AC_MSG_ERROR([Can't locate Motif headers])])
1105             AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1106                 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1107         fi
1108         # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1109         GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
1110         GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1111         GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
1112     fi
1113
1114     # If static, empty GLW_LIB_DEPS and add libs for programs to link
1115     GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
1116     if test "$enable_static" = no; then
1117         GLW_MESA_DEPS='-l$(GL_LIB)'
1118         GLW_LIB_DEPS="$GLW_LIB_DEPS"
1119     else
1120         APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1121         GLW_LIB_DEPS=""
1122         GLW_MESA_DEPS=""
1123     fi
1124 fi
1125 AC_SUBST([GLW_LIB_DEPS])
1126 AC_SUBST([GLW_MESA_DEPS])
1127 AC_SUBST([GLW_SOURCES])
1128 AC_SUBST([MOTIF_CFLAGS])
1129 AC_SUBST([GLW_PC_REQ_PRIV])
1130 AC_SUBST([GLW_PC_LIB_PRIV])
1131 AC_SUBST([GLW_PC_CFLAGS])
1132
1133 dnl
1134 dnl GLUT configuration
1135 dnl
1136 if test -f "$srcdir/include/GL/glut.h"; then
1137     default_glut=yes
1138 else
1139     default_glut=no
1140 fi
1141 AC_ARG_ENABLE([glut],
1142     [AS_HELP_STRING([--disable-glut],
1143         [enable GLUT library @<:@default=enabled if source available@:>@])],
1144     [enable_glut="$enableval"],
1145     [enable_glut="$default_glut"])
1146
1147 dnl Can't build glut if GLU not available
1148 if test "x$enable_glu$enable_glut" = xnoyes; then
1149     AC_MSG_WARN([Disabling glut since GLU is disabled])
1150     enable_glut=no
1151 fi
1152 dnl Don't build glut on osmesa
1153 if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1154     AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1155     enable_glut=no
1156 fi
1157
1158 if test "x$enable_glut" = xyes; then
1159     SRC_DIRS="$SRC_DIRS glut/glx"
1160     if test "$x11_pkgconfig" = yes; then
1161         PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1162         GLUT_PC_REQ_PRIV="x11 xmu xi"
1163         GLUT_LIB_DEPS="$GLUT_LIBS"
1164     else
1165         # should check these...
1166         GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1167         GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1168         GLUT_PC_CFLAGS="$X11_INCLUDES"
1169     fi
1170     if test "x$GCC" = xyes; then
1171         GLUT_CFLAGS="$GLUT_CFLAGS -fexceptions"
1172     fi
1173     GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1174     GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
1175
1176     # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1177     if test "$enable_static" = no; then
1178         GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1179     else
1180         APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1181         GLUT_LIB_DEPS=""
1182         GLUT_MESA_DEPS=""
1183     fi
1184 fi
1185 AC_SUBST([GLUT_LIB_DEPS])
1186 AC_SUBST([GLUT_MESA_DEPS])
1187 AC_SUBST([GLUT_CFLAGS])
1188 AC_SUBST([GLUT_PC_REQ_PRIV])
1189 AC_SUBST([GLUT_PC_LIB_PRIV])
1190 AC_SUBST([GLUT_PC_CFLAGS])
1191
1192 dnl
1193 dnl Program library dependencies
1194 dnl    Only libm is added here if necessary as the libraries should
1195 dnl    be pulled in by the linker
1196 dnl
1197 if test "x$APP_LIB_DEPS" = x; then
1198     case "$host_os" in
1199     solaris*)
1200         APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1201         ;;
1202     cygwin*)
1203         APP_LIB_DEPS="-lX11"
1204         ;;
1205     *)
1206         APP_LIB_DEPS="-lm"
1207         ;;
1208     esac
1209 fi
1210 AC_SUBST([APP_LIB_DEPS])
1211 AC_SUBST([PROGRAM_DIRS])
1212
1213 dnl
1214 dnl Gallium configuration
1215 dnl
1216 AC_ARG_ENABLE([gallium],
1217     [AS_HELP_STRING([--disable-gallium],
1218         [build gallium @<:@default=enabled@:>@])],
1219     [enable_gallium="$enableval"],
1220     [enable_gallium=yes])
1221 if test "x$enable_gallium" = xyes; then
1222     SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1223     AC_CHECK_HEADER([udis86.h], [HAS_UDIS86="yes"],
1224                 [HAS_UDIS86="no"])
1225     AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1226 fi
1227
1228 AC_SUBST([LLVM_CFLAGS])
1229 AC_SUBST([LLVM_LIBS])
1230 AC_SUBST([LLVM_LDFLAGS])
1231 AC_SUBST([LLVM_VERSION])
1232
1233 VG_LIB_DEPS=""
1234 EGL_CLIENT_APIS='$(GL_LIB)'
1235 if test "x$enable_gles_overlay" = xyes; then
1236     EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GLESv1_CM_LIB) $(GLESv2_LIB)'
1237 fi
1238
1239 dnl
1240 dnl Gallium state trackers configuration
1241 dnl
1242 AC_ARG_WITH([state-trackers],
1243     [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1244         [comma delimited state_trackers list, e.g.
1245         "egl,glx" @<:@default=auto@:>@])],
1246     [with_state_trackers="$withval"],
1247     [with_state_trackers=yes])
1248
1249 case "$with_state_trackers" in
1250 no)
1251     GALLIUM_STATE_TRACKERS_DIRS=""
1252     ;;
1253 yes)
1254     # look at what else is built
1255     case "$mesa_driver" in
1256     xlib)
1257         GALLIUM_STATE_TRACKERS_DIRS=glx
1258         ;;
1259     dri)
1260         GALLIUM_STATE_TRACKERS_DIRS="dri"
1261         HAVE_ST_DRI="yes"
1262         if test "x$enable_egl" = xyes; then
1263             GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl"
1264             HAVE_ST_EGL="yes"
1265         fi
1266         # Have only tested st/xorg on 1.6.0 servers
1267         PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6.0 libdrm >= $LIBDRM_XORG_REQUIRED libkms >= $LIBKMS_XORG_REQUIRED],
1268             HAVE_ST_XORG="yes"; GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg",
1269             HAVE_ST_XORG="no")
1270         ;;
1271     esac
1272     ;;
1273 *)
1274     # verify the requested state tracker exist
1275     state_trackers=""
1276     _state_trackers=`IFS=', '; echo $with_state_trackers`
1277     for tracker in $_state_trackers; do
1278         case "$tracker" in
1279         dri)
1280             if test "x$mesa_driver" != xdri; then
1281                 AC_MSG_ERROR([cannot build dri state tracker without mesa driver set to dri])
1282             fi
1283             HAVE_ST_DRI="yes"
1284             ;;
1285         egl)
1286             if test "x$enable_egl" != xyes; then
1287                 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1288             fi
1289             HAVE_ST_EGL="yes"
1290             ;;
1291         xorg)
1292             PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1293             PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1294             PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1295             HAVE_ST_XORG="yes"
1296             ;;
1297         es)
1298             AC_MSG_WARN([state tracker 'es' has been replaced by --enable-gles-overlay])
1299
1300             if test "x$enable_gles_overlay" != xyes; then
1301                 if test "x$enable_gles1" != xyes -a "x$enable_gles2" != xyes; then
1302                     CORE_DIRS="mapi/es1api mapi/es2api $CORE_DIRS"
1303                 fi
1304                 GLES_OVERLAY=1
1305                 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GLESv1_CM_LIB) $(GLESv2_LIB)'
1306             fi
1307             tracker=""
1308             ;;
1309         vega)
1310             CORE_DIRS="$CORE_DIRS mapi/vgapi"
1311             VG_LIB_DEPS="$VG_LIB_DEPS -lpthread"
1312             EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1313             ;;
1314         esac
1315
1316         if test -n "$tracker"; then
1317             test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1318                 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1319             if test -n "$state_trackers"; then
1320                 state_trackers="$state_trackers $tracker"
1321             else
1322                 state_trackers="$tracker"
1323             fi
1324         fi
1325     done
1326     GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1327     ;;
1328 esac
1329
1330 AC_SUBST([VG_LIB_DEPS])
1331 AC_SUBST([EGL_CLIENT_APIS])
1332
1333 if test "x$HAVE_ST_EGL" = xyes; then
1334         GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl"
1335         # define GLX_DIRECT_RENDERING even when the driver is not dri
1336         if test "x$mesa_driver" != xdri -a "x$driglx_direct" = xyes; then
1337             DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1338         fi
1339 fi
1340
1341 if test "x$HAVE_ST_XORG" = xyes; then
1342     PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1343         HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1344         HAVE_XEXTPROTO_71="no")
1345 fi
1346
1347 AC_ARG_WITH([egl-platforms],
1348     [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1349         [comma delimited native platforms libEGL supports, e.g.
1350         "x11,kms" @<:@default=auto@:>@])],
1351     [with_egl_platforms="$withval"],
1352     [with_egl_platforms=yes])
1353 AC_ARG_WITH([egl-displays],
1354     [AS_HELP_STRING([--with-egl-displays@<:@=DIRS...@:>@],
1355         [DEPRECATED.  Use --with-egl-platforms instead])],
1356     [with_egl_platforms="$withval"])
1357
1358 EGL_PLATFORMS=""
1359 case "$with_egl_platforms" in
1360 yes)
1361     if test "x$enable_egl" = xyes && test "x$mesa_driver" != xosmesa; then
1362         EGL_PLATFORMS="x11"
1363     fi
1364     ;;
1365 *)
1366     if test "x$enable_egl" != xyes; then
1367         AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1368     fi
1369     # verify the requested driver directories exist
1370     egl_platforms=`IFS=', '; echo $with_egl_platforms`
1371     for plat in $egl_platforms; do
1372         test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1373             AC_MSG_ERROR([EGL platform '$plat' does't exist])
1374         if test "$plat" = "fbdev"; then
1375                 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1376         fi
1377     done
1378     EGL_PLATFORMS="$egl_platforms"
1379     ;;
1380 esac
1381 AC_SUBST([EGL_PLATFORMS])
1382
1383 AC_ARG_WITH([egl-driver-dir],
1384     [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1385                     [directory for EGL drivers [[default=${libdir}/egl]]])],
1386     [EGL_DRIVER_INSTALL_DIR="$withval"],
1387     [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1388 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1389
1390 AC_ARG_WITH([xorg-driver-dir],
1391     [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1392                     [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1393     [XORG_DRIVER_INSTALL_DIR="$withval"],
1394     [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1395 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1396
1397 AC_ARG_WITH([max-width],
1398     [AS_HELP_STRING([--with-max-width=N],
1399                     [Maximum framebuffer width (4096)])],
1400     [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1401      AS_IF([test "${withval}" -gt "4096"],
1402            [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1403 )
1404 AC_ARG_WITH([max-height],
1405     [AS_HELP_STRING([--with-max-height=N],
1406                     [Maximum framebuffer height (4096)])],
1407     [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1408      AS_IF([test "${withval}" -gt "4096"],
1409            [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1410 )
1411
1412 dnl
1413 dnl Gallium LLVM
1414 dnl
1415 AC_ARG_ENABLE([gallium-llvm],
1416     [AS_HELP_STRING([--enable-gallium-llvm],
1417         [build gallium LLVM support @<:@default=disabled@:>@])],
1418     [enable_gallium_llvm="$enableval"],
1419     [enable_gallium_llvm=auto])
1420 if test "x$enable_gallium_llvm" = xyes; then
1421     if test "x$LLVM_CONFIG" != xno; then
1422         LLVM_VERSION=`$LLVM_CONFIG --version`
1423         LLVM_CFLAGS=`$LLVM_CONFIG --cflags`
1424         LLVM_LIBS="`$LLVM_CONFIG --libs jit interpreter nativecodegen bitwriter` -lstdc++"
1425
1426         if test "x$HAS_UDIS86" != xno; then
1427             LLVM_LIBS="$LLVM_LIBS -ludis86"
1428             DEFINES="$DEFINES -DHAVE_UDIS86"
1429         fi
1430         LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1431         GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1432         DEFINES="$DEFINES -DGALLIUM_LLVMPIPE -D__STDC_CONSTANT_MACROS"
1433         MESA_LLVM=1
1434     else
1435         MESA_LLVM=0
1436     fi
1437 else
1438     MESA_LLVM=0
1439 fi
1440
1441 dnl
1442 dnl Gallium helper functions
1443 dnl
1444 gallium_check_st() {
1445     if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes; then
1446          GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1447     fi
1448     if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1449          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1450     fi
1451     if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1452          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1453     fi
1454 }
1455
1456
1457 dnl
1458 dnl Gallium SVGA configuration
1459 dnl
1460 AC_ARG_ENABLE([gallium-svga],
1461     [AS_HELP_STRING([--enable-gallium-svga],
1462         [build gallium SVGA @<:@default=disabled@:>@])],
1463     [enable_gallium_svga="$enableval"],
1464     [enable_gallium_svga=auto])
1465 if test "x$enable_gallium_svga" = xyes; then
1466     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
1467     gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
1468 elif test "x$enable_gallium_svga" = xauto; then
1469     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
1470 fi
1471
1472 dnl
1473 dnl Gallium i915 configuration
1474 dnl
1475 AC_ARG_ENABLE([gallium-i915],
1476     [AS_HELP_STRING([--enable-gallium-i915],
1477         [build gallium i915 @<:@default=disabled@:>@])],
1478     [enable_gallium_i915="$enableval"],
1479     [enable_gallium_i915=auto])
1480 if test "x$enable_gallium_i915" = xyes; then
1481     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1482     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
1483     gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1484 elif test "x$enable_gallium_i915" = xauto; then
1485     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1486     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
1487 fi
1488
1489 dnl
1490 dnl Gallium i965 configuration
1491 dnl
1492 AC_ARG_ENABLE([gallium-i965],
1493     [AS_HELP_STRING([--enable-gallium-i965],
1494         [build gallium i965 @<:@default=disabled@:>@])],
1495     [enable_gallium_i965="$enableval"],
1496     [enable_gallium_i965=auto])
1497 if test "x$enable_gallium_i965" = xyes; then
1498     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
1499     gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1500 elif test "x$enable_gallium_i965" = xauto; then
1501     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
1502 fi
1503
1504 dnl
1505 dnl Gallium Radeon configuration
1506 dnl
1507 AC_ARG_ENABLE([gallium-radeon],
1508     [AS_HELP_STRING([--enable-gallium-radeon],
1509         [build gallium radeon @<:@default=disabled@:>@])],
1510     [enable_gallium_radeon="$enableval"],
1511     [enable_gallium_radeon=auto])
1512 if test "x$enable_gallium_radeon" = xyes; then
1513     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1514     gallium_check_st "radeon/drm" "dri-r300" "xorg-radeon"
1515 elif test "x$enable_gallium_radeon" = xauto; then
1516     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1517 fi
1518
1519 dnl
1520 dnl Gallium Radeon r600g configuration
1521 dnl
1522 AC_ARG_ENABLE([gallium-r600],
1523     [AS_HELP_STRING([--enable-gallium-r600],
1524         [build gallium radeon @<:@default=disabled@:>@])],
1525     [enable_gallium_r600="$enableval"],
1526     [enable_gallium_r600=auto])
1527 if test "x$enable_gallium_r600" = xyes; then
1528     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1529     gallium_check_st "r600/drm" "dri-r600"
1530 fi
1531
1532 dnl
1533 dnl Gallium Nouveau configuration
1534 dnl
1535 AC_ARG_ENABLE([gallium-nouveau],
1536     [AS_HELP_STRING([--enable-gallium-nouveau],
1537         [build gallium nouveau @<:@default=disabled@:>@])],
1538     [enable_gallium_nouveau="$enableval"],
1539     [enable_gallium_nouveau=no])
1540 if test "x$enable_gallium_nouveau" = xyes; then
1541     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50"
1542     gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
1543 fi
1544
1545 dnl
1546 dnl Gallium swrast configuration
1547 dnl
1548 AC_ARG_ENABLE([gallium-swrast],
1549     [AS_HELP_STRING([--enable-gallium-swrast],
1550         [build gallium swrast @<:@default=auto@:>@])],
1551     [enable_gallium_swrast="$enableval"],
1552     [enable_gallium_swrast=auto])
1553 if test "x$enable_gallium_swrast" = xyes || test "x$enable_gallium_swrast" = xauto; then
1554     if test "x$HAVE_ST_DRI" = xyes; then
1555         GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1556     fi
1557 fi
1558
1559 dnl prepend CORE_DIRS to SRC_DIRS
1560 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1561
1562 dnl Restore LDFLAGS and CPPFLAGS
1563 LDFLAGS="$_SAVE_LDFLAGS"
1564 CPPFLAGS="$_SAVE_CPPFLAGS"
1565
1566 dnl Substitute the config
1567 AC_CONFIG_FILES([configs/autoconf])
1568
1569 dnl Replace the configs/current symlink
1570 AC_CONFIG_COMMANDS([configs],[
1571 if test -f configs/current || test -L configs/current; then
1572     rm -f configs/current
1573 fi
1574 ln -s autoconf configs/current
1575 ])
1576
1577 AC_OUTPUT
1578
1579 dnl
1580 dnl Output some configuration info for the user
1581 dnl
1582 echo ""
1583 echo "        prefix:          $prefix"
1584 echo "        exec_prefix:     $exec_prefix"
1585 echo "        libdir:          $libdir"
1586 echo "        includedir:      $includedir"
1587
1588 dnl Driver info
1589 echo ""
1590 echo "        Driver:          $mesa_driver"
1591 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1592     echo "        OSMesa:          lib$OSMESA_LIB"
1593 else
1594     echo "        OSMesa:          no"
1595 fi
1596 if test "$mesa_driver" = dri; then
1597     # cleanup the drivers var
1598     dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
1599 if test "x$DRI_DIRS" = x; then
1600     echo "        DRI drivers:     no"
1601 else
1602     echo "        DRI drivers:     $dri_dirs"
1603 fi
1604     echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
1605 fi
1606 echo "        Use XCB:         $enable_xcb"
1607
1608 echo ""
1609 if test "x$MESA_LLVM" = x1; then
1610     echo "        llvm:            yes"
1611     echo "        llvm-config:     $LLVM_CONFIG"
1612     echo "        llvm-version:    $LLVM_VERSION"
1613 else
1614     echo "        llvm:            no"
1615 fi
1616
1617 echo ""
1618 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1619     echo "        Gallium:         yes"
1620     echo "        Gallium dirs:    $GALLIUM_DIRS"
1621     echo "        Target dirs:     $GALLIUM_TARGET_DIRS"
1622     echo "        Winsys dirs:     $GALLIUM_WINSYS_DIRS"
1623     echo "        Driver dirs:     $GALLIUM_DRIVERS_DIRS"
1624     echo "        Trackers dirs:   $GALLIUM_STATE_TRACKERS_DIRS"
1625     if test "x$HAVE_ST_EGL" = xyes; then
1626         echo "        EGL client APIs: $EGL_CLIENT_APIS"
1627     fi
1628 else
1629     echo "        Gallium:         no"
1630 fi
1631
1632 dnl Libraries
1633 echo ""
1634 echo "        Shared libs:     $enable_shared"
1635 echo "        Static libs:     $enable_static"
1636 if test "$enable_egl" = yes; then
1637     echo "        EGL:             $EGL_DRIVERS_DIRS"
1638     echo "        EGL platforms:   $EGL_PLATFORMS"
1639 else
1640     echo "        EGL:             no"
1641 fi
1642 echo "        GLU:             $enable_glu"
1643 echo "        GLw:             $enable_glw (Motif: $enable_motif)"
1644 echo "        glut:            $enable_glut"
1645
1646 dnl Compiler options
1647 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1648 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1649     $SED 's/^ *//;s/  */ /;s/ *$//'`
1650 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1651     $SED 's/^ *//;s/  */ /;s/ *$//'`
1652 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/  */ /;s/ *$//'`
1653 echo ""
1654 echo "        CFLAGS:          $cflags"
1655 echo "        CXXFLAGS:        $cxxflags"
1656 echo "        Macros:          $defines"
1657
1658 echo ""
1659 echo "        Run '${MAKE-make}' to build Mesa"
1660 echo ""