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