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