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