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