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