OSDN Git Service

Merge branch 'radeon-rewrite' of git+ssh://agd5f@git.freedesktop.org/git/mesa/mesa...
[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*)
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) 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"
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     ;;
428 dri)
429     SRC_DIRS="glx/x11 $SRC_DIRS"
430     DRIVER_DIRS="dri"
431     WINDOW_SYSTEM="dri"
432     GALLIUM_WINSYS_DIRS="drm $GALLIUM_WINSYS_DIRS"
433     ;;
434 osmesa)
435     DRIVER_DIRS="osmesa"
436     ;;
437 esac
438 AC_SUBST([SRC_DIRS])
439 AC_SUBST([GLU_DIRS])
440 AC_SUBST([DRIVER_DIRS])
441 AC_SUBST([WINDOW_SYSTEM])
442 AC_SUBST([GALLIUM_DIRS])
443 AC_SUBST([GALLIUM_WINSYS_DIRS])
444 AC_SUBST([GALLIUM_WINSYS_DRM_DIRS])
445 AC_SUBST([GALLIUM_DRIVERS_DIRS])
446 AC_SUBST([GALLIUM_AUXILIARY_DIRS])
447 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
448 AC_SUBST([RADEON_CFLAGS])
449 AC_SUBST([RADEON_LDFLAGS])
450
451 dnl
452 dnl User supplied program configuration
453 dnl
454 if test -d "$srcdir/progs/demos"; then
455     default_demos=yes
456 else
457     default_demos=no
458 fi
459 AC_ARG_WITH([demos],
460     [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
461         [optional comma delimited demo directories to build
462         @<:@default=auto if source available@:>@])],
463     [with_demos="$withval"],
464     [with_demos="$default_demos"])
465 if test "x$with_demos" = x; then
466     with_demos=no
467 fi
468
469 dnl If $with_demos is yes, directories will be added as libs available
470 PROGRAM_DIRS=""
471 case "$with_demos" in
472 no) ;;
473 yes)
474     # If the driver isn't osmesa, we have libGL and can build xdemos
475     if test "$mesa_driver" != osmesa; then
476         PROGRAM_DIRS="xdemos"
477     fi
478     ;;
479 *)
480     # verify the requested demos directories exist
481     demos=`IFS=,; echo $with_demos`
482     for demo in $demos; do
483         test -d "$srcdir/progs/$demo" || \
484             AC_MSG_ERROR([Program directory '$demo' doesn't exist])
485     done
486     PROGRAM_DIRS="$demos"
487     ;;
488 esac
489
490 dnl
491 dnl Find out if X is available. The variable have_x is set if libX11 is
492 dnl found to mimic AC_PATH_XTRA.
493 dnl
494 if test -n "$PKG_CONFIG"; then
495     AC_MSG_CHECKING([pkg-config files for X11 are available])
496     PKG_CHECK_EXISTS([x11],[
497         x11_pkgconfig=yes
498         have_x=yes
499         ],[
500         x11_pkgconfig=no
501     ])
502     AC_MSG_RESULT([$x11_pkgconfig])
503 else
504     x11_pkgconfig=no
505 fi
506 dnl Use the autoconf macro if no pkg-config files
507 if test "$x11_pkgconfig" = no; then
508     AC_PATH_XTRA
509 fi
510
511 dnl Try to tell the user that the --x-* options are only used when
512 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
513 m4_divert_once([HELP_BEGIN],
514 [These options are only used when the X libraries cannot be found by the
515 pkg-config utility.])
516
517 dnl We need X for xlib and dri, so bomb now if it's not found
518 case "$mesa_driver" in
519 xlib|dri)
520     if test "$no_x" = yes; then
521         AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
522     fi
523     ;;
524 esac
525
526 dnl XCB - this is only used for GLX right now
527 AC_ARG_ENABLE([xcb],
528     [AS_HELP_STRING([--enable-xcb],
529         [use XCB for GLX @<:@default=disabled@:>@])],
530     [enable_xcb="$enableval"],
531     [enable_xcb=no])
532 if test "x$enable_xcb" = xyes; then
533     DEFINES="$DEFINES -DUSE_XCB"
534 else
535     enable_xcb=no
536 fi
537
538 dnl
539 dnl libGL configuration per driver
540 dnl
541 case "$mesa_driver" in
542 xlib)
543     if test "$x11_pkgconfig" = yes; then
544         PKG_CHECK_MODULES([XLIBGL], [x11 xext])
545         GL_PC_REQ_PRIV="x11 xext"
546         X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
547         GL_LIB_DEPS="$XLIBGL_LIBS"
548     else
549         # should check these...
550         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
551         GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
552         GL_PC_LIB_PRIV="$GL_LIB_DEPS"
553         GL_PC_CFLAGS="$X11_INCLUDES"
554     fi
555     GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
556     GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
557
558     # if static, move the external libraries to the programs
559     # and empty the libraries for libGL
560     if test "$enable_static" = yes; then
561         APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
562         GL_LIB_DEPS=""
563     fi
564     ;;
565 dri)
566     # DRI must be shared, I think
567     if test "$enable_static" = yes; then
568         AC_MSG_ERROR([Can't use static libraries for DRI drivers])
569     fi
570
571     # Check for libdrm
572     PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
573     PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
574     GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
575     DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
576
577     PKG_CHECK_MODULES([LIBDRM_RADEON], [libdrm_radeon], HAVE_LIBDRM_RADEON=yes, HAVE_LIBDRM_RADEON=no)
578
579     if test "$HAVE_LIBDRM_RADEON" = yes; then
580         RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
581         RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
582     fi
583
584     # find the DRI deps for libGL
585     if test "$x11_pkgconfig" = yes; then
586         # add xcb modules if necessary
587         dri_modules="x11 xext xxf86vm xdamage xfixes"
588         if test "$enable_xcb" = yes; then
589             dri_modules="$dri_modules x11-xcb xcb-glx"
590         fi
591
592         PKG_CHECK_MODULES([DRIGL], [$dri_modules])
593         GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
594         X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
595         GL_LIB_DEPS="$DRIGL_LIBS"
596     else
597         # should check these...
598         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
599         GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
600         GL_PC_LIB_PRIV="$GL_LIB_DEPS"
601         GL_PC_CFLAGS="$X11_INCLUDES"
602
603         # XCB can only be used from pkg-config
604         if test "$enable_xcb" = yes; then
605             PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
606             GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
607             X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
608             GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
609         fi
610     fi
611
612     # need DRM libs, -lpthread, etc.
613     GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
614     GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
615     ;;
616 osmesa)
617     # No libGL for osmesa
618     GL_LIB_DEPS=""
619     ;;
620 esac
621 AC_SUBST([GL_LIB_DEPS])
622 AC_SUBST([GL_PC_REQ_PRIV])
623 AC_SUBST([GL_PC_LIB_PRIV])
624 AC_SUBST([GL_PC_CFLAGS])
625 AC_SUBST([DRI_PC_REQ_PRIV])
626
627 dnl
628 dnl More X11 setup
629 dnl
630 if test "$mesa_driver" = xlib; then
631     DEFINES="$DEFINES -DUSE_XSHM"
632 fi
633
634 dnl
635 dnl More DRI setup
636 dnl
637 AC_ARG_ENABLE([glx-tls],
638     [AS_HELP_STRING([--enable-glx-tls],
639         [enable TLS support in GLX @<:@default=disabled@:>@])],
640     [GLX_USE_TLS="$enableval"],
641     [GLX_USE_TLS=no])
642 dnl Directory for DRI drivers
643 AC_ARG_WITH([dri-driverdir],
644     [AS_HELP_STRING([--with-dri-driverdir=DIR],
645         [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
646     [DRI_DRIVER_INSTALL_DIR="$withval"],
647     [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
648 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
649 dnl Direct rendering or just indirect rendering
650 AC_ARG_ENABLE([driglx-direct],
651     [AS_HELP_STRING([--disable-driglx-direct],
652         [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
653     [driglx_direct="$enableval"],
654     [driglx_direct="yes"])
655 dnl Which drivers to build - default is chosen by platform
656 AC_ARG_WITH([dri-drivers],
657     [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
658         [comma delimited DRI drivers list, e.g.
659         "swrast,i965,radeon,nouveau" @<:@default=auto@:>@])],
660     [with_dri_drivers="$withval"],
661     [with_dri_drivers=yes])
662 if test "x$with_dri_drivers" = x; then
663     with_dri_drivers=no
664 fi
665
666 dnl If $with_dri_drivers is yes, directories will be added through
667 dnl platform checks
668 DRI_DIRS=""
669 case "$with_dri_drivers" in
670 no) ;;
671 yes)
672     DRI_DIRS="yes"
673     ;;
674 *)
675     # verify the requested driver directories exist
676     dri_drivers=`IFS=', '; echo $with_dri_drivers`
677     for driver in $dri_drivers; do
678         test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
679             AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
680     done
681     DRI_DIRS="$dri_drivers"
682     ;;
683 esac
684
685 dnl Just default to no EGL for now
686 USING_EGL=0
687 AC_SUBST([USING_EGL])
688
689 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
690 if test "$mesa_driver" = dri; then
691     # Use TLS in GLX?
692     if test "x$GLX_USE_TLS" = xyes; then
693         DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
694     fi
695
696     if test "x$USING_EGL" = x1; then
697         PROGRAM_DIRS="egl"
698     fi
699
700     # Platform specific settings and drivers to build
701     case "$host_os" in
702     linux*)
703         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
704         if test "x$driglx_direct" = xyes; then
705             DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
706         fi
707         DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
708
709         case "$host_cpu" in
710         x86_64)
711             # ffb, gamma, and sis are missing because they have not be
712             # converted to use the new interface.  i810 are missing
713             # because there is no x86-64 system where they could *ever*
714             # be used.
715             if test "x$DRI_DIRS" = "xyes"; then
716                 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 r600 radeon \
717                     savage tdfx unichrome swrast"
718             fi
719             ;;
720         powerpc*)
721             # Build only the drivers for cards that exist on PowerPC.
722             # At some point MGA will be added, but not yet.
723             if test "x$DRI_DIRS" = "xyes"; then
724                 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
725             fi
726             ;;
727         sparc*)
728             # Build only the drivers for cards that exist on sparc`
729             if test "x$DRI_DIRS" = "xyes"; then
730                 DRI_DIRS="mach64 r128 r200 r300 r600 radeon ffb swrast"
731             fi
732             ;;
733         esac
734         ;;
735     freebsd* | dragonfly*)
736         DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
737         DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
738         DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
739         if test "x$driglx_direct" = xyes; then
740             DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
741         fi
742         if test "x$GXX" = xyes; then
743             CXXFLAGS="$CXXFLAGS -ansi -pedantic"
744         fi
745
746         # ffb and gamma are missing because they have not been converted
747         # to use the new interface.
748         if test "x$DRI_DIRS" = "xyes"; then
749             DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
750                 unichrome savage sis swrast"
751         fi
752         ;;
753     solaris*)
754         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
755         DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
756         if test "x$driglx_direct" = xyes; then
757             DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
758         fi
759         ;;
760     esac
761
762     # default drivers
763     if test "x$DRI_DIRS" = "xyes"; then
764         DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon s3v \
765             savage sis tdfx trident unichrome ffb swrast"
766     fi
767
768     DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/  */ /g'`
769
770     # Check for expat
771     EXPAT_INCLUDES=""
772     EXPAT_LIB=-lexpat
773     AC_ARG_WITH([expat],
774         [AS_HELP_STRING([--with-expat=DIR],
775             [expat install directory])],[
776         EXPAT_INCLUDES="-I$withval/include"
777         CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
778         LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
779         EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
780         ])
781     AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
782     AC_CHECK_LIB([expat],[XML_ParserCreate],[],
783         [AC_MSG_ERROR([Expat required for DRI.])])
784
785     # put all the necessary libs together
786     DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
787 fi
788 AC_SUBST([DRI_DIRS])
789 AC_SUBST([EXPAT_INCLUDES])
790 AC_SUBST([DRI_LIB_DEPS])
791
792 dnl
793 dnl OSMesa configuration
794 dnl
795 if test "$mesa_driver" = xlib; then
796     default_gl_osmesa=yes
797 else
798     default_gl_osmesa=no
799 fi
800 AC_ARG_ENABLE([gl-osmesa],
801     [AS_HELP_STRING([--enable-gl-osmesa],
802         [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
803     [gl_osmesa="$enableval"],
804     [gl_osmesa="$default_gl_osmesa"])
805 if test "x$gl_osmesa" = xyes; then
806     if test "$mesa_driver" = osmesa; then
807         AC_MSG_ERROR([libGL is not available for OSMesa driver])
808     else
809         DRIVER_DIRS="$DRIVER_DIRS osmesa"
810     fi
811 fi
812
813 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
814 AC_ARG_WITH([osmesa-bits],
815     [AS_HELP_STRING([--with-osmesa-bits=BITS],
816         [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
817     [osmesa_bits="$withval"],
818     [osmesa_bits=8])
819 if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
820     AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
821     osmesa_bits=8
822 fi
823 case "x$osmesa_bits" in
824 x8)
825     OSMESA_LIB=OSMesa
826     ;;
827 x16|x32)
828     OSMESA_LIB="OSMesa$osmesa_bits"
829     DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
830     ;;
831 *)
832     AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
833     ;;
834 esac
835 AC_SUBST([OSMESA_LIB])
836
837 case "$mesa_driver" in
838 osmesa)
839     # only link libraries with osmesa if shared
840     if test "$enable_static" = no; then
841         OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS"
842     else
843         OSMESA_LIB_DEPS=""
844     fi
845     OSMESA_MESA_DEPS=""
846     OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS"
847     ;;
848 *)
849     # Link OSMesa to libGL otherwise
850     OSMESA_LIB_DEPS=""
851     # only link libraries with osmesa if shared
852     if test "$enable_static" = no; then
853         OSMESA_MESA_DEPS='-l$(GL_LIB)'
854     else
855         OSMESA_MESA_DEPS=""
856     fi
857     OSMESA_PC_REQ="gl"
858     ;;
859 esac
860 if test "$enable_static" = no; then
861     OSMESA_LIB_DEPS="$OSMESA_LIB_DEPS"
862 fi
863 OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV"
864 AC_SUBST([OSMESA_LIB_DEPS])
865 AC_SUBST([OSMESA_MESA_DEPS])
866 AC_SUBST([OSMESA_PC_REQ])
867 AC_SUBST([OSMESA_PC_LIB_PRIV])
868
869 dnl
870 dnl EGL configuration
871 dnl
872 if test "$x11_pkgconfig" = yes; then
873     PKG_CHECK_MODULES([EGL],[x11])
874     EGL_LIB_DEPS="$EGL_LIBS"
875 else
876     # should check these...
877     EGL_LIB_DEPS="$X_LIBS -lX11"
878 fi
879 EGL_LIB_DEPS="$EGL_LIB_DEPS $DLOPEN_LIBS"
880 AC_SUBST([EGL_LIB_DEPS])
881
882 dnl
883 dnl GLU configuration
884 dnl
885 AC_ARG_ENABLE([glu],
886     [AS_HELP_STRING([--disable-glu],
887         [enable OpenGL Utility library @<:@default=enabled@:>@])],
888     [enable_glu="$enableval"],
889     [enable_glu=yes])
890 if test "x$enable_glu" = xyes; then
891     SRC_DIRS="$SRC_DIRS glu"
892
893     case "$mesa_driver" in
894     osmesa)
895         # If GLU is available and we have libOSMesa (not 16 or 32),
896         # we can build the osdemos
897         if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
898             PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
899         fi
900
901         # Link libGLU to libOSMesa instead of libGL
902         GLU_LIB_DEPS=""
903         GLU_PC_REQ="osmesa"
904         if test "$enable_static" = no; then
905             GLU_MESA_DEPS='-l$(OSMESA_LIB)'
906         else
907             GLU_MESA_DEPS=""
908         fi
909         ;;
910     *)
911         # If static, empty GLU_LIB_DEPS and add libs for programs to link
912         GLU_PC_REQ="gl"
913         GLU_PC_LIB_PRIV="-lm"
914         if test "$enable_static" = no; then
915             GLU_LIB_DEPS="-lm"
916             GLU_MESA_DEPS='-l$(GL_LIB)'
917         else
918             GLU_LIB_DEPS=""
919             GLU_MESA_DEPS=""
920             APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
921         fi
922         ;;
923     esac
924 fi
925 if test "$enable_static" = no; then
926     GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
927 fi
928 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
929 AC_SUBST([GLU_LIB_DEPS])
930 AC_SUBST([GLU_MESA_DEPS])
931 AC_SUBST([GLU_PC_REQ])
932 AC_SUBST([GLU_PC_REQ_PRIV])
933 AC_SUBST([GLU_PC_LIB_PRIV])
934 AC_SUBST([GLU_PC_CFLAGS])
935
936 dnl
937 dnl GLw configuration
938 dnl
939 AC_ARG_ENABLE([glw],
940     [AS_HELP_STRING([--disable-glw],
941         [enable Xt/Motif widget library @<:@default=enabled@:>@])],
942     [enable_glw="$enableval"],
943     [enable_glw=yes])
944 dnl Don't build GLw on osmesa
945 if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
946     AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
947     enable_glw=no
948 fi
949 AC_ARG_ENABLE([motif],
950     [AS_HELP_STRING([--enable-motif],
951         [use Motif widgets in GLw @<:@default=disabled@:>@])],
952     [enable_motif="$enableval"],
953     [enable_motif=no])
954
955 if test "x$enable_glw" = xyes; then
956     SRC_DIRS="$SRC_DIRS glw"
957     if test "$x11_pkgconfig" = yes; then
958         PKG_CHECK_MODULES([GLW],[x11 xt])
959         GLW_PC_REQ_PRIV="x11 xt"
960         GLW_LIB_DEPS="$GLW_LIBS"
961     else
962         # should check these...
963         GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
964         GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
965         GLW_PC_CFLAGS="$X11_INCLUDES"
966     fi
967
968     GLW_SOURCES="GLwDrawA.c"
969     MOTIF_CFLAGS=
970     if test "x$enable_motif" = xyes; then
971         GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
972         AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
973         if test "x$MOTIF_CONFIG" != xno; then
974             MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
975             MOTIF_LIBS=`$MOTIF_CONFIG --libs`
976         else
977             AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
978                 [AC_MSG_ERROR([Can't locate Motif headers])])
979             AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
980                 [AC_MSG_ERROR([Can't locate Motif Xm library])])
981         fi
982         # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
983         GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
984         GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
985         GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
986     fi
987
988     # If static, empty GLW_LIB_DEPS and add libs for programs to link
989     GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
990     if test "$enable_static" = no; then
991         GLW_MESA_DEPS='-l$(GL_LIB)'
992         GLW_LIB_DEPS="$GLW_LIB_DEPS"
993     else
994         APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
995         GLW_LIB_DEPS=""
996         GLW_MESA_DEPS=""
997     fi
998 fi
999 AC_SUBST([GLW_LIB_DEPS])
1000 AC_SUBST([GLW_MESA_DEPS])
1001 AC_SUBST([GLW_SOURCES])
1002 AC_SUBST([MOTIF_CFLAGS])
1003 AC_SUBST([GLW_PC_REQ_PRIV])
1004 AC_SUBST([GLW_PC_LIB_PRIV])
1005 AC_SUBST([GLW_PC_CFLAGS])
1006
1007 dnl
1008 dnl GLUT configuration
1009 dnl
1010 if test -f "$srcdir/include/GL/glut.h"; then
1011     default_glut=yes
1012 else
1013     default_glut=no
1014 fi
1015 AC_ARG_ENABLE([glut],
1016     [AS_HELP_STRING([--disable-glut],
1017         [enable GLUT library @<:@default=enabled if source available@:>@])],
1018     [enable_glut="$enableval"],
1019     [enable_glut="$default_glut"])
1020
1021 dnl Can't build glut if GLU not available
1022 if test "x$enable_glu$enable_glut" = xnoyes; then
1023     AC_MSG_WARN([Disabling glut since GLU is disabled])
1024     enable_glut=no
1025 fi
1026 dnl Don't build glut on osmesa
1027 if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1028     AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1029     enable_glut=no
1030 fi
1031
1032 if test "x$enable_glut" = xyes; then
1033     SRC_DIRS="$SRC_DIRS glut/glx"
1034     GLUT_CFLAGS=""
1035     if test "x$GCC" = xyes; then
1036         GLUT_CFLAGS="-fexceptions"
1037     fi
1038     if test "$x11_pkgconfig" = yes; then
1039         PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1040         GLUT_PC_REQ_PRIV="x11 xmu xi"
1041         GLUT_LIB_DEPS="$GLUT_LIBS"
1042     else
1043         # should check these...
1044         GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1045         GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1046         GLUT_PC_CFLAGS="$X11_INCLUDES"
1047     fi
1048     GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1049     GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
1050
1051     # If glut is available, we can build most programs
1052     if test "$with_demos" = yes; then
1053         PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
1054     fi
1055
1056     # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1057     if test "$enable_static" = no; then
1058         GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1059     else
1060         APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1061         GLUT_LIB_DEPS=""
1062         GLUT_MESA_DEPS=""
1063     fi
1064 fi
1065 AC_SUBST([GLUT_LIB_DEPS])
1066 AC_SUBST([GLUT_MESA_DEPS])
1067 AC_SUBST([GLUT_CFLAGS])
1068 AC_SUBST([GLUT_PC_REQ_PRIV])
1069 AC_SUBST([GLUT_PC_LIB_PRIV])
1070 AC_SUBST([GLUT_PC_CFLAGS])
1071
1072 dnl
1073 dnl Program library dependencies
1074 dnl    Only libm is added here if necessary as the libraries should
1075 dnl    be pulled in by the linker
1076 dnl
1077 if test "x$APP_LIB_DEPS" = x; then
1078     case "$host_os" in
1079     solaris*)
1080         APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1081         ;;
1082     *)
1083         APP_LIB_DEPS="-lm"
1084         ;;
1085     esac
1086 fi
1087 AC_SUBST([APP_LIB_DEPS])
1088 AC_SUBST([PROGRAM_DIRS])
1089
1090 dnl
1091 dnl Gallium configuration
1092 dnl
1093 AC_ARG_ENABLE([gallium],
1094     [AS_HELP_STRING([--disable-gallium],
1095         [build gallium @<:@default=enabled@:>@])],
1096     [enable_gallium="$enableval"],
1097     [enable_gallium=yes])
1098 if test "x$enable_gallium" = xyes; then
1099     SRC_DIRS="$SRC_DIRS gallium gallium/winsys"
1100 fi
1101
1102 dnl
1103 dnl Gallium state trackers configuration
1104 dnl
1105 AC_ARG_WITH([state-trackers],
1106     [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1107         [comma delimited state_trackers list, e.g.
1108         "egl,glx" @<:@default=auto@:>@])],
1109     [with_state_trackers="$withval"],
1110     [with_state_trackers=yes])
1111
1112 case "$with_state_trackers" in
1113 no)
1114     GALLIUM_STATE_TRACKERS_DIRS=""
1115     ;;
1116 yes)
1117     # look at what else is built
1118     case "$mesa_driver" in
1119     dri)
1120         GALLIUM_STATE_TRACKERS_DIRS=egl
1121         ;;
1122     esac
1123     ;;
1124 *)
1125     # verify the requested state tracker exist
1126     state_trackers=`IFS=', '; echo $with_state_trackers`
1127     for tracker in $state_trackers; do
1128         test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1129             AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1130     done
1131     GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1132     ;;
1133 esac
1134
1135 AC_ARG_WITH([xorg-driver-dir],
1136     [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1137                     [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1138     [XORG_DRIVER_INSTALL_DIR="$withval"],
1139     [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1140 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1141
1142 dnl
1143 dnl Gallium Intel configuration
1144 dnl
1145 AC_ARG_ENABLE([gallium-intel],
1146     [AS_HELP_STRING([--disable-gallium-intel],
1147         [build gallium intel @<:@default=enabled@:>@])],
1148     [enable_gallium_intel="$enableval"],
1149     [enable_gallium_intel=yes])
1150 if test "x$enable_gallium_intel" = xyes; then
1151     GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel"
1152     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915simple"
1153 fi
1154
1155 dnl
1156 dnl Gallium Radeon configuration
1157 dnl
1158 AC_ARG_ENABLE([gallium-radeon],
1159     [AS_HELP_STRING([--enable-gallium-radeon],
1160         [build gallium radeon @<:@default=disabled@:>@])],
1161     [enable_gallium_radeon="$enableval"],
1162     [enable_gallium_radeon=no])
1163 if test "x$enable_gallium_radeon" = xyes; then
1164     GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon"
1165     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1166 fi
1167
1168 dnl
1169 dnl Gallium Radeon configuration
1170 dnl
1171 AC_ARG_ENABLE([gallium-nouveau],
1172     [AS_HELP_STRING([--enable-gallium-nouveau],
1173         [build gallium nouveau @<:@default=disabled@:>@])],
1174     [enable_gallium_nouveau="$enableval"],
1175     [enable_gallium_nouveau=no])
1176 if test "x$enable_gallium_nouveau" = xyes; then
1177     GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau"
1178     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nv04 nv10 nv20 nv30 nv40 nv50"
1179 fi
1180
1181
1182 dnl Restore LDFLAGS and CPPFLAGS
1183 LDFLAGS="$_SAVE_LDFLAGS"
1184 CPPFLAGS="$_SAVE_CPPFLAGS"
1185
1186 dnl Substitute the config
1187 AC_CONFIG_FILES([configs/autoconf])
1188
1189 dnl Replace the configs/current symlink
1190 AC_CONFIG_COMMANDS([configs],[
1191 if test -f configs/current || test -L configs/current; then
1192     rm -f configs/current
1193 fi
1194 ln -s autoconf configs/current
1195 ])
1196
1197 AC_OUTPUT
1198
1199 dnl
1200 dnl Output some configuration info for the user
1201 dnl
1202 echo ""
1203 echo "        prefix:          $prefix"
1204 echo "        exec_prefix:     $exec_prefix"
1205 echo "        libdir:          $libdir"
1206 echo "        includedir:      $includedir"
1207
1208 dnl Driver info
1209 echo ""
1210 echo "        Driver:          $mesa_driver"
1211 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1212     echo "        OSMesa:          lib$OSMESA_LIB"
1213 else
1214     echo "        OSMesa:          no"
1215 fi
1216 if test "$mesa_driver" = dri; then
1217     # cleanup the drivers var
1218     dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
1219 if test "x$DRI_DIRS" = x; then
1220     echo "        DRI drivers:     no"
1221 else
1222     echo "        DRI drivers:     $dri_dirs"
1223 fi
1224     echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
1225 fi
1226 echo "        Use XCB:         $enable_xcb"
1227
1228 echo ""
1229 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1230     echo "        Gallium:         yes"
1231     echo "        Gallium dirs:    $GALLIUM_DIRS"
1232     echo "        Winsys dirs:     $GALLIUM_WINSYS_DIRS"
1233     echo "        Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS"
1234     echo "        Auxiliary dirs:  $GALLIUM_AUXILIARY_DIRS"
1235     echo "        Driver dirs:     $GALLIUM_DRIVERS_DIRS"
1236     echo "        Trackers dirs:   $GALLIUM_STATE_TRACKERS_DIRS"
1237 else
1238     echo "        Gallium:         no"
1239 fi
1240
1241 dnl Libraries
1242 echo ""
1243 echo "        Shared libs:     $enable_shared"
1244 echo "        Static libs:     $enable_static"
1245 echo "        GLU:             $enable_glu"
1246 echo "        GLw:             $enable_glw (Motif: $enable_motif)"
1247 echo "        glut:            $enable_glut"
1248
1249 dnl Programs
1250 # cleanup the programs var for display
1251 program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
1252 if test "x$program_dirs" = x; then
1253     echo "        Demos:           no"
1254 else
1255     echo "        Demos:           $program_dirs"
1256 fi
1257
1258 dnl Compiler options
1259 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1260 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1261     $SED 's/^ *//;s/  */ /;s/ *$//'`
1262 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1263     $SED 's/^ *//;s/  */ /;s/ *$//'`
1264 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/  */ /;s/ *$//'`
1265 echo ""
1266 echo "        CFLAGS:          $cflags"
1267 echo "        CXXFLAGS:        $cxxflags"
1268 echo "        Macros:          $defines"
1269
1270 echo ""
1271 echo "        Run '${MAKE-make}' to build Mesa"
1272 echo ""