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