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