Cygwin: Teach mklib/minstall to properly install libraries on cygwin
[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 # add xcb modules if necessary
630 dri_modules="x11 xext xxf86vm xdamage xfixes"
631 if test "$enable_xcb" = yes; then
632 dri_modules="$dri_modules x11-xcb xcb-glx"
633 fi
634
635 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
636 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
637 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
638 GL_LIB_DEPS="$DRIGL_LIBS"
639 else
640 # should check these...
641 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
642 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
643 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
644 GL_PC_CFLAGS="$X11_INCLUDES"
645
646 # XCB can only be used from pkg-config
647 if test "$enable_xcb" = yes; then
648 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
649 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
650 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
651 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
652 fi
653 fi
654
655 # need DRM libs, -lpthread, etc.
656 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
657 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
658 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
659 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
660 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
661 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
662 ;;
663 osmesa)
664 # No libGL for osmesa
665 GL_LIB_DEPS=""
666 ;;
667 esac
668 AC_SUBST([GL_LIB_DEPS])
669 AC_SUBST([GL_PC_REQ_PRIV])
670 AC_SUBST([GL_PC_LIB_PRIV])
671 AC_SUBST([GL_PC_CFLAGS])
672 AC_SUBST([DRI_PC_REQ_PRIV])
673 AC_SUBST([GLESv1_CM_LIB_DEPS])
674 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
675 AC_SUBST([GLESv2_LIB_DEPS])
676 AC_SUBST([GLESv2_PC_LIB_PRIV])
677
678
679 dnl
680 dnl More X11 setup
681 dnl
682 if test "$mesa_driver" = xlib; then
683 DEFINES="$DEFINES -DUSE_XSHM"
684 fi
685
686 dnl
687 dnl More DRI setup
688 dnl
689 AC_ARG_ENABLE([glx-tls],
690 [AS_HELP_STRING([--enable-glx-tls],
691 [enable TLS support in GLX @<:@default=disabled@:>@])],
692 [GLX_USE_TLS="$enableval"],
693 [GLX_USE_TLS=no])
694 dnl Directory for DRI drivers
695 AC_ARG_WITH([dri-driverdir],
696 [AS_HELP_STRING([--with-dri-driverdir=DIR],
697 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
698 [DRI_DRIVER_INSTALL_DIR="$withval"],
699 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
700 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
701 dnl Extra search path for DRI drivers
702 AC_ARG_WITH([dri-searchpath],
703 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
704 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
705 [DRI_DRIVER_SEARCH_DIR="$withval"],
706 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
707 AC_SUBST([DRI_DRIVER_SEARCH_DIR])
708 dnl Direct rendering or just indirect rendering
709 AC_ARG_ENABLE([driglx-direct],
710 [AS_HELP_STRING([--disable-driglx-direct],
711 [enable direct rendering in GLX and EGL for DRI @<:@default=enabled@:>@])],
712 [driglx_direct="$enableval"],
713 [driglx_direct="yes"])
714 dnl Which drivers to build - default is chosen by platform
715 AC_ARG_WITH([dri-drivers],
716 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
717 [comma delimited DRI drivers list, e.g.
718 "swrast,i965,radeon" @<:@default=auto@:>@])],
719 [with_dri_drivers="$withval"],
720 [with_dri_drivers=yes])
721 if test "x$with_dri_drivers" = x; then
722 with_dri_drivers=no
723 fi
724
725 dnl Determine which APIs to support
726 AC_ARG_ENABLE([opengl],
727 [AS_HELP_STRING([--disable-opengl],
728 [disable support for standard OpenGL API @<:@default=no@:>@])],
729 [enable_opengl="$enableval"],
730 [enable_opengl=yes])
731 AC_ARG_ENABLE([gles1],
732 [AS_HELP_STRING([--enable-gles1],
733 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
734 [enable_gles1="$enableval"],
735 [enable_gles1=no])
736 AC_ARG_ENABLE([gles2],
737 [AS_HELP_STRING([--enable-gles2],
738 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
739 [enable_gles2="$enableval"],
740 [enable_gles2=no])
741 AC_ARG_ENABLE([gles-overlay],
742 [AS_HELP_STRING([--enable-gles-overlay],
743 [build separate OpenGL ES only libraries @<:@default=no@:>@])],
744 [enable_gles_overlay="$enableval"],
745 [enable_gles_overlay=no])
746
747 API_DEFINES=""
748 GLES_OVERLAY=0
749 if test "x$enable_opengl" = xno; then
750 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
751 else
752 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
753 fi
754 if test "x$enable_gles1" = xyes; then
755 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
756 fi
757 if test "x$enable_gles2" = xyes; then
758 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
759 fi
760 if test "x$enable_gles_overlay" = xyes -o \
761 "x$enable_gles1" = xyes -o "x$enable_gles2" = xyes; then
762 CORE_DIRS="mapi/es1api mapi/es2api $CORE_DIRS"
763 if test "x$enable_gles_overlay" = xyes; then
764 GLES_OVERLAY=1
765 fi
766 fi
767 AC_SUBST([API_DEFINES])
768 AC_SUBST([GLES_OVERLAY])
769
770 dnl If $with_dri_drivers is yes, directories will be added through
771 dnl platform checks
772 DRI_DIRS=""
773 case "$with_dri_drivers" in
774 no) ;;
775 yes)
776 DRI_DIRS="yes"
777 ;;
778 *)
779 # verify the requested driver directories exist
780 dri_drivers=`IFS=', '; echo $with_dri_drivers`
781 for driver in $dri_drivers; do
782 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
783 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
784 done
785 DRI_DIRS="$dri_drivers"
786 ;;
787 esac
788
789 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
790 if test "$mesa_driver" = dri; then
791 # Use TLS in GLX?
792 if test "x$GLX_USE_TLS" = xyes; then
793 DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
794 fi
795
796 # Platform specific settings and drivers to build
797 case "$host_os" in
798 linux*)
799 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
800 if test "x$driglx_direct" = xyes; then
801 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
802 fi
803 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
804
805 case "$host_cpu" in
806 x86_64)
807 # sis is missing because they have not be converted to use
808 # the new interface. i810 are missing because there is no
809 # x86-64 system where they could *ever* be used.
810 if test "x$DRI_DIRS" = "xyes"; then
811 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 r600 radeon \
812 savage tdfx unichrome swrast"
813 fi
814 ;;
815 powerpc*)
816 # Build only the drivers for cards that exist on PowerPC.
817 # At some point MGA will be added, but not yet.
818 if test "x$DRI_DIRS" = "xyes"; then
819 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
820 fi
821 ;;
822 sparc*)
823 # Build only the drivers for cards that exist on sparc`
824 if test "x$DRI_DIRS" = "xyes"; then
825 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
826 fi
827 ;;
828 esac
829 ;;
830 freebsd* | dragonfly*)
831 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
832 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
833 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
834 if test "x$driglx_direct" = xyes; then
835 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
836 fi
837 if test "x$GXX" = xyes; then
838 CXXFLAGS="$CXXFLAGS -ansi -pedantic"
839 fi
840
841 if test "x$DRI_DIRS" = "xyes"; then
842 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
843 unichrome savage sis swrast"
844 fi
845 ;;
846 gnu*)
847 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
848 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
849 ;;
850 solaris*)
851 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
852 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
853 if test "x$driglx_direct" = xyes; then
854 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
855 fi
856 ;;
857 esac
858
859 # default drivers
860 if test "x$DRI_DIRS" = "xyes"; then
861 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
862 savage sis tdfx unichrome swrast"
863 fi
864
865 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
866
867 # Check for expat
868 EXPAT_INCLUDES=""
869 EXPAT_LIB=-lexpat
870 AC_ARG_WITH([expat],
871 [AS_HELP_STRING([--with-expat=DIR],
872 [expat install directory])],[
873 EXPAT_INCLUDES="-I$withval/include"
874 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
875 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
876 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
877 ])
878 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
879 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
880 [AC_MSG_ERROR([Expat required for DRI.])])
881
882 # put all the necessary libs together
883 DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS $TALLOC_LIBS"
884 fi
885 AC_SUBST([DRI_DIRS])
886 AC_SUBST([EXPAT_INCLUDES])
887 AC_SUBST([DRI_LIB_DEPS])
888
889 case $DRI_DIRS in
890 *i915*|*i965*)
891 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= 2.4.21])
892 ;;
893 esac
894
895 case $DRI_DIRS in
896 *radeon*|*r200*|*r300*|*r600*)
897 PKG_CHECK_MODULES([LIBDRM_RADEON],
898 [libdrm_radeon libdrm >= $LIBDRM_RADEON_REQUIRED],
899 HAVE_LIBDRM_RADEON=yes,
900 HAVE_LIBDRM_RADEON=no)
901
902 if test "$HAVE_LIBDRM_RADEON" = yes; then
903 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
904 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
905 fi
906 ;;
907 esac
908 AC_SUBST([RADEON_CFLAGS])
909 AC_SUBST([RADEON_LDFLAGS])
910
911
912 dnl
913 dnl OSMesa configuration
914 dnl
915 if test "$mesa_driver" = xlib; then
916 default_gl_osmesa=yes
917 else
918 default_gl_osmesa=no
919 fi
920 AC_ARG_ENABLE([gl-osmesa],
921 [AS_HELP_STRING([--enable-gl-osmesa],
922 [enable OSMesa with libGL @<:@default=enabled for xlib driver@:>@])],
923 [gl_osmesa="$enableval"],
924 [gl_osmesa="$default_gl_osmesa"])
925 if test "x$gl_osmesa" = xyes; then
926 if test "$mesa_driver" = osmesa; then
927 AC_MSG_ERROR([libGL is not available for OSMesa driver])
928 else
929 DRIVER_DIRS="$DRIVER_DIRS osmesa"
930 fi
931 fi
932
933 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
934 AC_ARG_WITH([osmesa-bits],
935 [AS_HELP_STRING([--with-osmesa-bits=BITS],
936 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
937 [osmesa_bits="$withval"],
938 [osmesa_bits=8])
939 if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
940 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
941 osmesa_bits=8
942 fi
943 case "x$osmesa_bits" in
944 x8)
945 OSMESA_LIB=OSMesa
946 ;;
947 x16|x32)
948 OSMESA_LIB="OSMesa$osmesa_bits"
949 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
950 ;;
951 *)
952 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
953 ;;
954 esac
955 AC_SUBST([OSMESA_LIB])
956
957 case "$DRIVER_DIRS" in
958 *osmesa*)
959 # only link libraries with osmesa if shared
960 if test "$enable_static" = no; then
961 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS $TALLOC_LIBS"
962 else
963 OSMESA_LIB_DEPS=""
964 fi
965 OSMESA_MESA_DEPS=""
966 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS $TALLOC_LIBS"
967 ;;
968 esac
969 AC_SUBST([OSMESA_LIB_DEPS])
970 AC_SUBST([OSMESA_MESA_DEPS])
971 AC_SUBST([OSMESA_PC_REQ])
972 AC_SUBST([OSMESA_PC_LIB_PRIV])
973
974 dnl
975 dnl EGL configuration
976 dnl
977 AC_ARG_ENABLE([egl],
978 [AS_HELP_STRING([--disable-egl],
979 [disable EGL library @<:@default=enabled@:>@])],
980 [enable_egl="$enableval"],
981 [enable_egl=yes])
982 if test "x$enable_egl" = xyes; then
983 SRC_DIRS="$SRC_DIRS egl"
984 EGL_LIB_DEPS="$DLOPEN_LIBS -lpthread"
985 EGL_DRIVERS_DIRS=""
986 if test "$enable_static" != yes; then
987 # build egl_glx when libGL is built
988 if test "$mesa_driver" != osmesa; then
989 EGL_DRIVERS_DIRS="glx"
990 fi
991
992 if test "$mesa_driver" = dri; then
993 # build egl_dri2 when xcb-dri2 is available
994 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
995 [have_xcb_dri2=yes],[have_xcb_dri2=no])
996 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
997 [have_libudev=yes],[have_libudev=no])
998
999 if test "$have_xcb_dri2" = yes; then
1000 EGL_DRIVER_DRI2=dri2
1001 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1002 if test "$have_libudev" = yes; then
1003 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1004 fi
1005 fi
1006 fi
1007
1008 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
1009 fi
1010 fi
1011 AC_SUBST([EGL_LIB_DEPS])
1012 AC_SUBST([EGL_DRIVERS_DIRS])
1013
1014 dnl
1015 dnl GLU configuration
1016 dnl
1017 AC_ARG_ENABLE([glu],
1018 [AS_HELP_STRING([--disable-glu],
1019 [enable OpenGL Utility library @<:@default=enabled@:>@])],
1020 [enable_glu="$enableval"],
1021 [enable_glu=yes])
1022 if test "x$enable_glu" = xyes; then
1023 SRC_DIRS="$SRC_DIRS glu"
1024
1025 case "$mesa_driver" in
1026 osmesa)
1027 # Link libGLU to libOSMesa instead of libGL
1028 GLU_LIB_DEPS=""
1029 GLU_PC_REQ="osmesa"
1030 if test "$enable_static" = no; then
1031 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1032 else
1033 GLU_MESA_DEPS=""
1034 fi
1035 ;;
1036 *)
1037 # If static, empty GLU_LIB_DEPS and add libs for programs to link
1038 GLU_PC_REQ="gl"
1039 GLU_PC_LIB_PRIV="-lm"
1040 if test "$enable_static" = no; then
1041 GLU_LIB_DEPS="-lm"
1042 GLU_MESA_DEPS='-l$(GL_LIB)'
1043 else
1044 GLU_LIB_DEPS=""
1045 GLU_MESA_DEPS=""
1046 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1047 fi
1048 ;;
1049 esac
1050 fi
1051 if test "$enable_static" = no; then
1052 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1053 fi
1054 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1055 AC_SUBST([GLU_LIB_DEPS])
1056 AC_SUBST([GLU_MESA_DEPS])
1057 AC_SUBST([GLU_PC_REQ])
1058 AC_SUBST([GLU_PC_REQ_PRIV])
1059 AC_SUBST([GLU_PC_LIB_PRIV])
1060 AC_SUBST([GLU_PC_CFLAGS])
1061
1062 dnl
1063 dnl GLw configuration
1064 dnl
1065 AC_ARG_ENABLE([glw],
1066 [AS_HELP_STRING([--disable-glw],
1067 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
1068 [enable_glw="$enableval"],
1069 [enable_glw=yes])
1070 dnl Don't build GLw on osmesa
1071 if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
1072 AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
1073 enable_glw=no
1074 fi
1075 AC_ARG_ENABLE([motif],
1076 [AS_HELP_STRING([--enable-motif],
1077 [use Motif widgets in GLw @<:@default=disabled@:>@])],
1078 [enable_motif="$enableval"],
1079 [enable_motif=no])
1080
1081 if test "x$enable_glw" = xyes; then
1082 SRC_DIRS="$SRC_DIRS glw"
1083 if test "$x11_pkgconfig" = yes; then
1084 PKG_CHECK_MODULES([GLW],[x11 xt])
1085 GLW_PC_REQ_PRIV="x11 xt"
1086 GLW_LIB_DEPS="$GLW_LIBS"
1087 else
1088 # should check these...
1089 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
1090 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1091 GLW_PC_CFLAGS="$X11_INCLUDES"
1092 fi
1093
1094 GLW_SOURCES="GLwDrawA.c"
1095 MOTIF_CFLAGS=
1096 if test "x$enable_motif" = xyes; then
1097 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1098 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1099 if test "x$MOTIF_CONFIG" != xno; then
1100 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1101 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1102 else
1103 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1104 [AC_MSG_ERROR([Can't locate Motif headers])])
1105 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1106 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1107 fi
1108 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1109 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
1110 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1111 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
1112 fi
1113
1114 # If static, empty GLW_LIB_DEPS and add libs for programs to link
1115 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
1116 if test "$enable_static" = no; then
1117 GLW_MESA_DEPS='-l$(GL_LIB)'
1118 GLW_LIB_DEPS="$GLW_LIB_DEPS"
1119 else
1120 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1121 GLW_LIB_DEPS=""
1122 GLW_MESA_DEPS=""
1123 fi
1124 fi
1125 AC_SUBST([GLW_LIB_DEPS])
1126 AC_SUBST([GLW_MESA_DEPS])
1127 AC_SUBST([GLW_SOURCES])
1128 AC_SUBST([MOTIF_CFLAGS])
1129 AC_SUBST([GLW_PC_REQ_PRIV])
1130 AC_SUBST([GLW_PC_LIB_PRIV])
1131 AC_SUBST([GLW_PC_CFLAGS])
1132
1133 dnl
1134 dnl GLUT configuration
1135 dnl
1136 if test -f "$srcdir/include/GL/glut.h"; then
1137 default_glut=yes
1138 else
1139 default_glut=no
1140 fi
1141 AC_ARG_ENABLE([glut],
1142 [AS_HELP_STRING([--disable-glut],
1143 [enable GLUT library @<:@default=enabled if source available@:>@])],
1144 [enable_glut="$enableval"],
1145 [enable_glut="$default_glut"])
1146
1147 dnl Can't build glut if GLU not available
1148 if test "x$enable_glu$enable_glut" = xnoyes; then
1149 AC_MSG_WARN([Disabling glut since GLU is disabled])
1150 enable_glut=no
1151 fi
1152 dnl Don't build glut on osmesa
1153 if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1154 AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1155 enable_glut=no
1156 fi
1157
1158 if test "x$enable_glut" = xyes; then
1159 SRC_DIRS="$SRC_DIRS glut/glx"
1160 if test "$x11_pkgconfig" = yes; then
1161 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1162 GLUT_PC_REQ_PRIV="x11 xmu xi"
1163 GLUT_LIB_DEPS="$GLUT_LIBS"
1164 else
1165 # should check these...
1166 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1167 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1168 GLUT_PC_CFLAGS="$X11_INCLUDES"
1169 fi
1170 if test "x$GCC" = xyes; then
1171 GLUT_CFLAGS="$GLUT_CFLAGS -fexceptions"
1172 fi
1173 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1174 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
1175
1176 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1177 if test "$enable_static" = no; then
1178 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1179 else
1180 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1181 GLUT_LIB_DEPS=""
1182 GLUT_MESA_DEPS=""
1183 fi
1184 fi
1185 AC_SUBST([GLUT_LIB_DEPS])
1186 AC_SUBST([GLUT_MESA_DEPS])
1187 AC_SUBST([GLUT_CFLAGS])
1188 AC_SUBST([GLUT_PC_REQ_PRIV])
1189 AC_SUBST([GLUT_PC_LIB_PRIV])
1190 AC_SUBST([GLUT_PC_CFLAGS])
1191
1192 dnl
1193 dnl Program library dependencies
1194 dnl Only libm is added here if necessary as the libraries should
1195 dnl be pulled in by the linker
1196 dnl
1197 if test "x$APP_LIB_DEPS" = x; then
1198 case "$host_os" in
1199 solaris*)
1200 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1201 ;;
1202 cygwin*)
1203 APP_LIB_DEPS="-lX11"
1204 ;;
1205 *)
1206 APP_LIB_DEPS="-lm"
1207 ;;
1208 esac
1209 fi
1210 AC_SUBST([APP_LIB_DEPS])
1211 AC_SUBST([PROGRAM_DIRS])
1212
1213 dnl
1214 dnl Gallium configuration
1215 dnl
1216 AC_ARG_ENABLE([gallium],
1217 [AS_HELP_STRING([--disable-gallium],
1218 [build gallium @<:@default=enabled@:>@])],
1219 [enable_gallium="$enableval"],
1220 [enable_gallium=yes])
1221 if test "x$enable_gallium" = xyes; then
1222 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
1223 AC_CHECK_HEADER([udis86.h], [HAS_UDIS86="yes"],
1224 [HAS_UDIS86="no"])
1225 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
1226 fi
1227
1228 AC_SUBST([LLVM_CFLAGS])
1229 AC_SUBST([LLVM_LIBS])
1230 AC_SUBST([LLVM_LDFLAGS])
1231 AC_SUBST([LLVM_VERSION])
1232
1233 VG_LIB_DEPS=""
1234 EGL_CLIENT_APIS='$(GL_LIB)'
1235 if test "x$enable_gles_overlay" = xyes; then
1236 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GLESv1_CM_LIB) $(GLESv2_LIB)'
1237 fi
1238
1239 dnl
1240 dnl Gallium state trackers configuration
1241 dnl
1242 AC_ARG_WITH([state-trackers],
1243 [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1244 [comma delimited state_trackers list, e.g.
1245 "egl,glx" @<:@default=auto@:>@])],
1246 [with_state_trackers="$withval"],
1247 [with_state_trackers=yes])
1248
1249 case "$with_state_trackers" in
1250 no)
1251 GALLIUM_STATE_TRACKERS_DIRS=""
1252 ;;
1253 yes)
1254 # look at what else is built
1255 case "$mesa_driver" in
1256 xlib)
1257 GALLIUM_STATE_TRACKERS_DIRS=glx
1258 ;;
1259 dri)
1260 GALLIUM_STATE_TRACKERS_DIRS="dri"
1261 HAVE_ST_DRI="yes"
1262 if test "x$enable_egl" = xyes; then
1263 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl"
1264 HAVE_ST_EGL="yes"
1265 fi
1266 # Have only tested st/xorg on 1.6.0 servers
1267 PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6.0 libdrm >= $LIBDRM_XORG_REQUIRED libkms >= $LIBKMS_XORG_REQUIRED],
1268 HAVE_ST_XORG="yes"; GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg",
1269 HAVE_ST_XORG="no")
1270 ;;
1271 esac
1272 ;;
1273 *)
1274 # verify the requested state tracker exist
1275 state_trackers=""
1276 _state_trackers=`IFS=', '; echo $with_state_trackers`
1277 for tracker in $_state_trackers; do
1278 case "$tracker" in
1279 dri)
1280 if test "x$mesa_driver" != xdri; then
1281 AC_MSG_ERROR([cannot build dri state tracker without mesa driver set to dri])
1282 fi
1283 HAVE_ST_DRI="yes"
1284 ;;
1285 egl)
1286 if test "x$enable_egl" != xyes; then
1287 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1288 fi
1289 HAVE_ST_EGL="yes"
1290 ;;
1291 xorg)
1292 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1293 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1294 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1295 HAVE_ST_XORG="yes"
1296 ;;
1297 es)
1298 AC_MSG_WARN([state tracker 'es' has been replaced by --enable-gles-overlay])
1299
1300 if test "x$enable_gles_overlay" != xyes; then
1301 if test "x$enable_gles1" != xyes -a "x$enable_gles2" != xyes; then
1302 CORE_DIRS="mapi/es1api mapi/es2api $CORE_DIRS"
1303 fi
1304 GLES_OVERLAY=1
1305 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GLESv1_CM_LIB) $(GLESv2_LIB)'
1306 fi
1307 tracker=""
1308 ;;
1309 vega)
1310 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1311 VG_LIB_DEPS="$VG_LIB_DEPS -lpthread"
1312 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1313 ;;
1314 esac
1315
1316 if test -n "$tracker"; then
1317 test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1318 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1319 if test -n "$state_trackers"; then
1320 state_trackers="$state_trackers $tracker"
1321 else
1322 state_trackers="$tracker"
1323 fi
1324 fi
1325 done
1326 GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1327 ;;
1328 esac
1329
1330 AC_SUBST([VG_LIB_DEPS])
1331 AC_SUBST([EGL_CLIENT_APIS])
1332
1333 if test "x$HAVE_ST_EGL" = xyes; then
1334 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl"
1335 # define GLX_DIRECT_RENDERING even when the driver is not dri
1336 if test "x$mesa_driver" != xdri -a "x$driglx_direct" = xyes; then
1337 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1338 fi
1339 fi
1340
1341 if test "x$HAVE_ST_XORG" = xyes; then
1342 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1343 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1344 HAVE_XEXTPROTO_71="no")
1345 fi
1346
1347 AC_ARG_WITH([egl-platforms],
1348 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1349 [comma delimited native platforms libEGL supports, e.g.
1350 "x11,kms" @<:@default=auto@:>@])],
1351 [with_egl_platforms="$withval"],
1352 [with_egl_platforms=yes])
1353 AC_ARG_WITH([egl-displays],
1354 [AS_HELP_STRING([--with-egl-displays@<:@=DIRS...@:>@],
1355 [DEPRECATED. Use --with-egl-platforms instead])],
1356 [with_egl_platforms="$withval"])
1357
1358 EGL_PLATFORMS=""
1359 case "$with_egl_platforms" in
1360 yes)
1361 if test "x$enable_egl" = xyes && test "x$mesa_driver" != xosmesa; then
1362 EGL_PLATFORMS="x11"
1363 fi
1364 ;;
1365 *)
1366 if test "x$enable_egl" != xyes; then
1367 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1368 fi
1369 # verify the requested driver directories exist
1370 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1371 for plat in $egl_platforms; do
1372 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1373 AC_MSG_ERROR([EGL platform '$plat' does't exist])
1374 if test "$plat" = "fbdev"; then
1375 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1376 fi
1377 done
1378 EGL_PLATFORMS="$egl_platforms"
1379 ;;
1380 esac
1381 AC_SUBST([EGL_PLATFORMS])
1382
1383 AC_ARG_WITH([egl-driver-dir],
1384 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1385 [directory for EGL drivers [[default=${libdir}/egl]]])],
1386 [EGL_DRIVER_INSTALL_DIR="$withval"],
1387 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1388 AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1389
1390 AC_ARG_WITH([xorg-driver-dir],
1391 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1392 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1393 [XORG_DRIVER_INSTALL_DIR="$withval"],
1394 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1395 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1396
1397 AC_ARG_WITH([max-width],
1398 [AS_HELP_STRING([--with-max-width=N],
1399 [Maximum framebuffer width (4096)])],
1400 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1401 AS_IF([test "${withval}" -gt "4096"],
1402 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1403 )
1404 AC_ARG_WITH([max-height],
1405 [AS_HELP_STRING([--with-max-height=N],
1406 [Maximum framebuffer height (4096)])],
1407 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1408 AS_IF([test "${withval}" -gt "4096"],
1409 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1410 )
1411
1412 dnl
1413 dnl Gallium LLVM
1414 dnl
1415 AC_ARG_ENABLE([gallium-llvm],
1416 [AS_HELP_STRING([--enable-gallium-llvm],
1417 [build gallium LLVM support @<:@default=disabled@:>@])],
1418 [enable_gallium_llvm="$enableval"],
1419 [enable_gallium_llvm=auto])
1420 if test "x$enable_gallium_llvm" = xyes; then
1421 if test "x$LLVM_CONFIG" != xno; then
1422 LLVM_VERSION=`$LLVM_CONFIG --version`
1423 LLVM_CFLAGS=`$LLVM_CONFIG --cflags`
1424 LLVM_LIBS="`$LLVM_CONFIG --libs jit interpreter nativecodegen bitwriter` -lstdc++"
1425
1426 if test "x$HAS_UDIS86" != xno; then
1427 LLVM_LIBS="$LLVM_LIBS -ludis86"
1428 DEFINES="$DEFINES -DHAVE_UDIS86"
1429 fi
1430 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1431 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1432 DEFINES="$DEFINES -DGALLIUM_LLVMPIPE -D__STDC_CONSTANT_MACROS"
1433 MESA_LLVM=1
1434 else
1435 MESA_LLVM=0
1436 fi
1437 else
1438 MESA_LLVM=0
1439 fi
1440
1441 dnl
1442 dnl Gallium helper functions
1443 dnl
1444 gallium_check_st() {
1445 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes; then
1446 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1447 fi
1448 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1449 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1450 fi
1451 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
1452 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1453 fi
1454 }
1455
1456
1457 dnl
1458 dnl Gallium SVGA configuration
1459 dnl
1460 AC_ARG_ENABLE([gallium-svga],
1461 [AS_HELP_STRING([--enable-gallium-svga],
1462 [build gallium SVGA @<:@default=disabled@:>@])],
1463 [enable_gallium_svga="$enableval"],
1464 [enable_gallium_svga=auto])
1465 if test "x$enable_gallium_svga" = xyes; then
1466 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
1467 gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
1468 elif test "x$enable_gallium_svga" = xauto; then
1469 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
1470 fi
1471
1472 dnl
1473 dnl Gallium i915 configuration
1474 dnl
1475 AC_ARG_ENABLE([gallium-i915],
1476 [AS_HELP_STRING([--enable-gallium-i915],
1477 [build gallium i915 @<:@default=disabled@:>@])],
1478 [enable_gallium_i915="$enableval"],
1479 [enable_gallium_i915=auto])
1480 if test "x$enable_gallium_i915" = xyes; then
1481 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1482 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
1483 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1484 elif test "x$enable_gallium_i915" = xauto; then
1485 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
1486 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
1487 fi
1488
1489 dnl
1490 dnl Gallium i965 configuration
1491 dnl
1492 AC_ARG_ENABLE([gallium-i965],
1493 [AS_HELP_STRING([--enable-gallium-i965],
1494 [build gallium i965 @<:@default=disabled@:>@])],
1495 [enable_gallium_i965="$enableval"],
1496 [enable_gallium_i965=auto])
1497 if test "x$enable_gallium_i965" = xyes; then
1498 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
1499 gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1500 elif test "x$enable_gallium_i965" = xauto; then
1501 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
1502 fi
1503
1504 dnl
1505 dnl Gallium Radeon configuration
1506 dnl
1507 AC_ARG_ENABLE([gallium-radeon],
1508 [AS_HELP_STRING([--enable-gallium-radeon],
1509 [build gallium radeon @<:@default=disabled@:>@])],
1510 [enable_gallium_radeon="$enableval"],
1511 [enable_gallium_radeon=auto])
1512 if test "x$enable_gallium_radeon" = xyes; then
1513 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1514 gallium_check_st "radeon/drm" "dri-r300" "xorg-radeon"
1515 elif test "x$enable_gallium_radeon" = xauto; then
1516 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1517 fi
1518
1519 dnl
1520 dnl Gallium Radeon r600g configuration
1521 dnl
1522 AC_ARG_ENABLE([gallium-r600],
1523 [AS_HELP_STRING([--enable-gallium-r600],
1524 [build gallium radeon @<:@default=disabled@:>@])],
1525 [enable_gallium_r600="$enableval"],
1526 [enable_gallium_r600=auto])
1527 if test "x$enable_gallium_r600" = xyes; then
1528 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1529 gallium_check_st "r600/drm" "dri-r600"
1530 fi
1531
1532 dnl
1533 dnl Gallium Nouveau configuration
1534 dnl
1535 AC_ARG_ENABLE([gallium-nouveau],
1536 [AS_HELP_STRING([--enable-gallium-nouveau],
1537 [build gallium nouveau @<:@default=disabled@:>@])],
1538 [enable_gallium_nouveau="$enableval"],
1539 [enable_gallium_nouveau=no])
1540 if test "x$enable_gallium_nouveau" = xyes; then
1541 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50"
1542 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
1543 fi
1544
1545 dnl
1546 dnl Gallium swrast configuration
1547 dnl
1548 AC_ARG_ENABLE([gallium-swrast],
1549 [AS_HELP_STRING([--enable-gallium-swrast],
1550 [build gallium swrast @<:@default=auto@:>@])],
1551 [enable_gallium_swrast="$enableval"],
1552 [enable_gallium_swrast=auto])
1553 if test "x$enable_gallium_swrast" = xyes || test "x$enable_gallium_swrast" = xauto; then
1554 if test "x$HAVE_ST_DRI" = xyes; then
1555 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1556 fi
1557 fi
1558
1559 dnl prepend CORE_DIRS to SRC_DIRS
1560 SRC_DIRS="$CORE_DIRS $SRC_DIRS"
1561
1562 dnl Restore LDFLAGS and CPPFLAGS
1563 LDFLAGS="$_SAVE_LDFLAGS"
1564 CPPFLAGS="$_SAVE_CPPFLAGS"
1565
1566 dnl Substitute the config
1567 AC_CONFIG_FILES([configs/autoconf])
1568
1569 dnl Replace the configs/current symlink
1570 AC_CONFIG_COMMANDS([configs],[
1571 if test -f configs/current || test -L configs/current; then
1572 rm -f configs/current
1573 fi
1574 ln -s autoconf configs/current
1575 ])
1576
1577 AC_OUTPUT
1578
1579 dnl
1580 dnl Output some configuration info for the user
1581 dnl
1582 echo ""
1583 echo " prefix: $prefix"
1584 echo " exec_prefix: $exec_prefix"
1585 echo " libdir: $libdir"
1586 echo " includedir: $includedir"
1587
1588 dnl Driver info
1589 echo ""
1590 echo " Driver: $mesa_driver"
1591 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1592 echo " OSMesa: lib$OSMESA_LIB"
1593 else
1594 echo " OSMesa: no"
1595 fi
1596 if test "$mesa_driver" = dri; then
1597 # cleanup the drivers var
1598 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1599 if test "x$DRI_DIRS" = x; then
1600 echo " DRI drivers: no"
1601 else
1602 echo " DRI drivers: $dri_dirs"
1603 fi
1604 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1605 fi
1606 echo " Use XCB: $enable_xcb"
1607
1608 echo ""
1609 if test "x$MESA_LLVM" = x1; then
1610 echo " llvm: yes"
1611 echo " llvm-config: $LLVM_CONFIG"
1612 echo " llvm-version: $LLVM_VERSION"
1613 else
1614 echo " llvm: no"
1615 fi
1616
1617 echo ""
1618 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1619 echo " Gallium: yes"
1620 echo " Gallium dirs: $GALLIUM_DIRS"
1621 echo " Target dirs: $GALLIUM_TARGET_DIRS"
1622 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
1623 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
1624 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1625 if test "x$HAVE_ST_EGL" = xyes; then
1626 echo " EGL client APIs: $EGL_CLIENT_APIS"
1627 fi
1628 else
1629 echo " Gallium: no"
1630 fi
1631
1632 dnl Libraries
1633 echo ""
1634 echo " Shared libs: $enable_shared"
1635 echo " Static libs: $enable_static"
1636 if test "$enable_egl" = yes; then
1637 echo " EGL: $EGL_DRIVERS_DIRS"
1638 echo " EGL platforms: $EGL_PLATFORMS"
1639 else
1640 echo " EGL: no"
1641 fi
1642 echo " GLU: $enable_glu"
1643 echo " GLw: $enable_glw (Motif: $enable_motif)"
1644 echo " glut: $enable_glut"
1645
1646 dnl Compiler options
1647 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1648 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1649 $SED 's/^ *//;s/ */ /;s/ *$//'`
1650 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1651 $SED 's/^ *//;s/ */ /;s/ *$//'`
1652 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1653 echo ""
1654 echo " CFLAGS: $cflags"
1655 echo " CXXFLAGS: $cxxflags"
1656 echo " Macros: $defines"
1657
1658 echo ""
1659 echo " Run '${MAKE-make}' to build Mesa"
1660 echo ""