[Mesa-dev] [PATCH 1/6] glx: Convert to automake.
Matt Turner
mattst88 at gmail.com
Mon Mar 19 15:32:57 PDT 2012
On Wed, Feb 8, 2012 at 9:09 PM, Eric Anholt <eric at anholt.net> wrote:
> ---
> configure.ac | 4 ++
> src/glx/.gitignore | 5 ++
> src/glx/Makefile | 119 -------------------------------------------------
> src/glx/Makefile.am | 122 +++++++++++++++++++++++++++++++++++++++++++++++++++
> src/mesa/Makefile | 2 -
> 5 files changed, 131 insertions(+), 121 deletions(-)
> create mode 100644 src/glx/.gitignore
> delete mode 100644 src/glx/Makefile
> create mode 100644 src/glx/Makefile.am
>
> diff --git a/configure.ac b/configure.ac
> index b2b1ab8..389cdb0 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -379,6 +379,7 @@ fi
> AC_SUBST([GL_LIB])
> AC_SUBST([GLU_LIB])
> AC_SUBST([OSMESA_LIB])
> +AM_CONDITIONAL(HAVE_MANGLED_GL, test $GL_LIB = MangledGL)
>
> dnl
> dnl potentially-infringing-but-nobody-knows-for-sure stuff
> @@ -700,6 +701,7 @@ if test "x$enable_shared_glapi" = xyes; then
> SHARED_GLAPI="1"
> fi
> AC_SUBST([SHARED_GLAPI])
> +AM_CONDITIONAL(HAVE_SHARED_GLAPI, test $SHARED_GLAPI = 1)
>
> dnl
> dnl Driver configuration. Options are xlib, dri and osmesa right now.
> @@ -1037,6 +1039,7 @@ esac
> # builds.
> AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
> test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
> +AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes)
>
> GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
> GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
> @@ -1935,6 +1938,7 @@ AC_CONFIG_FILES([configs/autoconf
> src/egl/wayland/wayland-egl/Makefile
> src/egl/wayland/wayland-egl/wayland-egl.pc
> src/egl/wayland/wayland-drm/Makefile
> + src/glx/Makefile
> src/mesa/drivers/dri/dri.pc
> src/mesa/drivers/dri/Makefile
> src/mesa/drivers/dri/common/Makefile
> diff --git a/src/glx/.gitignore b/src/glx/.gitignore
> new file mode 100644
> index 0000000..ea7b611
> --- /dev/null
> +++ b/src/glx/.gitignore
> @@ -0,0 +1,5 @@
> +.deps
> +.libs
> +Makefile
> +Makefile.in
> +libGL.la
> diff --git a/src/glx/Makefile b/src/glx/Makefile
> deleted file mode 100644
> index f702f95..0000000
> --- a/src/glx/Makefile
> +++ /dev/null
> @@ -1,119 +0,0 @@
> -TOP = ../..
> -include $(TOP)/configs/current
> -
> -ifeq ($(HAVE_XF86VIDMODE),yes)
> -EXTRA_DEFINES_XF86VIDMODE = -DXF86VIDMODE
> -endif
> -
> -EXTRA_DEFINES = $(EXTRA_DEFINES_XF86VIDMODE) -D_REENTRANT \
> - -DDEFAULT_DRIVER_DIR=\"$(DRI_DRIVER_SEARCH_DIR)\"
> -
> -SOURCES = \
> - clientattrib.c \
> - clientinfo.c \
> - compsize.c \
> - create_context.c \
> - eval.c \
> - glxconfig.c \
> - glxcmds.c \
> - glxcurrent.c \
> - glx_error.c \
> - glxext.c \
> - glxextensions.c \
> - indirect_glx.c \
> - indirect.c \
> - indirect_init.c \
> - indirect_size.c \
> - indirect_window_pos.c \
> - indirect_texture_compression.c \
> - indirect_transpose_matrix.c \
> - indirect_vertex_array.c \
> - indirect_vertex_program.c \
> - pixel.c \
> - pixelstore.c \
> - render2.c \
> - renderpix.c \
> - single2.c \
> - singlepix.c \
> - vertarr.c \
> - xfont.c \
> - glx_pbuffer.c \
> - glx_query.c \
> - drisw_glx.c \
> - dri_common.c \
> - dri_glx.c \
> - XF86dri.c \
> - glxhash.c \
> - dri2_glx.c \
> - dri2.c \
> - applegl_glx.c
> -
> -
> -ifeq ($(SHARED_GLAPI),1)
> -GL_LIB_DEPS := -L$(TOP)/$(LIB_DIR) -l$(GLAPI_LIB) $(GL_LIB_DEPS)
> -EXTRA_DEFINES += -DGLX_SHARED_GLAPI
> -endif
> -
> -# override GLAPI_LIB
> -GLAPI_LIB = $(TOP)/src/mapi/glapi/libglapi.a
> -
> -OBJECTS = $(SOURCES:.c=.o)
> -
> -INCLUDES = -I. \
> - -I$(TOP)/include \
> - -I$(TOP)/include/GL/internal \
> - -I$(TOP)/src/mesa \
> - -I$(TOP)/src/mapi \
> - -I$(TOP)/src/mapi/glapi \
> - $(LIBDRM_CFLAGS) \
> - $(DRI2PROTO_CFLAGS) \
> - $(GLPROTO_CFLAGS) \
> - $(X11_INCLUDES)
> -
> -
> -##### RULES #####
> -
> -.c.o:
> - $(CC) -c $(INCLUDES) $(CFLAGS) $(EXTRA_DEFINES) $< -o $@
> -
> -.S.o:
> - $(CC) -c $(INCLUDES) $(CFLAGS) $(EXTRA_DEFINES) $< -o $@
> -
> -##### TARGETS #####
> -
> -default: depend $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME)
> -
> -libglx.a: $(OBJECTS)
> - $(MKLIB) -cplusplus -o glx -static $(OBJECTS)
> -
> -# Make libGL
> -$(TOP)/$(LIB_DIR)/$(GL_LIB_NAME): libglx.a $(OBJECTS) $(GLAPI_LIB) Makefile
> - $(MKLIB) -o $(GL_LIB) -linker '$(CXX)' -ldflags '$(LDFLAGS)' \
> - -major 1 -minor 2 \
> - -cplusplus $(MKLIB_OPTIONS) \
> - -install $(TOP)/$(LIB_DIR) -id $(INSTALL_LIB_DIR)/lib$(GL_LIB).1.dylib \
> - $(GL_LIB_DEPS) $(OBJECTS) $(GLAPI_LIB)
> -
> -$(GLAPI_LIB):
> - @$(MAKE) -C $(TOP)/src/mapi/glapi
> -
> -depend: $(SOURCES) Makefile
> - rm -f depend
> - touch depend
> - $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(SOURCES)
> -
> -
> -# Emacs tags
> -tags:
> - etags `find . -name \*.[ch]` `find $(TOP)/include`
> -
> -install: $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME)
> - $(MAKE) -C $(TOP)/src/mesa install-libgl
> -
> -# Remove .o and backup files
> -clean:
> - -rm -f $(TOP)/$(LIB_DIR)/$(GL_LIB_GLOB)
> - -rm -f *.o *~
> - -rm -f depend depend.bak
> -
> --include depend
> diff --git a/src/glx/Makefile.am b/src/glx/Makefile.am
> new file mode 100644
> index 0000000..b5bbebd
> --- /dev/null
> +++ b/src/glx/Makefile.am
> @@ -0,0 +1,122 @@
> +# Copyright © 2012 Intel Corporation
> +#
> +# 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.
> +
> +if HAVE_SHARED_GLAPI
> +SHARED_GLAPI_CFLAGS = -DGLX_SHARED_GLAPI
> +SHARED_GLAPI_LIBS = -L$(top_builddir)/$(LIB_DIR) -lglapi
> +endif
> +
> +GLAPI_LIB = ../mapi/glapi/libglapi.a
> +
> +if HAVE_XF86VIDMODE
> +EXTRA_DEFINES_XF86VIDMODE = -DXF86VIDMODE
> +endif
> +
> +AM_CFLAGS = \
> + -I$(top_srcdir)/include \
> + -I$(top_srcdir)/include/GL/internal \
> + -I$(top_srcdir)/src/mapi \
> + -I$(top_srcdir)/src/mapi/glapi \
> + $(SHARED_GLAPI_CFLAGS) \
> + $(EXTRA_DEFINES_XF86VIDMODE) \
> + -D_REENTRANT \
> + -DDEFAULT_DRIVER_DIR=\"$(DRI_DRIVER_SEARCH_DIR)\" \
> + $(DEFINES) \
> + $(LIBDRM_CFLAGS) \
> + $(DRI2PROTO_CFLAGS) \
> + $(GLPROTO_CFLAGS) \
> + $(X11_INCLUDES)
> +
> +if HAVE_MANGLED_GL
> +MANGLED_GL_LIB = libMangledGL.la
> +else
> +NORMAL_GL_LIB = libGL.la
> +endif
> +
> +lib_LTLIBRARIES = \
> + $(NORMAL_GL_LIB) \
> + $(MANGLED_GL_LIB)
> +
> +GL_FILES = \
> + clientattrib.c \
> + clientinfo.c \
> + compsize.c \
> + create_context.c \
> + eval.c \
> + glxconfig.c \
> + glxcmds.c \
> + glxcurrent.c \
> + glx_error.c \
> + glxext.c \
> + glxextensions.c \
> + indirect_glx.c \
> + indirect.c \
> + indirect_init.c \
> + indirect_size.c \
> + indirect_window_pos.c \
> + indirect_texture_compression.c \
> + indirect_transpose_matrix.c \
> + indirect_vertex_array.c \
> + indirect_vertex_program.c \
> + pixel.c \
> + pixelstore.c \
> + render2.c \
> + renderpix.c \
> + single2.c \
> + singlepix.c \
> + vertarr.c \
> + xfont.c \
> + glx_pbuffer.c \
> + glx_query.c \
> + drisw_glx.c \
> + dri_common.c \
> + dri_glx.c \
> + XF86dri.c \
> + glxhash.c \
> + dri2_glx.c \
> + dri2.c \
> + applegl_glx.c
> +
> +GL_LIBS = \
> + $(SHARED_GLAPI_LIBS) \
> + $(GLAPI_LIB) \
> + $(GL_LIB_DEPS)
This piece looks odd. If we've got shared glapi, we're linking in both
shared and static glapi. I tried removing $(GLAPI_LIB) from this, and
it did shrink libGL from 2.3 -> 1.8 MB, but it caused undefined
references to _glapi_Dispatch. Not sure if this is related to the SC2
problem, but maybe so.
More information about the mesa-dev
mailing list