autoconf: Clean up some m4 usage
[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 egl 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"
830 else
831 OSMESA_LIB_DEPS=""
832 fi
833 OSMESA_MESA_DEPS=""
834 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_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 if test "$enable_static" = no; then
849 OSMESA_LIB_DEPS="$OSMESA_LIB_DEPS"
850 fi
851 OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV"
852 AC_SUBST([OSMESA_LIB_DEPS])
853 AC_SUBST([OSMESA_MESA_DEPS])
854 AC_SUBST([OSMESA_PC_REQ])
855 AC_SUBST([OSMESA_PC_LIB_PRIV])
856
857 dnl
858 dnl EGL configuration
859 dnl
860 if test "$x11_pkgconfig" = yes; then
861 PKG_CHECK_MODULES([EGL],[x11])
862 EGL_LIB_DEPS="$EGL_LIBS"
863 else
864 # should check these...
865 EGL_LIB_DEPS="$X_LIBS -lX11"
866 fi
867 EGL_LIB_DEPS="$EGL_LIB_DEPS $DLOPEN_LIBS"
868 AC_SUBST([EGL_LIB_DEPS])
869
870 dnl
871 dnl GLU configuration
872 dnl
873 AC_ARG_ENABLE([glu],
874 [AS_HELP_STRING([--disable-glu],
875 [enable OpenGL Utility library @<:@default=enabled@:>@])],
876 [enable_glu="$enableval"],
877 [enable_glu=yes])
878 if test "x$enable_glu" = xyes; then
879 SRC_DIRS="$SRC_DIRS glu"
880
881 case "$mesa_driver" in
882 osmesa)
883 # If GLU is available and we have libOSMesa (not 16 or 32),
884 # we can build the osdemos
885 if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
886 PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
887 fi
888
889 # Link libGLU to libOSMesa instead of libGL
890 GLU_LIB_DEPS=""
891 GLU_PC_REQ="osmesa"
892 if test "$enable_static" = no; then
893 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
894 else
895 GLU_MESA_DEPS=""
896 fi
897 ;;
898 *)
899 # If static, empty GLU_LIB_DEPS and add libs for programs to link
900 GLU_PC_REQ="gl"
901 GLU_PC_LIB_PRIV="-lm"
902 if test "$enable_static" = no; then
903 GLU_LIB_DEPS="-lm"
904 GLU_MESA_DEPS='-l$(GL_LIB)'
905 else
906 GLU_LIB_DEPS=""
907 GLU_MESA_DEPS=""
908 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
909 fi
910 ;;
911 esac
912 fi
913 if test "$enable_static" = no; then
914 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
915 fi
916 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
917 AC_SUBST([GLU_LIB_DEPS])
918 AC_SUBST([GLU_MESA_DEPS])
919 AC_SUBST([GLU_PC_REQ])
920 AC_SUBST([GLU_PC_REQ_PRIV])
921 AC_SUBST([GLU_PC_LIB_PRIV])
922 AC_SUBST([GLU_PC_CFLAGS])
923
924 dnl
925 dnl GLw configuration
926 dnl
927 AC_ARG_ENABLE([glw],
928 [AS_HELP_STRING([--disable-glw],
929 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
930 [enable_glw="$enableval"],
931 [enable_glw=yes])
932 dnl Don't build GLw on osmesa
933 if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
934 AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
935 enable_glw=no
936 fi
937 AC_ARG_ENABLE([motif],
938 [AS_HELP_STRING([--enable-motif],
939 [use Motif widgets in GLw @<:@default=disabled@:>@])],
940 [enable_motif="$enableval"],
941 [enable_motif=no])
942
943 if test "x$enable_glw" = xyes; then
944 SRC_DIRS="$SRC_DIRS glw"
945 if test "$x11_pkgconfig" = yes; then
946 PKG_CHECK_MODULES([GLW],[x11 xt])
947 GLW_PC_REQ_PRIV="x11 xt"
948 GLW_LIB_DEPS="$GLW_LIBS"
949 else
950 # should check these...
951 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
952 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
953 GLW_PC_CFLAGS="$X11_INCLUDES"
954 fi
955
956 GLW_SOURCES="GLwDrawA.c"
957 MOTIF_CFLAGS=
958 if test "x$enable_motif" = xyes; then
959 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
960 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
961 if test "x$MOTIF_CONFIG" != xno; then
962 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
963 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
964 else
965 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
966 [AC_MSG_ERROR([Can't locate Motif headers])])
967 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
968 [AC_MSG_ERROR([Can't locate Motif Xm library])])
969 fi
970 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
971 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
972 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
973 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
974 fi
975
976 # If static, empty GLW_LIB_DEPS and add libs for programs to link
977 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
978 if test "$enable_static" = no; then
979 GLW_MESA_DEPS='-l$(GL_LIB)'
980 GLW_LIB_DEPS="$GLW_LIB_DEPS"
981 else
982 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
983 GLW_LIB_DEPS=""
984 GLW_MESA_DEPS=""
985 fi
986 fi
987 AC_SUBST([GLW_LIB_DEPS])
988 AC_SUBST([GLW_MESA_DEPS])
989 AC_SUBST([GLW_SOURCES])
990 AC_SUBST([MOTIF_CFLAGS])
991 AC_SUBST([GLW_PC_REQ_PRIV])
992 AC_SUBST([GLW_PC_LIB_PRIV])
993 AC_SUBST([GLW_PC_CFLAGS])
994
995 dnl
996 dnl GLUT configuration
997 dnl
998 if test -f "$srcdir/include/GL/glut.h"; then
999 default_glut=yes
1000 else
1001 default_glut=no
1002 fi
1003 AC_ARG_ENABLE([glut],
1004 [AS_HELP_STRING([--disable-glut],
1005 [enable GLUT library @<:@default=enabled if source available@:>@])],
1006 [enable_glut="$enableval"],
1007 [enable_glut="$default_glut"])
1008
1009 dnl Can't build glut if GLU not available
1010 if test "x$enable_glu$enable_glut" = xnoyes; then
1011 AC_MSG_WARN([Disabling glut since GLU is disabled])
1012 enable_glut=no
1013 fi
1014 dnl Don't build glut on osmesa
1015 if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1016 AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1017 enable_glut=no
1018 fi
1019
1020 if test "x$enable_glut" = xyes; then
1021 SRC_DIRS="$SRC_DIRS glut/glx"
1022 GLUT_CFLAGS=""
1023 if test "x$GCC" = xyes; then
1024 GLUT_CFLAGS="-fexceptions"
1025 fi
1026 if test "$x11_pkgconfig" = yes; then
1027 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1028 GLUT_PC_REQ_PRIV="x11 xmu xi"
1029 GLUT_LIB_DEPS="$GLUT_LIBS"
1030 else
1031 # should check these...
1032 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1033 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1034 GLUT_PC_CFLAGS="$X11_INCLUDES"
1035 fi
1036 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1037 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
1038
1039 # If glut is available, we can build most programs
1040 if test "$with_demos" = yes; then
1041 PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
1042 fi
1043
1044 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1045 if test "$enable_static" = no; then
1046 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1047 else
1048 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1049 GLUT_LIB_DEPS=""
1050 GLUT_MESA_DEPS=""
1051 fi
1052 fi
1053 AC_SUBST([GLUT_LIB_DEPS])
1054 AC_SUBST([GLUT_MESA_DEPS])
1055 AC_SUBST([GLUT_CFLAGS])
1056 AC_SUBST([GLUT_PC_REQ_PRIV])
1057 AC_SUBST([GLUT_PC_LIB_PRIV])
1058 AC_SUBST([GLUT_PC_CFLAGS])
1059
1060 dnl
1061 dnl Program library dependencies
1062 dnl Only libm is added here if necessary as the libraries should
1063 dnl be pulled in by the linker
1064 dnl
1065 if test "x$APP_LIB_DEPS" = x; then
1066 case "$host_os" in
1067 solaris*)
1068 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1069 ;;
1070 *)
1071 APP_LIB_DEPS="-lm"
1072 ;;
1073 esac
1074 fi
1075 AC_SUBST([APP_LIB_DEPS])
1076 AC_SUBST([PROGRAM_DIRS])
1077
1078 dnl
1079 dnl Gallium configuration
1080 dnl
1081 AC_ARG_ENABLE([gallium],
1082 [AS_HELP_STRING([--disable-gallium],
1083 [build gallium @<:@default=enabled@:>@])],
1084 [enable_gallium="$enableval"],
1085 [enable_gallium=yes])
1086 if test "x$enable_gallium" = xyes; then
1087 SRC_DIRS="$SRC_DIRS gallium gallium/winsys"
1088 fi
1089
1090 dnl
1091 dnl Gallium state trackers configuration
1092 dnl
1093 AC_ARG_WITH([state-trackers],
1094 [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1095 [comma delimited state_trackers list, e.g.
1096 "egl,glx" @<:@default=auto@:>@])],
1097 [with_state_trackers="$withval"],
1098 [with_state_trackers=yes])
1099
1100 case "$with_state_trackers" in
1101 no)
1102 GALLIUM_STATE_TRACKERS_DIRS=""
1103 ;;
1104 yes)
1105 # look at what else is built
1106 case "$mesa_driver" in
1107 xlib)
1108 GALLIUM_STATE_TRACKERS_DIRS=glx
1109 ;;
1110 dri)
1111 GALLIUM_STATE_TRACKERS_DIRS=egl
1112 ;;
1113 esac
1114 ;;
1115 *)
1116 # verify the requested state tracker exist
1117 state_trackers=`IFS=', '; echo $with_state_trackers`
1118 for tracker in $state_trackers; do
1119 test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1120 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1121 done
1122 GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1123 ;;
1124 esac
1125
1126 AC_ARG_WITH([xorg-driver-dir],
1127 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1128 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1129 [XORG_DRIVER_INSTALL_DIR="$withval"],
1130 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1131 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1132
1133 dnl
1134 dnl Gallium Intel configuration
1135 dnl
1136 AC_ARG_ENABLE([gallium-intel],
1137 [AS_HELP_STRING([--disable-gallium-intel],
1138 [build gallium intel @<:@default=enabled@:>@])],
1139 [enable_gallium_intel="$enableval"],
1140 [enable_gallium_intel=yes])
1141 if test "x$enable_gallium_intel" = xyes; then
1142 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel"
1143 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915simple"
1144 fi
1145
1146 dnl
1147 dnl Gallium Radeon configuration
1148 dnl
1149 AC_ARG_ENABLE([gallium-radeon],
1150 [AS_HELP_STRING([--enable-gallium-radeon],
1151 [build gallium radeon @<:@default=disabled@:>@])],
1152 [enable_gallium_radeon="$enableval"],
1153 [enable_gallium_radeon=no])
1154 if test "x$enable_gallium_radeon" = xyes; then
1155 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon"
1156 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1157 fi
1158
1159 dnl
1160 dnl Gallium Radeon configuration
1161 dnl
1162 AC_ARG_ENABLE([gallium-nouveau],
1163 [AS_HELP_STRING([--enable-gallium-nouveau],
1164 [build gallium nouveau @<:@default=disabled@:>@])],
1165 [enable_gallium_nouveau="$enableval"],
1166 [enable_gallium_nouveau=no])
1167 if test "x$enable_gallium_nouveau" = xyes; then
1168 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau"
1169 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nv04 nv10 nv20 nv30 nv40 nv50"
1170 fi
1171
1172
1173 dnl Restore LDFLAGS and CPPFLAGS
1174 LDFLAGS="$_SAVE_LDFLAGS"
1175 CPPFLAGS="$_SAVE_CPPFLAGS"
1176
1177 dnl Substitute the config
1178 AC_CONFIG_FILES([configs/autoconf])
1179
1180 dnl Replace the configs/current symlink
1181 AC_CONFIG_COMMANDS([configs],[
1182 if test -f configs/current || test -L configs/current; then
1183 rm -f configs/current
1184 fi
1185 ln -s autoconf configs/current
1186 ])
1187
1188 AC_OUTPUT
1189
1190 dnl
1191 dnl Output some configuration info for the user
1192 dnl
1193 echo ""
1194 echo " prefix: $prefix"
1195 echo " exec_prefix: $exec_prefix"
1196 echo " libdir: $libdir"
1197 echo " includedir: $includedir"
1198
1199 dnl Driver info
1200 echo ""
1201 echo " Driver: $mesa_driver"
1202 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1203 echo " OSMesa: lib$OSMESA_LIB"
1204 else
1205 echo " OSMesa: no"
1206 fi
1207 if test "$mesa_driver" = dri; then
1208 # cleanup the drivers var
1209 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1210 if test "x$DRI_DIRS" = x; then
1211 echo " DRI drivers: no"
1212 else
1213 echo " DRI drivers: $dri_dirs"
1214 fi
1215 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1216 fi
1217 echo " Use XCB: $enable_xcb"
1218
1219 echo ""
1220 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1221 echo " Gallium: yes"
1222 echo " Gallium dirs: $GALLIUM_DIRS"
1223 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
1224 echo " Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS"
1225 echo " Auxiliary dirs: $GALLIUM_AUXILIARY_DIRS"
1226 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
1227 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1228 else
1229 echo " Gallium: no"
1230 fi
1231
1232 dnl Libraries
1233 echo ""
1234 echo " Shared libs: $enable_shared"
1235 echo " Static libs: $enable_static"
1236 echo " GLU: $enable_glu"
1237 echo " GLw: $enable_glw (Motif: $enable_motif)"
1238 echo " glut: $enable_glut"
1239
1240 dnl Programs
1241 # cleanup the programs var for display
1242 program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1243 if test "x$program_dirs" = x; then
1244 echo " Demos: no"
1245 else
1246 echo " Demos: $program_dirs"
1247 fi
1248
1249 dnl Compiler options
1250 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1251 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1252 $SED 's/^ *//;s/ */ /;s/ *$//'`
1253 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1254 $SED 's/^ *//;s/ */ /;s/ *$//'`
1255 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1256 echo ""
1257 echo " CFLAGS: $cflags"
1258 echo " CXXFLAGS: $cxxflags"
1259 echo " Macros: $defines"
1260
1261 echo ""
1262 echo " Run '${MAKE-make}' to build Mesa"
1263 echo ""