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