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