Merge branch 'radeon-rewrite' of git+ssh://agd5f@git.freedesktop.org/git/mesa/mesa...
[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 ""