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