glx: Require xcb_dri2 for building glxdri2.c.
[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 xcb-xfixes])
1512 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1513 save_LIBS="$LIBS"
1514 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1515 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1516 LIBS="$save_LIBS"
1517 ;;
1518
1519 drm)
1520 test "x$enable_gbm" = "xno" &&
1521 AC_MSG_ERROR([EGL platform drm needs gbm])
1522 ;;
1523
1524 android|gdi)
1525 ;;
1526
1527 *)
1528 AC_MSG_ERROR([EGL platform '$plat' does not exist])
1529 ;;
1530 esac
1531
1532 case "$plat$have_libudev" in
1533 waylandno|drmno)
1534 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1535 esac
1536 done
1537
1538 # libEGL wants to default to the first platform specified in
1539 # ./configure. parse that here.
1540 if test "x$egl_platforms" != "x"; then
1541 FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr 'a-z' 'A-Z'`
1542 EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS"
1543 else
1544 EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
1545 fi
1546
1547 EGL_PLATFORMS="$egl_platforms"
1548
1549 AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1)
1550 AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep 'wayland' >/dev/null 2>&1)
1551 AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep 'drm' >/dev/null 2>&1)
1552 AM_CONDITIONAL(HAVE_EGL_PLATFORM_FBDEV, echo "$egl_platforms" | grep 'fbdev' >/dev/null 2>&1)
1553 AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep 'null' >/dev/null 2>&1)
1554
1555 AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x")
1556 AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != "x")
1557
1558 AC_SUBST([EGL_NATIVE_PLATFORM])
1559 AC_SUBST([EGL_PLATFORMS])
1560 AC_SUBST([EGL_CFLAGS])
1561
1562 AC_ARG_WITH([egl-driver-dir],
1563 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1564 [directory for EGL drivers [[default=${libdir}/egl]]])],
1565 [EGL_DRIVER_INSTALL_DIR="$withval"],
1566 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1567 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1568
1569 AC_ARG_WITH([xorg-driver-dir],
1570 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1571 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1572 [XORG_DRIVER_INSTALL_DIR="$withval"],
1573 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1574 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1575
1576 AC_ARG_WITH([max-width],
1577 [AS_HELP_STRING([--with-max-width=N],
1578 [Maximum framebuffer width (4096)])],
1579 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1580 AS_IF([test "${withval}" -gt "4096"],
1581 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1582 )
1583 AC_ARG_WITH([max-height],
1584 [AS_HELP_STRING([--with-max-height=N],
1585 [Maximum framebuffer height (4096)])],
1586 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1587 AS_IF([test "${withval}" -gt "4096"],
1588 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1589 )
1590
1591 dnl
1592 dnl Gallium LLVM
1593 dnl
1594 AC_ARG_ENABLE([gallium-llvm],
1595 [AS_HELP_STRING([--enable-gallium-llvm],
1596 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1597 [enable_gallium_llvm="$enableval"],
1598 [enable_gallium_llvm=auto])
1599
1600 AC_ARG_WITH([llvm-shared-libs],
1601 [AS_HELP_STRING([--with-llvm-shared-libs],
1602 [link with LLVM shared libraries @<:@default=disabled@:>@])],
1603 [with_llvm_shared_libs=yes],
1604 [with_llvm_shared_libs=no])
1605
1606 AC_ARG_WITH([llvm-prefix],
1607 [AS_HELP_STRING([--with-llvm-prefix],
1608 [Prefix for LLVM installations in non-standard locations])],
1609 [llvm_prefix="$withval"],
1610 [llvm_prefix=""])
1611
1612
1613 if test "x$with_gallium_drivers" = x; then
1614 enable_gallium_llvm=no
1615 fi
1616 if test "x$enable_gallium_llvm" = xauto; then
1617 case "$host_cpu" in
1618 i*86|x86_64) enable_gallium_llvm=yes;;
1619 esac
1620 fi
1621 if test "x$enable_gallium_llvm" = xyes; then
1622 if test "x$llvm_prefix" != x; then
1623 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"])
1624 else
1625 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1626 fi
1627
1628 if test "x$LLVM_CONFIG" != xno; then
1629 LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'`
1630 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g' -e 's/-Wcovered-switch-default//g'`
1631 if test "x$with_llvm_shared_libs" = xyes; then
1632 dnl We can't use $LLVM_VERSION because it has 'svn' stripped out,
1633 LLVM_LIBS="-lLLVM-`$LLVM_CONFIG --version`"
1634 else
1635 LLVM_COMPONENTS="engine bitwriter"
1636 if $LLVM_CONFIG --components | grep -q '\<mcjit\>'; then
1637 LLVM_COMPONENTS="${LLVM_COMPONENTS} mcjit"
1638 fi
1639
1640 if test "x$enable_opencl" = xyes; then
1641 LLVM_COMPONENTS="${LLVM_COMPONENTS} ipo linker instrumentation"
1642 fi
1643 LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
1644 fi
1645 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1646 LLVM_BINDIR=`$LLVM_CONFIG --bindir`
1647 LLVM_CXXFLAGS=`$LLVM_CONFIG --cxxflags`
1648 LLVM_CPPFLAGS=`$LLVM_CONFIG --cppflags`
1649 LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir`
1650 LLVM_LIBDIR=`$LLVM_CONFIG --libdir`
1651 DEFINES="${DEFINES} -DHAVE_LLVM=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/0x0\10\2/g'`"
1652 MESA_LLVM=1
1653
1654 dnl Check for Clang interanl headers
1655 if test "x$enable_opencl" = xyes; then
1656 if test "x$CLANG_LIBDIR" = x; then
1657 CLANG_LIBDIR=${LLVM_LIBDIR}
1658 fi
1659 CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
1660 AC_CHECK_FILE("$CLANG_RESOURCE_DIR/include/stddef.h",,
1661 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.]))
1662 fi
1663 else
1664 MESA_LLVM=0
1665 fi
1666 else
1667 MESA_LLVM=0
1668 fi
1669
1670 dnl Directory for XVMC libs
1671 AC_ARG_WITH([xvmc-libdir],
1672 [AS_HELP_STRING([--with-xvmc-libdir=DIR],
1673 [directory for the XVMC libraries @<:@default=${libdir}@:>@])],
1674 [XVMC_LIB_INSTALL_DIR="$withval"],
1675 [XVMC_LIB_INSTALL_DIR='${libdir}'])
1676 AC_SUBST([XVMC_LIB_INSTALL_DIR])
1677
1678 dnl
1679 dnl Gallium Tests
1680 dnl
1681 if test "x$enable_gallium_tests" = xyes; then
1682 SRC_DIRS="$SRC_DIRS gallium/tests/trivial"
1683 enable_gallium_loader=yes
1684 fi
1685
1686 dnl Directory for VDPAU libs
1687 AC_ARG_WITH([vdpau-libdir],
1688 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1689 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1690 [VDPAU_LIB_INSTALL_DIR="$withval"],
1691 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1692 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1693
1694 dnl Directory for OpenCL libs
1695 AC_ARG_WITH([opencl-libdir],
1696 [AS_HELP_STRING([--with-opencl-libdir=DIR],
1697 [directory for the OpenCL libraries @<:@default=${libdir}/opencl@:>@])],
1698 [OPENCL_LIB_INSTALL_DIR="$withval"],
1699 [OPENCL_LIB_INSTALL_DIR='${libdir}/opencl'])
1700 AC_SUBST([OPENCL_LIB_INSTALL_DIR])
1701
1702 dnl
1703 dnl Gallium helper functions
1704 dnl
1705 gallium_check_st() {
1706 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1707 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1708 test "x$HAVE_ST_VDPAU" = xyes; then
1709 if test "x$have_libdrm" != xyes; then
1710 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1711 fi
1712 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1713 fi
1714 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1715 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1716 fi
1717 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1718 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1719 fi
1720 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1721 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1722 fi
1723 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1724 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1725 fi
1726 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1727 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1728 fi
1729 }
1730
1731 gallium_require_llvm() {
1732 if test "x$MESA_LLVM" = x0; then
1733 case "$host_cpu" in
1734 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1735 esac
1736 fi
1737 }
1738
1739 gallium_require_drm_loader() {
1740 if test "x$enable_gallium_loader" = xyes; then
1741 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1742 AC_MSG_ERROR([Gallium drm loader requrires libudev]))
1743 if test "x$have_libdrm" != xyes; then
1744 AC_MSG_ERROR([Gallium drm loader requires libdrm >= $LIBDRM_REQUIRED])
1745 fi
1746 enable_gallium_drm_loader=yes
1747 fi
1748 }
1749
1750 radeon_llvm_check() {
1751 LLVM_VERSION_MAJOR=`echo $LLVM_VERSION | cut -d. -f1`
1752 if test "$LLVM_VERSION_MAJOR" -lt "3" -o "x$LLVM_VERSION" = "x3.0"; then
1753 AC_MSG_ERROR([LLVM 3.1 or newer is required for the r600/radeonsi llvm compiler.])
1754 fi
1755 if test "$LLVM_VERSION_MAJOR" -ge "3" -a "x$LLVM_VERSION" != "x3.1" && $LLVM_CONFIG --targets-built | grep -qv '\<AMDGPU\>' ; then
1756 AC_MSG_ERROR([To use the r600/radeonsi LLVM backend with LLVM 3.2 and newer, you need to fetch the LLVM source from:
1757 git://people.freedesktop.org/~tstellar/llvm master
1758 and build with --enable-experimental-targets==AMDGPU])
1759 fi
1760 if test "x$LLVM_VERSION" = "x3.2"; then
1761 LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --libs amdgpu`"
1762 fi
1763 }
1764
1765 dnl Gallium drivers
1766 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1767 if test "x$with_gallium_drivers" != x; then
1768 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1769 for driver in $gallium_drivers; do
1770 case "x$driver" in
1771 xsvga)
1772 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1773 gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
1774 ;;
1775 xi915)
1776 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1777 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1778 if test "x$MESA_LLVM" = x1; then
1779 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1780 fi
1781 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1782 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1783 ;;
1784 xr300)
1785 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1786 gallium_require_llvm "Gallium R300"
1787 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1788 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300"
1789 ;;
1790 xr600)
1791 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1792 gallium_require_drm_loader
1793 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1794 if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then
1795 radeon_llvm_check
1796 NEED_RADEON_GALLIUM=yes;
1797 fi
1798 if test "x$enable_r600_llvm" = xyes; then
1799 USE_R600_LLVM_COMPILER=yes;
1800 fi
1801 if test "x$enable_opencl" = xyes -a "x$with_llvm_shared_libs" = xno; then
1802 LLVM_LIBS="${LLVM_LIBS} `$LLVM_CONFIG --libs bitreader asmparser`"
1803 fi
1804 gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600"
1805 ;;
1806 xradeonsi)
1807 PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1808 gallium_require_drm_loader
1809 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS radeonsi"
1810 radeon_llvm_check
1811 NEED_RADEON_GALLIUM=yes;
1812 gallium_check_st "radeon/drm" "dri-radeonsi" "xorg-radeonsi" "" "" "vdpau-radeonsi" ""
1813 ;;
1814 xnouveau)
1815 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1816 gallium_require_drm_loader
1817 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nv30 nv50 nvc0"
1818 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau" "vdpau-nouveau"
1819 ;;
1820 xswrast)
1821 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1822 if test "x$MESA_LLVM" = x1; then
1823 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1824 fi
1825
1826 if test "x$HAVE_ST_DRI" = xyes; then
1827 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1828 fi
1829 if test "x$HAVE_ST_VDPAU" = xyes; then
1830 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
1831 fi
1832 if test "x$HAVE_ST_XVMC" = xyes; then
1833 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
1834 fi
1835 if test "x$HAVE_ST_VDPAU" = xyes ||
1836 test "x$HAVE_ST_XVMC" = xyes; then
1837 if test "x$HAVE_WINSYS_XLIB" != xyes; then
1838 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
1839 fi
1840 fi
1841 ;;
1842 *)
1843 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1844 ;;
1845 esac
1846 done
1847 fi
1848
1849 if test "x$enable_gallium_loader" = xyes; then
1850 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
1851 GALLIUM_PIPE_LOADER_DEFINES="-DHAVE_PIPE_LOADER_SW"
1852 GALLIUM_PIPE_LOADER_LIBS="\$(TOP)/src/gallium/auxiliary/pipe-loader/libpipe_loader.a"
1853 GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS \$(TOP)/src/gallium/winsys/sw/null/libws_null.a"
1854
1855 if test "x$HAVE_WINSYS_XLIB" = xyes; then
1856 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_XLIB"
1857 GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS \$(TOP)/src/gallium/winsys/sw/xlib/libws_xlib.a"
1858 fi
1859
1860 if test "x$enable_gallium_drm_loader" = xyes; then
1861 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRM"
1862 PKG_CHECK_MODULES([GALLIUM_PIPE_LOADER_XCB], [xcb xcb-dri2],
1863 pipe_loader_have_xcb=yes, pipe_loader_have_xcb=no)
1864 if test "x$pipe_loader_have_xcb" = xyes; then
1865 GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DPIPE_LOADER_HAVE_XCB"
1866 GALLIUM_PIPE_LOADER_LIBS="$GALLIUM_PIPE_LOADER_LIBS $GALLIUM_PIPE_LOADER_XCB_LIBS $LIBDRM_LIBS"
1867 fi
1868 fi
1869
1870 AC_SUBST([GALLIUM_PIPE_LOADER_DEFINES])
1871 AC_SUBST([GALLIUM_PIPE_LOADER_LIBS])
1872 fi
1873
1874 dnl Tell Automake which drivers to build
1875 for driver in $GALLIUM_DRIVERS_DIRS; do
1876 case "x$driver" in
1877 xgalahad)
1878 HAVE_GALAHAD_GALLIUM=yes;
1879 ;;
1880 xidentity)
1881 HAVE_IDENTITY_GALLIUM=yes;
1882 ;;
1883 xnoop)
1884 HAVE_NOOP_GALLIUM=yes;
1885 ;;
1886 *)
1887 GALLIUM_MAKE_DIRS="$GALLIUM_MAKE_DIRS $driver"
1888 ;;
1889 esac
1890 done
1891
1892 AM_CONDITIONAL(HAVE_GALAHAD_GALLIUM, test x$HAVE_GALAHAD_GALLIUM = xyes)
1893 AM_CONDITIONAL(HAVE_IDENTITY_GALLIUM, test x$HAVE_IDENTITY_GALLIUM = xyes)
1894 AM_CONDITIONAL(HAVE_NOOP_GALLIUM, test x$HAVE_NOOP_GALLIUM = xyes)
1895 AM_CONDITIONAL(NEED_RADEON_GALLIUM, test x$NEED_RADEON_GALLIUM = xyes)
1896 AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes)
1897 AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes)
1898 AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes)
1899 AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
1900 AC_SUBST([GALLIUM_MAKE_DIRS])
1901
1902 AM_CONDITIONAL(HAVE_X11_DRIVER, echo "$DRIVER_DIRS" | grep 'x11' >/dev/null 2>&1)
1903
1904 AM_CONDITIONAL(HAVE_X86_ASM, echo "$DEFINES" | grep 'X86_ASM' >/dev/null 2>&1)
1905 AM_CONDITIONAL(HAVE_X86_64_ASM, echo "$DEFINES" | grep 'X86_64_ASM' >/dev/null 2>&1)
1906 AM_CONDITIONAL(HAVE_SPARC_ASM, echo "$DEFINES" | grep 'SPARC_ASM' >/dev/null 2>&1)
1907
1908 dnl prepend CORE_DIRS to SRC_DIRS
1909 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1910
1911 dnl Restore LDFLAGS and CPPFLAGS
1912 LDFLAGS="$_SAVE_LDFLAGS"
1913 CPPFLAGS="$_SAVE_CPPFLAGS"
1914
1915 dnl Add user CFLAGS and CXXFLAGS
1916 CFLAGS="$CFLAGS $USER_CFLAGS"
1917 CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
1918
1919 dnl Substitute the config
1920 AC_CONFIG_FILES([configs/current
1921 Makefile
1922 src/Makefile
1923 src/egl/Makefile
1924 src/egl/drivers/Makefile
1925 src/egl/drivers/dri2/Makefile
1926 src/egl/drivers/glx/Makefile
1927 src/egl/main/Makefile
1928 src/egl/main/egl.pc
1929 src/egl/wayland/Makefile
1930 src/egl/wayland/wayland-drm/Makefile
1931 src/egl/wayland/wayland-egl/Makefile
1932 src/egl/wayland/wayland-egl/wayland-egl.pc
1933 src/gallium/Makefile
1934 src/gallium/auxiliary/pipe-loader/Makefile
1935 src/gallium/drivers/Makefile
1936 src/gallium/drivers/r300/Makefile
1937 src/gallium/drivers/r600/Makefile
1938 src/gallium/state_trackers/clover/Makefile
1939 src/gallium/targets/opencl/Makefile
1940 src/gbm/Makefile
1941 src/gbm/main/gbm.pc
1942 src/glsl/Makefile
1943 src/glsl/glcpp/Makefile
1944 src/glsl/tests/Makefile
1945 src/glx/Makefile
1946 src/glx/tests/Makefile
1947 src/gtest/Makefile
1948 src/mapi/es1api/Makefile
1949 src/mapi/es1api/glesv1_cm.pc
1950 src/mapi/es2api/Makefile
1951 src/mapi/es2api/glesv2.pc
1952 src/mapi/glapi/Makefile
1953 src/mapi/glapi/gen/Makefile
1954 src/mapi/glapi/tests/Makefile
1955 src/mapi/shared-glapi/Makefile
1956 src/mapi/shared-glapi/tests/Makefile
1957 src/mapi/vgapi/Makefile
1958 src/mapi/vgapi/vg.pc
1959 src/mesa/Makefile
1960 src/mesa/gl.pc
1961 src/mesa/drivers/Makefile
1962 src/mesa/drivers/dri/dri.pc
1963 src/mesa/drivers/dri/common/Makefile
1964 src/mesa/drivers/dri/i915/Makefile
1965 src/mesa/drivers/dri/i965/Makefile
1966 src/mesa/drivers/dri/Makefile
1967 src/mesa/drivers/dri/nouveau/Makefile
1968 src/mesa/drivers/dri/r200/Makefile
1969 src/mesa/drivers/dri/radeon/Makefile
1970 src/mesa/drivers/dri/swrast/Makefile
1971 src/mesa/drivers/osmesa/Makefile
1972 src/mesa/drivers/osmesa/osmesa.pc
1973 src/mesa/drivers/x11/Makefile
1974 src/mesa/libdricore/Makefile
1975 src/mesa/main/tests/Makefile
1976 src/mesa/x86-64/Makefile
1977 src/mesa/x86/Makefile])
1978
1979 dnl Sort the dirs alphabetically
1980 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1981 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1982 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1983 GALLIUM_MAKE_DIRS=`echo $GALLIUM_MAKE_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1984 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1985
1986 AC_OUTPUT
1987
1988 dnl
1989 dnl Output some configuration info for the user
1990 dnl
1991 echo ""
1992 echo " prefix: $prefix"
1993 echo " exec_prefix: $exec_prefix"
1994 echo " libdir: $libdir"
1995 echo " includedir: $includedir"
1996
1997 dnl API info
1998 echo ""
1999 echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
2000 echo " OpenVG: $enable_openvg"
2001
2002 dnl Driver info
2003 echo ""
2004 if test "x$enable_osmesa" != xno; then
2005 echo " OSMesa: lib$OSMESA_LIB"
2006 else
2007 echo " OSMesa: no"
2008 fi
2009
2010 if test "x$enable_dri" != xno; then
2011 # cleanup the drivers var
2012 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2013 if test "x$DRI_DIRS" = x; then
2014 echo " DRI drivers: no"
2015 else
2016 echo " DRI drivers: $dri_dirs"
2017 fi
2018 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
2019 fi
2020
2021 case "x$enable_glx$enable_xlib_glx" in
2022 xyesyes)
2023 echo " GLX: Xlib-based"
2024 ;;
2025 xyesno)
2026 echo " GLX: DRI-based"
2027 ;;
2028 *)
2029 echo " GLX: $enable_glx"
2030 ;;
2031 esac
2032
2033 dnl EGL
2034 echo ""
2035 echo " EGL: $enable_egl"
2036 if test "$enable_egl" = yes; then
2037 echo " EGL platforms: $EGL_PLATFORMS"
2038
2039 egl_drivers=""
2040 if test "x$HAVE_EGL_DRIVER_GLX" != "x"; then
2041 egl_drivers="$egl_drivers builtin:egl_glx"
2042 fi
2043 if test "x$HAVE_EGL_DRIVER_DRI2" != "x"; then
2044 egl_drivers="$egl_drivers builtin:egl_dri2"
2045 fi
2046
2047 if test "x$HAVE_ST_EGL" = xyes; then
2048 echo " EGL drivers: ${egl_drivers} egl_gallium"
2049 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
2050 else
2051 echo " EGL drivers: $egl_drivers"
2052 fi
2053 fi
2054
2055 echo ""
2056 if test "x$MESA_LLVM" = x1; then
2057 echo " llvm: yes"
2058 echo " llvm-config: $LLVM_CONFIG"
2059 echo " llvm-version: $LLVM_VERSION"
2060 else
2061 echo " llvm: no"
2062 fi
2063
2064 echo ""
2065 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2066 echo " Gallium: yes"
2067 echo " Gallium dirs: $GALLIUM_DIRS"
2068 echo " Target dirs: $GALLIUM_TARGET_DIRS"
2069 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
2070 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
2071 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2072 else
2073 echo " Gallium: no"
2074 fi
2075
2076
2077 dnl Libraries
2078 echo ""
2079 echo " Shared libs: $enable_shared"
2080 echo " Static libs: $enable_static"
2081 echo " Shared-glapi: $enable_shared_glapi"
2082
2083 dnl Compiler options
2084 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2085 cflags=`echo $CFLAGS $PIC_FLAGS | \
2086 $SED 's/^ *//;s/ */ /;s/ *$//'`
2087 cxxflags=`echo $CXXFLAGS $PIC_FLAGS | \
2088 $SED 's/^ *//;s/ */ /;s/ *$//'`
2089 defines=`echo $DEFINES | $SED 's/^ *//;s/ */ /;s/ *$//'`
2090 echo ""
2091 echo " CFLAGS: $cflags"
2092 echo " CXXFLAGS: $cxxflags"
2093 echo " Macros: $defines"
2094 echo ""
2095 echo " PYTHON2: $PYTHON2"
2096
2097 echo ""
2098 echo " Run '${MAKE-make}' to build Mesa"
2099 echo ""