[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