1#
2# Copyright (C) 2011 Intel Corporation
3# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@gmail.com>
4# Copyright (C) 2010-2011 LunarG
5#
6# Permission is hereby granted, free of charge, to any person obtaining a
7# copy of this software and associated documentation files (the "Software"),
8# to deal in the Software without restriction, including without limitation
9# the rights to use, copy, modify, merge, publish, distribute, sublicense,
10# and/or sell copies of the Software, and to permit persons to whom the
11# Software is furnished to do so, subject to the following conditions:
12#
13# The above copyright notice and this permission notice shall be included
14# in all copies or substantial portions of the Software.
15#
16# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
19# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22# DEALINGS IN THE SOFTWARE.
23#
24
25LOCAL_PATH := $(call my-dir)
26
27# Import variables i965_FILES.
28include $(LOCAL_PATH)/Makefile.sources
29
30I965_PERGEN_COMMON_INCLUDES := \
31	$(MESA_DRI_C_INCLUDES) \
32	$(MESA_TOP)/src/intel \
33	$(MESA_TOP)/include
34
35I965_PERGEN_SHARED_LIBRARIES := \
36	$(MESA_DRI_SHARED_LIBRARIES)
37
38I965_PERGEN_STATIC_LIBRARIES := \
39	libmesa_genxml \
40	libmesa_nir
41
42I965_PERGEN_LIBS := \
43	libmesa_i965_gen4 \
44	libmesa_i965_gen45 \
45	libmesa_i965_gen5 \
46	libmesa_i965_gen6 \
47	libmesa_i965_gen7 \
48	libmesa_i965_gen75 \
49	libmesa_i965_gen8 \
50	libmesa_i965_gen9 \
51	libmesa_i965_gen10 \
52	libmesa_i965_gen11
53
54# ---------------------------------------
55# Build libmesa_i965_gen4
56# ---------------------------------------
57
58include $(CLEAR_VARS)
59
60LOCAL_MODULE := libmesa_i965_gen4
61
62LOCAL_C_INCLUDES := $(I965_PERGEN_COMMON_INCLUDES)
63
64LOCAL_SRC_FILES := $(i965_gen4_FILES)
65
66LOCAL_SHARED_LIBRARIES := $(I965_PERGEN_SHARED_LIBRARIES)
67
68LOCAL_STATIC_LIBRARIES := $(I965_PERGEN_STATIC_LIBRARIES)
69
70LOCAL_CFLAGS := -DGEN_VERSIONx10=40
71
72include $(MESA_COMMON_MK)
73include $(BUILD_STATIC_LIBRARY)
74
75# ---------------------------------------
76# Build libmesa_i965_gen45
77# ---------------------------------------
78
79include $(CLEAR_VARS)
80
81LOCAL_MODULE := libmesa_i965_gen45
82
83LOCAL_C_INCLUDES := $(I965_PERGEN_COMMON_INCLUDES)
84
85LOCAL_SRC_FILES := $(i965_gen45_FILES)
86
87LOCAL_SHARED_LIBRARIES := $(I965_PERGEN_SHARED_LIBRARIES)
88
89LOCAL_STATIC_LIBRARIES := $(I965_PERGEN_STATIC_LIBRARIES)
90
91LOCAL_CFLAGS := -DGEN_VERSIONx10=45
92
93include $(MESA_COMMON_MK)
94include $(BUILD_STATIC_LIBRARY)
95
96# ---------------------------------------
97# Build libmesa_i965_gen5
98# ---------------------------------------
99
100include $(CLEAR_VARS)
101
102LOCAL_MODULE := libmesa_i965_gen5
103
104LOCAL_C_INCLUDES := $(I965_PERGEN_COMMON_INCLUDES)
105
106LOCAL_SRC_FILES := $(i965_gen5_FILES)
107
108LOCAL_SHARED_LIBRARIES := $(I965_PERGEN_SHARED_LIBRARIES)
109
110LOCAL_STATIC_LIBRARIES := $(I965_PERGEN_STATIC_LIBRARIES)
111
112LOCAL_CFLAGS := -DGEN_VERSIONx10=50
113
114include $(MESA_COMMON_MK)
115include $(BUILD_STATIC_LIBRARY)
116
117# ---------------------------------------
118# Build libmesa_i965_gen6
119# ---------------------------------------
120
121include $(CLEAR_VARS)
122
123LOCAL_MODULE := libmesa_i965_gen6
124
125LOCAL_C_INCLUDES := $(I965_PERGEN_COMMON_INCLUDES)
126
127LOCAL_SRC_FILES := $(i965_gen6_FILES)
128
129LOCAL_SHARED_LIBRARIES := $(I965_PERGEN_SHARED_LIBRARIES)
130
131LOCAL_STATIC_LIBRARIES := $(I965_PERGEN_STATIC_LIBRARIES)
132
133LOCAL_CFLAGS := -DGEN_VERSIONx10=60
134
135include $(MESA_COMMON_MK)
136include $(BUILD_STATIC_LIBRARY)
137
138# ---------------------------------------
139# Build libmesa_i965_gen7
140# ---------------------------------------
141
142include $(CLEAR_VARS)
143
144LOCAL_MODULE := libmesa_i965_gen7
145
146LOCAL_C_INCLUDES := $(I965_PERGEN_COMMON_INCLUDES)
147
148LOCAL_SRC_FILES := $(i965_gen7_FILES)
149
150LOCAL_SHARED_LIBRARIES := $(I965_PERGEN_SHARED_LIBRARIES)
151
152LOCAL_STATIC_LIBRARIES := $(I965_PERGEN_STATIC_LIBRARIES)
153
154LOCAL_CFLAGS := -DGEN_VERSIONx10=70
155
156include $(MESA_COMMON_MK)
157include $(BUILD_STATIC_LIBRARY)
158
159# ---------------------------------------
160# Build libmesa_i965_gen75
161# ---------------------------------------
162
163include $(CLEAR_VARS)
164
165LOCAL_MODULE := libmesa_i965_gen75
166
167LOCAL_C_INCLUDES := $(I965_PERGEN_COMMON_INCLUDES)
168
169LOCAL_SRC_FILES := $(i965_gen75_FILES)
170
171LOCAL_SHARED_LIBRARIES := $(I965_PERGEN_SHARED_LIBRARIES)
172
173LOCAL_STATIC_LIBRARIES := $(I965_PERGEN_STATIC_LIBRARIES)
174
175LOCAL_CFLAGS := -DGEN_VERSIONx10=75
176
177include $(MESA_COMMON_MK)
178include $(BUILD_STATIC_LIBRARY)
179
180# ---------------------------------------
181# Build libmesa_i965_gen8
182# ---------------------------------------
183
184include $(CLEAR_VARS)
185
186LOCAL_MODULE := libmesa_i965_gen8
187
188LOCAL_C_INCLUDES := $(I965_PERGEN_COMMON_INCLUDES)
189
190LOCAL_SRC_FILES := $(i965_gen8_FILES)
191
192LOCAL_SHARED_LIBRARIES := $(I965_PERGEN_SHARED_LIBRARIES)
193
194LOCAL_STATIC_LIBRARIES := $(I965_PERGEN_STATIC_LIBRARIES)
195
196LOCAL_CFLAGS := -DGEN_VERSIONx10=80
197
198include $(MESA_COMMON_MK)
199include $(BUILD_STATIC_LIBRARY)
200
201# ---------------------------------------
202# Build libmesa_i965_gen9
203# ---------------------------------------
204
205include $(CLEAR_VARS)
206
207LOCAL_MODULE := libmesa_i965_gen9
208
209LOCAL_C_INCLUDES := $(I965_PERGEN_COMMON_INCLUDES)
210
211LOCAL_SRC_FILES := $(i965_gen9_FILES)
212
213LOCAL_SHARED_LIBRARIES := $(I965_PERGEN_SHARED_LIBRARIES)
214
215LOCAL_STATIC_LIBRARIES := $(I965_PERGEN_STATIC_LIBRARIES)
216
217LOCAL_CFLAGS := -DGEN_VERSIONx10=90
218
219include $(MESA_COMMON_MK)
220include $(BUILD_STATIC_LIBRARY)
221
222# ---------------------------------------
223# Build libmesa_i965_gen10
224# ---------------------------------------
225
226include $(CLEAR_VARS)
227
228LOCAL_MODULE := libmesa_i965_gen10
229
230LOCAL_C_INCLUDES := $(I965_PERGEN_COMMON_INCLUDES)
231
232LOCAL_SRC_FILES := $(i965_gen10_FILES)
233
234LOCAL_SHARED_LIBRARIES := $(I965_PERGEN_SHARED_LIBRARIES)
235
236LOCAL_STATIC_LIBRARIES := $(I965_PERGEN_STATIC_LIBRARIES)
237
238LOCAL_CFLAGS := -DGEN_VERSIONx10=100
239
240include $(MESA_COMMON_MK)
241include $(BUILD_STATIC_LIBRARY)
242
243# ---------------------------------------
244# Build libmesa_i965_gen11
245# ---------------------------------------
246
247include $(CLEAR_VARS)
248
249LOCAL_MODULE := libmesa_i965_gen11
250
251LOCAL_C_INCLUDES := $(I965_PERGEN_COMMON_INCLUDES)
252
253LOCAL_SRC_FILES := $(i965_gen11_FILES)
254
255LOCAL_SHARED_LIBRARIES := $(I965_PERGEN_SHARED_LIBRARIES)
256
257LOCAL_STATIC_LIBRARIES := $(I965_PERGEN_STATIC_LIBRARIES)
258
259LOCAL_CFLAGS := -DGEN_VERSIONx10=110
260
261include $(MESA_COMMON_MK)
262include $(BUILD_STATIC_LIBRARY)
263
264# ---------------------------------------
265# Build i965_dri
266# ---------------------------------------
267
268include $(CLEAR_VARS)
269
270LOCAL_MODULE := i965_dri
271LOCAL_MODULE_RELATIVE_PATH := $(MESA_DRI_MODULE_REL_PATH)
272LOCAL_LDFLAGS += $(MESA_DRI_LDFLAGS)
273
274LOCAL_CFLAGS := \
275	$(MESA_DRI_CFLAGS)
276
277LOCAL_C_INCLUDES := \
278	$(MESA_DRI_C_INCLUDES) \
279	$(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_glsl,,) \
280	$(MESA_TOP)/include
281
282LOCAL_SRC_FILES := \
283	$(i965_FILES)
284
285LOCAL_WHOLE_STATIC_LIBRARIES := \
286	$(MESA_DRI_WHOLE_STATIC_LIBRARIES) \
287	$(I965_PERGEN_LIBS) \
288	libmesa_intel_dev \
289	libmesa_intel_common \
290	libmesa_isl \
291	libmesa_blorp \
292	libmesa_intel_compiler \
293	libmesa_intel_perf
294
295ifeq ($(ARCH_X86_HAVE_SSE4_1),true)
296LOCAL_CFLAGS += \
297	-DUSE_SSE41
298endif
299
300LOCAL_SHARED_LIBRARIES := \
301	$(MESA_DRI_SHARED_LIBRARIES)
302
303LOCAL_GENERATED_SOURCES := \
304	$(MESA_DRI_OPTIONS_H) \
305	$(MESA_GEN_NIR_H)
306
307LOCAL_MODULE_CLASS := SHARED_LIBRARIES
308
309intermediates := $(call local-generated-sources-dir)
310
311LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/, \
312	$(i965_oa_GENERATED_FILES))
313
314i965_oa_xml_FILES := $(addprefix $(MESA_TOP)/src/mesa/drivers/dri/i965/, \
315	$(i965_oa_xml_FILES))
316
317$(intermediates)/brw_oa_metrics.c: $(LOCAL_PATH)/brw_oa.py $(i965_oa_xml_FILES)
318	@echo "target Generated: $(PRIVATE_MODULE) <= $(notdir $(@))"
319	@mkdir -p $(dir $@)
320	$(hide) $(MESA_PYTHON2) $< \
321	--code=$@ \
322	--header=$(call generated-sources-dir-for,SHARED_LIBRARIES,i965_dri,,)/brw_oa_metrics.h \
323	$(i965_oa_xml_FILES)
324
325$(intermediates)/brw_oa_metrics.h: $(intermediates)/brw_oa_metrics.c
326
327include $(MESA_COMMON_MK)
328include $(BUILD_SHARED_LIBRARY)
329