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"
460 GALLIUM_DIRS="auxiliary drivers state_trackers"
461 GALLIUM_WINSYS_DIRS=""
462 GALLIUM_WINSYS_DRM_DIRS=""
463 GALLIUM_DRIVERS_DIRS="softpipe failover trace identity"
464 GALLIUM_STATE_TRACKERS_DIRS=""
466 case "$mesa_driver" in
469 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS xlib"
472 SRC_DIRS="$SRC_DIRS glx"
474 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS drm"
482 AC_SUBST([DRIVER_DIRS])
483 AC_SUBST([GALLIUM_DIRS])
484 AC_SUBST([GALLIUM_WINSYS_DIRS])
485 AC_SUBST([GALLIUM_WINSYS_DRM_DIRS])
486 AC_SUBST([GALLIUM_DRIVERS_DIRS])
487 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
490 dnl User supplied program configuration
492 if test -d "$srcdir/progs/demos"; then
498 [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
499 [optional comma delimited demo directories to build
500 @<:@default=auto if source available@:>@])],
501 [with_demos="$withval"],
502 [with_demos="$default_demos"])
503 if test "x$with_demos" = x; then
507 dnl If $with_demos is yes, directories will be added as libs available
509 case "$with_demos" in
512 # If the driver isn't osmesa, we have libGL and can build xdemos
513 if test "$mesa_driver" != osmesa; then
514 PROGRAM_DIRS="xdemos"
518 # verify the requested demos directories exist
519 demos=`IFS=,; echo $with_demos`
520 for demo in $demos; do
521 test -d "$srcdir/progs/$demo" || \
522 AC_MSG_ERROR([Program directory '$demo' doesn't exist])
524 PROGRAM_DIRS="$demos"
529 dnl Find out if X is available. The variable have_x is set if libX11 is
530 dnl found to mimic AC_PATH_XTRA.
532 if test -n "$PKG_CONFIG"; then
533 AC_MSG_CHECKING([pkg-config files for X11 are available])
534 PKG_CHECK_EXISTS([x11],[
540 AC_MSG_RESULT([$x11_pkgconfig])
544 dnl Use the autoconf macro if no pkg-config files
545 if test "$x11_pkgconfig" = no; then
549 dnl Try to tell the user that the --x-* options are only used when
550 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
551 m4_divert_once([HELP_BEGIN],
552 [These options are only used when the X libraries cannot be found by the
553 pkg-config utility.])
555 dnl We need X for xlib and dri, so bomb now if it's not found
556 case "$mesa_driver" in
558 if test "$no_x" = yes; then
559 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
564 dnl XCB - this is only used for GLX right now
566 [AS_HELP_STRING([--enable-xcb],
567 [use XCB for GLX @<:@default=disabled@:>@])],
568 [enable_xcb="$enableval"],
570 if test "x$enable_xcb" = xyes; then
571 DEFINES="$DEFINES -DUSE_XCB"
577 dnl libGL configuration per driver
579 case "$mesa_driver" in
581 if test "$x11_pkgconfig" = yes; then
582 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
583 GL_PC_REQ_PRIV="x11 xext"
584 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
585 GL_LIB_DEPS="$XLIBGL_LIBS"
587 # should check these...
588 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
589 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
590 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
591 GL_PC_CFLAGS="$X11_INCLUDES"
593 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
594 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
596 # if static, move the external libraries to the programs
597 # and empty the libraries for libGL
598 if test "$enable_static" = yes; then
599 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
604 # DRI must be shared, I think
605 if test "$enable_static" = yes; then
606 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
610 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
611 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
612 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
613 GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED glproto >= $GLPROTO_REQUIRED"
614 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
616 # find the DRI deps for libGL
617 if test "$x11_pkgconfig" = yes; then
618 # add xcb modules if necessary
619 dri_modules="x11 xext xxf86vm xdamage xfixes"
620 if test "$enable_xcb" = yes; then
621 dri_modules="$dri_modules x11-xcb xcb-glx"
624 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
625 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
626 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
627 GL_LIB_DEPS="$DRIGL_LIBS"
629 # should check these...
630 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
631 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
632 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
633 GL_PC_CFLAGS="$X11_INCLUDES"
635 # XCB can only be used from pkg-config
636 if test "$enable_xcb" = yes; then
637 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
638 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
639 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
640 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
644 # need DRM libs, -lpthread, etc.
645 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
646 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
649 # No libGL for osmesa
653 AC_SUBST([GL_LIB_DEPS])
654 AC_SUBST([GL_PC_REQ_PRIV])
655 AC_SUBST([GL_PC_LIB_PRIV])
656 AC_SUBST([GL_PC_CFLAGS])
657 AC_SUBST([DRI_PC_REQ_PRIV])
662 if test "$mesa_driver" = xlib; then
663 DEFINES="$DEFINES -DUSE_XSHM"
669 AC_ARG_ENABLE([glx-tls],
670 [AS_HELP_STRING([--enable-glx-tls],
671 [enable TLS support in GLX @<:@default=disabled@:>@])],
672 [GLX_USE_TLS="$enableval"],
674 dnl Directory for DRI drivers
675 AC_ARG_WITH([dri-driverdir],
676 [AS_HELP_STRING([--with-dri-driverdir=DIR],
677 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
678 [DRI_DRIVER_INSTALL_DIR="$withval"],
679 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
680 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
681 dnl Extra search path for DRI drivers
682 AC_ARG_WITH([dri-searchpath],
683 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
684 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
685 [DRI_DRIVER_SEARCH_DIR="$withval"],
686 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
687 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
688 dnl Direct rendering or just indirect rendering
689 AC_ARG_ENABLE([driglx-direct],
690 [AS_HELP_STRING([--disable-driglx-direct],
691 [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
692 [driglx_direct="$enableval"],
693 [driglx_direct="yes"])
694 dnl Which drivers to build - default is chosen by platform
695 AC_ARG_WITH([dri-drivers],
696 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
697 [comma delimited DRI drivers list, e.g.
698 "swrast,i965,radeon" @<:@default=auto@:>@])],
699 [with_dri_drivers="$withval"],
700 [with_dri_drivers=yes])
701 if test "x$with_dri_drivers" = x; then
705 dnl If $with_dri_drivers is yes, directories will be added through
708 case "$with_dri_drivers" in
714 # verify the requested driver directories exist
715 dri_drivers=`IFS=', '; echo $with_dri_drivers`
716 for driver in $dri_drivers; do
717 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
718 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
720 DRI_DIRS="$dri_drivers"
724 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
725 if test "$mesa_driver" = dri; then
727 if test "x$GLX_USE_TLS" = xyes; then
728 DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
731 # Platform specific settings and drivers to build
734 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
735 if test "x$driglx_direct" = xyes; then
736 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
738 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
742 # sis is missing because they have not be converted to use
743 # the new interface. i810 are missing because there is no
744 # x86-64 system where they could *ever* be used.
745 if test "x$DRI_DIRS" = "xyes"; then
746 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 r600 radeon \
747 savage tdfx unichrome swrast"
751 # Build only the drivers for cards that exist on PowerPC.
752 # At some point MGA will be added, but not yet.
753 if test "x$DRI_DIRS" = "xyes"; then
754 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
758 # Build only the drivers for cards that exist on sparc`
759 if test "x$DRI_DIRS" = "xyes"; then
760 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
765 freebsd* | dragonfly*)
766 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
767 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
768 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
769 if test "x$driglx_direct" = xyes; then
770 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
772 if test "x$GXX" = xyes; then
773 CXXFLAGS="$CXXFLAGS -ansi -pedantic"
776 if test "x$DRI_DIRS" = "xyes"; then
777 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
778 unichrome savage sis swrast"
782 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
783 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
786 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
787 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
788 if test "x$driglx_direct" = xyes; then
789 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
795 if test "x$DRI_DIRS" = "xyes"; then
796 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
797 savage sis tdfx unichrome swrast"
800 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
806 [AS_HELP_STRING([--with-expat=DIR],
807 [expat install directory])],[
808 EXPAT_INCLUDES="-I$withval/include"
809 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
810 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
811 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
813 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
814 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
815 [AC_MSG_ERROR([Expat required for DRI.])])
817 # put all the necessary libs together
818 DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
821 AC_SUBST([EXPAT_INCLUDES])
822 AC_SUBST([DRI_LIB_DEPS])
826 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= 2.4.19])
831 *radeon*|*r200*|*r300*|*r600*)
832 PKG_CHECK_MODULES([LIBDRM_RADEON],
833 [libdrm_radeon libdrm >= $LIBDRM_RADEON_REQUIRED],
834 HAVE_LIBDRM_RADEON=yes,
835 HAVE_LIBDRM_RADEON=no)
837 if test "$HAVE_LIBDRM_RADEON" = yes; then
838 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
839 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
843 AC_SUBST([RADEON_CFLAGS])
844 AC_SUBST([RADEON_LDFLAGS])
848 dnl OSMesa configuration
850 if test "$mesa_driver" = xlib; then
851 default_gl_osmesa=yes
855 AC_ARG_ENABLE([gl-osmesa],
856 [AS_HELP_STRING([--enable-gl-osmesa],
857 [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
858 [gl_osmesa="$enableval"],
859 [gl_osmesa="$default_gl_osmesa"])
860 if test "x$gl_osmesa" = xyes; then
861 if test "$mesa_driver" = osmesa; then
862 AC_MSG_ERROR([libGL is not available for OSMesa driver])
864 DRIVER_DIRS="$DRIVER_DIRS osmesa"
868 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
869 AC_ARG_WITH([osmesa-bits],
870 [AS_HELP_STRING([--with-osmesa-bits=BITS],
871 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
872 [osmesa_bits="$withval"],
874 if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
875 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
878 case "x$osmesa_bits" in
883 OSMESA_LIB="OSMesa$osmesa_bits"
884 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
887 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
890 AC_SUBST([OSMESA_LIB])
892 case "$mesa_driver" in
894 # only link libraries with osmesa if shared
895 if test "$enable_static" = no; then
896 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
901 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
904 # Link OSMesa to libGL otherwise
906 # only link libraries with osmesa if shared
907 if test "$enable_static" = no; then
908 OSMESA_MESA_DEPS='-l$(GL_LIB)'
915 OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV"
916 AC_SUBST([OSMESA_LIB_DEPS])
917 AC_SUBST([OSMESA_MESA_DEPS])
918 AC_SUBST([OSMESA_PC_REQ])
919 AC_SUBST([OSMESA_PC_LIB_PRIV])
922 dnl EGL configuration
925 [AS_HELP_STRING([--disable-egl],
926 [disable EGL library @<:@default=enabled@:>@])],
927 [enable_egl="$enableval"],
929 if test "x$enable_egl" = xyes; then
930 SRC_DIRS="$SRC_DIRS egl"
931 EGL_LIB_DEPS="$DLOPEN_LIBS -lpthread"
933 if test "$enable_static" != yes; then
934 # build egl_glx when libGL is built
935 if test "$mesa_driver" != osmesa; then
936 EGL_DRIVERS_DIRS="glx"
939 # build egl_dri2 when xcb-dri2 is available
940 PKG_CHECK_MODULES([EGL_DRI2], [x11-xcb xcb-dri2 xcb-xfixes libdrm],
941 [have_xcb_dri2=yes],[have_xcb_dri2=no])
942 if test "$have_xcb_dri2" = yes; then
943 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS dri2"
947 if test "$with_demos" = yes; then
948 PROGRAM_DIRS="$PROGRAM_DIRS egl"
951 AC_SUBST([EGL_LIB_DEPS])
952 AC_SUBST([EGL_DRIVERS_DIRS])
955 dnl GLU configuration
958 [AS_HELP_STRING([--disable-glu],
959 [enable OpenGL Utility library @<:@default=enabled@:>@])],
960 [enable_glu="$enableval"],
962 if test "x$enable_glu" = xyes; then
963 SRC_DIRS="$SRC_DIRS glu"
965 case "$mesa_driver" in
967 # If GLU is available and we have libOSMesa (not 16 or 32),
968 # we can build the osdemos
969 if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
970 PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
973 # Link libGLU to libOSMesa instead of libGL
976 if test "$enable_static" = no; then
977 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
983 # If static, empty GLU_LIB_DEPS and add libs for programs to link
985 GLU_PC_LIB_PRIV="-lm"
986 if test "$enable_static" = no; then
988 GLU_MESA_DEPS='-l$(GL_LIB)'
992 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
997 if test "$enable_static" = no; then
998 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1000 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1001 AC_SUBST([GLU_LIB_DEPS])
1002 AC_SUBST([GLU_MESA_DEPS])
1003 AC_SUBST([GLU_PC_REQ])
1004 AC_SUBST([GLU_PC_REQ_PRIV])
1005 AC_SUBST([GLU_PC_LIB_PRIV])
1006 AC_SUBST([GLU_PC_CFLAGS])
1009 dnl GLw configuration
1011 AC_ARG_ENABLE([glw],
1012 [AS_HELP_STRING([--disable-glw],
1013 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
1014 [enable_glw="$enableval"],
1016 dnl Don't build GLw on osmesa
1017 if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
1018 AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
1021 AC_ARG_ENABLE([motif],
1022 [AS_HELP_STRING([--enable-motif],
1023 [use Motif widgets in GLw @<:@default=disabled@:>@])],
1024 [enable_motif="$enableval"],
1027 if test "x$enable_glw" = xyes; then
1028 SRC_DIRS="$SRC_DIRS glw"
1029 if test "$x11_pkgconfig" = yes; then
1030 PKG_CHECK_MODULES([GLW],[x11 xt])
1031 GLW_PC_REQ_PRIV="x11 xt"
1032 GLW_LIB_DEPS="$GLW_LIBS"
1034 # should check these...
1035 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
1036 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1037 GLW_PC_CFLAGS="$X11_INCLUDES"
1040 GLW_SOURCES="GLwDrawA.c"
1042 if test "x$enable_motif" = xyes; then
1043 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1044 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1045 if test "x$MOTIF_CONFIG" != xno; then
1046 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1047 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1049 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1050 [AC_MSG_ERROR([Can't locate Motif headers])])
1051 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1052 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1054 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1055 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
1056 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1057 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
1060 # If static, empty GLW_LIB_DEPS and add libs for programs to link
1061 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
1062 if test "$enable_static" = no; then
1063 GLW_MESA_DEPS='-l$(GL_LIB)'
1064 GLW_LIB_DEPS="$GLW_LIB_DEPS"
1066 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1071 AC_SUBST([GLW_LIB_DEPS])
1072 AC_SUBST([GLW_MESA_DEPS])
1073 AC_SUBST([GLW_SOURCES])
1074 AC_SUBST([MOTIF_CFLAGS])
1075 AC_SUBST([GLW_PC_REQ_PRIV])
1076 AC_SUBST([GLW_PC_LIB_PRIV])
1077 AC_SUBST([GLW_PC_CFLAGS])
1080 dnl GLUT configuration
1082 if test -f "$srcdir/include/GL/glut.h"; then
1087 AC_ARG_ENABLE([glut],
1088 [AS_HELP_STRING([--disable-glut],
1089 [enable GLUT library @<:@default=enabled if source available@:>@])],
1090 [enable_glut="$enableval"],
1091 [enable_glut="$default_glut"])
1093 dnl Can't build glut if GLU not available
1094 if test "x$enable_glu$enable_glut" = xnoyes; then
1095 AC_MSG_WARN([Disabling glut since GLU is disabled])
1098 dnl Don't build glut on osmesa
1099 if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1100 AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1104 if test "x$enable_glut" = xyes; then
1105 SRC_DIRS="$SRC_DIRS glut/glx"
1107 if test "x$GCC" = xyes; then
1108 GLUT_CFLAGS="-fexceptions"
1110 if test "$x11_pkgconfig" = yes; then
1111 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1112 GLUT_PC_REQ_PRIV="x11 xmu xi"
1113 GLUT_LIB_DEPS="$GLUT_LIBS"
1115 # should check these...
1116 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1117 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1118 GLUT_PC_CFLAGS="$X11_INCLUDES"
1120 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1121 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
1123 # If glut is available, we can build most programs
1124 if test "$with_demos" = yes; then
1125 PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
1128 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1129 if test "$enable_static" = no; then
1130 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1132 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1137 AC_SUBST([GLUT_LIB_DEPS])
1138 AC_SUBST([GLUT_MESA_DEPS])
1139 AC_SUBST([GLUT_CFLAGS])
1140 AC_SUBST([GLUT_PC_REQ_PRIV])
1141 AC_SUBST([GLUT_PC_LIB_PRIV])
1142 AC_SUBST([GLUT_PC_CFLAGS])
1145 dnl Program library dependencies
1146 dnl Only libm is added here if necessary as the libraries should
1147 dnl be pulled in by the linker
1149 if test "x$APP_LIB_DEPS" = x; then
1152 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1155 APP_LIB_DEPS="-lX11"
1162 AC_SUBST([APP_LIB_DEPS])
1163 AC_SUBST([PROGRAM_DIRS])
1166 dnl Gallium configuration
1168 AC_ARG_ENABLE([gallium],
1169 [AS_HELP_STRING([--disable-gallium],
1170 [build gallium @<:@default=enabled@:>@])],
1171 [enable_gallium="$enableval"],
1172 [enable_gallium=yes])
1173 if test "x$enable_gallium" = xyes; then
1174 SRC_DIRS="$SRC_DIRS gallium gallium/winsys"
1178 dnl Gallium state trackers configuration
1180 AC_ARG_WITH([state-trackers],
1181 [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1182 [comma delimited state_trackers list, e.g.
1183 "egl,glx" @<:@default=auto@:>@])],
1184 [with_state_trackers="$withval"],
1185 [with_state_trackers=yes])
1187 case "$with_state_trackers" in
1189 GALLIUM_STATE_TRACKERS_DIRS=""
1192 # look at what else is built
1193 case "$mesa_driver" in
1195 GALLIUM_STATE_TRACKERS_DIRS=glx
1198 GALLIUM_STATE_TRACKERS_DIRS="dri"
1199 if test "x$enable_egl" = xyes; then
1200 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl"
1202 # Have only tested st/xorg on 1.6.0 servers
1203 PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6.0],
1204 HAVE_XORG="yes"; GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg",
1210 # verify the requested state tracker exist
1211 state_trackers=`IFS=', '; echo $with_state_trackers`
1212 for tracker in $state_trackers; do
1213 test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1214 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1218 if test "x$enable_egl" != xyes; then
1219 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1223 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1224 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1225 HAVE_XEXTPROTO_71="no")
1228 # mesa/es is required to build es state tracker
1229 CORE_DIRS="$CORE_DIRS mesa/es"
1233 GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1237 AC_ARG_WITH([egl-displays],
1238 [AS_HELP_STRING([--with-egl-displays@<:@=DIRS...@:>@],
1239 [comma delimited native displays libEGL supports, e.g.
1240 "x11,kms" @<:@default=auto@:>@])],
1241 [with_egl_displays="$withval"],
1242 [with_egl_displays=yes])
1245 case "$with_egl_displays" in
1247 if test "x$enable_egl" = xyes && test "x$mesa_driver" != xosmesa; then
1252 if test "x$enable_egl" != xyes; then
1253 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1255 # verify the requested driver directories exist
1256 egl_displays=`IFS=', '; echo $with_egl_displays`
1257 for dpy in $egl_displays; do
1258 test -d "$srcdir/src/gallium/state_trackers/egl/$dpy" || \
1259 AC_MSG_ERROR([EGL display '$dpy' does't exist])
1261 EGL_DISPLAYS="$egl_displays"
1264 AC_SUBST([EGL_DISPLAYS])
1266 AC_ARG_WITH([egl-driver-dir],
1267 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1268 [directory for EGL drivers [[default=${libdir}/egl]]])],
1269 [EGL_DRIVER_INSTALL_DIR="$withval"],
1270 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1271 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1273 AC_ARG_WITH([xorg-driver-dir],
1274 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1275 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1276 [XORG_DRIVER_INSTALL_DIR="$withval"],
1277 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1278 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1280 AC_ARG_WITH([max-width],
1281 [AS_HELP_STRING([--with-max-width=N],
1282 [Maximum framebuffer width (4096)])],
1283 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1284 AS_IF([test "${withval}" -gt "4096"],
1285 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1287 AC_ARG_WITH([max-height],
1288 [AS_HELP_STRING([--with-max-height=N],
1289 [Maximum framebuffer height (4096)])],
1290 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1291 AS_IF([test "${withval}" -gt "4096"],
1292 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1296 dnl Gallium SVGA configuration
1298 AC_ARG_ENABLE([gallium-svga],
1299 [AS_HELP_STRING([--enable-gallium-svga],
1300 [build gallium SVGA @<:@default=disabled@:>@])],
1301 [enable_gallium_svga="$enableval"],
1302 [enable_gallium_svga=auto])
1303 if test "x$enable_gallium_svga" = xyes; then
1304 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS vmware"
1305 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
1306 elif test "x$enable_gallium_svga" = xauto; then
1307 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
1311 dnl Gallium Intel configuration
1313 AC_ARG_ENABLE([gallium-intel],
1314 [AS_HELP_STRING([--enable-gallium-intel],
1315 [build gallium intel @<:@default=disabled@:>@])],
1316 [enable_gallium_intel="$enableval"],
1317 [enable_gallium_intel=auto])
1318 if test "x$enable_gallium_intel" = xyes; then
1319 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel i965"
1320 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 i965"
1321 elif test "x$enable_gallium_intel" = xauto; then
1322 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 i965"
1326 dnl Gallium Radeon configuration
1328 AC_ARG_ENABLE([gallium-radeon],
1329 [AS_HELP_STRING([--enable-gallium-radeon],
1330 [build gallium radeon @<:@default=disabled@:>@])],
1331 [enable_gallium_radeon="$enableval"],
1332 [enable_gallium_radeon=auto])
1333 if test "x$enable_gallium_radeon" = xyes; then
1334 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon"
1335 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1336 elif test "x$enable_gallium_radeon" = xauto; then
1337 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1341 dnl Gallium Nouveau configuration
1343 AC_ARG_ENABLE([gallium-nouveau],
1344 [AS_HELP_STRING([--enable-gallium-nouveau],
1345 [build gallium nouveau @<:@default=disabled@:>@])],
1346 [enable_gallium_nouveau="$enableval"],
1347 [enable_gallium_nouveau=no])
1348 if test "x$enable_gallium_nouveau" = xyes; then
1349 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau"
1350 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nv30 nv40 nv50"
1354 dnl Gallium swrast configuration
1356 AC_ARG_ENABLE([gallium-swrast],
1357 [AS_HELP_STRING([--enable-gallium-swrast],
1358 [build gallium swrast @<:@default=disabled@:>@])],
1359 [enable_gallium_swrast="$enableval"],
1360 [enable_gallium_swrast=auto])
1361 if test "x$enable_gallium_swrast" = xyes; then
1362 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS swrast"
1365 dnl prepend CORE_DIRS to SRC_DIRS
1366 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1368 dnl Restore LDFLAGS and CPPFLAGS
1369 LDFLAGS="$_SAVE_LDFLAGS"
1370 CPPFLAGS="$_SAVE_CPPFLAGS"
1372 dnl Substitute the config
1373 AC_CONFIG_FILES([configs/autoconf])
1375 dnl Replace the configs/current symlink
1376 AC_CONFIG_COMMANDS([configs],[
1377 if test -f configs/current || test -L configs/current; then
1378 rm -f configs/current
1380 ln -s autoconf configs/current
1386 dnl Output some configuration info for the user
1389 echo " prefix: $prefix"
1390 echo " exec_prefix: $exec_prefix"
1391 echo " libdir: $libdir"
1392 echo " includedir: $includedir"
1396 echo " Driver: $mesa_driver"
1397 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1398 echo " OSMesa: lib$OSMESA_LIB"
1402 if test "$mesa_driver" = dri; then
1403 # cleanup the drivers var
1404 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1405 if test "x$DRI_DIRS" = x; then
1406 echo " DRI drivers: no"
1408 echo " DRI drivers: $dri_dirs"
1410 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1412 echo " Use XCB: $enable_xcb"
1415 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1416 echo " Gallium: yes"
1417 echo " Gallium dirs: $GALLIUM_DIRS"
1418 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
1419 echo " Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS"
1420 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
1421 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1428 echo " Shared libs: $enable_shared"
1429 echo " Static libs: $enable_static"
1430 if test "$enable_egl" = yes; then
1431 echo " EGL: $EGL_DRIVERS_DIRS"
1435 echo " GLU: $enable_glu"
1436 echo " GLw: $enable_glw (Motif: $enable_motif)"
1437 echo " glut: $enable_glut"
1440 # cleanup the programs var for display
1441 program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1442 if test "x$program_dirs" = x; then
1445 echo " Demos: $program_dirs"
1448 dnl Compiler options
1449 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1450 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1451 $SED 's/^ *//;s/ */ /;s/ *$//'`
1452 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1453 $SED 's/^ *//;s/ */ /;s/ *$//'`
1454 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1456 echo " CFLAGS: $cflags"
1457 echo " CXXFLAGS: $cxxflags"
1458 echo " Macros: $defines"
1461 echo " Run '${MAKE-make}' to build Mesa"