configure.ac revision 6356303de63c170a63c35f2b1edec76d9f8eba45
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' | tr -d '\r'])])
8m4_ifval(mesa_version,,
9    [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
10
11dnl Tell the user about autoconf.html in the --help output
12m4_divert_once([HELP_END], [
13See docs/autoconf.html for more details on the options for Mesa.])
14
15AC_INIT([Mesa],[mesa_version],
16    [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17AC_CONFIG_AUX_DIR([bin])
18AC_CANONICAL_HOST
19
20dnl Versions for external dependencies
21LIBDRM_REQUIRED=2.4.15
22LIBDRM_RADEON_REQUIRED=2.4.17
23DRI2PROTO_REQUIRED=2.1
24GLPROTO_REQUIRED=1.4.11
25LIBDRM_XORG_REQUIRED=2.4.17
26LIBKMS_XORG_REQUIRED=1.0.0
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 Our fallback install-sh is a symlink to minstall. Use the existing
37dnl configuration in that case.
38AC_PROG_INSTALL
39test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
40
41dnl We need a POSIX shell for parts of the build. Assume we have one
42dnl in most cases.
43case "$host_os" in
44solaris*)
45    # Solaris /bin/sh is too old/non-POSIX compliant
46    AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
47    SHELL="$POSIX_SHELL"
48    ;;
49esac
50
51dnl If we're using GCC, make sure that it is at least version 3.3.0.  Older
52dnl versions are explictly not supported.
53if test "x$GCC" = xyes; then
54    AC_MSG_CHECKING([whether gcc version is sufficient])
55    major=0
56    minor=0
57
58    GCC_VERSION=`$CC -dumpversion`
59    if test $? -eq 0; then
60        major=`echo $GCC_VERSION | cut -d. -f1`
61        minor=`echo $GCC_VERSION | cut -d. -f1`
62    fi
63
64    if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
65        AC_MSG_RESULT([no])
66        AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
67    else
68        AC_MSG_RESULT([yes])
69    fi
70fi
71
72
73MKDEP_OPTIONS=-fdepend
74dnl Ask gcc where it's keeping its secret headers
75if test "x$GCC" = xyes; then
76    for dir in include include-fixed; do
77        GCC_INCLUDES=`$CC -print-file-name=$dir`
78        if test "x$GCC_INCLUDES" != x && \
79           test "$GCC_INCLUDES" != "$dir" && \
80           test -d "$GCC_INCLUDES"; then
81            MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
82        fi
83    done
84fi
85AC_SUBST([MKDEP_OPTIONS])
86
87dnl Make sure the pkg-config macros are defined
88m4_ifndef([PKG_PROG_PKG_CONFIG],
89    [m4_fatal([Could not locate the pkg-config autoconf macros.
90  These are usually located in /usr/share/aclocal/pkg.m4. If your macros
91  are in a different location, try setting the environment variable
92  ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
93PKG_PROG_PKG_CONFIG()
94
95dnl LIB_DIR - library basename
96LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
97AC_SUBST([LIB_DIR])
98
99dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
100_SAVE_LDFLAGS="$LDFLAGS"
101AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
102AC_SUBST([EXTRA_LIB_PATH])
103
104dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
105_SAVE_CPPFLAGS="$CPPFLAGS"
106AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
107AC_SUBST([X11_INCLUDES])
108
109dnl Compiler macros
110DEFINES=""
111AC_SUBST([DEFINES])
112case "$host_os" in
113linux*|*-gnu*|gnu*)
114    DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
115    ;;
116solaris*)
117    DEFINES="$DEFINES -DPTHREADS -DSVR4"
118    ;;
119cygwin*)
120    DEFINES="$DEFINES -DPTHREADS"
121    ;;
122esac
123
124dnl Add flags for gcc and g++
125if test "x$GCC" = xyes; then
126    CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99 -ffast-math"
127
128    # Enable -fvisibility=hidden if using a gcc that supports it
129    save_CFLAGS="$CFLAGS"
130    AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
131    CFLAGS="$CFLAGS -fvisibility=hidden"
132    AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
133		   [CFLAGS="$save_CFLAGS" ; AC_MSG_RESULT([no])]);
134
135    # Work around aliasing bugs - developers should comment this out
136    CFLAGS="$CFLAGS -fno-strict-aliasing"
137fi
138if test "x$GXX" = xyes; then
139    CXXFLAGS="$CXXFLAGS -Wall"
140
141    # Work around aliasing bugs - developers should comment this out
142    CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
143fi
144
145dnl These should be unnecessary, but let the user set them if they want
146AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
147    Default is to use CFLAGS.])
148AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
149    compiler. Default is to use CFLAGS.])
150AC_SUBST([OPT_FLAGS])
151AC_SUBST([ARCH_FLAGS])
152
153dnl
154dnl Hacks to enable 32 or 64 bit build
155dnl
156AC_ARG_ENABLE([32-bit],
157    [AS_HELP_STRING([--enable-32-bit],
158        [build 32-bit libraries @<:@default=auto@:>@])],
159    [enable_32bit="$enableval"],
160    [enable_32bit=auto]
161)
162if test "x$enable_32bit" = xyes; then
163    if test "x$GCC" = xyes; then
164        CFLAGS="$CFLAGS -m32"
165        ARCH_FLAGS="$ARCH_FLAGS -m32"
166    fi
167    if test "x$GXX" = xyes; then
168        CXXFLAGS="$CXXFLAGS -m32"
169    fi
170fi
171AC_ARG_ENABLE([64-bit],
172    [AS_HELP_STRING([--enable-64-bit],
173        [build 64-bit libraries @<:@default=auto@:>@])],
174    [enable_64bit="$enableval"],
175    [enable_64bit=auto]
176)
177if test "x$enable_64bit" = xyes; then
178    if test "x$GCC" = xyes; then
179        CFLAGS="$CFLAGS -m64"
180    fi
181    if test "x$GXX" = xyes; then
182        CXXFLAGS="$CXXFLAGS -m64"
183    fi
184fi
185
186dnl
187dnl shared/static libraries, mimic libtool options
188dnl
189AC_ARG_ENABLE([static],
190    [AS_HELP_STRING([--enable-static],
191        [build static libraries @<:@default=disabled@:>@])],
192    [enable_static="$enableval"],
193    [enable_static=no]
194)
195case "x$enable_static" in
196xyes|xno ) ;;
197x ) enable_static=no ;;
198* )
199    AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
200    ;;
201esac
202AC_ARG_ENABLE([shared],
203    [AS_HELP_STRING([--disable-shared],
204        [build shared libraries @<:@default=enabled@:>@])],
205    [enable_shared="$enableval"],
206    [enable_shared=yes]
207)
208case "x$enable_shared" in
209xyes|xno ) ;;
210x ) enable_shared=yes ;;
211* )
212    AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
213    ;;
214esac
215
216dnl Can't have static and shared libraries, default to static if user
217dnl explicitly requested. If both disabled, set to static since shared
218dnl was explicitly requirested.
219case "x$enable_static$enable_shared" in
220xyesyes )
221    AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
222    enable_shared=no
223    ;;
224xnono )
225    AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
226    enable_static=yes
227    ;;
228esac
229
230dnl
231dnl mklib options
232dnl
233AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
234if test "$enable_static" = yes; then
235    MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
236fi
237AC_SUBST([MKLIB_OPTIONS])
238
239dnl
240dnl other compiler options
241dnl
242AC_ARG_ENABLE([debug],
243    [AS_HELP_STRING([--enable-debug],
244        [use debug compiler flags and macros @<:@default=disabled@:>@])],
245    [enable_debug="$enableval"],
246    [enable_debug=no]
247)
248if test "x$enable_debug" = xyes; then
249    DEFINES="$DEFINES -DDEBUG"
250    if test "x$GCC" = xyes; then
251        CFLAGS="$CFLAGS -g"
252    fi
253    if test "x$GXX" = xyes; then
254        CXXFLAGS="$CXXFLAGS -g"
255    fi
256fi
257
258dnl
259dnl library names
260dnl
261if test "$enable_static" = yes; then
262    LIB_EXTENSION='a'
263else
264    case "$host_os" in
265    darwin* )
266        LIB_EXTENSION='dylib' ;;
267    cygwin* )
268        LIB_EXTENSION='dll.a' ;;
269    aix* )
270        LIB_EXTENSION='a' ;;
271    * )
272        LIB_EXTENSION='so' ;;
273    esac
274fi
275
276GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
277GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
278GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
279GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
280OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
281EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
282GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
283GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
284VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
285
286GL_LIB_GLOB='lib$(GL_LIB).*'${LIB_EXTENSION}'*'
287GLU_LIB_GLOB='lib$(GLU_LIB).*'${LIB_EXTENSION}'*'
288GLUT_LIB_GLOB='lib$(GLUT_LIB).*'${LIB_EXTENSION}'*'
289GLW_LIB_GLOB='lib$(GLW_LIB).*'${LIB_EXTENSION}'*'
290OSMESA_LIB_GLOB='lib$(OSMESA_LIB).*'${LIB_EXTENSION}'*'
291EGL_LIB_GLOB='lib$(EGL_LIB).*'${LIB_EXTENSION}'*'
292GLESv1_CM_LIB_GLOB='lib$(GLESv1_CM_LIB).*'${LIB_EXTENSION}'*'
293GLESv2_LIB_GLOB='lib$(GLESv2_LIB).*'${LIB_EXTENSION}'*'
294VG_LIB_GLOB='lib$(VG_LIB).*'${LIB_EXTENSION}'*'
295
296AC_SUBST([GL_LIB_NAME])
297AC_SUBST([GLU_LIB_NAME])
298AC_SUBST([GLUT_LIB_NAME])
299AC_SUBST([GLW_LIB_NAME])
300AC_SUBST([OSMESA_LIB_NAME])
301AC_SUBST([EGL_LIB_NAME])
302AC_SUBST([GLESv1_CM_LIB_NAME])
303AC_SUBST([GLESv2_LIB_NAME])
304AC_SUBST([VG_LIB_NAME])
305
306AC_SUBST([GL_LIB_GLOB])
307AC_SUBST([GLU_LIB_GLOB])
308AC_SUBST([GLUT_LIB_GLOB])
309AC_SUBST([GLW_LIB_GLOB])
310AC_SUBST([OSMESA_LIB_GLOB])
311AC_SUBST([EGL_LIB_GLOB])
312AC_SUBST([GLESv1_CM_LIB_GLOB])
313AC_SUBST([GLESv2_LIB_GLOB])
314AC_SUBST([VG_LIB_GLOB])
315
316dnl
317dnl Arch/platform-specific settings
318dnl
319AC_ARG_ENABLE([asm],
320    [AS_HELP_STRING([--disable-asm],
321        [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
322    [enable_asm="$enableval"],
323    [enable_asm=yes]
324)
325asm_arch=""
326ASM_FLAGS=""
327MESA_ASM_SOURCES=""
328GLAPI_ASM_SOURCES=""
329AC_MSG_CHECKING([whether to enable assembly])
330test "x$enable_asm" = xno && AC_MSG_RESULT([no])
331# disable if cross compiling on x86/x86_64 since we must run gen_matypes
332if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
333    case "$host_cpu" in
334    i?86 | x86_64)
335        enable_asm=no
336        AC_MSG_RESULT([no, cross compiling])
337        ;;
338    esac
339fi
340# check for supported arches
341if test "x$enable_asm" = xyes; then
342    case "$host_cpu" in
343    i?86)
344        case "$host_os" in
345        linux* | *freebsd* | dragonfly*)
346            test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
347            ;;
348        esac
349        ;;
350    x86_64)
351        case "$host_os" in
352        linux* | *freebsd* | dragonfly*)
353            test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
354            ;;
355        esac
356        ;;
357    powerpc)
358        case "$host_os" in
359        linux*)
360            asm_arch=ppc
361            ;;
362        esac
363        ;;
364    sparc*)
365        case "$host_os" in
366        linux*)
367            asm_arch=sparc
368            ;;
369        esac
370        ;;
371    esac
372
373    case "$asm_arch" in
374    x86)
375        ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
376        MESA_ASM_SOURCES='$(X86_SOURCES)'
377        GLAPI_ASM_SOURCES='$(X86_API)'
378        AC_MSG_RESULT([yes, x86])
379        ;;
380    x86_64)
381        ASM_FLAGS="-DUSE_X86_64_ASM"
382        MESA_ASM_SOURCES='$(X86-64_SOURCES)'
383        GLAPI_ASM_SOURCES='$(X86-64_API)'
384        AC_MSG_RESULT([yes, x86_64])
385        ;;
386    ppc)
387        ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
388        MESA_ASM_SOURCES='$(PPC_SOURCES)'
389        AC_MSG_RESULT([yes, ppc])
390        ;;
391    sparc)
392        ASM_FLAGS="-DUSE_SPARC_ASM"
393        MESA_ASM_SOURCES='$(SPARC_SOURCES)'
394        GLAPI_ASM_SOURCES='$(SPARC_API)'
395        AC_MSG_RESULT([yes, sparc])
396        ;;
397    *)
398        AC_MSG_RESULT([no, platform not supported])
399        ;;
400    esac
401fi
402AC_SUBST([ASM_FLAGS])
403AC_SUBST([MESA_ASM_SOURCES])
404AC_SUBST([GLAPI_ASM_SOURCES])
405
406dnl PIC code macro
407MESA_PIC_FLAGS
408
409dnl Check to see if dlopen is in default libraries (like Solaris, which
410dnl has it in libc), or if libdl is needed to get it.
411AC_CHECK_FUNC([dlopen], [],
412    [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
413AC_SUBST([DLOPEN_LIBS])
414
415dnl See if posix_memalign is available
416AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
417
418dnl SELinux awareness.
419AC_ARG_ENABLE([selinux],
420    [AS_HELP_STRING([--enable-selinux],
421        [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
422    [MESA_SELINUX="$enableval"],
423    [MESA_SELINUX=no])
424if test "x$enable_selinux" = "xyes"; then
425    AC_CHECK_HEADER([selinux/selinux.h],[],
426                    [AC_MSG_ERROR([SELinux headers not found])])
427    AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
428                 [AC_MSG_ERROR([SELinux library not found])])
429    SELINUX_LIBS="-lselinux"
430    DEFINES="$DEFINES -DMESA_SELINUX"
431fi
432
433dnl
434dnl Driver configuration. Options are xlib, dri and osmesa right now.
435dnl More later: fbdev, ...
436dnl
437default_driver="xlib"
438
439case "$host_os" in
440linux*)
441    case "$host_cpu" in
442    i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
443    esac
444    ;;
445*freebsd* | dragonfly*)
446    case "$host_cpu" in
447    i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
448    esac
449    ;;
450esac
451
452AC_ARG_WITH([driver],
453    [AS_HELP_STRING([--with-driver=DRIVER],
454        [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
455    [mesa_driver="$withval"],
456    [mesa_driver="$default_driver"])
457dnl Check for valid option
458case "x$mesa_driver" in
459xxlib|xdri|xosmesa)
460    ;;
461*)
462    AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
463    ;;
464esac
465
466PKG_CHECK_MODULES([TALLOC], [talloc])
467AC_SUBST([TALLOC_LIBS])
468AC_SUBST([TALLOC_CFLAGS])
469
470dnl
471dnl Driver specific build directories
472dnl
473
474dnl this variable will be prepended to SRC_DIRS and is not exported
475CORE_DIRS="mapi/glapi glsl mesa"
476
477SRC_DIRS=""
478GLU_DIRS="sgi"
479GALLIUM_DIRS="auxiliary drivers state_trackers"
480GALLIUM_TARGET_DIRS=""
481GALLIUM_WINSYS_DIRS="sw"
482GALLIUM_DRIVERS_DIRS="softpipe failover galahad trace rbug identity"
483GALLIUM_STATE_TRACKERS_DIRS=""
484
485case "$mesa_driver" in
486xlib)
487    DRIVER_DIRS="x11"
488    GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
489    GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
490    ;;
491dri)
492    SRC_DIRS="$SRC_DIRS glx"
493    DRIVER_DIRS="dri"
494    GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib sw/dri"
495    ;;
496osmesa)
497    DRIVER_DIRS="osmesa"
498    ;;
499esac
500AC_SUBST([SRC_DIRS])
501AC_SUBST([GLU_DIRS])
502AC_SUBST([DRIVER_DIRS])
503AC_SUBST([GALLIUM_DIRS])
504AC_SUBST([GALLIUM_TARGET_DIRS])
505AC_SUBST([GALLIUM_WINSYS_DIRS])
506AC_SUBST([GALLIUM_DRIVERS_DIRS])
507AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
508AC_SUBST([MESA_LLVM])
509
510dnl
511dnl Find out if X is available. The variable have_x is set if libX11 is
512dnl found to mimic AC_PATH_XTRA.
513dnl
514if test -n "$PKG_CONFIG"; then
515    AC_MSG_CHECKING([pkg-config files for X11 are available])
516    PKG_CHECK_EXISTS([x11],[
517        x11_pkgconfig=yes
518        have_x=yes
519        ],[
520        x11_pkgconfig=no
521    ])
522    AC_MSG_RESULT([$x11_pkgconfig])
523else
524    x11_pkgconfig=no
525fi
526dnl Use the autoconf macro if no pkg-config files
527if test "$x11_pkgconfig" = yes; then
528    PKG_CHECK_MODULES([X11], [x11])
529else
530    AC_PATH_XTRA
531    test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
532    test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
533    AC_SUBST([X11_CFLAGS])
534    AC_SUBST([X11_LIBS])
535fi
536
537dnl Try to tell the user that the --x-* options are only used when
538dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
539m4_divert_once([HELP_BEGIN],
540[These options are only used when the X libraries cannot be found by the
541pkg-config utility.])
542
543dnl We need X for xlib and dri, so bomb now if it's not found
544case "$mesa_driver" in
545xlib|dri)
546    if test "$no_x" = yes; then
547        AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
548    fi
549    ;;
550esac
551
552dnl XCB - this is only used for GLX right now
553AC_ARG_ENABLE([xcb],
554    [AS_HELP_STRING([--enable-xcb],
555        [use XCB for GLX @<:@default=disabled@:>@])],
556    [enable_xcb="$enableval"],
557    [enable_xcb=no])
558if test "x$enable_xcb" = xyes; then
559    DEFINES="$DEFINES -DUSE_XCB"
560else
561    enable_xcb=no
562fi
563
564dnl
565dnl libGL configuration per driver
566dnl
567case "$mesa_driver" in
568xlib)
569    if test "$x11_pkgconfig" = yes; then
570        PKG_CHECK_MODULES([XLIBGL], [x11 xext])
571        GL_PC_REQ_PRIV="x11 xext"
572        X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
573        GL_LIB_DEPS="$XLIBGL_LIBS"
574    else
575        # should check these...
576        X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
577        GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
578        GL_PC_LIB_PRIV="$GL_LIB_DEPS"
579        GL_PC_CFLAGS="$X11_INCLUDES"
580    fi
581    GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $TALLOC_LIBS"
582    GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread $TALLOC_LIBS"
583
584    # if static, move the external libraries to the programs
585    # and empty the libraries for libGL
586    if test "$enable_static" = yes; then
587        APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
588        GL_LIB_DEPS=""
589    fi
590    ;;
591dri)
592    # DRI must be shared, I think
593    if test "$enable_static" = yes; then
594        AC_MSG_ERROR([Can't use static libraries for DRI drivers])
595    fi
596
597    # Check for libdrm
598    PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
599    PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
600    PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
601    GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED glproto >= $GLPROTO_REQUIRED"
602    DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
603
604    # find the DRI deps for libGL
605    if test "$x11_pkgconfig" = yes; then
606        # add xcb modules if necessary
607        dri_modules="x11 xext xxf86vm xdamage xfixes"
608        if test "$enable_xcb" = yes; then
609            dri_modules="$dri_modules x11-xcb xcb-glx"
610        fi
611
612        PKG_CHECK_MODULES([DRIGL], [$dri_modules])
613        GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
614        X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
615        GL_LIB_DEPS="$DRIGL_LIBS"
616    else
617        # should check these...
618        X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
619        GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
620        GL_PC_LIB_PRIV="$GL_LIB_DEPS"
621        GL_PC_CFLAGS="$X11_INCLUDES"
622
623        # XCB can only be used from pkg-config
624        if test "$enable_xcb" = yes; then
625            PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
626            GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
627            X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
628            GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
629        fi
630    fi
631
632    # need DRM libs, -lpthread, etc.
633    GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
634    GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
635    GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
636    GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
637    GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
638    GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
639    ;;
640osmesa)
641    # No libGL for osmesa
642    GL_LIB_DEPS=""
643    ;;
644esac
645AC_SUBST([GL_LIB_DEPS])
646AC_SUBST([GL_PC_REQ_PRIV])
647AC_SUBST([GL_PC_LIB_PRIV])
648AC_SUBST([GL_PC_CFLAGS])
649AC_SUBST([DRI_PC_REQ_PRIV])
650AC_SUBST([GLESv1_CM_LIB_DEPS])
651AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
652AC_SUBST([GLESv2_LIB_DEPS])
653AC_SUBST([GLESv2_PC_LIB_PRIV])
654
655
656dnl
657dnl More X11 setup
658dnl
659if test "$mesa_driver" = xlib; then
660    DEFINES="$DEFINES -DUSE_XSHM"
661fi
662
663dnl
664dnl More DRI setup
665dnl
666AC_ARG_ENABLE([glx-tls],
667    [AS_HELP_STRING([--enable-glx-tls],
668        [enable TLS support in GLX @<:@default=disabled@:>@])],
669    [GLX_USE_TLS="$enableval"],
670    [GLX_USE_TLS=no])
671dnl Directory for DRI drivers
672AC_ARG_WITH([dri-driverdir],
673    [AS_HELP_STRING([--with-dri-driverdir=DIR],
674        [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
675    [DRI_DRIVER_INSTALL_DIR="$withval"],
676    [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
677AC_SUBST([DRI_DRIVER_INSTALL_DIR])
678dnl Extra search path for DRI drivers
679AC_ARG_WITH([dri-searchpath],
680    [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
681        [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
682    [DRI_DRIVER_SEARCH_DIR="$withval"],
683    [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
684AC_SUBST([DRI_DRIVER_SEARCH_DIR])
685dnl Direct rendering or just indirect rendering
686AC_ARG_ENABLE([driglx-direct],
687    [AS_HELP_STRING([--disable-driglx-direct],
688        [enable direct rendering in GLX and EGL for DRI @<:@default=enabled@:>@])],
689    [driglx_direct="$enableval"],
690    [driglx_direct="yes"])
691dnl Which drivers to build - default is chosen by platform
692AC_ARG_WITH([dri-drivers],
693    [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
694        [comma delimited DRI drivers list, e.g.
695        "swrast,i965,radeon" @<:@default=auto@:>@])],
696    [with_dri_drivers="$withval"],
697    [with_dri_drivers=yes])
698if test "x$with_dri_drivers" = x; then
699    with_dri_drivers=no
700fi
701
702dnl Determine which APIs to support
703AC_ARG_ENABLE([opengl],
704    [AS_HELP_STRING([--disable-opengl],
705        [disable support for standard OpenGL API @<:@default=no@:>@])],
706    [enable_opengl="$enableval"],
707    [enable_opengl=yes])
708AC_ARG_ENABLE([gles1],
709    [AS_HELP_STRING([--enable-gles1],
710        [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
711    [enable_gles1="$enableval"],
712    [enable_gles1=no])
713AC_ARG_ENABLE([gles2],
714    [AS_HELP_STRING([--enable-gles2],
715        [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
716    [enable_gles2="$enableval"],
717    [enable_gles2=no])
718AC_ARG_ENABLE([gles-overlay],
719    [AS_HELP_STRING([--enable-gles-overlay],
720        [build separate OpenGL ES only libraries @<:@default=no@:>@])],
721    [enable_gles_overlay="$enableval"],
722    [enable_gles_overlay=no])
723
724API_DEFINES=""
725GLES_OVERLAY=0
726if test "x$enable_opengl" = xno; then
727    API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
728else
729    API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
730fi
731if test "x$enable_gles1" = xyes; then
732    API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
733fi
734if test "x$enable_gles2" = xyes; then
735    API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
736fi
737if test "x$enable_gles_overlay" = xyes -o \
738    "x$enable_gles1" = xyes -o "x$enable_gles2" = xyes; then
739    CORE_DIRS="mapi/es1api mapi/es2api $CORE_DIRS"
740    if test "x$enable_gles_overlay" = xyes; then
741        GLES_OVERLAY=1
742    fi
743fi
744AC_SUBST([API_DEFINES])
745AC_SUBST([GLES_OVERLAY])
746
747dnl If $with_dri_drivers is yes, directories will be added through
748dnl platform checks
749DRI_DIRS=""
750case "$with_dri_drivers" in
751no) ;;
752yes)
753    DRI_DIRS="yes"
754    ;;
755*)
756    # verify the requested driver directories exist
757    dri_drivers=`IFS=', '; echo $with_dri_drivers`
758    for driver in $dri_drivers; do
759        test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
760            AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
761    done
762    DRI_DIRS="$dri_drivers"
763    ;;
764esac
765
766dnl Set DRI_DIRS, DEFINES and LIB_DEPS
767if test "$mesa_driver" = dri; then
768    # Use TLS in GLX?
769    if test "x$GLX_USE_TLS" = xyes; then
770        DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
771    fi
772
773    # Platform specific settings and drivers to build
774    case "$host_os" in
775    linux*)
776        DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
777        if test "x$driglx_direct" = xyes; then
778            DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
779        fi
780        DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
781
782        case "$host_cpu" in
783        x86_64)
784            # sis is missing because they have not be converted to use
785            # the new interface.  i810 are missing because there is no
786            # x86-64 system where they could *ever* be used.
787            if test "x$DRI_DIRS" = "xyes"; then
788                DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 r600 radeon \
789                    savage tdfx unichrome swrast"
790            fi
791            ;;
792        powerpc*)
793            # Build only the drivers for cards that exist on PowerPC.
794            # At some point MGA will be added, but not yet.
795            if test "x$DRI_DIRS" = "xyes"; then
796                DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
797            fi
798            ;;
799        sparc*)
800            # Build only the drivers for cards that exist on sparc`
801            if test "x$DRI_DIRS" = "xyes"; then
802                DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
803            fi
804            ;;
805        esac
806        ;;
807    freebsd* | dragonfly*)
808        DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
809        DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
810        DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
811        if test "x$driglx_direct" = xyes; then
812            DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
813        fi
814        if test "x$GXX" = xyes; then
815            CXXFLAGS="$CXXFLAGS -ansi -pedantic"
816        fi
817
818        if test "x$DRI_DIRS" = "xyes"; then
819            DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
820                unichrome savage sis swrast"
821        fi
822        ;;
823    gnu*)
824        DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
825        DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
826	;;
827    solaris*)
828        DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
829        DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
830        if test "x$driglx_direct" = xyes; then
831            DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
832        fi
833        ;;
834    esac
835
836    # default drivers
837    if test "x$DRI_DIRS" = "xyes"; then
838        DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
839            savage sis tdfx unichrome swrast"
840    fi
841
842    DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/  */ /g'`
843
844    # Check for expat
845    EXPAT_INCLUDES=""
846    EXPAT_LIB=-lexpat
847    AC_ARG_WITH([expat],
848        [AS_HELP_STRING([--with-expat=DIR],
849            [expat install directory])],[
850        EXPAT_INCLUDES="-I$withval/include"
851        CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
852        LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
853        EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
854        ])
855    AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
856    AC_CHECK_LIB([expat],[XML_ParserCreate],[],
857        [AC_MSG_ERROR([Expat required for DRI.])])
858
859    # put all the necessary libs together
860    DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS $TALLOC_LIBS"
861fi
862AC_SUBST([DRI_DIRS])
863AC_SUBST([EXPAT_INCLUDES])
864AC_SUBST([DRI_LIB_DEPS])
865
866case $DRI_DIRS in
867*i915*|*i965*)
868    PKG_CHECK_MODULES([INTEL], [libdrm_intel >= 2.4.21])
869    ;;
870esac
871
872case $DRI_DIRS in
873*radeon*|*r200*|*r300*|*r600*)
874    PKG_CHECK_MODULES([LIBDRM_RADEON],
875		      [libdrm_radeon libdrm >= $LIBDRM_RADEON_REQUIRED],
876		      HAVE_LIBDRM_RADEON=yes,
877		      HAVE_LIBDRM_RADEON=no)
878
879    if test "$HAVE_LIBDRM_RADEON" = yes; then
880	RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
881	RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
882    fi
883    ;;
884esac
885AC_SUBST([RADEON_CFLAGS])
886AC_SUBST([RADEON_LDFLAGS])
887
888
889dnl
890dnl OSMesa configuration
891dnl
892if test "$mesa_driver" = xlib; then
893    default_gl_osmesa=yes
894else
895    default_gl_osmesa=no
896fi
897AC_ARG_ENABLE([gl-osmesa],
898    [AS_HELP_STRING([--enable-gl-osmesa],
899        [enable OSMesa with libGL @<:@default=enabled for xlib driver@:>@])],
900    [gl_osmesa="$enableval"],
901    [gl_osmesa="$default_gl_osmesa"])
902if test "x$gl_osmesa" = xyes; then
903    if test "$mesa_driver" = osmesa; then
904        AC_MSG_ERROR([libGL is not available for OSMesa driver])
905    else
906        DRIVER_DIRS="$DRIVER_DIRS osmesa"
907    fi
908fi
909
910dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
911AC_ARG_WITH([osmesa-bits],
912    [AS_HELP_STRING([--with-osmesa-bits=BITS],
913        [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
914    [osmesa_bits="$withval"],
915    [osmesa_bits=8])
916if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
917    AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
918    osmesa_bits=8
919fi
920case "x$osmesa_bits" in
921x8)
922    OSMESA_LIB=OSMesa
923    ;;
924x16|x32)
925    OSMESA_LIB="OSMesa$osmesa_bits"
926    DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
927    ;;
928*)
929    AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
930    ;;
931esac
932AC_SUBST([OSMESA_LIB])
933
934case "$DRIVER_DIRS" in
935*osmesa*)
936    # only link libraries with osmesa if shared
937    if test "$enable_static" = no; then
938        OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
939    else
940        OSMESA_LIB_DEPS=""
941    fi
942    OSMESA_MESA_DEPS=""
943    OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
944    ;;
945esac
946AC_SUBST([OSMESA_LIB_DEPS])
947AC_SUBST([OSMESA_MESA_DEPS])
948AC_SUBST([OSMESA_PC_REQ])
949AC_SUBST([OSMESA_PC_LIB_PRIV])
950
951dnl
952dnl EGL configuration
953dnl
954AC_ARG_ENABLE([egl],
955    [AS_HELP_STRING([--disable-egl],
956        [disable EGL library @<:@default=enabled@:>@])],
957    [enable_egl="$enableval"],
958    [enable_egl=yes])
959if test "x$enable_egl" = xyes; then
960    SRC_DIRS="$SRC_DIRS egl"
961    EGL_LIB_DEPS="$DLOPEN_LIBS -lpthread"
962    EGL_DRIVERS_DIRS=""
963    if test "$enable_static" != yes; then
964        # build egl_glx when libGL is built
965        if test "$mesa_driver" != osmesa; then
966            EGL_DRIVERS_DIRS="glx"
967        fi
968
969        if test "$mesa_driver" = dri; then
970            # build egl_dri2 when xcb-dri2 is available
971            PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
972            		  [have_xcb_dri2=yes],[have_xcb_dri2=no])
973            PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
974            		  [have_libudev=yes],[have_libudev=no])
975            
976            if test "$have_xcb_dri2" = yes; then
977                EGL_DRIVER_DRI2=dri2
978                DEFINES="$DEFINES -DHAVE_XCB_DRI2"
979                if test "$have_libudev" = yes; then
980                    DEFINES="$DEFINES -DHAVE_LIBUDEV"
981                fi
982            fi
983	fi
984
985        EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
986    fi
987fi
988AC_SUBST([EGL_LIB_DEPS])
989AC_SUBST([EGL_DRIVERS_DIRS])
990
991dnl
992dnl GLU configuration
993dnl
994AC_ARG_ENABLE([glu],
995    [AS_HELP_STRING([--disable-glu],
996        [enable OpenGL Utility library @<:@default=enabled@:>@])],
997    [enable_glu="$enableval"],
998    [enable_glu=yes])
999if test "x$enable_glu" = xyes; then
1000    SRC_DIRS="$SRC_DIRS glu"
1001
1002    case "$mesa_driver" in
1003    osmesa)
1004        # Link libGLU to libOSMesa instead of libGL
1005        GLU_LIB_DEPS=""
1006        GLU_PC_REQ="osmesa"
1007        if test "$enable_static" = no; then
1008            GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1009        else
1010            GLU_MESA_DEPS=""
1011        fi
1012        ;;
1013    *)
1014        # If static, empty GLU_LIB_DEPS and add libs for programs to link
1015        GLU_PC_REQ="gl"
1016        GLU_PC_LIB_PRIV="-lm"
1017        if test "$enable_static" = no; then
1018            GLU_LIB_DEPS="-lm"
1019            GLU_MESA_DEPS='-l$(GL_LIB)'
1020        else
1021            GLU_LIB_DEPS=""
1022            GLU_MESA_DEPS=""
1023            APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1024        fi
1025        ;;
1026    esac
1027fi
1028if test "$enable_static" = no; then
1029    GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1030fi
1031GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1032AC_SUBST([GLU_LIB_DEPS])
1033AC_SUBST([GLU_MESA_DEPS])
1034AC_SUBST([GLU_PC_REQ])
1035AC_SUBST([GLU_PC_REQ_PRIV])
1036AC_SUBST([GLU_PC_LIB_PRIV])
1037AC_SUBST([GLU_PC_CFLAGS])
1038
1039dnl
1040dnl GLw configuration
1041dnl
1042AC_ARG_ENABLE([glw],
1043    [AS_HELP_STRING([--disable-glw],
1044        [enable Xt/Motif widget library @<:@default=enabled@:>@])],
1045    [enable_glw="$enableval"],
1046    [enable_glw=yes])
1047dnl Don't build GLw on osmesa
1048if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
1049    AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
1050    enable_glw=no
1051fi
1052AC_ARG_ENABLE([motif],
1053    [AS_HELP_STRING([--enable-motif],
1054        [use Motif widgets in GLw @<:@default=disabled@:>@])],
1055    [enable_motif="$enableval"],
1056    [enable_motif=no])
1057
1058if test "x$enable_glw" = xyes; then
1059    SRC_DIRS="$SRC_DIRS glw"
1060    if test "$x11_pkgconfig" = yes; then
1061        PKG_CHECK_MODULES([GLW],[x11 xt])
1062        GLW_PC_REQ_PRIV="x11 xt"
1063        GLW_LIB_DEPS="$GLW_LIBS"
1064    else
1065        # should check these...
1066        GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
1067        GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1068        GLW_PC_CFLAGS="$X11_INCLUDES"
1069    fi
1070
1071    GLW_SOURCES="GLwDrawA.c"
1072    MOTIF_CFLAGS=
1073    if test "x$enable_motif" = xyes; then
1074        GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1075        AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1076        if test "x$MOTIF_CONFIG" != xno; then
1077            MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1078            MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1079        else
1080            AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1081                [AC_MSG_ERROR([Can't locate Motif headers])])
1082            AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1083                [AC_MSG_ERROR([Can't locate Motif Xm library])])
1084        fi
1085        # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1086        GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
1087        GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1088        GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
1089    fi
1090
1091    # If static, empty GLW_LIB_DEPS and add libs for programs to link
1092    GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
1093    if test "$enable_static" = no; then
1094        GLW_MESA_DEPS='-l$(GL_LIB)'
1095        GLW_LIB_DEPS="$GLW_LIB_DEPS"
1096    else
1097        APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1098        GLW_LIB_DEPS=""
1099        GLW_MESA_DEPS=""
1100    fi
1101fi
1102AC_SUBST([GLW_LIB_DEPS])
1103AC_SUBST([GLW_MESA_DEPS])
1104AC_SUBST([GLW_SOURCES])
1105AC_SUBST([MOTIF_CFLAGS])
1106AC_SUBST([GLW_PC_REQ_PRIV])
1107AC_SUBST([GLW_PC_LIB_PRIV])
1108AC_SUBST([GLW_PC_CFLAGS])
1109
1110dnl
1111dnl GLUT configuration
1112dnl
1113if test -f "$srcdir/include/GL/glut.h"; then
1114    default_glut=yes
1115else
1116    default_glut=no
1117fi
1118AC_ARG_ENABLE([glut],
1119    [AS_HELP_STRING([--disable-glut],
1120        [enable GLUT library @<:@default=enabled if source available@:>@])],
1121    [enable_glut="$enableval"],
1122    [enable_glut="$default_glut"])
1123
1124dnl Can't build glut if GLU not available
1125if test "x$enable_glu$enable_glut" = xnoyes; then
1126    AC_MSG_WARN([Disabling glut since GLU is disabled])
1127    enable_glut=no
1128fi
1129dnl Don't build glut on osmesa
1130if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1131    AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1132    enable_glut=no
1133fi
1134
1135if test "x$enable_glut" = xyes; then
1136    SRC_DIRS="$SRC_DIRS glut/glx"
1137    if test "$x11_pkgconfig" = yes; then
1138        PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1139        GLUT_PC_REQ_PRIV="x11 xmu xi"
1140        GLUT_LIB_DEPS="$GLUT_LIBS"
1141    else
1142        # should check these...
1143        GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1144        GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1145        GLUT_PC_CFLAGS="$X11_INCLUDES"
1146    fi
1147    if test "x$GCC" = xyes; then
1148        GLUT_CFLAGS="$GLUT_CFLAGS -fexceptions"
1149    fi
1150    GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1151    GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
1152
1153    # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1154    if test "$enable_static" = no; then
1155        GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1156    else
1157        APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1158        GLUT_LIB_DEPS=""
1159        GLUT_MESA_DEPS=""
1160    fi
1161fi
1162AC_SUBST([GLUT_LIB_DEPS])
1163AC_SUBST([GLUT_MESA_DEPS])
1164AC_SUBST([GLUT_CFLAGS])
1165AC_SUBST([GLUT_PC_REQ_PRIV])
1166AC_SUBST([GLUT_PC_LIB_PRIV])
1167AC_SUBST([GLUT_PC_CFLAGS])
1168
1169dnl
1170dnl Program library dependencies
1171dnl    Only libm is added here if necessary as the libraries should
1172dnl    be pulled in by the linker
1173dnl
1174if test "x$APP_LIB_DEPS" = x; then
1175    case "$host_os" in
1176    solaris*)
1177        APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1178        ;;
1179    cygwin*)
1180        APP_LIB_DEPS="-lX11"
1181        ;;
1182    *)
1183        APP_LIB_DEPS="-lm"
1184        ;;
1185    esac
1186fi
1187AC_SUBST([APP_LIB_DEPS])
1188AC_SUBST([PROGRAM_DIRS])
1189
1190dnl
1191dnl Gallium configuration
1192dnl
1193AC_ARG_ENABLE([gallium],
1194    [AS_HELP_STRING([--disable-gallium],
1195        [build gallium @<:@default=enabled@:>@])],
1196    [enable_gallium="$enableval"],
1197    [enable_gallium=yes])
1198if test "x$enable_gallium" = xyes; then
1199    SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1200    AC_CHECK_HEADER([udis86.h], [HAS_UDIS86="yes"],
1201                [HAS_UDIS86="no"])
1202    AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1203fi
1204
1205AC_SUBST([LLVM_CFLAGS])
1206AC_SUBST([LLVM_LIBS])
1207AC_SUBST([LLVM_LDFLAGS])
1208AC_SUBST([LLVM_VERSION])
1209
1210VG_LIB_DEPS=""
1211EGL_CLIENT_APIS='$(GL_LIB)'
1212if test "x$enable_gles_overlay" = xyes; then
1213    EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GLESv1_CM_LIB) $(GLESv2_LIB)'
1214fi
1215
1216dnl
1217dnl Gallium state trackers configuration
1218dnl
1219AC_ARG_WITH([state-trackers],
1220    [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1221        [comma delimited state_trackers list, e.g.
1222        "egl,glx" @<:@default=auto@:>@])],
1223    [with_state_trackers="$withval"],
1224    [with_state_trackers=yes])
1225
1226case "$with_state_trackers" in
1227no)
1228    GALLIUM_STATE_TRACKERS_DIRS=""
1229    ;;
1230yes)
1231    # look at what else is built
1232    case "$mesa_driver" in
1233    xlib)
1234        GALLIUM_STATE_TRACKERS_DIRS=glx
1235        ;;
1236    dri)
1237        GALLIUM_STATE_TRACKERS_DIRS="dri"
1238        HAVE_ST_DRI="yes"
1239        if test "x$enable_egl" = xyes; then
1240            GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl"
1241            HAVE_ST_EGL="yes"
1242        fi
1243        # Have only tested st/xorg on 1.6.0 servers
1244        PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6.0 libdrm >= $LIBDRM_XORG_REQUIRED libkms >= $LIBKMS_XORG_REQUIRED],
1245            HAVE_ST_XORG="yes"; GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg",
1246            HAVE_ST_XORG="no")
1247        ;;
1248    esac
1249    ;;
1250*)
1251    # verify the requested state tracker exist
1252    state_trackers=""
1253    _state_trackers=`IFS=', '; echo $with_state_trackers`
1254    for tracker in $_state_trackers; do
1255        case "$tracker" in
1256        dri)
1257            if test "x$mesa_driver" != xdri; then
1258                AC_MSG_ERROR([cannot build dri state tracker without mesa driver set to dri])
1259            fi
1260            HAVE_ST_DRI="yes"
1261            ;;
1262        egl)
1263            if test "x$enable_egl" != xyes; then
1264                AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1265            fi
1266            HAVE_ST_EGL="yes"
1267            ;;
1268        xorg)
1269            PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1270            PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1271            PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1272            HAVE_ST_XORG="yes"
1273            ;;
1274        es)
1275            AC_MSG_WARN([state tracker 'es' has been replaced by --enable-gles-overlay])
1276
1277            if test "x$enable_gles_overlay" != xyes; then
1278                if test "x$enable_gles1" != xyes -a "x$enable_gles2" != xyes; then
1279                    CORE_DIRS="mapi/es1api mapi/es2api $CORE_DIRS"
1280                fi
1281                GLES_OVERLAY=1
1282                EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GLESv1_CM_LIB) $(GLESv2_LIB)'
1283            fi
1284	    tracker=""
1285            ;;
1286        vega)
1287            CORE_DIRS="$CORE_DIRS mapi/vgapi"
1288            VG_LIB_DEPS="$VG_LIB_DEPS -lpthread"
1289            EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1290            ;;
1291        esac
1292
1293	if test -n "$tracker"; then
1294            test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1295                AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1296            if test -n "$state_trackers"; then
1297                state_trackers="$state_trackers $tracker"
1298            else
1299                state_trackers="$tracker"
1300            fi
1301        fi
1302    done
1303    GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1304    ;;
1305esac
1306
1307AC_SUBST([VG_LIB_DEPS])
1308AC_SUBST([EGL_CLIENT_APIS])
1309
1310if test "x$HAVE_ST_EGL" = xyes; then
1311	GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl"
1312	# define GLX_DIRECT_RENDERING even when the driver is not dri
1313	if test "x$mesa_driver" != xdri -a "x$driglx_direct" = xyes; then
1314            DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1315	fi
1316fi
1317
1318if test "x$HAVE_ST_XORG" = xyes; then
1319    PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1320        HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1321        HAVE_XEXTPROTO_71="no")
1322fi
1323
1324AC_ARG_WITH([egl-platforms],
1325    [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1326        [comma delimited native platforms libEGL supports, e.g.
1327        "x11,kms" @<:@default=auto@:>@])],
1328    [with_egl_platforms="$withval"],
1329    [with_egl_platforms=yes])
1330AC_ARG_WITH([egl-displays],
1331    [AS_HELP_STRING([--with-egl-displays@<:@=DIRS...@:>@],
1332        [DEPRECATED.  Use --with-egl-platforms instead])],
1333    [with_egl_platforms="$withval"])
1334
1335EGL_PLATFORMS=""
1336case "$with_egl_platforms" in
1337yes)
1338    if test "x$enable_egl" = xyes && test "x$mesa_driver" != xosmesa; then
1339        EGL_PLATFORMS="x11"
1340    fi
1341    ;;
1342*)
1343    if test "x$enable_egl" != xyes; then
1344        AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1345    fi
1346    # verify the requested driver directories exist
1347    egl_platforms=`IFS=', '; echo $with_egl_platforms`
1348    for plat in $egl_platforms; do
1349        test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1350            AC_MSG_ERROR([EGL platform '$plat' does't exist])
1351        if test "$plat" = "fbdev"; then
1352                GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1353        fi
1354    done
1355    EGL_PLATFORMS="$egl_platforms"
1356    ;;
1357esac
1358AC_SUBST([EGL_PLATFORMS])
1359
1360AC_ARG_WITH([egl-driver-dir],
1361    [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1362                    [directory for EGL drivers [[default=${libdir}/egl]]])],
1363    [EGL_DRIVER_INSTALL_DIR="$withval"],
1364    [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1365AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1366
1367AC_ARG_WITH([xorg-driver-dir],
1368    [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1369                    [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1370    [XORG_DRIVER_INSTALL_DIR="$withval"],
1371    [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1372AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1373
1374AC_ARG_WITH([max-width],
1375    [AS_HELP_STRING([--with-max-width=N],
1376                    [Maximum framebuffer width (4096)])],
1377    [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1378     AS_IF([test "${withval}" -gt "4096"],
1379           [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1380)
1381AC_ARG_WITH([max-height],
1382    [AS_HELP_STRING([--with-max-height=N],
1383                    [Maximum framebuffer height (4096)])],
1384    [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1385     AS_IF([test "${withval}" -gt "4096"],
1386           [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1387)
1388
1389dnl
1390dnl Gallium LLVM
1391dnl
1392AC_ARG_ENABLE([gallium-llvm],
1393    [AS_HELP_STRING([--enable-gallium-llvm],
1394        [build gallium LLVM support @<:@default=disabled@:>@])],
1395    [enable_gallium_llvm="$enableval"],
1396    [enable_gallium_llvm=auto])
1397if test "x$enable_gallium_llvm" = xyes; then
1398    if test "x$LLVM_CONFIG" != xno; then
1399	LLVM_VERSION=`$LLVM_CONFIG --version`
1400	LLVM_CFLAGS=`$LLVM_CONFIG --cflags`
1401	LLVM_LIBS="`$LLVM_CONFIG --libs jit interpreter nativecodegen bitwriter` -lstdc++"
1402
1403	if test "x$HAS_UDIS86" != xno; then
1404	    LLVM_LIBS="$LLVM_LIBS -ludis86"
1405	    DEFINES="$DEFINES -DHAVE_UDIS86"
1406	fi
1407	LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1408	GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1409	DEFINES="$DEFINES -DGALLIUM_LLVMPIPE -D__STDC_CONSTANT_MACROS"
1410	MESA_LLVM=1
1411    else
1412	MESA_LLVM=0
1413    fi
1414else
1415    MESA_LLVM=0
1416fi
1417
1418dnl
1419dnl Gallium helper functions
1420dnl
1421gallium_check_st() {
1422    if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes; then
1423         GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1424    fi
1425    if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1426         GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1427    fi
1428    if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1429         GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1430    fi
1431}
1432
1433
1434dnl
1435dnl Gallium SVGA configuration
1436dnl
1437AC_ARG_ENABLE([gallium-svga],
1438    [AS_HELP_STRING([--enable-gallium-svga],
1439        [build gallium SVGA @<:@default=disabled@:>@])],
1440    [enable_gallium_svga="$enableval"],
1441    [enable_gallium_svga=auto])
1442if test "x$enable_gallium_svga" = xyes; then
1443    GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
1444    gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
1445elif test "x$enable_gallium_svga" = xauto; then
1446    GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
1447fi
1448
1449dnl
1450dnl Gallium i915 configuration
1451dnl
1452AC_ARG_ENABLE([gallium-i915],
1453    [AS_HELP_STRING([--enable-gallium-i915],
1454        [build gallium i915 @<:@default=disabled@:>@])],
1455    [enable_gallium_i915="$enableval"],
1456    [enable_gallium_i915=auto])
1457if test "x$enable_gallium_i915" = xyes; then
1458    GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1459    GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
1460    gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1461elif test "x$enable_gallium_i915" = xauto; then
1462    GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1463    GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
1464fi
1465
1466dnl
1467dnl Gallium i965 configuration
1468dnl
1469AC_ARG_ENABLE([gallium-i965],
1470    [AS_HELP_STRING([--enable-gallium-i965],
1471        [build gallium i965 @<:@default=disabled@:>@])],
1472    [enable_gallium_i965="$enableval"],
1473    [enable_gallium_i965=auto])
1474if test "x$enable_gallium_i965" = xyes; then
1475    GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
1476    gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1477elif test "x$enable_gallium_i965" = xauto; then
1478    GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
1479fi
1480
1481dnl
1482dnl Gallium Radeon configuration
1483dnl
1484AC_ARG_ENABLE([gallium-radeon],
1485    [AS_HELP_STRING([--enable-gallium-radeon],
1486        [build gallium radeon @<:@default=disabled@:>@])],
1487    [enable_gallium_radeon="$enableval"],
1488    [enable_gallium_radeon=auto])
1489if test "x$enable_gallium_radeon" = xyes; then
1490    GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1491    gallium_check_st "radeon/drm" "dri-r300" "xorg-radeon"
1492elif test "x$enable_gallium_radeon" = xauto; then
1493    GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1494fi
1495
1496dnl
1497dnl Gallium Radeon r600g configuration
1498dnl
1499AC_ARG_ENABLE([gallium-r600],
1500    [AS_HELP_STRING([--enable-gallium-r600],
1501        [build gallium radeon @<:@default=disabled@:>@])],
1502    [enable_gallium_r600="$enableval"],
1503    [enable_gallium_r600=auto])
1504if test "x$enable_gallium_r600" = xyes; then
1505    GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1506    gallium_check_st "r600/drm" "dri-r600"
1507fi
1508
1509dnl
1510dnl Gallium Nouveau configuration
1511dnl
1512AC_ARG_ENABLE([gallium-nouveau],
1513    [AS_HELP_STRING([--enable-gallium-nouveau],
1514        [build gallium nouveau @<:@default=disabled@:>@])],
1515    [enable_gallium_nouveau="$enableval"],
1516    [enable_gallium_nouveau=no])
1517if test "x$enable_gallium_nouveau" = xyes; then
1518    GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50"
1519    gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
1520fi
1521
1522dnl
1523dnl Gallium swrast configuration
1524dnl
1525AC_ARG_ENABLE([gallium-swrast],
1526    [AS_HELP_STRING([--enable-gallium-swrast],
1527        [build gallium swrast @<:@default=auto@:>@])],
1528    [enable_gallium_swrast="$enableval"],
1529    [enable_gallium_swrast=auto])
1530if test "x$enable_gallium_swrast" = xyes || test "x$enable_gallium_swrast" = xauto; then
1531    if test "x$HAVE_ST_DRI" = xyes; then
1532        GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1533    fi
1534fi
1535
1536dnl prepend CORE_DIRS to SRC_DIRS
1537SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1538
1539dnl Restore LDFLAGS and CPPFLAGS
1540LDFLAGS="$_SAVE_LDFLAGS"
1541CPPFLAGS="$_SAVE_CPPFLAGS"
1542
1543dnl Substitute the config
1544AC_CONFIG_FILES([configs/autoconf])
1545
1546dnl Replace the configs/current symlink
1547AC_CONFIG_COMMANDS([configs],[
1548if test -f configs/current || test -L configs/current; then
1549    rm -f configs/current
1550fi
1551ln -s autoconf configs/current
1552])
1553
1554AC_OUTPUT
1555
1556dnl
1557dnl Output some configuration info for the user
1558dnl
1559echo ""
1560echo "        prefix:          $prefix"
1561echo "        exec_prefix:     $exec_prefix"
1562echo "        libdir:          $libdir"
1563echo "        includedir:      $includedir"
1564
1565dnl Driver info
1566echo ""
1567echo "        Driver:          $mesa_driver"
1568if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1569    echo "        OSMesa:          lib$OSMESA_LIB"
1570else
1571    echo "        OSMesa:          no"
1572fi
1573if test "$mesa_driver" = dri; then
1574    # cleanup the drivers var
1575    dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
1576if test "x$DRI_DIRS" = x; then
1577    echo "        DRI drivers:     no"
1578else
1579    echo "        DRI drivers:     $dri_dirs"
1580fi
1581    echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
1582fi
1583echo "        Use XCB:         $enable_xcb"
1584
1585echo ""
1586if test "x$MESA_LLVM" = x1; then
1587    echo "        llvm:            yes"
1588    echo "        llvm-config:     $LLVM_CONFIG"
1589    echo "        llvm-version:    $LLVM_VERSION"
1590else
1591    echo "        llvm:            no"
1592fi
1593
1594echo ""
1595if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1596    echo "        Gallium:         yes"
1597    echo "        Gallium dirs:    $GALLIUM_DIRS"
1598    echo "        Target dirs:     $GALLIUM_TARGET_DIRS"
1599    echo "        Winsys dirs:     $GALLIUM_WINSYS_DIRS"
1600    echo "        Driver dirs:     $GALLIUM_DRIVERS_DIRS"
1601    echo "        Trackers dirs:   $GALLIUM_STATE_TRACKERS_DIRS"
1602    if test "x$HAVE_ST_EGL" = xyes; then
1603        echo "        EGL client APIs: $EGL_CLIENT_APIS"
1604    fi
1605else
1606    echo "        Gallium:         no"
1607fi
1608
1609dnl Libraries
1610echo ""
1611echo "        Shared libs:     $enable_shared"
1612echo "        Static libs:     $enable_static"
1613if test "$enable_egl" = yes; then
1614    echo "        EGL:             $EGL_DRIVERS_DIRS"
1615    echo "        EGL platforms:   $EGL_PLATFORMS"
1616else
1617    echo "        EGL:             no"
1618fi
1619echo "        GLU:             $enable_glu"
1620echo "        GLw:             $enable_glw (Motif: $enable_motif)"
1621echo "        glut:            $enable_glut"
1622
1623dnl Compiler options
1624# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1625cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1626    $SED 's/^ *//;s/  */ /;s/ *$//'`
1627cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1628    $SED 's/^ *//;s/  */ /;s/ *$//'`
1629defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/  */ /;s/ *$//'`
1630echo ""
1631echo "        CFLAGS:          $cflags"
1632echo "        CXXFLAGS:        $cxxflags"
1633echo "        Macros:          $defines"
1634
1635echo ""
1636echo "        Run '${MAKE-make}' to build Mesa"
1637echo ""
1638