1dnl Process this file with autoconf to create configure.
2
3AC_PREREQ([2.60])
4
5dnl Tell the user about autoconf.html in the --help output
6m4_divert_once([HELP_END], [
7See docs/autoconf.html for more details on the options for Mesa.])
8
9AC_INIT([Mesa], [9.0.3],
10    [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
11AC_CONFIG_AUX_DIR([bin])
12AC_CONFIG_MACRO_DIR([m4])
13AC_CANONICAL_HOST
14AM_INIT_AUTOMAKE([foreign])
15
16dnl http://people.gnome.org/~walters/docs/build-api.txt
17dnl We don't support srcdir != builddir.
18echo \#buildapi-variable-no-builddir >/dev/null
19
20# Support silent build rules, requires at least automake-1.11. Disable
21# by either passing --disable-silent-rules to configure or passing V=1
22# to make
23m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
24
25m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
26
27LT_PREREQ([2.2])
28LT_INIT([disable-static])
29
30dnl Set internal versions
31OSMESA_VERSION=8
32AC_SUBST([OSMESA_VERSION])
33
34dnl Versions for external dependencies
35LIBDRM_REQUIRED=2.4.24
36LIBDRM_RADEON_REQUIRED=2.4.39
37LIBDRM_INTEL_REQUIRED=2.4.38
38LIBDRM_NVVIEUX_REQUIRED=2.4.33
39LIBDRM_NOUVEAU_REQUIRED=2.4.33
40DRI2PROTO_REQUIRED=2.6
41GLPROTO_REQUIRED=1.4.14
42LIBDRM_XORG_REQUIRED=2.4.24
43LIBKMS_XORG_REQUIRED=1.0.0
44
45dnl Check for progs
46AC_PROG_CPP
47AC_PROG_CC
48AC_PROG_CXX
49AM_PROG_CC_C_O
50AM_PROG_AS
51AC_CHECK_PROGS([MAKE], [gmake make])
52AC_CHECK_PROGS([PYTHON2], [python2 python])
53AX_PYTHON_MODULE([libxml2], [needed])
54AC_PROG_SED
55AC_PROG_MKDIR_P
56AC_PATH_PROG([MKDEP], [makedepend])
57
58if test "x$MKDEP" = "x"; then
59    AC_MSG_ERROR([makedepend is required to build Mesa])
60fi
61
62AC_PROG_YACC
63AC_PATH_PROG([YACC_INST], $YACC)
64if test ! -f "$srcdir/src/glsl/glcpp/glcpp-parse.c"; then
65    if test -z "$YACC_INST"; then
66        AC_MSG_ERROR([yacc not found - unable to compile glcpp-parse.y])
67    fi
68fi
69AC_PROG_LEX
70
71AC_PATH_PROG([PERL], [perl])
72
73AC_CHECK_PROG(INDENT, indent, indent, cat)
74if test "x$INDENT" != "xcat"; then
75    AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -T GLubyte -T GLbyte -T Bool')
76fi
77
78dnl Our fallback install-sh is a symlink to minstall. Use the existing
79dnl configuration in that case.
80AC_PROG_INSTALL
81test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
82
83dnl We need a POSIX shell for parts of the build. Assume we have one
84dnl in most cases.
85case "$host_os" in
86solaris*)
87    # Solaris /bin/sh is too old/non-POSIX compliant
88    AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
89    SHELL="$POSIX_SHELL"
90    ;;
91esac
92
93dnl clang is mostly GCC-compatible, but its version is much lower,
94dnl so we have to check for it.
95AC_MSG_CHECKING([if compiling with clang])
96
97AC_COMPILE_IFELSE(
98[AC_LANG_PROGRAM([], [[
99#ifndef __clang__
100       not clang
101#endif
102]])],
103[acv_mesa_CLANG=yes], [acv_mesa_CLANG=no])
104
105AC_MSG_RESULT([$acv_mesa_CLANG])
106
107dnl If we're using GCC, make sure that it is at least version 3.3.0.  Older
108dnl versions are explictly not supported.
109if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
110    AC_MSG_CHECKING([whether gcc version is sufficient])
111    major=0
112    minor=0
113
114    GCC_VERSION=`$CC -dumpversion`
115    if test $? -eq 0; then
116        GCC_VERSION_MAJOR=`echo $GCC_VERSION | cut -d. -f1`
117        GCC_VERSION_MINOR=`echo $GCC_VERSION | cut -d. -f2`
118    fi
119
120    if test $GCC_VERSION_MAJOR -lt 3 -o $GCC_VERSION_MAJOR -eq 3 -a $GCC_VERSION_MINOR -lt 3 ; then
121        AC_MSG_RESULT([no])
122        AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
123    else
124        AC_MSG_RESULT([yes])
125    fi
126fi
127
128
129MKDEP_OPTIONS=-fdepend
130dnl Ask gcc where it's keeping its secret headers
131if test "x$GCC" = xyes; then
132    for dir in include include-fixed; do
133        GCC_INCLUDES=`$CC -print-file-name=$dir`
134        if test "x$GCC_INCLUDES" != x && \
135           test "$GCC_INCLUDES" != "$dir" && \
136           test -d "$GCC_INCLUDES"; then
137            MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
138        fi
139    done
140fi
141AC_SUBST([MKDEP_OPTIONS])
142
143dnl Make sure the pkg-config macros are defined
144m4_ifndef([PKG_PROG_PKG_CONFIG],
145    [m4_fatal([Could not locate the pkg-config autoconf macros.
146  These are usually located in /usr/share/aclocal/pkg.m4. If your macros
147  are in a different location, try setting the environment variable
148  ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
149PKG_PROG_PKG_CONFIG()
150
151dnl LIB_DIR - library basename
152LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
153AC_SUBST([LIB_DIR])
154
155dnl Cache LDFLAGS and CPPFLAGS so we can add to them and restore later
156_SAVE_LDFLAGS="$LDFLAGS"
157_SAVE_CPPFLAGS="$CPPFLAGS"
158
159dnl Compiler macros
160DEFINES=""
161AC_SUBST([DEFINES])
162case "$host_os" in
163linux*|*-gnu*|gnu*)
164    DEFINES="$DEFINES -D_GNU_SOURCE -DHAVE_PTHREAD"
165    ;;
166solaris*)
167    DEFINES="$DEFINES -DHAVE_PTHREAD -DSVR4"
168    ;;
169cygwin*)
170    DEFINES="$DEFINES -DHAVE_PTHREAD"
171    ;;
172esac
173
174dnl Add flags for gcc and g++
175if test "x$GCC" = xyes; then
176    CFLAGS="$CFLAGS -Wall -std=c99"
177
178    # Enable -Werror=implicit-function-declaration and
179    # -Werror=missing-prototypes, if available, or otherwise, just
180    # -Wmissing-prototypes.  This is particularly useful to avoid
181    # generating a loadable driver module that has undefined symbols.
182    save_CFLAGS="$CFLAGS"
183    AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
184    CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
185    CFLAGS="$CFLAGS -Werror=missing-prototypes"
186    AC_LINK_IFELSE([AC_LANG_PROGRAM()],
187		   AC_MSG_RESULT([yes]),
188		   [CFLAGS="$save_CFLAGS -Wmissing-prototypes";
189		    AC_MSG_RESULT([no])]);
190
191    # Enable -fvisibility=hidden if using a gcc that supports it
192    save_CFLAGS="$CFLAGS"
193    AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
194    VISIBILITY_CFLAGS="-fvisibility=hidden"
195    CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
196    AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
197		   [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
198
199    # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
200    CFLAGS=$save_CFLAGS
201
202    # Work around aliasing bugs - developers should comment this out
203    CFLAGS="$CFLAGS -fno-strict-aliasing"
204
205    # gcc's builtin memcmp is slower than glibc's
206    # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
207    CFLAGS="$CFLAGS -fno-builtin-memcmp"
208fi
209if test "x$GXX" = xyes; then
210    CXXFLAGS="$CXXFLAGS -Wall"
211
212    # Enable -fvisibility=hidden if using a gcc that supports it
213    save_CXXFLAGS="$CXXFLAGS"
214    AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
215    VISIBILITY_CXXFLAGS="-fvisibility=hidden"
216    CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
217    AC_LANG_PUSH([C++])
218    AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
219		   [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
220    AC_LANG_POP([C++])
221
222    # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
223    CXXFLAGS=$save_CXXFLAGS
224
225    # Work around aliasing bugs - developers should comment this out
226    CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
227
228    # gcc's builtin memcmp is slower than glibc's
229    # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
230    CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
231fi
232
233dnl even if the compiler appears to support it, using visibility attributes isn't
234dnl going to do anything useful currently on cygwin apart from emit lots of warnings
235case "$host_os" in
236cygwin*)
237    VISIBILITY_CFLAGS=""
238    VISIBILITY_CXXFLAGS=""
239    ;;
240esac
241
242AC_SUBST([VISIBILITY_CFLAGS])
243AC_SUBST([VISIBILITY_CXXFLAGS])
244
245dnl
246dnl Hacks to enable 32 or 64 bit build
247dnl
248AC_ARG_ENABLE([32-bit],
249    [AS_HELP_STRING([--enable-32-bit],
250        [build 32-bit libraries @<:@default=auto@:>@])],
251    [enable_32bit="$enableval"],
252    [enable_32bit=auto]
253)
254if test "x$enable_32bit" = xyes; then
255    if test "x$GCC" = xyes; then
256        CFLAGS="$CFLAGS -m32"
257        CCASFLAGS="$CCASFLAGS -m32"
258    fi
259    if test "x$GXX" = xyes; then
260        CXXFLAGS="$CXXFLAGS -m32"
261    fi
262fi
263AC_ARG_ENABLE([64-bit],
264    [AS_HELP_STRING([--enable-64-bit],
265        [build 64-bit libraries @<:@default=auto@:>@])],
266    [enable_64bit="$enableval"],
267    [enable_64bit=auto]
268)
269if test "x$enable_64bit" = xyes; then
270    if test "x$GCC" = xyes; then
271        CFLAGS="$CFLAGS -m64"
272    fi
273    if test "x$GXX" = xyes; then
274        CXXFLAGS="$CXXFLAGS -m64"
275    fi
276fi
277
278dnl Can't have static and shared libraries, default to static if user
279dnl explicitly requested. If both disabled, set to static since shared
280dnl was explicitly requested.
281case "x$enable_static$enable_shared" in
282xyesyes )
283    AC_MSG_WARN([Cannot build static and shared libraries, disabling shared])
284    enable_shared=no
285    ;;
286xnono )
287    AC_MSG_WARN([Cannot disable both static and shared libraries, enabling static])
288    enable_static=yes
289    ;;
290esac
291
292AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes)
293
294dnl
295dnl mklib options
296dnl
297AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
298if test "$enable_static" = yes; then
299    MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
300fi
301AC_SUBST([MKLIB_OPTIONS])
302
303dnl
304dnl other compiler options
305dnl
306AC_ARG_ENABLE([debug],
307    [AS_HELP_STRING([--enable-debug],
308        [use debug compiler flags and macros @<:@default=disabled@:>@])],
309    [enable_debug="$enableval"],
310    [enable_debug=no]
311)
312if test "x$enable_debug" = xyes; then
313    DEFINES="$DEFINES -DDEBUG"
314    if test "x$GCC" = xyes; then
315        CFLAGS="$CFLAGS -g"
316    fi
317    if test "x$GXX" = xyes; then
318        CXXFLAGS="$CXXFLAGS -g"
319    fi
320fi
321
322dnl
323dnl library names
324dnl
325LIB_PREFIX_GLOB='lib'
326LIB_VERSION_SEPARATOR='.'
327if test "$enable_static" = yes; then
328    LIB_EXTENSION='a'
329else
330    case "$host_os" in
331    darwin* )
332        LIB_EXTENSION='dylib' ;;
333    cygwin* )
334        dnl prefix can be 'cyg' or 'lib'
335        LIB_PREFIX_GLOB='???'
336        LIB_VERSION_SEPARATOR='-'
337        LIB_EXTENSION='dll' ;;
338    aix* )
339        LIB_EXTENSION='a' ;;
340    * )
341        LIB_EXTENSION='so' ;;
342    esac
343fi
344AC_ARG_WITH([gl-lib-name],
345  [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
346    [specify GL library name @<:@default=GL@:>@])],
347  [GL_LIB=$withval],
348  [GL_LIB=GL])
349AC_ARG_WITH([osmesa-lib-name],
350  [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
351    [specify OSMesa library name @<:@default=OSMesa@:>@])],
352  [OSMESA_LIB=$withval],
353  [OSMESA_LIB=OSMesa])
354AS_IF([test "x$GL_LIB" = xyes], [GL_LIB=GL])
355AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
356
357dnl
358dnl Mangled Mesa support
359dnl
360AC_ARG_ENABLE([mangling],
361  [AS_HELP_STRING([--enable-mangling],
362    [enable mangled symbols and library name @<:@default=disabled@:>@])],
363  [enable_mangling="${enableval}"],
364  [enable_mangling=no]
365)
366if test "x${enable_mangling}" = "xyes" ; then
367  DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
368  GL_LIB="Mangled${GL_LIB}"
369  OSMESA_LIB="Mangled${OSMESA_LIB}"
370fi
371AC_SUBST([GL_LIB])
372AC_SUBST([OSMESA_LIB])
373
374dnl
375dnl potentially-infringing-but-nobody-knows-for-sure stuff
376dnl
377AC_ARG_ENABLE([texture-float],
378    [AS_HELP_STRING([--enable-texture-float],
379        [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
380    [enable_texture_float="$enableval"],
381    [enable_texture_float=no]
382)
383if test "x$enable_texture_float" = xyes; then
384    AC_MSG_WARN([Floating-point textures enabled.])
385    AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
386    DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
387fi
388
389GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
390OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
391EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
392GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
393GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
394VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
395GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
396
397GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
398EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
399EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
400GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
401GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
402VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
403GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
404
405AC_SUBST([GL_LIB_NAME])
406AC_SUBST([OSMESA_LIB_NAME])
407AC_SUBST([EGL_LIB_NAME])
408AC_SUBST([GLESv1_CM_LIB_NAME])
409AC_SUBST([GLESv2_LIB_NAME])
410AC_SUBST([VG_LIB_NAME])
411AC_SUBST([GLAPI_LIB_NAME])
412
413AC_SUBST([GL_LIB_GLOB])
414AC_SUBST([EGL_LIB_GLOB])
415AC_SUBST([GLESv1_CM_LIB_GLOB])
416AC_SUBST([GLESv2_LIB_GLOB])
417AC_SUBST([VG_LIB_GLOB])
418AC_SUBST([GLAPI_LIB_GLOB])
419
420dnl
421dnl Arch/platform-specific settings
422dnl
423AC_ARG_ENABLE([asm],
424    [AS_HELP_STRING([--disable-asm],
425        [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
426    [enable_asm="$enableval"],
427    [enable_asm=yes]
428)
429asm_arch=""
430MESA_ASM_FILES=""
431AC_MSG_CHECKING([whether to enable assembly])
432test "x$enable_asm" = xno && AC_MSG_RESULT([no])
433# disable if cross compiling on x86/x86_64 since we must run gen_matypes
434if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
435    case "$host_cpu" in
436    i?86 | x86_64)
437        enable_asm=no
438        AC_MSG_RESULT([no, cross compiling])
439        ;;
440    esac
441fi
442# check for supported arches
443if test "x$enable_asm" = xyes; then
444    case "$host_cpu" in
445    i?86)
446        case "$host_os" in
447        linux* | *freebsd* | dragonfly* | *netbsd*)
448            test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
449            ;;
450        esac
451        ;;
452    x86_64)
453        case "$host_os" in
454        linux* | *freebsd* | dragonfly* | *netbsd*)
455            test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
456            ;;
457        esac
458        ;;
459    sparc*)
460        case "$host_os" in
461        linux*)
462            asm_arch=sparc
463            ;;
464        esac
465        ;;
466    esac
467
468    case "$asm_arch" in
469    x86)
470        DEFINES="$DEFINES -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
471        MESA_ASM_FILES='$(X86_FILES)'
472        AC_MSG_RESULT([yes, x86])
473        ;;
474    x86_64)
475        DEFINES="$DEFINES -DUSE_X86_64_ASM"
476        MESA_ASM_FILES='$(X86_64_FILES)'
477        AC_MSG_RESULT([yes, x86_64])
478        ;;
479    sparc)
480        DEFINES="$DEFINES -DUSE_SPARC_ASM"
481        MESA_ASM_FILES='$(SPARC_FILES)'
482        AC_MSG_RESULT([yes, sparc])
483        ;;
484    *)
485        AC_MSG_RESULT([no, platform not supported])
486        ;;
487    esac
488fi
489AC_SUBST([MESA_ASM_FILES])
490
491dnl PIC code macro
492MESA_PIC_FLAGS
493
494dnl Check to see if dlopen is in default libraries (like Solaris, which
495dnl has it in libc), or if libdl is needed to get it.
496AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
497    [AC_CHECK_LIB([dl], [dlopen],
498       [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])])
499AC_SUBST([DLOPEN_LIBS])
500
501dnl See if posix_memalign is available
502AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
503
504dnl Check for pthreads
505AX_PTHREAD
506dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS
507dnl to -pthread, which causes problems if we need -lpthread to appear in
508dnl pkgconfig files.
509test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
510
511dnl SELinux awareness.
512AC_ARG_ENABLE([selinux],
513    [AS_HELP_STRING([--enable-selinux],
514        [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
515    [MESA_SELINUX="$enableval"],
516    [MESA_SELINUX=no])
517if test "x$enable_selinux" = "xyes"; then
518    AC_CHECK_HEADER([selinux/selinux.h],[],
519                    [AC_MSG_ERROR([SELinux headers not found])])
520    AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
521                 [AC_MSG_ERROR([SELinux library not found])])
522    SELINUX_LIBS="-lselinux"
523    DEFINES="$DEFINES -DMESA_SELINUX"
524fi
525AC_SUBST([SELINUX_LIBS])
526
527dnl Options for APIs
528AC_ARG_ENABLE([opengl],
529    [AS_HELP_STRING([--disable-opengl],
530        [disable support for standard OpenGL API @<:@default=no@:>@])],
531    [enable_opengl="$enableval"],
532    [enable_opengl=yes])
533AC_ARG_ENABLE([gles1],
534    [AS_HELP_STRING([--enable-gles1],
535        [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
536    [enable_gles1="$enableval"],
537    [enable_gles1=no])
538AC_ARG_ENABLE([gles2],
539    [AS_HELP_STRING([--enable-gles2],
540        [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
541    [enable_gles2="$enableval"],
542    [enable_gles2=no])
543AC_ARG_ENABLE([openvg],
544    [AS_HELP_STRING([--enable-openvg],
545        [enable support for OpenVG API @<:@default=no@:>@])],
546    [enable_openvg="$enableval"],
547    [enable_openvg=no])
548
549AC_ARG_ENABLE([dri],
550    [AS_HELP_STRING([--enable-dri],
551        [enable DRI modules @<:@default=enabled@:>@])],
552    [enable_dri="$enableval"],
553    [enable_dri=yes])
554AC_ARG_ENABLE([glx],
555    [AS_HELP_STRING([--enable-glx],
556        [enable GLX library @<:@default=enabled@:>@])],
557    [enable_glx="$enableval"],
558    [enable_glx=yes])
559AC_ARG_ENABLE([osmesa],
560    [AS_HELP_STRING([--enable-osmesa],
561        [enable OSMesa library @<:@default=disabled@:>@])],
562    [enable_osmesa="$enableval"],
563    [enable_osmesa=no])
564AC_ARG_ENABLE([egl],
565    [AS_HELP_STRING([--disable-egl],
566        [disable EGL library @<:@default=enabled@:>@])],
567    [enable_egl="$enableval"],
568    [enable_egl=yes])
569
570AC_ARG_ENABLE([xorg],
571    [AS_HELP_STRING([--enable-xorg],
572        [enable support for X.Org DDX API @<:@default=no@:>@])],
573    [enable_xorg="$enableval"],
574    [enable_xorg=no])
575AC_ARG_ENABLE([xa],
576    [AS_HELP_STRING([--enable-xa],
577        [enable build of the XA X Acceleration API @<:@default=no@:>@])],
578    [enable_xa="$enableval"],
579    [enable_xa=no])
580AC_ARG_ENABLE([d3d1x],
581    [AS_HELP_STRING([--enable-d3d1x],
582        [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
583    [enable_d3d1x="$enableval"],
584    [enable_d3d1x=no])
585AC_ARG_ENABLE([gbm],
586   [AS_HELP_STRING([--enable-gbm],
587         [enable gbm library @<:@default=auto@:>@])],
588   [enable_gbm="$enableval"],
589   [enable_gbm=auto])
590
591AC_ARG_ENABLE([xvmc],
592   [AS_HELP_STRING([--enable-xvmc],
593         [enable xvmc library @<:@default=auto@:>@])],
594   [enable_xvmc="$enableval"],
595   [enable_xvmc=auto])
596AC_ARG_ENABLE([vdpau],
597   [AS_HELP_STRING([--enable-vdpau],
598         [enable vdpau library @<:@default=auto@:>@])],
599   [enable_vdpau="$enableval"],
600   [enable_vdpau=auto])
601AC_ARG_ENABLE([va],
602   [AS_HELP_STRING([--enable-va],
603         [enable va library @<:@default=auto@:>@])],
604   [enable_va="$enableval"],
605   [enable_va=auto])
606AC_ARG_ENABLE([opencl],
607   [AS_HELP_STRING([--enable-opencl],
608         [enable OpenCL library @<:@default=no@:>@])],
609   [enable_opencl="$enableval"],
610   [enable_opencl=no])
611AC_ARG_ENABLE([xlib_glx],
612    [AS_HELP_STRING([--enable-xlib-glx],
613        [make GLX library Xlib-based instead of DRI-based @<:@default=disabled@:>@])],
614    [enable_xlib_glx="$enableval"],
615    [enable_xlib_glx=no])
616AC_ARG_ENABLE([gallium_egl],
617    [AS_HELP_STRING([--enable-gallium-egl],
618        [enable optional EGL state tracker (not required
619         for EGL support in Gallium with OpenGL and OpenGL ES)
620         @<:@default=disable@:>@])],
621    [enable_gallium_egl="$enableval"],
622    [enable_gallium_egl=no])
623AC_ARG_ENABLE([gallium_gbm],
624    [AS_HELP_STRING([--enable-gallium-gbm],
625        [enable optional gbm state tracker (not required for
626         gbm support in Gallium)
627         @<:@default=auto@:>@])],
628    [enable_gallium_gbm="$enableval"],
629    [enable_gallium_gbm=auto])
630
631AC_ARG_ENABLE([r600-llvm-compiler],
632    [AS_HELP_STRING([--enable-r600-llvm-compiler],
633        [Enable experimental LLVM backend for graphics shaders @<:@default=disable@:>@])],
634    [enable_r600_llvm="$enableval"],
635    [enable_r600_llvm=no])
636
637AC_ARG_ENABLE([gallium_tests],
638    [AS_HELP_STRING([--enable-gallium-tests],
639        [Enable optional Gallium tests) @<:@default=disable@:>@])],
640    [enable_gallium_tests="$enableval"],
641    [enable_gallium_tests=no])
642
643# Option for Gallium drivers
644GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
645
646AC_ARG_WITH([gallium-drivers],
647    [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
648        [comma delimited Gallium drivers list, e.g.
649        "i915,nouveau,r300,r600,radeonsi,svga,swrast"
650        @<:@default=r300,r600,swrast@:>@])],
651    [with_gallium_drivers="$withval"],
652    [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
653
654# Doing '--without-gallium-drivers' will set this variable to 'no'.  Clear it
655# here so that the script doesn't choke on an unknown driver name later.
656case "$with_gallium_drivers" in
657    yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
658    no) with_gallium_drivers='' ;;
659esac
660
661if test "x$enable_opengl" = xno -a \
662        "x$enable_gles1" = xno -a \
663        "x$enable_gles2" = xno -a \
664        "x$enable_openvg" = xno -a \
665        "x$enable_xorg" = xno -a \
666        "x$enable_xa" = xno -a \
667        "x$enable_d3d1x" = xno -a \
668        "x$enable_xvmc" = xno -a \
669        "x$enable_vdpau" = xno -a \
670        "x$enable_va" = xno -a \
671        "x$enable_opencl" = xno; then
672    AC_MSG_ERROR([at least one API should be enabled])
673fi
674
675# Building OpenGL ES1 and/or ES2 without OpenGL is not supported on mesa 9.0.x
676if test "x$enable_opengl" = xno -a \
677        "x$enable_gles1" = xyes; then
678    AC_MSG_ERROR([Building OpenGL ES1 without OpenGL is not supported])
679fi
680
681if test "x$enable_opengl" = xno -a \
682        "x$enable_gles2" = xyes; then
683    AC_MSG_ERROR([Building OpenGL ES2 without OpenGL is not supported])
684fi
685
686API_DEFINES=""
687if test "x$enable_opengl" = xno; then
688    API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
689else
690    API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
691fi
692if test "x$enable_gles1" = xyes; then
693    API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
694fi
695if test "x$enable_gles2" = xyes; then
696    API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
697fi
698AC_SUBST([API_DEFINES])
699
700if test "x$enable_glx" = xno; then
701    AC_MSG_WARN([GLX disabled, disabling Xlib-GLX])
702    enable_xlib_glx=no
703fi
704
705if test "x$enable_dri$enable_xlib_glx" = xyesyes; then
706    AC_MSG_ERROR([DRI and Xlib-GLX cannot be built together])
707fi
708
709if test "x$enable_opengl$enable_xlib_glx" = xnoyes; then
710    AC_MSG_ERROR([Xlib-GLX cannot be built without OpenGL])
711fi
712
713# Disable GLX if OpenGL is not enabled
714if test "x$enable_glx$enable_opengl" = xyesno; then
715    AC_MSG_WARN([OpenGL not enabled, disabling GLX])
716    enable_glx=no
717fi
718
719# Disable GLX if DRI and Xlib-GLX are not enabled
720if test "x$enable_glx" = xyes -a \
721        "x$enable_dri" = xno -a \
722        "x$enable_xlib_glx" = xno; then
723    AC_MSG_WARN([Neither DRI nor Xlib-GLX enabled, disabling GLX])
724    enable_glx=no
725fi
726
727AM_CONDITIONAL(HAVE_DRI, test "x$enable_dri" = xyes)
728AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_xlib_glx" = xyes -o \
729                                  "x$enable_osmesa" = xyes)
730
731AC_ARG_ENABLE([shared-glapi],
732    [AS_HELP_STRING([--enable-shared-glapi],
733        [Enable shared glapi for OpenGL @<:@default=yes@:>@])],
734    [enable_shared_glapi="$enableval"],
735    [enable_shared_glapi="$enable_dri"])
736
737# Shared GLAPI is only useful for DRI
738if test "x$enable_dri" = xno; then
739    AC_MSG_NOTICE([Shared GLAPI is only useful for DRI, disabling])
740    enable_shared_glapi=no
741fi
742
743# TODO: Get rid of SHARED_GLAPI variable
744SHARED_GLAPI="0"
745if test "x$enable_shared_glapi" = xyes; then
746    SHARED_GLAPI="1"
747    # libGL will use libglapi for function lookups (IN_DRI_DRIVER means to use
748    # the remap table)
749    DEFINES="$DEFINES -DIN_DRI_DRIVER"
750    CORE_DIRS="mapi/shared-glapi"
751fi
752AC_SUBST([SHARED_GLAPI])
753AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes)
754
755dnl
756dnl Driver specific build directories
757dnl
758SRC_DIRS="gtest"
759GALLIUM_DIRS="auxiliary drivers state_trackers"
760GALLIUM_TARGET_DIRS=""
761GALLIUM_WINSYS_DIRS="sw"
762GALLIUM_DRIVERS_DIRS="galahad trace rbug noop identity"
763GALLIUM_STATE_TRACKERS_DIRS=""
764
765# build glapi if OpenGL is enabled
766if test "x$enable_opengl" = xyes; then
767    CORE_DIRS="$CORE_DIRS mapi/glapi"
768fi
769
770# build es1api if OpenGL ES 1.x is enabled
771if test "x$enable_gles1" = xyes; then
772    CORE_DIRS="$CORE_DIRS mapi/es1api"
773fi
774
775# build es2api if OpenGL ES 2.x is enabled
776if test "x$enable_gles2" = xyes; then
777    CORE_DIRS="$CORE_DIRS mapi/es2api"
778fi
779
780# build glsl and mesa if OpenGL or OpenGL ES is enabled
781case "x$enable_opengl$enable_gles1$enable_gles2" in
782x*yes*)
783    CORE_DIRS="mapi/glapi/gen $CORE_DIRS glsl mesa"
784    ;;
785esac
786
787case "x$enable_glx$enable_xlib_glx" in
788xyesyes)
789    DRIVER_DIRS="$DRIVER_DIRS x11"
790    GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
791    GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
792    GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
793    HAVE_WINSYS_XLIB="yes"
794    ;;
795xyesno)
796    # DRI-based GLX
797    SRC_DIRS="$SRC_DIRS glx"
798    ;;
799esac
800
801if test "x$enable_dri" = xyes; then
802    DRIVER_DIRS="$DRIVER_DIRS dri"
803
804    GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
805    GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
806    HAVE_ST_DRI="yes"
807fi
808
809if test "x$enable_osmesa" = xyes; then
810    DRIVER_DIRS="$DRIVER_DIRS osmesa"
811fi
812
813AC_SUBST([SRC_DIRS])
814AC_SUBST([DRIVER_DIRS])
815AC_SUBST([GALLIUM_DIRS])
816AC_SUBST([GALLIUM_TARGET_DIRS])
817AC_SUBST([GALLIUM_WINSYS_DIRS])
818AC_SUBST([GALLIUM_DRIVERS_DIRS])
819AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
820AC_SUBST([MESA_LLVM])
821
822# Check for libdrm
823PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
824                  [have_libdrm=yes], [have_libdrm=no])
825
826if test "x$enable_dri" = xyes; then
827    # DRI must be shared, I think
828    if test "$enable_static" = yes; then
829        AC_MSG_ERROR([Cannot use static libraries for DRI drivers])
830    fi
831
832    # not a hard requirement as swrast does not depend on it
833    if test "x$have_libdrm" = xyes; then
834        DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
835    fi
836fi
837
838dnl Find out if X is available.
839PKG_CHECK_MODULES([X11], [x11])
840
841dnl Try to tell the user that the --x-* options are only used when
842dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
843m4_divert_once([HELP_BEGIN],
844[These options are only used when the X libraries cannot be found by the
845pkg-config utility.])
846
847dnl We need X for xlib and dri, so bomb now if it's not found
848if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
849    AC_MSG_ERROR([X11 development libraries needed for GLX])
850fi
851
852if test "x$enable_glx" = xyes; then
853    DEFINES="$DEFINES -DUSE_XCB"
854fi
855
856dnl Direct rendering or just indirect rendering
857case "$host_os" in
858gnu*)
859    dnl Disable by default on GNU/Hurd
860    driglx_direct_default="no"
861    ;;
862cygwin*)
863    dnl Disable by default on cygwin
864    driglx_direct_default="no"
865    ;;
866*)
867    driglx_direct_default="yes"
868    ;;
869esac
870AC_ARG_ENABLE([driglx-direct],
871    [AS_HELP_STRING([--disable-driglx-direct],
872        [enable direct rendering in GLX and EGL for DRI \
873            @<:@default=auto@:>@])],
874    [driglx_direct="$enableval"],
875    [driglx_direct="$driglx_direct_default"])
876
877dnl
878dnl libGL configuration per driver
879dnl
880case "x$enable_glx$enable_xlib_glx" in
881xyesyes)
882    # Xlib-based GLX
883    PKG_CHECK_MODULES([XLIBGL], [x11 xext])
884    GL_PC_REQ_PRIV="x11 xext"
885    X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
886    GL_LIB_DEPS="$XLIBGL_LIBS"
887    GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
888    GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm $PTHREAD_LIBS"
889    ;;
890xyesno)
891    # DRI-based GLX
892    PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
893    if test x"$driglx_direct" = xyes; then
894        if test "x$have_libdrm" != xyes; then
895            AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
896        fi
897        PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
898        GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
899    fi
900
901    # find the DRI deps for libGL
902    dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= 1.8.1"
903
904    # add xf86vidmode if available
905    PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
906    if test "$HAVE_XF86VIDMODE" = yes ; then
907        dri_modules="$dri_modules xxf86vm"
908    fi
909
910    PKG_CHECK_MODULES([DRIGL], [$dri_modules])
911    GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
912    X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
913    GL_LIB_DEPS="$DRIGL_LIBS"
914
915    # need DRM libs, $PTHREAD_LIBS, etc.
916    GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
917    GL_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
918    ;;
919esac
920
921# This is outside the case (above) so that it is invoked even for non-GLX
922# builds.
923AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes)
924
925GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
926GLESv1_CM_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
927GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
928GLESv2_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
929
930AC_SUBST([GL_LIB_DEPS])
931AC_SUBST([GL_PC_REQ_PRIV])
932AC_SUBST([GL_PC_LIB_PRIV])
933AC_SUBST([GL_PC_CFLAGS])
934AC_SUBST([DRI_PC_REQ_PRIV])
935AC_SUBST([GLESv1_CM_LIB_DEPS])
936AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
937AC_SUBST([GLESv2_LIB_DEPS])
938AC_SUBST([GLESv2_PC_LIB_PRIV])
939
940DRI_LIB_DEPS="\$(top_builddir)/src/mesa/libdricore/libdricore${VERSION}.la"
941
942AC_SUBST([HAVE_XF86VIDMODE])
943
944dnl
945dnl More GLX setup
946dnl
947case "x$enable_glx$enable_xlib_glx" in
948xyesyes)
949    DEFINES="$DEFINES -DUSE_XSHM"
950    ;;
951xyesno)
952    DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
953    if test "x$driglx_direct" = xyes; then
954        DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
955    fi
956    ;;
957esac
958
959dnl
960dnl TLS detection
961dnl
962
963AC_ARG_ENABLE([glx-tls],
964    [AS_HELP_STRING([--enable-glx-tls],
965        [enable TLS support in GLX @<:@default=disabled@:>@])],
966    [GLX_USE_TLS="$enableval"],
967    [GLX_USE_TLS=no])
968AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
969
970AS_IF([test "x$GLX_USE_TLS" = xyes -a "x$ax_pthread_ok" = xyes],
971      [DEFINES="${DEFINES} -DGLX_USE_TLS -DHAVE_PTHREAD"])
972
973dnl
974dnl More DRI setup
975dnl
976dnl Directory for DRI drivers
977AC_ARG_WITH([dri-driverdir],
978    [AS_HELP_STRING([--with-dri-driverdir=DIR],
979        [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
980    [DRI_DRIVER_INSTALL_DIR="$withval"],
981    [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
982AC_SUBST([DRI_DRIVER_INSTALL_DIR])
983dnl Extra search path for DRI drivers
984AC_ARG_WITH([dri-searchpath],
985    [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
986        [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
987    [DRI_DRIVER_SEARCH_DIR="$withval"],
988    [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
989AC_SUBST([DRI_DRIVER_SEARCH_DIR])
990dnl Which drivers to build - default is chosen by platform
991AC_ARG_WITH([dri-drivers],
992    [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
993        [comma delimited DRI drivers list, e.g.
994        "swrast,i965,radeon" @<:@default=auto@:>@])],
995    [with_dri_drivers="$withval"],
996    [with_dri_drivers=yes])
997if test "x$with_dri_drivers" = x; then
998    with_dri_drivers=no
999fi
1000
1001dnl If $with_dri_drivers is yes, directories will be added through
1002dnl platform checks
1003DRI_DIRS=""
1004case "$with_dri_drivers" in
1005no) ;;
1006yes)
1007    # classic DRI drivers require FEATURE_GL to build
1008    if test "x$enable_opengl" = xyes; then
1009        DRI_DIRS="yes"
1010    fi
1011    ;;
1012*)
1013    # verify the requested driver directories exist
1014    dri_drivers=`IFS=', '; echo $with_dri_drivers`
1015    for driver in $dri_drivers; do
1016        test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1017            AC_MSG_ERROR([DRI driver directory '$driver' does not exist])
1018    done
1019    DRI_DIRS="$dri_drivers"
1020    if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1021        AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1022    fi
1023    ;;
1024esac
1025
1026dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1027if test "x$enable_dri" = xyes; then
1028    # Platform specific settings and drivers to build
1029    case "$host_os" in
1030    linux*)
1031        DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1032        DEFINES="$DEFINES -DHAVE_ALIAS"
1033
1034        case "$host_cpu" in
1035        x86_64)
1036            if test "x$DRI_DIRS" = "xyes"; then
1037                DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1038            fi
1039            ;;
1040        powerpc*)
1041            # Build only the drivers for cards that exist on PowerPC.
1042            if test "x$DRI_DIRS" = "xyes"; then
1043                DRI_DIRS="r200 radeon swrast"
1044            fi
1045            ;;
1046        sparc*)
1047            # Build only the drivers for cards that exist on sparc
1048            if test "x$DRI_DIRS" = "xyes"; then
1049                DRI_DIRS="r200 radeon swrast"
1050            fi
1051            ;;
1052        esac
1053        ;;
1054    freebsd* | dragonfly* | *netbsd*)
1055        DEFINES="$DEFINES -DHAVE_PTHREAD -DUSE_EXTERNAL_DXTN_LIB=1"
1056        DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1057
1058        if test "x$DRI_DIRS" = "xyes"; then
1059            DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1060        fi
1061        ;;
1062    gnu*)
1063        DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1064        DEFINES="$DEFINES -DHAVE_ALIAS"
1065	;;
1066    solaris*)
1067        DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1068        ;;
1069    cygwin*)
1070        DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1071        if test "x$DRI_DIRS" = "xyes"; then
1072            DRI_DIRS="swrast"
1073        fi
1074        ;;
1075    esac
1076
1077    # default drivers
1078    if test "x$DRI_DIRS" = "xyes"; then
1079        DRI_DIRS="i915 i965 nouveau r200 radeon swrast"
1080    fi
1081
1082    DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/  */ /g'`
1083
1084    # Check for expat
1085    if test "x$enable_dri" = xyes; then
1086        EXPAT_INCLUDES=""
1087        EXPAT_LIB=-lexpat
1088        AC_ARG_WITH([expat],
1089            [AS_HELP_STRING([--with-expat=DIR],
1090                [expat install directory])],[
1091            EXPAT_INCLUDES="-I$withval/include"
1092            CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1093            LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1094            EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1095            ])
1096        AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1097	save_LIBS="$LIBS"
1098        AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1099            [AC_MSG_ERROR([Expat required for DRI.])])
1100	LIBS="$save_LIBS"
1101    fi
1102
1103    # if we are building any dri driver other than swrast ...
1104    if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1105        # ... libdrm is required
1106        if test "x$have_libdrm" != xyes; then
1107            AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1108        fi
1109        # ... and build dricommon
1110        HAVE_COMMON_DRI=yes
1111    fi
1112
1113    # put all the necessary libs together
1114    DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1115    GALLIUM_DRI_LIB_DEPS="$GALLIUM_DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1116fi
1117AM_CONDITIONAL(NEED_LIBDRICORE, test -n "$DRI_DIRS")
1118AC_SUBST([DRI_DIRS])
1119AC_SUBST([EXPAT_INCLUDES])
1120AC_SUBST([DRI_LIB_DEPS])
1121AC_SUBST([GALLIUM_DRI_LIB_DEPS])
1122
1123case $DRI_DIRS in
1124*i915*|*i965*)
1125    PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1126
1127    for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1128        case $d in
1129        i915)
1130            HAVE_I915_DRI=yes;
1131            ;;
1132        i965)
1133            HAVE_I965_DRI=yes;
1134            ;;
1135        esac
1136    done
1137
1138    ;;
1139esac
1140
1141case $DRI_DIRS in
1142*nouveau*)
1143    PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED])
1144    HAVE_NOUVEAU_DRI=yes;
1145    ;;
1146esac
1147
1148case $DRI_DIRS in
1149*radeon*|*r200*)
1150    PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1151
1152    for d in $(echo $DRI_DIRS | sed 's/,/ /g'); do
1153        case $d in
1154        radeon)
1155            HAVE_RADEON_DRI=yes;
1156            ;;
1157        r200)
1158            HAVE_R200_DRI=yes;
1159            ;;
1160        esac
1161    done
1162
1163    ;;
1164esac
1165
1166case $DRI_DIRS in
1167*swrast*)
1168    HAVE_SWRAST_DRI=yes;
1169    ;;
1170esac
1171
1172AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
1173AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
1174AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
1175AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
1176AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
1177AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
1178AM_CONDITIONAL(HAVE_COMMON_DRI, test x$HAVE_COMMON_DRI = xyes)
1179
1180dnl
1181dnl OSMesa configuration
1182dnl
1183
1184dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1185AC_ARG_WITH([osmesa-bits],
1186    [AS_HELP_STRING([--with-osmesa-bits=BITS],
1187        [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1188    [osmesa_bits="$withval"],
1189    [osmesa_bits=8])
1190if test "x$osmesa_bits" != x8; then
1191    if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1192        AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1193        osmesa_bits=8
1194    fi
1195fi
1196case "x$osmesa_bits" in
1197x8)
1198    OSMESA_LIB="${OSMESA_LIB}"
1199    ;;
1200x16|x32)
1201    OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1202    DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1203    ;;
1204*)
1205    AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1206    ;;
1207esac
1208
1209if test "x$enable_osmesa" = xyes; then
1210    # only link libraries with osmesa if shared
1211    if test "$enable_static" = no; then
1212        OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1213    else
1214        OSMESA_LIB_DEPS=""
1215    fi
1216    OSMESA_MESA_DEPS=""
1217    OSMESA_PC_LIB_PRIV="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1218fi
1219
1220AC_SUBST([OSMESA_LIB_DEPS])
1221AC_SUBST([OSMESA_MESA_DEPS])
1222AC_SUBST([OSMESA_PC_REQ])
1223AC_SUBST([OSMESA_PC_LIB_PRIV])
1224
1225dnl
1226dnl gbm configuration
1227dnl
1228if test "x$enable_gbm" = xauto; then
1229    case "$with_egl_platforms" in
1230        *drm*)
1231            enable_gbm=yes ;;
1232         *)
1233            enable_gbm=no ;;
1234    esac
1235fi
1236if test "x$enable_gbm" = xyes; then
1237    SRC_DIRS="$SRC_DIRS gbm"
1238
1239    PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1240                      AC_MSG_ERROR([gbm needs udev]))
1241
1242    if test "x$enable_dri" = xyes; then
1243        GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1244        if test "x$enable_shared_glapi" = xno; then
1245            AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1246        fi
1247    fi
1248fi
1249GBM_PC_REQ_PRIV="libudev"
1250GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1251AC_SUBST([GBM_PC_REQ_PRIV])
1252AC_SUBST([GBM_PC_LIB_PRIV])
1253
1254dnl
1255dnl EGL configuration
1256dnl
1257EGL_CLIENT_APIS=""
1258
1259if test "x$enable_egl" = xyes; then
1260    SRC_DIRS="$SRC_DIRS egl"
1261    EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS $PTHREAD_LIBS"
1262
1263    AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1264
1265    if test "$enable_static" != yes; then
1266        # build egl_glx when libGL is built
1267        if test "x$enable_glx" = xyes; then
1268	    HAVE_EGL_DRIVER_GLX=1
1269        fi
1270
1271        PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1272                          [have_libudev=yes],[have_libudev=no])
1273        if test "$have_libudev" = yes; then
1274            DEFINES="$DEFINES -DHAVE_LIBUDEV"
1275        fi
1276
1277        if test "x$enable_dri" = xyes; then
1278	    HAVE_EGL_DRIVER_DRI2=1
1279	fi
1280
1281    fi
1282fi
1283AC_SUBST([EGL_LIB_DEPS])
1284
1285dnl
1286dnl EGL Gallium configuration
1287dnl
1288if test "x$enable_gallium_egl" = xyes; then
1289    if test "x$with_gallium_drivers" = x; then
1290        AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1291    fi
1292    if test "x$enable_egl" = xno; then
1293        AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1294    fi
1295    if test "x$have_libdrm" != xyes; then
1296        AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1297    fi
1298
1299    GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1300    GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1301    HAVE_ST_EGL="yes"
1302fi
1303
1304dnl
1305dnl gbm Gallium configuration
1306dnl
1307if test "x$enable_gallium_gbm" = xauto; then
1308    case "$enable_gbm$HAVE_ST_EGL$enable_dri$with_egl_platforms" in
1309        yesyesyes*drm*)
1310            enable_gallium_gbm=yes ;;
1311         *)
1312            enable_gallium_gbm=no ;;
1313    esac
1314fi
1315if test "x$enable_gallium_gbm" = xyes; then
1316    if test "x$with_gallium_drivers" = x; then
1317        AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1318    fi
1319    if test "x$enable_gbm" = xno; then
1320        AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1321    fi
1322    # gbm_gallium abuses DRI_LIB_DEPS to link.  Make sure it is set.
1323    if test "x$enable_dri" = xno; then
1324        AC_MSG_ERROR([gbm_gallium requires --enable-dri to build])
1325    fi
1326
1327    GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1328    GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1329    HAVE_ST_GBM="yes"
1330    enable_gallium_loader=yes
1331fi
1332
1333dnl
1334dnl X.Org DDX configuration
1335dnl
1336if test "x$enable_xorg" = xyes; then
1337    PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1338    PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1339    PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1340    PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1341        HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1342        HAVE_XEXTPROTO_71="no")
1343    GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1344    HAVE_ST_XORG=yes
1345fi
1346
1347dnl
1348dnl XA configuration
1349dnl
1350if test "x$enable_xa" = xyes; then
1351AC_PROG_AWK
1352AC_PROG_GREP
1353AC_CHECK_PROG(NM, nm, "nm")
1354if test "x$AWK" = x || test "x$GREP" = x || test "x$NM" = x; then
1355AC_MSG_WARN([Missing one of nm, grep or awk. Disabling xa.])
1356enable_xa=no
1357fi
1358fi
1359if test "x$enable_xa" = xyes; then
1360    GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1361    HAVE_ST_XA=yes
1362    AC_SUBST(AWK)
1363    AC_SUBST(GREP)
1364    AC_SUBST(NM)
1365fi
1366
1367dnl
1368dnl OpenVG configuration
1369dnl
1370VG_LIB_DEPS=""
1371
1372if test "x$enable_openvg" = xyes; then
1373    if test "x$enable_egl" = xno; then
1374        AC_MSG_ERROR([cannot enable OpenVG without EGL])
1375    fi
1376    if test "x$with_gallium_drivers" = x; then
1377        AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1378    fi
1379    if test "x$enable_gallium_egl" = xno; then
1380        AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1381    fi
1382
1383    EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1384    VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS $PTHREAD_LIBS"
1385    CORE_DIRS="$CORE_DIRS mapi/vgapi"
1386    GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1387    HAVE_ST_VEGA=yes
1388    VG_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1389    AC_SUBST([VG_PC_LIB_PRIV])
1390fi
1391
1392dnl
1393dnl D3D1X configuration
1394dnl
1395
1396if test "x$enable_d3d1x" = xyes; then
1397    if test "x$with_gallium_drivers" = x; then
1398        AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1399    fi
1400
1401    GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1402    HAVE_ST_D3D1X=yes
1403fi
1404
1405dnl
1406dnl Gallium G3DVL configuration
1407dnl
1408AC_ARG_ENABLE([gallium-g3dvl],
1409    [AS_HELP_STRING([--enable-gallium-g3dvl],
1410        [build gallium g3dvl @<:@default=disabled@:>@])],
1411    [enable_gallium_g3dvl="$enableval"],
1412    [enable_gallium_g3dvl=no])
1413if test "x$enable_gallium_g3dvl" = xyes; then
1414    if test "x$with_gallium_drivers" = x; then
1415        AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1416    fi
1417
1418    if test "x$enable_xvmc" = xauto; then
1419	PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1420    fi
1421
1422    if test "x$enable_vdpau" = xauto; then
1423	PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1424    fi
1425
1426    if test "x$enable_va" = xauto; then
1427	#don't enable vaapi state tracker even if package exists
1428	#PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1429        enable_va=no
1430    fi
1431fi
1432
1433if test "x$enable_xvmc" = xyes; then
1434    PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 x11-xcb xcb-dri2 >= 1.8])
1435    GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xvmc"
1436    HAVE_ST_XVMC="yes"
1437fi
1438
1439if test "x$enable_vdpau" = xyes; then
1440    PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1 x11-xcb xcb-dri2 >= 1.8])
1441    GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1442    HAVE_ST_VDPAU="yes"
1443fi
1444
1445if test "x$enable_va" = xyes; then
1446    PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1 x11-xcb xcb-dri2 >= 1.8])
1447    AC_MSG_WARN([vaapi state tracker currently unmaintained])
1448    GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1449    HAVE_ST_VA="yes"
1450fi
1451
1452dnl
1453dnl OpenCL configuration
1454dnl
1455
1456AC_ARG_WITH([libclc-path],
1457   [AS_HELP_STRING([--with-libclc-path],
1458         [DEPRECATED: See http://dri.freedesktop.org/wiki/GalliumCompute#How_to_Install])],
1459   [LIBCLC_PATH="$withval"],
1460   [LIBCLC_PATH=""])
1461
1462if test "x$LIBCLC_PATH" != x; then
1463   AC_MSG_ERROR([The --with-libclc-path option has been deprecated.
1464                  Please review the updated build instructions for clover:
1465		  http://dri.freedesktop.org/wiki/GalliumCompute])
1466fi
1467
1468
1469AC_ARG_WITH([clang-libdir],
1470   [AS_HELP_STRING([--with-clang-libdir],
1471         [Path to Clang libraries @<:@default=llvm-config --libdir@:>@])],
1472   [CLANG_LIBDIR="$withval"],
1473   [CLANG_LIBDIR=""])
1474
1475LIBCLC_INCLUDEDIR=`pkg-config --variable=includedir libclc`
1476LIBCLC_LIBEXECDIR=`pkg-config --variable=libexecdir libclc`
1477AC_SUBST([LIBCLC_INCLUDEDIR])
1478AC_SUBST([LIBCLC_LIBEXECDIR])
1479
1480if test "x$enable_opencl" = xyes; then
1481    if test "x$with_gallium_drivers" = x; then
1482        AC_MSG_ERROR([cannot enable OpenCL without Gallium])
1483    fi
1484
1485    if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 6; then
1486        AC_MSG_ERROR([gcc >= 4.6 is required to build clover])
1487    fi
1488
1489    if test "x$LIBCLC_INCLUDEDIR" == x || test "x$LIBCLC_LIBEXECDIR" == x; then
1490        AC_MSG_ERROR([pkg-config cannot use libclc.pc which is required to build clover])
1491    fi
1492
1493    GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS clover"
1494    GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS opencl"
1495    enable_gallium_loader=yes
1496fi
1497
1498dnl
1499dnl Gallium configuration
1500dnl
1501if test "x$with_gallium_drivers" != x; then
1502    SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1503fi
1504AM_CONDITIONAL(HAVE_GALLIUM, test "x$with_gallium_drivers" != x)
1505
1506AC_SUBST([LLVM_BINDIR])
1507AC_SUBST([LLVM_CFLAGS])
1508AC_SUBST([LLVM_CPPFLAGS])
1509AC_SUBST([LLVM_CXXFLAGS])
1510AC_SUBST([LLVM_LIBDIR])
1511AC_SUBST([LLVM_LIBS])
1512AC_SUBST([LLVM_LDFLAGS])
1513AC_SUBST([LLVM_INCLUDEDIR])
1514AC_SUBST([LLVM_VERSION])
1515AC_SUBST([CLANG_RESOURCE_DIR])
1516
1517case "x$enable_opengl$enable_gles1$enable_gles2" in
1518x*yes*)
1519    EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1520    ;;
1521esac
1522
1523AC_SUBST([VG_LIB_DEPS])
1524AC_SUBST([EGL_CLIENT_APIS])
1525
1526dnl
1527dnl EGL Platforms configuration
1528dnl
1529AC_ARG_WITH([egl-platforms],
1530    [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1531        [comma delimited native platforms libEGL supports, e.g.
1532        "x11,drm" @<:@default=auto@:>@])],
1533    [with_egl_platforms="$withval"],
1534    [if test "x$enable_egl" = xyes; then
1535	with_egl_platforms="x11"
1536    else
1537	with_egl_platforms=""
1538    fi])
1539
1540EGL_PLATFORMS=""
1541
1542if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then
1543    AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1544fi
1545
1546# Do per-EGL platform setups and checks
1547egl_platforms=`IFS=', '; echo $with_egl_platforms`
1548for plat in $egl_platforms; do
1549	case "$plat" in
1550	fbdev|null)
1551		GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/$plat"
1552		;;
1553
1554	wayland)
1555		PKG_CHECK_MODULES([WAYLAND], [wayland-client >= 1.0.2 wayland-server >= 1.0.2])
1556		GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1557
1558                WAYLAND_PREFIX=`$PKG_CONFIG --variable=prefix wayland-client`
1559                AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner],,
1560                             [${WAYLAND_PREFIX}/bin$PATH_SEPARATOR$PATH])
1561		;;
1562
1563	x11)
1564		PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes])
1565		# workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1566		save_LIBS="$LIBS"
1567		AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1568			     [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1569		LIBS="$save_LIBS"
1570		;;
1571
1572	drm)
1573		test "x$enable_gbm" = "xno" &&
1574			AC_MSG_ERROR([EGL platform drm needs gbm])
1575		;;
1576
1577	android|gdi)
1578		;;
1579
1580	*)
1581		AC_MSG_ERROR([EGL platform '$plat' does not exist])
1582		;;
1583	esac
1584
1585        case "$plat$have_libudev" in
1586                waylandno|drmno)
1587                    AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1588        esac
1589done
1590
1591# libEGL wants to default to the first platform specified in
1592# ./configure.  parse that here.
1593if test "x$egl_platforms" != "x"; then
1594    FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr 'a-z' 'A-Z'`
1595    EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS"
1596else
1597    EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
1598fi
1599
1600EGL_PLATFORMS="$egl_platforms"
1601
1602AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1)
1603AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep 'wayland' >/dev/null 2>&1)
1604AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep 'drm' >/dev/null 2>&1)
1605AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep 'fbdev' >/dev/null 2>&1)
1606AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep 'null' >/dev/null 2>&1)
1607
1608AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x")
1609AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != "x")
1610
1611AC_SUBST([EGL_NATIVE_PLATFORM])
1612AC_SUBST([EGL_PLATFORMS])
1613AC_SUBST([EGL_CFLAGS])
1614
1615AC_ARG_WITH([egl-driver-dir],
1616    [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1617                    [directory for EGL drivers [[default=${libdir}/egl]]])],
1618    [EGL_DRIVER_INSTALL_DIR="$withval"],
1619    [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1620AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1621
1622AC_ARG_WITH([xorg-driver-dir],
1623    [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1624                    [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1625    [XORG_DRIVER_INSTALL_DIR="$withval"],
1626    [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1627AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1628
1629AC_ARG_WITH([max-width],
1630    [AS_HELP_STRING([--with-max-width=N],
1631                    [Maximum framebuffer width (4096)])],
1632    [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1633     AS_IF([test "${withval}" -gt "4096"],
1634           [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1635)
1636AC_ARG_WITH([max-height],
1637    [AS_HELP_STRING([--with-max-height=N],
1638                    [Maximum framebuffer height (4096)])],
1639    [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1640     AS_IF([test "${withval}" -gt "4096"],
1641           [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1642)
1643
1644dnl
1645dnl Gallium LLVM
1646dnl
1647AC_ARG_ENABLE([gallium-llvm],
1648    [AS_HELP_STRING([--enable-gallium-llvm],
1649        [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1650    [enable_gallium_llvm="$enableval"],
1651    [enable_gallium_llvm=auto])
1652
1653AC_ARG_WITH([llvm-shared-libs],
1654    [AS_HELP_STRING([--with-llvm-shared-libs],
1655        [link with LLVM shared libraries @<:@default=disabled@:>@])],
1656    [with_llvm_shared_libs=yes],
1657    [with_llvm_shared_libs=no])
1658
1659AC_ARG_WITH([llvm-prefix],
1660    [AS_HELP_STRING([--with-llvm-prefix],
1661        [Prefix for LLVM installations in non-standard locations])],
1662    [llvm_prefix="$withval"],
1663    [llvm_prefix=""])
1664
1665
1666if test "x$with_gallium_drivers" = x; then
1667    enable_gallium_llvm=no
1668fi
1669if test "x$enable_gallium_llvm" = xauto; then
1670    case "$host_cpu" in
1671    i*86|x86_64) enable_gallium_llvm=yes;;
1672    esac
1673fi
1674if test "x$enable_gallium_llvm" = xyes; then
1675    if test "x$llvm_prefix" != x; then
1676        AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"])
1677    else
1678        AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1679    fi
1680
1681    if test "x$LLVM_CONFIG" != xno; then
1682	LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1683	LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g' -e 's/-Wcovered-switch-default//g'`
1684	if test "x$with_llvm_shared_libs" = xyes; then
1685	    dnl We can't use $LLVM_VERSION because it has 'svn' stripped out,
1686	    LLVM_LIBS="-lLLVM-`$LLVM_CONFIG --version`"
1687	else
1688            LLVM_COMPONENTS="engine bitwriter"
1689            if $LLVM_CONFIG --components | grep -q '\<mcjit\>'; then
1690                LLVM_COMPONENTS="${LLVM_COMPONENTS} mcjit"
1691            fi
1692            if test "x$enable_opencl" = xyes; then
1693                LLVM_COMPONENTS="${LLVM_COMPONENTS} ipo linker instrumentation"
1694            fi
1695            LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
1696	fi
1697	LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1698	LLVM_BINDIR=`$LLVM_CONFIG --bindir`
1699	LLVM_CXXFLAGS=`$LLVM_CONFIG --cxxflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g' -e 's/-Wcovered-switch-default//g'`
1700	LLVM_CPPFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g' -e 's/-Wcovered-switch-default//g'`
1701	LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir`
1702	LLVM_LIBDIR=`$LLVM_CONFIG --libdir`
1703	DEFINES="${DEFINES} -DHAVE_LLVM=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/0x0\10\2/g'`"
1704	MESA_LLVM=1
1705
1706	dnl Check for Clang interanl headers
1707        if test "x$enable_opencl" = xyes; then
1708            if test "x$CLANG_LIBDIR" = x; then
1709                CLANG_LIBDIR=${LLVM_LIBDIR}
1710            fi
1711            CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
1712            AC_CHECK_FILE("$CLANG_RESOURCE_DIR/include/stddef.h",,
1713                AC_MSG_ERROR([Could not find clang internal header stddef.h in $CLANG_RESOURCE_DIR Use --with-clang-libdir to specify the correct path to the clang libraries.]))
1714        fi
1715    else
1716	MESA_LLVM=0
1717    fi
1718else
1719    MESA_LLVM=0
1720fi
1721
1722dnl Directory for XVMC libs
1723AC_ARG_WITH([xvmc-libdir],
1724    [AS_HELP_STRING([--with-xvmc-libdir=DIR],
1725        [directory for the XVMC libraries @<:@default=${libdir}@:>@])],
1726    [XVMC_LIB_INSTALL_DIR="$withval"],
1727    [XVMC_LIB_INSTALL_DIR='${libdir}'])
1728AC_SUBST([XVMC_LIB_INSTALL_DIR])
1729
1730dnl
1731dnl Gallium Tests
1732dnl
1733if test "x$enable_gallium_tests" = xyes; then
1734    SRC_DIRS="$SRC_DIRS gallium/tests/trivial"
1735    enable_gallium_loader=yes
1736fi
1737
1738dnl Directory for VDPAU libs
1739AC_ARG_WITH([vdpau-libdir],
1740    [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1741        [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1742    [VDPAU_LIB_INSTALL_DIR="$withval"],
1743    [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1744AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1745
1746dnl Directory for VA libs
1747AC_ARG_WITH([va-libdir],
1748    [AS_HELP_STRING([--with-va-libdir=DIR],
1749        [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1750    [VA_LIB_INSTALL_DIR="$withval"],
1751    [VA_LIB_INSTALL_DIR='${libdir}/va'])
1752AC_SUBST([VA_LIB_INSTALL_DIR])
1753
1754dnl Directory for OpenCL libs
1755AC_ARG_WITH([opencl-libdir],
1756    [AS_HELP_STRING([--with-opencl-libdir=DIR],
1757        [directory for the OpenCL libraries @<:@default=${libdir}/opencl@:>@])],
1758    [OPENCL_LIB_INSTALL_DIR="$withval"],
1759    [OPENCL_LIB_INSTALL_DIR='${libdir}/opencl'])
1760AC_SUBST([OPENCL_LIB_INSTALL_DIR])
1761
1762dnl
1763dnl Gallium helper functions
1764dnl
1765gallium_check_st() {
1766    if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1767	 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1768	 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1769         if test "x$have_libdrm" != xyes; then
1770            AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1771         fi
1772         GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1773    fi
1774    if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1775         GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1776    fi
1777    if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1778         GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1779    fi
1780    if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1781         GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1782    fi
1783    if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1784         GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1785    fi
1786    if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1787         GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1788    fi
1789    if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1790         GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1791    fi
1792}
1793
1794gallium_require_llvm() {
1795    if test "x$MESA_LLVM" = x0; then
1796        case "$host_cpu" in
1797        i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1798        esac
1799    fi
1800}
1801
1802gallium_require_drm_loader() {
1803    if test "x$enable_gallium_loader" = xyes; then
1804        PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1805                          AC_MSG_ERROR([Gallium drm loader requrires libudev]))
1806        if test "x$have_libdrm" != xyes; then
1807            AC_MSG_ERROR([Gallium drm loader requires libdrm >= $LIBDRM_REQUIRED])
1808        fi
1809        enable_gallium_drm_loader=yes
1810    fi
1811}
1812
1813dnl Gallium drivers
1814dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1815if test "x$with_gallium_drivers" != x; then
1816    gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1817    for driver in $gallium_drivers; do
1818        case "x$driver" in
1819        xsvga)
1820            GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1821            gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1822            ;;
1823        xi915)
1824            PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1825            GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1826            if test "x$MESA_LLVM" = x1; then
1827                GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1828            fi
1829            GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1830            gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1831            ;;
1832        xr300)
1833            PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1834            gallium_require_llvm "Gallium R300"
1835            GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1836            gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1837            ;;
1838        xr600)
1839            PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1840            gallium_require_drm_loader
1841            GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1842            if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then
1843                if test "x$LLVM_VERSION" != "x3.1"; then
1844                    AC_MSG_ERROR([LLVM 3.1 is required for the r600 llvm compiler.])
1845                fi
1846                NEED_RADEON_GALLIUM=yes;
1847            fi
1848            if test "x$enable_r600_llvm" = xyes; then
1849                USE_R600_LLVM_COMPILER=yes;
1850            fi
1851            if test "x$enable_opencl" = xyes -a "x$with_llvm_shared_libs" = xno; then
1852                LLVM_LIBS="${LLVM_LIBS} `$LLVM_CONFIG --libs bitreader asmparser`"
1853            fi
1854            gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" "va-r600"
1855            ;;
1856        xradeonsi)
1857            PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1858            gallium_require_drm_loader
1859            GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS radeonsi"
1860            if test "x$LLVM_VERSION" != "x3.1"; then
1861                AC_MSG_ERROR([LLVM 3.1 is required to build the radeonsi driver.])
1862            fi
1863	    NEED_RADEON_GALLIUM=yes;
1864            gallium_check_st "radeon/drm" "dri-radeonsi" "xorg-radeonsi" "" "" "vdpau-radeonsi" ""
1865            ;;
1866        xnouveau)
1867            PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1868            gallium_require_drm_loader
1869            GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nv30 nv50 nvc0"
1870            gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1871            ;;
1872        xswrast)
1873            GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1874            if test "x$MESA_LLVM" = x1; then
1875                GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1876            fi
1877
1878            if test "x$HAVE_ST_DRI" = xyes; then
1879                GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1880            fi
1881            if test "x$HAVE_ST_VDPAU" = xyes; then
1882                GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1883            fi
1884            if test "x$HAVE_ST_XVMC" = xyes; then
1885                GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1886            fi
1887            if test "x$HAVE_ST_VA" = xyes; then
1888                GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
1889            fi
1890            if test "x$HAVE_ST_VDPAU" = xyes ||
1891               test "x$HAVE_ST_XVMC" = xyes ||
1892               test "x$HAVE_ST_VA" = xyes; then
1893               if test "x$HAVE_WINSYS_XLIB" != xyes; then
1894                  GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1895               fi
1896            fi
1897            ;;
1898        *)
1899            AC_MSG_ERROR([Unknown Gallium driver: $driver])
1900            ;;
1901        esac
1902    done
1903fi
1904
1905if test "x$enable_gallium_loader" = xyes; then
1906    GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1907    GALLIUM_PIPE_LOADER_DEFINES="-DHAVE_PIPE_LOADER_SW"
1908    GALLIUM_PIPE_LOADER_LIBS="\$(TOP)/src/gallium/auxiliary/pipe-loader/libpipe_loader.a"
1909    GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS \$(TOP)/src/gallium/winsys/sw/null/libws_null.a"
1910
1911    if test "x$HAVE_WINSYS_XLIB" = xyes; then
1912        GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_XLIB"
1913        GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS \$(TOP)/src/gallium/winsys/sw/xlib/libws_xlib.a"
1914    fi
1915
1916    if test "x$enable_gallium_drm_loader" = xyes; then
1917        GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRM"
1918        PKG_CHECK_MODULES([GALLIUM_PIPE_LOADER_XCB], [xcb xcb-dri2],
1919                          pipe_loader_have_xcb=yes, pipe_loader_have_xcb=no)
1920        if test "x$pipe_loader_have_xcb" = xyes; then
1921            GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DPIPE_LOADER_HAVE_XCB"
1922            GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS $GALLIUM_PIPE_LOADER_XCB_LIBS $LIBDRM_LIBS"
1923        fi
1924    fi
1925
1926    AC_SUBST([GALLIUM_PIPE_LOADER_DEFINES])
1927    AC_SUBST([GALLIUM_PIPE_LOADER_LIBS])
1928fi
1929
1930dnl Tell Automake which drivers to build
1931for driver in $GALLIUM_DRIVERS_DIRS; do
1932    case "x$driver" in
1933        xgalahad)
1934            HAVE_GALAHAD_GALLIUM=yes;
1935	    ;;
1936	xidentity)
1937	    HAVE_IDENTITY_GALLIUM=yes;
1938	    ;;
1939	xnoop)
1940	    HAVE_NOOP_GALLIUM=yes;
1941	    ;;
1942        *)
1943            GALLIUM_MAKE_DIRS="$GALLIUM_MAKE_DIRS $driver"
1944	    ;;
1945    esac
1946done
1947
1948AM_CONDITIONAL(HAVE_GALAHAD_GALLIUM, test x$HAVE_GALAHAD_GALLIUM = xyes)
1949AM_CONDITIONAL(HAVE_IDENTITY_GALLIUM, test x$HAVE_IDENTITY_GALLIUM = xyes)
1950AM_CONDITIONAL(HAVE_NOOP_GALLIUM, test x$HAVE_NOOP_GALLIUM = xyes)
1951AM_CONDITIONAL(NEED_RADEON_GALLIUM, test x$NEED_RADEON_GALLIUM = xyes)
1952AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes)
1953AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes)
1954AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes)
1955AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
1956AC_SUBST([GALLIUM_MAKE_DIRS])
1957
1958AM_CONDITIONAL(HAVE_X11_DRIVER, echo "$DRIVER_DIRS" | grep 'x11' >/dev/null 2>&1)
1959
1960AM_CONDITIONAL(HAVE_X86_ASM, echo "$DEFINES" | grep 'X86_ASM' >/dev/null 2>&1)
1961AM_CONDITIONAL(HAVE_X86_64_ASM, echo "$DEFINES" | grep 'X86_64_ASM' >/dev/null 2>&1)
1962AM_CONDITIONAL(HAVE_SPARC_ASM, echo "$DEFINES" | grep 'SPARC_ASM' >/dev/null 2>&1)
1963
1964dnl prepend CORE_DIRS to SRC_DIRS
1965SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1966
1967dnl Restore LDFLAGS and CPPFLAGS
1968LDFLAGS="$_SAVE_LDFLAGS"
1969CPPFLAGS="$_SAVE_CPPFLAGS"
1970
1971dnl Add user CFLAGS and CXXFLAGS
1972CFLAGS="$CFLAGS $USER_CFLAGS"
1973CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1974
1975dnl Substitute the config
1976AC_CONFIG_FILES([configs/current
1977		Makefile
1978		src/egl/Makefile
1979		src/egl/drivers/Makefile
1980		src/egl/drivers/dri2/Makefile
1981		src/egl/drivers/glx/Makefile
1982		src/egl/main/Makefile
1983		src/egl/main/egl.pc
1984		src/egl/wayland/Makefile
1985		src/egl/wayland/wayland-drm/Makefile
1986		src/egl/wayland/wayland-egl/Makefile
1987		src/egl/wayland/wayland-egl/wayland-egl.pc
1988		src/gallium/Makefile
1989		src/gallium/auxiliary/pipe-loader/Makefile
1990		src/gallium/drivers/Makefile
1991		src/gallium/drivers/r300/Makefile
1992		src/gallium/drivers/r600/Makefile
1993		src/gallium/state_trackers/clover/Makefile
1994		src/gallium/targets/opencl/Makefile
1995		src/gbm/Makefile
1996		src/gbm/main/gbm.pc
1997		src/glsl/Makefile
1998		src/glsl/glcpp/Makefile
1999		src/glsl/tests/Makefile
2000		src/glx/Makefile
2001		src/glx/tests/Makefile
2002		src/gtest/Makefile
2003		src/Makefile
2004		src/mapi/es1api/Makefile
2005		src/mapi/es1api/glesv1_cm.pc
2006		src/mapi/es2api/Makefile
2007		src/mapi/es2api/glesv2.pc
2008		src/mapi/glapi/Makefile
2009		src/mapi/glapi/gen/Makefile
2010		src/mapi/glapi/tests/Makefile
2011		src/mapi/shared-glapi/Makefile
2012		src/mapi/shared-glapi/tests/Makefile
2013		src/mapi/vgapi/Makefile
2014		src/mapi/vgapi/vg.pc
2015		src/mesa/Makefile
2016		src/mesa/gl.pc
2017		src/mesa/drivers/Makefile
2018		src/mesa/drivers/dri/dri.pc
2019		src/mesa/drivers/dri/common/Makefile
2020		src/mesa/drivers/dri/i915/Makefile
2021		src/mesa/drivers/dri/i965/Makefile
2022		src/mesa/drivers/dri/Makefile
2023		src/mesa/drivers/dri/nouveau/Makefile
2024		src/mesa/drivers/dri/r200/Makefile
2025		src/mesa/drivers/dri/radeon/Makefile
2026		src/mesa/drivers/dri/swrast/Makefile
2027		src/mesa/drivers/osmesa/Makefile
2028		src/mesa/drivers/osmesa/osmesa.pc
2029		src/mesa/drivers/x11/Makefile
2030		src/mesa/libdricore/Makefile
2031		src/mesa/main/tests/Makefile
2032		src/mesa/x86-64/Makefile
2033		src/mesa/x86/Makefile])
2034
2035dnl Sort the dirs alphabetically
2036GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2037GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2038GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2039GALLIUM_MAKE_DIRS=`echo $GALLIUM_MAKE_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2040GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
2041
2042AC_OUTPUT
2043
2044dnl
2045dnl Output some configuration info for the user
2046dnl
2047echo ""
2048echo "        prefix:          $prefix"
2049echo "        exec_prefix:     $exec_prefix"
2050echo "        libdir:          $libdir"
2051echo "        includedir:      $includedir"
2052
2053dnl API info
2054echo ""
2055echo "        OpenGL:          $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
2056echo "        OpenVG:          $enable_openvg"
2057
2058dnl Driver info
2059echo ""
2060if test "x$enable_osmesa" != xno; then
2061        echo "        OSMesa:          lib$OSMESA_LIB"
2062else
2063        echo "        OSMesa:          no"
2064fi
2065
2066if test "x$enable_dri" != xno; then
2067        # cleanup the drivers var
2068        dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
2069        if test "x$DRI_DIRS" = x; then
2070            echo "        DRI drivers:     no"
2071        else
2072            echo "        DRI drivers:     $dri_dirs"
2073        fi
2074        echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
2075fi
2076
2077case "x$enable_glx$enable_xlib_glx" in
2078xyesyes)
2079    echo "        GLX:             Xlib-based"
2080    ;;
2081xyesno)
2082    echo "        GLX:             DRI-based"
2083    ;;
2084*)
2085    echo "        GLX:             $enable_glx"
2086    ;;
2087esac
2088
2089dnl EGL
2090echo ""
2091echo "        EGL:             $enable_egl"
2092if test "$enable_egl" = yes; then
2093    echo "        EGL platforms:   $EGL_PLATFORMS"
2094
2095    egl_drivers=""
2096    if test "x$HAVE_EGL_DRIVER_GLX" != "x"; then
2097        egl_drivers="$egl_drivers builtin:egl_glx"
2098    fi
2099    if test "x$HAVE_EGL_DRIVER_DRI2" != "x"; then
2100        egl_drivers="$egl_drivers builtin:egl_dri2"
2101    fi
2102
2103    if test "x$HAVE_ST_EGL" = xyes; then
2104        echo "        EGL drivers:    ${egl_drivers} egl_gallium"
2105        echo "        EGL Gallium STs:$EGL_CLIENT_APIS"
2106    else
2107        echo "        EGL drivers:    $egl_drivers"
2108    fi
2109fi
2110
2111echo ""
2112if test "x$MESA_LLVM" = x1; then
2113    echo "        llvm:            yes"
2114    echo "        llvm-config:     $LLVM_CONFIG"
2115    echo "        llvm-version:    $LLVM_VERSION"
2116else
2117    echo "        llvm:            no"
2118fi
2119
2120echo ""
2121if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2122    echo "        Gallium:         yes"
2123    echo "        Gallium dirs:    $GALLIUM_DIRS"
2124    echo "        Target dirs:     $GALLIUM_TARGET_DIRS"
2125    echo "        Winsys dirs:     $GALLIUM_WINSYS_DIRS"
2126    echo "        Driver dirs:     $GALLIUM_DRIVERS_DIRS"
2127    echo "        Trackers dirs:   $GALLIUM_STATE_TRACKERS_DIRS"
2128else
2129    echo "        Gallium:         no"
2130fi
2131
2132
2133dnl Libraries
2134echo ""
2135echo "        Shared libs:     $enable_shared"
2136echo "        Static libs:     $enable_static"
2137echo "        Shared-glapi:    $enable_shared_glapi"
2138
2139dnl Compiler options
2140# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2141cflags=`echo $CFLAGS $PIC_FLAGS | \
2142    $SED 's/^ *//;s/  */ /;s/ *$//'`
2143cxxflags=`echo $CXXFLAGS $PIC_FLAGS | \
2144    $SED 's/^ *//;s/  */ /;s/ *$//'`
2145defines=`echo $DEFINES | $SED 's/^ *//;s/  */ /;s/ *$//'`
2146echo ""
2147echo "        CFLAGS:          $cflags"
2148echo "        CXXFLAGS:        $cxxflags"
2149echo "        Macros:          $defines"
2150echo ""
2151echo "        PYTHON2:         $PYTHON2"
2152
2153echo ""
2154echo "        Run '${MAKE-make}' to build Mesa"
2155echo ""
2156