[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