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