1 dnl Process this file with autoconf to create configure.
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`])])
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.])
15 AC_INIT([Mesa],[mesa_version],
16 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17 AC_CONFIG_AUX_DIR([bin])
20 dnl Versions for external dependencies
21 LIBDRM_REQUIRED=2.4.15
22 LIBDRM_RADEON_REQUIRED=2.4.17
23 DRI2PROTO_REQUIRED=2.1
24 GLPROTO_REQUIRED=1.4.11
30 AC_CHECK_PROGS([MAKE], [gmake make])
31 AC_PATH_PROG([MKDEP], [makedepend])
32 AC_PATH_PROG([SED], [sed])
34 dnl Our fallback install-sh is a symlink to minstall. Use the existing
35 dnl configuration in that case.
37 test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
39 dnl We need a POSIX shell for parts of the build. Assume we have one
43 # Solaris /bin/sh is too old/non-POSIX compliant
44 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
49 dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
50 dnl versions are explictly not supported.
51 if test "x$GCC" = xyes; then
52 AC_MSG_CHECKING([whether gcc version is sufficient])
56 GCC_VERSION=`$CC -dumpversion`
57 if test $? -eq 0; then
58 major=`echo $GCC_VERSION | cut -d. -f1`
59 minor=`echo $GCC_VERSION | cut -d. -f1`
62 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
64 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
71 MKDEP_OPTIONS=-fdepend
72 dnl Ask gcc where it's keeping its secret headers
73 if test "x$GCC" = xyes; then
74 for dir in include include-fixed; do
75 GCC_INCLUDES=`$CC -print-file-name=$dir`
76 if test "x$GCC_INCLUDES" != x && \
77 test "$GCC_INCLUDES" != "$dir" && \
78 test -d "$GCC_INCLUDES"; then
79 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
83 AC_SUBST([MKDEP_OPTIONS])
85 dnl Make sure the pkg-config macros are defined
86 m4_ifndef([PKG_PROG_PKG_CONFIG],
87 [m4_fatal([Could not locate the pkg-config autoconf macros.
88 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
89 are in a different location, try setting the environment variable
90 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
93 dnl LIB_DIR - library basename
94 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
97 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
98 _SAVE_LDFLAGS="$LDFLAGS"
99 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
100 AC_SUBST([EXTRA_LIB_PATH])
102 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
103 _SAVE_CPPFLAGS="$CPPFLAGS"
104 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
105 AC_SUBST([X11_INCLUDES])
112 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
115 DEFINES="$DEFINES -DPTHREADS -DSVR4"
118 DEFINES="$DEFINES -DPTHREADS"
122 dnl Add flags for gcc and g++
123 if test "x$GCC" = xyes; then
124 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99 -ffast-math"
126 # Enable -fvisibility=hidden if using a gcc that supports it
127 save_CFLAGS="$CFLAGS"
128 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
129 CFLAGS="$CFLAGS -fvisibility=hidden"
130 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
131 [CFLAGS="$save_CFLAGS" ; AC_MSG_RESULT([no])]);
133 # Work around aliasing bugs - developers should comment this out
134 CFLAGS="$CFLAGS -fno-strict-aliasing"
136 if test "x$GXX" = xyes; then
137 CXXFLAGS="$CXXFLAGS -Wall"
139 # Work around aliasing bugs - developers should comment this out
140 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
143 dnl These should be unnecessary, but let the user set them if they want
144 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
145 Default is to use CFLAGS.])
146 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
147 compiler. Default is to use CFLAGS.])
148 AC_SUBST([OPT_FLAGS])
149 AC_SUBST([ARCH_FLAGS])
152 dnl Hacks to enable 32 or 64 bit build
154 AC_ARG_ENABLE([32-bit],
155 [AS_HELP_STRING([--enable-32-bit],
156 [build 32-bit libraries @<:@default=auto@:>@])],
157 [enable_32bit="$enableval"],
160 if test "x$enable_32bit" = xyes; then
161 if test "x$GCC" = xyes; then
162 CFLAGS="$CFLAGS -m32"
163 ARCH_FLAGS="$ARCH_FLAGS -m32"
165 if test "x$GXX" = xyes; then
166 CXXFLAGS="$CXXFLAGS -m32"
169 AC_ARG_ENABLE([64-bit],
170 [AS_HELP_STRING([--enable-64-bit],
171 [build 64-bit libraries @<:@default=auto@:>@])],
172 [enable_64bit="$enableval"],
175 if test "x$enable_64bit" = xyes; then
176 if test "x$GCC" = xyes; then
177 CFLAGS="$CFLAGS -m64"
179 if test "x$GXX" = xyes; then
180 CXXFLAGS="$CXXFLAGS -m64"
185 dnl shared/static libraries, mimic libtool options
187 AC_ARG_ENABLE([static],
188 [AS_HELP_STRING([--enable-static],
189 [build static libraries @<:@default=disabled@:>@])],
190 [enable_static="$enableval"],
193 case "x$enable_static" in
195 x ) enable_static=no ;;
197 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
200 AC_ARG_ENABLE([shared],
201 [AS_HELP_STRING([--disable-shared],
202 [build shared libraries @<:@default=enabled@:>@])],
203 [enable_shared="$enableval"],
206 case "x$enable_shared" in
208 x ) enable_shared=yes ;;
210 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
214 dnl Can't have static and shared libraries, default to static if user
215 dnl explicitly requested. If both disabled, set to static since shared
216 dnl was explicitly requirested.
217 case "x$enable_static$enable_shared" in
219 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
223 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
231 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
232 if test "$enable_static" = yes; then
233 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
235 AC_SUBST([MKLIB_OPTIONS])
238 dnl other compiler options
240 AC_ARG_ENABLE([debug],
241 [AS_HELP_STRING([--enable-debug],
242 [use debug compiler flags and macros @<:@default=disabled@:>@])],
243 [enable_debug="$enableval"],
246 if test "x$enable_debug" = xyes; then
247 DEFINES="$DEFINES -DDEBUG"
248 if test "x$GCC" = xyes; then
251 if test "x$GXX" = xyes; then
252 CXXFLAGS="$CXXFLAGS -g"
259 if test "$enable_static" = yes; then
264 LIB_EXTENSION='dylib' ;;
266 LIB_EXTENSION='dll' ;;
270 LIB_EXTENSION='so' ;;
274 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
275 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
276 GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
277 GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
278 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
279 EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
281 GL_LIB_GLOB='lib$(GL_LIB).*'${LIB_EXTENSION}'*'
282 GLU_LIB_GLOB='lib$(GLU_LIB).*'${LIB_EXTENSION}'*'
283 GLUT_LIB_GLOB='lib$(GLUT_LIB).*'${LIB_EXTENSION}'*'
284 GLW_LIB_GLOB='lib$(GLW_LIB).*'${LIB_EXTENSION}'*'
285 OSMESA_LIB_GLOB='lib$(OSMESA_LIB).*'${LIB_EXTENSION}'*'
286 EGL_LIB_GLOB='lib$(EGL_LIB).*'${LIB_EXTENSION}'*'
288 AC_SUBST([GL_LIB_NAME])
289 AC_SUBST([GLU_LIB_NAME])
290 AC_SUBST([GLUT_LIB_NAME])
291 AC_SUBST([GLW_LIB_NAME])
292 AC_SUBST([OSMESA_LIB_NAME])
293 AC_SUBST([EGL_LIB_NAME])
295 AC_SUBST([GL_LIB_GLOB])
296 AC_SUBST([GLU_LIB_GLOB])
297 AC_SUBST([GLUT_LIB_GLOB])
298 AC_SUBST([GLW_LIB_GLOB])
299 AC_SUBST([OSMESA_LIB_GLOB])
300 AC_SUBST([EGL_LIB_GLOB])
303 dnl Arch/platform-specific settings
306 [AS_HELP_STRING([--disable-asm],
307 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
308 [enable_asm="$enableval"],
315 AC_MSG_CHECKING([whether to enable assembly])
316 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
317 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
318 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
322 AC_MSG_RESULT([no, cross compiling])
326 # check for supported arches
327 if test "x$enable_asm" = xyes; then
331 linux* | *freebsd* | dragonfly*)
332 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
338 linux* | *freebsd* | dragonfly*)
339 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
361 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
362 MESA_ASM_SOURCES='$(X86_SOURCES)'
363 GLAPI_ASM_SOURCES='$(X86_API)'
364 AC_MSG_RESULT([yes, x86])
367 ASM_FLAGS="-DUSE_X86_64_ASM"
368 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
369 GLAPI_ASM_SOURCES='$(X86-64_API)'
370 AC_MSG_RESULT([yes, x86_64])
373 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
374 MESA_ASM_SOURCES='$(PPC_SOURCES)'
375 AC_MSG_RESULT([yes, ppc])
378 ASM_FLAGS="-DUSE_SPARC_ASM"
379 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
380 GLAPI_ASM_SOURCES='$(SPARC_API)'
381 AC_MSG_RESULT([yes, sparc])
384 AC_MSG_RESULT([no, platform not supported])
388 AC_SUBST([ASM_FLAGS])
389 AC_SUBST([MESA_ASM_SOURCES])
390 AC_SUBST([GLAPI_ASM_SOURCES])
395 dnl Check to see if dlopen is in default libraries (like Solaris, which
396 dnl has it in libc), or if libdl is needed to get it.
397 AC_CHECK_FUNC([dlopen], [],
398 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
400 dnl See if posix_memalign is available
401 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
403 dnl SELinux awareness.
404 AC_ARG_ENABLE([selinux],
405 [AS_HELP_STRING([--enable-selinux],
406 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
407 [MESA_SELINUX="$enableval"],
409 if test "x$enable_selinux" = "xyes"; then
410 AC_CHECK_HEADER([selinux/selinux.h],[],
411 [AC_MSG_ERROR([SELinux headers not found])])
412 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
413 [AC_MSG_ERROR([SELinux library not found])])
414 SELINUX_LIBS="-lselinux"
415 DEFINES="$DEFINES -DMESA_SELINUX"
419 dnl Driver configuration. Options are xlib, dri and osmesa right now.
420 dnl More later: fbdev, ...
422 default_driver="xlib"
427 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
430 *freebsd* | dragonfly*)
432 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
437 AC_ARG_WITH([driver],
438 [AS_HELP_STRING([--with-driver=DRIVER],
439 [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
440 [mesa_driver="$withval"],
441 [mesa_driver="$default_driver"])
442 dnl Check for valid option
443 case "x$mesa_driver" in
447 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
452 dnl Driver specific build directories
455 dnl this variable will be prepended to SRC_DIRS and is not exported
456 CORE_DIRS="glsl mesa"
461 GALLIUM_DIRS="auxiliary drivers state_trackers"
462 GALLIUM_WINSYS_DIRS=""
463 GALLIUM_WINSYS_DRM_DIRS=""
464 GALLIUM_DRIVERS_DIRS="softpipe failover trace identity"
465 GALLIUM_STATE_TRACKERS_DIRS=""
467 case "$mesa_driver" in
470 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS xlib"
473 SRC_DIRS="$SRC_DIRS glx"
476 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS drm"
484 AC_SUBST([DRIVER_DIRS])
485 AC_SUBST([WINDOW_SYSTEM])
486 AC_SUBST([GALLIUM_DIRS])
487 AC_SUBST([GALLIUM_WINSYS_DIRS])
488 AC_SUBST([GALLIUM_WINSYS_DRM_DIRS])
489 AC_SUBST([GALLIUM_DRIVERS_DIRS])
490 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
493 dnl User supplied program configuration
495 if test -d "$srcdir/progs/demos"; then
501 [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
502 [optional comma delimited demo directories to build
503 @<:@default=auto if source available@:>@])],
504 [with_demos="$withval"],
505 [with_demos="$default_demos"])
506 if test "x$with_demos" = x; then
510 dnl If $with_demos is yes, directories will be added as libs available
512 case "$with_demos" in
515 # If the driver isn't osmesa, we have libGL and can build xdemos
516 if test "$mesa_driver" != osmesa; then
517 PROGRAM_DIRS="xdemos"
521 # verify the requested demos directories exist
522 demos=`IFS=,; echo $with_demos`
523 for demo in $demos; do
524 test -d "$srcdir/progs/$demo" || \
525 AC_MSG_ERROR([Program directory '$demo' doesn't exist])
527 PROGRAM_DIRS="$demos"
532 dnl Find out if X is available. The variable have_x is set if libX11 is
533 dnl found to mimic AC_PATH_XTRA.
535 if test -n "$PKG_CONFIG"; then
536 AC_MSG_CHECKING([pkg-config files for X11 are available])
537 PKG_CHECK_EXISTS([x11],[
543 AC_MSG_RESULT([$x11_pkgconfig])
547 dnl Use the autoconf macro if no pkg-config files
548 if test "$x11_pkgconfig" = no; then
552 dnl Try to tell the user that the --x-* options are only used when
553 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
554 m4_divert_once([HELP_BEGIN],
555 [These options are only used when the X libraries cannot be found by the
556 pkg-config utility.])
558 dnl We need X for xlib and dri, so bomb now if it's not found
559 case "$mesa_driver" in
561 if test "$no_x" = yes; then
562 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
567 dnl XCB - this is only used for GLX right now
569 [AS_HELP_STRING([--enable-xcb],
570 [use XCB for GLX @<:@default=disabled@:>@])],
571 [enable_xcb="$enableval"],
573 if test "x$enable_xcb" = xyes; then
574 DEFINES="$DEFINES -DUSE_XCB"
580 dnl libGL configuration per driver
582 case "$mesa_driver" in
584 if test "$x11_pkgconfig" = yes; then
585 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
586 GL_PC_REQ_PRIV="x11 xext"
587 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
588 GL_LIB_DEPS="$XLIBGL_LIBS"
590 # should check these...
591 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
592 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
593 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
594 GL_PC_CFLAGS="$X11_INCLUDES"
596 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
597 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
599 # if static, move the external libraries to the programs
600 # and empty the libraries for libGL
601 if test "$enable_static" = yes; then
602 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
607 # DRI must be shared, I think
608 if test "$enable_static" = yes; then
609 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
613 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
614 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
615 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
616 GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED glproto >= $GLPROTO_REQUIRED"
617 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
619 # find the DRI deps for libGL
620 if test "$x11_pkgconfig" = yes; then
621 # add xcb modules if necessary
622 dri_modules="x11 xext xxf86vm xdamage xfixes"
623 if test "$enable_xcb" = yes; then
624 dri_modules="$dri_modules x11-xcb xcb-glx"
627 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
628 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
629 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
630 GL_LIB_DEPS="$DRIGL_LIBS"
632 # should check these...
633 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
634 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
635 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
636 GL_PC_CFLAGS="$X11_INCLUDES"
638 # XCB can only be used from pkg-config
639 if test "$enable_xcb" = yes; then
640 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
641 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
642 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
643 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
647 # need DRM libs, -lpthread, etc.
648 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
649 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
652 # No libGL for osmesa
656 AC_SUBST([GL_LIB_DEPS])
657 AC_SUBST([GL_PC_REQ_PRIV])
658 AC_SUBST([GL_PC_LIB_PRIV])
659 AC_SUBST([GL_PC_CFLAGS])
660 AC_SUBST([DRI_PC_REQ_PRIV])
665 if test "$mesa_driver" = xlib; then
666 DEFINES="$DEFINES -DUSE_XSHM"
672 AC_ARG_ENABLE([glx-tls],
673 [AS_HELP_STRING([--enable-glx-tls],
674 [enable TLS support in GLX @<:@default=disabled@:>@])],
675 [GLX_USE_TLS="$enableval"],
677 dnl Directory for DRI drivers
678 AC_ARG_WITH([dri-driverdir],
679 [AS_HELP_STRING([--with-dri-driverdir=DIR],
680 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
681 [DRI_DRIVER_INSTALL_DIR="$withval"],
682 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
683 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
684 dnl Extra search path for DRI drivers
685 AC_ARG_WITH([dri-searchpath],
686 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
687 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
688 [DRI_DRIVER_SEARCH_DIR="$withval"],
689 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
690 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
691 dnl Direct rendering or just indirect rendering
692 AC_ARG_ENABLE([driglx-direct],
693 [AS_HELP_STRING([--disable-driglx-direct],
694 [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
695 [driglx_direct="$enableval"],
696 [driglx_direct="yes"])
697 dnl Which drivers to build - default is chosen by platform
698 AC_ARG_WITH([dri-drivers],
699 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
700 [comma delimited DRI drivers list, e.g.
701 "swrast,i965,radeon" @<:@default=auto@:>@])],
702 [with_dri_drivers="$withval"],
703 [with_dri_drivers=yes])
704 if test "x$with_dri_drivers" = x; then
708 dnl If $with_dri_drivers is yes, directories will be added through
711 case "$with_dri_drivers" in
717 # verify the requested driver directories exist
718 dri_drivers=`IFS=', '; echo $with_dri_drivers`
719 for driver in $dri_drivers; do
720 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
721 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
723 DRI_DIRS="$dri_drivers"
727 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
728 if test "$mesa_driver" = dri; then
730 if test "x$GLX_USE_TLS" = xyes; then
731 DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
734 # Platform specific settings and drivers to build
737 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
738 if test "x$driglx_direct" = xyes; then
739 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
741 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
745 # sis is missing because they have not be converted to use
746 # the new interface. i810 are missing because there is no
747 # x86-64 system where they could *ever* be used.
748 if test "x$DRI_DIRS" = "xyes"; then
749 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 r600 radeon \
750 savage tdfx unichrome swrast"
754 # Build only the drivers for cards that exist on PowerPC.
755 # At some point MGA will be added, but not yet.
756 if test "x$DRI_DIRS" = "xyes"; then
757 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
761 # Build only the drivers for cards that exist on sparc`
762 if test "x$DRI_DIRS" = "xyes"; then
763 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
768 freebsd* | dragonfly*)
769 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
770 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
771 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
772 if test "x$driglx_direct" = xyes; then
773 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
775 if test "x$GXX" = xyes; then
776 CXXFLAGS="$CXXFLAGS -ansi -pedantic"
779 if test "x$DRI_DIRS" = "xyes"; then
780 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
781 unichrome savage sis swrast"
785 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
786 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
789 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
790 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
791 if test "x$driglx_direct" = xyes; then
792 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
798 if test "x$DRI_DIRS" = "xyes"; then
799 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
800 savage sis tdfx unichrome swrast"
803 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
809 [AS_HELP_STRING([--with-expat=DIR],
810 [expat install directory])],[
811 EXPAT_INCLUDES="-I$withval/include"
812 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
813 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
814 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
816 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
817 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
818 [AC_MSG_ERROR([Expat required for DRI.])])
820 # put all the necessary libs together
821 DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
824 AC_SUBST([EXPAT_INCLUDES])
825 AC_SUBST([DRI_LIB_DEPS])
829 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= 2.4.19])
834 *radeon*|*r200*|*r300*|*r600*)
835 PKG_CHECK_MODULES([LIBDRM_RADEON],
836 [libdrm_radeon libdrm >= $LIBDRM_RADEON_REQUIRED],
837 HAVE_LIBDRM_RADEON=yes,
838 HAVE_LIBDRM_RADEON=no)
840 if test "$HAVE_LIBDRM_RADEON" = yes; then
841 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
842 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
846 AC_SUBST([RADEON_CFLAGS])
847 AC_SUBST([RADEON_LDFLAGS])
851 dnl OSMesa configuration
853 if test "$mesa_driver" = xlib; then
854 default_gl_osmesa=yes
858 AC_ARG_ENABLE([gl-osmesa],
859 [AS_HELP_STRING([--enable-gl-osmesa],
860 [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
861 [gl_osmesa="$enableval"],
862 [gl_osmesa="$default_gl_osmesa"])
863 if test "x$gl_osmesa" = xyes; then
864 if test "$mesa_driver" = osmesa; then
865 AC_MSG_ERROR([libGL is not available for OSMesa driver])
867 DRIVER_DIRS="$DRIVER_DIRS osmesa"
871 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
872 AC_ARG_WITH([osmesa-bits],
873 [AS_HELP_STRING([--with-osmesa-bits=BITS],
874 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
875 [osmesa_bits="$withval"],
877 if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
878 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
881 case "x$osmesa_bits" in
886 OSMESA_LIB="OSMesa$osmesa_bits"
887 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
890 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
893 AC_SUBST([OSMESA_LIB])
895 case "$mesa_driver" in
897 # only link libraries with osmesa if shared
898 if test "$enable_static" = no; then
899 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
904 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
907 # Link OSMesa to libGL otherwise
909 # only link libraries with osmesa if shared
910 if test "$enable_static" = no; then
911 OSMESA_MESA_DEPS='-l$(GL_LIB)'
918 OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV"
919 AC_SUBST([OSMESA_LIB_DEPS])
920 AC_SUBST([OSMESA_MESA_DEPS])
921 AC_SUBST([OSMESA_PC_REQ])
922 AC_SUBST([OSMESA_PC_LIB_PRIV])
925 dnl EGL configuration
928 [AS_HELP_STRING([--disable-egl],
929 [disable EGL library @<:@default=enabled@:>@])],
930 [enable_egl="$enableval"],
932 if test "x$enable_egl" = xyes; then
933 SRC_DIRS="$SRC_DIRS egl"
934 EGL_LIB_DEPS="$DLOPEN_LIBS -lpthread"
936 if test "$enable_static" != yes; then
937 # build egl_glx when libGL is built
938 if test "$mesa_driver" != osmesa; then
939 EGL_DRIVERS_DIRS="glx"
942 # build egl_dri2 when xcb-dri2 is available
943 PKG_CHECK_MODULES([EGL_DRI2], [x11-xcb xcb-dri2 xcb-xfixes libdrm],
944 [have_xcb_dri2=yes],[have_xcb_dri2=no])
945 if test "$have_xcb_dri2" = yes; then
946 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS dri2"
950 if test "$with_demos" = yes; then
951 PROGRAM_DIRS="$PROGRAM_DIRS egl"
954 AC_SUBST([EGL_LIB_DEPS])
955 AC_SUBST([EGL_DRIVERS_DIRS])
958 dnl GLU configuration
961 [AS_HELP_STRING([--disable-glu],
962 [enable OpenGL Utility library @<:@default=enabled@:>@])],
963 [enable_glu="$enableval"],
965 if test "x$enable_glu" = xyes; then
966 SRC_DIRS="$SRC_DIRS glu"
968 case "$mesa_driver" in
970 # If GLU is available and we have libOSMesa (not 16 or 32),
971 # we can build the osdemos
972 if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
973 PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
976 # Link libGLU to libOSMesa instead of libGL
979 if test "$enable_static" = no; then
980 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
986 # If static, empty GLU_LIB_DEPS and add libs for programs to link
988 GLU_PC_LIB_PRIV="-lm"
989 if test "$enable_static" = no; then
991 GLU_MESA_DEPS='-l$(GL_LIB)'
995 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1000 if test "$enable_static" = no; then
1001 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1003 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1004 AC_SUBST([GLU_LIB_DEPS])
1005 AC_SUBST([GLU_MESA_DEPS])
1006 AC_SUBST([GLU_PC_REQ])
1007 AC_SUBST([GLU_PC_REQ_PRIV])
1008 AC_SUBST([GLU_PC_LIB_PRIV])
1009 AC_SUBST([GLU_PC_CFLAGS])
1012 dnl GLw configuration
1014 AC_ARG_ENABLE([glw],
1015 [AS_HELP_STRING([--disable-glw],
1016 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
1017 [enable_glw="$enableval"],
1019 dnl Don't build GLw on osmesa
1020 if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
1021 AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
1024 AC_ARG_ENABLE([motif],
1025 [AS_HELP_STRING([--enable-motif],
1026 [use Motif widgets in GLw @<:@default=disabled@:>@])],
1027 [enable_motif="$enableval"],
1030 if test "x$enable_glw" = xyes; then
1031 SRC_DIRS="$SRC_DIRS glw"
1032 if test "$x11_pkgconfig" = yes; then
1033 PKG_CHECK_MODULES([GLW],[x11 xt])
1034 GLW_PC_REQ_PRIV="x11 xt"
1035 GLW_LIB_DEPS="$GLW_LIBS"
1037 # should check these...
1038 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
1039 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1040 GLW_PC_CFLAGS="$X11_INCLUDES"
1043 GLW_SOURCES="GLwDrawA.c"
1045 if test "x$enable_motif" = xyes; then
1046 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1047 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1048 if test "x$MOTIF_CONFIG" != xno; then
1049 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1050 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1052 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1053 [AC_MSG_ERROR([Can't locate Motif headers])])
1054 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1055 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1057 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1058 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
1059 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1060 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
1063 # If static, empty GLW_LIB_DEPS and add libs for programs to link
1064 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
1065 if test "$enable_static" = no; then
1066 GLW_MESA_DEPS='-l$(GL_LIB)'
1067 GLW_LIB_DEPS="$GLW_LIB_DEPS"
1069 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1074 AC_SUBST([GLW_LIB_DEPS])
1075 AC_SUBST([GLW_MESA_DEPS])
1076 AC_SUBST([GLW_SOURCES])
1077 AC_SUBST([MOTIF_CFLAGS])
1078 AC_SUBST([GLW_PC_REQ_PRIV])
1079 AC_SUBST([GLW_PC_LIB_PRIV])
1080 AC_SUBST([GLW_PC_CFLAGS])
1083 dnl GLUT configuration
1085 if test -f "$srcdir/include/GL/glut.h"; then
1090 AC_ARG_ENABLE([glut],
1091 [AS_HELP_STRING([--disable-glut],
1092 [enable GLUT library @<:@default=enabled if source available@:>@])],
1093 [enable_glut="$enableval"],
1094 [enable_glut="$default_glut"])
1096 dnl Can't build glut if GLU not available
1097 if test "x$enable_glu$enable_glut" = xnoyes; then
1098 AC_MSG_WARN([Disabling glut since GLU is disabled])
1101 dnl Don't build glut on osmesa
1102 if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1103 AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1107 if test "x$enable_glut" = xyes; then
1108 SRC_DIRS="$SRC_DIRS glut/glx"
1110 if test "x$GCC" = xyes; then
1111 GLUT_CFLAGS="-fexceptions"
1113 if test "$x11_pkgconfig" = yes; then
1114 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1115 GLUT_PC_REQ_PRIV="x11 xmu xi"
1116 GLUT_LIB_DEPS="$GLUT_LIBS"
1118 # should check these...
1119 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1120 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1121 GLUT_PC_CFLAGS="$X11_INCLUDES"
1123 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1124 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
1126 # If glut is available, we can build most programs
1127 if test "$with_demos" = yes; then
1128 PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
1131 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1132 if test "$enable_static" = no; then
1133 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1135 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1140 AC_SUBST([GLUT_LIB_DEPS])
1141 AC_SUBST([GLUT_MESA_DEPS])
1142 AC_SUBST([GLUT_CFLAGS])
1143 AC_SUBST([GLUT_PC_REQ_PRIV])
1144 AC_SUBST([GLUT_PC_LIB_PRIV])
1145 AC_SUBST([GLUT_PC_CFLAGS])
1148 dnl Program library dependencies
1149 dnl Only libm is added here if necessary as the libraries should
1150 dnl be pulled in by the linker
1152 if test "x$APP_LIB_DEPS" = x; then
1155 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1158 APP_LIB_DEPS="-lX11"
1165 AC_SUBST([APP_LIB_DEPS])
1166 AC_SUBST([PROGRAM_DIRS])
1169 dnl Gallium configuration
1171 AC_ARG_ENABLE([gallium],
1172 [AS_HELP_STRING([--disable-gallium],
1173 [build gallium @<:@default=enabled@:>@])],
1174 [enable_gallium="$enableval"],
1175 [enable_gallium=yes])
1176 if test "x$enable_gallium" = xyes; then
1177 SRC_DIRS="$SRC_DIRS gallium gallium/winsys"
1181 dnl Gallium state trackers configuration
1183 AC_ARG_WITH([state-trackers],
1184 [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1185 [comma delimited state_trackers list, e.g.
1186 "egl,glx" @<:@default=auto@:>@])],
1187 [with_state_trackers="$withval"],
1188 [with_state_trackers=yes])
1190 case "$with_state_trackers" in
1192 GALLIUM_STATE_TRACKERS_DIRS=""
1195 # look at what else is built
1196 case "$mesa_driver" in
1198 GALLIUM_STATE_TRACKERS_DIRS=glx
1201 GALLIUM_STATE_TRACKERS_DIRS="dri"
1202 if test "x$enable_egl" = xyes; then
1203 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl"
1205 # Have only tested st/xorg on 1.6.0 servers
1206 PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6.0],
1207 HAVE_XORG="yes"; GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg",
1213 # verify the requested state tracker exist
1214 state_trackers=`IFS=', '; echo $with_state_trackers`
1215 for tracker in $state_trackers; do
1216 test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1217 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1221 if test "x$enable_egl" != xyes; then
1222 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1226 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1227 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1228 HAVE_XEXTPROTO_71="no")
1231 # mesa/es is required to build es state tracker
1232 CORE_DIRS="$CORE_DIRS mesa/es"
1236 GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1240 AC_ARG_WITH([egl-displays],
1241 [AS_HELP_STRING([--with-egl-displays@<:@=DIRS...@:>@],
1242 [comma delimited native displays libEGL supports, e.g.
1243 "x11,kms" @<:@default=auto@:>@])],
1244 [with_egl_displays="$withval"],
1245 [with_egl_displays=yes])
1248 case "$with_egl_displays" in
1250 if test "x$enable_egl" = xyes && test "x$mesa_driver" != xosmesa; then
1255 if test "x$enable_egl" != xyes; then
1256 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1258 # verify the requested driver directories exist
1259 egl_displays=`IFS=', '; echo $with_egl_displays`
1260 for dpy in $egl_displays; do
1261 test -d "$srcdir/src/gallium/state_trackers/egl/$dpy" || \
1262 AC_MSG_ERROR([EGL display '$dpy' does't exist])
1264 EGL_DISPLAYS="$egl_displays"
1267 AC_SUBST([EGL_DISPLAYS])
1269 AC_ARG_WITH([egl-driver-dir],
1270 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1271 [directory for EGL drivers [[default=${libdir}/egl]]])],
1272 [EGL_DRIVER_INSTALL_DIR="$withval"],
1273 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1274 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1276 AC_ARG_WITH([xorg-driver-dir],
1277 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1278 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1279 [XORG_DRIVER_INSTALL_DIR="$withval"],
1280 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1281 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1283 AC_ARG_WITH([max-width],
1284 [AS_HELP_STRING([--with-max-width=N],
1285 [Maximum framebuffer width (4096)])],
1286 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1287 AS_IF([test "${withval}" -gt "4096"],
1288 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1290 AC_ARG_WITH([max-height],
1291 [AS_HELP_STRING([--with-max-height=N],
1292 [Maximum framebuffer height (4096)])],
1293 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1294 AS_IF([test "${withval}" -gt "4096"],
1295 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1299 dnl Gallium SVGA configuration
1301 AC_ARG_ENABLE([gallium-svga],
1302 [AS_HELP_STRING([--enable-gallium-svga],
1303 [build gallium SVGA @<:@default=disabled@:>@])],
1304 [enable_gallium_svga="$enableval"],
1305 [enable_gallium_svga=auto])
1306 if test "x$enable_gallium_svga" = xyes; then
1307 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS vmware"
1308 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
1309 elif test "x$enable_gallium_svga" = xauto; then
1310 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
1314 dnl Gallium Intel configuration
1316 AC_ARG_ENABLE([gallium-intel],
1317 [AS_HELP_STRING([--enable-gallium-intel],
1318 [build gallium intel @<:@default=disabled@:>@])],
1319 [enable_gallium_intel="$enableval"],
1320 [enable_gallium_intel=auto])
1321 if test "x$enable_gallium_intel" = xyes; then
1322 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel i965"
1323 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 i965"
1324 elif test "x$enable_gallium_intel" = xauto; then
1325 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 i965"
1329 dnl Gallium Radeon configuration
1331 AC_ARG_ENABLE([gallium-radeon],
1332 [AS_HELP_STRING([--enable-gallium-radeon],
1333 [build gallium radeon @<:@default=disabled@:>@])],
1334 [enable_gallium_radeon="$enableval"],
1335 [enable_gallium_radeon=auto])
1336 if test "x$enable_gallium_radeon" = xyes; then
1337 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon"
1338 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1339 elif test "x$enable_gallium_radeon" = xauto; then
1340 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1344 dnl Gallium Nouveau configuration
1346 AC_ARG_ENABLE([gallium-nouveau],
1347 [AS_HELP_STRING([--enable-gallium-nouveau],
1348 [build gallium nouveau @<:@default=disabled@:>@])],
1349 [enable_gallium_nouveau="$enableval"],
1350 [enable_gallium_nouveau=no])
1351 if test "x$enable_gallium_nouveau" = xyes; then
1352 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau"
1353 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nv30 nv40 nv50"
1357 dnl Gallium swrast configuration
1359 AC_ARG_ENABLE([gallium-swrast],
1360 [AS_HELP_STRING([--enable-gallium-swrast],
1361 [build gallium swrast @<:@default=disabled@:>@])],
1362 [enable_gallium_swrast="$enableval"],
1363 [enable_gallium_swrast=auto])
1364 if test "x$enable_gallium_swrast" = xyes; then
1365 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS swrast"
1368 dnl prepend CORE_DIRS to SRC_DIRS
1369 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1371 dnl Restore LDFLAGS and CPPFLAGS
1372 LDFLAGS="$_SAVE_LDFLAGS"
1373 CPPFLAGS="$_SAVE_CPPFLAGS"
1375 dnl Substitute the config
1376 AC_CONFIG_FILES([configs/autoconf])
1378 dnl Replace the configs/current symlink
1379 AC_CONFIG_COMMANDS([configs],[
1380 if test -f configs/current || test -L configs/current; then
1381 rm -f configs/current
1383 ln -s autoconf configs/current
1389 dnl Output some configuration info for the user
1392 echo " prefix: $prefix"
1393 echo " exec_prefix: $exec_prefix"
1394 echo " libdir: $libdir"
1395 echo " includedir: $includedir"
1399 echo " Driver: $mesa_driver"
1400 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1401 echo " OSMesa: lib$OSMESA_LIB"
1405 if test "$mesa_driver" = dri; then
1406 # cleanup the drivers var
1407 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1408 if test "x$DRI_DIRS" = x; then
1409 echo " DRI drivers: no"
1411 echo " DRI drivers: $dri_dirs"
1413 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1415 echo " Use XCB: $enable_xcb"
1418 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1419 echo " Gallium: yes"
1420 echo " Gallium dirs: $GALLIUM_DIRS"
1421 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
1422 echo " Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS"
1423 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
1424 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1431 echo " Shared libs: $enable_shared"
1432 echo " Static libs: $enable_static"
1433 if test "$enable_egl" = yes; then
1434 echo " EGL: $EGL_DRIVERS_DIRS"
1438 echo " GLU: $enable_glu"
1439 echo " GLw: $enable_glw (Motif: $enable_motif)"
1440 echo " glut: $enable_glut"
1443 # cleanup the programs var for display
1444 program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1445 if test "x$program_dirs" = x; then
1448 echo " Demos: $program_dirs"
1451 dnl Compiler options
1452 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1453 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1454 $SED 's/^ *//;s/ */ /;s/ *$//'`
1455 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1456 $SED 's/^ *//;s/ */ /;s/ *$//'`
1457 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1459 echo " CFLAGS: $cflags"
1460 echo " CXXFLAGS: $cxxflags"
1461 echo " Macros: $defines"
1464 echo " Run '${MAKE-make}' to build Mesa"