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