swr: automake: don't ship LLVM version specific generated sources
authorEmil Velikov <emil.velikov@collabora.com>
Fri, 1 Jul 2016 16:17:13 +0000 (17:17 +0100)
committerEmil Velikov <emil.l.velikov@gmail.com>
Tue, 5 Jul 2016 11:17:05 +0000 (12:17 +0100)
Otherwise things will fail to build, if the builder is using another
version of LLVM.

v2: annotate all the dependencies of builder_gen.h
v3: clean the generated files as needed
v4: comment cleanups (Tim)

Cc: "12.0" <mesa-stable@lists.freedesktop.org>
Tested-by: Tim Rowley <timothy.o.rowley@intel.com>
Tested-by: Chuck Atkins <chuck.atkins@kitware.com> (v2)
Reported-by: Chuck Atkins <chuck.atkins@kitware.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
src/gallium/drivers/swr/Makefile.am

index 210b2035a49099bd17147036efb712271ab5308f..3459af3de96dd0180618b0749bf93cbc6b73357a 100644 (file)
@@ -52,8 +52,6 @@ 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
 
@@ -122,6 +120,31 @@ COMMON_LDFLAGS = \
        $(NO_UNDEFINED) \
        $(LLVM_LDFLAGS)
 
+
+# XXX: As we cannot use BUILT_SOURCES (the files will end up in the dist
+# tarball) just annotate the dependency directly.
+# As the single direct user of builder_gen.h is a header (builder.h) trace all
+# the translusive users (one that use the latter header).
+rasterizer/jitter/blend_jit.cpp: rasterizer/jitter/builder_gen.h
+rasterizer/jitter/builder.cpp: rasterizer/jitter/builder_gen.h
+rasterizer/jitter/builder_gen.cpp: rasterizer/jitter/builder_gen.h
+rasterizer/jitter/builder_x86.cpp: rasterizer/jitter/builder_gen.h
+rasterizer/jitter/builder_misc.cpp: rasterizer/jitter/builder_gen.h
+rasterizer/jitter/fetch_jit.cpp: rasterizer/jitter/builder_gen.h
+rasterizer/jitter/streamout_jit.cpp: rasterizer/jitter/builder_gen.h
+swr_shader.cpp: rasterizer/jitter/builder_gen.h
+
+CLEANFILES = \
+       rasterizer/jitter/builder_gen.h \
+       rasterizer/jitter/builder_gen.cpp
+
+# XXX: Due to the funky dependencies above, the builder_x86.cpp file gets
+# generated (copied) into builddir when building from release tarball.
+# Add a temporary workaround to remove it, until the above issue is resolved.
+distclean-local:
+       ( test $(top_srcdir) != $(top_builddir) && \
+               rm $(builddir)/rasterizer/jitter/builder_x86.cpp ) || true
+
 lib_LTLIBRARIES = libswrAVX.la libswrAVX2.la
 
 libswrAVX_la_CXXFLAGS = \
@@ -132,6 +155,15 @@ libswrAVX_la_CXXFLAGS = \
 libswrAVX_la_SOURCES = \
        $(COMMON_SOURCES)
 
+# XXX: Don't ship these generated sources for now, since they are specific
+# to the LLVM version they are generated from. Thus a release tarball
+# containing the said files, generated against eg. LLVM 3.8 will fail to build
+# on systems with other versions of LLVM eg. 3.7 or 3.6.
+# Move these back to BUILT_SOURCES once that is resolved.
+nodist_libswrAVX_la_SOURCES = \
+       rasterizer/jitter/builder_gen.h \
+       rasterizer/jitter/builder_gen.cpp
+
 libswrAVX_la_LIBADD = \
        $(COMMON_LIBADD)
 
@@ -146,6 +178,15 @@ libswrAVX2_la_CXXFLAGS = \
 libswrAVX2_la_SOURCES = \
        $(COMMON_SOURCES)
 
+# XXX: Don't ship these generated sources for now, since they are specific
+# to the LLVM version they are generated from. Thus a release tarball
+# containing the said files, generated against eg. LLVM 3.8 will fail to build
+# on systems with other versions of LLVM eg. 3.7 or 3.6.
+# Move these back to BUILT_SOURCES once that is resolved.
+nodist_libswrAVX2_la_SOURCES = \
+       rasterizer/jitter/builder_gen.h \
+       rasterizer/jitter/builder_gen.cpp
+
 libswrAVX2_la_LIBADD = \
        $(COMMON_LIBADD)