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