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