OSDN Git Service

GNU/Hurd fixes
[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'])])
8 m4_ifval(mesa_version,[],[
9     m4_errprint([Error: Failed to get the Mesa version from the output of
10        running `make -f bin/version.mk version'
11 ])
12     m4_exit([1])
13 ])
14
15 dnl Tell the user about autoconf.html in the --help output
16 m4_divert_once([HELP_END], [
17 See docs/autoconf.html for more details on the options for Mesa.])
18
19 AC_INIT([Mesa],[mesa_version],
20     [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
21 AC_CONFIG_AUX_DIR([bin])
22 AC_CANONICAL_HOST
23
24 dnl Versions for external dependencies
25 LIBDRM_REQUIRED=2.4.3
26 DRI2PROTO_REQUIRED=1.99.3
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 We need a POSIX shell for parts of the build. Assume we have one
37 dnl in most cases.
38 case "$host_os" in
39 solaris*)
40     # Solaris /bin/sh is too old/non-POSIX compliant
41     AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
42     SHELL="$POSIX_SHELL"
43     ;;
44 esac
45
46 MKDEP_OPTIONS=-fdepend
47 dnl Ask gcc where it's keeping its secret headers
48 if test "x$GCC" = xyes; then
49     for dir in include include-fixed; do
50         GCC_INCLUDES=`$CC -print-file-name=$dir`
51         if test "x$GCC_INCLUDES" != x && \
52            test "$GCC_INCLUDES" != "$dir" && \
53            test -d "$GCC_INCLUDES"; then
54             MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
55         fi
56     done
57 fi
58 AC_SUBST([MKDEP_OPTIONS])
59
60 dnl Make sure the pkg-config macros are defined
61 m4_ifdef([PKG_PROG_PKG_CONFIG],[],[
62     m4_errprint([Error: Could not locate the pkg-config autoconf macros.
63        These are usually located in /usr/share/aclocal/pkg.m4. If your
64        macros are in a different location, try setting the environment
65        variable ACLOCAL="aclocal -I/other/macro/dir" before running
66        autoreconf.
67 ])
68     m4_exit([1])
69 ])
70 PKG_PROG_PKG_CONFIG()
71
72 dnl LIB_DIR - library basename
73 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
74 AC_SUBST([LIB_DIR])
75
76 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
77 _SAVE_LDFLAGS="$LDFLAGS"
78 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
79 AC_SUBST([EXTRA_LIB_PATH])
80
81 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
82 _SAVE_CPPFLAGS="$CPPFLAGS"
83 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
84 AC_SUBST([X11_INCLUDES])
85
86 dnl Compiler macros
87 DEFINES=""
88 AC_SUBST([DEFINES])
89 case "$host_os" in
90 linux*|*-gnu*|gnu*)
91     DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
92     ;;
93 solaris*)
94     DEFINES="$DEFINES -DPTHREADS -DSVR4"
95     ;;
96 esac
97
98 dnl Add flags for gcc and g++
99 if test "x$GCC" = xyes; then
100     CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99 -ffast-math"
101
102     # Work around aliasing bugs - developers should comment this out
103     CFLAGS="$CFLAGS -fno-strict-aliasing"
104 fi
105 if test "x$GXX" = xyes; then
106     CXXFLAGS="$CXXFLAGS -Wall"
107
108     # Work around aliasing bugs - developers should comment this out
109     CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
110 fi
111
112 dnl These should be unnecessary, but let the user set them if they want
113 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
114     Default is to use CFLAGS.])
115 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
116     compiler. Default is to use CFLAGS.])
117 AC_SUBST([OPT_FLAGS])
118 AC_SUBST([ARCH_FLAGS])
119
120 dnl
121 dnl Hacks to enable 32 or 64 bit build
122 dnl
123 AC_ARG_ENABLE([32-bit],
124     [AS_HELP_STRING([--enable-32-bit],
125         [build 32-bit libraries @<:@default=auto@:>@])],
126     [enable_32bit="$enableval"],
127     [enable_32bit=auto]
128 )
129 if test "x$enable_32bit" = xyes; then
130     if test "x$GCC" = xyes; then
131         CFLAGS="$CFLAGS -m32"
132     fi
133     if test "x$GXX" = xyes; then
134         CXXFLAGS="$CXXFLAGS -m32"
135     fi
136 fi
137 AC_ARG_ENABLE([64-bit],
138     [AS_HELP_STRING([--enable-64-bit],
139         [build 64-bit libraries @<:@default=auto@:>@])],
140     [enable_64bit="$enableval"],
141     [enable_64bit=auto]
142 )
143 if test "x$enable_64bit" = xyes; then
144     if test "x$GCC" = xyes; then
145         CFLAGS="$CFLAGS -m64"
146     fi
147     if test "x$GXX" = xyes; then
148         CXXFLAGS="$CXXFLAGS -m64"
149     fi
150 fi
151
152 dnl
153 dnl shared/static libraries, mimic libtool options
154 dnl
155 AC_ARG_ENABLE([static],
156     [AS_HELP_STRING([--enable-static],
157         [build static libraries @<:@default=disabled@:>@])],
158     [enable_static="$enableval"],
159     [enable_static=no]
160 )
161 case "x$enable_static" in
162 xyes|xno ) ;;
163 x ) enable_static=no ;;
164 * )
165     AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
166     ;;
167 esac
168 AC_ARG_ENABLE([shared],
169     [AS_HELP_STRING([--disable-shared],
170         [build shared libraries @<:@default=enabled@:>@])],
171     [enable_shared="$enableval"],
172     [enable_shared=yes]
173 )
174 case "x$enable_shared" in
175 xyes|xno ) ;;
176 x ) enable_shared=yes ;;
177 * )
178     AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
179     ;;
180 esac
181
182 dnl Can't have static and shared libraries, default to static if user
183 dnl explicitly requested. If both disabled, set to static since shared
184 dnl was explicitly requirested.
185 case "x$enable_static$enable_shared" in
186 xyesyes )
187     AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
188     enable_shared=no
189     ;;
190 xnono )
191     AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
192     enable_static=yes
193     ;;
194 esac
195
196 dnl
197 dnl mklib options
198 dnl
199 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
200 if test "$enable_static" = yes; then
201     MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
202 fi
203 AC_SUBST([MKLIB_OPTIONS])
204
205 dnl
206 dnl other compiler options
207 dnl
208 AC_ARG_ENABLE([debug],
209     [AS_HELP_STRING([--enable-debug],
210         [use debug compiler flags and macros @<:@default=disabled@:>@])],
211     [enable_debug="$enableval"],
212     [enable_debug=no]
213 )
214 if test "x$enable_debug" = xyes; then
215     DEFINES="$DEFINES -DDEBUG"
216     if test "x$GCC" = xyes; then
217         CFLAGS="$CFLAGS -g"
218     fi
219     if test "x$GXX" = xyes; then
220         CXXFLAGS="$CXXFLAGS -g"
221     fi
222 fi
223
224 dnl
225 dnl library names
226 dnl
227 if test "$enable_static" = yes; then
228     LIB_EXTENSION='a'
229 else
230     case "$host_os" in
231     darwin* )
232         LIB_EXTENSION='dylib' ;;
233     * )
234         LIB_EXTENSION='so' ;;
235     esac
236 fi
237
238 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
239 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
240 GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
241 GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
242 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
243
244 GL_LIB_GLOB='lib$(GL_LIB).*'${LIB_EXTENSION}'*'
245 GLU_LIB_GLOB='lib$(GLU_LIB).*'${LIB_EXTENSION}'*'
246 GLUT_LIB_GLOB='lib$(GLUT_LIB).*'${LIB_EXTENSION}'*'
247 GLW_LIB_GLOB='lib$(GLW_LIB).*'${LIB_EXTENSION}'*'
248 OSMESA_LIB_GLOB='lib$(OSMESA_LIB).*'${LIB_EXTENSION}'*'
249
250 AC_SUBST([GL_LIB_NAME])
251 AC_SUBST([GLU_LIB_NAME])
252 AC_SUBST([GLUT_LIB_NAME])
253 AC_SUBST([GLW_LIB_NAME])
254 AC_SUBST([OSMESA_LIB_NAME])
255
256 AC_SUBST([GL_LIB_GLOB])
257 AC_SUBST([GLU_LIB_GLOB])
258 AC_SUBST([GLUT_LIB_GLOB])
259 AC_SUBST([GLW_LIB_GLOB])
260 AC_SUBST([OSMESA_LIB_GLOB])
261
262 dnl
263 dnl Arch/platform-specific settings
264 dnl
265 AC_ARG_ENABLE([asm],
266     [AS_HELP_STRING([--disable-asm],
267         [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
268     [enable_asm="$enableval"],
269     [enable_asm=yes]
270 )
271 asm_arch=""
272 ASM_FLAGS=""
273 MESA_ASM_SOURCES=""
274 GLAPI_ASM_SOURCES=""
275 AC_MSG_CHECKING([whether to enable assembly])
276 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
277 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
278 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
279     case "$host_cpu" in
280     i?86 | x86_64)
281         enable_asm=no
282         AC_MSG_RESULT([no, cross compiling])
283         ;;
284     esac
285 fi
286 # check for supported arches
287 if test "x$enable_asm" = xyes; then
288     case "$host_cpu" in
289     i?86)
290         case "$host_os" in
291         linux* | *freebsd* | dragonfly*)
292             test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
293             ;;
294         esac
295         ;;
296     x86_64)
297         case "$host_os" in
298         linux* | *freebsd* | dragonfly*)
299             test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
300             ;;
301         esac
302         ;;
303     powerpc)
304         case "$host_os" in
305         linux*)
306             asm_arch=ppc
307             ;;
308         esac
309         ;;
310     sparc*)
311         case "$host_os" in
312         linux*)
313             asm_arch=sparc
314             ;;
315         esac
316         ;;
317     esac
318
319     case "$asm_arch" in
320     x86)
321         ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
322         MESA_ASM_SOURCES='$(X86_SOURCES)'
323         GLAPI_ASM_SOURCES='$(X86_API)'
324         AC_MSG_RESULT([yes, x86])
325         ;;
326     x86_64)
327         ASM_FLAGS="-DUSE_X86_64_ASM"
328         MESA_ASM_SOURCES='$(X86-64_SOURCES)'
329         GLAPI_ASM_SOURCES='$(X86-64_API)'
330         AC_MSG_RESULT([yes, x86_64])
331         ;;
332     ppc)
333         ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
334         MESA_ASM_SOURCES='$(PPC_SOURCES)'
335         AC_MSG_RESULT([yes, ppc])
336         ;;
337     sparc)
338         ASM_FLAGS="-DUSE_SPARC_ASM"
339         MESA_ASM_SOURCES='$(SPARC_SOURCES)'
340         GLAPI_ASM_SOURCES='$(SPARC_API)'
341         AC_MSG_RESULT([yes, sparc])
342         ;;
343     *)
344         AC_MSG_RESULT([no, platform not supported])
345         ;;
346     esac
347 fi
348 AC_SUBST([ASM_FLAGS])
349 AC_SUBST([MESA_ASM_SOURCES])
350 AC_SUBST([GLAPI_ASM_SOURCES])
351
352 dnl PIC code macro
353 MESA_PIC_FLAGS
354
355 dnl Check to see if dlopen is in default libraries (like Solaris, which
356 dnl has it in libc), or if libdl is needed to get it.
357 AC_CHECK_FUNC([dlopen], [],
358     [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
359
360 dnl See if posix_memalign is available
361 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
362
363 dnl SELinux awareness.
364 AC_ARG_ENABLE([selinux],
365     [AS_HELP_STRING([--enable-selinux],
366         [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
367     [MESA_SELINUX="$enableval"],
368     [MESA_SELINUX=no])
369 if test "x$enable_selinux" = "xyes"; then
370     AC_CHECK_HEADER([selinux/selinux.h],[],
371                     [AC_MSG_ERROR([SELinux headers not found])])
372     AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
373                  [AC_MSG_ERROR([SELinux library not found])])
374     SELINUX_LIBS="-lselinux"
375     DEFINES="$DEFINES -DMESA_SELINUX"
376 fi
377
378 dnl
379 dnl Driver configuration. Options are xlib, dri and osmesa right now.
380 dnl More later: directfb, fbdev, ...
381 dnl
382 default_driver="xlib"
383
384 case "$host_os" in
385 linux*)
386     case "$host_cpu" in
387     i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
388     esac
389     ;;
390 *freebsd* | dragonfly*)
391     case "$host_cpu" in
392     i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
393     esac
394     ;;
395 esac
396
397 AC_ARG_WITH([driver],
398     [AS_HELP_STRING([--with-driver=DRIVER],
399         [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
400     [mesa_driver="$withval"],
401     [mesa_driver="$default_driver"])
402 dnl Check for valid option
403 case "x$mesa_driver" in
404 xxlib|xdri|xosmesa)
405     ;;
406 *)
407     AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
408     ;;
409 esac
410
411 dnl
412 dnl Driver specific build directories
413 dnl
414 SRC_DIRS="mesa egl glew"
415 GLU_DIRS="sgi"
416 WINDOW_SYSTEM=""
417 GALLIUM_DIRS="auxiliary drivers state_trackers"
418 GALLIUM_WINSYS_DIRS=""
419 GALLIUM_WINSYS_DRM_DIRS=""
420 GALLIUM_AUXILIARY_DIRS="draw translate cso_cache pipebuffer tgsi sct rtasm util indices"
421 GALLIUM_DRIVERS_DIRS="softpipe failover trace"
422 GALLIUM_STATE_TRACKERS_DIRS=""
423
424 case "$mesa_driver" in
425 xlib)
426     DRIVER_DIRS="x11"
427     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS xlib"
428     ;;
429 dri)
430     SRC_DIRS="glx/x11 $SRC_DIRS"
431     DRIVER_DIRS="dri"
432     WINDOW_SYSTEM="dri"
433     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS drm"
434     ;;
435 osmesa)
436     DRIVER_DIRS="osmesa"
437     ;;
438 esac
439 AC_SUBST([SRC_DIRS])
440 AC_SUBST([GLU_DIRS])
441 AC_SUBST([DRIVER_DIRS])
442 AC_SUBST([WINDOW_SYSTEM])
443 AC_SUBST([GALLIUM_DIRS])
444 AC_SUBST([GALLIUM_WINSYS_DIRS])
445 AC_SUBST([GALLIUM_WINSYS_DRM_DIRS])
446 AC_SUBST([GALLIUM_DRIVERS_DIRS])
447 AC_SUBST([GALLIUM_AUXILIARY_DIRS])
448 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
449
450 dnl
451 dnl User supplied program configuration
452 dnl
453 if test -d "$srcdir/progs/demos"; then
454     default_demos=yes
455 else
456     default_demos=no
457 fi
458 AC_ARG_WITH([demos],
459     [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
460         [optional comma delimited demo directories to build
461         @<:@default=auto if source available@:>@])],
462     [with_demos="$withval"],
463     [with_demos="$default_demos"])
464 if test "x$with_demos" = x; then
465     with_demos=no
466 fi
467
468 dnl If $with_demos is yes, directories will be added as libs available
469 PROGRAM_DIRS=""
470 case "$with_demos" in
471 no) ;;
472 yes)
473     # If the driver isn't osmesa, we have libGL and can build xdemos
474     if test "$mesa_driver" != osmesa; then
475         PROGRAM_DIRS="xdemos"
476     fi
477     ;;
478 *)
479     # verify the requested demos directories exist
480     demos=`IFS=,; echo $with_demos`
481     for demo in $demos; do
482         test -d "$srcdir/progs/$demo" || \
483             AC_MSG_ERROR([Program directory '$demo' doesn't exist])
484     done
485     PROGRAM_DIRS="$demos"
486     ;;
487 esac
488
489 dnl
490 dnl Find out if X is available. The variable have_x is set if libX11 is
491 dnl found to mimic AC_PATH_XTRA.
492 dnl
493 if test -n "$PKG_CONFIG"; then
494     AC_MSG_CHECKING([pkg-config files for X11 are available])
495     PKG_CHECK_EXISTS([x11],[
496         x11_pkgconfig=yes
497         have_x=yes
498         ],[
499         x11_pkgconfig=no
500     ])
501     AC_MSG_RESULT([$x11_pkgconfig])
502 else
503     x11_pkgconfig=no
504 fi
505 dnl Use the autoconf macro if no pkg-config files
506 if test "$x11_pkgconfig" = no; then
507     AC_PATH_XTRA
508 fi
509
510 dnl Try to tell the user that the --x-* options are only used when
511 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
512 m4_divert_once([HELP_BEGIN],
513 [These options are only used when the X libraries cannot be found by the
514 pkg-config utility.])
515
516 dnl We need X for xlib and dri, so bomb now if it's not found
517 case "$mesa_driver" in
518 xlib|dri)
519     if test "$no_x" = yes; then
520         AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
521     fi
522     ;;
523 esac
524
525 dnl XCB - this is only used for GLX right now
526 AC_ARG_ENABLE([xcb],
527     [AS_HELP_STRING([--enable-xcb],
528         [use XCB for GLX @<:@default=disabled@:>@])],
529     [enable_xcb="$enableval"],
530     [enable_xcb=no])
531 if test "x$enable_xcb" = xyes; then
532     DEFINES="$DEFINES -DUSE_XCB"
533 else
534     enable_xcb=no
535 fi
536
537 dnl
538 dnl libGL configuration per driver
539 dnl
540 case "$mesa_driver" in
541 xlib)
542     if test "$x11_pkgconfig" = yes; then
543         PKG_CHECK_MODULES([XLIBGL], [x11 xext])
544         GL_PC_REQ_PRIV="x11 xext"
545         X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
546         GL_LIB_DEPS="$XLIBGL_LIBS"
547     else
548         # should check these...
549         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
550         GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
551         GL_PC_LIB_PRIV="$GL_LIB_DEPS"
552         GL_PC_CFLAGS="$X11_INCLUDES"
553     fi
554     GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
555     GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
556
557     # if static, move the external libraries to the programs
558     # and empty the libraries for libGL
559     if test "$enable_static" = yes; then
560         APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
561         GL_LIB_DEPS=""
562     fi
563     ;;
564 dri)
565     # DRI must be shared, I think
566     if test "$enable_static" = yes; then
567         AC_MSG_ERROR([Can't use static libraries for DRI drivers])
568     fi
569
570     # Check for libdrm
571     PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
572     PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
573     GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
574     DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
575
576     # find the DRI deps for libGL
577     if test "$x11_pkgconfig" = yes; then
578         # add xcb modules if necessary
579         dri_modules="x11 xext xxf86vm xdamage xfixes"
580         if test "$enable_xcb" = yes; then
581             dri_modules="$dri_modules x11-xcb xcb-glx"
582         fi
583
584         PKG_CHECK_MODULES([DRIGL], [$dri_modules])
585         GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
586         X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
587         GL_LIB_DEPS="$DRIGL_LIBS"
588     else
589         # should check these...
590         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
591         GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
592         GL_PC_LIB_PRIV="$GL_LIB_DEPS"
593         GL_PC_CFLAGS="$X11_INCLUDES"
594
595         # XCB can only be used from pkg-config
596         if test "$enable_xcb" = yes; then
597             PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
598             GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
599             X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
600             GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
601         fi
602     fi
603
604     # need DRM libs, -lpthread, etc.
605     GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
606     GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
607     ;;
608 osmesa)
609     # No libGL for osmesa
610     GL_LIB_DEPS=""
611     ;;
612 esac
613 AC_SUBST([GL_LIB_DEPS])
614 AC_SUBST([GL_PC_REQ_PRIV])
615 AC_SUBST([GL_PC_LIB_PRIV])
616 AC_SUBST([GL_PC_CFLAGS])
617 AC_SUBST([DRI_PC_REQ_PRIV])
618
619 dnl
620 dnl More X11 setup
621 dnl
622 if test "$mesa_driver" = xlib; then
623     DEFINES="$DEFINES -DUSE_XSHM"
624 fi
625
626 dnl
627 dnl More DRI setup
628 dnl
629 AC_ARG_ENABLE([glx-tls],
630     [AS_HELP_STRING([--enable-glx-tls],
631         [enable TLS support in GLX @<:@default=disabled@:>@])],
632     [GLX_USE_TLS="$enableval"],
633     [GLX_USE_TLS=no])
634 dnl Directory for DRI drivers
635 AC_ARG_WITH([dri-driverdir],
636     [AS_HELP_STRING([--with-dri-driverdir=DIR],
637         [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
638     [DRI_DRIVER_INSTALL_DIR="$withval"],
639     [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
640 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
641 dnl Direct rendering or just indirect rendering
642 AC_ARG_ENABLE([driglx-direct],
643     [AS_HELP_STRING([--disable-driglx-direct],
644         [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
645     [driglx_direct="$enableval"],
646     [driglx_direct="yes"])
647 dnl Which drivers to build - default is chosen by platform
648 AC_ARG_WITH([dri-drivers],
649     [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
650         [comma delimited DRI drivers list, e.g.
651         "swrast,i965,radeon,nouveau" @<:@default=auto@:>@])],
652     [with_dri_drivers="$withval"],
653     [with_dri_drivers=yes])
654 if test "x$with_dri_drivers" = x; then
655     with_dri_drivers=no
656 fi
657
658 dnl If $with_dri_drivers is yes, directories will be added through
659 dnl platform checks
660 DRI_DIRS=""
661 case "$with_dri_drivers" in
662 no) ;;
663 yes)
664     DRI_DIRS="yes"
665     ;;
666 *)
667     # verify the requested driver directories exist
668     dri_drivers=`IFS=', '; echo $with_dri_drivers`
669     for driver in $dri_drivers; do
670         test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
671             AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
672     done
673     DRI_DIRS="$dri_drivers"
674     ;;
675 esac
676
677 dnl Just default to no EGL for now
678 USING_EGL=0
679 AC_SUBST([USING_EGL])
680
681 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
682 if test "$mesa_driver" = dri; then
683     # Use TLS in GLX?
684     if test "x$GLX_USE_TLS" = xyes; then
685         DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
686     fi
687
688     if test "x$USING_EGL" = x1; then
689         PROGRAM_DIRS="egl"
690     fi
691
692     # Platform specific settings and drivers to build
693     case "$host_os" in
694     linux*)
695         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
696         if test "x$driglx_direct" = xyes; then
697             DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
698         fi
699         DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
700
701         case "$host_cpu" in
702         x86_64)
703             # ffb, gamma, and sis are missing because they have not be
704             # converted to use the new interface.  i810 are missing
705             # because there is no x86-64 system where they could *ever*
706             # be used.
707             if test "x$DRI_DIRS" = "xyes"; then
708                 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 radeon \
709                     savage tdfx unichrome swrast"
710             fi
711             ;;
712         powerpc*)
713             # Build only the drivers for cards that exist on PowerPC.
714             # At some point MGA will be added, but not yet.
715             if test "x$DRI_DIRS" = "xyes"; then
716                 DRI_DIRS="mach64 r128 r200 r300 radeon tdfx swrast"
717             fi
718             ;;
719         sparc*)
720             # Build only the drivers for cards that exist on sparc`
721             if test "x$DRI_DIRS" = "xyes"; then
722                 DRI_DIRS="mach64 r128 r200 r300 radeon ffb swrast"
723             fi
724             ;;
725         esac
726         ;;
727     freebsd* | dragonfly*)
728         DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
729         DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
730         DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
731         if test "x$driglx_direct" = xyes; then
732             DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
733         fi
734         if test "x$GXX" = xyes; then
735             CXXFLAGS="$CXXFLAGS -ansi -pedantic"
736         fi
737
738         # ffb and gamma are missing because they have not been converted
739         # to use the new interface.
740         if test "x$DRI_DIRS" = "xyes"; then
741             DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
742                 unichrome savage sis swrast"
743         fi
744         ;;
745     gnu*)
746         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
747         DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
748         ;;
749     solaris*)
750         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
751         DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
752         if test "x$driglx_direct" = xyes; then
753             DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
754         fi
755         ;;
756     esac
757
758     # default drivers
759     if test "x$DRI_DIRS" = "xyes"; then
760         DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \
761             savage sis tdfx trident unichrome ffb swrast"
762     fi
763
764     DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/  */ /g'`
765
766     # Check for expat
767     EXPAT_INCLUDES=""
768     EXPAT_LIB=-lexpat
769     AC_ARG_WITH([expat],
770         [AS_HELP_STRING([--with-expat=DIR],
771             [expat install directory])],[
772         EXPAT_INCLUDES="-I$withval/include"
773         CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
774         LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
775         EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
776         ])
777     AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
778     AC_CHECK_LIB([expat],[XML_ParserCreate],[],
779         [AC_MSG_ERROR([Expat required for DRI.])])
780
781     # put all the necessary libs together
782     DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
783 fi
784 AC_SUBST([DRI_DIRS])
785 AC_SUBST([EXPAT_INCLUDES])
786 AC_SUBST([DRI_LIB_DEPS])
787
788 dnl
789 dnl OSMesa configuration
790 dnl
791 if test "$mesa_driver" = xlib; then
792     default_gl_osmesa=yes
793 else
794     default_gl_osmesa=no
795 fi
796 AC_ARG_ENABLE([gl-osmesa],
797     [AS_HELP_STRING([--enable-gl-osmesa],
798         [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
799     [gl_osmesa="$enableval"],
800     [gl_osmesa="$default_gl_osmesa"])
801 if test "x$gl_osmesa" = xyes; then
802     if test "$mesa_driver" = osmesa; then
803         AC_MSG_ERROR([libGL is not available for OSMesa driver])
804     else
805         DRIVER_DIRS="$DRIVER_DIRS osmesa"
806     fi
807 fi
808
809 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
810 AC_ARG_WITH([osmesa-bits],
811     [AS_HELP_STRING([--with-osmesa-bits=BITS],
812         [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
813     [osmesa_bits="$withval"],
814     [osmesa_bits=8])
815 if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
816     AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
817     osmesa_bits=8
818 fi
819 case "x$osmesa_bits" in
820 x8)
821     OSMESA_LIB=OSMesa
822     ;;
823 x16|x32)
824     OSMESA_LIB="OSMesa$osmesa_bits"
825     DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
826     ;;
827 *)
828     AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
829     ;;
830 esac
831 AC_SUBST([OSMESA_LIB])
832
833 case "$mesa_driver" in
834 osmesa)
835     # only link libraries with osmesa if shared
836     if test "$enable_static" = no; then
837         OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS"
838     else
839         OSMESA_LIB_DEPS=""
840     fi
841     OSMESA_MESA_DEPS=""
842     OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS"
843     ;;
844 *)
845     # Link OSMesa to libGL otherwise
846     OSMESA_LIB_DEPS=""
847     # only link libraries with osmesa if shared
848     if test "$enable_static" = no; then
849         OSMESA_MESA_DEPS='-l$(GL_LIB)'
850     else
851         OSMESA_MESA_DEPS=""
852     fi
853     OSMESA_PC_REQ="gl"
854     ;;
855 esac
856 if test "$enable_static" = no; then
857     OSMESA_LIB_DEPS="$OSMESA_LIB_DEPS"
858 fi
859 OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV"
860 AC_SUBST([OSMESA_LIB_DEPS])
861 AC_SUBST([OSMESA_MESA_DEPS])
862 AC_SUBST([OSMESA_PC_REQ])
863 AC_SUBST([OSMESA_PC_LIB_PRIV])
864
865 dnl
866 dnl EGL configuration
867 dnl
868 if test "$x11_pkgconfig" = yes; then
869     PKG_CHECK_MODULES([EGL],[x11])
870     EGL_LIB_DEPS="$EGL_LIBS"
871 else
872     # should check these...
873     EGL_LIB_DEPS="$X_LIBS -lX11"
874 fi
875 EGL_LIB_DEPS="$EGL_LIB_DEPS $DLOPEN_LIBS"
876 AC_SUBST([EGL_LIB_DEPS])
877
878 dnl
879 dnl GLU configuration
880 dnl
881 AC_ARG_ENABLE([glu],
882     [AS_HELP_STRING([--disable-glu],
883         [enable OpenGL Utility library @<:@default=enabled@:>@])],
884     [enable_glu="$enableval"],
885     [enable_glu=yes])
886 if test "x$enable_glu" = xyes; then
887     SRC_DIRS="$SRC_DIRS glu"
888
889     case "$mesa_driver" in
890     osmesa)
891         # If GLU is available and we have libOSMesa (not 16 or 32),
892         # we can build the osdemos
893         if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
894             PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
895         fi
896
897         # Link libGLU to libOSMesa instead of libGL
898         GLU_LIB_DEPS=""
899         GLU_PC_REQ="osmesa"
900         if test "$enable_static" = no; then
901             GLU_MESA_DEPS='-l$(OSMESA_LIB)'
902         else
903             GLU_MESA_DEPS=""
904         fi
905         ;;
906     *)
907         # If static, empty GLU_LIB_DEPS and add libs for programs to link
908         GLU_PC_REQ="gl"
909         GLU_PC_LIB_PRIV="-lm"
910         if test "$enable_static" = no; then
911             GLU_LIB_DEPS="-lm"
912             GLU_MESA_DEPS='-l$(GL_LIB)'
913         else
914             GLU_LIB_DEPS=""
915             GLU_MESA_DEPS=""
916             APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
917         fi
918         ;;
919     esac
920 fi
921 if test "$enable_static" = no; then
922     GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
923 fi
924 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
925 AC_SUBST([GLU_LIB_DEPS])
926 AC_SUBST([GLU_MESA_DEPS])
927 AC_SUBST([GLU_PC_REQ])
928 AC_SUBST([GLU_PC_REQ_PRIV])
929 AC_SUBST([GLU_PC_LIB_PRIV])
930 AC_SUBST([GLU_PC_CFLAGS])
931
932 dnl
933 dnl GLw configuration
934 dnl
935 AC_ARG_ENABLE([glw],
936     [AS_HELP_STRING([--disable-glw],
937         [enable Xt/Motif widget library @<:@default=enabled@:>@])],
938     [enable_glw="$enableval"],
939     [enable_glw=yes])
940 dnl Don't build GLw on osmesa
941 if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
942     AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
943     enable_glw=no
944 fi
945 AC_ARG_ENABLE([motif],
946     [AS_HELP_STRING([--enable-motif],
947         [use Motif widgets in GLw @<:@default=disabled@:>@])],
948     [enable_motif="$enableval"],
949     [enable_motif=no])
950
951 if test "x$enable_glw" = xyes; then
952     SRC_DIRS="$SRC_DIRS glw"
953     if test "$x11_pkgconfig" = yes; then
954         PKG_CHECK_MODULES([GLW],[x11 xt])
955         GLW_PC_REQ_PRIV="x11 xt"
956         GLW_LIB_DEPS="$GLW_LIBS"
957     else
958         # should check these...
959         GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
960         GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
961         GLW_PC_CFLAGS="$X11_INCLUDES"
962     fi
963
964     GLW_SOURCES="GLwDrawA.c"
965     MOTIF_CFLAGS=
966     if test "x$enable_motif" = xyes; then
967         GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
968         AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
969         if test "x$MOTIF_CONFIG" != xno; then
970             MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
971             MOTIF_LIBS=`$MOTIF_CONFIG --libs`
972         else
973             AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
974                 [AC_MSG_ERROR([Can't locate Motif headers])])
975             AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
976                 [AC_MSG_ERROR([Can't locate Motif Xm library])])
977         fi
978         # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
979         GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
980         GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
981         GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
982     fi
983
984     # If static, empty GLW_LIB_DEPS and add libs for programs to link
985     GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
986     if test "$enable_static" = no; then
987         GLW_MESA_DEPS='-l$(GL_LIB)'
988         GLW_LIB_DEPS="$GLW_LIB_DEPS"
989     else
990         APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
991         GLW_LIB_DEPS=""
992         GLW_MESA_DEPS=""
993     fi
994 fi
995 AC_SUBST([GLW_LIB_DEPS])
996 AC_SUBST([GLW_MESA_DEPS])
997 AC_SUBST([GLW_SOURCES])
998 AC_SUBST([MOTIF_CFLAGS])
999 AC_SUBST([GLW_PC_REQ_PRIV])
1000 AC_SUBST([GLW_PC_LIB_PRIV])
1001 AC_SUBST([GLW_PC_CFLAGS])
1002
1003 dnl
1004 dnl GLUT configuration
1005 dnl
1006 if test -f "$srcdir/include/GL/glut.h"; then
1007     default_glut=yes
1008 else
1009     default_glut=no
1010 fi
1011 AC_ARG_ENABLE([glut],
1012     [AS_HELP_STRING([--disable-glut],
1013         [enable GLUT library @<:@default=enabled if source available@:>@])],
1014     [enable_glut="$enableval"],
1015     [enable_glut="$default_glut"])
1016
1017 dnl Can't build glut if GLU not available
1018 if test "x$enable_glu$enable_glut" = xnoyes; then
1019     AC_MSG_WARN([Disabling glut since GLU is disabled])
1020     enable_glut=no
1021 fi
1022 dnl Don't build glut on osmesa
1023 if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1024     AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1025     enable_glut=no
1026 fi
1027
1028 if test "x$enable_glut" = xyes; then
1029     SRC_DIRS="$SRC_DIRS glut/glx"
1030     GLUT_CFLAGS=""
1031     if test "x$GCC" = xyes; then
1032         GLUT_CFLAGS="-fexceptions"
1033     fi
1034     if test "$x11_pkgconfig" = yes; then
1035         PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1036         GLUT_PC_REQ_PRIV="x11 xmu xi"
1037         GLUT_LIB_DEPS="$GLUT_LIBS"
1038     else
1039         # should check these...
1040         GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1041         GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1042         GLUT_PC_CFLAGS="$X11_INCLUDES"
1043     fi
1044     GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1045     GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
1046
1047     # If glut is available, we can build most programs
1048     if test "$with_demos" = yes; then
1049         PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
1050     fi
1051
1052     # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1053     if test "$enable_static" = no; then
1054         GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1055     else
1056         APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1057         GLUT_LIB_DEPS=""
1058         GLUT_MESA_DEPS=""
1059     fi
1060 fi
1061 AC_SUBST([GLUT_LIB_DEPS])
1062 AC_SUBST([GLUT_MESA_DEPS])
1063 AC_SUBST([GLUT_CFLAGS])
1064 AC_SUBST([GLUT_PC_REQ_PRIV])
1065 AC_SUBST([GLUT_PC_LIB_PRIV])
1066 AC_SUBST([GLUT_PC_CFLAGS])
1067
1068 dnl
1069 dnl Program library dependencies
1070 dnl    Only libm is added here if necessary as the libraries should
1071 dnl    be pulled in by the linker
1072 dnl
1073 if test "x$APP_LIB_DEPS" = x; then
1074     case "$host_os" in
1075     solaris*)
1076         APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1077         ;;
1078     *)
1079         APP_LIB_DEPS="-lm"
1080         ;;
1081     esac
1082 fi
1083 AC_SUBST([APP_LIB_DEPS])
1084 AC_SUBST([PROGRAM_DIRS])
1085
1086 dnl
1087 dnl Gallium configuration
1088 dnl
1089 AC_ARG_ENABLE([gallium],
1090     [AS_HELP_STRING([--disable-gallium],
1091         [build gallium @<:@default=enabled@:>@])],
1092     [enable_gallium="$enableval"],
1093     [enable_gallium=yes])
1094 if test "x$enable_gallium" = xyes; then
1095     SRC_DIRS="$SRC_DIRS gallium gallium/winsys"
1096 fi
1097
1098 dnl
1099 dnl Gallium state trackers configuration
1100 dnl
1101 AC_ARG_WITH([state-trackers],
1102     [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1103         [comma delimited state_trackers list, e.g.
1104         "egl,glx" @<:@default=auto@:>@])],
1105     [with_state_trackers="$withval"],
1106     [with_state_trackers=yes])
1107
1108 case "$with_state_trackers" in
1109 no)
1110     GALLIUM_STATE_TRACKERS_DIRS=""
1111     ;;
1112 yes)
1113     # look at what else is built
1114     case "$mesa_driver" in
1115     xlib)
1116         GALLIUM_STATE_TRACKERS_DIRS=glx
1117         ;;
1118     dri)
1119         GALLIUM_STATE_TRACKERS_DIRS=egl
1120         ;;
1121     esac
1122     ;;
1123 *)
1124     # verify the requested state tracker exist
1125     state_trackers=`IFS=', '; echo $with_state_trackers`
1126     for tracker in $state_trackers; do
1127         test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1128             AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1129     done
1130     GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1131     ;;
1132 esac
1133
1134 AC_ARG_WITH([xorg-driver-dir],
1135     [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1136                     [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1137     [XORG_DRIVER_INSTALL_DIR="$withval"],
1138     [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1139 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1140
1141 dnl
1142 dnl Gallium Intel configuration
1143 dnl
1144 AC_ARG_ENABLE([gallium-intel],
1145     [AS_HELP_STRING([--disable-gallium-intel],
1146         [build gallium intel @<:@default=enabled@:>@])],
1147     [enable_gallium_intel="$enableval"],
1148     [enable_gallium_intel=yes])
1149 if test "x$enable_gallium_intel" = xyes; then
1150     GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel"
1151     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915simple"
1152 fi
1153
1154 dnl
1155 dnl Gallium Radeon configuration
1156 dnl
1157 AC_ARG_ENABLE([gallium-radeon],
1158     [AS_HELP_STRING([--enable-gallium-radeon],
1159         [build gallium radeon @<:@default=disabled@:>@])],
1160     [enable_gallium_radeon="$enableval"],
1161     [enable_gallium_radeon=no])
1162 if test "x$enable_gallium_radeon" = xyes; then
1163     GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon"
1164     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1165 fi
1166
1167 dnl
1168 dnl Gallium Radeon configuration
1169 dnl
1170 AC_ARG_ENABLE([gallium-nouveau],
1171     [AS_HELP_STRING([--enable-gallium-nouveau],
1172         [build gallium nouveau @<:@default=disabled@:>@])],
1173     [enable_gallium_nouveau="$enableval"],
1174     [enable_gallium_nouveau=no])
1175 if test "x$enable_gallium_nouveau" = xyes; then
1176     GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau"
1177     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nv04 nv10 nv20 nv30 nv40 nv50"
1178 fi
1179
1180
1181 dnl Restore LDFLAGS and CPPFLAGS
1182 LDFLAGS="$_SAVE_LDFLAGS"
1183 CPPFLAGS="$_SAVE_CPPFLAGS"
1184
1185 dnl Substitute the config
1186 AC_CONFIG_FILES([configs/autoconf])
1187
1188 dnl Replace the configs/current symlink
1189 AC_CONFIG_COMMANDS([configs],[
1190 if test -f configs/current || test -L configs/current; then
1191     rm -f configs/current
1192 fi
1193 ln -s autoconf configs/current
1194 ])
1195
1196 AC_OUTPUT
1197
1198 dnl
1199 dnl Output some configuration info for the user
1200 dnl
1201 echo ""
1202 echo "        prefix:          $prefix"
1203 echo "        exec_prefix:     $exec_prefix"
1204 echo "        libdir:          $libdir"
1205 echo "        includedir:      $includedir"
1206
1207 dnl Driver info
1208 echo ""
1209 echo "        Driver:          $mesa_driver"
1210 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1211     echo "        OSMesa:          lib$OSMESA_LIB"
1212 else
1213     echo "        OSMesa:          no"
1214 fi
1215 if test "$mesa_driver" = dri; then
1216     # cleanup the drivers var
1217     dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
1218 if test "x$DRI_DIRS" = x; then
1219     echo "        DRI drivers:     no"
1220 else
1221     echo "        DRI drivers:     $dri_dirs"
1222 fi
1223     echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
1224 fi
1225 echo "        Use XCB:         $enable_xcb"
1226
1227 echo ""
1228 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1229     echo "        Gallium:         yes"
1230     echo "        Gallium dirs:    $GALLIUM_DIRS"
1231     echo "        Winsys dirs:     $GALLIUM_WINSYS_DIRS"
1232     echo "        Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS"
1233     echo "        Auxiliary dirs:  $GALLIUM_AUXILIARY_DIRS"
1234     echo "        Driver dirs:     $GALLIUM_DRIVERS_DIRS"
1235     echo "        Trackers dirs:   $GALLIUM_STATE_TRACKERS_DIRS"
1236 else
1237     echo "        Gallium:         no"
1238 fi
1239
1240 dnl Libraries
1241 echo ""
1242 echo "        Shared libs:     $enable_shared"
1243 echo "        Static libs:     $enable_static"
1244 echo "        GLU:             $enable_glu"
1245 echo "        GLw:             $enable_glw (Motif: $enable_motif)"
1246 echo "        glut:            $enable_glut"
1247
1248 dnl Programs
1249 # cleanup the programs var for display
1250 program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
1251 if test "x$program_dirs" = x; then
1252     echo "        Demos:           no"
1253 else
1254     echo "        Demos:           $program_dirs"
1255 fi
1256
1257 dnl Compiler options
1258 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1259 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1260     $SED 's/^ *//;s/  */ /;s/ *$//'`
1261 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1262     $SED 's/^ *//;s/  */ /;s/ *$//'`
1263 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/  */ /;s/ *$//'`
1264 echo ""
1265 echo "        CFLAGS:          $cflags"
1266 echo "        CXXFLAGS:        $cxxflags"
1267 echo "        Macros:          $defines"
1268
1269 echo ""
1270 echo "        Run '${MAKE-make}' to build Mesa"
1271 echo ""