r300: add initial rs690 support to Mesa
[mesa.git] / configure.ac
1 dnl Process this file with autoconf to create configure.
2
3 AC_PREREQ(2.59)
4
5 dnl Versioning
6 dnl Make version number available to autoconf and configure
7 m4_define(mesa_major, 7)
8 m4_define(mesa_minor, 1)
9 m4_define(mesa_tiny, 0)
10 m4_define(mesa_version, [mesa_major().mesa_minor().mesa_tiny()])
11
12 AC_INIT([Mesa],[mesa_version()],
13 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
14 AC_CONFIG_AUX_DIR(bin)
15 AC_CANONICAL_HOST
16
17 dnl Substitute the version number into shell variables
18 MESA_MAJOR=mesa_major()
19 MESA_MINOR=mesa_minor()
20 MESA_TINY=mesa_tiny()
21 AC_SUBST(MESA_MAJOR)
22 AC_SUBST(MESA_MINOR)
23 AC_SUBST(MESA_TINY)
24
25 dnl Check for progs
26 AC_PROG_CPP
27 AC_PROG_CC
28 AC_PROG_CXX
29 AC_PATH_PROG(MAKE, make)
30 AC_PATH_PROG(MKDEP, makedepend)
31 AC_PATH_PROG(SED, sed)
32
33 dnl Make sure the pkg-config macros are defined
34 m4_ifdef([PKG_PROG_PKG_CONFIG],,[
35 AC_MSG_ERROR([The pkg-config autoconf macros are not defined.
36 Did you run 'make configure'?])]
37 )
38 PKG_PROG_PKG_CONFIG()
39
40 dnl LIB_DIR - library basename
41 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
42 AC_SUBST(LIB_DIR)
43
44 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
45 _SAVE_LDFLAGS="$LDFLAGS"
46 AC_ARG_VAR(EXTRA_LIB_PATH,[Extra -L paths for the linker])
47 AC_SUBST(EXTRA_LIB_PATH)
48
49 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
50 _SAVE_CPPFLAGS="$CPPFLAGS"
51 AC_ARG_VAR(X11_INCLUDES,[Extra -I paths for X11 headers])
52 AC_SUBST(X11_INCLUDES)
53
54 dnl Compiler macros
55 DEFINES=""
56 AC_SUBST(DEFINES)
57 if test "x$GCC" = xyes; then
58 DEFINES="-D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE"
59 fi
60 case "$host_os" in
61 linux*)
62 DEFINES="$DEFINES -D_SVID_SOURCE -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN"
63 ;;
64 esac
65
66 dnl Add flags for gcc and g++
67 if test "x$GCC" = xyes; then
68 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99 -ffast-math"
69
70 # Work around aliasing bugs - developers should comment this out
71 CFLAGS="$CFLAGS -fno-strict-aliasing"
72 fi
73 if test "x$GXX" = xyes; then
74 CXXFLAGS="$CXXFLAGS -Wall"
75
76 # Work around aliasing bugs - developers should comment this out
77 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
78 fi
79
80 dnl These should be unnecessary, but let the user set them if they want
81 AC_ARG_VAR(OPT_FLAGS, [Additional optimization flags for the compiler.
82 Default is to use CFLAGS.])
83 AC_ARG_VAR(ARCH_FLAGS, [Additional architecture specific flags for the
84 compiler. Default is to use CFLAGS.])
85 AC_SUBST(OPT_FLAGS)
86 AC_SUBST(ARCH_FLAGS)
87
88 dnl
89 dnl Hacks to enable 32 or 64 bit build
90 dnl
91 AC_ARG_ENABLE(32-bit,
92 [AS_HELP_STRING([--enable-32-bit],
93 [build 32-bit libraries @<:@default=auto@:>@])],
94 enable_32bit="$enableval",
95 enable_32bit=auto
96 )
97 if test "x$enable_32bit" = xyes; then
98 if test "x$GCC" = xyes; then
99 CFLAGS="$CFLAGS -m32"
100 fi
101 if test "x$GXX" = xyes; then
102 CXXFLAGS="$CXXFLAGS -m32"
103 fi
104 fi
105 AC_ARG_ENABLE(64-bit,
106 [AS_HELP_STRING([--enable-64-bit],
107 [build 64-bit libraries @<:@default=auto@:>@])],
108 enable_64bit="$enableval",
109 enable_64bit=auto
110 )
111 if test "x$enable_64bit" = xyes; then
112 if test "x$GCC" = xyes; then
113 CFLAGS="$CFLAGS -m64"
114 fi
115 if test "x$GXX" = xyes; then
116 CXXFLAGS="$CXXFLAGS -m64"
117 fi
118 fi
119
120 dnl
121 dnl shared/static libraries, mimic libtool options
122 dnl
123 AC_ARG_ENABLE(static,
124 [AS_HELP_STRING([--enable-static],
125 [build static libraries @<:@default=disabled@:>@])],
126 enable_static="$enableval",
127 enable_static=no
128 )
129 case "x$enable_static" in
130 xyes|xno ) ;;
131 x ) enable_static=no ;;
132 * )
133 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
134 ;;
135 esac
136 AC_ARG_ENABLE(shared,
137 [AS_HELP_STRING([--disable-shared],
138 [build shared libraries @<:@default=enabled@:>@])],
139 enable_shared="$enableval",
140 enable_shared=yes
141 )
142 case "x$enable_shared" in
143 xyes|xno ) ;;
144 x ) enable_shared=yes ;;
145 * )
146 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
147 ;;
148 esac
149
150 dnl Can't have static and shared libraries, default to static if user
151 dnl explicitly requested. If both disabled, set to static since shared
152 dnl was explicitly requirested.
153 case "x$enable_static$enable_shared" in
154 xyesyes )
155 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
156 enable_shared=no
157 ;;
158 xnono )
159 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
160 enable_static=yes
161 ;;
162 esac
163
164 dnl
165 dnl mklib options
166 dnl
167 AC_ARG_VAR(MKLIB_OPTIONS,[Options for the Mesa library script, mklib])
168 if test "$enable_static" = yes; then
169 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
170 fi
171 AC_SUBST(MKLIB_OPTIONS)
172
173 dnl
174 dnl other compiler options
175 dnl
176 AC_ARG_ENABLE(debug,
177 [AS_HELP_STRING([--enable-debug],
178 [use debug compiler flags and macros @<:@default=disabled@:>@])],
179 enable_debug="$enableval",
180 enable_debug=no
181 )
182 if test "x$enable_debug" = xyes; then
183 DEFINES="$DEFINES -DDEBUG"
184 if test "x$GCC" = xyes; then
185 CFLAGS="$CFLAGS -g"
186 fi
187 if test "x$GXX" = xyes; then
188 CXXFLAGS="$CXXFLAGS -g"
189 fi
190 fi
191 dnl These will be used near the end in the arch specific options
192 AC_ARG_ENABLE(asm,
193 [AS_HELP_STRING([--disable-asm],
194 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
195 enable_asm="$enableval",
196 enable_asm=yes
197 )
198
199 dnl
200 dnl library names
201 dnl
202 if test "$enable_static" = yes; then
203 GL_LIB_NAME='lib$(GL_LIB).a'
204 GLU_LIB_NAME='lib$(GLU_LIB).a'
205 GLUT_LIB_NAME='lib$(GLUT_LIB).a'
206 GLW_LIB_NAME='lib$(GLW_LIB).a'
207 OSMESA_LIB_NAME='lib$(OSMESA_LIB).a'
208 else
209 GL_LIB_NAME='lib$(GL_LIB).so'
210 GLU_LIB_NAME='lib$(GLU_LIB).so'
211 GLUT_LIB_NAME='lib$(GLUT_LIB).so'
212 GLW_LIB_NAME='lib$(GLW_LIB).so'
213 OSMESA_LIB_NAME='lib$(OSMESA_LIB).so'
214 fi
215 AC_SUBST(GL_LIB_NAME)
216 AC_SUBST(GLU_LIB_NAME)
217 AC_SUBST(GLUT_LIB_NAME)
218 AC_SUBST(GLW_LIB_NAME)
219 AC_SUBST(OSMESA_LIB_NAME)
220
221 dnl
222 dnl Driver configuration. Options are xlib, dri and osmesa right now.
223 dnl More later: directfb, fbdev, ...
224 dnl
225 AC_ARG_WITH(driver,
226 [AS_HELP_STRING([--with-driver=DRIVER],
227 [driver for Mesa: xlib,dri,osmesa @<:@default=xlib@:>@])],
228 mesa_driver="$withval",
229 mesa_driver="xlib")
230 dnl Check for valid option
231 case "x$mesa_driver" in
232 xxlib|xdri|xosmesa)
233 ;;
234 *)
235 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
236 ;;
237 esac
238
239 dnl
240 dnl Driver specific build directories
241 dnl
242 SRC_DIRS="mesa"
243 GLU_DIRS="sgi"
244 WINDOW_SYSTEM=""
245 case "$mesa_driver" in
246 xlib)
247 DRIVER_DIRS="x11"
248 ;;
249 dri)
250 SRC_DIRS="glx/x11 $SRC_DIRS"
251 DRIVER_DIRS="dri"
252 WINDOW_SYSTEM="dri"
253 ;;
254 osmesa)
255 DRIVER_DIRS="osmesa"
256 ;;
257 esac
258 AC_SUBST(SRC_DIRS)
259 AC_SUBST(GLU_DIRS)
260 AC_SUBST(DRIVER_DIRS)
261 AC_SUBST(WINDOW_SYSTEM)
262
263 dnl
264 dnl User supplied program configuration
265 dnl
266 if test -d "$srcdir/progs/demos"; then
267 default_demos=yes
268 else
269 default_demos=no
270 fi
271 AC_ARG_WITH(demos,
272 [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
273 [optional comma delimited demo directories to build
274 @<:@default=auto if source available@:>@])],
275 with_demos="$withval",
276 with_demos="$default_demos")
277 if test "x$with_demos" = x; then
278 with_demos=no
279 fi
280
281 dnl If $with_demos is yes, directories will be added as libs available
282 PROGRAM_DIRS=""
283 case "$with_demos" in
284 no|yes) ;;
285 *)
286 # verify the requested demos directories exist
287 demos=`IFS=,; echo $with_demos`
288 for demo in $demos; do
289 test -d "$srcdir/progs/$demo" || \
290 AC_MSG_ERROR([Program directory '$demo' doesn't exist])
291 done
292 PROGRAM_DIRS="$demos"
293 ;;
294 esac
295
296 dnl
297 dnl Find out if X is available. The variables have_x or no_x will be
298 dnl set and used later in the driver setups
299 dnl
300 if test -n "$PKG_CONFIG"; then
301 AC_MSG_CHECKING([pkg-config files for X11 are available])
302 if $PKG_CONFIG --exists x11; then
303 x11_pkgconfig=yes
304 have_x=yes
305 AC_MSG_RESULT(yes)
306 else
307 x11_pkgconfig=no
308 no_x=yes
309 AC_MSG_RESULT(no)
310 fi
311 else
312 x11_pkgconfig=no
313 fi
314 dnl Use the autoconf macro if no pkg-config files
315 if test "$x11_pkgconfig" = no; then
316 AC_PATH_XTRA
317 fi
318
319 dnl We need X for xlib and dri, so bomb now if it's not found
320 case "$mesa_driver" in
321 xlib|dri)
322 if test "$no_x" = yes; then
323 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
324 fi
325 ;;
326 esac
327
328 dnl
329 dnl libGL configuration per driver
330 dnl
331 case "$mesa_driver" in
332 xlib)
333 if test "$x11_pkgconfig" = yes; then
334 PKG_CHECK_MODULES(XLIBGL, x11 xext)
335 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
336 GL_LIB_DEPS="$XLIBGL_LIBS"
337 else
338 # should check these...
339 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
340 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
341 fi
342 GL_LIB_DEPS="$GL_LIB_DEPS -lm -lpthread"
343
344 # if static, move the external libraries to the programs
345 # and empty the libraries for libGL
346 if test "$enable_static" = yes; then
347 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
348 GL_LIB_DEPS=""
349 fi
350 ;;
351 dri)
352 # DRI must be shared, I think
353 if test "$enable_static" = yes; then
354 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
355 fi
356
357 # Check for libdrm
358 PKG_CHECK_MODULES(LIBDRM, libdrm)
359
360 # find the DRI deps for libGL
361 if test "$x11_pkgconfig" = yes; then
362 PKG_CHECK_MODULES(DRIGL, x11 xext xxf86vm xdamage xfixes)
363 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
364 GL_LIB_DEPS="$DRIGL_LIBS"
365 else
366 # should check these...
367 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
368 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
369 fi
370
371 # need DRM libs, -lpthread, etc.
372 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread -ldl"
373 ;;
374 osmesa)
375 # No libGL for osmesa
376 GL_LIB_DEPS=""
377 ;;
378 esac
379 AC_SUBST(GL_LIB_DEPS)
380
381 dnl
382 dnl More X11 setup
383 dnl
384 if test "$mesa_driver" = xlib; then
385 DEFINES="$DEFINES -DUSE_XSHM"
386 fi
387
388 dnl
389 dnl More DRI setup
390 dnl
391 AC_ARG_ENABLE(glx-tls,
392 [AS_HELP_STRING([--enable-glx-tls],
393 [enable TLS support in GLX @<:@default=disabled@:>@])],
394 GLX_USE_TLS="$enableval",
395 GLX_USE_TLS=no)
396 dnl Directory for DRI drivers
397 AC_ARG_WITH(dri-driverdir,
398 [AS_HELP_STRING([--with-dri-driverdir=DIR],
399 [directory for the DRI drivers @<:@/usr/X11R6/lib/modules/dri@:>@])],
400 DRI_DRIVER_INSTALL_DIR="$withval",
401 DRI_DRIVER_INSTALL_DIR='/usr/X11R6/lib/modules/dri')
402 AC_SUBST(DRI_DRIVER_INSTALL_DIR)
403 dnl Direct rendering or just indirect rendering
404 AC_ARG_ENABLE(driglx-direct,
405 [AS_HELP_STRING([--disable-driglx-direct],
406 [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
407 driglx_direct="$enableval",
408 driglx_direct="yes")
409
410 dnl Which drivers to build - default is chosen by platform
411 AC_ARG_WITH(dri-drivers,
412 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
413 [comma delimited DRI drivers, e.g. "i965,radeon,nouveau" @<:@default=auto@:>@])],
414 with_dri_drivers="$withval",
415 with_dri_drivers=yes)
416 if test "x$with_dri_drivers" = x; then
417 with_dri_drivers=no
418 fi
419
420 dnl If $with_dri_drivers is yes, directories will be added through
421 dnl platform checks
422 DRI_DIRS=""
423 case "$with_dri_drivers" in
424 no|yes) ;;
425 *)
426 # verify the requested driver directories exist
427 dri_drivers=`IFS=,; echo $with_dri_drivers`
428 for driver in $dri_drivers; do
429 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
430 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
431 done
432 DRI_DIRS="$dri_drivers"
433 ;;
434 esac
435
436 dnl Just default to no EGL for now
437 USING_EGL=0
438 AC_SUBST(USING_EGL)
439
440 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
441 if test "$mesa_driver" = dri; then
442 # Use TLS in GLX?
443 if test "x$GLX_USE_TLS" = xyes; then
444 DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
445 fi
446
447 if test "x$USING_EGL" = x1; then
448 PROGRAM_DIRS="egl"
449 fi
450
451 # default drivers
452 if test "x$DRI_DIRS" = x; then
453 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \
454 savage sis tdfx trident unichrome ffb"
455 fi
456
457 # Platform specific settings and drivers to build
458 case "$host_os" in
459 linux*)
460 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
461 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
462 if test "x$driglx_direct" = xyes; then
463 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
464 fi
465
466 case "$host_cpu" in
467 x86_64)
468 # ffb, gamma, and sis are missing because they have not be
469 # converted to use the new interface. i810 are missing
470 # because there is no x86-64 system where they could *ever*
471 # be used.
472 if test "x$DRI_DIRS" = x; then
473 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 radeon \
474 savage tdfx unichrome"
475 fi
476 ;;
477 powerpc*)
478 # Build only the drivers for cards that exist on PowerPC.
479 # At some point MGA will be added, but not yet.
480 if test "x$DRI_DIRS" = x; then
481 DRI_DIRS="mach64 r128 r200 r300 radeon tdfx"
482 fi
483 ;;
484 esac
485 ;;
486 freebsd*)
487 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
488 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
489 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
490 if test "x$driglx_direct" = xyes; then
491 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
492 fi
493 if test "x$GXX" = xyes; then
494 CXXFLAGS="$CXXFLAGS -ansi -pedantic"
495 fi
496
497 # ffb and gamma are missing because they have not been converted
498 # to use the new interface.
499 if test "x$DRI_DIRS" = x; then
500 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
501 unichrome savage sis"
502 fi
503 ;;
504 esac
505 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
506
507 # Check for expat
508 EXPAT_INCLUDES=""
509 EXPAT_LIB=-lexpat
510 AC_ARG_WITH(expat, AS_HELP_STRING([--with-expat=DIR],
511 [expat install directory]),[
512 EXPAT_INCLUDES="-I$withval/include"
513 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
514 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
515 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
516 ])
517 AC_CHECK_HEADER(expat.h,,AC_MSG_ERROR([Expat required for DRI.]))
518 AC_CHECK_LIB(expat, XML_ParserCreate,,
519 AC_MSG_ERROR([Expat required for DRI.]))
520
521 # put all the necessary libs together
522 DRI_LIB_DEPS="$LIBDRM_LIBS $EXPAT_LIB -lm -lpthread -ldl"
523 fi
524 AC_SUBST(DRI_DIRS)
525 AC_SUBST(EXPAT_INCLUDES)
526 AC_SUBST(DRI_LIB_DEPS)
527
528 dnl
529 dnl OSMesa configuration
530 dnl
531 if test "$mesa_driver" = xlib; then
532 default_gl_osmesa=yes
533 else
534 default_gl_osmesa=no
535 fi
536 AC_ARG_ENABLE(gl-osmesa,
537 [AS_HELP_STRING([--enable-gl-osmesa],
538 [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
539 gl_osmesa="$enableval",
540 gl_osmesa="$default_gl_osmesa")
541 if test "x$gl_osmesa" = xyes; then
542 if test "$mesa_driver" = osmesa; then
543 AC_MSG_ERROR([libGL is not available for OSMesa driver])
544 else
545 DRIVER_DIRS="$DRIVER_DIRS osmesa"
546 fi
547 fi
548
549 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
550 AC_ARG_WITH(osmesa-bits,
551 [AS_HELP_STRING([--with-osmesa-bits=BITS],
552 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
553 osmesa_bits="$withval",
554 osmesa_bits=8)
555 if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
556 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
557 osmesa_bits=8
558 fi
559 case "x$osmesa_bits" in
560 x8)
561 OSMESA_LIB=OSMesa
562 ;;
563 x16|x32)
564 OSMESA_LIB="OSMesa$osmesa_bits"
565 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
566 ;;
567 *)
568 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
569 ;;
570 esac
571 AC_SUBST(OSMESA_LIB)
572
573 case "$mesa_driver" in
574 osmesa)
575 # only link librararies with osmesa if shared
576 if test "$enable_static" = no; then
577 OSMESA_LIB_DEPS="-lm -lpthread"
578 else
579 OSMESA_LIB_DEPS=""
580 fi
581 OSMESA_MESA_DEPS=""
582 ;;
583 *)
584 # Link OSMesa to libGL otherwise
585 OSMESA_LIB_DEPS=""
586 # only link librararies with osmesa if shared
587 if test "$enable_static" = no; then
588 OSMESA_MESA_DEPS='-l$(GL_LIB)'
589 else
590 OSMESA_MESA_DEPS=""
591 fi
592 ;;
593 esac
594 AC_SUBST(OSMESA_LIB_DEPS)
595 AC_SUBST(OSMESA_MESA_DEPS)
596
597 dnl
598 dnl GLU configuration
599 dnl
600 AC_ARG_ENABLE(glu,
601 [AS_HELP_STRING([--disable-glu],
602 [enable OpenGL Utility library @<:@default=enabled@:>@])],
603 enable_glu="$enableval",
604 enable_glu=yes)
605 if test "x$enable_glu" = xyes; then
606 SRC_DIRS="$SRC_DIRS glu"
607
608 case "$mesa_driver" in
609 osmesa)
610 # If GLU is available and we have libOSMesa (not 16 or 32),
611 # we can build the osdemos
612 if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
613 PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
614 fi
615
616 # Link libGLU to libOSMesa instead of libGL
617 GLU_LIB_DEPS=""
618 if test "$enable_static" = no; then
619 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
620 else
621 GLU_MESA_DEPS=""
622 fi
623 ;;
624 *)
625 # If GLU is available, we can build the xdemos
626 if test "$with_demos" = yes; then
627 PROGRAM_DIRS="$PROGRAM_DIRS xdemos"
628 fi
629
630 # If static, empty GLU_LIB_DEPS and add libs for programs to link
631 if test "$enable_static" = no; then
632 GLU_LIB_DEPS="-lm"
633 GLU_MESA_DEPS='-l$(GL_LIB)'
634 else
635 GLU_LIB_DEPS=""
636 GLU_MESA_DEPS=""
637 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
638 fi
639 ;;
640 esac
641 fi
642 AC_SUBST(GLU_LIB_DEPS)
643 AC_SUBST(GLU_MESA_DEPS)
644
645 dnl
646 dnl GLw configuration
647 dnl
648 AC_ARG_ENABLE(glw,
649 [AS_HELP_STRING([--disable-glw],
650 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
651 enable_glw="$enableval",
652 enable_glw=yes)
653 dnl Don't build GLw on osmesa
654 if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
655 AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
656 enable_glw=no
657 fi
658 if test "x$enable_glw" = xyes; then
659 SRC_DIRS="$SRC_DIRS glw"
660 if test "$x11_pkgconfig" = yes; then
661 PKG_CHECK_MODULES(GLW, x11 xt)
662 GLW_LIB_DEPS="$GLW_LIBS"
663 else
664 # should check these...
665 GLW_LIB_DEPS="$X_LIBS -lX11 -lXt"
666 fi
667
668 # If static, empty GLW_LIB_DEPS and add libs for programs to link
669 if test "$enable_static" = no; then
670 GLW_MESA_DEPS='-l$(GL_LIB)'
671 else
672 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
673 GLW_LIB_DEPS=""
674 GLW_MESA_DEPS=""
675 fi
676 fi
677 AC_SUBST(GLW_LIB_DEPS)
678 AC_SUBST(GLW_MESA_DEPS)
679
680 dnl
681 dnl GLUT configuration
682 dnl
683 if test -f "$srcdir/include/GL/glut.h"; then
684 default_glut=yes
685 else
686 default_glut=no
687 fi
688 AC_ARG_ENABLE(glut,
689 [AS_HELP_STRING([--disable-glut],
690 [enable GLUT library @<:@default=enabled if source available@:>@])],
691 enable_glut="$enableval",
692 enable_glut="$default_glut")
693
694 dnl Can't build glut if GLU not available
695 if test "x$enable_glu$enable_glut" = xnoyes; then
696 AC_MSG_WARN([Disabling glut since GLU is disabled])
697 enable_glut=no
698 fi
699 dnl Don't build glut on osmesa
700 if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
701 AC_MSG_WARN([Disabling glut since the driver is OSMesa])
702 enable_glut=no
703 fi
704
705 if test "x$enable_glut" = xyes; then
706 SRC_DIRS="$SRC_DIRS glut/glx"
707 GLUT_CFLAGS=""
708 if test "x$GCC" = xyes; then
709 GLUT_CFLAGS="-fexceptions"
710 fi
711 if test "$x11_pkgconfig" = yes; then
712 PKG_CHECK_MODULES(GLUT, x11 xmu xi)
713 GLUT_LIB_DEPS="$GLUT_LIBS"
714 else
715 # should check these...
716 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
717 fi
718 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
719
720 # If glut is available, we can build most programs
721 if test "$with_demos" = yes; then
722 PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
723 fi
724
725 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
726 if test "$enable_static" = no; then
727 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
728 else
729 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
730 GLUT_LIB_DEPS=""
731 GLUT_MESA_DEPS=""
732 fi
733 fi
734 AC_SUBST(GLUT_LIB_DEPS)
735 AC_SUBST(GLUT_MESA_DEPS)
736 AC_SUBST(GLUT_CFLAGS)
737
738 dnl
739 dnl Program library dependencies
740 dnl Only libm is added here if necessary as the libraries should
741 dnl be pulled in by the linker
742 dnl
743 if test "x$APP_LIB_DEPS" = x; then
744 APP_LIB_DEPS="-lm"
745 fi
746 AC_SUBST(APP_LIB_DEPS)
747 AC_SUBST(PROGRAM_DIRS)
748
749 dnl Arch/platform-specific settings
750 PIC_FLAGS=""
751 ASM_FLAGS=""
752 ASM_SOURCES=""
753 ASM_API=""
754 AC_SUBST(PIC_FLAGS)
755 AC_SUBST(ASM_FLAGS)
756 AC_SUBST(ASM_SOURCES)
757 AC_SUBST(ASM_API)
758 case "$host_os" in
759 linux*)
760 PIC_FLAGS="-fPIC"
761 case "$host_cpu" in
762 i*86)
763 if test "x$enable_asm" = xyes; then
764 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
765 ASM_SOURCES='$(X86_SOURCES)'
766 ASM_API='$(X86_API)'
767 fi
768 ;;
769 x86_64)
770 if test "x$enable_asm" = xyes; then
771 ASM_FLAGS="-DUSE_X86_64_ASM"
772 ASM_SOURCES='$(X86-64_SOURCES)'
773 ASM_API='$(X86-64_API)'
774 fi
775 ;;
776 powerpc)
777 if test "x$enable_asm" = xyes; then
778 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
779 ASM_SOURCES='$(PPC_SOURCES)'
780 fi
781 ;;
782 esac
783 ;;
784 freebsd*)
785 PIC_FLAGS="-fPIC"
786 case "$host_os" in
787 i*86)
788 PIC_FLAGS=""
789 if test "x$enable_asm" = xyes; then
790 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
791 ASM_SOURCES='$(X86_SOURCES)'
792 ASM_API='$(X86_API)'
793 fi
794 ;;
795 x86_64)
796 if test "x$enable_asm" = xyes; then
797 ASM_FLAGS="-DUSE_X86_64_ASM"
798 ASM_SOURCES='$(X86-64_SOURCES)'
799 ASM_API='$(X86-64_API)'
800 fi
801 ;;
802 esac
803 ;;
804 esac
805
806 dnl Restore LDFLAGS and CPPFLAGS
807 LDFLAGS="$_SAVE_LDFLAGS"
808 CPPFLAGS="$_SAVE_CPPFLAGS"
809
810 dnl Substitute the config
811 AC_CONFIG_FILES([configs/autoconf])
812 AC_OUTPUT
813
814 dnl Replace the configs/current symlink
815 if test -f configs/current || test -L configs/current; then
816 rm -f configs/current
817 fi
818 ln -s autoconf configs/current
819
820 dnl
821 dnl Output some configuration info for the user
822 dnl
823 echo ""
824 echo " prefix: $prefix"
825 echo " exec_prefix: $exec_prefix"
826 echo " libdir: $libdir"
827
828 dnl Driver info
829 echo ""
830 echo " Driver: $mesa_driver"
831 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
832 echo " OSMesa: lib$OSMESA_LIB"
833 else
834 echo " OSMesa: no"
835 fi
836 if test "$mesa_driver" = dri; then
837 # cleanup the drivers var
838 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
839 echo " DRI drivers: $dri_dirs"
840 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
841 fi
842
843 dnl Libraries
844 echo ""
845 echo " Shared libs: $enable_shared"
846 echo " Static libs: $enable_static"
847 echo " GLU: $enable_glu"
848 echo " GLw: $enable_glw"
849 echo " glut: $enable_glut"
850
851 dnl Programs
852 # cleanup the programs var for display
853 program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
854 if test "x$program_dirs" = x; then
855 echo " Demos: no"
856 else
857 echo " Demos: $program_dirs"
858 fi
859
860 dnl Compiler options
861 # cleanup the CFLAGS/CXXFLAGS/DEFINES vars
862 cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
863 $SED 's/^ *//;s/ */ /;s/ *$//'`
864 cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
865 $SED 's/^ *//;s/ */ /;s/ *$//'`
866 defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
867 echo ""
868 echo " CFLAGS: $cflags"
869 echo " CXXFLAGS: $cxxflags"
870 echo " Macros: $defines"
871
872 echo ""
873 echo " Run 'make' to build Mesa"
874 echo ""