android: anv_extensions.c is generated to libmesa_vulkan_common
[mesa.git] / src / intel / Android.vulkan.mk
1 # Copyright © 2017 Intel Corporation
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 shall be included
11 # in all copies or substantial portions of the Software.
12 #
13 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
16 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
19 # DEALINGS IN THE SOFTWARE.
20
21 LOCAL_PATH := $(call my-dir)
22
23 include $(CLEAR_VARS)
24 include $(LOCAL_PATH)/Makefile.sources
25
26 VK_ENTRYPOINTS_SCRIPT := $(MESA_PYTHON2) $(LOCAL_PATH)/vulkan/anv_entrypoints_gen.py
27
28 VK_EXTENSIONS_SCRIPT := $(MESA_PYTHON2) $(LOCAL_PATH)/vulkan/anv_extensions.py
29
30 VULKAN_COMMON_INCLUDES := \
31 $(MESA_TOP)/src/mapi \
32 $(MESA_TOP)/src/gallium/auxiliary \
33 $(MESA_TOP)/src/gallium/include \
34 $(MESA_TOP)/src/mesa \
35 $(MESA_TOP)/src/vulkan/wsi \
36 $(MESA_TOP)/src/vulkan/util \
37 $(MESA_TOP)/src/intel \
38 $(MESA_TOP)/include/drm-uapi \
39 $(MESA_TOP)/src/intel/vulkan
40
41 # libmesa_anv_entrypoints with header and dummy.c
42 #
43 # This static library is built to pull entrypoints header
44 # for multiple gen specific build targets below. The c file
45 # is generated separately for libmesa_vulkan_common to avoid
46 # duplicate symbols when linking the anv libraries.
47
48 include $(CLEAR_VARS)
49 LOCAL_MODULE := libmesa_anv_entrypoints
50 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
51
52 intermediates := $(call local-generated-sources-dir)
53
54 LOCAL_C_INCLUDES := \
55 $(VULKAN_COMMON_INCLUDES)
56
57 LOCAL_GENERATED_SOURCES += $(intermediates)/vulkan/anv_entrypoints.h
58 LOCAL_GENERATED_SOURCES += $(intermediates)/vulkan/dummy.c
59
60 $(intermediates)/vulkan/dummy.c:
61 @mkdir -p $(dir $@)
62 @echo "Gen Dummy: $(PRIVATE_MODULE) <= $(notdir $(@))"
63 $(hide) touch $@
64
65 $(intermediates)/vulkan/anv_entrypoints.h: $(intermediates)/vulkan/dummy.c
66 $(VK_ENTRYPOINTS_SCRIPT) \
67 --outdir $(dir $@) \
68 --xml $(MESA_TOP)/src/vulkan/registry/vk.xml
69
70 LOCAL_EXPORT_C_INCLUDE_DIRS := \
71 $(intermediates)
72
73 LOCAL_SHARED_LIBRARIES := libdrm
74
75 include $(MESA_COMMON_MK)
76 include $(BUILD_STATIC_LIBRARY)
77
78 ANV_INCLUDES := \
79 $(VULKAN_COMMON_INCLUDES) \
80 $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_anv_entrypoints,,)/vulkan \
81 $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_nir,,)/nir \
82 $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_vulkan_util,,)/util
83
84 #
85 # libanv for gen7
86 #
87
88 include $(CLEAR_VARS)
89 LOCAL_MODULE := libmesa_anv_gen7
90 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
91
92 LOCAL_SRC_FILES := $(VULKAN_GEN7_FILES)
93 LOCAL_CFLAGS := -DGEN_VERSIONx10=70
94
95 LOCAL_C_INCLUDES := $(ANV_INCLUDES)
96
97 LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_anv_entrypoints libmesa_genxml
98
99 LOCAL_SHARED_LIBRARIES := libdrm
100
101 include $(MESA_COMMON_MK)
102 include $(BUILD_STATIC_LIBRARY)
103
104 #
105 # libanv for gen75
106 #
107
108 include $(CLEAR_VARS)
109 LOCAL_MODULE := libmesa_anv_gen75
110 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
111
112 LOCAL_SRC_FILES := $(VULKAN_GEN75_FILES)
113 LOCAL_CFLAGS := -DGEN_VERSIONx10=75
114
115 LOCAL_C_INCLUDES := $(ANV_INCLUDES)
116
117 LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_anv_entrypoints libmesa_genxml
118
119 LOCAL_SHARED_LIBRARIES := libdrm
120
121 include $(MESA_COMMON_MK)
122 include $(BUILD_STATIC_LIBRARY)
123
124 #
125 # libanv for gen8
126 #
127
128 include $(CLEAR_VARS)
129 LOCAL_MODULE := libmesa_anv_gen8
130 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
131
132 LOCAL_SRC_FILES := $(VULKAN_GEN8_FILES)
133 LOCAL_CFLAGS := -DGEN_VERSIONx10=80
134
135 LOCAL_C_INCLUDES := $(ANV_INCLUDES)
136
137 LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_anv_entrypoints libmesa_genxml
138
139 LOCAL_SHARED_LIBRARIES := libdrm
140
141 include $(MESA_COMMON_MK)
142 include $(BUILD_STATIC_LIBRARY)
143
144 #
145 # libanv for gen9
146 #
147
148 include $(CLEAR_VARS)
149 LOCAL_MODULE := libmesa_anv_gen9
150 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
151
152 LOCAL_SRC_FILES := $(VULKAN_GEN9_FILES)
153 LOCAL_CFLAGS := -DGEN_VERSIONx10=90
154
155 LOCAL_C_INCLUDES := $(ANV_INCLUDES)
156
157 LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_anv_entrypoints libmesa_genxml
158
159 LOCAL_SHARED_LIBRARIES := libdrm
160
161 include $(MESA_COMMON_MK)
162 include $(BUILD_STATIC_LIBRARY)
163
164 #
165 # libanv for gen10
166 #
167
168 include $(CLEAR_VARS)
169 LOCAL_MODULE := libmesa_anv_gen10
170 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
171
172 LOCAL_SRC_FILES := $(VULKAN_GEN10_FILES)
173 LOCAL_CFLAGS := -DGEN_VERSIONx10=100
174
175 LOCAL_C_INCLUDES := $(ANV_INCLUDES)
176
177 LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_anv_entrypoints libmesa_genxml
178
179 LOCAL_SHARED_LIBRARIES := libdrm
180
181 include $(MESA_COMMON_MK)
182 include $(BUILD_STATIC_LIBRARY)
183
184 #
185 # libmesa_vulkan_common
186 #
187
188 include $(CLEAR_VARS)
189 LOCAL_MODULE := libmesa_vulkan_common
190 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
191
192 intermediates := $(call local-generated-sources-dir)
193
194 LOCAL_SRC_FILES := $(VULKAN_FILES)
195
196 LOCAL_C_INCLUDES := \
197 $(ANV_INCLUDES) \
198 $(MESA_TOP)/src/compiler
199
200 LOCAL_WHOLE_STATIC_LIBRARIES := \
201 libmesa_anv_entrypoints \
202 libmesa_genxml \
203 libmesa_vulkan_util
204
205 # The rule generates both C and H files, but due to some strange
206 # reason generating the files once leads to link-time issues.
207 # Work around create them here as well - we're safe from race
208 # conditions since they are stored in another location.
209
210 LOCAL_GENERATED_SOURCES += $(intermediates)/vulkan/anv_entrypoints.c
211 LOCAL_GENERATED_SOURCES += $(intermediates)/vulkan/anv_extensions.c
212
213 $(intermediates)/vulkan/anv_entrypoints.c:
214 @mkdir -p $(dir $@)
215 $(VK_ENTRYPOINTS_SCRIPT) \
216 --xml $(MESA_TOP)/src/vulkan/registry/vk.xml \
217 --outdir $(dir $@)
218
219 $(intermediates)/vulkan/anv_extensions.c:
220 @mkdir -p $(dir $@)
221 $(VK_EXTENSIONS_SCRIPT) \
222 --xml $(MESA_TOP)/src/vulkan/registry/vk.xml \
223 --out $@
224
225 LOCAL_SHARED_LIBRARIES := libdrm
226
227 include $(MESA_COMMON_MK)
228 include $(BUILD_STATIC_LIBRARY)
229
230
231 #
232 # libvulkan_intel
233 #
234
235 include $(CLEAR_VARS)
236
237 LOCAL_MODULE := libvulkan_intel
238 LOCAL_MODULE_CLASS := SHARED_LIBRARIES
239
240 LOCAL_LDFLAGS += -Wl,--build-id=sha1
241
242 LOCAL_SRC_FILES := \
243 $(VULKAN_GEM_FILES)
244
245 LOCAL_C_INCLUDES := \
246 $(VULKAN_COMMON_INCLUDES) \
247 $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_anv_entrypoints,,)/vulkan
248
249 LOCAL_EXPORT_C_INCLUDE_DIRS := $(MESA_TOP)/src/intel/vulkan
250
251 LOCAL_WHOLE_STATIC_LIBRARIES := \
252 libmesa_nir \
253 libmesa_isl \
254 libmesa_glsl \
255 libmesa_util \
256 libmesa_blorp \
257 libmesa_compiler \
258 libmesa_intel_common \
259 libmesa_vulkan_common \
260 libmesa_anv_gen7 \
261 libmesa_anv_gen75 \
262 libmesa_anv_gen8 \
263 libmesa_anv_gen9 \
264 libmesa_anv_gen10 \
265 libmesa_intel_compiler \
266 libmesa_anv_entrypoints
267
268 LOCAL_SHARED_LIBRARIES := libdrm libz
269
270 include $(MESA_COMMON_MK)
271 include $(BUILD_SHARED_LIBRARY)