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