intel: Don't glBitmap fallback with scissoring enabled.
[mesa.git] / configure.ac
index 672bab85c185dca74dc52289aff471c07df5ed00..e48137f2abc4c43d3255f175600850f627207343 100644 (file)
@@ -1,23 +1,47 @@
 dnl Process this file with autoconf to create configure.
 
 dnl Process this file with autoconf to create configure.
 
-AC_PREREQ(2.59)
+AC_PREREQ([2.59])
+
+dnl Versioning - scrape the version from configs/default
+m4_define([mesa_version],
+    [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n'])])
+m4_ifval(mesa_version,[],[
+    m4_errprint([Error: Failed to get the Mesa version from the output of
+       running `make -f bin/version.mk version'
+])
+    m4_exit([1])
+])
 
 
-dnl Versioning
-dnl Make version number available to autoconf and configure
-m4_define([mesa_version],[7.1.0])
+dnl Tell the user about autoconf.html in the --help output
+m4_divert_once([HELP_END], [
+See docs/autoconf.html for more details on the options for Mesa.])
 
 
-AC_INIT([Mesa],[mesa_version()],
+AC_INIT([Mesa],[mesa_version],
     [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
     [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
-AC_CONFIG_AUX_DIR(bin)
+AC_CONFIG_AUX_DIR([bin])
 AC_CANONICAL_HOST
 
 AC_CANONICAL_HOST
 
+dnl Versions for external dependencies
+LIBDRM_REQUIRED=2.3.1
+DRI2PROTO_REQUIRED=1.99.1
+
 dnl Check for progs
 AC_PROG_CPP
 AC_PROG_CC
 AC_PROG_CXX
 dnl Check for progs
 AC_PROG_CPP
 AC_PROG_CC
 AC_PROG_CXX
-AC_CHECK_PROGS(MAKE, [gmake make])
-AC_PATH_PROG(MKDEP, makedepend)
-AC_PATH_PROG(SED, sed)
+AC_CHECK_PROGS([MAKE], [gmake make])
+AC_PATH_PROG([MKDEP], [makedepend])
+AC_PATH_PROG([SED], [sed])
+
+dnl We need a POSIX shell for parts of the build. Assume we have one
+dnl in most cases.
+case "$host_os" in
+solaris*)
+    # Solaris /bin/sh is too old/non-POSIX compliant
+    AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
+    SHELL="$POSIX_SHELL"
+    ;;
+esac
 
 MKDEP_OPTIONS=-fdepend
 dnl Ask gcc where it's keeping its secret headers
 
 MKDEP_OPTIONS=-fdepend
 dnl Ask gcc where it's keeping its secret headers
@@ -27,15 +51,10 @@ if test "x$GCC" = xyes; then
         MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
     fi
 fi
         MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
     fi
 fi
-AC_SUBST(MKDEP_OPTIONS)
-
-dnl Check to see if dlopen is in default libraries (like Solaris, which
-dnl has it in libc), or if libdl is needed to get it.
-AC_CHECK_FUNC([dlopen], [],
-       AC_CHECK_LIB([dl], [dlopen], DLOPEN_LIBS="-ldl"))
+AC_SUBST([MKDEP_OPTIONS])
 
 dnl Make sure the pkg-config macros are defined
 
 dnl Make sure the pkg-config macros are defined
-m4_ifdef([PKG_PROG_PKG_CONFIG],,[
+m4_ifdef([PKG_PROG_PKG_CONFIG],[],[
     m4_errprint([Error: Could not locate the pkg-config autoconf macros.
        These are usually located in /usr/share/aclocal/pkg.m4. If your
        macros are in a different location, try setting the environment
     m4_errprint([Error: Could not locate the pkg-config autoconf macros.
        These are usually located in /usr/share/aclocal/pkg.m4. If your
        macros are in a different location, try setting the environment
@@ -48,27 +67,30 @@ PKG_PROG_PKG_CONFIG()
 
 dnl LIB_DIR - library basename
 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
 
 dnl LIB_DIR - library basename
 LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
-AC_SUBST(LIB_DIR)
+AC_SUBST([LIB_DIR])
 
 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
 _SAVE_LDFLAGS="$LDFLAGS"
 
 dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
 _SAVE_LDFLAGS="$LDFLAGS"
-AC_ARG_VAR(EXTRA_LIB_PATH,[Extra -L paths for the linker])
-AC_SUBST(EXTRA_LIB_PATH)
+AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
+AC_SUBST([EXTRA_LIB_PATH])
 
 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
 _SAVE_CPPFLAGS="$CPPFLAGS"
 
 dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
 _SAVE_CPPFLAGS="$CPPFLAGS"
-AC_ARG_VAR(X11_INCLUDES,[Extra -I paths for X11 headers])
-AC_SUBST(X11_INCLUDES)
+AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
+AC_SUBST([X11_INCLUDES])
 
 dnl Compiler macros
 DEFINES=""
 
 dnl Compiler macros
 DEFINES=""
-AC_SUBST(DEFINES)
+AC_SUBST([DEFINES])
 case "$host_os" in
 case "$host_os" in
-linux*)
+*-gnu)
 if test "x$GCC" = xyes; then
     DEFINES="$DEFINES -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE"
 fi
 if test "x$GCC" = xyes; then
     DEFINES="$DEFINES -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE"
 fi
-    DEFINES="$DEFINES -D_SVID_SOURCE -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN"
+    DEFINES="$DEFINES -D_SVID_SOURCE -D_GNU_SOURCE -DPTHREADS"
+    ;;
+solaris*)
+    DEFINES="$DEFINES -DPTHREADS -DSVR4"
     ;;
 esac
 
     ;;
 esac
 
@@ -87,21 +109,21 @@ if test "x$GXX" = xyes; then
 fi
 
 dnl These should be unnecessary, but let the user set them if they want
 fi
 
 dnl These should be unnecessary, but let the user set them if they want
-AC_ARG_VAR(OPT_FLAGS, [Additional optimization flags for the compiler.
+AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
     Default is to use CFLAGS.])
     Default is to use CFLAGS.])
-AC_ARG_VAR(ARCH_FLAGS, [Additional architecture specific flags for the
+AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
     compiler. Default is to use CFLAGS.])
     compiler. Default is to use CFLAGS.])
-AC_SUBST(OPT_FLAGS)
-AC_SUBST(ARCH_FLAGS)
+AC_SUBST([OPT_FLAGS])
+AC_SUBST([ARCH_FLAGS])
 
 dnl
 dnl Hacks to enable 32 or 64 bit build
 dnl
 
 dnl
 dnl Hacks to enable 32 or 64 bit build
 dnl
-AC_ARG_ENABLE(32-bit,
+AC_ARG_ENABLE([32-bit],
     [AS_HELP_STRING([--enable-32-bit],
         [build 32-bit libraries @<:@default=auto@:>@])],
     [AS_HELP_STRING([--enable-32-bit],
         [build 32-bit libraries @<:@default=auto@:>@])],
-    enable_32bit="$enableval",
-    enable_32bit=auto
+    [enable_32bit="$enableval"],
+    [enable_32bit=auto]
 )
 if test "x$enable_32bit" = xyes; then
     if test "x$GCC" = xyes; then
 )
 if test "x$enable_32bit" = xyes; then
     if test "x$GCC" = xyes; then
@@ -111,11 +133,11 @@ if test "x$enable_32bit" = xyes; then
         CXXFLAGS="$CXXFLAGS -m32"
     fi
 fi
         CXXFLAGS="$CXXFLAGS -m32"
     fi
 fi
-AC_ARG_ENABLE(64-bit,
+AC_ARG_ENABLE([64-bit],
     [AS_HELP_STRING([--enable-64-bit],
         [build 64-bit libraries @<:@default=auto@:>@])],
     [AS_HELP_STRING([--enable-64-bit],
         [build 64-bit libraries @<:@default=auto@:>@])],
-    enable_64bit="$enableval",
-    enable_64bit=auto
+    [enable_64bit="$enableval"],
+    [enable_64bit=auto]
 )
 if test "x$enable_64bit" = xyes; then
     if test "x$GCC" = xyes; then
 )
 if test "x$enable_64bit" = xyes; then
     if test "x$GCC" = xyes; then
@@ -129,11 +151,11 @@ fi
 dnl
 dnl shared/static libraries, mimic libtool options
 dnl
 dnl
 dnl shared/static libraries, mimic libtool options
 dnl
-AC_ARG_ENABLE(static,
+AC_ARG_ENABLE([static],
     [AS_HELP_STRING([--enable-static],
         [build static libraries @<:@default=disabled@:>@])],
     [AS_HELP_STRING([--enable-static],
         [build static libraries @<:@default=disabled@:>@])],
-    enable_static="$enableval",
-    enable_static=no
+    [enable_static="$enableval"],
+    [enable_static=no]
 )
 case "x$enable_static" in
 xyes|xno ) ;;
 )
 case "x$enable_static" in
 xyes|xno ) ;;
@@ -142,11 +164,11 @@ x ) enable_static=no ;;
     AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
     ;;
 esac
     AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
     ;;
 esac
-AC_ARG_ENABLE(shared,
+AC_ARG_ENABLE([shared],
     [AS_HELP_STRING([--disable-shared],
         [build shared libraries @<:@default=enabled@:>@])],
     [AS_HELP_STRING([--disable-shared],
         [build shared libraries @<:@default=enabled@:>@])],
-    enable_shared="$enableval",
-    enable_shared=yes
+    [enable_shared="$enableval"],
+    [enable_shared=yes]
 )
 case "x$enable_shared" in
 xyes|xno ) ;;
 )
 case "x$enable_shared" in
 xyes|xno ) ;;
@@ -173,20 +195,20 @@ esac
 dnl
 dnl mklib options
 dnl
 dnl
 dnl mklib options
 dnl
-AC_ARG_VAR(MKLIB_OPTIONS,[Options for the Mesa library script, mklib])
+AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
 if test "$enable_static" = yes; then
     MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
 fi
 if test "$enable_static" = yes; then
     MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
 fi
-AC_SUBST(MKLIB_OPTIONS)
+AC_SUBST([MKLIB_OPTIONS])
 
 dnl
 dnl other compiler options
 dnl
 
 dnl
 dnl other compiler options
 dnl
-AC_ARG_ENABLE(debug,
+AC_ARG_ENABLE([debug],
     [AS_HELP_STRING([--enable-debug],
         [use debug compiler flags and macros @<:@default=disabled@:>@])],
     [AS_HELP_STRING([--enable-debug],
         [use debug compiler flags and macros @<:@default=disabled@:>@])],
-    enable_debug="$enableval",
-    enable_debug=no
+    [enable_debug="$enableval"],
+    [enable_debug=no]
 )
 if test "x$enable_debug" = xyes; then
     DEFINES="$DEFINES -DDEBUG"
 )
 if test "x$enable_debug" = xyes; then
     DEFINES="$DEFINES -DDEBUG"
@@ -197,13 +219,6 @@ if test "x$enable_debug" = xyes; then
         CXXFLAGS="$CXXFLAGS -g"
     fi
 fi
         CXXFLAGS="$CXXFLAGS -g"
     fi
 fi
-dnl These will be used near the end in the arch specific options
-AC_ARG_ENABLE(asm,
-    [AS_HELP_STRING([--disable-asm],
-        [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
-    enable_asm="$enableval",
-    enable_asm=yes
-)
 
 dnl
 dnl library names
 
 dnl
 dnl library names
@@ -221,11 +236,125 @@ else
     GLW_LIB_NAME='lib$(GLW_LIB).so'
     OSMESA_LIB_NAME='lib$(OSMESA_LIB).so'
 fi
     GLW_LIB_NAME='lib$(GLW_LIB).so'
     OSMESA_LIB_NAME='lib$(OSMESA_LIB).so'
 fi
-AC_SUBST(GL_LIB_NAME)
-AC_SUBST(GLU_LIB_NAME)
-AC_SUBST(GLUT_LIB_NAME)
-AC_SUBST(GLW_LIB_NAME)
-AC_SUBST(OSMESA_LIB_NAME)
+AC_SUBST([GL_LIB_NAME])
+AC_SUBST([GLU_LIB_NAME])
+AC_SUBST([GLUT_LIB_NAME])
+AC_SUBST([GLW_LIB_NAME])
+AC_SUBST([OSMESA_LIB_NAME])
+
+dnl
+dnl Arch/platform-specific settings
+dnl
+AC_ARG_ENABLE([asm],
+    [AS_HELP_STRING([--disable-asm],
+        [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
+    [enable_asm="$enableval"],
+    [enable_asm=yes]
+)
+asm_arch=""
+ASM_FLAGS=""
+ASM_SOURCES=""
+ASM_API=""
+AC_MSG_CHECKING([whether to enable assembly])
+test "x$enable_asm" = xno && AC_MSG_RESULT([no])
+# disable if cross compiling on x86/x86_64 since we must run gen_matypes
+if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
+    case "$host_cpu" in
+    i?86 | x86_64)
+        enable_asm=no
+        AC_MSG_RESULT([no, cross compiling])
+        ;;
+    esac
+fi
+# check for supported arches
+if test "x$enable_asm" = xyes; then
+    case "$host_cpu" in
+    i?86)
+        case "$host_os" in
+        linux* | *freebsd* | dragonfly*)
+            test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
+            ;;
+        esac
+        ;;
+    x86_64)
+        case "$host_os" in
+        linux* | *freebsd* | dragonfly*)
+            test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
+            ;;
+        esac
+        ;;
+    powerpc)
+        case "$host_os" in
+        linux*)
+            asm_arch=ppc
+            ;;
+        esac
+        ;;
+    esac
+
+    case "$asm_arch" in
+    x86)
+        ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
+        ASM_SOURCES='$(X86_SOURCES)'
+        ASM_API='$(X86_API)'
+        AC_MSG_RESULT([yes, x86])
+        ;;
+    x86_64)
+        ASM_FLAGS="-DUSE_X86_64_ASM"
+        ASM_SOURCES='$(X86-64_SOURCES)'
+        ASM_API='$(X86-64_API)'
+        AC_MSG_RESULT([yes, x86_64])
+        ;;
+    ppc)
+        ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
+        ASM_SOURCES='$(PPC_SOURCES)'
+        AC_MSG_RESULT([yes, ppc])
+        ;;
+    *)
+        AC_MSG_RESULT([no, platform not supported])
+        ;;
+    esac
+fi
+AC_SUBST([ASM_FLAGS])
+AC_SUBST([ASM_SOURCES])
+AC_SUBST([ASM_API])
+
+dnl PIC code macro
+MESA_PIC_FLAGS
+
+dnl Check to see if dlopen is in default libraries (like Solaris, which
+dnl has it in libc), or if libdl is needed to get it.
+AC_CHECK_FUNC([dlopen], [],
+    [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
+
+dnl See if posix_memalign is available
+AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
+
+dnl SELinux awareness.
+AC_ARG_ENABLE([selinux],
+    [AS_HELP_STRING([--enable-selinux],
+        [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
+    [MESA_SELINUX="$enableval"],
+    [MESA_SELINUX=no])
+if test "x$enable_selinux" = "xyes"; then
+    AC_CHECK_HEADER([selinux/selinux.h],[],
+                    [AC_MSG_ERROR([SELinux headers not found])])
+    AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
+                 [AC_MSG_ERROR([SELinux library not found])])
+    SELINUX_LIBS="-lselinux"
+    DEFINES="$DEFINES -DMESA_SELINUX"
+fi
+
+dnl OS-specific libraries
+OS_LIBS=""
+case "$host_os" in
+solaris*)
+    OS_LIBS="-lc"
+    if test "x$GXX" != xyes; then
+        OS_CPLUSPLUS_LIBS="-lCrun $OS_LIBS"
+    fi
+    ;;
+esac
 
 dnl
 dnl Driver configuration. Options are xlib, dri and osmesa right now.
 
 dnl
 dnl Driver configuration. Options are xlib, dri and osmesa right now.
@@ -239,18 +368,18 @@ linux*)
     i*86|x86_64|powerpc*) default_driver="dri";;
     esac
     ;;
     i*86|x86_64|powerpc*) default_driver="dri";;
     esac
     ;;
-freebsd* | dragonfly*)
+*freebsd* | dragonfly*)
     case "$host_cpu" in
     i*86|x86_64) default_driver="dri";;
     esac
     ;;
 esac
 
     case "$host_cpu" in
     i*86|x86_64) default_driver="dri";;
     esac
     ;;
 esac
 
-AC_ARG_WITH(driver,
+AC_ARG_WITH([driver],
     [AS_HELP_STRING([--with-driver=DRIVER],
         [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
     [AS_HELP_STRING([--with-driver=DRIVER],
         [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
-    mesa_driver="$withval",
-    mesa_driver="$default_driver")
+    [mesa_driver="$withval"],
+    [mesa_driver="$default_driver"])
 dnl Check for valid option
 case "x$mesa_driver" in
 xxlib|xdri|xosmesa)
 dnl Check for valid option
 case "x$mesa_driver" in
 xxlib|xdri|xosmesa)
@@ -279,10 +408,10 @@ osmesa)
     DRIVER_DIRS="osmesa"
     ;;
 esac
     DRIVER_DIRS="osmesa"
     ;;
 esac
-AC_SUBST(SRC_DIRS)
-AC_SUBST(GLU_DIRS)
-AC_SUBST(DRIVER_DIRS)
-AC_SUBST(WINDOW_SYSTEM)
+AC_SUBST([SRC_DIRS])
+AC_SUBST([GLU_DIRS])
+AC_SUBST([DRIVER_DIRS])
+AC_SUBST([WINDOW_SYSTEM])
 
 dnl
 dnl User supplied program configuration
 
 dnl
 dnl User supplied program configuration
@@ -292,12 +421,12 @@ if test -d "$srcdir/progs/demos"; then
 else
     default_demos=no
 fi
 else
     default_demos=no
 fi
-AC_ARG_WITH(demos,
+AC_ARG_WITH([demos],
     [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
         [optional comma delimited demo directories to build
         @<:@default=auto if source available@:>@])],
     [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
         [optional comma delimited demo directories to build
         @<:@default=auto if source available@:>@])],
-    with_demos="$withval",
-    with_demos="$default_demos")
+    [with_demos="$withval"],
+    [with_demos="$default_demos"])
 if test "x$with_demos" = x; then
     with_demos=no
 fi
 if test "x$with_demos" = x; then
     with_demos=no
 fi
@@ -324,20 +453,18 @@ yes)
 esac
 
 dnl
 esac
 
 dnl
-dnl Find out if X is available. The variables have_x or no_x will be
-dnl set and used later in the driver setups
+dnl Find out if X is available. The variable have_x is set if libX11 is
+dnl found to mimic AC_PATH_XTRA.
 dnl
 if test -n "$PKG_CONFIG"; then
     AC_MSG_CHECKING([pkg-config files for X11 are available])
 dnl
 if test -n "$PKG_CONFIG"; then
     AC_MSG_CHECKING([pkg-config files for X11 are available])
-    if $PKG_CONFIG --exists x11; then
+    PKG_CHECK_EXISTS([x11],[
         x11_pkgconfig=yes
         have_x=yes
         x11_pkgconfig=yes
         have_x=yes
-        AC_MSG_RESULT(yes)
-    else
+        ],[
         x11_pkgconfig=no
         x11_pkgconfig=no
-        no_x=yes
-        AC_MSG_RESULT(no)
-    fi
+    ])
+    AC_MSG_RESULT([$x11_pkgconfig])
 else
     x11_pkgconfig=no
 fi
 else
     x11_pkgconfig=no
 fi
@@ -346,6 +473,12 @@ if test "$x11_pkgconfig" = no; then
     AC_PATH_XTRA
 fi
 
     AC_PATH_XTRA
 fi
 
+dnl Try to tell the user that the --x-* options are only used when
+dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
+m4_divert_once([HELP_BEGIN],
+[These options are only used when the X libraries cannot be found by the
+pkg-config utility.])
+
 dnl We need X for xlib and dri, so bomb now if it's not found
 case "$mesa_driver" in
 xlib|dri)
 dnl We need X for xlib and dri, so bomb now if it's not found
 case "$mesa_driver" in
 xlib|dri)
@@ -355,15 +488,16 @@ xlib|dri)
     ;;
 esac
 
     ;;
 esac
 
-# SELinux awareness.
-AC_ARG_ENABLE(selinux, AS_HELP_STRING([--enable-selinux], [Build SELinux-aware Mesa (default: disabled)]), [MESA_SELINUX=$enableval], [MESA_SELINUX=no])
-if test "x$enable_selinux" = "xyes"; then
-    AC_CHECK_HEADER(selinux/selinux.h,,
-                   AC_MSG_ERROR([SELinux headers not found]))
-    AC_CHECK_LIB(selinux,is_selinux_enabled,,
-                AC_MSG_ERROR([SELinux library not found]))
-    SELINUX_LIBS="-lselinux"
-    DEFINES="$DEFINES -DMESA_SELINUX"
+dnl XCB - this is only used for GLX right now
+AC_ARG_ENABLE([xcb],
+    [AS_HELP_STRING([--enable-xcb],
+        [use XCB for GLX @<:@default=disabled@:>@])],
+    [enable_xcb="$enableval"],
+    [enable_xcb=no])
+if test "x$enable_xcb" = xyes; then
+    DEFINES="$DEFINES -DUSE_XCB"
+else
+    enable_xcb=no
 fi
 
 dnl
 fi
 
 dnl
@@ -372,7 +506,7 @@ dnl
 case "$mesa_driver" in
 xlib)
     if test "$x11_pkgconfig" = yes; then
 case "$mesa_driver" in
 xlib)
     if test "$x11_pkgconfig" = yes; then
-        PKG_CHECK_MODULES(XLIBGL, x11 xext)
+        PKG_CHECK_MODULES([XLIBGL], [x11 xext])
         X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
         GL_LIB_DEPS="$XLIBGL_LIBS"
     else
         X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
         GL_LIB_DEPS="$XLIBGL_LIBS"
     else
@@ -380,8 +514,7 @@ xlib)
         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
         GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
     fi
         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
         GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
     fi
-    GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
-    GLCORE_LIB_DEPS=""
+    GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $OS_LIBS"
 
     # if static, move the external libraries to the programs
     # and empty the libraries for libGL
 
     # if static, move the external libraries to the programs
     # and empty the libraries for libGL
@@ -397,32 +530,42 @@ dri)
     fi
 
     # Check for libdrm
     fi
 
     # Check for libdrm
-    PKG_CHECK_MODULES(LIBDRM, libdrm)
-    PKG_CHECK_MODULES(DRI2PROTO, dri2proto >= 1.1)
+    PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
+    PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
 
     # find the DRI deps for libGL
     if test "$x11_pkgconfig" = yes; then
 
     # find the DRI deps for libGL
     if test "$x11_pkgconfig" = yes; then
-        PKG_CHECK_MODULES(DRIGL, x11 xext xxf86vm xdamage xfixes)
+        # add xcb modules if necessary
+        dri_modules="x11 xext xxf86vm xdamage xfixes"
+        if test "$enable_xcb" = yes; then
+            dri_modules="$dri_modules x11-xcb xcb-glx"
+        fi
+
+        PKG_CHECK_MODULES([DRIGL], [$dri_modules])
         X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
         GL_LIB_DEPS="$DRIGL_LIBS"
     else
         # should check these...
         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
         GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
         X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
         GL_LIB_DEPS="$DRIGL_LIBS"
     else
         # should check these...
         X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
         GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
+
+        # XCB can only be used from pkg-config
+        if test "$enable_xcb" = yes; then
+            PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
+            X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
+            GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
+        fi
     fi
 
     # need DRM libs, -lpthread, etc.
     fi
 
     # need DRM libs, -lpthread, etc.
-    GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
-    GLCORE_LIB_DEPS="-lm -lpthread $DLOPEN_LIBS"
+    GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS $OS_LIBS"
     ;;
 osmesa)
     # No libGL for osmesa
     ;;
 osmesa)
     # No libGL for osmesa
-    GL_LIB_DEPS=""
-    GLCORE_LIB_DEPS=""
+    GL_LIB_DEPS="$OS_LIBS"
     ;;
 esac
     ;;
 esac
-AC_SUBST(GL_LIB_DEPS)
-AC_SUBST(GLCORE_LIB_DEPS)
+AC_SUBST([GL_LIB_DEPS])
 
 dnl
 dnl More X11 setup
 
 dnl
 dnl More X11 setup
@@ -434,31 +577,31 @@ fi
 dnl
 dnl More DRI setup
 dnl
 dnl
 dnl More DRI setup
 dnl
-AC_ARG_ENABLE(glx-tls,
+AC_ARG_ENABLE([glx-tls],
     [AS_HELP_STRING([--enable-glx-tls],
         [enable TLS support in GLX @<:@default=disabled@:>@])],
     [AS_HELP_STRING([--enable-glx-tls],
         [enable TLS support in GLX @<:@default=disabled@:>@])],
-        GLX_USE_TLS="$enableval",
-        GLX_USE_TLS=no)
+    [GLX_USE_TLS="$enableval"],
+    [GLX_USE_TLS=no])
 dnl Directory for DRI drivers
 dnl Directory for DRI drivers
-AC_ARG_WITH(dri-driverdir,
+AC_ARG_WITH([dri-driverdir],
     [AS_HELP_STRING([--with-dri-driverdir=DIR],
     [AS_HELP_STRING([--with-dri-driverdir=DIR],
-        [directory for the DRI drivers @<:@/usr/X11R6/lib/modules/dri@:>@])],
-    DRI_DRIVER_INSTALL_DIR="$withval",
-    DRI_DRIVER_INSTALL_DIR='/usr/X11R6/lib/modules/dri')
-AC_SUBST(DRI_DRIVER_INSTALL_DIR)
+        [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
+    [DRI_DRIVER_INSTALL_DIR="$withval"],
+    [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
+AC_SUBST([DRI_DRIVER_INSTALL_DIR])
 dnl Direct rendering or just indirect rendering
 dnl Direct rendering or just indirect rendering
-AC_ARG_ENABLE(driglx-direct,
+AC_ARG_ENABLE([driglx-direct],
     [AS_HELP_STRING([--disable-driglx-direct],
         [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
     [AS_HELP_STRING([--disable-driglx-direct],
         [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
-        driglx_direct="$enableval",
-        driglx_direct="yes")
-
+    [driglx_direct="$enableval"],
+    [driglx_direct="yes"])
 dnl Which drivers to build - default is chosen by platform
 dnl Which drivers to build - default is chosen by platform
-AC_ARG_WITH(dri-drivers,
+AC_ARG_WITH([dri-drivers],
     [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
     [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
-        [comma delimited DRI drivers, e.g. "i965,radeon,nouveau" @<:@default=auto@:>@])],
-    with_dri_drivers="$withval",
-    with_dri_drivers=yes)
+        [comma delimited DRI drivers list, e.g.
+        "swrast,i965,radeon,nouveau" @<:@default=auto@:>@])],
+    [with_dri_drivers="$withval"],
+    [with_dri_drivers=yes])
 if test "x$with_dri_drivers" = x; then
     with_dri_drivers=no
 fi
 if test "x$with_dri_drivers" = x; then
     with_dri_drivers=no
 fi
@@ -467,10 +610,13 @@ dnl If $with_dri_drivers is yes, directories will be added through
 dnl platform checks
 DRI_DIRS=""
 case "$with_dri_drivers" in
 dnl platform checks
 DRI_DIRS=""
 case "$with_dri_drivers" in
-no|yes) ;;
+no) ;;
+yes)
+    DRI_DIRS="yes"
+    ;;
 *)
     # verify the requested driver directories exist
 *)
     # verify the requested driver directories exist
-    dri_drivers=`IFS=,; echo $with_dri_drivers`
+    dri_drivers=`IFS=', '; echo $with_dri_drivers`
     for driver in $dri_drivers; do
         test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
             AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
     for driver in $dri_drivers; do
         test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
             AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
@@ -481,7 +627,7 @@ esac
 
 dnl Just default to no EGL for now
 USING_EGL=0
 
 dnl Just default to no EGL for now
 USING_EGL=0
-AC_SUBST(USING_EGL)
+AC_SUBST([USING_EGL])
 
 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
 if test "$mesa_driver" = dri; then
 
 dnl Set DRI_DIRS, DEFINES and LIB_DEPS
 if test "$mesa_driver" = dri; then
@@ -509,16 +655,22 @@ if test "$mesa_driver" = dri; then
             # converted to use the new interface.  i810 are missing
             # because there is no x86-64 system where they could *ever*
             # be used.
             # converted to use the new interface.  i810 are missing
             # because there is no x86-64 system where they could *ever*
             # be used.
-            if test "x$DRI_DIRS" = x; then
+            if test "x$DRI_DIRS" = "xyes"; then
                 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 radeon \
                 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 radeon \
-                    savage tdfx unichrome"
+                    savage tdfx unichrome swrast"
             fi
             ;;
         powerpc*)
             # Build only the drivers for cards that exist on PowerPC.
             # At some point MGA will be added, but not yet.
             fi
             ;;
         powerpc*)
             # Build only the drivers for cards that exist on PowerPC.
             # At some point MGA will be added, but not yet.
-            if test "x$DRI_DIRS" = x; then
-                DRI_DIRS="mach64 r128 r200 r300 radeon tdfx"
+            if test "x$DRI_DIRS" = "xyes"; then
+                DRI_DIRS="mach64 r128 r200 r300 radeon tdfx swrast"
+            fi
+            ;;
+        sparc*)
+            # Build only the drivers for cards that exist on sparc`
+            if test "x$DRI_DIRS" = "xyes"; then
+                DRI_DIRS="mach64 r128 r200 r300 radeon ffb swrast"
             fi
             ;;
         esac
             fi
             ;;
         esac
@@ -536,17 +688,24 @@ if test "$mesa_driver" = dri; then
 
         # ffb and gamma are missing because they have not been converted
         # to use the new interface.
 
         # ffb and gamma are missing because they have not been converted
         # to use the new interface.
-        if test "x$DRI_DIRS" = x; then
+        if test "x$DRI_DIRS" = "xyes"; then
             DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
             DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
-                unichrome savage sis"
+                unichrome savage sis swrast"
+        fi
+        ;;
+    solaris*)
+        DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
+        DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
+        if test "x$driglx_direct" = xyes; then
+            DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
         fi
         ;;
     esac
 
     # default drivers
         fi
         ;;
     esac
 
     # default drivers
-    if test "x$DRI_DIRS" = x; then
+    if test "x$DRI_DIRS" = "xyes"; then
         DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \
         DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \
-            savage sis tdfx trident unichrome ffb"
+            savage sis tdfx trident unichrome ffb swrast"
     fi
 
     DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/  */ /g'`
     fi
 
     DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/  */ /g'`
@@ -554,23 +713,24 @@ if test "$mesa_driver" = dri; then
     # Check for expat
     EXPAT_INCLUDES=""
     EXPAT_LIB=-lexpat
     # Check for expat
     EXPAT_INCLUDES=""
     EXPAT_LIB=-lexpat
-    AC_ARG_WITH(expat, AS_HELP_STRING([--with-expat=DIR],
-            [expat install directory]),[
+    AC_ARG_WITH([expat],
+        [AS_HELP_STRING([--with-expat=DIR],
+            [expat install directory])],[
         EXPAT_INCLUDES="-I$withval/include"
         CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
         LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
         EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
         ])
         EXPAT_INCLUDES="-I$withval/include"
         CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
         LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
         EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
         ])
-    AC_CHECK_HEADER(expat.h,,AC_MSG_ERROR([Expat required for DRI.]))
-    AC_CHECK_LIB(expat, XML_ParserCreate,,
-        AC_MSG_ERROR([Expat required for DRI.]))
+    AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
+    AC_CHECK_LIB([expat],[XML_ParserCreate],[],
+        [AC_MSG_ERROR([Expat required for DRI.])])
 
     # put all the necessary libs together
     DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
 fi
 
     # put all the necessary libs together
     DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
 fi
-AC_SUBST(DRI_DIRS)
-AC_SUBST(EXPAT_INCLUDES)
-AC_SUBST(DRI_LIB_DEPS)
+AC_SUBST([DRI_DIRS])
+AC_SUBST([EXPAT_INCLUDES])
+AC_SUBST([DRI_LIB_DEPS])
 
 dnl
 dnl OSMesa configuration
 
 dnl
 dnl OSMesa configuration
@@ -580,11 +740,11 @@ if test "$mesa_driver" = xlib; then
 else
     default_gl_osmesa=no
 fi
 else
     default_gl_osmesa=no
 fi
-AC_ARG_ENABLE(gl-osmesa,
+AC_ARG_ENABLE([gl-osmesa],
     [AS_HELP_STRING([--enable-gl-osmesa],
         [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
     [AS_HELP_STRING([--enable-gl-osmesa],
         [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
-        gl_osmesa="$enableval",
-        gl_osmesa="$default_gl_osmesa")
+    [gl_osmesa="$enableval"],
+    [gl_osmesa="$default_gl_osmesa"])
 if test "x$gl_osmesa" = xyes; then
     if test "$mesa_driver" = osmesa; then
         AC_MSG_ERROR([libGL is not available for OSMesa driver])
 if test "x$gl_osmesa" = xyes; then
     if test "$mesa_driver" = osmesa; then
         AC_MSG_ERROR([libGL is not available for OSMesa driver])
@@ -594,11 +754,11 @@ if test "x$gl_osmesa" = xyes; then
 fi
 
 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
 fi
 
 dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
-AC_ARG_WITH(osmesa-bits,
+AC_ARG_WITH([osmesa-bits],
     [AS_HELP_STRING([--with-osmesa-bits=BITS],
         [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
     [AS_HELP_STRING([--with-osmesa-bits=BITS],
         [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
-        osmesa_bits="$withval",
-        osmesa_bits=8)
+    [osmesa_bits="$withval"],
+    [osmesa_bits=8])
 if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
     AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
     osmesa_bits=8
 if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
     AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
     osmesa_bits=8
@@ -615,11 +775,11 @@ x16|x32)
     AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
     ;;
 esac
     AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
     ;;
 esac
-AC_SUBST(OSMESA_LIB)
+AC_SUBST([OSMESA_LIB])
 
 case "$mesa_driver" in
 osmesa)
 
 case "$mesa_driver" in
 osmesa)
-    # only link librararies with osmesa if shared
+    # only link libraries with osmesa if shared
     if test "$enable_static" = no; then
         OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS"
     else
     if test "$enable_static" = no; then
         OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS"
     else
@@ -630,7 +790,7 @@ osmesa)
 *)
     # Link OSMesa to libGL otherwise
     OSMESA_LIB_DEPS=""
 *)
     # Link OSMesa to libGL otherwise
     OSMESA_LIB_DEPS=""
-    # only link librararies with osmesa if shared
+    # only link libraries with osmesa if shared
     if test "$enable_static" = no; then
         OSMESA_MESA_DEPS='-l$(GL_LIB)'
     else
     if test "$enable_static" = no; then
         OSMESA_MESA_DEPS='-l$(GL_LIB)'
     else
@@ -638,17 +798,20 @@ osmesa)
     fi
     ;;
 esac
     fi
     ;;
 esac
-AC_SUBST(OSMESA_LIB_DEPS)
-AC_SUBST(OSMESA_MESA_DEPS)
+if test "$enable_static" = no; then
+    OSMESA_LIB_DEPS="$OSMESA_LIB_DEPS $OS_LIBS"
+fi
+AC_SUBST([OSMESA_LIB_DEPS])
+AC_SUBST([OSMESA_MESA_DEPS])
 
 dnl
 dnl GLU configuration
 dnl
 
 dnl
 dnl GLU configuration
 dnl
-AC_ARG_ENABLE(glu,
+AC_ARG_ENABLE([glu],
     [AS_HELP_STRING([--disable-glu],
         [enable OpenGL Utility library @<:@default=enabled@:>@])],
     [AS_HELP_STRING([--disable-glu],
         [enable OpenGL Utility library @<:@default=enabled@:>@])],
-    enable_glu="$enableval",
-    enable_glu=yes)
+    [enable_glu="$enableval"],
+    [enable_glu=yes])
 if test "x$enable_glu" = xyes; then
     SRC_DIRS="$SRC_DIRS glu"
 
 if test "x$enable_glu" = xyes; then
     SRC_DIRS="$SRC_DIRS glu"
 
@@ -681,43 +844,73 @@ if test "x$enable_glu" = xyes; then
         ;;
     esac
 fi
         ;;
     esac
 fi
-AC_SUBST(GLU_LIB_DEPS)
-AC_SUBST(GLU_MESA_DEPS)
+if test "$enable_static" = no; then
+    GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
+fi
+AC_SUBST([GLU_LIB_DEPS])
+AC_SUBST([GLU_MESA_DEPS])
 
 dnl
 dnl GLw configuration
 dnl
 
 dnl
 dnl GLw configuration
 dnl
-AC_ARG_ENABLE(glw,
+AC_ARG_ENABLE([glw],
     [AS_HELP_STRING([--disable-glw],
         [enable Xt/Motif widget library @<:@default=enabled@:>@])],
     [AS_HELP_STRING([--disable-glw],
         [enable Xt/Motif widget library @<:@default=enabled@:>@])],
-    enable_glw="$enableval",
-    enable_glw=yes)
+    [enable_glw="$enableval"],
+    [enable_glw=yes])
 dnl Don't build GLw on osmesa
 if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
     AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
     enable_glw=no
 fi
 dnl Don't build GLw on osmesa
 if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
     AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
     enable_glw=no
 fi
+AC_ARG_ENABLE([motif],
+    [AS_HELP_STRING([--enable-motif],
+        [use Motif widgets in GLw @<:@default=disabled@:>@])],
+    [enable_motif="$enableval"],
+    [enable_motif=no])
+
 if test "x$enable_glw" = xyes; then
     SRC_DIRS="$SRC_DIRS glw"
     if test "$x11_pkgconfig" = yes; then
 if test "x$enable_glw" = xyes; then
     SRC_DIRS="$SRC_DIRS glw"
     if test "$x11_pkgconfig" = yes; then
-        PKG_CHECK_MODULES(GLW, x11 xt)
+        PKG_CHECK_MODULES([GLW],[x11 xt])
         GLW_LIB_DEPS="$GLW_LIBS"
     else
         # should check these...
         GLW_LIB_DEPS="$GLW_LIBS"
     else
         # should check these...
-        GLW_LIB_DEPS="$X_LIBS -lX11 -lXt"
+        GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
+    fi
+
+    GLW_SOURCES="GLwDrawA.c"
+    MOTIF_CFLAGS=
+    if test "x$enable_motif" = xyes; then
+        GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
+        AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
+        if test "x$MOTIF_CONFIG" != xno; then
+            MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
+            MOTIF_LIBS=`$MOTIF_CONFIG --libs`
+        else
+            AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
+                [AC_MSG_ERROR([Can't locate Motif headers])])
+            AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
+                [AC_MSG_ERROR([Can't locate Motif Xm library])])
+        fi
+        # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
+        GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
     fi
 
     # If static, empty GLW_LIB_DEPS and add libs for programs to link
     if test "$enable_static" = no; then
         GLW_MESA_DEPS='-l$(GL_LIB)'
     fi
 
     # If static, empty GLW_LIB_DEPS and add libs for programs to link
     if test "$enable_static" = no; then
         GLW_MESA_DEPS='-l$(GL_LIB)'
+        GLW_LIB_DEPS="$GLW_LIB_DEPS $OS_LIBS"
     else
         APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
         GLW_LIB_DEPS=""
         GLW_MESA_DEPS=""
     fi
 fi
     else
         APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
         GLW_LIB_DEPS=""
         GLW_MESA_DEPS=""
     fi
 fi
-AC_SUBST(GLW_LIB_DEPS)
-AC_SUBST(GLW_MESA_DEPS)
+AC_SUBST([GLW_LIB_DEPS])
+AC_SUBST([GLW_MESA_DEPS])
+AC_SUBST([GLW_SOURCES])
+AC_SUBST([MOTIF_CFLAGS])
 
 dnl
 dnl GLUT configuration
 
 dnl
 dnl GLUT configuration
@@ -727,11 +920,11 @@ if test -f "$srcdir/include/GL/glut.h"; then
 else
     default_glut=no
 fi
 else
     default_glut=no
 fi
-AC_ARG_ENABLE(glut,
+AC_ARG_ENABLE([glut],
     [AS_HELP_STRING([--disable-glut],
         [enable GLUT library @<:@default=enabled if source available@:>@])],
     [AS_HELP_STRING([--disable-glut],
         [enable GLUT library @<:@default=enabled if source available@:>@])],
-    enable_glut="$enableval",
-    enable_glut="$default_glut")
+    [enable_glut="$enableval"],
+    [enable_glut="$default_glut"])
 
 dnl Can't build glut if GLU not available
 if test "x$enable_glu$enable_glut" = xnoyes; then
 
 dnl Can't build glut if GLU not available
 if test "x$enable_glu$enable_glut" = xnoyes; then
@@ -751,13 +944,13 @@ if test "x$enable_glut" = xyes; then
         GLUT_CFLAGS="-fexceptions"
     fi
     if test "$x11_pkgconfig" = yes; then
         GLUT_CFLAGS="-fexceptions"
     fi
     if test "$x11_pkgconfig" = yes; then
-        PKG_CHECK_MODULES(GLUT, x11 xmu xi)
+        PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
         GLUT_LIB_DEPS="$GLUT_LIBS"
     else
         # should check these...
         GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
     fi
         GLUT_LIB_DEPS="$GLUT_LIBS"
     else
         # should check these...
         GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
     fi
-    GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
+    GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm $OS_LIBS"
 
     # If glut is available, we can build most programs
     if test "$with_demos" = yes; then
 
     # If glut is available, we can build most programs
     if test "$with_demos" = yes; then
@@ -773,9 +966,9 @@ if test "x$enable_glut" = xyes; then
         GLUT_MESA_DEPS=""
     fi
 fi
         GLUT_MESA_DEPS=""
     fi
 fi
-AC_SUBST(GLUT_LIB_DEPS)
-AC_SUBST(GLUT_MESA_DEPS)
-AC_SUBST(GLUT_CFLAGS)
+AC_SUBST([GLUT_LIB_DEPS])
+AC_SUBST([GLUT_MESA_DEPS])
+AC_SUBST([GLUT_CFLAGS])
 
 dnl
 dnl Program library dependencies
 
 dnl
 dnl Program library dependencies
@@ -783,67 +976,18 @@ dnl    Only libm is added here if necessary as the libraries should
 dnl    be pulled in by the linker
 dnl
 if test "x$APP_LIB_DEPS" = x; then
 dnl    be pulled in by the linker
 dnl
 if test "x$APP_LIB_DEPS" = x; then
-    APP_LIB_DEPS="-lm"
-fi
-AC_SUBST(APP_LIB_DEPS)
-AC_SUBST(PROGRAM_DIRS)
-
-dnl Arch/platform-specific settings
-PIC_FLAGS=""
-ASM_FLAGS=""
-ASM_SOURCES=""
-ASM_API=""
-AC_SUBST(PIC_FLAGS)
-AC_SUBST(ASM_FLAGS)
-AC_SUBST(ASM_SOURCES)
-AC_SUBST(ASM_API)
-case "$host_os" in
-linux*)
-    PIC_FLAGS="-fPIC"
-    case "$host_cpu" in
-    i*86)
-        if test "x$enable_asm" = xyes; then
-            ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
-            ASM_SOURCES='$(X86_SOURCES)'
-            ASM_API='$(X86_API)'
-        fi
-        ;;
-    x86_64)
-        if test "x$enable_asm" = xyes; then
-            ASM_FLAGS="-DUSE_X86_64_ASM"
-            ASM_SOURCES='$(X86-64_SOURCES)'
-            ASM_API='$(X86-64_API)'
-        fi
-        ;;
-    powerpc)
-        if test "x$enable_asm" = xyes; then
-            ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
-            ASM_SOURCES='$(PPC_SOURCES)'
-        fi
-        ;;
-    esac
-    ;;
-freebsd* | dragonfly*)
-    PIC_FLAGS="-fPIC"
-    case "$host_cpu" in
-    i*86)
-        PIC_FLAGS=""
-        if test "x$enable_asm" = xyes; then
-            ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
-            ASM_SOURCES='$(X86_SOURCES)'
-            ASM_API='$(X86_API)'
-        fi
+    case "$host_os" in
+    solaris*)
+        APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
         ;;
         ;;
-    x86_64)
-        if test "x$enable_asm" = xyes; then
-            ASM_FLAGS="-DUSE_X86_64_ASM"
-            ASM_SOURCES='$(X86-64_SOURCES)'
-            ASM_API='$(X86-64_API)'
-        fi
+    *)
+        APP_LIB_DEPS="-lm"
         ;;
     esac
         ;;
     esac
-    ;;
-esac
+fi
+AC_SUBST([APP_LIB_DEPS])
+AC_SUBST([PROGRAM_DIRS])
+
 
 dnl Restore LDFLAGS and CPPFLAGS
 LDFLAGS="$_SAVE_LDFLAGS"
 
 dnl Restore LDFLAGS and CPPFLAGS
 LDFLAGS="$_SAVE_LDFLAGS"
@@ -851,13 +995,16 @@ CPPFLAGS="$_SAVE_CPPFLAGS"
 
 dnl Substitute the config
 AC_CONFIG_FILES([configs/autoconf])
 
 dnl Substitute the config
 AC_CONFIG_FILES([configs/autoconf])
-AC_OUTPUT
 
 dnl Replace the configs/current symlink
 
 dnl Replace the configs/current symlink
+AC_CONFIG_COMMANDS([configs],[
 if test -f configs/current || test -L configs/current; then
     rm -f configs/current
 fi
 ln -s autoconf configs/current
 if test -f configs/current || test -L configs/current; then
     rm -f configs/current
 fi
 ln -s autoconf configs/current
+])
+
+AC_OUTPUT
 
 dnl
 dnl Output some configuration info for the user
 
 dnl
 dnl Output some configuration info for the user
@@ -866,6 +1013,7 @@ echo ""
 echo "        prefix:          $prefix"
 echo "        exec_prefix:     $exec_prefix"
 echo "        libdir:          $libdir"
 echo "        prefix:          $prefix"
 echo "        exec_prefix:     $exec_prefix"
 echo "        libdir:          $libdir"
+echo "        includedir:      $includedir"
 
 dnl Driver info
 echo ""
 
 dnl Driver info
 echo ""
@@ -878,7 +1026,11 @@ fi
 if test "$mesa_driver" = dri; then
     # cleanup the drivers var
     dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
 if test "$mesa_driver" = dri; then
     # cleanup the drivers var
     dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/  */ /;s/ *$//'`
+if test "x$DRI_DIRS" = x; then
+    echo "        DRI drivers:     no"
+else
     echo "        DRI drivers:     $dri_dirs"
     echo "        DRI drivers:     $dri_dirs"
+fi
     echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
 fi
 
     echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
 fi
 
@@ -887,7 +1039,7 @@ echo ""
 echo "        Shared libs:     $enable_shared"
 echo "        Static libs:     $enable_static"
 echo "        GLU:             $enable_glu"
 echo "        Shared libs:     $enable_shared"
 echo "        Static libs:     $enable_static"
 echo "        GLU:             $enable_glu"
-echo "        GLw:             $enable_glw"
+echo "        GLw:             $enable_glw (Motif: $enable_motif)"
 echo "        glut:            $enable_glut"
 
 dnl Programs
 echo "        glut:            $enable_glut"
 
 dnl Programs