OSDN Git Service

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