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