[Mesa-dev] [PATCH] automake: src/mesa/drivers/osmesa

Matt Turner mattst88 at gmail.com
Thu Jan 26 21:06:51 PST 2012


---
Please give this a try.

OSMesa is broken with shared-glapi. I'll fix that (it'll be much
easier) when I automake glapi.

 configs/autoconf.in                  |    2 -
 configure.ac                         |   10 +++-
 src/mesa/Makefile                    |   17 +------
 src/mesa/drivers/osmesa/Makefile     |   53 ----------------------
 src/mesa/drivers/osmesa/Makefile.am  |   82 ++++++++++++++++++++++++++++++++++
 src/mesa/drivers/osmesa/osmesa.pc.in |   12 +++++
 src/mesa/osmesa.pc.in                |   12 -----
 7 files changed, 103 insertions(+), 85 deletions(-)
 delete mode 100644 src/mesa/drivers/osmesa/Makefile
 create mode 100644 src/mesa/drivers/osmesa/Makefile.am
 create mode 100644 src/mesa/drivers/osmesa/osmesa.pc.in
 delete mode 100644 src/mesa/osmesa.pc.in

diff --git a/configs/autoconf.in b/configs/autoconf.in
index 3de3412..a8aa42dd 100644
--- a/configs/autoconf.in
+++ b/configs/autoconf.in
@@ -129,8 +129,6 @@ MOTIF_CFLAGS = @MOTIF_CFLAGS@
 
 # Library/program dependencies
 GL_LIB_DEPS = $(EXTRA_LIB_PATH) @GL_LIB_DEPS@
-OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @OSMESA_MESA_DEPS@ \
-	$(EXTRA_LIB_PATH) @OSMESA_LIB_DEPS@
 EGL_LIB_DEPS = $(EXTRA_LIB_PATH) @EGL_LIB_DEPS@
 GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLU_MESA_DEPS@ \
 	$(EXTRA_LIB_PATH) @GLU_LIB_DEPS@
diff --git a/configure.ac b/configure.ac
index 507cfff..d593a99 100644
--- a/configure.ac
+++ b/configure.ac
@@ -286,6 +286,8 @@ xnono )
     enable_static=yes
     ;;
 esac
+AM_CONDITIONAL(BUILD_STATIC, test "x$enable_static" = xyes)
+AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes)
 
 dnl
 dnl mklib options
@@ -1318,6 +1320,9 @@ x16|x32)
     AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
     ;;
 esac
+AM_CONDITIONAL(HAVE_OSMESA8, test "x$osmesa_bits" = x8)
+AM_CONDITIONAL(HAVE_OSMESA16, test "x$osmesa_bits" = x16)
+AM_CONDITIONAL(HAVE_OSMESA32, test "x$osmesa_bits" = x32)
 
 if test "x$enable_osmesa" = xyes; then
     # only link libraries with osmesa if shared
@@ -1326,12 +1331,9 @@ if test "x$enable_osmesa" = xyes; then
     else
         OSMESA_LIB_DEPS=""
     fi
-    OSMESA_MESA_DEPS=""
     OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
 fi
 AC_SUBST([OSMESA_LIB_DEPS])
-AC_SUBST([OSMESA_MESA_DEPS])
-AC_SUBST([OSMESA_PC_REQ])
 AC_SUBST([OSMESA_PC_LIB_PRIV])
 
 dnl
@@ -1916,6 +1918,8 @@ AC_CONFIG_FILES([configs/autoconf
 		src/mesa/drivers/dri/r200/Makefile
 		src/mesa/drivers/dri/radeon/Makefile
 		src/mesa/drivers/dri/swrast/Makefile
+		src/mesa/drivers/osmesa/osmesa.pc
+		src/mesa/drivers/osmesa/Makefile
 		tests/Makefile
 		tests/glx/Makefile])
 
diff --git a/src/mesa/Makefile b/src/mesa/Makefile
index 0e15d61..80e9562 100644
--- a/src/mesa/Makefile
+++ b/src/mesa/Makefile
@@ -189,15 +189,6 @@ gl_pcedit = sed \
 gl.pc: gl.pc.in
 	$(gl_pcedit) $< > $@
 
-osmesa_pcedit = sed \
-	$(pcedit) \
-	-e 's, at OSMESA_LIB@,$(OSMESA_LIB),' \
-	-e 's, at OSMESA_PC_REQ@,$(OSMESA_PC_REQ),' \
-	-e 's, at OSMESA_PC_LIB_PRIV@,$(OSMESA_PC_LIB_PRIV),'
-
-osmesa.pc: osmesa.pc.in
-	$(osmesa_pcedit) $< > $@
-
 install-headers:
 	$(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GL
 	$(INSTALL) -m 644 $(TOP)/include/GL/*.h \
@@ -210,12 +201,8 @@ install-libgl: default gl.pc install-headers
 		$(DESTDIR)$(INSTALL_LIB_DIR)
 	$(INSTALL) -m 644 gl.pc $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
 
-install-osmesa: default osmesa.pc
-	$(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)
-	$(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
-	$(MINSTALL) $(TOP)/$(LIB_DIR)/$(OSMESA_LIB_GLOB) \
-		$(DESTDIR)$(INSTALL_LIB_DIR)
-	$(INSTALL) -m 644 osmesa.pc $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
+install-osmesa: default
+	cd drivers/osmesa && $(MAKE) install
 
 install-dri: default
 	cd drivers/dri && $(MAKE) install
diff --git a/src/mesa/drivers/osmesa/Makefile b/src/mesa/drivers/osmesa/Makefile
deleted file mode 100644
index 005f4d5..0000000
--- a/src/mesa/drivers/osmesa/Makefile
+++ /dev/null
@@ -1,53 +0,0 @@
-# src/mesa/drivers/osmesa/Makefile for libOSMesa.so
-
-# Note that we may generate libOSMesa.so or libOSMesa16.so or libOSMesa32.so
-# with this Makefile
-
-
-TOP = ../../../..
-
-include $(TOP)/configs/current
-
-
-
-SOURCES = osmesa.c
-
-OBJECTS = $(SOURCES:.c=.o)
-
-INCLUDE_DIRS = \
-	-I$(TOP)/include \
-	-I$(TOP)/src/mapi \
-	-I$(TOP)/src/mesa \
-	-I$(TOP)/src/mesa/main
-
-CORE_MESA = \
-	$(TOP)/src/mesa/libmesa.a \
-	$(TOP)/src/mapi/glapi/libglapi.a \
-	$(TOP)/src/glsl/libglsl.a
-
-OSMESA_LIB_DEPS := -L$(TOP)/$(LIB_DIR) -l$(GLAPI_LIB) $(OSMESA_LIB_DEPS)
-
-.c.o:
-	$(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
-
-
-default: $(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME)
-
-
-# libOSMesa can be used in conjuction with libGL or with all other Mesa
-# sources. We can also build libOSMesa16/libOSMesa32 by setting
-# -DCHAN_BITS=16/32.
-$(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME): $(OBJECTS) $(CORE_MESA)
-	$(MKLIB) -o $(OSMESA_LIB) -linker '$(CXX)' -ldflags '$(LDFLAGS)' \
-		-major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \
-		-install $(TOP)/$(LIB_DIR) -cplusplus $(MKLIB_OPTIONS) \
-		-id $(INSTALL_LIB_DIR)/lib$(OSMESA_LIB).$(MESA_MAJOR).dylib \
-		$(OSMESA_LIB_DEPS) $(OBJECTS) $(CORE_MESA)
-
-
-
-clean:
-	-rm -f *.o *~
-
-
-# XXX todo install rule?
diff --git a/src/mesa/drivers/osmesa/Makefile.am b/src/mesa/drivers/osmesa/Makefile.am
new file mode 100644
index 0000000..db8a3d5
--- /dev/null
+++ b/src/mesa/drivers/osmesa/Makefile.am
@@ -0,0 +1,82 @@
+
+
+# Copyright © 2012 Matt Turner <mattst88 at gmail.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+
+# Hack to make some of the non-automake variables work.
+TOP = $(top_srcdir)
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = osmesa.pc
+
+AM_CPPFLAGS = \
+	-I$(top_srcdir)/include \
+	-I$(top_srcdir)/src/mapi \
+	-I$(top_srcdir)/src/mesa \
+	-I$(top_srcdir)/src/mesa/main
+
+LIBADD = \
+	$(top_srcdir)/src/mesa/libmesa.a \
+	$(top_srcdir)/src/mapi/glapi/libglapi.a \
+	$(top_srcdir)/src/glsl/libglsl.a \
+	$(OSMESA_LIB_DEPS)
+
+if BUILD_SHARED
+LIBOSMESA = lib$(OSMESA_LIB).so
+endif
+
+if BUILD_STATIC
+LIBOSMESA = lib$(OSMESA_LIB).a
+endif
+
+if HAVE_OSMESA8
+lib_LTLIBRARIES = libOSMesa.la
+
+libOSMesa_la_SOURCES = osmesa.c
+libOSMesa_la_LDFLAGS = -version-info 8:0:0 #FIXME
+libOSMesa_la_LIBADD = $(LIBADD)
+endif
+
+if HAVE_OSMESA16
+lib_LTLIBRARIES = libOSMesa16.la
+
+libOSMesa16_la_SOURCES = osmesa.c
+libOSMesa16_la_LDFLAGS = -version-info 8:0:0 # FIXME
+libOSMesa16_la_LIBADD = $(LIBADD)
+endif
+
+if HAVE_OSMESA32
+lib_LTLIBRARIES = libOSMesa32.la
+
+libOSMesa32_la_SOURCES = osmesa.c
+libOSMesa32_la_LDFLAGS = -version-info 8:0:0 # FIXME
+libOSMesa32_la_LIBADD = $(LIBADD)
+endif
+
+# Provide compatibility with scripts for the old Mesa build system for
+# a while by putting a link to the library into /lib of the build tree.
+all-local: lib$(OSMESA_LIB).la
+	$(MKDIR_P) $(top_builddir)/$(LIB_DIR);
+if BUILD_SHARED
+	ln -f .libs/$(LIBOSMESA).8.0.0 $(top_builddir)/$(LIB_DIR)/$(LIBOSMESA).8.0.0;
+	ln -f .libs/$(LIBOSMESA).8 $(top_builddir)/$(LIB_DIR)/$(LIBOSMESA).8;
+endif
+	ln -f .libs/$(LIBOSMESA) $(top_builddir)/$(LIB_DIR)/$(LIBOSMESA);
diff --git a/src/mesa/drivers/osmesa/osmesa.pc.in b/src/mesa/drivers/osmesa/osmesa.pc.in
new file mode 100644
index 0000000..ae7a20d
--- /dev/null
+++ b/src/mesa/drivers/osmesa/osmesa.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: osmesa
+Description: Mesa Off-screen Rendering library
+Requires:
+Version: @VERSION@
+Libs: -L${libdir} -l at OSMESA_LIB@
+Libs.private: @OSMESA_PC_LIB_PRIV@
+Cflags: -I${includedir}
diff --git a/src/mesa/osmesa.pc.in b/src/mesa/osmesa.pc.in
deleted file mode 100644
index 05327f4..0000000
--- a/src/mesa/osmesa.pc.in
+++ /dev/null
@@ -1,12 +0,0 @@
-prefix=@INSTALL_DIR@
-exec_prefix=${prefix}
-libdir=@INSTALL_LIB_DIR@
-includedir=@INSTALL_INC_DIR@
-
-Name: osmesa
-Description: Mesa Off-screen Rendering library
-Requires: @OSMESA_PC_REQ@
-Version: @VERSION@
-Libs: -L${libdir} -l at OSMESA_LIB@
-Libs.private: @OSMESA_PC_LIB_PRIV@
-Cflags: -I${includedir}
-- 
1.7.3.4



More information about the mesa-dev mailing list