On Wed, 2008-05-07 at 14:10 -0700, Dan Nicholson wrote:
> Added the autoconf driver option --with-driver=glcore for building
> libGLcore for xorg-server. When building glcore through autoconf, it
> will check that xorg-server is new enough (1.5.99.1 corresponds to
> current master). It will then check if XF86DRI is defined and enable
> the DRI functionality in GLcore accordingly.
> 
> Changes have also been made so plain `make' and `make install' work
> when --with-driver=glcore is used. This does require the overloaded
> --with-dri-driverdir setting to specify the installation directory.

This is certainly nicer than that mystery build target we have today,
but couldn't this get built along with my dri driver build?

> ---
> Dan
> 
>  I'm not attached to the name glcore at all. Do people prefer that it
>  be called xorg or something? Also, if George's drixorg goes in, I'll
>  happily fix things up to work with that.
> 
>  configure.ac      |  102 +++++++++++++++++++++++++++++++++++++++++-----------
>  src/mesa/Makefile |   11 ++++++
>  2 files changed, 91 insertions(+), 22 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index cccf7bd..ad7bc8b 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -20,6 +20,7 @@ AC_CANONICAL_HOST
>  dnl Versions for external dependencies
>  LIBDRM_REQUIRED=2.3.1
>  DRI2PROTO_REQUIRED=1.1
> +XORG_REQUIRED=1.5.99.1
>  
>  dnl Check for progs
>  AC_PROG_CPP
> @@ -251,12 +252,13 @@ esac
>  
>  AC_ARG_WITH([driver],
>      [AS_HELP_STRING([--with-driver=DRIVER],
> -        [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or 
> xlib@:>@])],
> +        [driver for Mesa: xlib,dri,osmesa,glcore
> +        @<:@default=dri when available, or xlib@:>@])],
>      [mesa_driver="$withval"],
>      [mesa_driver="$default_driver"])
>  dnl Check for valid option
>  case "x$mesa_driver" in
> -xxlib|xdri|xosmesa)
> +xxlib|xdri|xosmesa|xglcore)
>      ;;
>  *)
>      AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
> @@ -281,6 +283,9 @@ dri)
>  osmesa)
>      DRIVER_DIRS="osmesa"
>      ;;
> +glcore)
> +    DRIVER_DIRS="glcore"
> +    ;;
>  esac
>  AC_SUBST([SRC_DIRS])
>  AC_SUBST([GLU_DIRS])
> @@ -310,10 +315,14 @@ PROGRAM_DIRS=""
>  case "$with_demos" in
>  no) ;;
>  yes)
> -    # If the driver isn't osmesa, we have libGL and can build xdemos
> -    if test "$mesa_driver" != osmesa; then
> +    # If the driver isn't osmesa or glcore, we have libGL and can build 
> xdemos
> +    case "$mesa_driver" in
> +    osmesa|glcore)
> +        ;;
> +    *)
>          PROGRAM_DIRS="xdemos"
> -    fi
> +        ;;
> +    esac
>      ;;
>  *)
>      # verify the requested demos directories exist
> @@ -418,8 +427,8 @@ dri)
>      # need DRM libs, -lpthread, etc.
>      GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
>      ;;
> -osmesa)
> -    # No libGL for osmesa
> +osmesa|glcore)
> +    # No libGL for osmesa or glcore
>      GL_LIB_DEPS=""
>      ;;
>  esac
> @@ -443,7 +452,8 @@ AC_ARG_ENABLE([glx-tls],
>  dnl Directory for DRI drivers
>  AC_ARG_WITH([dri-driverdir],
>      [AS_HELP_STRING([--with-dri-driverdir=DIR],
> -        [directory for the DRI drivers @<:@/usr/X11R6/lib/modules/dri@:>@])],
> +        [directory for the DRI and GLcore 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])
> @@ -588,11 +598,14 @@ AC_ARG_ENABLE([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])
> -    else
> +    case "$mesa_driver" in
> +    osmesa|glcore)
> +        AC_MSG_ERROR([libGL is not available for $mesa_driver driver])
> +        ;;
> +    *)
>          DRIVER_DIRS="$DRIVER_DIRS osmesa"
> -    fi
> +        ;;
> +    esac
>  fi
>  
>  dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
> @@ -646,12 +659,48 @@ AC_SUBST([OSMESA_MESA_DEPS])
>  dnl
>  dnl GLcore configuration
>  dnl
> -# delay pkg-config checks until `make glcore' run
> -XORG_CFLAGS='`pkg-config --cflags xorg-server`'
> -GLCORE_LIB_DEPS='-lm -lpthread'
> -if test "$mesa_driver" = dri; then
> -    GLCORE_LIB_DEPS="$GLCORE_LIB_DEPS $DLOPEN_LIBS"
> -fi
> +case "$mesa_driver" in
> +glcore)
> +    # GLcore must be shared
> +    if test "$enable_static" = yes; then
> +        AC_MSG_ERROR([Can't use static libraries for glcore])
> +    fi
> +    PKG_CHECK_MODULES([XORG], [xorg-server >= $XORG_REQUIRED])
> +    GLCORE_LIB_DEPS="-lm -lpthread"
> +
> +    # see if xorg-server.h defines XF86DRI
> +    save_cppflags="$CPPFLAGS"
> +    CPPFLAGS="$XORG_CFLAGS"
> +    AC_CHECK_HEADER([xorg-server.h],
> +        [AC_MSG_CHECKING([whether the XF86DRI extension is supported])
> +        AC_PREPROC_IFELSE([#include <xorg-server.h>
> +#ifndef XF86DRI
> +# error "No DRI extension in xserver"
> +#endif],
> +            [xserver_dri=yes],
> +            [xserver_dri=no])
> +        AC_MSG_RESULT([$xserver_dri])],
> +        [AC_MSG_ERROR([Can't build glcore without xorg-server.h])])
> +    CPPFLAGS="$save_cppflags"
> +
> +    if test "$xserver_dri" = yes; then
> +        # Hack so that DRI sources are built into GLcore
> +        WINDOW_SYSTEM=dri
> +        DEFINES="$DEFINES -DIN_DRI_DRIVER"
> +        PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
> +        GLCORE_LIB_DEPS="$GLCORE_LIB_DEPS $DLOPEN_LIBS"
> +    fi
> +    ;;
> +*)
> +    # Allow `make glcore' to be run from a prebuilt tree. Delay
> +    # pkg-config checks until `make glcore' run.
> +    XORG_CFLAGS='`pkg-config --cflags xorg-server`'
> +    GLCORE_LIB_DEPS="-lm -lpthread"
> +    if test "$mesa_driver" = dri; then
> +        GLCORE_LIB_DEPS="$GLCORE_LIB_DEPS $DLOPEN_LIBS"
> +    fi
> +    ;;
> +esac
>  AC_SUBST([XORG_CFLAGS])
>  AC_SUBST([GLCORE_LIB_DEPS])
>  
> @@ -663,6 +712,11 @@ AC_ARG_ENABLE([glu],
>          [enable OpenGL Utility library @<:@default=enabled@:>@])],
>      [enable_glu="$enableval"],
>      [enable_glu=yes])
> +dnl Don't build glu on glcore
> +if test "x$enable_glu" = xyes && test "$mesa_driver" = glcore; then
> +    AC_MSG_WARN([Disabling GLU since the driver is glcore])
> +    enable_glu=no
> +fi
>  if test "x$enable_glu" = xyes; then
>      SRC_DIRS="$SRC_DIRS glu"
>  
> @@ -706,10 +760,14 @@ AC_ARG_ENABLE([glw],
>          [enable Xt/Motif widget library @<:@default=enabled@:>@])],
>      [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
> +dnl Don't build GLw on osmesa or glcore
> +if test "x$enable_glw" = xyes; then
> +    case "$mesa_driver" in
> +    osmesa|glcore)
> +        AC_MSG_WARN([Disabling GLw since the driver is $mesa_driver])
> +        enable_glw=no
> +        ;;
> +    esac
>  fi
>  if test "x$enable_glw" = xyes; then
>      SRC_DIRS="$SRC_DIRS glw"
> diff --git a/src/mesa/Makefile b/src/mesa/Makefile
> index 08d7235..8da3b79 100644
> --- a/src/mesa/Makefile
> +++ b/src/mesa/Makefile
> @@ -33,6 +33,7 @@ default: depend
>           beos)     $(MAKE) beos || exit 1 ;; \
>           directfb) $(MAKE) directfb || exit 1 ;; \
>           fbdev)    $(MAKE) fbdev || exit 1 ;; \
> +         glcore)   $(MAKE) glcore || exit 1 ;; \
>           *) echo "$$driver is invalid in DRIVER_DIRS" >&2; exit 1;; \
>         esac ; \
>       done
> @@ -45,6 +46,7 @@ install: default
>                   else \
>                     $(MAKE) install-osmesa || exit 1 ; \
>                   fi ;; \
> +         glcore) $(MAKE) install-glcore || exit 1 ;; \
>           dri)    $(MAKE) install-libgl install-dri || exit 1 ;; \
>           *)      $(MAKE) install-libgl || exit 1 ;; \
>         esac ; \
> @@ -72,6 +74,12 @@ linux-solo: depend subdirs libmesa.a
>       cd drivers/dri && $(MAKE)
>  
> 
> +######################################################################
> +# Xorg GLcore module
> +glcore: depend subdirs libmesa.a
> +     cd drivers/xorg && $(MAKE)
> +
> +
>  #####################################################################
>  # Stand-alone Mesa libGL, no built-in drivers (DirectFB)
>  
> @@ -193,6 +201,9 @@ install-osmesa: default
>  install-dri:
>       cd drivers/dri && $(MAKE) install
>  
> +install-glcore:
> +     cd drivers/xorg && $(MAKE) install
> +
>  ## NOT INSTALLED YET:
>  ## $(INSTALL) -d $(DESTDIR)$(INSTALL_DIR)/include/GLES
>  ## $(INSTALL) -m 644 include/GLES/*.h $(DESTDIR)$(INSTALL_DIR)/include/GLES
> -- 
> 1.5.3.2
> 
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
> Don't miss this year's exciting event. There's still time to save $100. 
> Use priority code J8TL2D2. 
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> _______________________________________________
> Mesa3d-dev mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
-- 
Eric Anholt                             [EMAIL PROTECTED]
[EMAIL PROTECTED]                         [EMAIL PROTECTED]

Attachment: signature.asc
Description: This is a digitally signed message part

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to