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