Clone of mesa.
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

Makefile.am 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. # Copyright (C) 2015 Intel Corporation. All Rights Reserved.
  2. #
  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:
  9. #
  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
  12. # Software.
  13. #
  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
  20. # IN THE SOFTWARE.
  21. include Makefile.sources
  22. include $(top_srcdir)/src/gallium/Automake.inc
  23. AM_CXXFLAGS = $(GALLIUM_DRIVER_CFLAGS) $(SWR_CXX11_CXXFLAGS)
  24. noinst_LTLIBRARIES = libmesaswr.la
  25. # gen_knobs.* included here to provide driver access to swr configuration
  26. libmesaswr_la_SOURCES = \
  27. $(CXX_SOURCES) \
  28. $(COMMON_CXX_SOURCES) \
  29. $(JITTER_CXX_SOURCES) \
  30. rasterizer/codegen/gen_knobs.cpp \
  31. rasterizer/codegen/gen_knobs.h \
  32. $(LOADER_SOURCES)
  33. COMMON_CXXFLAGS = \
  34. -fno-strict-aliasing \
  35. $(GALLIUM_DRIVER_CFLAGS) \
  36. $(LLVM_CXXFLAGS) \
  37. $(SWR_CXX11_CXXFLAGS) \
  38. -I$(builddir)/rasterizer/codegen \
  39. -I$(builddir)/rasterizer/core \
  40. -I$(builddir)/rasterizer/jitter \
  41. -I$(builddir)/rasterizer/archrast \
  42. -I$(srcdir)/rasterizer \
  43. -I$(srcdir)/rasterizer/core \
  44. -I$(srcdir)/rasterizer/codegen \
  45. -I$(srcdir)/rasterizer/jitter \
  46. -I$(srcdir)/rasterizer/archrast
  47. # SWR_AVX_CXXFLAGS needed for intrinsic usage in swr api headers
  48. libmesaswr_la_CXXFLAGS = \
  49. $(SWR_AVX_CXXFLAGS) \
  50. $(COMMON_CXXFLAGS)
  51. if HAVE_SWR_AVX
  52. libmesaswr_la_CXXFLAGS += -DHAVE_SWR_AVX
  53. endif
  54. if HAVE_SWR_AVX2
  55. libmesaswr_la_CXXFLAGS += -DHAVE_SWR_AVX2
  56. endif
  57. if HAVE_SWR_KNL
  58. libmesaswr_la_CXXFLAGS += -DHAVE_SWR_KNL
  59. endif
  60. if HAVE_SWR_SKX
  61. libmesaswr_la_CXXFLAGS += -DHAVE_SWR_SKX
  62. endif
  63. COMMON_SOURCES = \
  64. $(ARCHRAST_CXX_SOURCES) \
  65. $(COMMON_CXX_SOURCES) \
  66. $(CORE_CXX_SOURCES) \
  67. $(MEMORY_CXX_SOURCES) \
  68. $(BUILT_SOURCES)
  69. BUILT_SOURCES = \
  70. gen_swr_context_llvm.h \
  71. rasterizer/codegen/gen_knobs.cpp \
  72. rasterizer/codegen/gen_knobs.h \
  73. rasterizer/jitter/gen_state_llvm.h \
  74. rasterizer/jitter/gen_builder.hpp \
  75. rasterizer/jitter/gen_builder_x86.hpp \
  76. rasterizer/archrast/gen_ar_event.hpp \
  77. rasterizer/archrast/gen_ar_event.cpp \
  78. rasterizer/archrast/gen_ar_eventhandler.hpp \
  79. rasterizer/archrast/gen_ar_eventhandlerfile.hpp \
  80. rasterizer/core/backends/gen_BackendPixelRate0.cpp \
  81. rasterizer/core/backends/gen_BackendPixelRate1.cpp \
  82. rasterizer/core/backends/gen_BackendPixelRate2.cpp \
  83. rasterizer/core/backends/gen_BackendPixelRate3.cpp \
  84. rasterizer/core/backends/gen_BackendPixelRate.hpp \
  85. rasterizer/core/backends/gen_rasterizer0.cpp \
  86. rasterizer/core/backends/gen_rasterizer1.cpp \
  87. rasterizer/core/backends/gen_rasterizer2.cpp \
  88. rasterizer/core/backends/gen_rasterizer3.cpp \
  89. rasterizer/core/backends/gen_rasterizer.hpp
  90. MKDIR_GEN = $(AM_V_at)$(MKDIR_P) $(@D)
  91. PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS)
  92. gen_swr_context_llvm.h: rasterizer/codegen/gen_llvm_types.py rasterizer/codegen/templates/gen_llvm.hpp swr_context.h
  93. $(PYTHON_GEN) \
  94. $(srcdir)/rasterizer/codegen/gen_llvm_types.py \
  95. --input $(srcdir)/swr_context.h \
  96. --output ./gen_swr_context_llvm.h
  97. 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
  98. $(MKDIR_GEN)
  99. $(PYTHON_GEN) \
  100. $(srcdir)/rasterizer/codegen/gen_knobs.py \
  101. --output rasterizer/codegen/gen_knobs.cpp \
  102. --gen_cpp
  103. 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
  104. $(MKDIR_GEN)
  105. $(PYTHON_GEN) \
  106. $(srcdir)/rasterizer/codegen/gen_knobs.py \
  107. --output rasterizer/codegen/gen_knobs.h \
  108. --gen_h
  109. 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
  110. $(MKDIR_GEN)
  111. $(PYTHON_GEN) \
  112. $(srcdir)/rasterizer/codegen/gen_llvm_types.py \
  113. --input $(srcdir)/rasterizer/core/state.h \
  114. --output rasterizer/jitter/gen_state_llvm.h
  115. rasterizer/jitter/gen_builder.hpp: rasterizer/codegen/gen_llvm_ir_macros.py rasterizer/codegen/templates/gen_builder.hpp rasterizer/codegen/gen_common.py
  116. $(MKDIR_GEN)
  117. $(PYTHON_GEN) \
  118. $(srcdir)/rasterizer/codegen/gen_llvm_ir_macros.py \
  119. --input $(LLVM_INCLUDEDIR)/llvm/IR/IRBuilder.h \
  120. --output rasterizer/jitter \
  121. --gen_h
  122. rasterizer/jitter/gen_builder_x86.hpp: rasterizer/codegen/gen_llvm_ir_macros.py rasterizer/codegen/templates/gen_builder.hpp rasterizer/codegen/gen_common.py
  123. $(MKDIR_GEN)
  124. $(PYTHON_GEN) \
  125. $(srcdir)/rasterizer/codegen/gen_llvm_ir_macros.py \
  126. --output rasterizer/jitter \
  127. --gen_x86_h
  128. 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
  129. $(MKDIR_GEN)
  130. $(PYTHON_GEN) \
  131. $(srcdir)/rasterizer/codegen/gen_archrast.py \
  132. --proto $(srcdir)/rasterizer/archrast/events.proto \
  133. --output rasterizer/archrast/gen_ar_event.hpp \
  134. --gen_event_h
  135. 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
  136. $(MKDIR_GEN)
  137. $(PYTHON_GEN) \
  138. $(srcdir)/rasterizer/codegen/gen_archrast.py \
  139. --proto $(srcdir)/rasterizer/archrast/events.proto \
  140. --output rasterizer/archrast/gen_ar_event.cpp \
  141. --gen_event_cpp
  142. 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
  143. $(MKDIR_GEN)
  144. $(PYTHON_GEN) \
  145. $(srcdir)/rasterizer/codegen/gen_archrast.py \
  146. --proto $(srcdir)/rasterizer/archrast/events.proto \
  147. --output rasterizer/archrast/gen_ar_eventhandler.hpp \
  148. --gen_eventhandler_h
  149. 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
  150. $(MKDIR_GEN)
  151. $(PYTHON_GEN) \
  152. $(srcdir)/rasterizer/codegen/gen_archrast.py \
  153. --proto $(srcdir)/rasterizer/archrast/events.proto \
  154. --output rasterizer/archrast/gen_ar_eventhandlerfile.hpp \
  155. --gen_eventhandlerfile_h
  156. rasterizer/core/backends/gen_BackendPixelRate0.cpp \
  157. rasterizer/core/backends/gen_BackendPixelRate1.cpp \
  158. rasterizer/core/backends/gen_BackendPixelRate2.cpp \
  159. rasterizer/core/backends/gen_BackendPixelRate3.cpp \
  160. rasterizer/core/backends/gen_BackendPixelRate.hpp: \
  161. backend.intermediate
  162. # 5 SWR_MULTISAMPLE_TYPE_COUNT
  163. # 2 SWR_MSAA_SAMPLE_PATTERN_COUNT
  164. # 3 SWR_INPUT_COVERAGE_COUNT
  165. # 2 centroid
  166. # 2 forcedSampleCount
  167. # 2 canEarlyZ
  168. # use intermediate rule to tell make that all files can be
  169. # generated in one invocation of gen_backends.py (prevents
  170. # parallel make race condition)
  171. .INTERMEDIATE: backend.intermediate
  172. backend.intermediate: rasterizer/codegen/gen_backends.py rasterizer/codegen/templates/gen_backend.cpp rasterizer/codegen/templates/gen_header_init.hpp
  173. $(MKDIR_GEN)
  174. $(PYTHON_GEN) \
  175. $(srcdir)/rasterizer/codegen/gen_backends.py \
  176. --outdir rasterizer/core/backends \
  177. --dim 5 2 3 2 2 2 \
  178. --numfiles 4 \
  179. --cpp \
  180. --hpp
  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
  187. # 5 SWR_MULTISAMPLE_TYPE_COUNT
  188. # 2 CenterPattern
  189. # 2 Conservative
  190. # 3 SWR_INPUT_COVERAGE_COUNT
  191. # 5 STATE_VALID_TRI_EDGE_COUNT
  192. # 2 RasterScissorEdges
  193. # use intermediate rule to tell make that all files can be
  194. # generated in one invocation of gen_backends.py (prevents
  195. # parallel make race condition)
  196. .INTERMEDIATE: rasterizer.intermediate
  197. rasterizer.intermediate: rasterizer/codegen/gen_backends.py rasterizer/codegen/templates/gen_rasterizer.cpp rasterizer/codegen/templates/gen_header_init.hpp
  198. $(MKDIR_GEN)
  199. $(PYTHON_GEN) \
  200. $(srcdir)/rasterizer/codegen/gen_backends.py \
  201. --outdir rasterizer/core/backends \
  202. --rast \
  203. --dim 5 2 2 3 5 2 \
  204. --numfiles 4 \
  205. --cpp \
  206. --hpp
  207. COMMON_LDFLAGS = \
  208. -shared \
  209. -module \
  210. -no-undefined \
  211. $(GC_SECTIONS) \
  212. $(NO_UNDEFINED)
  213. lib_LTLIBRARIES =
  214. if HAVE_SWR_AVX
  215. lib_LTLIBRARIES += libswrAVX.la
  216. libswrAVX_la_CXXFLAGS = \
  217. $(SWR_AVX_CXXFLAGS) \
  218. -DKNOB_ARCH=KNOB_ARCH_AVX \
  219. $(COMMON_CXXFLAGS)
  220. libswrAVX_la_SOURCES = \
  221. $(COMMON_SOURCES)
  222. libswrAVX_la_LDFLAGS = \
  223. $(COMMON_LDFLAGS)
  224. endif
  225. if HAVE_SWR_AVX2
  226. lib_LTLIBRARIES += libswrAVX2.la
  227. libswrAVX2_la_CXXFLAGS = \
  228. $(SWR_AVX2_CXXFLAGS) \
  229. -DKNOB_ARCH=KNOB_ARCH_AVX2 \
  230. $(COMMON_CXXFLAGS)
  231. libswrAVX2_la_SOURCES = \
  232. $(COMMON_SOURCES)
  233. libswrAVX2_la_LDFLAGS = \
  234. $(COMMON_LDFLAGS)
  235. endif
  236. if HAVE_SWR_KNL
  237. lib_LTLIBRARIES += libswrKNL.la
  238. libswrKNL_la_CXXFLAGS = \
  239. $(SWR_KNL_CXXFLAGS) \
  240. -DKNOB_ARCH=KNOB_ARCH_AVX512 -DAVX512F_STRICT \
  241. $(COMMON_CXXFLAGS)
  242. libswrKNL_la_SOURCES = \
  243. $(COMMON_SOURCES)
  244. libswrKNL_la_LDFLAGS = \
  245. $(COMMON_LDFLAGS)
  246. endif
  247. if HAVE_SWR_SKX
  248. lib_LTLIBRARIES += libswrSKX.la
  249. libswrSKX_la_CXXFLAGS = \
  250. $(SWR_SKX_CXXFLAGS) \
  251. -DKNOB_ARCH=KNOB_ARCH_AVX512 \
  252. $(COMMON_CXXFLAGS)
  253. libswrSKX_la_SOURCES = \
  254. $(COMMON_SOURCES)
  255. libswrSKX_la_LDFLAGS = \
  256. $(COMMON_LDFLAGS)
  257. endif
  258. include $(top_srcdir)/install-gallium-links.mk
  259. # Generated gen_builder.hpp is not backwards compatible. So ship only one
  260. # created with the oldest supported version of LLVM.
  261. dist-hook:
  262. if SWR_INVALID_LLVM_VERSION
  263. @echo "*******************************************************"
  264. @echo "LLVM 3.9.0 or LLVM 3.9.1 required to create the tarball"
  265. @echo "*******************************************************"
  266. @test
  267. endif
  268. EXTRA_DIST = \
  269. SConscript \
  270. rasterizer/archrast/events.proto \
  271. rasterizer/codegen/gen_llvm_ir_macros.py \
  272. rasterizer/codegen/gen_llvm_types.py \
  273. rasterizer/codegen/gen_archrast.py \
  274. rasterizer/codegen/gen_backends.py \
  275. rasterizer/codegen/gen_common.py \
  276. rasterizer/codegen/gen_knobs.py \
  277. rasterizer/codegen/knob_defs.py \
  278. rasterizer/codegen/templates/gen_ar_event.cpp \
  279. rasterizer/codegen/templates/gen_ar_event.hpp \
  280. rasterizer/codegen/templates/gen_ar_eventhandler.hpp \
  281. rasterizer/codegen/templates/gen_ar_eventhandlerfile.hpp \
  282. rasterizer/codegen/templates/gen_backend.cpp \
  283. rasterizer/codegen/templates/gen_builder.hpp \
  284. rasterizer/codegen/templates/gen_header_init.hpp \
  285. rasterizer/codegen/templates/gen_knobs.cpp \
  286. rasterizer/codegen/templates/gen_llvm.hpp \
  287. rasterizer/codegen/templates/gen_rasterizer.cpp