Thanks for looking at this. I didn’t realize that automake was smart enough to generate separate targets for the overlapping object files; had figured that would be a collision.
I notice you removed the install-gallium-links portion of the makefile, which you had pointed out before as being a bit of a hack. This makes testing in the builddir a bit more complicated (need to point LD_LIBRARY_PATH to libGL and and the swr libs). I could use the result of a “make install” instead, except for the bug where both the swrast and gallium libGL libraries get installed: https://bugs.freedesktop.org/show_bug.cgi?id=94086 Reviewed-by: Tim Rowley <timothy.o.row...@intel.com> -Tim > On Apr 11, 2016, at 1:21 PM, Emil Velikov <emil.l.veli...@gmail.com> wrote: > > From: Emil Velikov <emil.veli...@collabora.com> > > Rather than having two almost identical Makefiles, with various VPATH > hacks just fold them, using COMMON_* variables and actually getting > things buildable/shipable. > > Cc: Tim Rowley <timothy.o.row...@intel.com> > Signed-off-by: Emil Velikov <emil.veli...@collabora.com> > --- > > Tim, can you double check/continue the work started. It seems to build > fine here, although I'm likely missing something. > > Without this (or similar fix) one cannot get a distribution tarball let > alone run `make distcheck'. Note: currently one of the llvm tests fail > if you try the latter. > > Thanks > Emil > > > configure.ac | 2 - > src/gallium/Makefile.am | 2 - > src/gallium/drivers/swr/Makefile.am | 94 +++++++++++++++++++++++++++++- > src/gallium/drivers/swr/Makefile.sources | 91 +++++++++++++++++++++++++++++ > src/gallium/drivers/swr/avx/Makefile.am | 99 -------------------------------- > src/gallium/drivers/swr/avx2/Makefile.am | 99 -------------------------------- > 6 files changed, 184 insertions(+), 203 deletions(-) > delete mode 100644 src/gallium/drivers/swr/avx/Makefile.am > delete mode 100644 src/gallium/drivers/swr/avx2/Makefile.am > > diff --git a/configure.ac b/configure.ac > index c426c72..8c82c43 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -2487,8 +2487,6 @@ AC_CONFIG_FILES([Makefile > src/gallium/drivers/softpipe/Makefile > src/gallium/drivers/svga/Makefile > src/gallium/drivers/swr/Makefile > - src/gallium/drivers/swr/avx/Makefile > - src/gallium/drivers/swr/avx2/Makefile > src/gallium/drivers/trace/Makefile > src/gallium/drivers/vc4/Makefile > src/gallium/drivers/virgl/Makefile > diff --git a/src/gallium/Makefile.am b/src/gallium/Makefile.am > index 086e170..ef2bc10 100644 > --- a/src/gallium/Makefile.am > +++ b/src/gallium/Makefile.am > @@ -80,8 +80,6 @@ endif > > if HAVE_GALLIUM_SWR > SUBDIRS += drivers/swr > -SUBDIRS += drivers/swr/avx > -SUBDIRS += drivers/swr/avx2 > endif > > ## vc4/rpi > diff --git a/src/gallium/drivers/swr/Makefile.am > b/src/gallium/drivers/swr/Makefile.am > index f08806a..46e5f78 100644 > --- a/src/gallium/drivers/swr/Makefile.am > +++ b/src/gallium/drivers/swr/Makefile.am > @@ -28,4 +28,96 @@ noinst_LTLIBRARIES = libmesaswr.la > > libmesaswr_la_SOURCES = $(LOADER_SOURCES) > > -EXTRA_DIST = Makefile.sources-arch > +COMMON_CXXFLAGS = \ > + $(GALLIUM_DRIVER_CFLAGS) \ > + $(LLVM_CFLAGS) \ > + -I$(builddir)/rasterizer/scripts \ > + -I$(builddir)/rasterizer/jitter \ > + -I$(srcdir)/rasterizer \ > + -I$(srcdir)/rasterizer/core \ > + -I$(srcdir)/rasterizer/jitter > + > +COMMON_SOURCES = \ > + $(CXX_SOURCES) \ > + $(COMMON_CXX_SOURCES) \ > + $(CORE_CXX_SOURCES) \ > + $(JITTER_CXX_SOURCES) \ > + $(MEMORY_CXX_SOURCES) \ > + $(BUILT_SOURCES) > + > +BUILT_SOURCES = \ > + rasterizer/scripts/gen_knobs.cpp \ > + rasterizer/scripts/gen_knobs.h \ > + rasterizer/jitter/state_llvm.h \ > + rasterizer/jitter/builder_gen.h \ > + rasterizer/jitter/builder_gen.cpp \ > + rasterizer/jitter/builder_x86.h \ > + rasterizer/jitter/builder_x86.cpp > + > +rasterizer/scripts/gen_knobs.cpp rasterizer/scripts/gen_knobs.h: > rasterizer/scripts/gen_knobs.py rasterizer/scripts/knob_defs.py > rasterizer/scripts/templates/knobs.template > + $(PYTHON2) $(PYTHON_FLAGS) \ > + $(srcdir)/rasterizer/scripts/gen_knobs.py \ > + rasterizer/scripts > + > +rasterizer/jitter/state_llvm.h: rasterizer/jitter/scripts/gen_llvm_types.py > rasterizer/core/state.h > + $(PYTHON2) $(PYTHON_FLAGS) \ > + $(srcdir)/rasterizer/jitter/scripts/gen_llvm_types.py \ > + --input $(srcdir)/rasterizer/core/state.h \ > + --output rasterizer/jitter/state_llvm.h > + > +rasterizer/jitter/builder_gen.h: > rasterizer/jitter/scripts/gen_llvm_ir_macros.py > $(LLVM_INCLUDEDIR)/llvm/IR/IRBuilder.h > + $(PYTHON2) $(PYTHON_FLAGS) \ > + $(srcdir)/rasterizer/jitter/scripts/gen_llvm_ir_macros.py \ > + --input $(LLVM_INCLUDEDIR)/llvm/IR/IRBuilder.h \ > + --output rasterizer/jitter/builder_gen.h \ > + --gen_h > + > +rasterizer/jitter/builder_gen.cpp: > rasterizer/jitter/scripts/gen_llvm_ir_macros.py > $(LLVM_INCLUDEDIR)/llvm/IR/IRBuilder.h > + $(PYTHON2) $(PYTHON_FLAGS) \ > + $(srcdir)/rasterizer/jitter/scripts/gen_llvm_ir_macros.py \ > + --input $(LLVM_INCLUDEDIR)/llvm/IR/IRBuilder.h \ > + --output rasterizer/jitter/builder_gen.cpp \ > + --gen_cpp > + > +rasterizer/jitter/builder_x86.h: > rasterizer/jitter/scripts/gen_llvm_ir_macros.py > + $(PYTHON2) $(PYTHON_FLAGS) \ > + $(srcdir)/rasterizer/jitter/scripts/gen_llvm_ir_macros.py \ > + --output rasterizer/jitter/builder_x86.h \ > + --gen_x86_h > + > +rasterizer/jitter/builder_x86.cpp: > rasterizer/jitter/scripts/gen_llvm_ir_macros.py > + $(PYTHON2) $(PYTHON_FLAGS) \ > + $(srcdir)/rasterizer/jitter/scripts/gen_llvm_ir_macros.py \ > + --output rasterizer/jitter/builder_x86.cpp \ > + --gen_x86_cpp > + > + > +COMMON_LIBADD = \ > + $(top_builddir)/src/gallium/auxiliary/libgallium.la \ > + $(top_builddir)/src/mesa/libmesagallium.la > + > +lib_LTLIBRARIES = libswrAVX.la libswrAVX2.la > + > +libswrAVX_la_CXXFLAGS = \ > + -march=core-avx-i \ > + -DKNOB_ARCH=KNOB_ARCH_AVX \ > + $(COMMON_CXXFLAGS) > + > +libswrAVX_la_SOURCES = \ > + $(COMMON_SOURCES) > + > +libswrAVX_la_LIBADD = \ > + $(COMMON_LIBADD) > + > +libswrAVX2_la_CXXFLAGS = \ > + -march=core-avx2 \ > + -DKNOB_ARCH=KNOB_ARCH_AVX2 \ > + $(COMMON_CXXFLAGS) > + > +libswrAVX2_la_SOURCES = \ > + $(COMMON_SOURCES) > + > +libswrAVX2_la_LIBADD = \ > + $(COMMON_LIBADD) > + > +include $(top_srcdir)/install-gallium-links.mk > diff --git a/src/gallium/drivers/swr/Makefile.sources > b/src/gallium/drivers/swr/Makefile.sources > index 7224721..be3d8f0 100644 > --- a/src/gallium/drivers/swr/Makefile.sources > +++ b/src/gallium/drivers/swr/Makefile.sources > @@ -21,3 +21,94 @@ > > LOADER_SOURCES := \ > swr_loader.cpp > + > +CXX_SOURCES := \ > + swr_clear.cpp \ > + swr_context.cpp \ > + swr_context.h \ > + swr_context_llvm.h \ > + swr_draw.cpp \ > + swr_public.h \ > + swr_resource.h \ > + swr_screen.cpp \ > + swr_screen.h \ > + swr_state.cpp \ > + swr_state.h \ > + swr_tex_sample.cpp \ > + swr_tex_sample.h \ > + swr_scratch.h \ > + swr_scratch.cpp \ > + swr_shader.cpp \ > + swr_memory.h \ > + swr_fence.h \ > + swr_fence.cpp \ > + swr_query.h \ > + swr_query.cpp > + > +COMMON_CXX_SOURCES := \ > + rasterizer/common/containers.hpp \ > + rasterizer/common/formats.cpp \ > + rasterizer/common/formats.h \ > + rasterizer/common/isa.hpp \ > + rasterizer/common/os.h \ > + rasterizer/common/rdtsc_buckets.cpp \ > + rasterizer/common/rdtsc_buckets.h \ > + rasterizer/common/rdtsc_buckets_shared.h \ > + rasterizer/common/rdtsc_buckets_shared.h \ > + rasterizer/common/simdintrin.h \ > + rasterizer/common/swr_assert.cpp \ > + rasterizer/common/swr_assert.h > + > +CORE_CXX_SOURCES := \ > + rasterizer/core/api.cpp \ > + rasterizer/core/api.h \ > + rasterizer/core/arena.h \ > + rasterizer/core/backend.cpp \ > + rasterizer/core/backend.h \ > + rasterizer/core/blend.h \ > + rasterizer/core/clip.cpp \ > + rasterizer/core/clip.h \ > + rasterizer/core/context.h \ > + rasterizer/core/depthstencil.h \ > + rasterizer/core/fifo.hpp \ > + rasterizer/core/format_traits.h \ > + rasterizer/core/format_types.h \ > + rasterizer/core/frontend.cpp \ > + rasterizer/core/frontend.h \ > + rasterizer/core/knobs.h \ > + rasterizer/core/knobs_init.h \ > + rasterizer/core/multisample.cpp \ > + rasterizer/core/multisample.h \ > + rasterizer/core/pa_avx.cpp \ > + rasterizer/core/pa.h \ > + rasterizer/core/rasterizer.cpp \ > + rasterizer/core/rasterizer.h \ > + rasterizer/core/rdtsc_core.cpp \ > + rasterizer/core/rdtsc_core.h \ > + rasterizer/core/ringbuffer.h \ > + rasterizer/core/state.h \ > + rasterizer/core/threads.cpp \ > + rasterizer/core/threads.h \ > + rasterizer/core/tilemgr.cpp \ > + rasterizer/core/tilemgr.h \ > + rasterizer/core/utils.cpp \ > + rasterizer/core/utils.h > + > +JITTER_CXX_SOURCES := \ > + rasterizer/jitter/blend_jit.cpp \ > + rasterizer/jitter/blend_jit.h \ > + rasterizer/jitter/builder.cpp \ > + rasterizer/jitter/builder.h \ > + rasterizer/jitter/builder_misc.cpp \ > + rasterizer/jitter/builder_misc.h \ > + rasterizer/jitter/fetch_jit.cpp \ > + rasterizer/jitter/fetch_jit.h \ > + rasterizer/jitter/JitManager.cpp \ > + rasterizer/jitter/JitManager.h \ > + rasterizer/jitter/streamout_jit.cpp \ > + rasterizer/jitter/streamout_jit.h > + > +MEMORY_CXX_SOURCES := \ > + rasterizer/memory/ClearTile.cpp \ > + rasterizer/memory/LoadTile.cpp \ > + rasterizer/memory/StoreTile.cpp > diff --git a/src/gallium/drivers/swr/avx/Makefile.am > b/src/gallium/drivers/swr/avx/Makefile.am > deleted file mode 100644 > index 384f1a7..0000000 > --- a/src/gallium/drivers/swr/avx/Makefile.am > +++ /dev/null > @@ -1,99 +0,0 @@ > -# Copyright (C) 2015 Intel Corporation. All Rights Reserved. > -# > -# 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-arch > -include $(top_srcdir)/src/gallium/Automake.inc > - > -VPATH = $(srcdir) $(srcdir)/.. > - > -AM_CXXFLAGS = \ > - -march=core-avx-i \ > - -DKNOB_ARCH=KNOB_ARCH_AVX \ > - $(GALLIUM_DRIVER_CFLAGS) \ > - $(LLVM_CFLAGS) \ > - -I$(builddir)/rasterizer/scripts \ > - -I$(builddir)/rasterizer/jitter \ > - -I$(srcdir)/../rasterizer \ > - -I$(srcdir)/../rasterizer/core \ > - -I$(srcdir)/../rasterizer/jitter > - > -lib_LTLIBRARIES = libswrAVX.la > - > -BUILT_SOURCES = \ > - rasterizer/scripts/gen_knobs.cpp \ > - rasterizer/scripts/gen_knobs.h \ > - rasterizer/jitter/state_llvm.h \ > - rasterizer/jitter/builder_gen.h \ > - rasterizer/jitter/builder_gen.cpp \ > - rasterizer/jitter/builder_x86.h \ > - rasterizer/jitter/builder_x86.cpp > - > -libswrAVX_la_SOURCES = \ > - $(CXX_SOURCES) \ > - $(COMMON_CXX_SOURCES) \ > - $(CORE_CXX_SOURCES) \ > - $(JITTER_CXX_SOURCES) \ > - $(MEMORY_CXX_SOURCES) \ > - $(BUILT_SOURCES) > - > -rasterizer/scripts/gen_knobs.cpp rasterizer/scripts/gen_knobs.h: > rasterizer/scripts/gen_knobs.py rasterizer/scripts/knob_defs.py > rasterizer/scripts/templates/knobs.template > - $(PYTHON2) $(PYTHON_FLAGS) \ > - $(srcdir)/../rasterizer/scripts/gen_knobs.py \ > - rasterizer/scripts > - > -rasterizer/jitter/state_llvm.h: rasterizer/jitter/scripts/gen_llvm_types.py > rasterizer/core/state.h > - $(PYTHON2) $(PYTHON_FLAGS) \ > - $(srcdir)/../rasterizer/jitter/scripts/gen_llvm_types.py \ > - --input $(srcdir)/../rasterizer/core/state.h \ > - --output rasterizer/jitter/state_llvm.h > - > -rasterizer/jitter/builder_gen.h: > rasterizer/jitter/scripts/gen_llvm_ir_macros.py > $(LLVM_INCLUDEDIR)/llvm/IR/IRBuilder.h > - $(PYTHON2) $(PYTHON_FLAGS) \ > - $(srcdir)/../rasterizer/jitter/scripts/gen_llvm_ir_macros.py \ > - --input $(LLVM_INCLUDEDIR)/llvm/IR/IRBuilder.h \ > - --output rasterizer/jitter/builder_gen.h \ > - --gen_h > - > -rasterizer/jitter/builder_gen.cpp: > rasterizer/jitter/scripts/gen_llvm_ir_macros.py > $(LLVM_INCLUDEDIR)/llvm/IR/IRBuilder.h > - $(PYTHON2) $(PYTHON_FLAGS) \ > - $(srcdir)/../rasterizer/jitter/scripts/gen_llvm_ir_macros.py \ > - --input $(LLVM_INCLUDEDIR)/llvm/IR/IRBuilder.h \ > - --output rasterizer/jitter/builder_gen.cpp \ > - --gen_cpp > - > -rasterizer/jitter/builder_x86.h: > rasterizer/jitter/scripts/gen_llvm_ir_macros.py > - $(PYTHON2) $(PYTHON_FLAGS) \ > - $(srcdir)/../rasterizer/jitter/scripts/gen_llvm_ir_macros.py \ > - --output rasterizer/jitter/builder_x86.h \ > - --gen_x86_h > - > -rasterizer/jitter/builder_x86.cpp: > rasterizer/jitter/scripts/gen_llvm_ir_macros.py > - $(PYTHON2) $(PYTHON_FLAGS) \ > - $(srcdir)/../rasterizer/jitter/scripts/gen_llvm_ir_macros.py \ > - --output rasterizer/jitter/builder_x86.cpp \ > - --gen_x86_cpp > - > - > -libswrAVX_la_LIBADD = \ > - $(top_builddir)/src/gallium/auxiliary/libgallium.la \ > - $(top_builddir)/src/mesa/libmesagallium.la > - > -include $(top_srcdir)/install-gallium-links.mk > diff --git a/src/gallium/drivers/swr/avx2/Makefile.am > b/src/gallium/drivers/swr/avx2/Makefile.am > deleted file mode 100644 > index a3968ec..0000000 > --- a/src/gallium/drivers/swr/avx2/Makefile.am > +++ /dev/null > @@ -1,99 +0,0 @@ > -# Copyright (C) 2015 Intel Corporation. All Rights Reserved. > -# > -# 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-arch > -include $(top_srcdir)/src/gallium/Automake.inc > - > -VPATH = $(srcdir) $(srcdir)/.. > - > -AM_CXXFLAGS = \ > - -march=core-avx2 \ > - -DKNOB_ARCH=KNOB_ARCH_AVX2 \ > - $(GALLIUM_DRIVER_CFLAGS) \ > - $(LLVM_CFLAGS) \ > - -I$(builddir)/rasterizer/scripts \ > - -I$(builddir)/rasterizer/jitter \ > - -I$(srcdir)/../rasterizer \ > - -I$(srcdir)/../rasterizer/core \ > - -I$(srcdir)/../rasterizer/jitter > - > -lib_LTLIBRARIES = libswrAVX2.la > - > -BUILT_SOURCES = \ > - rasterizer/scripts/gen_knobs.cpp \ > - rasterizer/scripts/gen_knobs.h \ > - rasterizer/jitter/state_llvm.h \ > - rasterizer/jitter/builder_gen.h \ > - rasterizer/jitter/builder_gen.cpp \ > - rasterizer/jitter/builder_x86.h \ > - rasterizer/jitter/builder_x86.cpp > - > -libswrAVX2_la_SOURCES = \ > - $(CXX_SOURCES) \ > - $(COMMON_CXX_SOURCES) \ > - $(CORE_CXX_SOURCES) \ > - $(JITTER_CXX_SOURCES) \ > - $(MEMORY_CXX_SOURCES) \ > - $(BUILT_SOURCES) > - > -rasterizer/scripts/gen_knobs.cpp rasterizer/scripts/gen_knobs.h: > rasterizer/scripts/gen_knobs.py rasterizer/scripts/knob_defs.py > rasterizer/scripts/templates/knobs.template > - $(PYTHON2) $(PYTHON_FLAGS) \ > - $(srcdir)/../rasterizer/scripts/gen_knobs.py \ > - rasterizer/scripts > - > -rasterizer/jitter/state_llvm.h: rasterizer/jitter/scripts/gen_llvm_types.py > rasterizer/core/state.h > - $(PYTHON2) $(PYTHON_FLAGS) \ > - $(srcdir)/../rasterizer/jitter/scripts/gen_llvm_types.py \ > - --input $(srcdir)/../rasterizer/core/state.h \ > - --output rasterizer/jitter/state_llvm.h > - > -rasterizer/jitter/builder_gen.h: > rasterizer/jitter/scripts/gen_llvm_ir_macros.py > $(LLVM_INCLUDEDIR)/llvm/IR/IRBuilder.h > - $(PYTHON2) $(PYTHON_FLAGS) \ > - $(srcdir)/../rasterizer/jitter/scripts/gen_llvm_ir_macros.py \ > - --input $(LLVM_INCLUDEDIR)/llvm/IR/IRBuilder.h \ > - --output rasterizer/jitter/builder_gen.h \ > - --gen_h > - > -rasterizer/jitter/builder_gen.cpp: > rasterizer/jitter/scripts/gen_llvm_ir_macros.py > $(LLVM_INCLUDEDIR)/llvm/IR/IRBuilder.h > - $(PYTHON2) $(PYTHON_FLAGS) \ > - $(srcdir)/../rasterizer/jitter/scripts/gen_llvm_ir_macros.py \ > - --input $(LLVM_INCLUDEDIR)/llvm/IR/IRBuilder.h \ > - --output rasterizer/jitter/builder_gen.cpp \ > - --gen_cpp > - > -rasterizer/jitter/builder_x86.h: > rasterizer/jitter/scripts/gen_llvm_ir_macros.py > - $(PYTHON2) $(PYTHON_FLAGS) \ > - $(srcdir)/../rasterizer/jitter/scripts/gen_llvm_ir_macros.py \ > - --output rasterizer/jitter/builder_x86.h \ > - --gen_x86_h > - > -rasterizer/jitter/builder_x86.cpp: > rasterizer/jitter/scripts/gen_llvm_ir_macros.py > - $(PYTHON2) $(PYTHON_FLAGS) \ > - $(srcdir)/../rasterizer/jitter/scripts/gen_llvm_ir_macros.py \ > - --output rasterizer/jitter/builder_x86.cpp \ > - --gen_x86_cpp > - > - > -libswrAVX2_la_LIBADD = \ > - $(top_builddir)/src/gallium/auxiliary/libgallium.la \ > - $(top_builddir)/src/mesa/libmesagallium.la > - > -include $(top_srcdir)/install-gallium-links.mk > -- > 2.8.0 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev