From 544ab209e75ec3646d7edbafd736dcf4c93738cc Mon Sep 17 00:00:00 2001
From: Dan Nicholson
Date: Sun, 30 Dec 2007 08:41:53 -0800
Subject: [PATCH] Allow osmesa to be enabled or disabled
The conditional in src/mesa/Makefile currently hardcodes the cases where
libOSMesa can be built on libGL. Likewise, the xlib case always includes
libOSMesa in the stand-alone target.
This changes the conditional to a loop over the DRIVER_DIRS variable.
This means that any driver configuration can enable or disable osmesa.
The current "stand-alone" rule is changed so that DRIVER_DIRS=x11 and
DRIVER_DIRS="x11 osmesa" are both respected.
The configure option is changed to --enable-gl-osmesa as this change
allows libOSMesa to be built upon any of the libGL-enabling drivers.
---
configure.ac | 40 ++++++++++++++++++----------------------
docs/autoconf.html | 16 ++++++----------
src/mesa/Makefile | 34 +++++++++++++++++-----------------
3 files changed, 41 insertions(+), 49 deletions(-)
diff --git a/configure.ac b/configure.ac
index 2acbd67e510..1a2a2cb46a9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -523,20 +523,20 @@ dnl
dnl OSMesa configuration
dnl
if test "$mesa_driver" = xlib; then
- default_xlib_osmesa=yes
+ default_gl_osmesa=yes
else
- default_xlib_osmesa=no
+ default_gl_osmesa=no
fi
-AC_ARG_ENABLE(xlib-osmesa,
- [AS_HELP_STRING([--disable-xlib-osmesa],
- [enable OSMesa on Xlib libGL @<:@default=enabled for xlib driver@:>@])],
- xlib_osmesa="$enableval",
- xlib_osmesa="$default_xlib_osmesa")
-if test "x$xlib_osmesa" = xyes; then
- if test "$mesa_driver" = xlib; then
- DRIVER_DIRS="$DRIVER_DIRS osmesa"
+AC_ARG_ENABLE(gl-osmesa,
+ [AS_HELP_STRING([--enable-gl-osmesa],
+ [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
+ 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
- AC_MSG_ERROR([Can only enable OSMesa on libGL for Xlib])
+ DRIVER_DIRS="$DRIVER_DIRS osmesa"
fi
fi
@@ -822,21 +822,17 @@ echo " libdir: $libdir"
dnl Driver info
echo ""
echo " Driver: $mesa_driver"
-case "$mesa_driver" in
-xlib|osmesa)
- if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
- echo " OSMesa: lib$OSMESA_LIB"
- else
- echo " OSMesa: no"
- fi
- ;;
-dri)
+if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
+ echo " OSMesa: lib$OSMESA_LIB"
+else
+ echo " OSMesa: no"
+fi
+if test "$mesa_driver" = dri; then
# cleanup the drivers var
dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
echo " DRI drivers: $dri_dirs"
echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
- ;;
-esac
+fi
dnl Libraries
echo ""
diff --git a/docs/autoconf.html b/docs/autoconf.html
index 964ff140abc..518f5d2d416 100644
--- a/docs/autoconf.html
+++ b/docs/autoconf.html
@@ -116,6 +116,12 @@ be used. In this case, the --with-x
,
--x-includes
and --x-libraries
options can
control the use of X for Mesa.
+--enable-gl-osmesa
- The OSMesa
+library can be built on top of libGL for drivers that provide it.
+This option controls whether to build libOSMesa. By default, this is
+enabled for the Xlib driver and disabled otherwise. Note that this
+option is different than using OSMesa as the driver.
+
--enable-debug
- This option will enable compiler
options and macros to aid in debugging the Mesa libraries.
@@ -156,16 +162,6 @@ libraries, as well as the X11 development headers, will be need to
support the Xlib driver.
-
-
-
---disable-xlib-osmesa
- By default, the OSMesa library
-will be built and linked to the Xlib enabled libGL. This option disables
-building of libOSMesa.
-
-
-
-
DRI - This mode uses the DRI hardware drivers for
accelerated OpenGL rendering. Enable the DRI drivers with the option
diff --git a/src/mesa/Makefile b/src/mesa/Makefile
index 2c6d65d8a19..02e00544798 100644
--- a/src/mesa/Makefile
+++ b/src/mesa/Makefile
@@ -25,19 +25,17 @@ GL_TINY = 0$(MESA_MAJOR)0$(MESA_MINOR)0$(MESA_TINY)
# Figure out what to make here
default:
- @if [ "${DRIVER_DIRS}" = "dri" ] ; then \
- $(MAKE) linux-solo ; \
- elif [ "${DRIVER_DIRS}" = "osmesa" ] ; then \
- $(MAKE) osmesa-only ; \
- elif [ "$(DRIVER_DIRS)" = "beos" ]; then \
- $(MAKE) beos ; \
- elif [ "$(DRIVER_DIRS)" = "directfb" ]; then \
- $(MAKE) directfb ; \
- elif [ "$(DRIVER_DIRS)" = "fbdev osmesa" ]; then \
- $(MAKE) fbdev ; $(MAKE) osmesa-only ; \
- else \
- $(MAKE) stand-alone ; \
- fi
+ @for driver in $(DRIVER_DIRS) ; do \
+ case "$$driver" in \
+ x11) $(MAKE) stand-alone ;; \
+ dri) $(MAKE) linux-solo ;; \
+ osmesa) $(MAKE) osmesa-only ;; \
+ beos) $(MAKE) beos ;; \
+ directfb) $(MAKE) directfb ;; \
+ fbdev) $(MAKE) fbdev ;; \
+ *) echo "$$driver is invalid in DRIVER_DIRS" >&2; exit 1;; \
+ esac ; \
+ done
######################################################################
@@ -105,7 +103,7 @@ OSMESA16_OBJECTS = \
$(OSMESA_DRIVER_OBJECTS)
-stand-alone: depend subdirs $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) $(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME)
+stand-alone: depend subdirs $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME)
osmesa-only: depend subdirs $(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME)
@@ -174,9 +172,11 @@ install: default gl.pc
@if [ -e $(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME) ]; then \
$(INSTALL) $(TOP)/$(LIB_DIR)/libOSMesa* $(DESTDIR)$(INSTALL_DIR)/$(LIB_DIR); \
fi
- @if [ "${DRIVER_DIRS}" = "dri" ] ; then \
- cd drivers/dri ; $(MAKE) install ; \
- fi
+ @for target in $(DRIVER_DIRS); do \
+ case "$$target" in \
+ dri) cd drivers/dri ; $(MAKE) install ;; \
+ esac; \
+ done
## NOT INSTALLED YET:
## $(INSTALL) -d $(DESTDIR)$(INSTALL_DIR)/include/GLES
--
2.30.2