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