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