1 # Copyright (C) 2015 Intel Corporation. All Rights Reserved.
3 # Permission is hereby granted, free of charge, to any person obtaining a
4 # copy of this software and associated documentation files (the "Software"),
5 # to deal in the Software without restriction, including without limitation
6 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
7 # and/or sell copies of the Software, and to permit persons to whom the
8 # Software is furnished to do so, subject to the following conditions:
10 # The above copyright notice and this permission notice (including the next
11 # paragraph) shall be included in all copies or substantial portions of the
14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
22 include Makefile.sources
23 include $(top_srcdir)/src/gallium/Automake.inc
25 AM_CXXFLAGS = $(GALLIUM_DRIVER_CFLAGS) $(SWR_CXX11_CXXFLAGS)
27 noinst_LTLIBRARIES = libmesaswr.la
29 libmesaswr_la_SOURCES = $(LOADER_SOURCES)
32 -fno-strict-aliasing \
33 $(GALLIUM_DRIVER_CFLAGS) \
35 $(SWR_CXX11_CXXFLAGS) \
36 -I$(builddir)/rasterizer/codegen \
37 -I$(builddir)/rasterizer/core \
38 -I$(builddir)/rasterizer/jitter \
39 -I$(builddir)/rasterizer/archrast \
40 -I$(srcdir)/rasterizer \
41 -I$(srcdir)/rasterizer/core \
42 -I$(srcdir)/rasterizer/codegen \
43 -I$(srcdir)/rasterizer/jitter \
44 -I$(srcdir)/rasterizer/archrast
48 $(ARCHRAST_CXX_SOURCES) \
49 $(COMMON_CXX_SOURCES) \
51 $(JITTER_CXX_SOURCES) \
52 $(MEMORY_CXX_SOURCES) \
56 gen_swr_context_llvm.h \
57 rasterizer/codegen/gen_knobs.cpp \
58 rasterizer/codegen/gen_knobs.h \
59 rasterizer/jitter/gen_state_llvm.h \
60 rasterizer/jitter/gen_builder.hpp \
61 rasterizer/jitter/gen_builder_x86.hpp \
62 rasterizer/archrast/gen_ar_event.hpp \
63 rasterizer/archrast/gen_ar_event.cpp \
64 rasterizer/archrast/gen_ar_eventhandler.hpp \
65 rasterizer/archrast/gen_ar_eventhandlerfile.hpp \
66 rasterizer/core/backends/gen_BackendPixelRate0.cpp \
67 rasterizer/core/backends/gen_BackendPixelRate1.cpp \
68 rasterizer/core/backends/gen_BackendPixelRate2.cpp \
69 rasterizer/core/backends/gen_BackendPixelRate3.cpp \
70 rasterizer/core/backends/gen_BackendPixelRate.hpp \
71 rasterizer/core/backends/gen_rasterizer0.cpp \
72 rasterizer/core/backends/gen_rasterizer1.cpp \
73 rasterizer/core/backends/gen_rasterizer2.cpp \
74 rasterizer/core/backends/gen_rasterizer3.cpp \
75 rasterizer/core/backends/gen_rasterizer.hpp
77 MKDIR_GEN = $(AM_V_at)$(MKDIR_P) $(@D)
78 PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS)
79 gen_swr_context_llvm.h: rasterizer/codegen/gen_llvm_types.py rasterizer/codegen/templates/gen_llvm.hpp swr_context.h
81 $(srcdir)/rasterizer/codegen/gen_llvm_types.py \
82 --input $(srcdir)/swr_context.h \
83 --output ./gen_swr_context_llvm.h
85 rasterizer/codegen/gen_knobs.cpp: rasterizer/codegen/gen_knobs.py rasterizer/codegen/knob_defs.py rasterizer/codegen/templates/gen_knobs.cpp rasterizer/codegen/gen_common.py
88 $(srcdir)/rasterizer/codegen/gen_knobs.py \
89 --output rasterizer/codegen/gen_knobs.cpp \
92 rasterizer/codegen/gen_knobs.h: rasterizer/codegen/gen_knobs.py rasterizer/codegen/knob_defs.py rasterizer/codegen/templates/gen_knobs.cpp rasterizer/codegen/gen_common.py
95 $(srcdir)/rasterizer/codegen/gen_knobs.py \
96 --output rasterizer/codegen/gen_knobs.h \
99 rasterizer/jitter/gen_state_llvm.h: rasterizer/codegen/gen_llvm_types.py rasterizer/codegen/templates/gen_llvm.hpp rasterizer/core/state.h rasterizer/codegen/gen_common.py
102 $(srcdir)/rasterizer/codegen/gen_llvm_types.py \
103 --input $(srcdir)/rasterizer/core/state.h \
104 --output rasterizer/jitter/gen_state_llvm.h
106 rasterizer/jitter/gen_builder.hpp: rasterizer/codegen/gen_llvm_ir_macros.py rasterizer/codegen/templates/gen_builder.hpp rasterizer/codegen/gen_common.py
109 $(srcdir)/rasterizer/codegen/gen_llvm_ir_macros.py \
110 --input $(LLVM_INCLUDEDIR)/llvm/IR/IRBuilder.h \
111 --output rasterizer/jitter \
114 rasterizer/jitter/gen_builder_x86.hpp: rasterizer/codegen/gen_llvm_ir_macros.py rasterizer/codegen/templates/gen_builder.hpp rasterizer/codegen/gen_common.py
117 $(srcdir)/rasterizer/codegen/gen_llvm_ir_macros.py \
118 --output rasterizer/jitter \
121 rasterizer/archrast/gen_ar_event.hpp: rasterizer/codegen/gen_archrast.py rasterizer/codegen/templates/gen_ar_event.hpp rasterizer/archrast/events.proto rasterizer/codegen/gen_common.py
124 $(srcdir)/rasterizer/codegen/gen_archrast.py \
125 --proto $(srcdir)/rasterizer/archrast/events.proto \
126 --output rasterizer/archrast/gen_ar_event.hpp \
129 rasterizer/archrast/gen_ar_event.cpp: rasterizer/codegen/gen_archrast.py rasterizer/codegen/templates/gen_ar_event.cpp rasterizer/archrast/events.proto rasterizer/codegen/gen_common.py
132 $(srcdir)/rasterizer/codegen/gen_archrast.py \
133 --proto $(srcdir)/rasterizer/archrast/events.proto \
134 --output rasterizer/archrast/gen_ar_event.cpp \
137 rasterizer/archrast/gen_ar_eventhandler.hpp: rasterizer/codegen/gen_archrast.py rasterizer/codegen/templates/gen_ar_eventhandler.hpp rasterizer/archrast/events.proto rasterizer/codegen/gen_common.py
140 $(srcdir)/rasterizer/codegen/gen_archrast.py \
141 --proto $(srcdir)/rasterizer/archrast/events.proto \
142 --output rasterizer/archrast/gen_ar_eventhandler.hpp \
145 rasterizer/archrast/gen_ar_eventhandlerfile.hpp: rasterizer/codegen/gen_archrast.py rasterizer/codegen/templates/gen_ar_eventhandlerfile.hpp rasterizer/archrast/events.proto rasterizer/codegen/gen_common.py
148 $(srcdir)/rasterizer/codegen/gen_archrast.py \
149 --proto $(srcdir)/rasterizer/archrast/events.proto \
150 --output rasterizer/archrast/gen_ar_eventhandlerfile.hpp \
151 --gen_eventhandlerfile_h
153 rasterizer/core/backends/gen_BackendPixelRate0.cpp \
154 rasterizer/core/backends/gen_BackendPixelRate1.cpp \
155 rasterizer/core/backends/gen_BackendPixelRate2.cpp \
156 rasterizer/core/backends/gen_BackendPixelRate3.cpp \
157 rasterizer/core/backends/gen_BackendPixelRate.hpp: \
160 # 5 SWR_MULTISAMPLE_TYPE_COUNT
161 # 2 SWR_MSAA_SAMPLE_PATTERN_COUNT
162 # 3 SWR_INPUT_COVERAGE_COUNT
164 # 2 forcedSampleCount
167 # use intermediate rule to tell make that all files can be
168 # generated in one invocation of gen_backends.py (prevents
169 # parallel make race condition)
170 .INTERMEDIATE: backend.intermediate
171 backend.intermediate: rasterizer/codegen/gen_backends.py rasterizer/codegen/templates/gen_backend.cpp rasterizer/codegen/templates/gen_header_init.hpp
174 $(srcdir)/rasterizer/codegen/gen_backends.py \
175 --outdir rasterizer/core/backends \
181 rasterizer/core/backends/gen_rasterizer0.cpp \
182 rasterizer/core/backends/gen_rasterizer1.cpp \
183 rasterizer/core/backends/gen_rasterizer2.cpp \
184 rasterizer/core/backends/gen_rasterizer3.cpp \
185 rasterizer/core/backends/gen_rasterizer.hpp: \
186 rasterizer.intermediate
188 # 5 SWR_MULTISAMPLE_TYPE_COUNT
191 # 3 SWR_INPUT_COVERAGE_COUNT
192 # 5 STATE_VALID_TRI_EDGE_COUNT
193 # 2 RasterScissorEdges
195 # use intermediate rule to tell make that all files can be
196 # generated in one invocation of gen_backends.py (prevents
197 # parallel make race condition)
198 .INTERMEDIATE: rasterizer.intermediate
199 rasterizer.intermediate: rasterizer/codegen/gen_backends.py rasterizer/codegen/templates/gen_rasterizer.cpp rasterizer/codegen/templates/gen_header_init.hpp
202 $(srcdir)/rasterizer/codegen/gen_backends.py \
203 --outdir rasterizer/core/backends \
211 $(top_builddir)/src/gallium/auxiliary/libgallium.la \
212 $(top_builddir)/src/mesa/libmesagallium.la \
224 lib_LTLIBRARIES = libswrAVX.la libswrAVX2.la
226 libswrAVX_la_CXXFLAGS = \
227 $(SWR_AVX_CXXFLAGS) \
228 -DKNOB_ARCH=KNOB_ARCH_AVX \
231 libswrAVX_la_SOURCES = \
234 libswrAVX_la_LIBADD = \
237 libswrAVX_la_LDFLAGS = \
240 libswrAVX2_la_CXXFLAGS = \
241 $(SWR_AVX2_CXXFLAGS) \
242 -DKNOB_ARCH=KNOB_ARCH_AVX2 \
245 libswrAVX2_la_SOURCES = \
248 libswrAVX2_la_LIBADD = \
251 libswrAVX2_la_LDFLAGS = \
254 include $(top_srcdir)/install-gallium-links.mk
256 # Generated gen_builder.hpp is not backwards compatible. So ship only one
257 # created with the oldest supported version of LLVM.
259 if SWR_INVALID_LLVM_VERSION
260 @echo "*******************************************************"
261 @echo "LLVM 3.9.0 or LLVM 3.9.1 required to create the tarball"
262 @echo "*******************************************************"
268 rasterizer/archrast/events.proto \
269 rasterizer/codegen/gen_llvm_ir_macros.py \
270 rasterizer/codegen/gen_llvm_types.py \
271 rasterizer/codegen/gen_archrast.py \
272 rasterizer/codegen/gen_backends.py \
273 rasterizer/codegen/gen_common.py \
274 rasterizer/codegen/gen_knobs.py \
275 rasterizer/codegen/knob_defs.py \
276 rasterizer/codegen/templates/gen_ar_event.cpp \
277 rasterizer/codegen/templates/gen_ar_event.hpp \
278 rasterizer/codegen/templates/gen_ar_eventhandler.hpp \
279 rasterizer/codegen/templates/gen_ar_eventhandlerfile.hpp \
280 rasterizer/codegen/templates/gen_backend.cpp \
281 rasterizer/codegen/templates/gen_builder.hpp \
282 rasterizer/codegen/templates/gen_header_init.hpp \
283 rasterizer/codegen/templates/gen_knobs.cpp \
284 rasterizer/codegen/templates/gen_llvm.hpp \
285 rasterizer/codegen/templates/gen_rasterizer.cpp