[Mesa-dev] [PATCH] automake: convert libOSmesa building

Kenneth Graunke kenneth at whitecape.org
Sat Jun 23 09:29:03 PDT 2012


On 06/23/2012 07:46 AM, Laurent Carlier wrote:
> This also currently fix the installation of libOSmesa.
> ---
>  configure.ac                         |  1 +
>  src/mesa/drivers/osmesa/Makefile     | 51 ------------------------------------
>  src/mesa/drivers/osmesa/Makefile.am  | 50 +++++++++++++++++++++++++++++++++++
>  src/mesa/drivers/osmesa/Makefile.old | 51 ++++++++++++++++++++++++++++++++++++
>  4 files changed, 102 insertions(+), 51 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/Makefile.old
> 
> diff --git a/configure.ac b/configure.ac
> index 46265a2..0b4a6b7 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -2189,6 +2189,7 @@ AC_CONFIG_FILES([configs/current
>  		src/mesa/drivers/dri/radeon/Makefile
>  		src/mesa/drivers/dri/swrast/Makefile
>  		src/mesa/drivers/x11/Makefile
> +		src/mesa/drivers/osmesa/Makefile
>  		src/mesa/gl.pc
>  		src/mesa/osmesa.pc])
>  
> diff --git a/src/mesa/drivers/osmesa/Makefile b/src/mesa/drivers/osmesa/Makefile
> deleted file mode 100644
> index 39ab09a..0000000
> --- a/src/mesa/drivers/osmesa/Makefile
> +++ /dev/null
> @@ -1,51 +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
> -
> -.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..6542722
> --- /dev/null
> +++ b/src/mesa/drivers/osmesa/Makefile.am
> @@ -0,0 +1,50 @@
> +
> +
> +# Copyright © 2012 Matt Turner <mattst88 at gmail.com>

You probably ought to change this :)

> +#
> +# 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_builddir)
> +
> +AM_CFLAGS = \
> +	-I$(top_srcdir)/include \
> +	-I$(top_srcdir)/src/mapi \
> +	-I$(top_srcdir)/src/mesa/ \
> +	$(DEFINES) \
> +	$(API_DEFINES)
> +
> +if HAVE_OSMESA_DRIVER
> +lib_LTLIBRARIES = lib at OSMESA_LIB@.la
> +endif
> +
> +lib at OSMESA_LIB@_la_SOURCES = osmesa.c
> +
> +lib at OSMESA_LIB@_la_LDFLAGS = -module -avoid-version -shared
> +lib at OSMESA_LIB@_la_LIBADD = \
> +	$(top_srcdir)/src/mesa/libmesa.a \
> +	$(top_srcdir)/src/mapi/glapi/libglapi.a \
> +	$(top_srcdir)/src/glsl/libglsl.a
> +
> +# Provide compatibility with scripts for the old Mesa build system for
> +# a while by putting a link to the driver into /lib of the build tree.
> +all-local: lib at OSMESA_LIB@.la
> +	$(MKDIR_P) $(top_builddir)/$(LIB_DIR);
> +	ln -f .libs/lib at OSMESA_LIB@.so $(top_builddir)/$(LIB_DIR)/lib at OSMESA_LIB@.so;
> diff --git a/src/mesa/drivers/osmesa/Makefile.old b/src/mesa/drivers/osmesa/Makefile.old
> new file mode 100644
> index 0000000..39ab09a
> --- /dev/null
> +++ b/src/mesa/drivers/osmesa/Makefile.old

I would just delete the old Makefile, rather than moving it.

Otherwise, looks fine to me.  Thanks for doing this!

> @@ -0,0 +1,51 @@
> +# 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
> +
> +.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?
> 




More information about the mesa-dev mailing list