configure.ac revision 3ede3776e2faffdc0dee102dbd37d33491726c36
1dnl Process this file with autoconf to create configure.
2
3AC_PREREQ([2.59])
4
5dnl Versioning - scrape the version from configs/default
6m4_define([mesa_version],
7    [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n'])])
8m4_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
15dnl Tell the user about autoconf.html in the --help output
16m4_divert_once([HELP_END], [
17See docs/autoconf.html for more details on the options for Mesa.])
18
19AC_INIT([Mesa],[mesa_version],
20    [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
21AC_CONFIG_AUX_DIR([bin])
22AC_CANONICAL_HOST
23
24dnl Versions for external dependencies
25LIBDRM_REQUIRED=2.4.3
26DRI2PROTO_REQUIRED=1.99.3
27
28dnl Check for progs
29AC_PROG_CPP
30AC_PROG_CC
31AC_PROG_CXX
32AC_CHECK_PROGS([MAKE], [gmake make])
33AC_PATH_PROG([MKDEP], [makedepend])
34AC_PATH_PROG([SED], [sed])
35
36dnl We need a POSIX shell for parts of the build. Assume we have one
37dnl in most cases.
38case "$host_os" in
39solaris*)
40    # Solaris /bin/sh is too old/non-POSIX compliant
41    AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
42    SHELL="$POSIX_SHELL"
43    ;;
44esac
45
46MKDEP_OPTIONS=-fdepend
47dnl Ask gcc where it's keeping its secret headers
48if 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
57fi
58AC_SUBST([MKDEP_OPTIONS])
59
60dnl Make sure the pkg-config macros are defined
61m4_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])
70PKG_PROG_PKG_CONFIG()
71
72dnl LIB_DIR - library basename
73LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
74AC_SUBST([LIB_DIR])
75
76dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
77_SAVE_LDFLAGS="$LDFLAGS"
78AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
79AC_SUBST([EXTRA_LIB_PATH])
80
81dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
82_SAVE_CPPFLAGS="$CPPFLAGS"
83AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
84AC_SUBST([X11_INCLUDES])
85
86dnl Compiler macros
87DEFINES=""
88AC_SUBST([DEFINES])
89case "$host_os" in
90*-gnu*)
91    DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
92    ;;
93solaris*)
94    DEFINES="$DEFINES -DPTHREADS -DSVR4"
95    ;;
96esac
97
98dnl Add flags for gcc and g++
99if 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"
104fi
105if 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"
110fi
111
112dnl These should be unnecessary, but let the user set them if they want
113AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
114    Default is to use CFLAGS.])
115AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
116    compiler. Default is to use CFLAGS.])
117AC_SUBST([OPT_FLAGS])
118AC_SUBST([ARCH_FLAGS])
119
120dnl
121dnl Hacks to enable 32 or 64 bit build
122dnl
123AC_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)
129if 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
136fi
137AC_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)
143if 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
150fi
151
152dnl
153dnl shared/static libraries, mimic libtool options
154dnl
155AC_ARG_ENABLE([static],
156    [AS_HELP_STRING([--enable-static],
157        [build static libraries @<:@default=disabled@:>@])],
158    [enable_static="$enableval"],
159    [enable_static=no]
160)
161case "x$enable_static" in
162xyes|xno ) ;;
163x ) enable_static=no ;;
164* )
165    AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
166    ;;
167esac
168AC_ARG_ENABLE([shared],
169    [AS_HELP_STRING([--disable-shared],
170        [build shared libraries @<:@default=enabled@:>@])],
171    [enable_shared="$enableval"],
172    [enable_shared=yes]
173)
174case "x$enable_shared" in
175xyes|xno ) ;;
176x ) enable_shared=yes ;;
177* )
178    AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
179    ;;
180esac
181
182dnl Can't have static and shared libraries, default to static if user
183dnl explicitly requested. If both disabled, set to static since shared
184dnl was explicitly requirested.
185case "x$enable_static$enable_shared" in
186xyesyes )
187    AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
188    enable_shared=no
189    ;;
190xnono )
191    AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
192    enable_static=yes
193    ;;
194esac
195
196dnl
197dnl mklib options
198dnl
199AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
200if test "$enable_static" = yes; then
201    MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
202fi
203AC_SUBST([MKLIB_OPTIONS])
204
205dnl
206dnl other compiler options
207dnl
208AC_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)
214if 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
222fi
223
224dnl
225dnl library names
226dnl
227if test "$enable_static" = yes; then
228    LIB_EXTENSION='a'
229else
230    case "$host_os" in
231    darwin* )
232        LIB_EXTENSION='dylib' ;;
233    * )
234        LIB_EXTENSION='so' ;;
235    esac
236fi
237
238GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
239GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
240GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
241GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
242OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
243
244GL_LIB_GLOB='lib$(GL_LIB).*'${LIB_EXTENSION}'*'
245GLU_LIB_GLOB='lib$(GLU_LIB).*'${LIB_EXTENSION}'*'
246GLUT_LIB_GLOB='lib$(GLUT_LIB).*'${LIB_EXTENSION}'*'
247GLW_LIB_GLOB='lib$(GLW_LIB).*'${LIB_EXTENSION}'*'
248OSMESA_LIB_GLOB='lib$(OSMESA_LIB).*'${LIB_EXTENSION}'*'
249
250AC_SUBST([GL_LIB_NAME])
251AC_SUBST([GLU_LIB_NAME])
252AC_SUBST([GLUT_LIB_NAME])
253AC_SUBST([GLW_LIB_NAME])
254AC_SUBST([OSMESA_LIB_NAME])
255
256AC_SUBST([GL_LIB_GLOB])
257AC_SUBST([GLU_LIB_GLOB])
258AC_SUBST([GLUT_LIB_GLOB])
259AC_SUBST([GLW_LIB_GLOB])
260AC_SUBST([OSMESA_LIB_GLOB])
261
262dnl
263dnl Arch/platform-specific settings
264dnl
265AC_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)
271asm_arch=""
272ASM_FLAGS=""
273MESA_ASM_SOURCES=""
274GLAPI_ASM_SOURCES=""
275AC_MSG_CHECKING([whether to enable assembly])
276test "x$enable_asm" = xno && AC_MSG_RESULT([no])
277# disable if cross compiling on x86/x86_64 since we must run gen_matypes
278if 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
285fi
286# check for supported arches
287if 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    esac
311
312    case "$asm_arch" in
313    x86)
314        ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
315        MESA_ASM_SOURCES='$(X86_SOURCES)'
316        GLAPI_ASM_SOURCES='$(X86_API)'
317        AC_MSG_RESULT([yes, x86])
318        ;;
319    x86_64)
320        ASM_FLAGS="-DUSE_X86_64_ASM"
321        MESA_ASM_SOURCES='$(X86-64_SOURCES)'
322        GLAPI_ASM_SOURCES='$(X86-64_API)'
323        AC_MSG_RESULT([yes, x86_64])
324        ;;
325    ppc)
326        ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
327        MESA_ASM_SOURCES='$(PPC_SOURCES)'
328        AC_MSG_RESULT([yes, ppc])
329        ;;
330    *)
331        AC_MSG_RESULT([no, platform not supported])
332        ;;
333    esac
334fi
335AC_SUBST([ASM_FLAGS])
336AC_SUBST([MESA_ASM_SOURCES])
337AC_SUBST([GLAPI_ASM_SOURCES])
338
339dnl PIC code macro
340MESA_PIC_FLAGS
341
342dnl Check to see if dlopen is in default libraries (like Solaris, which
343dnl has it in libc), or if libdl is needed to get it.
344AC_CHECK_FUNC([dlopen], [],
345    [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
346
347dnl See if posix_memalign is available
348AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
349
350dnl SELinux awareness.
351AC_ARG_ENABLE([selinux],
352    [AS_HELP_STRING([--enable-selinux],
353        [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
354    [MESA_SELINUX="$enableval"],
355    [MESA_SELINUX=no])
356if test "x$enable_selinux" = "xyes"; then
357    AC_CHECK_HEADER([selinux/selinux.h],[],
358                    [AC_MSG_ERROR([SELinux headers not found])])
359    AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
360                 [AC_MSG_ERROR([SELinux library not found])])
361    SELINUX_LIBS="-lselinux"
362    DEFINES="$DEFINES -DMESA_SELINUX"
363fi
364
365dnl OS-specific libraries
366OS_LIBS=""
367case "$host_os" in
368solaris*)
369    OS_LIBS="-lc"
370    if test "x$GXX" != xyes; then
371        OS_CPLUSPLUS_LIBS="-lCrun $OS_LIBS"
372    fi
373    ;;
374esac
375
376dnl
377dnl Driver configuration. Options are xlib, dri and osmesa right now.
378dnl More later: directfb, fbdev, ...
379dnl
380default_driver="xlib"
381
382case "$host_os" in
383linux*)
384    case "$host_cpu" in
385    i*86|x86_64|powerpc*) default_driver="dri";;
386    esac
387    ;;
388*freebsd* | dragonfly*)
389    case "$host_cpu" in
390    i*86|x86_64) default_driver="dri";;
391    esac
392    ;;
393esac
394
395AC_ARG_WITH([driver],
396    [AS_HELP_STRING([--with-driver=DRIVER],
397        [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
398    [mesa_driver="$withval"],
399    [mesa_driver="$default_driver"])
400dnl Check for valid option
401case "x$mesa_driver" in
402xxlib|xdri|xosmesa)
403    ;;
404*)
405    AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
406    ;;
407esac
408
409dnl
410dnl Driver specific build directories
411dnl
412SRC_DIRS="mesa egl"
413GLU_DIRS="sgi"
414WINDOW_SYSTEM=""
415GALLIUM_DIRS="auxiliary drivers state_trackers"
416GALLIUM_WINSYS_DIRS=""
417GALLIUM_WINSYS_DRM_DIRS=""
418GALLIUM_AUXILIARY_DIRS="draw translate cso_cache pipebuffer tgsi sct rtasm util"
419GALLIUM_DRIVER_DIRS="softpipe failover trace"
420GALLIUM_STATE_TRACKERS_DIRS=""
421
422case "$mesa_driver" in
423xlib)
424    DRIVER_DIRS="x11"
425    ;;
426dri)
427    SRC_DIRS="glx/x11 $SRC_DIRS"
428    DRIVER_DIRS="dri"
429    WINDOW_SYSTEM="dri"
430    GALLIUM_WINSYS_DIRS="drm $GALLIUM_WINSYS_DIRS"
431    ;;
432osmesa)
433    DRIVER_DIRS="osmesa"
434    ;;
435esac
436AC_SUBST([SRC_DIRS])
437AC_SUBST([GLU_DIRS])
438AC_SUBST([DRIVER_DIRS])
439AC_SUBST([WINDOW_SYSTEM])
440AC_SUBST([GALLIUM_DIRS])
441AC_SUBST([GALLIUM_WINSYS_DIRS])
442AC_SUBST([GALLIUM_WINSYS_DRM_DIRS])
443AC_SUBST([GALLIUM_DRIVER_DIRS])
444AC_SUBST([GALLIUM_AUXILIARY_DIRS])
445AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
446
447dnl
448dnl User supplied program configuration
449dnl
450if test -d "$srcdir/progs/demos"; then
451    default_demos=yes
452else
453    default_demos=no
454fi
455AC_ARG_WITH([demos],
456    [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
457        [optional comma delimited demo directories to build
458        @<:@default=auto if source available@:>@])],
459    [with_demos="$withval"],
460    [with_demos="$default_demos"])
461if test "x$with_demos" = x; then
462    with_demos=no
463fi
464
465dnl If $with_demos is yes, directories will be added as libs available
466PROGRAM_DIRS=""
467case "$with_demos" in
468no) ;;
469yes)
470    # If the driver isn't osmesa, we have libGL and can build xdemos
471    if test "$mesa_driver" != osmesa; then
472        PROGRAM_DIRS="xdemos"
473    fi
474    ;;
475*)
476    # verify the requested demos directories exist
477    demos=`IFS=,; echo $with_demos`
478    for demo in $demos; do
479        test -d "$srcdir/progs/$demo" || \
480            AC_MSG_ERROR([Program directory '$demo' doesn't exist])
481    done
482    PROGRAM_DIRS="$demos"
483    ;;
484esac
485
486dnl
487dnl Find out if X is available. The variable have_x is set if libX11 is
488dnl found to mimic AC_PATH_XTRA.
489dnl
490if test -n "$PKG_CONFIG"; then
491    AC_MSG_CHECKING([pkg-config files for X11 are available])
492    PKG_CHECK_EXISTS([x11],[
493        x11_pkgconfig=yes
494        have_x=yes
495        ],[
496        x11_pkgconfig=no
497    ])
498    AC_MSG_RESULT([$x11_pkgconfig])
499else
500    x11_pkgconfig=no
501fi
502dnl Use the autoconf macro if no pkg-config files
503if test "$x11_pkgconfig" = no; then
504    AC_PATH_XTRA
505fi
506
507dnl Try to tell the user that the --x-* options are only used when
508dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
509m4_divert_once([HELP_BEGIN],
510[These options are only used when the X libraries cannot be found by the
511pkg-config utility.])
512
513dnl We need X for xlib and dri, so bomb now if it's not found
514case "$mesa_driver" in
515xlib|dri)
516    if test "$no_x" = yes; then
517        AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
518    fi
519    ;;
520esac
521
522dnl XCB - this is only used for GLX right now
523AC_ARG_ENABLE([xcb],
524    [AS_HELP_STRING([--enable-xcb],
525        [use XCB for GLX @<:@default=disabled@:>@])],
526    [enable_xcb="$enableval"],
527    [enable_xcb=no])
528if test "x$enable_xcb" = xyes; then
529    DEFINES="$DEFINES -DUSE_XCB"
530else
531    enable_xcb=no
532fi
533
534dnl
535dnl libGL configuration per driver
536dnl
537case "$mesa_driver" in
538xlib)
539    if test "$x11_pkgconfig" = yes; then
540        PKG_CHECK_MODULES([XLIBGL], [x11 xext])
541        GL_PC_REQ_PRIV="x11 xext"
542        X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
543        GL_LIB_DEPS="$XLIBGL_LIBS"
544    else
545        # should check these...
546        X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
547        GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
548        GL_PC_LIB_PRIV="$GL_LIB_DEPS"
549        GL_PC_CFLAGS="$X11_INCLUDES"
550    fi
551    GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $OS_LIBS"
552    GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread $OS_LIBS"
553
554    # if static, move the external libraries to the programs
555    # and empty the libraries for libGL
556    if test "$enable_static" = yes; then
557        APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
558        GL_LIB_DEPS=""
559    fi
560    ;;
561dri)
562    # DRI must be shared, I think
563    if test "$enable_static" = yes; then
564        AC_MSG_ERROR([Can't use static libraries for DRI drivers])
565    fi
566
567    # Check for libdrm
568    PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
569    PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
570    GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
571    DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
572
573    # find the DRI deps for libGL
574    if test "$x11_pkgconfig" = yes; then
575        # add xcb modules if necessary
576        dri_modules="x11 xext xxf86vm xdamage xfixes"
577        if test "$enable_xcb" = yes; then
578            dri_modules="$dri_modules x11-xcb xcb-glx"
579        fi
580
581        PKG_CHECK_MODULES([DRIGL], [$dri_modules])
582        GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
583        X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
584        GL_LIB_DEPS="$DRIGL_LIBS"
585    else
586        # should check these...
587        X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
588        GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
589        GL_PC_LIB_PRIV="$GL_LIB_DEPS"
590        GL_PC_CFLAGS="$X11_INCLUDES"
591
592        # XCB can only be used from pkg-config
593        if test "$enable_xcb" = yes; then
594            PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
595            GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
596            X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
597            GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
598        fi
599    fi
600
601    # need DRM libs, -lpthread, etc.
602    GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS $OS_LIBS"
603    GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS $OS_LIBS"
604    ;;
605osmesa)
606    # No libGL for osmesa
607    GL_LIB_DEPS="$OS_LIBS"
608    ;;
609esac
610AC_SUBST([GL_LIB_DEPS])
611AC_SUBST([GL_PC_REQ_PRIV])
612AC_SUBST([GL_PC_LIB_PRIV])
613AC_SUBST([GL_PC_CFLAGS])
614AC_SUBST([DRI_PC_REQ_PRIV])
615
616dnl
617dnl More X11 setup
618dnl
619if test "$mesa_driver" = xlib; then
620    DEFINES="$DEFINES -DUSE_XSHM"
621fi
622
623dnl
624dnl More DRI setup
625dnl
626AC_ARG_ENABLE([glx-tls],
627    [AS_HELP_STRING([--enable-glx-tls],
628        [enable TLS support in GLX @<:@default=disabled@:>@])],
629    [GLX_USE_TLS="$enableval"],
630    [GLX_USE_TLS=no])
631dnl Directory for DRI drivers
632AC_ARG_WITH([dri-driverdir],
633    [AS_HELP_STRING([--with-dri-driverdir=DIR],
634        [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
635    [DRI_DRIVER_INSTALL_DIR="$withval"],
636    [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
637AC_SUBST([DRI_DRIVER_INSTALL_DIR])
638dnl Direct rendering or just indirect rendering
639AC_ARG_ENABLE([driglx-direct],
640    [AS_HELP_STRING([--disable-driglx-direct],
641        [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
642    [driglx_direct="$enableval"],
643    [driglx_direct="yes"])
644dnl Which drivers to build - default is chosen by platform
645AC_ARG_WITH([dri-drivers],
646    [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
647        [comma delimited DRI drivers list, e.g.
648        "swrast,i965,radeon,nouveau" @<:@default=auto@:>@])],
649    [with_dri_drivers="$withval"],
650    [with_dri_drivers=yes])
651if test "x$with_dri_drivers" = x; then
652    with_dri_drivers=no
653fi
654
655dnl If $with_dri_drivers is yes, directories will be added through
656dnl platform checks
657DRI_DIRS=""
658case "$with_dri_drivers" in
659no) ;;
660yes)
661    DRI_DIRS="yes"
662    ;;
663*)
664    # verify the requested driver directories exist
665    dri_drivers=`IFS=', '; echo $with_dri_drivers`
666    for driver in $dri_drivers; do
667        test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
668            AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
669    done
670    DRI_DIRS="$dri_drivers"
671    ;;
672esac
673
674dnl Just default to no EGL for now
675USING_EGL=0
676AC_SUBST([USING_EGL])
677
678dnl Set DRI_DIRS, DEFINES and LIB_DEPS
679if test "$mesa_driver" = dri; then
680    # Use TLS in GLX?
681    if test "x$GLX_USE_TLS" = xyes; then
682        DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
683    fi
684
685    if test "x$USING_EGL" = x1; then
686        PROGRAM_DIRS="egl"
687    fi
688
689    # Platform specific settings and drivers to build
690    case "$host_os" in
691    linux*)
692        DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
693        if test "x$driglx_direct" = xyes; then
694            DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
695        fi
696        DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
697
698        case "$host_cpu" in
699        x86_64)
700            # ffb, gamma, and sis are missing because they have not be
701            # converted to use the new interface.  i810 are missing
702            # because there is no x86-64 system where they could *ever*
703            # be used.
704            if test "x$DRI_DIRS" = "xyes"; then
705                DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 radeon \
706                    savage tdfx unichrome swrast"
707            fi
708            ;;
709        powerpc*)
710            # Build only the drivers for cards that exist on PowerPC.
711            # At some point MGA will be added, but not yet.
712            if test "x$DRI_DIRS" = "xyes"; then
713                DRI_DIRS="mach64 r128 r200 r300 radeon tdfx swrast"
714            fi
715            ;;
716        sparc*)
717            # Build only the drivers for cards that exist on sparc`
718            if test "x$DRI_DIRS" = "xyes"; then
719                DRI_DIRS="mach64 r128 r200 r300 radeon ffb swrast"
720            fi
721            ;;
722        esac
723        ;;
724    freebsd* | dragonfly*)
725        DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
726        DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
727        DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
728        if test "x$driglx_direct" = xyes; then
729            DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
730        fi
731        if test "x$GXX" = xyes; then
732            CXXFLAGS="$CXXFLAGS -ansi -pedantic"
733        fi
734
735        # ffb and gamma are missing because they have not been converted
736        # to use the new interface.
737        if test "x$DRI_DIRS" = "xyes"; then
738            DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
739                unichrome savage sis swrast"
740        fi
741        ;;
742    solaris*)
743        DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
744        DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
745        if test "x$driglx_direct" = xyes; then
746            DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
747        fi
748        ;;
749    esac
750
751    # default drivers
752    if test "x$DRI_DIRS" = "xyes"; then
753        DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \
754            savage sis tdfx trident unichrome ffb swrast"
755    fi
756
757    DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/  */ /g'`
758
759    # Check for expat
760    EXPAT_INCLUDES=""
761    EXPAT_LIB=-lexpat
762    AC_ARG_WITH([expat],
763        [AS_HELP_STRING([--with-expat=DIR],
764            [expat install directory])],[
765        EXPAT_INCLUDES="-I$withval/include"
766        CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
767        LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
768        EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
769        ])
770    AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
771    AC_CHECK_LIB([expat],[XML_ParserCreate],[],
772        [AC_MSG_ERROR([Expat required for DRI.])])
773
774    # put all the necessary libs together
775    DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
776fi
777AC_SUBST([DRI_DIRS])
778AC_SUBST([EXPAT_INCLUDES])
779AC_SUBST([DRI_LIB_DEPS])
780
781dnl
782dnl OSMesa configuration
783dnl
784if test "$mesa_driver" = xlib; then
785    default_gl_osmesa=yes
786else
787    default_gl_osmesa=no
788fi
789AC_ARG_ENABLE([gl-osmesa],
790    [AS_HELP_STRING([--enable-gl-osmesa],
791        [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
792    [gl_osmesa="$enableval"],
793    [gl_osmesa="$default_gl_osmesa"])
794if test "x$gl_osmesa" = xyes; then
795    if test "$mesa_driver" = osmesa; then
796        AC_MSG_ERROR([libGL is not available for OSMesa driver])
797    else
798        DRIVER_DIRS="$DRIVER_DIRS osmesa"
799    fi
800fi
801
802dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
803AC_ARG_WITH([osmesa-bits],
804    [AS_HELP_STRING([--with-osmesa-bits=BITS],
805        [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
806    [osmesa_bits="$withval"],
807    [osmesa_bits=8])
808if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
809    AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
810    osmesa_bits=8
811fi
812case "x$osmesa_bits" in
813x8)
814    OSMESA_LIB=OSMesa
815    ;;
816x16|x32)
817    OSMESA_LIB="OSMesa$osmesa_bits"
818    DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
819    ;;
820*)
821    AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
822    ;;
823esac
824AC_SUBST([OSMESA_LIB])
825
826case "$mesa_driver" in
827osmesa)
828    # only link libraries with osmesa if shared
829    if test "$enable_static" = no; then
830        OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS"
831    else
832        OSMESA_LIB_DEPS=""
833    fi
834    OSMESA_MESA_DEPS=""
835    OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS"
836    ;;
837*)
838    # Link OSMesa to libGL otherwise
839    OSMESA_LIB_DEPS=""
840    # only link libraries with osmesa if shared
841    if test "$enable_static" = no; then
842        OSMESA_MESA_DEPS='-l$(GL_LIB)'
843    else
844        OSMESA_MESA_DEPS=""
845    fi
846    OSMESA_PC_REQ="gl"
847    ;;
848esac
849if test "$enable_static" = no; then
850    OSMESA_LIB_DEPS="$OSMESA_LIB_DEPS $OS_LIBS"
851fi
852OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV $OS_LIBS"
853AC_SUBST([OSMESA_LIB_DEPS])
854AC_SUBST([OSMESA_MESA_DEPS])
855AC_SUBST([OSMESA_PC_REQ])
856AC_SUBST([OSMESA_PC_LIB_PRIV])
857
858dnl
859dnl GLU configuration
860dnl
861AC_ARG_ENABLE([glu],
862    [AS_HELP_STRING([--disable-glu],
863        [enable OpenGL Utility library @<:@default=enabled@:>@])],
864    [enable_glu="$enableval"],
865    [enable_glu=yes])
866if test "x$enable_glu" = xyes; then
867    SRC_DIRS="$SRC_DIRS glu"
868
869    case "$mesa_driver" in
870    osmesa)
871        # If GLU is available and we have libOSMesa (not 16 or 32),
872        # we can build the osdemos
873        if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
874            PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
875        fi
876
877        # Link libGLU to libOSMesa instead of libGL
878        GLU_LIB_DEPS=""
879        GLU_PC_REQ="osmesa"
880        if test "$enable_static" = no; then
881            GLU_MESA_DEPS='-l$(OSMESA_LIB)'
882        else
883            GLU_MESA_DEPS=""
884        fi
885        ;;
886    *)
887        # If static, empty GLU_LIB_DEPS and add libs for programs to link
888        GLU_PC_REQ="gl"
889        GLU_PC_LIB_PRIV="-lm"
890        if test "$enable_static" = no; then
891            GLU_LIB_DEPS="-lm"
892            GLU_MESA_DEPS='-l$(GL_LIB)'
893        else
894            GLU_LIB_DEPS=""
895            GLU_MESA_DEPS=""
896            APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
897        fi
898        ;;
899    esac
900fi
901if test "$enable_static" = no; then
902    GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
903fi
904GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
905AC_SUBST([GLU_LIB_DEPS])
906AC_SUBST([GLU_MESA_DEPS])
907AC_SUBST([GLU_PC_REQ])
908AC_SUBST([GLU_PC_REQ_PRIV])
909AC_SUBST([GLU_PC_LIB_PRIV])
910AC_SUBST([GLU_PC_CFLAGS])
911
912dnl
913dnl GLw configuration
914dnl
915AC_ARG_ENABLE([glw],
916    [AS_HELP_STRING([--disable-glw],
917        [enable Xt/Motif widget library @<:@default=enabled@:>@])],
918    [enable_glw="$enableval"],
919    [enable_glw=yes])
920dnl Don't build GLw on osmesa
921if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
922    AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
923    enable_glw=no
924fi
925AC_ARG_ENABLE([motif],
926    [AS_HELP_STRING([--enable-motif],
927        [use Motif widgets in GLw @<:@default=disabled@:>@])],
928    [enable_motif="$enableval"],
929    [enable_motif=no])
930
931if test "x$enable_glw" = xyes; then
932    SRC_DIRS="$SRC_DIRS glw"
933    if test "$x11_pkgconfig" = yes; then
934        PKG_CHECK_MODULES([GLW],[x11 xt])
935        GLW_PC_REQ_PRIV="x11 xt"
936        GLW_LIB_DEPS="$GLW_LIBS"
937    else
938        # should check these...
939        GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
940        GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
941        GLW_PC_CFLAGS="$X11_INCLUDES"
942    fi
943
944    GLW_SOURCES="GLwDrawA.c"
945    MOTIF_CFLAGS=
946    if test "x$enable_motif" = xyes; then
947        GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
948        AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
949        if test "x$MOTIF_CONFIG" != xno; then
950            MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
951            MOTIF_LIBS=`$MOTIF_CONFIG --libs`
952        else
953            AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
954                [AC_MSG_ERROR([Can't locate Motif headers])])
955            AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
956                [AC_MSG_ERROR([Can't locate Motif Xm library])])
957        fi
958        # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
959        GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
960        GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
961        GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
962    fi
963
964    # If static, empty GLW_LIB_DEPS and add libs for programs to link
965    GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV $OS_LIBS"
966    if test "$enable_static" = no; then
967        GLW_MESA_DEPS='-l$(GL_LIB)'
968        GLW_LIB_DEPS="$GLW_LIB_DEPS $OS_LIBS"
969    else
970        APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
971        GLW_LIB_DEPS=""
972        GLW_MESA_DEPS=""
973    fi
974fi
975AC_SUBST([GLW_LIB_DEPS])
976AC_SUBST([GLW_MESA_DEPS])
977AC_SUBST([GLW_SOURCES])
978AC_SUBST([MOTIF_CFLAGS])
979AC_SUBST([GLW_PC_REQ_PRIV])
980AC_SUBST([GLW_PC_LIB_PRIV])
981AC_SUBST([GLW_PC_CFLAGS])
982
983dnl
984dnl GLUT configuration
985dnl
986if test -f "$srcdir/include/GL/glut.h"; then
987    default_glut=yes
988else
989    default_glut=no
990fi
991AC_ARG_ENABLE([glut],
992    [AS_HELP_STRING([--disable-glut],
993        [enable GLUT library @<:@default=enabled if source available@:>@])],
994    [enable_glut="$enableval"],
995    [enable_glut="$default_glut"])
996
997dnl Can't build glut if GLU not available
998if test "x$enable_glu$enable_glut" = xnoyes; then
999    AC_MSG_WARN([Disabling glut since GLU is disabled])
1000    enable_glut=no
1001fi
1002dnl Don't build glut on osmesa
1003if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1004    AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1005    enable_glut=no
1006fi
1007
1008if test "x$enable_glut" = xyes; then
1009    SRC_DIRS="$SRC_DIRS glut/glx"
1010    GLUT_CFLAGS=""
1011    if test "x$GCC" = xyes; then
1012        GLUT_CFLAGS="-fexceptions"
1013    fi
1014    if test "$x11_pkgconfig" = yes; then
1015        PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1016        GLUT_PC_REQ_PRIV="x11 xmu xi"
1017        GLUT_LIB_DEPS="$GLUT_LIBS"
1018    else
1019        # should check these...
1020        GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1021        GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1022        GLUT_PC_CFLAGS="$X11_INCLUDES"
1023    fi
1024    GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm $OS_LIBS"
1025    GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm $OS_LIBS"
1026
1027    # If glut is available, we can build most programs
1028    if test "$with_demos" = yes; then
1029        PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
1030    fi
1031
1032    # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1033    if test "$enable_static" = no; then
1034        GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1035    else
1036        APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1037        GLUT_LIB_DEPS=""
1038        GLUT_MESA_DEPS=""
1039    fi
1040fi
1041AC_SUBST([GLUT_LIB_DEPS])
1042AC_SUBST([GLUT_MESA_DEPS])
1043AC_SUBST([GLUT_CFLAGS])
1044AC_SUBST([GLUT_PC_REQ_PRIV])
1045AC_SUBST([GLUT_PC_LIB_PRIV])
1046AC_SUBST([GLUT_PC_CFLAGS])
1047
1048dnl
1049dnl Program library dependencies
1050dnl    Only libm is added here if necessary as the libraries should
1051dnl    be pulled in by the linker
1052dnl
1053if test "x$APP_LIB_DEPS" = x; then
1054    case "$host_os" in
1055    solaris*)
1056        APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1057        ;;
1058    *)
1059        APP_LIB_DEPS="-lm"
1060        ;;
1061    esac
1062fi
1063AC_SUBST([APP_LIB_DEPS])
1064AC_SUBST([PROGRAM_DIRS])
1065
1066dnl
1067dnl Gallium configuration
1068dnl
1069AC_ARG_ENABLE([gallium],
1070    [AS_HELP_STRING([--disable-gallium],
1071        [build gallium @<:@default=enabled@:>@])],
1072    [enable_gallium="$enableval"],
1073    [enable_gallium=yes])
1074if test "x$enable_gallium" = xyes; then
1075    SRC_DIRS="$SRC_DIRS gallium gallium/winsys"
1076fi
1077
1078dnl
1079dnl Gallium state trackers configuration
1080dnl
1081AC_ARG_WITH([state-trackers],
1082    [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1083        [comma delimited state_trackers list, e.g.
1084        "egl,glx" @<:@default=auto@:>@])],
1085    [with_state_trackers="$withval"],
1086    [with_state_trackers=yes])
1087
1088case "$with_state_trackers" in
1089no)
1090    GALLIUM_STATE_TRACKERS_DIRS=""
1091    ;;
1092yes)
1093    # look at what else is built
1094    case "$mesa_driver" in
1095    dri)
1096        GALLIUM_STATE_TRACKERS_DIRS=egl
1097        ;;
1098    esac
1099    ;;
1100*)
1101    # verify the requested state tracker exist
1102    state_trackers=`IFS=', '; echo $with_state_trackers`
1103    for tracker in $state_trackers; do
1104        test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1105            AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1106    done
1107    GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1108    ;;
1109esac
1110
1111dnl
1112dnl Gallium Intel configuration
1113dnl
1114AC_ARG_ENABLE([gallium-intel],
1115    [AS_HELP_STRING([--disable-gallium-intel],
1116        [build gallium intel @<:@default=enabled@:>@])],
1117    [enable_gallium_intel="$enableval"],
1118    [enable_gallium_intel=yes])
1119if test "x$enable_gallium_intel" = xyes; then
1120    GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel"
1121    GALLIUM_DRIVER_DIRS="$GALLIUM_DRIVER_DIRS i915simple i965simple"
1122fi
1123
1124dnl
1125dnl Gallium Radeon configuration
1126dnl
1127AC_ARG_ENABLE([gallium-radeon],
1128    [AS_HELP_STRING([--enable-gallium-radeon],
1129        [build gallium radeon @<:@default=disabled@:>@])],
1130    [enable_gallium_radeon="$enableval"],
1131    [enable_gallium_radeon=no])
1132if test "x$enable_gallium_radeon" = xyes; then
1133    GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon"
1134    GALLIUM_DRIVER_DIRS="$GALLIUM_DRIVER_DIRS r300"
1135fi
1136
1137dnl
1138dnl Gallium Radeon configuration
1139dnl
1140AC_ARG_ENABLE([gallium-nouveau],
1141    [AS_HELP_STRING([--enable-gallium-nouveau],
1142        [build gallium nouveau @<:@default=disabled@:>@])],
1143    [enable_gallium_nouveau="$enableval"],
1144    [enable_gallium_nouveau=no])
1145if test "x$enable_gallium_nouveau" = xyes; then
1146    GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau"
1147    GALLIUM_DRIVER_DIRS="$GALLIUM_DRIVER_DIRS nv04 nv10 nv20 nv30 nv40 nv50"
1148fi
1149
1150
1151dnl Restore LDFLAGS and CPPFLAGS
1152LDFLAGS="$_SAVE_LDFLAGS"
1153CPPFLAGS="$_SAVE_CPPFLAGS"
1154
1155dnl Substitute the config
1156AC_CONFIG_FILES([configs/autoconf])
1157
1158dnl Replace the configs/current symlink
1159AC_CONFIG_COMMANDS([configs],[
1160if test -f configs/current || test -L configs/current; then
1161    rm -f configs/current
1162fi
1163ln -s autoconf configs/current
1164])
1165
1166AC_OUTPUT
1167
1168dnl
1169dnl Output some configuration info for the user
1170dnl
1171echo ""
1172echo "        prefix:          $prefix"
1173echo "        exec_prefix:     $exec_prefix"
1174echo "        libdir:          $libdir"
1175echo "        includedir:      $includedir"
1176
1177dnl Driver info
1178echo ""
1179echo "        Driver:          $mesa_driver"
1180if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1181    echo "        OSMesa:          lib$OSMESA_LIB"
1182else
1183    echo "        OSMesa:          no"
1184fi
1185if test "$mesa_driver" = dri; then
1186    # cleanup the drivers var
1187    dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
1188if test "x$DRI_DIRS" = x; then
1189    echo "        DRI drivers:     no"
1190else
1191    echo "        DRI drivers:     $dri_dirs"
1192fi
1193    echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
1194fi
1195echo "        Use XCB:         $enable_xcb"
1196
1197echo ""
1198if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1199    echo "        Gallium:         yes"
1200    echo "        Gallium dirs:    $GALLIUM_DIRS"
1201    echo "        Winsys dirs:     $GALLIUM_WINSYS_DIRS"
1202    echo "        Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS"
1203    echo "        Auxiliary dirs:  $GALLIUM_AUXILIARY_DIRS"
1204    echo "        Driver dirs:     $GALLIUM_DRIVER_DIRS"
1205    echo "        Trackers dirs:   $GALLIUM_STATE_TRACKERS_DIRS"
1206else
1207    echo "        Gallium:         no"
1208fi
1209
1210dnl Libraries
1211echo ""
1212echo "        Shared libs:     $enable_shared"
1213echo "        Static libs:     $enable_static"
1214echo "        GLU:             $enable_glu"
1215echo "        GLw:             $enable_glw (Motif: $enable_motif)"
1216echo "        glut:            $enable_glut"
1217
1218dnl Programs
1219# cleanup the programs var for display
1220program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
1221if test "x$program_dirs" = x; then
1222    echo "        Demos:           no"
1223else
1224    echo "        Demos:           $program_dirs"
1225fi
1226
1227dnl Compiler options
1228# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1229cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1230    $SED 's/^ *//;s/  */ /;s/ *$//'`
1231cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1232    $SED 's/^ *//;s/  */ /;s/ *$//'`
1233defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/  */ /;s/ *$//'`
1234echo ""
1235echo "        CFLAGS:          $cflags"
1236echo "        CXXFLAGS:        $cxxflags"
1237echo "        Macros:          $defines"
1238
1239echo ""
1240echo "        Run '${MAKE-make}' to build Mesa"
1241echo ""
1242