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