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