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