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