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