configure: fix gcc version check
[profile/ivi/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.6
26 GLPROTO_REQUIRED=1.4.14
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. -f2`
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 # Doing '--without-gallium-drivers' will set this variable to 'no'.  Clear it
637 # here so that the script doesn't choke on an unknown driver name later.
638 case "$with_gallium_drivers" in
639     yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
640     no) with_gallium_drivers='' ;;
641 esac
642
643 if test "x$enable_opengl" = xno -a \
644         "x$enable_gles1" = xno -a \
645         "x$enable_gles2" = xno -a \
646         "x$enable_openvg" = xno -a \
647         "x$enable_xorg" = xno -a \
648         "x$enable_xa" = xno -a \
649         "x$enable_d3d1x" = xno -a \
650         "x$enable_xvmc" = xno -a \
651         "x$enable_vdpau" = xno -a \
652         "x$enable_va" = xno; then
653     AC_MSG_ERROR([at least one API should be enabled])
654 fi
655
656 API_DEFINES=""
657 if test "x$enable_opengl" = xno; then
658     API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
659 else
660     API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
661 fi
662 if test "x$enable_gles1" = xyes; then
663     API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
664 fi
665 if test "x$enable_gles2" = xyes; then
666     API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
667 fi
668 AC_SUBST([API_DEFINES])
669
670 AC_ARG_ENABLE([shared-glapi],
671     [AS_HELP_STRING([--enable-shared-glapi],
672         [EXPERIMENTAL.  Enable shared glapi for OpenGL @<:@default=no@:>@])],
673     [enable_shared_glapi="$enableval"],
674     [enable_shared_glapi=no])
675
676 SHARED_GLAPI="0"
677 if test "x$enable_shared_glapi" = xyes; then
678     SHARED_GLAPI="1"
679 fi
680 AC_SUBST([SHARED_GLAPI])
681
682 dnl
683 dnl Driver configuration. Options are xlib, dri and osmesa right now.
684 dnl More later: fbdev, ...
685 dnl
686 default_driver="xlib"
687
688 case "$host_os" in
689 linux*)
690     case "$host_cpu" in
691     i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
692     esac
693     ;;
694 *freebsd* | dragonfly* | *netbsd*)
695     case "$host_cpu" in
696     i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
697     esac
698     ;;
699 esac
700
701 if test "x$enable_opengl" = xno; then
702     default_driver="no"
703 fi
704
705 AC_ARG_WITH([driver],
706     [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
707     [mesa_driver="$withval"],
708     [mesa_driver=auto])
709 dnl Check for valid option
710 case "x$mesa_driver" in
711 xxlib|xdri|xosmesa|xno)
712     if test "x$enable_dri" != xauto -o \
713             "x$enable_glx" != xauto -o \
714             "x$enable_osmesa" != xauto -o \
715             "x$enable_xlib_glx" != xauto; then
716         AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
717     fi
718     ;;
719 xauto)
720     mesa_driver="$default_driver"
721     ;;
722 *)
723     AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
724     ;;
725 esac
726
727 # map $mesa_driver to APIs
728 if test "x$enable_dri" = xauto; then
729     case "x$mesa_driver" in
730     xdri) enable_dri=yes ;;
731     *)    enable_dri=no ;;
732     esac
733 fi
734
735 if test "x$enable_glx" = xauto; then
736     case "x$mesa_driver" in
737     xdri|xxlib) enable_glx=yes ;;
738     *)          enable_glx=no ;;
739     esac
740 fi
741
742 if test "x$enable_osmesa" = xauto; then
743     case "x$mesa_driver" in
744     xxlib|xosmesa) enable_osmesa=yes ;;
745     *)             enable_osmesa=no ;;
746     esac
747 fi
748
749 if test "x$enable_xlib_glx" = xauto; then
750     case "x$mesa_driver" in
751     xxlib) enable_xlib_glx=yes ;;
752     *)     enable_xlib_glx=no ;;
753     esac
754 fi
755
756 if test "x$enable_glx" = xno; then
757     enable_xlib_glx=no
758 fi
759
760 dnl
761 dnl Driver specific build directories
762 dnl
763
764 dnl this variable will be prepended to SRC_DIRS and is not exported
765 CORE_DIRS=""
766
767 SRC_DIRS=""
768 GLU_DIRS="sgi"
769 GALLIUM_DIRS="auxiliary drivers state_trackers"
770 GALLIUM_TARGET_DIRS=""
771 GALLIUM_WINSYS_DIRS="sw"
772 GALLIUM_DRIVERS_DIRS="failover galahad trace rbug noop identity"
773 GALLIUM_STATE_TRACKERS_DIRS=""
774
775 # build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
776 case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
777 x*yes*)
778     CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
779     ;;
780 esac
781
782 # build glapi if OpenGL is enabled
783 if test "x$enable_opengl" = xyes; then
784     CORE_DIRS="$CORE_DIRS mapi/glapi"
785 fi
786
787 # build es1api if OpenGL ES 1.x is enabled
788 if test "x$enable_gles1" = xyes; then
789     CORE_DIRS="$CORE_DIRS mapi/es1api"
790 fi
791
792 # build es2api if OpenGL ES 2.x is enabled
793 if test "x$enable_gles2" = xyes; then
794     CORE_DIRS="$CORE_DIRS mapi/es2api"
795 fi
796
797 # build glsl and mesa if OpenGL or OpenGL ES is enabled
798 case "x$enable_opengl$enable_gles1$enable_gles2" in
799 x*yes*)
800     CORE_DIRS="$CORE_DIRS glsl mesa"
801     ;;
802 esac
803
804 case "x$enable_glx$enable_xlib_glx" in
805 xyesyes)
806     DRIVER_DIRS="$DRIVER_DIRS x11"
807     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
808     GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
809     GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
810     ;;
811 xyesno)
812     # DRI-based GLX
813     SRC_DIRS="$SRC_DIRS glx"
814     ;;
815 esac
816
817 if test "x$enable_dri" = xyes; then
818     DRIVER_DIRS="$DRIVER_DIRS dri"
819
820     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
821     GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
822     HAVE_ST_DRI="yes"
823 fi
824
825 if test "x$enable_osmesa" = xyes; then
826     # the empty space matters for osmesa... (see src/mesa/Makefile)
827     if test -n "$DRIVER_DIRS"; then
828         DRIVER_DIRS="$DRIVER_DIRS osmesa"
829     else
830         DRIVER_DIRS="osmesa"
831     fi
832 fi
833
834 AC_SUBST([SRC_DIRS])
835 AC_SUBST([GLU_DIRS])
836 AC_SUBST([DRIVER_DIRS])
837 AC_SUBST([GALLIUM_DIRS])
838 AC_SUBST([GALLIUM_TARGET_DIRS])
839 AC_SUBST([GALLIUM_WINSYS_DIRS])
840 AC_SUBST([GALLIUM_DRIVERS_DIRS])
841 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
842 AC_SUBST([MESA_LLVM])
843
844 # Check for libdrm
845 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
846                   [have_libdrm=yes], [have_libdrm=no])
847
848 if test "x$enable_dri" = xyes; then
849     # DRI must be shared, I think
850     if test "$enable_static" = yes; then
851         AC_MSG_ERROR([Can't use static libraries for DRI drivers])
852     fi
853
854     # not a hard requirement as swrast does not depend on it
855     if test "x$have_libdrm" = xyes; then
856         DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
857     fi
858 fi
859
860 dnl
861 dnl Find out if X is available. The variable have_x is set if libX11 is
862 dnl found to mimic AC_PATH_XTRA.
863 dnl
864 if test -n "$PKG_CONFIG"; then
865     AC_MSG_CHECKING([pkg-config files for X11 are available])
866     PKG_CHECK_EXISTS([x11],[
867         x11_pkgconfig=yes
868         have_x=yes
869         ],[
870         x11_pkgconfig=no
871     ])
872     AC_MSG_RESULT([$x11_pkgconfig])
873 else
874     x11_pkgconfig=no
875 fi
876 dnl Use the autoconf macro if no pkg-config files
877 if test "$x11_pkgconfig" = yes; then
878     PKG_CHECK_MODULES([X11], [x11])
879 else
880     AC_PATH_XTRA
881     test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
882     test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
883     AC_SUBST([X11_CFLAGS])
884     AC_SUBST([X11_LIBS])
885 fi
886
887 dnl Try to tell the user that the --x-* options are only used when
888 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
889 m4_divert_once([HELP_BEGIN],
890 [These options are only used when the X libraries cannot be found by the
891 pkg-config utility.])
892
893 dnl We need X for xlib and dri, so bomb now if it's not found
894 if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
895     AC_MSG_ERROR([X11 development libraries needed for GLX])
896 fi
897
898 dnl XCB - this is only used for GLX right now
899 AC_ARG_ENABLE([xcb],
900     [AS_HELP_STRING([--enable-xcb],
901         [use XCB for GLX @<:@default=disabled@:>@])],
902     [enable_xcb="$enableval"],
903     [enable_xcb=no])
904 if test "x$enable_xcb" = xyes; then
905     DEFINES="$DEFINES -DUSE_XCB"
906 else
907     enable_xcb=no
908 fi
909
910 dnl Direct rendering or just indirect rendering
911 case "$host_os" in
912 gnu*)
913     dnl Disable by default on GNU/Hurd
914     driglx_direct_default="no"
915     ;;
916 cygwin*)
917     dnl Disable by default on cygwin
918     driglx_direct_default="no"
919     ;;
920 *)
921     driglx_direct_default="yes"
922     ;;
923 esac
924 AC_ARG_ENABLE([driglx-direct],
925     [AS_HELP_STRING([--disable-driglx-direct],
926         [enable direct rendering in GLX and EGL for DRI \
927             @<:@default=auto@:>@])],
928     [driglx_direct="$enableval"],
929     [driglx_direct="$driglx_direct_default"])
930
931 dnl
932 dnl libGL configuration per driver
933 dnl
934 case "x$enable_glx$enable_xlib_glx" in
935 xyesyes)
936     # Xlib-based GLX
937     if test "$x11_pkgconfig" = yes; then
938         PKG_CHECK_MODULES([XLIBGL], [x11 xext])
939         GL_PC_REQ_PRIV="x11 xext"
940         X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
941         GL_LIB_DEPS="$XLIBGL_LIBS"
942     else
943         # should check these...
944         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
945         GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
946         GL_PC_LIB_PRIV="$GL_LIB_DEPS"
947         GL_PC_CFLAGS="$X11_INCLUDES"
948     fi
949     GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
950     GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
951
952     # if static, move the external libraries to the programs
953     # and empty the libraries for libGL
954     if test "$enable_static" = yes; then
955         APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
956         GL_LIB_DEPS=""
957     fi
958     ;;
959 xyesno)
960     # DRI-based GLX
961     PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
962     GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
963     if test x"$driglx_direct" = xyes; then
964         if test "x$have_libdrm" != xyes; then
965             AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
966         fi
967         PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
968         GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
969     fi
970
971     # find the DRI deps for libGL
972     if test "$x11_pkgconfig" = yes; then
973         dri_modules="x11 xext xdamage xfixes"
974
975         # add xf86vidmode if available
976         PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
977         if test "$HAVE_XF86VIDMODE" = yes ; then
978             dri_modules="$dri_modules xxf86vm"
979         fi
980
981         # add xcb modules if necessary
982         if test "$enable_xcb" = yes; then
983             dri_modules="$dri_modules x11-xcb xcb-glx"
984         fi
985
986         PKG_CHECK_MODULES([DRIGL], [$dri_modules])
987         GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
988         X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
989         GL_LIB_DEPS="$DRIGL_LIBS"
990     else
991         # should check these...
992         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
993         if test "x$HAVE_XF86VIDMODE" == xyes; then
994            GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
995         else
996            GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
997         fi
998         GL_PC_LIB_PRIV="$GL_LIB_DEPS"
999         GL_PC_CFLAGS="$X11_INCLUDES"
1000
1001         # XCB can only be used from pkg-config
1002         if test "$enable_xcb" = yes; then
1003             PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
1004             GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
1005             X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1006             GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1007         fi
1008     fi
1009
1010     # need DRM libs, -lpthread, etc.
1011     GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1012     GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1013     ;;
1014 esac
1015
1016 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1017 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1018 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1019 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1020
1021 AC_SUBST([GL_LIB_DEPS])
1022 AC_SUBST([GL_PC_REQ_PRIV])
1023 AC_SUBST([GL_PC_LIB_PRIV])
1024 AC_SUBST([GL_PC_CFLAGS])
1025 AC_SUBST([DRI_PC_REQ_PRIV])
1026 AC_SUBST([GLESv1_CM_LIB_DEPS])
1027 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1028 AC_SUBST([GLESv2_LIB_DEPS])
1029 AC_SUBST([GLESv2_PC_LIB_PRIV])
1030
1031 GLAPI_LIB_DEPS="-lpthread"
1032 AC_SUBST([GLAPI_LIB_DEPS])
1033
1034
1035 dnl Setup default DRI CFLAGS
1036 DRI_CFLAGS='$(CFLAGS)'
1037 DRI_CXXFLAGS='$(CXXFLAGS)'
1038 DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1039 MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1040
1041 AC_ARG_ENABLE([shared-dricore],
1042     [AS_HELP_STRING([--enable-shared-dricore],
1043         [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1044     [enable_dricore="$enableval"],
1045     [enable_dricore=no])
1046 if test "x$enable_dri" = xyes ; then
1047    if test "$enable_dricore" = yes ; then
1048       if test "$GCC$GXX" != yesyes ; then
1049          AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling.  Disabling shared dricore])
1050          enable_dricore=no
1051       else
1052          DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1053          DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1054          DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1055          DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1056          DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1057          DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1058          MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1059       fi
1060    fi
1061 fi
1062 AC_SUBST([DRICORE_LIBS])
1063 AC_SUBST([DRICORE_GLSL_LIBS])
1064 AC_SUBST([DRICORE_LIB_DEPS])
1065 AC_SUBST([DRI_CXXFLAGS])
1066 AC_SUBST([DRI_CFLAGS])
1067 AC_SUBST([MESA_MODULES])
1068
1069 AC_SUBST([HAVE_XF86VIDMODE])
1070
1071 PKG_CHECK_MODULES([LIBDRM_RADEON],
1072                   [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED],
1073                   HAVE_LIBDRM_RADEON=yes,
1074                   HAVE_LIBDRM_RADEON=no)
1075
1076 dnl
1077 dnl More GLX setup
1078 dnl
1079 case "x$enable_glx$enable_xlib_glx" in
1080 xyesyes)
1081     DEFINES="$DEFINES -DUSE_XSHM"
1082     ;;
1083 xyesno)
1084     DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1085     if test "x$driglx_direct" = xyes; then
1086         DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1087     fi
1088     ;;
1089 esac
1090
1091 dnl
1092 dnl TLS detection
1093 dnl
1094
1095 AC_ARG_ENABLE([glx-tls],
1096     [AS_HELP_STRING([--enable-glx-tls],
1097         [enable TLS support in GLX @<:@default=disabled@:>@])],
1098     [GLX_USE_TLS="$enableval"],
1099     [GLX_USE_TLS=no])
1100 AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1101
1102 AS_IF([test "x$GLX_USE_TLS" = xyes],
1103       [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1104
1105 dnl
1106 dnl More DRI setup
1107 dnl
1108 dnl Directory for DRI drivers
1109 AC_ARG_WITH([dri-driverdir],
1110     [AS_HELP_STRING([--with-dri-driverdir=DIR],
1111         [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1112     [DRI_DRIVER_INSTALL_DIR="$withval"],
1113     [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1114 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1115 dnl Extra search path for DRI drivers
1116 AC_ARG_WITH([dri-searchpath],
1117     [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1118         [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1119     [DRI_DRIVER_SEARCH_DIR="$withval"],
1120     [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1121 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1122 dnl Which drivers to build - default is chosen by platform
1123 AC_ARG_WITH([dri-drivers],
1124     [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1125         [comma delimited DRI drivers list, e.g.
1126         "swrast,i965,radeon" @<:@default=auto@:>@])],
1127     [with_dri_drivers="$withval"],
1128     [with_dri_drivers=yes])
1129 if test "x$with_dri_drivers" = x; then
1130     with_dri_drivers=no
1131 fi
1132
1133 dnl If $with_dri_drivers is yes, directories will be added through
1134 dnl platform checks
1135 DRI_DIRS=""
1136 case "$with_dri_drivers" in
1137 no) ;;
1138 yes)
1139     # classic DRI drivers require FEATURE_GL to build
1140     if test "x$enable_opengl" = xyes; then
1141         DRI_DIRS="yes"
1142     fi
1143     ;;
1144 *)
1145     # verify the requested driver directories exist
1146     dri_drivers=`IFS=', '; echo $with_dri_drivers`
1147     for driver in $dri_drivers; do
1148         test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1149             AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1150     done
1151     DRI_DIRS="$dri_drivers"
1152     if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1153         AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1154     fi
1155     ;;
1156 esac
1157
1158 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
1159 if test "x$enable_dri" = xyes; then
1160     # Platform specific settings and drivers to build
1161     case "$host_os" in
1162     linux*)
1163         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1164         DEFINES="$DEFINES -DHAVE_ALIAS"
1165
1166         case "$host_cpu" in
1167         x86_64)
1168             # sis is missing because they have not be converted to use
1169             # the new interface.  i810 are missing because there is no
1170             # x86-64 system where they could *ever* be used.
1171             if test "x$DRI_DIRS" = "xyes"; then
1172                 DRI_DIRS="i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1173                     radeon savage tdfx unichrome swrast"
1174             fi
1175             ;;
1176         powerpc*)
1177             # Build only the drivers for cards that exist on PowerPC.
1178             # At some point MGA will be added, but not yet.
1179             if test "x$DRI_DIRS" = "xyes"; then
1180                 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
1181             fi
1182             ;;
1183         sparc*)
1184             # Build only the drivers for cards that exist on sparc`
1185             if test "x$DRI_DIRS" = "xyes"; then
1186                 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
1187             fi
1188             ;;
1189         esac
1190         ;;
1191     freebsd* | dragonfly* | *netbsd*)
1192         DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1193         DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1194
1195         if test "x$DRI_DIRS" = "xyes"; then
1196             DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1197                 radeon tdfx unichrome savage sis swrast"
1198         fi
1199         ;;
1200     gnu*)
1201         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1202         DEFINES="$DEFINES -DHAVE_ALIAS"
1203         ;;
1204     solaris*)
1205         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1206         ;;
1207     cygwin*)
1208         DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1209         if test "x$DRI_DIRS" = "xyes"; then
1210             DRI_DIRS="swrast"
1211         fi
1212         ;;
1213     esac
1214
1215     # default drivers
1216     if test "x$DRI_DIRS" = "xyes"; then
1217         DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \
1218             savage sis tdfx unichrome swrast"
1219     fi
1220
1221     DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/  */ /g'`
1222
1223     # Check for expat
1224     if test "x$enable_dri" = xyes; then
1225         EXPAT_INCLUDES=""
1226         EXPAT_LIB=-lexpat
1227         AC_ARG_WITH([expat],
1228             [AS_HELP_STRING([--with-expat=DIR],
1229                 [expat install directory])],[
1230             EXPAT_INCLUDES="-I$withval/include"
1231             CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1232             LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1233             EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1234             ])
1235         AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1236         AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1237             [AC_MSG_ERROR([Expat required for DRI.])])
1238     fi
1239
1240     # libdrm is required for all except swrast
1241     if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1242         if test "x$have_libdrm" != xyes; then
1243             AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1244         fi
1245     fi
1246
1247     # put all the necessary libs together, including possibly libdricore
1248     DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
1249 fi
1250 AC_SUBST([DRI_DIRS])
1251 AC_SUBST([EXPAT_INCLUDES])
1252 AC_SUBST([DRI_LIB_DEPS])
1253
1254 case $DRI_DIRS in
1255 *i915*|*i965*)
1256     PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1257     ;;
1258 esac
1259
1260 case $DRI_DIRS in
1261 *nouveau*)
1262     PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1263     ;;
1264 esac
1265
1266 case $DRI_DIRS in
1267 *radeon*|*r200*|*r300*|*r600*)
1268     if test "x$HAVE_LIBDRM_RADEON" = xyes; then
1269         RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
1270         RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
1271     fi
1272     ;;
1273 esac
1274 AC_SUBST([RADEON_CFLAGS])
1275 AC_SUBST([RADEON_LDFLAGS])
1276
1277
1278 dnl
1279 dnl OSMesa configuration
1280 dnl
1281
1282 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1283 AC_ARG_WITH([osmesa-bits],
1284     [AS_HELP_STRING([--with-osmesa-bits=BITS],
1285         [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1286     [osmesa_bits="$withval"],
1287     [osmesa_bits=8])
1288 if test "x$osmesa_bits" != x8; then
1289     if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1290         AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1291         osmesa_bits=8
1292     fi
1293 fi
1294 case "x$osmesa_bits" in
1295 x8)
1296     OSMESA_LIB=OSMesa
1297     ;;
1298 x16|x32)
1299     OSMESA_LIB="OSMesa$osmesa_bits"
1300     DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1301     ;;
1302 *)
1303     AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1304     ;;
1305 esac
1306 AC_SUBST([OSMESA_LIB])
1307
1308 if test "x$enable_osmesa" = xyes; then
1309     # only link libraries with osmesa if shared
1310     if test "$enable_static" = no; then
1311         OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1312     else
1313         OSMESA_LIB_DEPS=""
1314     fi
1315     OSMESA_MESA_DEPS=""
1316     OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
1317 fi
1318 AC_SUBST([OSMESA_LIB_DEPS])
1319 AC_SUBST([OSMESA_MESA_DEPS])
1320 AC_SUBST([OSMESA_PC_REQ])
1321 AC_SUBST([OSMESA_PC_LIB_PRIV])
1322
1323 dnl
1324 dnl EGL configuration
1325 dnl
1326 EGL_CLIENT_APIS=""
1327
1328 if test "x$enable_egl" = xyes; then
1329     SRC_DIRS="$SRC_DIRS egl"
1330     EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
1331     EGL_DRIVERS_DIRS=""
1332
1333     if test "$enable_static" != yes; then
1334         # build egl_glx when libGL is built
1335         if test "x$enable_glx" = xyes; then
1336             EGL_DRIVERS_DIRS="glx"
1337         fi
1338
1339         PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1340                           [have_libudev=yes],[have_libudev=no])
1341         if test "$have_libudev" = yes; then
1342             DEFINES="$DEFINES -DHAVE_LIBUDEV"
1343         fi
1344         if test "x$enable_dri" = xyes; then
1345             # build egl_dri2 when xcb-dri2 is available
1346             PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1347                           [have_xcb_dri2=yes],[have_xcb_dri2=no])
1348             
1349             if test "$have_xcb_dri2" = yes; then
1350                 EGL_DRIVER_DRI2=dri2
1351                 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1352                 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1353                 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1354                           [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
1355             fi
1356         fi
1357
1358         EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1359     fi
1360 fi
1361 AC_SUBST([EGL_LIB_DEPS])
1362 AC_SUBST([EGL_DRIVERS_DIRS])
1363
1364 dnl
1365 dnl gbm configuration
1366 dnl
1367 if test "x$enable_gbm" = xauto; then
1368     case "$with_egl_platforms" in
1369         *drm*)
1370             enable_gbm=yes ;;
1371          *)
1372             enable_gbm=no ;;
1373     esac
1374 fi
1375 if test "x$enable_gbm" = xyes; then
1376     SRC_DIRS="$SRC_DIRS gbm"
1377     GBM_BACKEND_DIRS=""
1378
1379     PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1380                       AC_MSG_ERROR([gbm needs udev]))
1381     GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
1382
1383     if test "x$enable_dri" = xyes; then
1384         GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1385         if test "$SHARED_GLAPI" -eq 0; then
1386             AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1387         fi
1388     fi
1389 fi
1390 AC_SUBST([GBM_LIB_DEPS])
1391 AC_SUBST([GBM_BACKEND_DIRS])
1392 GBM_PC_REQ_PRIV="libudev"
1393 GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1394 GBM_PC_CFLAGS=
1395 AC_SUBST([GBM_PC_REQ_PRIV])
1396 AC_SUBST([GBM_PC_LIB_PRIV])
1397 AC_SUBST([GBM_PC_CFLAGS])
1398
1399 dnl
1400 dnl EGL Gallium configuration
1401 dnl
1402 if test "x$enable_gallium_egl" = xyes; then
1403     if test "x$with_gallium_drivers" = x; then
1404         AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1405     fi
1406     if test "x$enable_egl" = xno; then
1407         AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1408     fi
1409     if test "x$have_libdrm" != xyes; then
1410         AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1411     fi
1412
1413     GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1414     GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
1415     HAVE_ST_EGL="yes"
1416 fi
1417
1418 dnl
1419 dnl gbm Gallium configuration
1420 dnl
1421 if test "x$enable_gallium_gbm" = xauto; then
1422     case "$enable_gbm$HAVE_ST_EGL$with_egl_platforms" in
1423         yesyes*drm*)
1424             enable_gallium_gbm=yes ;;
1425          *)
1426             enable_gallium_gbm=no ;;
1427     esac
1428 fi
1429 if test "x$enable_gallium_gbm" = xyes; then
1430     if test "x$with_gallium_drivers" = x; then
1431         AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1432     fi
1433     if test "x$enable_gbm" = xno; then
1434         AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1435     fi
1436
1437     GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1438     GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1439     HAVE_ST_GBM="yes"
1440 fi
1441
1442 dnl
1443 dnl X.Org DDX configuration
1444 dnl
1445 if test "x$enable_xorg" = xyes; then
1446     PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1447     PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1448     PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1449     PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1450         HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1451         HAVE_XEXTPROTO_71="no")
1452     GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1453     HAVE_ST_XORG=yes
1454 fi
1455
1456 dnl
1457 dnl XA configuration
1458 dnl
1459 if test "x$enable_xa" = xyes; then
1460     GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1461     HAVE_ST_XA=yes
1462 fi
1463
1464 dnl
1465 dnl OpenVG configuration
1466 dnl
1467 VG_LIB_DEPS=""
1468
1469 if test "x$enable_openvg" = xyes; then
1470     if test "x$enable_egl" = xno; then
1471         AC_MSG_ERROR([cannot enable OpenVG without EGL])
1472     fi
1473     if test "x$with_gallium_drivers" = x; then
1474         AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1475     fi
1476     if test "x$enable_gallium_egl" = xno; then
1477         AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1478     fi
1479
1480     EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1481     VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1482     CORE_DIRS="$CORE_DIRS mapi/vgapi"
1483     GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1484     HAVE_ST_VEGA=yes
1485 fi
1486
1487 dnl
1488 dnl D3D1X configuration
1489 dnl
1490
1491 if test "x$enable_d3d1x" = xyes; then
1492     if test "x$with_gallium_drivers" = x; then
1493         AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1494     fi
1495
1496     GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1497     HAVE_ST_D3D1X=yes
1498 fi
1499
1500 dnl
1501 dnl Gallium G3DVL configuration
1502 dnl
1503 AC_ARG_ENABLE([gallium-g3dvl],
1504     [AS_HELP_STRING([--enable-gallium-g3dvl],
1505         [build gallium g3dvl @<:@default=disabled@:>@])],
1506     [enable_gallium_g3dvl="$enableval"],
1507     [enable_gallium_g3dvl=no])
1508 if test "x$enable_gallium_g3dvl" = xyes; then
1509     if test "x$with_gallium_drivers" = x; then
1510         AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1511     fi
1512
1513     if test "x$enable_xvmc" = xauto; then
1514         PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
1515     fi
1516
1517     if test "x$enable_vdpau" = xauto; then
1518         PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
1519     fi
1520
1521     if test "x$enable_va" = xauto; then
1522         #don't enable vaapi state tracker even if package exists
1523         #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
1524         enable_va=no
1525     fi
1526 fi
1527
1528 if test "x$enable_xvmc" = xyes; then
1529     PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
1530     GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1531     HAVE_ST_XVMC="yes"
1532 fi
1533
1534 if test "x$enable_vdpau" = xyes; then
1535     PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
1536     GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1537     HAVE_ST_VDPAU="yes"
1538 fi
1539
1540 if test "x$enable_va" = xyes; then
1541     PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1542     AC_MSG_WARN([vaapi state tracker currently unmaintained])
1543     GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1544     HAVE_ST_VA="yes"
1545 fi
1546
1547 if test "x$enable_xvmc" = xyes || 
1548     test "x$enable_vdpau" = xyes ||
1549     test "x$enable_va" = xyes; then
1550     GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1551 fi
1552
1553 dnl
1554 dnl GLU configuration
1555 dnl
1556 AC_ARG_ENABLE([glu],
1557     [AS_HELP_STRING([--disable-glu],
1558         [enable OpenGL Utility library @<:@default=enabled@:>@])],
1559     [enable_glu="$enableval"],
1560     [enable_glu=yes])
1561
1562 if test "x$enable_glu" = xyes; then
1563     if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1564         AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1565         enable_glu=no
1566     fi
1567 fi
1568
1569 if test "x$enable_glu" = xyes; then
1570     SRC_DIRS="$SRC_DIRS glu"
1571
1572     if test "x$enable_glx" = xno; then
1573         # Link libGLU to libOSMesa instead of libGL
1574         GLU_LIB_DEPS=""
1575         GLU_PC_REQ="osmesa"
1576         if test "$enable_static" = no; then
1577             GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1578         else
1579             GLU_MESA_DEPS=""
1580         fi
1581     else
1582         # If static, empty GLU_LIB_DEPS and add libs for programs to link
1583         GLU_PC_REQ="gl"
1584         GLU_PC_LIB_PRIV="-lm"
1585         if test "$enable_static" = no; then
1586             GLU_LIB_DEPS="-lm"
1587             GLU_MESA_DEPS='-l$(GL_LIB)'
1588         else
1589             GLU_LIB_DEPS=""
1590             GLU_MESA_DEPS=""
1591             APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1592         fi
1593     fi
1594 fi
1595 if test "$enable_static" = no; then
1596     GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1597 fi
1598 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1599 AC_SUBST([GLU_LIB_DEPS])
1600 AC_SUBST([GLU_MESA_DEPS])
1601 AC_SUBST([GLU_PC_REQ])
1602 AC_SUBST([GLU_PC_REQ_PRIV])
1603 AC_SUBST([GLU_PC_LIB_PRIV])
1604 AC_SUBST([GLU_PC_CFLAGS])
1605
1606 dnl
1607 dnl GLw configuration
1608 dnl
1609 AC_ARG_ENABLE([glw],
1610     [AS_HELP_STRING([--disable-glw],
1611         [enable Xt/Motif widget library @<:@default=enabled@:>@])],
1612     [enable_glw="$enableval"],
1613     [enable_glw=yes])
1614 dnl Don't build GLw on osmesa
1615 if test "x$enable_glw" = xyes -a "x$enable_glx" = xno; then
1616     AC_MSG_NOTICE([Disabling GLw since there is no OpenGL driver])
1617     enable_glw=no
1618 fi
1619 AC_ARG_ENABLE([motif],
1620     [AS_HELP_STRING([--enable-motif],
1621         [use Motif widgets in GLw @<:@default=disabled@:>@])],
1622     [enable_motif="$enableval"],
1623     [enable_motif=no])
1624
1625 if test "x$enable_glw" = xyes; then
1626     SRC_DIRS="$SRC_DIRS glw"
1627     if test "$x11_pkgconfig" = yes; then
1628         PKG_CHECK_MODULES([GLW],[x11 xt])
1629         GLW_PC_REQ_PRIV="x11 xt"
1630         GLW_LIB_DEPS="$GLW_LIBS"
1631     else
1632         # should check these...
1633         GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
1634         GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1635         GLW_PC_CFLAGS="$X11_INCLUDES"
1636     fi
1637
1638     GLW_SOURCES="GLwDrawA.c"
1639     MOTIF_CFLAGS=
1640     if test "x$enable_motif" = xyes; then
1641         GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1642         AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1643         if test "x$MOTIF_CONFIG" != xno; then
1644             MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1645             MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1646         else
1647             AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1648                 [AC_MSG_ERROR([Can't locate Motif headers])])
1649             AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1650                 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1651         fi
1652         # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1653         GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
1654         GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1655         GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
1656     fi
1657
1658     # If static, empty GLW_LIB_DEPS and add libs for programs to link
1659     GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
1660     if test "$enable_static" = no; then
1661         GLW_MESA_DEPS='-l$(GL_LIB)'
1662         GLW_LIB_DEPS="$GLW_LIB_DEPS"
1663     else
1664         APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1665         GLW_LIB_DEPS=""
1666         GLW_MESA_DEPS=""
1667     fi
1668 fi
1669 AC_SUBST([GLW_LIB_DEPS])
1670 AC_SUBST([GLW_MESA_DEPS])
1671 AC_SUBST([GLW_SOURCES])
1672 AC_SUBST([MOTIF_CFLAGS])
1673 AC_SUBST([GLW_PC_REQ_PRIV])
1674 AC_SUBST([GLW_PC_LIB_PRIV])
1675 AC_SUBST([GLW_PC_CFLAGS])
1676
1677 dnl
1678 dnl GLUT configuration
1679 dnl
1680 if test -f "$srcdir/include/GL/glut.h"; then
1681     default_glut=yes
1682 else
1683     default_glut=no
1684 fi
1685 AC_ARG_ENABLE([glut],
1686     [AS_HELP_STRING([--disable-glut],
1687         [enable GLUT library @<:@default=enabled if source available@:>@])],
1688     [enable_glut="$enableval"],
1689     [enable_glut="$default_glut"])
1690
1691 dnl Don't build glut without GLX
1692 if test "x$enable_glut" = xyes -a "x$enable_glx" = xno; then
1693     AC_MSG_NOTICE([Disabling glut since there is no OpenGL driver])
1694     enable_glut=no
1695 fi
1696 dnl Can't build glut if GLU not available
1697 if test "x$enable_glu$enable_glut" = xnoyes; then
1698     AC_MSG_WARN([Disabling glut since GLU is disabled])
1699     enable_glut=no
1700 fi
1701
1702 if test "x$enable_glut" = xyes; then
1703     SRC_DIRS="$SRC_DIRS glut/glx"
1704     if test "$x11_pkgconfig" = yes; then
1705         PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1706         GLUT_PC_REQ_PRIV="x11 xmu xi"
1707         GLUT_LIB_DEPS="$GLUT_LIBS"
1708     else
1709         # should check these...
1710         GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1711         GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1712         GLUT_PC_CFLAGS="$X11_INCLUDES"
1713     fi
1714     if test "x$GCC" = xyes; then
1715         GLUT_CFLAGS="$GLUT_CFLAGS -fexceptions"
1716     fi
1717     GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1718     GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
1719
1720     # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1721     if test "$enable_static" = no; then
1722         GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1723     else
1724         APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1725         GLUT_LIB_DEPS=""
1726         GLUT_MESA_DEPS=""
1727     fi
1728 fi
1729 AC_SUBST([GLUT_LIB_DEPS])
1730 AC_SUBST([GLUT_MESA_DEPS])
1731 AC_SUBST([GLUT_CFLAGS])
1732 AC_SUBST([GLUT_PC_REQ_PRIV])
1733 AC_SUBST([GLUT_PC_LIB_PRIV])
1734 AC_SUBST([GLUT_PC_CFLAGS])
1735
1736 dnl
1737 dnl Program library dependencies
1738 dnl    Only libm is added here if necessary as the libraries should
1739 dnl    be pulled in by the linker
1740 dnl
1741 if test "x$APP_LIB_DEPS" = x; then
1742     case "$host_os" in
1743     solaris*)
1744         APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1745         ;;
1746     cygwin*)
1747         APP_LIB_DEPS="-lX11"
1748         ;;
1749     *)
1750         APP_LIB_DEPS="-lm"
1751         ;;
1752     esac
1753 fi
1754 AC_SUBST([APP_LIB_DEPS])
1755 AC_SUBST([PROGRAM_DIRS])
1756
1757 dnl
1758 dnl Gallium configuration
1759 dnl
1760 if test "x$with_gallium_drivers" != x; then
1761     SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1762     AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1763 else
1764     LLVM_CONFIG=no
1765 fi
1766
1767 AC_SUBST([LLVM_CFLAGS])
1768 AC_SUBST([LLVM_LIBS])
1769 AC_SUBST([LLVM_LDFLAGS])
1770 AC_SUBST([LLVM_VERSION])
1771
1772 case "x$enable_opengl$enable_gles1$enable_gles2" in
1773 x*yes*)
1774     EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1775     ;;
1776 esac
1777
1778 AC_SUBST([VG_LIB_DEPS])
1779 AC_SUBST([EGL_CLIENT_APIS])
1780
1781 AC_ARG_WITH([egl-platforms],
1782     [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1783         [comma delimited native platforms libEGL supports, e.g.
1784         "x11,drm" @<:@default=auto@:>@])],
1785     [with_egl_platforms="$withval"],
1786     [with_egl_platforms=yes])
1787
1788 EGL_PLATFORMS=""
1789 WAYLAND_EGL_LIB_DEPS=""
1790
1791 case "$with_egl_platforms" in
1792 yes)
1793     if test "x$enable_egl" = xyes; then
1794         EGL_PLATFORMS="x11"
1795     fi
1796     ;;
1797 *)
1798     if test "x$enable_egl" != xyes; then
1799         AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1800     fi
1801     # verify the requested driver directories exist
1802     egl_platforms=`IFS=', '; echo $with_egl_platforms`
1803     for plat in $egl_platforms; do
1804         test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1805             AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
1806         if test "$plat" = "fbdev"; then
1807                 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1808         fi
1809         if test "$plat" = "wayland"; then
1810                 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
1811                                   [AC_MSG_ERROR([cannot find libwayland-client])])
1812                 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
1813                 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
1814         fi
1815         if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
1816                 AC_MSG_ERROR([EGL platform drm needs gbm])
1817         fi
1818         case "$plat$have_libudev" in
1819                 waylandno|drmno)
1820                     AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1821         esac
1822     done
1823     EGL_PLATFORMS="$egl_platforms"
1824     ;;
1825 esac
1826 AC_SUBST([EGL_PLATFORMS])
1827
1828 AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1829 WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1830 WAYLAND_EGL_PC_LIB_PRIV=
1831 WAYLAND_EGL_PC_CFLAGS=
1832
1833 AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1834 AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1835 AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1836
1837
1838 AC_ARG_WITH([egl-driver-dir],
1839     [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1840                     [directory for EGL drivers [[default=${libdir}/egl]]])],
1841     [EGL_DRIVER_INSTALL_DIR="$withval"],
1842     [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1843 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1844
1845 AC_ARG_WITH([xorg-driver-dir],
1846     [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1847                     [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1848     [XORG_DRIVER_INSTALL_DIR="$withval"],
1849     [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1850 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1851
1852 AC_ARG_WITH([max-width],
1853     [AS_HELP_STRING([--with-max-width=N],
1854                     [Maximum framebuffer width (4096)])],
1855     [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1856      AS_IF([test "${withval}" -gt "4096"],
1857            [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1858 )
1859 AC_ARG_WITH([max-height],
1860     [AS_HELP_STRING([--with-max-height=N],
1861                     [Maximum framebuffer height (4096)])],
1862     [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1863      AS_IF([test "${withval}" -gt "4096"],
1864            [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1865 )
1866
1867 dnl
1868 dnl Gallium LLVM
1869 dnl
1870 AC_ARG_ENABLE([gallium-llvm],
1871     [AS_HELP_STRING([--enable-gallium-llvm],
1872         [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1873     [enable_gallium_llvm="$enableval"],
1874     [enable_gallium_llvm=auto])
1875 if test "x$with_gallium_drivers" = x; then
1876     enable_gallium_llvm=no
1877 fi
1878 if test "x$enable_gallium_llvm" = xauto; then
1879     case "$host_cpu" in
1880     i*86|x86_64) enable_gallium_llvm=yes;;
1881     esac
1882 fi
1883 if test "x$enable_gallium_llvm" = xyes; then
1884     if test "x$LLVM_CONFIG" != xno; then
1885         LLVM_VERSION=`$LLVM_CONFIG --version`
1886         LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed 's/-DNDEBUG\>//g'`
1887         LLVM_LIBS="`$LLVM_CONFIG --libs` -lstdc++"
1888
1889         LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1890         DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
1891         MESA_LLVM=1
1892     else
1893         MESA_LLVM=0
1894     fi
1895 else
1896     MESA_LLVM=0
1897 fi
1898
1899 dnl Directory for VDPAU libs
1900 AC_ARG_WITH([vdpau-libdir],
1901     [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1902         [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1903     [VDPAU_LIB_INSTALL_DIR="$withval"],
1904     [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1905 AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1906
1907 dnl Directory for VA libs
1908 AC_ARG_WITH([va-libdir],
1909     [AS_HELP_STRING([--with-va-libdir=DIR],
1910         [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1911     [VA_LIB_INSTALL_DIR="$withval"],
1912     [VA_LIB_INSTALL_DIR='${libdir}/va'])
1913 AC_SUBST([VA_LIB_INSTALL_DIR])
1914
1915 dnl
1916 dnl Gallium helper functions
1917 dnl
1918 gallium_check_st() {
1919     if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
1920          test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1921          test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
1922          if test "x$have_libdrm" != xyes; then
1923             AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1924          fi
1925          GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1926     fi
1927     if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1928          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1929     fi
1930     if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1931          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1932     fi
1933     if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1934          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1935     fi
1936     if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1937          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1938     fi
1939     if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1940          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1941     fi
1942     if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1943          GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1944     fi
1945 }
1946
1947 gallium_require_llvm() {
1948     if test "x$MESA_LLVM" = x0; then
1949         case "$host_cpu" in
1950         i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1951         esac
1952     fi
1953 }
1954
1955 dnl Gallium drivers
1956 dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
1957 if test "x$with_gallium_drivers" != x; then
1958     gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1959     for driver in $gallium_drivers; do
1960         case "x$driver" in
1961         xsvga)
1962             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
1963             gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx" "xa-vmwgfx"
1964             ;;
1965         xi915)
1966             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1967             if test "x$MESA_LLVM" = x1; then
1968                 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1969             fi
1970             GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1971             gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1972             ;;
1973         xi965)
1974             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965 softpipe"
1975             if test "x$MESA_LLVM" = x1; then
1976                 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1977             fi
1978             gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1979             ;;
1980         xr300)
1981             gallium_require_llvm "Gallium R300"
1982             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1983             gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
1984             ;;
1985         xr600)
1986             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1987             gallium_check_st "r600/drm" "dri-r600" "" "" "xvmc-r600" "vdpau-r600" "va-r600"
1988             ;;
1989         xnouveau)
1990             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1991             gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau"
1992             ;;
1993         xswrast)
1994             if test "x$HAVE_ST_DRI" = xyes; then
1995                 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
1996                 if test "x$MESA_LLVM" = x1; then
1997                     GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1998                 fi
1999                 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
2000             fi
2001             if test "x$HAVE_ST_VDPAU" = xyes; then
2002                 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
2003             fi
2004             if test "x$HAVE_ST_XVMC" = xyes; then
2005                 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
2006             fi
2007             if test "x$HAVE_ST_VA" = xyes; then
2008                 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
2009             fi
2010             ;;
2011         *)
2012             AC_MSG_ERROR([Unknown Gallium driver: $driver])
2013             ;;
2014         esac
2015     done
2016 fi
2017
2018 dnl prepend CORE_DIRS to SRC_DIRS
2019 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
2020
2021 dnl Restore LDFLAGS and CPPFLAGS
2022 LDFLAGS="$_SAVE_LDFLAGS"
2023 CPPFLAGS="$_SAVE_CPPFLAGS"
2024
2025 dnl Substitute the config
2026 AC_CONFIG_FILES([configs/autoconf])
2027
2028 dnl Replace the configs/current symlink
2029 AC_CONFIG_COMMANDS([configs],[
2030 if test -f configs/current || test -L configs/current; then
2031     rm -f configs/current
2032 fi
2033 ln -s autoconf configs/current
2034 ])
2035
2036 dnl Sort the dirs alphabetically
2037 GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort|tr "\n" " "`
2038 GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort|tr "\n" " "`
2039 GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort|tr "\n" " "`
2040 GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort|tr "\n" " "`
2041
2042 AC_OUTPUT
2043
2044 dnl
2045 dnl Output some configuration info for the user
2046 dnl
2047 echo ""
2048 echo "        prefix:          $prefix"
2049 echo "        exec_prefix:     $exec_prefix"
2050 echo "        libdir:          $libdir"
2051 echo "        includedir:      $includedir"
2052
2053 dnl API info
2054 echo ""
2055 echo "        OpenGL:          $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
2056 echo "        OpenVG:          $enable_openvg"
2057
2058 dnl Driver info
2059 echo ""
2060 if test "x$enable_osmesa" != xno; then
2061         echo "        OSMesa:          lib$OSMESA_LIB"
2062 else
2063         echo "        OSMesa:          no"
2064 fi
2065
2066 if test "x$enable_dri" != xno; then
2067         # cleanup the drivers var
2068         dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
2069         if test "x$DRI_DIRS" = x; then
2070             echo "        DRI drivers:     no"
2071         else
2072             echo "        DRI drivers:     $dri_dirs"
2073         fi
2074         echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
2075         echo "        Shared dricore:  $enable_dricore"
2076 fi
2077
2078 case "x$enable_glx$enable_xlib_glx" in
2079 xyesyes)
2080     echo "        GLX:             Xlib-based"
2081     ;;
2082 xyesno)
2083     echo "        GLX:             DRI-based"
2084     echo "        Use XCB:         $enable_xcb"
2085     ;;
2086 *)
2087     echo "        GLX:             $enable_glx"
2088     ;;
2089 esac
2090
2091 echo ""
2092 echo "        GLU:             $enable_glu"
2093 echo "        GLw:             $enable_glw (Motif: $enable_motif)"
2094 echo "        glut:            $enable_glut"
2095
2096 dnl EGL
2097 echo ""
2098 echo "        EGL:             $enable_egl"
2099 if test "$enable_egl" = yes; then
2100     echo "        EGL platforms:   $EGL_PLATFORMS"
2101
2102     egl_drivers=""
2103     for d in $EGL_DRIVERS_DIRS; do
2104         egl_drivers="$egl_drivers builtin:egl_$d"
2105     done
2106
2107     if test "x$HAVE_ST_EGL" = xyes; then
2108         echo "        EGL drivers:    ${egl_drivers} egl_gallium"
2109         echo "        EGL Gallium STs:$EGL_CLIENT_APIS"
2110     else
2111         echo "        EGL drivers:    $egl_drivers"
2112     fi
2113 fi
2114
2115 echo ""
2116 if test "x$MESA_LLVM" = x1; then
2117     echo "        llvm:            yes"
2118     echo "        llvm-config:     $LLVM_CONFIG"
2119     echo "        llvm-version:    $LLVM_VERSION"
2120 else
2121     echo "        llvm:            no"
2122 fi
2123
2124 echo ""
2125 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2126     echo "        Gallium:         yes"
2127     echo "        Gallium dirs:    $GALLIUM_DIRS"
2128     echo "        Target dirs:     $GALLIUM_TARGET_DIRS"
2129     echo "        Winsys dirs:     $GALLIUM_WINSYS_DIRS"
2130     echo "        Driver dirs:     $GALLIUM_DRIVERS_DIRS"
2131     echo "        Trackers dirs:   $GALLIUM_STATE_TRACKERS_DIRS"
2132 else
2133     echo "        Gallium:         no"
2134 fi
2135
2136 dnl Libraries
2137 echo ""
2138 echo "        Shared libs:     $enable_shared"
2139 echo "        Static libs:     $enable_static"
2140
2141 dnl Compiler options
2142 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2143 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2144     $SED 's/^ *//;s/  */ /;s/ *$//'`
2145 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2146     $SED 's/^ *//;s/  */ /;s/ *$//'`
2147 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/  */ /;s/ *$//'`
2148 echo ""
2149 echo "        CFLAGS:          $cflags"
2150 echo "        CXXFLAGS:        $cxxflags"
2151 echo "        Macros:          $defines"
2152 echo ""
2153 echo "        PYTHON2:         $PYTHON2"
2154
2155 echo ""
2156 echo "        Run '${MAKE-make}' to build Mesa"
2157 echo ""