OSDN Git Service

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