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