Android.mk revision 8d50174ff0e80bc3846f9dfd6f7d154fc4949db4
1
2LOCAL_PATH:=$(call my-dir)
3
4rs_base_CFLAGS := -Werror -Wall -Wno-unused-parameter -Wno-unused-variable -fno-exceptions
5ifeq ($(TARGET_BUILD_PDK), true)
6  rs_base_CFLAGS += -D__RS_PDK__
7endif
8
9ifneq ($(OVERRIDE_RS_DRIVER),)
10  rs_base_CFLAGS += -DOVERRIDE_RS_DRIVER=$(OVERRIDE_RS_DRIVER)
11endif
12
13ifeq ($(RS_FIND_OFFSETS), true)
14  rs_base_CFLAGS += -DRS_FIND_OFFSETS
15endif
16
17include $(CLEAR_VARS)
18ifneq ($(HOST_OS),windows)
19LOCAL_CLANG := true
20endif
21LOCAL_MODULE := libRSDriver
22LOCAL_MODULE_TARGET_ARCH_WARN := arm mips mips64 x86 x86_64 arm64
23
24LOCAL_SRC_FILES:= \
25	driver/rsdAllocation.cpp \
26	driver/rsdBcc.cpp \
27	driver/rsdCore.cpp \
28	driver/rsdFrameBuffer.cpp \
29	driver/rsdFrameBufferObj.cpp \
30	driver/rsdGL.cpp \
31	driver/rsdMesh.cpp \
32	driver/rsdMeshObj.cpp \
33	driver/rsdPath.cpp \
34	driver/rsdProgram.cpp \
35	driver/rsdProgramRaster.cpp \
36	driver/rsdProgramStore.cpp \
37	driver/rsdRuntimeStubs.cpp \
38	driver/rsdSampler.cpp \
39	driver/rsdScriptGroup.cpp \
40	driver/rsdShader.cpp \
41	driver/rsdShaderCache.cpp \
42	driver/rsdVertexArray.cpp
43
44
45LOCAL_SHARED_LIBRARIES += libRS libRSCpuRef libc++
46LOCAL_SHARED_LIBRARIES += liblog libcutils libutils libEGL libGLESv1_CM libGLESv2
47LOCAL_SHARED_LIBRARIES += libui libgui libsync
48
49LOCAL_SHARED_LIBRARIES += libbcc libbcinfo libLLVM
50
51LOCAL_C_INCLUDES += frameworks/compile/libbcc/include
52LOCAL_C_INCLUDES += frameworks/rs/cpu_ref/linkloader/include
53LOCAL_C_INCLUDES += external/libcxx/include
54
55LOCAL_CFLAGS += $(rs_base_CFLAGS)
56LOCAL_CPPFLAGS += -fno-exceptions
57
58LOCAL_MODULE_TAGS := optional
59
60include $(BUILD_SHARED_LIBRARY)
61
62# Build rsg-generator ====================
63include $(CLEAR_VARS)
64
65LOCAL_MODULE := rsg-generator
66
67# These symbols are normally defined by BUILD_XXX, but we need to define them
68# here so that local-intermediates-dir works.
69
70LOCAL_IS_HOST_MODULE := true
71LOCAL_MODULE_CLASS := EXECUTABLES
72intermediates := $(local-intermediates-dir)
73
74LOCAL_SRC_FILES:= \
75    spec.l \
76    rsg_generator.c
77
78include $(BUILD_HOST_EXECUTABLE)
79
80# TODO: This should go into build/core/config.mk
81RSG_GENERATOR:=$(LOCAL_BUILT_MODULE)
82
83include $(CLEAR_VARS)
84ifneq ($(HOST_OS),windows)
85LOCAL_CLANG := true
86endif
87LOCAL_MODULE := libRS
88LOCAL_MODULE_TARGET_ARCH_WARN := arm mips mips64 x86 x86_64 arm64
89
90LOCAL_MODULE_CLASS := SHARED_LIBRARIES
91generated_sources:= $(local-generated-sources-dir)
92
93# Generate custom headers
94
95GEN := $(addprefix $(generated_sources)/, \
96            rsgApiStructs.h \
97            rsgApiFuncDecl.h \
98        )
99
100$(GEN) : PRIVATE_PATH := $(LOCAL_PATH)
101$(GEN) : PRIVATE_CUSTOM_TOOL = cat $(PRIVATE_PATH)/rs.spec $(PRIVATE_PATH)/rsg.spec $(PRIVATE_PATH)/rs_native.spec | $(RSG_GENERATOR) $< $@
102$(GEN) : $(RSG_GENERATOR) $(LOCAL_PATH)/rs.spec $(LOCAL_PATH)/rsg.spec $(LOCAL_PATH)/rs_native.spec
103$(GEN): $(generated_sources)/%.h : $(LOCAL_PATH)/%.h.rsg
104	$(transform-generated-source)
105
106# used in jni/Android.mk
107rs_generated_source += $(GEN)
108LOCAL_GENERATED_SOURCES += $(GEN)
109
110# Generate custom source files
111
112GEN := $(addprefix $(generated_sources)/, \
113            rsgApi.cpp \
114            rsgApiReplay.cpp \
115        )
116
117$(GEN) : PRIVATE_PATH := $(LOCAL_PATH)
118$(GEN) : PRIVATE_CUSTOM_TOOL = cat $(PRIVATE_PATH)/rs.spec $(PRIVATE_PATH)/rsg.spec $(PRIVATE_PATH)/rs_native.spec | $(RSG_GENERATOR) $< $@
119$(GEN) : $(RSG_GENERATOR) $(LOCAL_PATH)/rs.spec $(LOCAL_PATH)/rsg.spec $(LOCAL_PATH)/rs_native.spec
120$(GEN): $(generated_sources)/%.cpp : $(LOCAL_PATH)/%.cpp.rsg
121	$(transform-generated-source)
122
123# used in jni/Android.mk
124rs_generated_source += $(GEN)
125
126LOCAL_GENERATED_SOURCES += $(GEN)
127
128LOCAL_SRC_FILES:= \
129	rsAdapter.cpp \
130	rsAllocation.cpp \
131	rsAnimation.cpp \
132	rsComponent.cpp \
133	rsContext.cpp \
134	rsCppUtils.cpp \
135	rsDevice.cpp \
136	rsElement.cpp \
137	rsFBOCache.cpp \
138	rsFifoSocket.cpp \
139	rsFileA3D.cpp \
140	rsFont.cpp \
141	rsGrallocConsumer.cpp \
142	rsObjectBase.cpp \
143	rsMatrix2x2.cpp \
144	rsMatrix3x3.cpp \
145	rsMatrix4x4.cpp \
146	rsMesh.cpp \
147	rsMutex.cpp \
148	rsPath.cpp \
149	rsProgram.cpp \
150	rsProgramFragment.cpp \
151	rsProgramStore.cpp \
152	rsProgramRaster.cpp \
153	rsProgramVertex.cpp \
154	rsSampler.cpp \
155	rsScript.cpp \
156	rsScriptC.cpp \
157	rsScriptC_Lib.cpp \
158	rsScriptC_LibGL.cpp \
159	rsScriptGroup.cpp \
160	rsScriptIntrinsic.cpp \
161	rsSignal.cpp \
162	rsStream.cpp \
163	rsThreadIO.cpp \
164	rsType.cpp
165
166LOCAL_SHARED_LIBRARIES += liblog libcutils libutils libEGL libGLESv1_CM libGLESv2 libc++
167LOCAL_SHARED_LIBRARIES += libgui libsync libdl libui
168LOCAL_SHARED_LIBRARIES += libft2 libpng libz
169
170LOCAL_SHARED_LIBRARIES += libbcc libbcinfo libLLVM
171
172LOCAL_C_INCLUDES += external/freetype/include
173LOCAL_C_INCLUDES += frameworks/compile/libbcc/include
174LOCAL_C_INCLUDES += external/libcxx/include
175
176LOCAL_CFLAGS += $(rs_base_CFLAGS)
177
178LOCAL_CPPFLAGS += -fno-exceptions
179
180LOCAL_MODULE_TAGS := optional
181
182include $(BUILD_SHARED_LIBRARY)
183
184# Now build a host version for serialization
185include $(CLEAR_VARS)
186LOCAL_MODULE:= libRS
187LOCAL_MODULE_TAGS := optional
188LOCAL_MODULE_CLASS := STATIC_LIBRARIES
189LOCAL_IS_HOST_MODULE := true
190
191intermediates := $(call local-generated-sources-dir)
192
193# Generate custom headers
194
195GEN := $(addprefix $(intermediates)/, \
196            rsgApiStructs.h \
197            rsgApiFuncDecl.h \
198        )
199
200$(GEN) : PRIVATE_PATH := $(LOCAL_PATH)
201$(GEN) : PRIVATE_CUSTOM_TOOL = cat $(PRIVATE_PATH)/rs.spec $(PRIVATE_PATH)/rsg.spec $(PRIVATE_PATH)/rs_native.spec | $(RSG_GENERATOR) $< $@
202$(GEN) : $(RSG_GENERATOR) $(LOCAL_PATH)/rs.spec $(LOCAL_PATH)/rsg.spec $(LOCAL_PATH)/rs_native.spec
203$(GEN): $(intermediates)/%.h : $(LOCAL_PATH)/%.h.rsg
204	$(transform-generated-source)
205
206LOCAL_GENERATED_SOURCES += $(GEN)
207
208# Generate custom source files
209
210GEN := $(addprefix $(intermediates)/, \
211            rsgApi.cpp \
212            rsgApiReplay.cpp \
213        )
214
215$(GEN) : PRIVATE_PATH := $(LOCAL_PATH)
216$(GEN) : PRIVATE_CUSTOM_TOOL = cat $(PRIVATE_PATH)/rs.spec $(PRIVATE_PATH)/rsg.spec $(PRIVATE_PATH)/rs_native.spec | $(RSG_GENERATOR) $< $@
217$(GEN) : $(RSG_GENERATOR) $(LOCAL_PATH)/rs.spec $(LOCAL_PATH)/rsg.spec $(LOCAL_PATH)/rs_native.spec
218$(GEN): $(intermediates)/%.cpp : $(LOCAL_PATH)/%.cpp.rsg
219	$(transform-generated-source)
220
221LOCAL_GENERATED_SOURCES += $(GEN)
222
223LOCAL_CFLAGS += $(rs_base_CFLAGS)
224LOCAL_CFLAGS += -DANDROID_RS_SERIALIZE
225LOCAL_CFLAGS += -fPIC
226LOCAL_CPPFLAGS += -fno-exceptions
227
228LOCAL_SRC_FILES:= \
229	rsAdapter.cpp \
230	rsAllocation.cpp \
231	rsAnimation.cpp \
232	rsComponent.cpp \
233	rsContext.cpp \
234	rsDevice.cpp \
235	rsElement.cpp \
236	rsFBOCache.cpp \
237	rsFifoSocket.cpp \
238	rsFileA3D.cpp \
239	rsFont.cpp \
240	rsObjectBase.cpp \
241	rsMatrix2x2.cpp \
242	rsMatrix3x3.cpp \
243	rsMatrix4x4.cpp \
244	rsMesh.cpp \
245	rsMutex.cpp \
246	rsPath.cpp \
247	rsProgram.cpp \
248	rsProgramFragment.cpp \
249	rsProgramStore.cpp \
250	rsProgramRaster.cpp \
251	rsProgramVertex.cpp \
252	rsSampler.cpp \
253	rsScript.cpp \
254	rsScriptC.cpp \
255	rsScriptC_Lib.cpp \
256	rsScriptC_LibGL.cpp \
257	rsScriptGroup.cpp \
258	rsScriptIntrinsic.cpp \
259	rsSignal.cpp \
260	rsStream.cpp \
261	rsThreadIO.cpp \
262	rsType.cpp
263
264LOCAL_STATIC_LIBRARIES := libcutils libutils liblog
265
266include $(BUILD_HOST_STATIC_LIBRARY)
267
268LLVM_ROOT_PATH := external/llvm
269
270#=============================================================================
271# android librsloader for libbcc (Device)
272#-----------------------------------------------------------------------------
273
274rsloader_SRC_FILES := \
275  cpu_ref/linkloader/android/librsloader.cpp \
276  cpu_ref/linkloader/lib/ELFHeader.cpp \
277  cpu_ref/linkloader/lib/ELFSymbol.cpp \
278  cpu_ref/linkloader/lib/ELFSectionHeader.cpp \
279  cpu_ref/linkloader/lib/ELFTypes.cpp \
280  cpu_ref/linkloader/lib/GOT.cpp \
281  cpu_ref/linkloader/lib/MemChunk.cpp \
282  cpu_ref/linkloader/lib/StubLayout.cpp \
283  cpu_ref/linkloader/utils/helper.cpp \
284  cpu_ref/linkloader/utils/raw_ostream.cpp \
285  cpu_ref/linkloader/utils/rsl_assert.cpp
286
287include $(CLEAR_VARS)
288
289
290LOCAL_MODULE := librsloader
291LOCAL_MODULE_TAGS := optional
292
293LOCAL_SRC_FILES := $(rsloader_SRC_FILES)
294
295LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
296
297LOCAL_CFLAGS += $(rs_base_CFLAGS)
298LOCAL_CPPFLAGS += -fno-exceptions
299
300LOCAL_C_INCLUDES := \
301  $(LOCAL_PATH)/cpu_ref/linkloader \
302  $(LOCAL_PATH)/cpu_ref/linkloader/include \
303  external/libcxx/include \
304  $(LOCAL_C_INCLUDES)
305
306include $(LLVM_ROOT_PATH)/llvm-device-build.mk
307include $(BUILD_STATIC_LIBRARY)
308
309#=============================================================================
310# android librsloader for libbcc (Host)
311#-----------------------------------------------------------------------------
312
313include $(CLEAR_VARS)
314
315LOCAL_MODULE := librsloader
316ifneq ($(HOST_OS),windows)
317LOCAL_CLANG := true
318endif
319
320LOCAL_MODULE_TAGS := optional
321
322LOCAL_SRC_FILES := $(rsloader_SRC_FILES)
323
324ifdef USE_MINGW
325LOCAL_SRC_FILES += cpu_ref/linkloader/lib/mmanWindows.cpp
326endif
327
328LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
329
330LOCAL_CFLAGS += $(rs_base_CFLAGS)
331LOCAL_CFLAGS += -D__HOST__
332LOCAL_CPPFLAGS += -fno-exceptions
333
334ifeq ($(HOST_OS),windows)
335LOCAL_C_INCLUDES := \
336  $(LOCAL_PATH)/cpu_ref/linkloader \
337  $(LOCAL_PATH)/cpu_ref/linkloader/include \
338  $(LOCAL_C_INCLUDES)
339else
340LOCAL_C_INCLUDES := \
341  $(LOCAL_PATH)/cpu_ref/linkloader \
342  $(LOCAL_PATH)/cpu_ref/linkloader/include \
343  external/libcxx/include \
344  $(LOCAL_C_INCLUDES)
345endif
346
347include $(LLVM_ROOT_PATH)/llvm-host-build.mk
348include $(BUILD_HOST_STATIC_LIBRARY)
349
350include $(call all-makefiles-under,$(LOCAL_PATH))
351