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