1 2LOCAL_PATH:=$(call my-dir) 3 4rs_base_CFLAGS := -Werror -Wall -Wno-unused-parameter -Wno-unused-variable 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 16 17LOCAL_SRC_FILES:= \ 18 driver/rsdAllocation.cpp \ 19 driver/rsdBcc.cpp \ 20 driver/rsdCore.cpp \ 21 driver/rsdFrameBuffer.cpp \ 22 driver/rsdFrameBufferObj.cpp \ 23 driver/rsdGL.cpp \ 24 driver/rsdMesh.cpp \ 25 driver/rsdMeshObj.cpp \ 26 driver/rsdPath.cpp \ 27 driver/rsdProgram.cpp \ 28 driver/rsdProgramRaster.cpp \ 29 driver/rsdProgramStore.cpp \ 30 driver/rsdRuntimeStubs.cpp \ 31 driver/rsdSampler.cpp \ 32 driver/rsdScriptGroup.cpp \ 33 driver/rsdShader.cpp \ 34 driver/rsdShaderCache.cpp \ 35 driver/rsdVertexArray.cpp 36 37 38LOCAL_SHARED_LIBRARIES += libRS libRSCpuRef 39LOCAL_SHARED_LIBRARIES += liblog libcutils libutils libEGL libGLESv1_CM libGLESv2 40LOCAL_SHARED_LIBRARIES += libbcc libbcinfo libLLVM libui libgui libsync 41 42LOCAL_C_INCLUDES += frameworks/compile/libbcc/include 43 44LOCAL_CFLAGS += $(rs_base_CFLAGS) 45 46LOCAL_LDLIBS := -lpthread -ldl 47LOCAL_MODULE_TAGS := optional 48 49include $(BUILD_SHARED_LIBRARY) 50 51# Build rsg-generator ==================== 52include $(CLEAR_VARS) 53 54LOCAL_MODULE := rsg-generator 55 56# These symbols are normally defined by BUILD_XXX, but we need to define them 57# here so that local-intermediates-dir works. 58 59LOCAL_IS_HOST_MODULE := true 60LOCAL_MODULE_CLASS := EXECUTABLES 61intermediates := $(local-intermediates-dir) 62 63LOCAL_SRC_FILES:= \ 64 spec.l \ 65 rsg_generator.c 66 67include $(BUILD_HOST_EXECUTABLE) 68 69# TODO: This should go into build/core/config.mk 70RSG_GENERATOR:=$(LOCAL_BUILT_MODULE) 71 72include $(CLEAR_VARS) 73LOCAL_CLANG := true 74LOCAL_MODULE := libRS 75 76LOCAL_MODULE_CLASS := SHARED_LIBRARIES 77intermediates:= $(local-intermediates-dir) 78 79# Generate custom headers 80 81GEN := $(addprefix $(intermediates)/, \ 82 rsgApiStructs.h \ 83 rsgApiFuncDecl.h \ 84 ) 85 86$(GEN) : PRIVATE_PATH := $(LOCAL_PATH) 87$(GEN) : PRIVATE_CUSTOM_TOOL = cat $(PRIVATE_PATH)/rs.spec $(PRIVATE_PATH)/rsg.spec $(PRIVATE_PATH)/rs_native.spec | $(RSG_GENERATOR) $< $@ 88$(GEN) : $(RSG_GENERATOR) $(LOCAL_PATH)/rs.spec $(LOCAL_PATH)/rsg.spec $(LOCAL_PATH)/rs_native.spec 89$(GEN): $(intermediates)/%.h : $(LOCAL_PATH)/%.h.rsg 90 $(transform-generated-source) 91 92# used in jni/Android.mk 93rs_generated_source += $(GEN) 94LOCAL_GENERATED_SOURCES += $(GEN) 95 96# Generate custom source files 97 98GEN := $(addprefix $(intermediates)/, \ 99 rsgApi.cpp \ 100 rsgApiReplay.cpp \ 101 ) 102 103$(GEN) : PRIVATE_PATH := $(LOCAL_PATH) 104$(GEN) : PRIVATE_CUSTOM_TOOL = cat $(PRIVATE_PATH)/rs.spec $(PRIVATE_PATH)/rsg.spec $(PRIVATE_PATH)/rs_native.spec | $(RSG_GENERATOR) $< $@ 105$(GEN) : $(RSG_GENERATOR) $(LOCAL_PATH)/rs.spec $(LOCAL_PATH)/rsg.spec $(LOCAL_PATH)/rs_native.spec 106$(GEN): $(intermediates)/%.cpp : $(LOCAL_PATH)/%.cpp.rsg 107 $(transform-generated-source) 108 109# used in jni/Android.mk 110rs_generated_source += $(GEN) 111 112LOCAL_GENERATED_SOURCES += $(GEN) 113 114LOCAL_SRC_FILES:= \ 115 rsAdapter.cpp \ 116 rsAllocation.cpp \ 117 rsAnimation.cpp \ 118 rsComponent.cpp \ 119 rsContext.cpp \ 120 rsDevice.cpp \ 121 rsElement.cpp \ 122 rsFBOCache.cpp \ 123 rsFifoSocket.cpp \ 124 rsFileA3D.cpp \ 125 rsFont.cpp \ 126 rsObjectBase.cpp \ 127 rsMatrix2x2.cpp \ 128 rsMatrix3x3.cpp \ 129 rsMatrix4x4.cpp \ 130 rsMesh.cpp \ 131 rsMutex.cpp \ 132 rsPath.cpp \ 133 rsProgram.cpp \ 134 rsProgramFragment.cpp \ 135 rsProgramStore.cpp \ 136 rsProgramRaster.cpp \ 137 rsProgramVertex.cpp \ 138 rsSampler.cpp \ 139 rsScript.cpp \ 140 rsScriptC.cpp \ 141 rsScriptC_Lib.cpp \ 142 rsScriptC_LibGL.cpp \ 143 rsScriptGroup.cpp \ 144 rsScriptIntrinsic.cpp \ 145 rsSignal.cpp \ 146 rsStream.cpp \ 147 rsThreadIO.cpp \ 148 rsType.cpp 149 150LOCAL_SHARED_LIBRARIES += liblog libcutils libutils libEGL libGLESv1_CM libGLESv2 libbcc 151LOCAL_SHARED_LIBRARIES += libui libbcinfo libLLVM libgui libsync libdl 152 153LOCAL_STATIC_LIBRARIES := libft2 154 155LOCAL_C_INCLUDES += external/freetype/include 156LOCAL_C_INCLUDES += frameworks/compile/libbcc/include 157 158LOCAL_CFLAGS += $(rs_base_CFLAGS) 159 160LOCAL_LDLIBS := -lpthread -ldl 161LOCAL_MODULE_TAGS := optional 162 163include $(BUILD_SHARED_LIBRARY) 164 165# Now build a host version for serialization 166include $(CLEAR_VARS) 167LOCAL_MODULE:= libRS 168LOCAL_MODULE_TAGS := optional 169 170intermediates := $(call intermediates-dir-for,STATIC_LIBRARIES,libRS,HOST,) 171 172# Generate custom headers 173 174GEN := $(addprefix $(intermediates)/, \ 175 rsgApiStructs.h \ 176 rsgApiFuncDecl.h \ 177 ) 178 179$(GEN) : PRIVATE_PATH := $(LOCAL_PATH) 180$(GEN) : PRIVATE_CUSTOM_TOOL = cat $(PRIVATE_PATH)/rs.spec $(PRIVATE_PATH)/rsg.spec $(PRIVATE_PATH)/rs_native.spec | $(RSG_GENERATOR) $< $@ 181$(GEN) : $(RSG_GENERATOR) $(LOCAL_PATH)/rs.spec $(LOCAL_PATH)/rsg.spec $(LOCAL_PATH)/rs_native.spec 182$(GEN): $(intermediates)/%.h : $(LOCAL_PATH)/%.h.rsg 183 $(transform-generated-source) 184 185LOCAL_GENERATED_SOURCES += $(GEN) 186 187# Generate custom source files 188 189GEN := $(addprefix $(intermediates)/, \ 190 rsgApi.cpp \ 191 rsgApiReplay.cpp \ 192 ) 193 194$(GEN) : PRIVATE_PATH := $(LOCAL_PATH) 195$(GEN) : PRIVATE_CUSTOM_TOOL = cat $(PRIVATE_PATH)/rs.spec $(PRIVATE_PATH)/rsg.spec $(PRIVATE_PATH)/rs_native.spec | $(RSG_GENERATOR) $< $@ 196$(GEN) : $(RSG_GENERATOR) $(LOCAL_PATH)/rs.spec $(LOCAL_PATH)/rsg.spec $(LOCAL_PATH)/rs_native.spec 197$(GEN): $(intermediates)/%.cpp : $(LOCAL_PATH)/%.cpp.rsg 198 $(transform-generated-source) 199 200LOCAL_GENERATED_SOURCES += $(GEN) 201 202LOCAL_CFLAGS += $(rs_base_CFLAGS) 203LOCAL_CFLAGS += -DANDROID_RS_SERIALIZE 204LOCAL_CFLAGS += -fPIC 205 206LOCAL_SRC_FILES:= \ 207 rsAdapter.cpp \ 208 rsAllocation.cpp \ 209 rsAnimation.cpp \ 210 rsComponent.cpp \ 211 rsContext.cpp \ 212 rsDevice.cpp \ 213 rsElement.cpp \ 214 rsFBOCache.cpp \ 215 rsFifoSocket.cpp \ 216 rsFileA3D.cpp \ 217 rsFont.cpp \ 218 rsObjectBase.cpp \ 219 rsMatrix2x2.cpp \ 220 rsMatrix3x3.cpp \ 221 rsMatrix4x4.cpp \ 222 rsMesh.cpp \ 223 rsMutex.cpp \ 224 rsPath.cpp \ 225 rsProgram.cpp \ 226 rsProgramFragment.cpp \ 227 rsProgramStore.cpp \ 228 rsProgramRaster.cpp \ 229 rsProgramVertex.cpp \ 230 rsSampler.cpp \ 231 rsScript.cpp \ 232 rsScriptC.cpp \ 233 rsScriptC_Lib.cpp \ 234 rsScriptC_LibGL.cpp \ 235 rsScriptGroup.cpp \ 236 rsScriptIntrinsic.cpp \ 237 rsSignal.cpp \ 238 rsStream.cpp \ 239 rsThreadIO.cpp \ 240 rsType.cpp 241 242LOCAL_STATIC_LIBRARIES := libcutils libutils liblog 243 244LOCAL_LDLIBS := -lpthread 245 246include $(BUILD_HOST_STATIC_LIBRARY) 247 248 249LLVM_ROOT_PATH := external/llvm 250 251#============================================================================= 252# android librsloader for libbcc (Device) 253#----------------------------------------------------------------------------- 254 255rsloader_SRC_FILES := \ 256 driver/linkloader/android/librsloader.cpp \ 257 driver/linkloader/lib/ELFHeader.cpp \ 258 driver/linkloader/lib/ELFSymbol.cpp \ 259 driver/linkloader/lib/ELFSectionHeader.cpp \ 260 driver/linkloader/lib/ELFTypes.cpp \ 261 driver/linkloader/lib/GOT.cpp \ 262 driver/linkloader/lib/MemChunk.cpp \ 263 driver/linkloader/lib/StubLayout.cpp \ 264 driver/linkloader/utils/helper.cpp \ 265 driver/linkloader/utils/raw_ostream.cpp \ 266 driver/linkloader/utils/rsl_assert.cpp 267 268include $(CLEAR_VARS) 269 270LOCAL_MODULE := librsloader 271 272LOCAL_MODULE_TAGS := optional 273 274LOCAL_SRC_FILES := $(rsloader_SRC_FILES) 275 276LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 277 278LOCAL_CFLAGS += $(rs_base_CFLAGS) 279 280LOCAL_C_INCLUDES := \ 281 $(LOCAL_PATH)/driver/linkloader \ 282 $(LOCAL_PATH)/driver/linkloader/include \ 283 $(LOCAL_C_INCLUDES) 284 285include $(LLVM_ROOT_PATH)/llvm-device-build.mk 286include $(BUILD_STATIC_LIBRARY) 287 288 289#============================================================================= 290# android librsloader for libbcc (Host) 291#----------------------------------------------------------------------------- 292 293include $(CLEAR_VARS) 294 295LOCAL_MODULE := librsloader 296 297LOCAL_MODULE_TAGS := optional 298 299LOCAL_SRC_FILES := $(rsloader_SRC_FILES) 300 301LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 302 303LOCAL_CFLAGS += $(rs_base_CFLAGS) 304LOCAL_CFLAGS += -D__HOST__ 305 306LOCAL_C_INCLUDES := \ 307 $(LOCAL_PATH)/driver/linkloader \ 308 $(LOCAL_PATH)/driver/linkloader/include \ 309 $(LOCAL_C_INCLUDES) 310 311include $(LLVM_ROOT_PATH)/llvm-host-build.mk 312include $(BUILD_HOST_STATIC_LIBRARY) 313 314 315#============================================================================= 316# librsloader-test (Device) 317#----------------------------------------------------------------------------- 318 319include $(CLEAR_VARS) 320 321LOCAL_MODULE := test-librsloader 322 323LOCAL_MODULE_TAGS := tests 324 325LOCAL_SHARED_LIBRARIES := \ 326 libstlport 327 328LOCAL_STATIC_LIBRARIES := \ 329 librsloader \ 330 libcutils \ 331 liblog \ 332 libLLVMSupport 333 334LOCAL_SRC_FILES := \ 335 driver/linkloader/android/test-librsloader.c 336 337LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 338 339LOCAL_CFLAGS += $(rs_base_CFLAGS) 340 341LOCAL_C_INCLUDES := \ 342 $(LOCAL_PATH)/driver/linkloader \ 343 $(LOCAL_PATH)/driver/linkloader/include 344 345include $(LLVM_ROOT_PATH)/llvm-device-build.mk 346include $(BUILD_EXECUTABLE) 347 348 349#============================================================================= 350# librsloader-test (Host) 351#----------------------------------------------------------------------------- 352 353include $(CLEAR_VARS) 354 355LOCAL_MODULE := test-librsloader 356 357LOCAL_MODULE_TAGS := tests 358 359LOCAL_LDLIBS := \ 360 -lpthread \ 361 -ldl 362 363LOCAL_STATIC_LIBRARIES := \ 364 librsloader \ 365 libcutils \ 366 liblog \ 367 libLLVMSupport 368 369LOCAL_SRC_FILES := \ 370 driver/linkloader/android/test-librsloader.c 371 372LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk 373 374LOCAL_CFLAGS += $(rs_base_CFLAGS) 375 376LOCAL_C_INCLUDES := \ 377 $(LOCAL_PATH)/driver/linkloader \ 378 $(LOCAL_PATH)/driver/linkloader/include 379 380include $(LLVM_ROOT_PATH)/llvm-host-build.mk 381include $(BUILD_HOST_EXECUTABLE) 382 383 384#============================================================================= 385# rsloader 386#----------------------------------------------------------------------------- 387 388ifdef BUILD_RSLOADER_TOOL 389include $(CLEAR_VARS) 390 391LOCAL_MODULE := rsloader 392 393LOCAL_MODULE_TAGS := tests 394 395LOCAL_SHARED_LIBRARIES := \ 396 libstlport 397 398LOCAL_STATIC_LIBRARIES := \ 399 libLLVMSupport 400 401LOCAL_SRC_FILES := \ 402 driver/linkloader/lib/ELFHeader.cpp \ 403 driver/linkloader/lib/ELFSymbol.cpp \ 404 driver/linkloader/lib/ELFSectionHeader.cpp \ 405 driver/linkloader/lib/ELFTypes.cpp \ 406 driver/linkloader/lib/StubLayout.cpp \ 407 driver/linkloader/utils/raw_ostream.cpp \ 408 driver/linkloader/utils/rsl_assert.cpp \ 409 driver/linkloader/utils/helper.cpp \ 410 driver/linkloader/main.cpp 411 412LOCAL_C_INCLUDES := \ 413 $(LOCAL_PATH)/driver/linkloader \ 414 $(LOCAL_PATH)/driver/linkloader/include \ 415 $(LOCAL_C_INCLUDES) 416 417include $(LLVM_ROOT_PATH)/llvm-device-build.mk 418include $(BUILD_EXECUTABLE) 419endif 420 421 422#============================================================================= 423# stub-layout-unit-test 424#----------------------------------------------------------------------------- 425 426ifdef BUILD_STUB_LAYOUT_TEST 427include $(CLEAR_VARS) 428 429LOCAL_MODULE := stub-layout-unit-test 430 431LOCAL_MODULE_TAGS := tests 432 433LOCAL_SHARED_LIBRARIES := \ 434 libstlport 435 436LOCAL_SRC_FILES := \ 437 driver/linkloader/lib/StubLayout.cpp \ 438 driver/linkloader/utils/raw_ostream.cpp \ 439 driver/linkloader/utils/helper.cpp \ 440 driver/linkloader/tests/stub-test.cpp 441 442LOCAL_C_INCLUDES := \ 443 $(LOCAL_PATH)/driver/linkloader \ 444 $(LOCAL_PATH)/driver/linkloader/include \ 445 $(LOCAL_C_INCLUDES) 446 447include $(LLVM_ROOT_PATH)/llvm-device-build.mk 448include $(BUILD_EXECUTABLE) 449endif 450 451 452include $(call all-makefiles-under,$(LOCAL_PATH)) 453