mesa: added internal post color matrix scale/bias vars
[mesa.git] / configure.ac
index fc8c346138148f09d404ac3b10809407ed37b8b3..6aac482e1a8bd962c8aa66feb57539337448c9dc 100644 (file)
@@ -1,6 +1,6 @@
 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],
 
 dnl Versioning - scrape the version from configs/default
 m4_define([mesa_version],
@@ -14,16 +14,20 @@ m4_ifval(mesa_version,[],[
 
 AC_INIT([Mesa],[mesa_version],
     [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
 
 AC_INIT([Mesa],[mesa_version],
     [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.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])
 
 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
@@ -33,15 +37,15 @@ 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)
+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], [],
 
 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_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
 
 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
@@ -54,21 +58,21 @@ 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
 linux*)
 if test "x$GCC" = xyes; then
 case "$host_os" in
 linux*)
 if test "x$GCC" = xyes; then
@@ -93,21 +97,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
@@ -117,11 +121,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
@@ -135,11 +139,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 ) ;;
@@ -148,11 +152,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 ) ;;
@@ -179,20 +183,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"
@@ -203,13 +207,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
@@ -227,11 +224,11 @@ 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 Driver configuration. Options are xlib, dri and osmesa right now.
 
 dnl
 dnl Driver configuration. Options are xlib, dri and osmesa right now.
@@ -252,11 +249,11 @@ freebsd* | dragonfly*)
     ;;
 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)
@@ -285,10 +282,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
@@ -298,12 +295,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
@@ -330,20 +327,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 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
@@ -361,13 +356,29 @@ xlib|dri)
     ;;
 esac
 
     ;;
 esac
 
+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
+
 # SELinux awareness.
 # SELinux awareness.
-AC_ARG_ENABLE(selinux, AS_HELP_STRING([--enable-selinux], [Build SELinux-aware Mesa (default: disabled)]), [MESA_SELINUX=$enableval], [MESA_SELINUX=no])
+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
 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]))
+    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
     SELINUX_LIBS="-lselinux"
     DEFINES="$DEFINES -DMESA_SELINUX"
 fi
@@ -378,7 +389,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
@@ -402,18 +413,31 @@ 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.
@@ -424,7 +448,7 @@ osmesa)
     GL_LIB_DEPS=""
     ;;
 esac
     GL_LIB_DEPS=""
     ;;
 esac
-AC_SUBST(GL_LIB_DEPS)
+AC_SUBST([GL_LIB_DEPS])
 
 dnl
 dnl More X11 setup
 
 dnl
 dnl More X11 setup
@@ -436,31 +460,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...@:>@],
         [comma delimited DRI drivers, e.g. "i965,radeon,nouveau" @<:@default=auto@:>@])],
     [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)
+    [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
@@ -483,7 +507,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
@@ -556,23 +580,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
@@ -582,11 +607,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])
@@ -596,11 +621,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
@@ -617,7 +642,7 @@ 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)
@@ -640,8 +665,8 @@ osmesa)
     fi
     ;;
 esac
     fi
     ;;
 esac
-AC_SUBST(OSMESA_LIB_DEPS)
-AC_SUBST(OSMESA_MESA_DEPS)
+AC_SUBST([OSMESA_LIB_DEPS])
+AC_SUBST([OSMESA_MESA_DEPS])
 
 dnl
 dnl GLcore configuration
 
 dnl
 dnl GLcore configuration
@@ -652,17 +677,17 @@ GLCORE_LIB_DEPS='-lm -lpthread'
 if test "$mesa_driver" = dri; then
     GLCORE_LIB_DEPS="$GLCORE_LIB_DEPS $DLOPEN_LIBS"
 fi
 if test "$mesa_driver" = dri; then
     GLCORE_LIB_DEPS="$GLCORE_LIB_DEPS $DLOPEN_LIBS"
 fi
-AC_SUBST(XORG_CFLAGS)
-AC_SUBST(GLCORE_LIB_DEPS)
+AC_SUBST([XORG_CFLAGS])
+AC_SUBST([GLCORE_LIB_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"
 
@@ -695,17 +720,17 @@ if test "x$enable_glu" = xyes; then
         ;;
     esac
 fi
         ;;
     esac
 fi
-AC_SUBST(GLU_LIB_DEPS)
-AC_SUBST(GLU_MESA_DEPS)
+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])
 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])
@@ -714,7 +739,7 @@ fi
 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...
@@ -730,8 +755,8 @@ if test "x$enable_glw" = xyes; then
         GLW_MESA_DEPS=""
     fi
 fi
         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])
 
 dnl
 dnl GLUT configuration
 
 dnl
 dnl GLUT configuration
@@ -741,11 +766,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
@@ -765,7 +790,7 @@ 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="$GLUT_LIBS"
     else
         # should check these...
@@ -787,9 +812,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
@@ -799,65 +824,89 @@ dnl
 if test "x$APP_LIB_DEPS" = x; then
     APP_LIB_DEPS="-lm"
 fi
 if test "x$APP_LIB_DEPS" = x; then
     APP_LIB_DEPS="-lm"
 fi
-AC_SUBST(APP_LIB_DEPS)
-AC_SUBST(PROGRAM_DIRS)
+AC_SUBST([APP_LIB_DEPS])
+AC_SUBST([PROGRAM_DIRS])
 
 
+dnl
 dnl Arch/platform-specific settings
 dnl Arch/platform-specific settings
-PIC_FLAGS=""
+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=""
 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"
+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
     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
+    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)
         ;;
     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
+        case "$host_os" in
+        linux* | freebsd* | dragonfly*)
+            test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
+            ;;
+        esac
         ;;
     powerpc)
         ;;
     powerpc)
-        if test "x$enable_asm" = xyes; then
-            ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
-            ASM_SOURCES='$(PPC_SOURCES)'
-        fi
+        case "$host_os" in
+        linux*)
+            asm_arch=ppc
+            ;;
+        esac
         ;;
     esac
         ;;
     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 "$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)
         ;;
     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
+        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
         ;;
     esac
-    ;;
-esac
+fi
+AC_SUBST([ASM_FLAGS])
+AC_SUBST([ASM_SOURCES])
+AC_SUBST([ASM_API])
+
+dnl PIC code macro
+MESA_PIC_FLAGS
+
 
 dnl Restore LDFLAGS and CPPFLAGS
 LDFLAGS="$_SAVE_LDFLAGS"
 
 dnl Restore LDFLAGS and CPPFLAGS
 LDFLAGS="$_SAVE_LDFLAGS"
@@ -865,13 +914,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