r300: Endianness fixes for recent vertex path changes.
[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'])])
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.3
22 DRI2PROTO_REQUIRED=1.99.3
23
24 dnl Check for progs
25 AC_PROG_CPP
26 AC_PROG_CC
27 AC_PROG_CXX
28 AC_CHECK_PROGS([MAKE], [gmake make])
29 AC_PATH_PROG([MKDEP], [makedepend])
30 AC_PATH_PROG([SED], [sed])
31
32 dnl We need a POSIX shell for parts of the build. Assume we have one
33 dnl in most cases.
34 case "$host_os" in
35 solaris*)
36 # Solaris /bin/sh is too old/non-POSIX compliant
37 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
38 SHELL="$POSIX_SHELL"
39 ;;
40 esac
41
42 MKDEP_OPTIONS=-fdepend
43 dnl Ask gcc where it's keeping its secret headers
44 if test "x$GCC" = xyes; then
45 for dir in include include-fixed; do
46 GCC_INCLUDES=`$CC -print-file-name=$dir`
47 if test "x$GCC_INCLUDES" != x && \
48 test "$GCC_INCLUDES" != "$dir" && \
49 test -d "$GCC_INCLUDES"; then
50 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
51 fi
52 done
53 fi
54 AC_SUBST([MKDEP_OPTIONS])
55
56 dnl Make sure the pkg-config macros are defined
57 m4_ifndef([PKG_PROG_PKG_CONFIG],
58 [m4_fatal([Could not locate the pkg-config autoconf macros.
59 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
60 are in a different location, try setting the environment variable
61 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
62 PKG_PROG_PKG_CONFIG()
63
64 dnl LIB_DIR - library basename
65 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
66 AC_SUBST([LIB_DIR])
67
68 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
69 _SAVE_LDFLAGS="$LDFLAGS"
70 AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
71 AC_SUBST([EXTRA_LIB_PATH])
72
73 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
74 _SAVE_CPPFLAGS="$CPPFLAGS"
75 AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
76 AC_SUBST([X11_INCLUDES])
77
78 dnl Compiler macros
79 DEFINES=""
80 AC_SUBST([DEFINES])
81 case "$host_os" in
82 linux*|*-gnu*|gnu*)
83 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
84 ;;
85 solaris*)
86 DEFINES="$DEFINES -DPTHREADS -DSVR4"
87 ;;
88 esac
89
90 dnl Add flags for gcc and g++
91 if test "x$GCC" = xyes; then
92 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99 -ffast-math"
93
94 # Work around aliasing bugs - developers should comment this out
95 CFLAGS="$CFLAGS -fno-strict-aliasing"
96 fi
97 if test "x$GXX" = xyes; then
98 CXXFLAGS="$CXXFLAGS -Wall"
99
100 # Work around aliasing bugs - developers should comment this out
101 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
102 fi
103
104 dnl These should be unnecessary, but let the user set them if they want
105 AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
106 Default is to use CFLAGS.])
107 AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
108 compiler. Default is to use CFLAGS.])
109 AC_SUBST([OPT_FLAGS])
110 AC_SUBST([ARCH_FLAGS])
111
112 dnl
113 dnl Hacks to enable 32 or 64 bit build
114 dnl
115 AC_ARG_ENABLE([32-bit],
116 [AS_HELP_STRING([--enable-32-bit],
117 [build 32-bit libraries @<:@default=auto@:>@])],
118 [enable_32bit="$enableval"],
119 [enable_32bit=auto]
120 )
121 if test "x$enable_32bit" = xyes; then
122 if test "x$GCC" = xyes; then
123 CFLAGS="$CFLAGS -m32"
124 fi
125 if test "x$GXX" = xyes; then
126 CXXFLAGS="$CXXFLAGS -m32"
127 fi
128 fi
129 AC_ARG_ENABLE([64-bit],
130 [AS_HELP_STRING([--enable-64-bit],
131 [build 64-bit libraries @<:@default=auto@:>@])],
132 [enable_64bit="$enableval"],
133 [enable_64bit=auto]
134 )
135 if test "x$enable_64bit" = xyes; then
136 if test "x$GCC" = xyes; then
137 CFLAGS="$CFLAGS -m64"
138 fi
139 if test "x$GXX" = xyes; then
140 CXXFLAGS="$CXXFLAGS -m64"
141 fi
142 fi
143
144 dnl
145 dnl shared/static libraries, mimic libtool options
146 dnl
147 AC_ARG_ENABLE([static],
148 [AS_HELP_STRING([--enable-static],
149 [build static libraries @<:@default=disabled@:>@])],
150 [enable_static="$enableval"],
151 [enable_static=no]
152 )
153 case "x$enable_static" in
154 xyes|xno ) ;;
155 x ) enable_static=no ;;
156 * )
157 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
158 ;;
159 esac
160 AC_ARG_ENABLE([shared],
161 [AS_HELP_STRING([--disable-shared],
162 [build shared libraries @<:@default=enabled@:>@])],
163 [enable_shared="$enableval"],
164 [enable_shared=yes]
165 )
166 case "x$enable_shared" in
167 xyes|xno ) ;;
168 x ) enable_shared=yes ;;
169 * )
170 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
171 ;;
172 esac
173
174 dnl Can't have static and shared libraries, default to static if user
175 dnl explicitly requested. If both disabled, set to static since shared
176 dnl was explicitly requirested.
177 case "x$enable_static$enable_shared" in
178 xyesyes )
179 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
180 enable_shared=no
181 ;;
182 xnono )
183 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
184 enable_static=yes
185 ;;
186 esac
187
188 dnl
189 dnl mklib options
190 dnl
191 AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
192 if test "$enable_static" = yes; then
193 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
194 fi
195 AC_SUBST([MKLIB_OPTIONS])
196
197 dnl
198 dnl other compiler options
199 dnl
200 AC_ARG_ENABLE([debug],
201 [AS_HELP_STRING([--enable-debug],
202 [use debug compiler flags and macros @<:@default=disabled@:>@])],
203 [enable_debug="$enableval"],
204 [enable_debug=no]
205 )
206 if test "x$enable_debug" = xyes; then
207 DEFINES="$DEFINES -DDEBUG"
208 if test "x$GCC" = xyes; then
209 CFLAGS="$CFLAGS -g"
210 fi
211 if test "x$GXX" = xyes; then
212 CXXFLAGS="$CXXFLAGS -g"
213 fi
214 fi
215
216 dnl
217 dnl library names
218 dnl
219 if test "$enable_static" = yes; then
220 LIB_EXTENSION='a'
221 else
222 case "$host_os" in
223 darwin* )
224 LIB_EXTENSION='dylib' ;;
225 * )
226 LIB_EXTENSION='so' ;;
227 esac
228 fi
229
230 GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
231 GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
232 GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
233 GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
234 OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
235
236 GL_LIB_GLOB='lib$(GL_LIB).*'${LIB_EXTENSION}'*'
237 GLU_LIB_GLOB='lib$(GLU_LIB).*'${LIB_EXTENSION}'*'
238 GLUT_LIB_GLOB='lib$(GLUT_LIB).*'${LIB_EXTENSION}'*'
239 GLW_LIB_GLOB='lib$(GLW_LIB).*'${LIB_EXTENSION}'*'
240 OSMESA_LIB_GLOB='lib$(OSMESA_LIB).*'${LIB_EXTENSION}'*'
241
242 AC_SUBST([GL_LIB_NAME])
243 AC_SUBST([GLU_LIB_NAME])
244 AC_SUBST([GLUT_LIB_NAME])
245 AC_SUBST([GLW_LIB_NAME])
246 AC_SUBST([OSMESA_LIB_NAME])
247
248 AC_SUBST([GL_LIB_GLOB])
249 AC_SUBST([GLU_LIB_GLOB])
250 AC_SUBST([GLUT_LIB_GLOB])
251 AC_SUBST([GLW_LIB_GLOB])
252 AC_SUBST([OSMESA_LIB_GLOB])
253
254 dnl
255 dnl Arch/platform-specific settings
256 dnl
257 AC_ARG_ENABLE([asm],
258 [AS_HELP_STRING([--disable-asm],
259 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
260 [enable_asm="$enableval"],
261 [enable_asm=yes]
262 )
263 asm_arch=""
264 ASM_FLAGS=""
265 MESA_ASM_SOURCES=""
266 GLAPI_ASM_SOURCES=""
267 AC_MSG_CHECKING([whether to enable assembly])
268 test "x$enable_asm" = xno && AC_MSG_RESULT([no])
269 # disable if cross compiling on x86/x86_64 since we must run gen_matypes
270 if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
271 case "$host_cpu" in
272 i?86 | x86_64)
273 enable_asm=no
274 AC_MSG_RESULT([no, cross compiling])
275 ;;
276 esac
277 fi
278 # check for supported arches
279 if test "x$enable_asm" = xyes; then
280 case "$host_cpu" in
281 i?86)
282 case "$host_os" in
283 linux* | *freebsd* | dragonfly*)
284 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
285 ;;
286 esac
287 ;;
288 x86_64)
289 case "$host_os" in
290 linux* | *freebsd* | dragonfly*)
291 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
292 ;;
293 esac
294 ;;
295 powerpc)
296 case "$host_os" in
297 linux*)
298 asm_arch=ppc
299 ;;
300 esac
301 ;;
302 sparc*)
303 case "$host_os" in
304 linux*)
305 asm_arch=sparc
306 ;;
307 esac
308 ;;
309 esac
310
311 case "$asm_arch" in
312 x86)
313 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
314 MESA_ASM_SOURCES='$(X86_SOURCES)'
315 GLAPI_ASM_SOURCES='$(X86_API)'
316 AC_MSG_RESULT([yes, x86])
317 ;;
318 x86_64)
319 ASM_FLAGS="-DUSE_X86_64_ASM"
320 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
321 GLAPI_ASM_SOURCES='$(X86-64_API)'
322 AC_MSG_RESULT([yes, x86_64])
323 ;;
324 ppc)
325 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
326 MESA_ASM_SOURCES='$(PPC_SOURCES)'
327 AC_MSG_RESULT([yes, ppc])
328 ;;
329 sparc)
330 ASM_FLAGS="-DUSE_SPARC_ASM"
331 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
332 GLAPI_ASM_SOURCES='$(SPARC_API)'
333 AC_MSG_RESULT([yes, sparc])
334 ;;
335 *)
336 AC_MSG_RESULT([no, platform not supported])
337 ;;
338 esac
339 fi
340 AC_SUBST([ASM_FLAGS])
341 AC_SUBST([MESA_ASM_SOURCES])
342 AC_SUBST([GLAPI_ASM_SOURCES])
343
344 dnl PIC code macro
345 MESA_PIC_FLAGS
346
347 dnl Check to see if dlopen is in default libraries (like Solaris, which
348 dnl has it in libc), or if libdl is needed to get it.
349 AC_CHECK_FUNC([dlopen], [],
350 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
351
352 dnl See if posix_memalign is available
353 AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
354
355 dnl SELinux awareness.
356 AC_ARG_ENABLE([selinux],
357 [AS_HELP_STRING([--enable-selinux],
358 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
359 [MESA_SELINUX="$enableval"],
360 [MESA_SELINUX=no])
361 if test "x$enable_selinux" = "xyes"; then
362 AC_CHECK_HEADER([selinux/selinux.h],[],
363 [AC_MSG_ERROR([SELinux headers not found])])
364 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
365 [AC_MSG_ERROR([SELinux library not found])])
366 SELINUX_LIBS="-lselinux"
367 DEFINES="$DEFINES -DMESA_SELINUX"
368 fi
369
370 dnl
371 dnl Driver configuration. Options are xlib, dri and osmesa right now.
372 dnl More later: directfb, fbdev, ...
373 dnl
374 default_driver="xlib"
375
376 case "$host_os" in
377 linux*)
378 case "$host_cpu" in
379 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
380 esac
381 ;;
382 *freebsd* | dragonfly*)
383 case "$host_cpu" in
384 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
385 esac
386 ;;
387 esac
388
389 AC_ARG_WITH([driver],
390 [AS_HELP_STRING([--with-driver=DRIVER],
391 [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
392 [mesa_driver="$withval"],
393 [mesa_driver="$default_driver"])
394 dnl Check for valid option
395 case "x$mesa_driver" in
396 xxlib|xdri|xosmesa)
397 ;;
398 *)
399 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
400 ;;
401 esac
402
403 dnl
404 dnl Driver specific build directories
405 dnl
406 SRC_DIRS="mesa glew"
407 GLU_DIRS="sgi"
408 WINDOW_SYSTEM=""
409 GALLIUM_DIRS="auxiliary drivers state_trackers"
410 GALLIUM_WINSYS_DIRS=""
411 GALLIUM_WINSYS_DRM_DIRS=""
412 GALLIUM_AUXILIARY_DIRS="draw translate cso_cache pipebuffer tgsi sct rtasm util indices"
413 GALLIUM_DRIVERS_DIRS="softpipe failover trace"
414 GALLIUM_STATE_TRACKERS_DIRS=""
415
416 case "$mesa_driver" in
417 xlib)
418 DRIVER_DIRS="x11"
419 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS xlib"
420 ;;
421 dri)
422 SRC_DIRS="glx/x11 $SRC_DIRS"
423 DRIVER_DIRS="dri"
424 WINDOW_SYSTEM="dri"
425 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS drm"
426 ;;
427 osmesa)
428 DRIVER_DIRS="osmesa"
429 ;;
430 esac
431 AC_SUBST([SRC_DIRS])
432 AC_SUBST([GLU_DIRS])
433 AC_SUBST([DRIVER_DIRS])
434 AC_SUBST([WINDOW_SYSTEM])
435 AC_SUBST([GALLIUM_DIRS])
436 AC_SUBST([GALLIUM_WINSYS_DIRS])
437 AC_SUBST([GALLIUM_WINSYS_DRM_DIRS])
438 AC_SUBST([GALLIUM_DRIVERS_DIRS])
439 AC_SUBST([GALLIUM_AUXILIARY_DIRS])
440 AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
441 AC_SUBST([RADEON_CFLAGS])
442 AC_SUBST([RADEON_LDFLAGS])
443
444 dnl
445 dnl User supplied program configuration
446 dnl
447 if test -d "$srcdir/progs/demos"; then
448 default_demos=yes
449 else
450 default_demos=no
451 fi
452 AC_ARG_WITH([demos],
453 [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
454 [optional comma delimited demo directories to build
455 @<:@default=auto if source available@:>@])],
456 [with_demos="$withval"],
457 [with_demos="$default_demos"])
458 if test "x$with_demos" = x; then
459 with_demos=no
460 fi
461
462 dnl If $with_demos is yes, directories will be added as libs available
463 PROGRAM_DIRS=""
464 case "$with_demos" in
465 no) ;;
466 yes)
467 # If the driver isn't osmesa, we have libGL and can build xdemos
468 if test "$mesa_driver" != osmesa; then
469 PROGRAM_DIRS="xdemos"
470 fi
471 ;;
472 *)
473 # verify the requested demos directories exist
474 demos=`IFS=,; echo $with_demos`
475 for demo in $demos; do
476 test -d "$srcdir/progs/$demo" || \
477 AC_MSG_ERROR([Program directory '$demo' doesn't exist])
478 done
479 PROGRAM_DIRS="$demos"
480 ;;
481 esac
482
483 dnl
484 dnl Find out if X is available. The variable have_x is set if libX11 is
485 dnl found to mimic AC_PATH_XTRA.
486 dnl
487 if test -n "$PKG_CONFIG"; then
488 AC_MSG_CHECKING([pkg-config files for X11 are available])
489 PKG_CHECK_EXISTS([x11],[
490 x11_pkgconfig=yes
491 have_x=yes
492 ],[
493 x11_pkgconfig=no
494 ])
495 AC_MSG_RESULT([$x11_pkgconfig])
496 else
497 x11_pkgconfig=no
498 fi
499 dnl Use the autoconf macro if no pkg-config files
500 if test "$x11_pkgconfig" = no; then
501 AC_PATH_XTRA
502 fi
503
504 dnl Try to tell the user that the --x-* options are only used when
505 dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
506 m4_divert_once([HELP_BEGIN],
507 [These options are only used when the X libraries cannot be found by the
508 pkg-config utility.])
509
510 dnl We need X for xlib and dri, so bomb now if it's not found
511 case "$mesa_driver" in
512 xlib|dri)
513 if test "$no_x" = yes; then
514 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
515 fi
516 ;;
517 esac
518
519 dnl XCB - this is only used for GLX right now
520 AC_ARG_ENABLE([xcb],
521 [AS_HELP_STRING([--enable-xcb],
522 [use XCB for GLX @<:@default=disabled@:>@])],
523 [enable_xcb="$enableval"],
524 [enable_xcb=no])
525 if test "x$enable_xcb" = xyes; then
526 DEFINES="$DEFINES -DUSE_XCB"
527 else
528 enable_xcb=no
529 fi
530
531 dnl
532 dnl libGL configuration per driver
533 dnl
534 case "$mesa_driver" in
535 xlib)
536 if test "$x11_pkgconfig" = yes; then
537 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
538 GL_PC_REQ_PRIV="x11 xext"
539 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
540 GL_LIB_DEPS="$XLIBGL_LIBS"
541 else
542 # should check these...
543 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
544 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
545 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
546 GL_PC_CFLAGS="$X11_INCLUDES"
547 fi
548 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
549 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
550
551 # if static, move the external libraries to the programs
552 # and empty the libraries for libGL
553 if test "$enable_static" = yes; then
554 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
555 GL_LIB_DEPS=""
556 fi
557 ;;
558 dri)
559 # DRI must be shared, I think
560 if test "$enable_static" = yes; then
561 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
562 fi
563
564 # Check for libdrm
565 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
566 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
567 GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
568 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
569
570 PKG_CHECK_MODULES([LIBDRM_RADEON], [libdrm_radeon], HAVE_LIBDRM_RADEON=yes, HAVE_LIBDRM_RADEON=no)
571
572 if test "$HAVE_LIBDRM_RADEON" = yes; then
573 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
574 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
575 fi
576
577 # find the DRI deps for libGL
578 if test "$x11_pkgconfig" = yes; then
579 # add xcb modules if necessary
580 dri_modules="x11 xext xxf86vm xdamage xfixes"
581 if test "$enable_xcb" = yes; then
582 dri_modules="$dri_modules x11-xcb xcb-glx"
583 fi
584
585 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
586 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
587 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
588 GL_LIB_DEPS="$DRIGL_LIBS"
589 else
590 # should check these...
591 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
592 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
593 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
594 GL_PC_CFLAGS="$X11_INCLUDES"
595
596 # XCB can only be used from pkg-config
597 if test "$enable_xcb" = yes; then
598 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
599 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
600 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
601 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
602 fi
603 fi
604
605 # need DRM libs, -lpthread, etc.
606 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
607 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
608 ;;
609 osmesa)
610 # No libGL for osmesa
611 GL_LIB_DEPS=""
612 ;;
613 esac
614 AC_SUBST([GL_LIB_DEPS])
615 AC_SUBST([GL_PC_REQ_PRIV])
616 AC_SUBST([GL_PC_LIB_PRIV])
617 AC_SUBST([GL_PC_CFLAGS])
618 AC_SUBST([DRI_PC_REQ_PRIV])
619
620 dnl
621 dnl More X11 setup
622 dnl
623 if test "$mesa_driver" = xlib; then
624 DEFINES="$DEFINES -DUSE_XSHM"
625 fi
626
627 dnl
628 dnl More DRI setup
629 dnl
630 AC_ARG_ENABLE([glx-tls],
631 [AS_HELP_STRING([--enable-glx-tls],
632 [enable TLS support in GLX @<:@default=disabled@:>@])],
633 [GLX_USE_TLS="$enableval"],
634 [GLX_USE_TLS=no])
635 dnl Directory for DRI drivers
636 AC_ARG_WITH([dri-driverdir],
637 [AS_HELP_STRING([--with-dri-driverdir=DIR],
638 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
639 [DRI_DRIVER_INSTALL_DIR="$withval"],
640 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
641 AC_SUBST([DRI_DRIVER_INSTALL_DIR])
642 dnl Direct rendering or just indirect rendering
643 AC_ARG_ENABLE([driglx-direct],
644 [AS_HELP_STRING([--disable-driglx-direct],
645 [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
646 [driglx_direct="$enableval"],
647 [driglx_direct="yes"])
648 dnl Which drivers to build - default is chosen by platform
649 AC_ARG_WITH([dri-drivers],
650 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
651 [comma delimited DRI drivers list, e.g.
652 "swrast,i965,radeon,nouveau" @<:@default=auto@:>@])],
653 [with_dri_drivers="$withval"],
654 [with_dri_drivers=yes])
655 if test "x$with_dri_drivers" = x; then
656 with_dri_drivers=no
657 fi
658
659 dnl If $with_dri_drivers is yes, directories will be added through
660 dnl platform checks
661 DRI_DIRS=""
662 case "$with_dri_drivers" in
663 no) ;;
664 yes)
665 DRI_DIRS="yes"
666 ;;
667 *)
668 # verify the requested driver directories exist
669 dri_drivers=`IFS=', '; echo $with_dri_drivers`
670 for driver in $dri_drivers; do
671 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
672 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
673 done
674 DRI_DIRS="$dri_drivers"
675 ;;
676 esac
677
678 dnl Just default to no EGL for now
679 USING_EGL=0
680 AC_SUBST([USING_EGL])
681
682 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
683 if test "$mesa_driver" = dri; then
684 # Use TLS in GLX?
685 if test "x$GLX_USE_TLS" = xyes; then
686 DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
687 fi
688
689 if test "x$USING_EGL" = x1; then
690 PROGRAM_DIRS="egl"
691 fi
692
693 # Platform specific settings and drivers to build
694 case "$host_os" in
695 linux*)
696 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
697 if test "x$driglx_direct" = xyes; then
698 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
699 fi
700 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
701
702 case "$host_cpu" in
703 x86_64)
704 # ffb, gamma, and sis are missing because they have not be
705 # converted to use the new interface. i810 are missing
706 # because there is no x86-64 system where they could *ever*
707 # be used.
708 if test "x$DRI_DIRS" = "xyes"; then
709 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 radeon \
710 savage tdfx unichrome swrast"
711 fi
712 ;;
713 powerpc*)
714 # Build only the drivers for cards that exist on PowerPC.
715 # At some point MGA will be added, but not yet.
716 if test "x$DRI_DIRS" = "xyes"; then
717 DRI_DIRS="mach64 r128 r200 r300 radeon tdfx swrast"
718 fi
719 ;;
720 sparc*)
721 # Build only the drivers for cards that exist on sparc`
722 if test "x$DRI_DIRS" = "xyes"; then
723 DRI_DIRS="mach64 r128 r200 r300 radeon ffb swrast"
724 fi
725 ;;
726 esac
727 ;;
728 freebsd* | dragonfly*)
729 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
730 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
731 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
732 if test "x$driglx_direct" = xyes; then
733 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
734 fi
735 if test "x$GXX" = xyes; then
736 CXXFLAGS="$CXXFLAGS -ansi -pedantic"
737 fi
738
739 # ffb and gamma are missing because they have not been converted
740 # to use the new interface.
741 if test "x$DRI_DIRS" = "xyes"; then
742 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
743 unichrome savage sis swrast"
744 fi
745 ;;
746 gnu*)
747 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
748 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
749 ;;
750 solaris*)
751 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
752 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
753 if test "x$driglx_direct" = xyes; then
754 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
755 fi
756 ;;
757 esac
758
759 # default drivers
760 if test "x$DRI_DIRS" = "xyes"; then
761 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \
762 savage sis tdfx trident unichrome ffb swrast"
763 fi
764
765 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
766
767 # Check for expat
768 EXPAT_INCLUDES=""
769 EXPAT_LIB=-lexpat
770 AC_ARG_WITH([expat],
771 [AS_HELP_STRING([--with-expat=DIR],
772 [expat install directory])],[
773 EXPAT_INCLUDES="-I$withval/include"
774 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
775 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
776 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
777 ])
778 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
779 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
780 [AC_MSG_ERROR([Expat required for DRI.])])
781
782 # put all the necessary libs together
783 DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
784 fi
785 AC_SUBST([DRI_DIRS])
786 AC_SUBST([EXPAT_INCLUDES])
787 AC_SUBST([DRI_LIB_DEPS])
788
789 dnl
790 dnl OSMesa configuration
791 dnl
792 if test "$mesa_driver" = xlib; then
793 default_gl_osmesa=yes
794 else
795 default_gl_osmesa=no
796 fi
797 AC_ARG_ENABLE([gl-osmesa],
798 [AS_HELP_STRING([--enable-gl-osmesa],
799 [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
800 [gl_osmesa="$enableval"],
801 [gl_osmesa="$default_gl_osmesa"])
802 if test "x$gl_osmesa" = xyes; then
803 if test "$mesa_driver" = osmesa; then
804 AC_MSG_ERROR([libGL is not available for OSMesa driver])
805 else
806 DRIVER_DIRS="$DRIVER_DIRS osmesa"
807 fi
808 fi
809
810 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
811 AC_ARG_WITH([osmesa-bits],
812 [AS_HELP_STRING([--with-osmesa-bits=BITS],
813 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
814 [osmesa_bits="$withval"],
815 [osmesa_bits=8])
816 if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
817 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
818 osmesa_bits=8
819 fi
820 case "x$osmesa_bits" in
821 x8)
822 OSMESA_LIB=OSMesa
823 ;;
824 x16|x32)
825 OSMESA_LIB="OSMesa$osmesa_bits"
826 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
827 ;;
828 *)
829 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
830 ;;
831 esac
832 AC_SUBST([OSMESA_LIB])
833
834 case "$mesa_driver" in
835 osmesa)
836 # only link libraries with osmesa if shared
837 if test "$enable_static" = no; then
838 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS"
839 else
840 OSMESA_LIB_DEPS=""
841 fi
842 OSMESA_MESA_DEPS=""
843 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS"
844 ;;
845 *)
846 # Link OSMesa to libGL otherwise
847 OSMESA_LIB_DEPS=""
848 # only link libraries with osmesa if shared
849 if test "$enable_static" = no; then
850 OSMESA_MESA_DEPS='-l$(GL_LIB)'
851 else
852 OSMESA_MESA_DEPS=""
853 fi
854 OSMESA_PC_REQ="gl"
855 ;;
856 esac
857 if test "$enable_static" = no; then
858 OSMESA_LIB_DEPS="$OSMESA_LIB_DEPS"
859 fi
860 OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV"
861 AC_SUBST([OSMESA_LIB_DEPS])
862 AC_SUBST([OSMESA_MESA_DEPS])
863 AC_SUBST([OSMESA_PC_REQ])
864 AC_SUBST([OSMESA_PC_LIB_PRIV])
865
866 dnl
867 dnl EGL configuration
868 dnl
869 AC_ARG_ENABLE([egl],
870 [AS_HELP_STRING([--disable-egl],
871 [disable EGL library @<:@default=enabled@:>@])],
872 [enable_egl="$enableval"],
873 [enable_egl=yes])
874 if test "x$enable_egl" = xyes; then
875 SRC_DIRS="$SRC_DIRS egl"
876
877 if test "$x11_pkgconfig" = yes; then
878 PKG_CHECK_MODULES([EGL], [x11])
879 EGL_LIB_DEPS="$EGL_LIBS"
880 else
881 # should check these...
882 EGL_LIB_DEPS="$X_LIBS -lX11"
883 fi
884 EGL_LIB_DEPS="$EGL_LIB_DEPS $DLOPEN_LIBS"
885 fi
886 AC_SUBST([EGL_LIB_DEPS])
887
888 dnl
889 dnl GLU configuration
890 dnl
891 AC_ARG_ENABLE([glu],
892 [AS_HELP_STRING([--disable-glu],
893 [enable OpenGL Utility library @<:@default=enabled@:>@])],
894 [enable_glu="$enableval"],
895 [enable_glu=yes])
896 if test "x$enable_glu" = xyes; then
897 SRC_DIRS="$SRC_DIRS glu"
898
899 case "$mesa_driver" in
900 osmesa)
901 # If GLU is available and we have libOSMesa (not 16 or 32),
902 # we can build the osdemos
903 if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
904 PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
905 fi
906
907 # Link libGLU to libOSMesa instead of libGL
908 GLU_LIB_DEPS=""
909 GLU_PC_REQ="osmesa"
910 if test "$enable_static" = no; then
911 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
912 else
913 GLU_MESA_DEPS=""
914 fi
915 ;;
916 *)
917 # If static, empty GLU_LIB_DEPS and add libs for programs to link
918 GLU_PC_REQ="gl"
919 GLU_PC_LIB_PRIV="-lm"
920 if test "$enable_static" = no; then
921 GLU_LIB_DEPS="-lm"
922 GLU_MESA_DEPS='-l$(GL_LIB)'
923 else
924 GLU_LIB_DEPS=""
925 GLU_MESA_DEPS=""
926 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
927 fi
928 ;;
929 esac
930 fi
931 if test "$enable_static" = no; then
932 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
933 fi
934 GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
935 AC_SUBST([GLU_LIB_DEPS])
936 AC_SUBST([GLU_MESA_DEPS])
937 AC_SUBST([GLU_PC_REQ])
938 AC_SUBST([GLU_PC_REQ_PRIV])
939 AC_SUBST([GLU_PC_LIB_PRIV])
940 AC_SUBST([GLU_PC_CFLAGS])
941
942 dnl
943 dnl GLw configuration
944 dnl
945 AC_ARG_ENABLE([glw],
946 [AS_HELP_STRING([--disable-glw],
947 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
948 [enable_glw="$enableval"],
949 [enable_glw=yes])
950 dnl Don't build GLw on osmesa
951 if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
952 AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
953 enable_glw=no
954 fi
955 AC_ARG_ENABLE([motif],
956 [AS_HELP_STRING([--enable-motif],
957 [use Motif widgets in GLw @<:@default=disabled@:>@])],
958 [enable_motif="$enableval"],
959 [enable_motif=no])
960
961 if test "x$enable_glw" = xyes; then
962 SRC_DIRS="$SRC_DIRS glw"
963 if test "$x11_pkgconfig" = yes; then
964 PKG_CHECK_MODULES([GLW],[x11 xt])
965 GLW_PC_REQ_PRIV="x11 xt"
966 GLW_LIB_DEPS="$GLW_LIBS"
967 else
968 # should check these...
969 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
970 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
971 GLW_PC_CFLAGS="$X11_INCLUDES"
972 fi
973
974 GLW_SOURCES="GLwDrawA.c"
975 MOTIF_CFLAGS=
976 if test "x$enable_motif" = xyes; then
977 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
978 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
979 if test "x$MOTIF_CONFIG" != xno; then
980 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
981 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
982 else
983 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
984 [AC_MSG_ERROR([Can't locate Motif headers])])
985 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
986 [AC_MSG_ERROR([Can't locate Motif Xm library])])
987 fi
988 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
989 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
990 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
991 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
992 fi
993
994 # If static, empty GLW_LIB_DEPS and add libs for programs to link
995 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
996 if test "$enable_static" = no; then
997 GLW_MESA_DEPS='-l$(GL_LIB)'
998 GLW_LIB_DEPS="$GLW_LIB_DEPS"
999 else
1000 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1001 GLW_LIB_DEPS=""
1002 GLW_MESA_DEPS=""
1003 fi
1004 fi
1005 AC_SUBST([GLW_LIB_DEPS])
1006 AC_SUBST([GLW_MESA_DEPS])
1007 AC_SUBST([GLW_SOURCES])
1008 AC_SUBST([MOTIF_CFLAGS])
1009 AC_SUBST([GLW_PC_REQ_PRIV])
1010 AC_SUBST([GLW_PC_LIB_PRIV])
1011 AC_SUBST([GLW_PC_CFLAGS])
1012
1013 dnl
1014 dnl GLUT configuration
1015 dnl
1016 if test -f "$srcdir/include/GL/glut.h"; then
1017 default_glut=yes
1018 else
1019 default_glut=no
1020 fi
1021 AC_ARG_ENABLE([glut],
1022 [AS_HELP_STRING([--disable-glut],
1023 [enable GLUT library @<:@default=enabled if source available@:>@])],
1024 [enable_glut="$enableval"],
1025 [enable_glut="$default_glut"])
1026
1027 dnl Can't build glut if GLU not available
1028 if test "x$enable_glu$enable_glut" = xnoyes; then
1029 AC_MSG_WARN([Disabling glut since GLU is disabled])
1030 enable_glut=no
1031 fi
1032 dnl Don't build glut on osmesa
1033 if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1034 AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1035 enable_glut=no
1036 fi
1037
1038 if test "x$enable_glut" = xyes; then
1039 SRC_DIRS="$SRC_DIRS glut/glx"
1040 GLUT_CFLAGS=""
1041 if test "x$GCC" = xyes; then
1042 GLUT_CFLAGS="-fexceptions"
1043 fi
1044 if test "$x11_pkgconfig" = yes; then
1045 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
1046 GLUT_PC_REQ_PRIV="x11 xmu xi"
1047 GLUT_LIB_DEPS="$GLUT_LIBS"
1048 else
1049 # should check these...
1050 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
1051 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1052 GLUT_PC_CFLAGS="$X11_INCLUDES"
1053 fi
1054 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1055 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
1056
1057 # If glut is available, we can build most programs
1058 if test "$with_demos" = yes; then
1059 PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
1060 fi
1061
1062 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1063 if test "$enable_static" = no; then
1064 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1065 else
1066 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1067 GLUT_LIB_DEPS=""
1068 GLUT_MESA_DEPS=""
1069 fi
1070 fi
1071 AC_SUBST([GLUT_LIB_DEPS])
1072 AC_SUBST([GLUT_MESA_DEPS])
1073 AC_SUBST([GLUT_CFLAGS])
1074 AC_SUBST([GLUT_PC_REQ_PRIV])
1075 AC_SUBST([GLUT_PC_LIB_PRIV])
1076 AC_SUBST([GLUT_PC_CFLAGS])
1077
1078 dnl
1079 dnl Program library dependencies
1080 dnl Only libm is added here if necessary as the libraries should
1081 dnl be pulled in by the linker
1082 dnl
1083 if test "x$APP_LIB_DEPS" = x; then
1084 case "$host_os" in
1085 solaris*)
1086 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1087 ;;
1088 *)
1089 APP_LIB_DEPS="-lm"
1090 ;;
1091 esac
1092 fi
1093 AC_SUBST([APP_LIB_DEPS])
1094 AC_SUBST([PROGRAM_DIRS])
1095
1096 dnl
1097 dnl Gallium configuration
1098 dnl
1099 AC_ARG_ENABLE([gallium],
1100 [AS_HELP_STRING([--disable-gallium],
1101 [build gallium @<:@default=enabled@:>@])],
1102 [enable_gallium="$enableval"],
1103 [enable_gallium=yes])
1104 if test "x$enable_gallium" = xyes; then
1105 SRC_DIRS="$SRC_DIRS gallium gallium/winsys"
1106 fi
1107
1108 dnl
1109 dnl Gallium state trackers configuration
1110 dnl
1111 AC_ARG_WITH([state-trackers],
1112 [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1113 [comma delimited state_trackers list, e.g.
1114 "egl,glx" @<:@default=auto@:>@])],
1115 [with_state_trackers="$withval"],
1116 [with_state_trackers=yes])
1117
1118 case "$with_state_trackers" in
1119 no)
1120 GALLIUM_STATE_TRACKERS_DIRS=""
1121 ;;
1122 yes)
1123 # look at what else is built
1124 case "$mesa_driver" in
1125 xlib)
1126 GALLIUM_STATE_TRACKERS_DIRS=glx
1127 ;;
1128 dri)
1129 test "x$enable_egl" = xyes && GALLIUM_STATE_TRACKERS_DIRS=egl
1130 ;;
1131 esac
1132 ;;
1133 *)
1134 # verify the requested state tracker exist
1135 state_trackers=`IFS=', '; echo $with_state_trackers`
1136 for tracker in $state_trackers; do
1137 test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1138 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1139
1140 if test "$tracker" = egl && test "x$enable_egl" != xyes; then
1141 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1142 fi
1143 done
1144 GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1145 ;;
1146 esac
1147
1148 AC_ARG_WITH([xorg-driver-dir],
1149 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1150 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1151 [XORG_DRIVER_INSTALL_DIR="$withval"],
1152 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1153 AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1154
1155 dnl
1156 dnl Gallium Intel configuration
1157 dnl
1158 AC_ARG_ENABLE([gallium-intel],
1159 [AS_HELP_STRING([--disable-gallium-intel],
1160 [build gallium intel @<:@default=enabled@:>@])],
1161 [enable_gallium_intel="$enableval"],
1162 [enable_gallium_intel=yes])
1163 if test "x$enable_gallium_intel" = xyes; then
1164 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel"
1165 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915simple"
1166 fi
1167
1168 dnl
1169 dnl Gallium Radeon configuration
1170 dnl
1171 AC_ARG_ENABLE([gallium-radeon],
1172 [AS_HELP_STRING([--enable-gallium-radeon],
1173 [build gallium radeon @<:@default=disabled@:>@])],
1174 [enable_gallium_radeon="$enableval"],
1175 [enable_gallium_radeon=no])
1176 if test "x$enable_gallium_radeon" = xyes; then
1177 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon"
1178 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1179 fi
1180
1181 dnl
1182 dnl Gallium Radeon configuration
1183 dnl
1184 AC_ARG_ENABLE([gallium-nouveau],
1185 [AS_HELP_STRING([--enable-gallium-nouveau],
1186 [build gallium nouveau @<:@default=disabled@:>@])],
1187 [enable_gallium_nouveau="$enableval"],
1188 [enable_gallium_nouveau=no])
1189 if test "x$enable_gallium_nouveau" = xyes; then
1190 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau"
1191 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nv04 nv10 nv20 nv30 nv40 nv50"
1192 fi
1193
1194
1195 dnl Restore LDFLAGS and CPPFLAGS
1196 LDFLAGS="$_SAVE_LDFLAGS"
1197 CPPFLAGS="$_SAVE_CPPFLAGS"
1198
1199 dnl Substitute the config
1200 AC_CONFIG_FILES([configs/autoconf])
1201
1202 dnl Replace the configs/current symlink
1203 AC_CONFIG_COMMANDS([configs],[
1204 if test -f configs/current || test -L configs/current; then
1205 rm -f configs/current
1206 fi
1207 ln -s autoconf configs/current
1208 ])
1209
1210 AC_OUTPUT
1211
1212 dnl
1213 dnl Output some configuration info for the user
1214 dnl
1215 echo ""
1216 echo " prefix: $prefix"
1217 echo " exec_prefix: $exec_prefix"
1218 echo " libdir: $libdir"
1219 echo " includedir: $includedir"
1220
1221 dnl Driver info
1222 echo ""
1223 echo " Driver: $mesa_driver"
1224 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1225 echo " OSMesa: lib$OSMESA_LIB"
1226 else
1227 echo " OSMesa: no"
1228 fi
1229 if test "$mesa_driver" = dri; then
1230 # cleanup the drivers var
1231 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1232 if test "x$DRI_DIRS" = x; then
1233 echo " DRI drivers: no"
1234 else
1235 echo " DRI drivers: $dri_dirs"
1236 fi
1237 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1238 fi
1239 echo " Use XCB: $enable_xcb"
1240
1241 echo ""
1242 if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1243 echo " Gallium: yes"
1244 echo " Gallium dirs: $GALLIUM_DIRS"
1245 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
1246 echo " Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS"
1247 echo " Auxiliary dirs: $GALLIUM_AUXILIARY_DIRS"
1248 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
1249 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1250 else
1251 echo " Gallium: no"
1252 fi
1253
1254 dnl Libraries
1255 echo ""
1256 echo " Shared libs: $enable_shared"
1257 echo " Static libs: $enable_static"
1258 echo " EGL: $enable_egl"
1259 echo " GLU: $enable_glu"
1260 echo " GLw: $enable_glw (Motif: $enable_motif)"
1261 echo " glut: $enable_glut"
1262
1263 dnl Programs
1264 # cleanup the programs var for display
1265 program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1266 if test "x$program_dirs" = x; then
1267 echo " Demos: no"
1268 else
1269 echo " Demos: $program_dirs"
1270 fi
1271
1272 dnl Compiler options
1273 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1274 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1275 $SED 's/^ *//;s/ */ /;s/ *$//'`
1276 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1277 $SED 's/^ *//;s/ */ /;s/ *$//'`
1278 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1279 echo ""
1280 echo " CFLAGS: $cflags"
1281 echo " CXXFLAGS: $cxxflags"
1282 echo " Macros: $defines"
1283
1284 echo ""
1285 echo " Run '${MAKE-make}' to build Mesa"
1286 echo ""