[Mesa-dev] [PATCH 3/4] i965: Convert the build to using automake.

Matt Turner mattst88 at gmail.com
Thu Jan 12 17:27:51 PST 2012


On Thu, Jan 12, 2012 at 7:08 PM, Eric Anholt <eric at anholt.net> wrote:
> This does introduce a warning by the automake build system, that the
> missing-symbols test build is non-portable.  That's true -- Mac OS X
> can't take something built as a loadable module and just link it as a
> library.  Of course, we aren't building this on OS X at all, so it
> would be nice to be able to suppress it, but I haven't found a way.
>
> Still, the build is going to be much quieter than we have ever had
> before, so I think this is a fair tradeoff until we find a way to shut
> that warning up.
> ---
>  .gitignore                                 |    4 ++
>  configs/linux-dri                          |    2 +-
>  configure.ac                               |   13 +++++
>  src/mesa/drivers/dri/i965/Android.mk       |    6 +-
>  src/mesa/drivers/dri/i965/Makefile         |   27 ----------
>  src/mesa/drivers/dri/i965/Makefile.am      |   75 ++++++++++++++++++++++++++++
>  src/mesa/drivers/dri/i965/Makefile.sources |    8 ++--
>  7 files changed, 100 insertions(+), 35 deletions(-)
>  delete mode 100644 src/mesa/drivers/dri/i965/Makefile
>  create mode 100644 src/mesa/drivers/dri/i965/Makefile.am
>
> diff --git a/.gitignore b/.gitignore
> index a6243bf..a4394b6 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -2,6 +2,7 @@
>  *.dll
>  *.exe
>  *.ilk
> +*.lo
>  *.o
>  *.obj
>  *.os
> @@ -19,9 +20,11 @@
>  *~
>  depend
>  depend.bak
> +bin/ltmain.sh
>  lib
>  lib64
>  configure
> +configure.lineno
>  autom4te.cache
>  aclocal.m4
>  config.log
> @@ -30,5 +33,6 @@ cscope*
>  .scon*
>  config.py
>  build
> +libtool
>  manifest.txt
>  .dir-locals.el
> diff --git a/configs/linux-dri b/configs/linux-dri
> index e63790e..dde6408 100644
> --- a/configs/linux-dri
> +++ b/configs/linux-dri
> @@ -62,7 +62,7 @@ GALLIUM_WINSYS_DIRS = sw sw/xlib drm/vmware drm/intel svga/drm
>  GALLIUM_TARGET_DIRS = dri-vmwgfx
>  GALLIUM_STATE_TRACKERS_DIRS = egl dri
>
> -DRI_DIRS = i915 i965 nouveau r200 radeon swrast
> +DRI_DIRS = i915 nouveau r200 radeon swrast
>
>  INTEL_LIBS = $(shell $(PKG_CONFIG) --libs libdrm_intel)
>  INTEL_CFLAGS = $(shell $(PKG_CONFIG) --cflags libdrm_intel)
> diff --git a/configure.ac b/configure.ac
> index 7c50e3c..1a120ec 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -18,6 +18,9 @@ AC_CONFIG_AUX_DIR([bin])
>  AC_CANONICAL_HOST
>  AM_INIT_AUTOMAKE([foreign])
>
> +LT_PREREQ([2.2])
> +LT_INIT([disable-static])
> +
>  dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
>  USER_CFLAGS="$CFLAGS"
>  USER_CXXFLAGS="$CXXFLAGS"
> @@ -1282,9 +1285,18 @@ AC_SUBST([DRI_LIB_DEPS])
>  case $DRI_DIRS in
>  *i915*|*i965*)
>     PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
> +
> +    case $DRI_DIRS in
> +    *i965*)
> +       HAVE_I965_DRI=yes;
> +       ;;
> +    esac
> +
>     ;;
>  esac
>
> +AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
> +
>  case $DRI_DIRS in
>  *nouveau*)
>     PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
> @@ -1924,6 +1936,7 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
>
>  dnl Substitute the config
>  AC_CONFIG_FILES([configs/autoconf
> +               src/mesa/drivers/dri/i965/Makefile
>                tests/Makefile
>                tests/glx/Makefile])
>
> diff --git a/src/mesa/drivers/dri/i965/Android.mk b/src/mesa/drivers/dri/i965/Android.mk
> index ec4a761..fbc6fc0 100644
> --- a/src/mesa/drivers/dri/i965/Android.mk
> +++ b/src/mesa/drivers/dri/i965/Android.mk
> @@ -41,9 +41,9 @@ LOCAL_C_INCLUDES := \
>        $(DRM_TOP)/intel
>
>  LOCAL_SRC_FILES := \
> -       $(i965_C_SOURCES) \
> -       $(i965_CXX_SOURCES) \
> -       $(i965_ASM_SOURCES)
> +       $(i965_C_FILES) \
> +       $(i965_CXX_FILES) \
> +       $(i965_ASM_FILES)
>
>  LOCAL_WHOLE_STATIC_LIBRARIES := \
>        $(MESA_DRI_WHOLE_STATIC_LIBRARIES)
> diff --git a/src/mesa/drivers/dri/i965/Makefile b/src/mesa/drivers/dri/i965/Makefile
> deleted file mode 100644
> index 57af7a6..0000000
> --- a/src/mesa/drivers/dri/i965/Makefile
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -TOP = ../../../../..
> -MESA_TOP := $(TOP)
> -
> -# Import variables i965_*.
> -include Makefile.sources
> -
> -include $(TOP)/configs/current
> -
> -LIBNAME = i965_dri.so
> -
> -include ../Makefile.defines
> -
> -C_SOURCES := \
> -       $(i965_C_SOURCES) \
> -       $(COMMON_SOURCES)
> -
> -CXX_SOURCES := $(i965_CXX_SOURCES)
> -ASM_SOURCES := $(i965_ASM_SOURCES)
> -DRIVER_DEFINES := $(addprefix -I, $(i965_INCLUDES))
> -
> -INCLUDES += $(INTEL_CFLAGS)
> -DRI_LIB_DEPS += $(INTEL_LIBS)
> -
> -include ../Makefile.targets
> -
> -intel_decode.o: ../intel/intel_decode.c
> -intel_tex_layout.o: ../intel/intel_tex_layout.c
> diff --git a/src/mesa/drivers/dri/i965/Makefile.am b/src/mesa/drivers/dri/i965/Makefile.am
> new file mode 100644
> index 0000000..cb44aa4
> --- /dev/null
> +++ b/src/mesa/drivers/dri/i965/Makefile.am
> @@ -0,0 +1,75 @@
> +
> +
> +# Copyright © 2011 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.
> +
> +include Makefile.sources
> +
> +# Hack to make some of the non-automake variables work.
> +TOP=$(top_builddir)
> +
> +AM_CFLAGS = \
> +       -I$(top_srcdir)/include \
> +       -I$(top_srcdir)/src/ \
> +       -I$(top_srcdir)/src/mapi \
> +       -I$(top_srcdir)/src/mesa/ \
> +       -I../common \
> +       -I../intel \
> +       -I../intel/server \
> +       $(DEFINES) \
> +       $(ASM_FLAGS) \
> +       $(API_DEFINES) \
> +       $(INTEL_CFLAGS)
> +
> +AM_CXXFLAGS = $(AM_CFLAGS)
> +
> +dridir = $(DRI_DRIVER_INSTALL_DIR)
> +
> +if HAVE_I965_DRI
> +dri_LTLIBRARIES = i965_dri.la
> +endif
> +
> +# These should be an ltlibrary that's built once.  Let's fix that once
> +# the other drivers are converted to automake.
> +COMMON_FILES = \
> +       ../common/utils.c \
> +       ../common/dri_util.c \
> +       ../common/xmlconfig.c
> +
> +i965_dri_la_SOURCES = \
> +       $(i965_C_FILES) \
> +       $(i965_CXX_FILES) \
> +       $(COMMON_FILES)
> +
> +i965_dri_la_LDFLAGS = -module -avoid-version -shared
> +i965_dri_la_LIBADD = \
> +       $(DRI_LIB_DEPS) \
> +       $(DRICORE_LIB_DEPS) \
> +       $(INTEL_LIBS)
> +
> +# Test build to make sure that we didn't leave any undefined symbols in the
> +# driver.
> +noinst_PROGRAMS = i965_symbols_test
> +
> +i965_symbols_test_SOURCES = \
> +       ../common/dri_test.c
> +i965_symbols_test_LDADD = \
> +       i965_dri.la
> diff --git a/src/mesa/drivers/dri/i965/Makefile.sources b/src/mesa/drivers/dri/i965/Makefile.sources
> index 3eeac6f..2b20885 100644
> --- a/src/mesa/drivers/dri/i965/Makefile.sources
> +++ b/src/mesa/drivers/dri/i965/Makefile.sources
> @@ -2,7 +2,7 @@ i965_INCLUDES := \
>        $(MESA_TOP)/src \
>        $(MESA_TOP)/src/mesa/drivers/dri/intel
>
> -i965_C_SOURCES := \
> +i965_C_FILES := \
>        intel_batchbuffer.c \
>        intel_blit.c \
>        intel_buffer_objects.c \
> @@ -109,9 +109,9 @@ i965_C_SOURCES := \
>        gen7_viewport_state.c \
>        gen7_vs_state.c \
>        gen7_wm_state.c \
> -       gen7_wm_surface_state.c \
> +       gen7_wm_surface_state.c
>
> -i965_CXX_SOURCES := \
> +i965_CXX_FILES := \
>        brw_cubemap_normalize.cpp \
>        brw_fs.cpp \
>        brw_fs_emit.cpp \
> @@ -127,4 +127,4 @@ i965_CXX_SOURCES := \
>        brw_vec4_reg_allocate.cpp \
>        brw_vec4_visitor.cpp
>
> -i965_ASM_SOURCES :=
> +i965_ASM_FILES :=
> --

Reviewed-by: Matt Turner <mattst88 at gmail.com>

Looking at this, I see some things I missed in automaking src/glsl, so
thanks! :)

Can we simply remove i965_ASM_SOURCES? It doesn't seem to do anything.

Matt


More information about the mesa-dev mailing list