Build rules for Renderscript compatibility library.

Bug: 7419958
Change-Id: I2e0f0bb632e6ff22b2cf1a1b96b28364637995cc
This commit is contained in:
Stephen Hines
2012-11-28 16:52:41 -08:00
parent d019ecc246
commit e719f28d93
5 changed files with 40 additions and 0 deletions

View File

@@ -110,6 +110,7 @@ LOCAL_MANIFEST_FILE:=
LOCAL_RENDERSCRIPT_INCLUDES:=
LOCAL_RENDERSCRIPT_INCLUDES_OVERRIDE:=
LOCAL_RENDERSCRIPT_CC:=
LOCAL_RENDERSCRIPT_COMPATIBILITY:=
LOCAL_RENDERSCRIPT_FLAGS:=
LOCAL_RENDERSCRIPT_TARGET_API:=
LOCAL_BUILD_HOST_DEX:=

View File

@@ -308,6 +308,7 @@ PROGUARD := external/proguard/bin/proguard.sh
JAVATAGS := build/tools/java-event-log-tags.py
LLVM_RS_CC := $(HOST_OUT_EXECUTABLES)/llvm-rs-cc$(HOST_EXECUTABLE_SUFFIX)
LLVM_RS_LINK := $(HOST_OUT_EXECUTABLES)/llvm-rs-link$(HOST_EXECUTABLE_SUFFIX)
BCC_COMPAT := $(HOST_OUT_EXECUTABLES)/bcc_compat$(HOST_EXECUTABLE_SUFFIX)
DEXOPT := $(HOST_OUT_EXECUTABLES)/dexopt$(HOST_EXECUTABLE_SUFFIX)
DEXPREOPT := dalvik/tools/dex-preopt
LINT := prebuilts/sdk/tools/lint

View File

@@ -819,6 +819,16 @@ $(hide) mkdir -p $(dir $@)
$(hide) touch $@
endef
define transform-bc-to-so
@echo "Renderscript compatibility"
$(hide) mkdir -p $(dir $@)
$(hide) $(BCC_COMPAT) -o $(dir $@)/$(notdir $(<:.bc=.o)) -fPIC -shared \
-rt-path $(TARGET_OUT_SHARED_LIBRARIES)/libclcore.bc $<
$(hide) $(PRIVATE_CXX) -shared -Wl,-soname,$(notdir $@) \
$(dir $@)/$(notdir $(<:.bc=.o)) -o $@ -L prebuilts/gcc/ \
-L $(TARGET_OUT_INTERMEDIATE_LIBRARIES) -lRSSupport -lm
endef
###########################################################
## Commands to compile RenderScript to C++
###########################################################

View File

@@ -195,6 +195,26 @@ $(RenderScript_file_stamp): PRIVATE_RS_TARGET_API := $(renderscript_target_api)
$(RenderScript_file_stamp): $(renderscript_sources_fullpath) $(LOCAL_RENDERSCRIPT_CC)
$(transform-renderscripts-to-java-and-bc)
ifneq ($(LOCAL_RENDERSCRIPT_COMPATIBILITY),)
bc_files := $(patsubst %.fs,%.bc, $(patsubst %.rs,%.bc, $(notdir $(renderscript_sources))))
rs_generated_bc := $(addprefix \
$(renderscript_intermediate)/res/raw/, $(bc_files))
rs_compatibility_jni_libs := $(addprefix \
$(renderscript_intermediate)/lib, \
$(patsubst %.bc,%.so, $(bc_files)))
$(rs_generated_bc) : $(RenderScript_file_stamp)
$(rs_compatibility_jni_libs): $(RenderScript_file_stamp)
$(rs_compatibility_jni_libs): $(BCC_COMPAT)
$(rs_compatibility_jni_libs): PRIVATE_CXX := $(TARGET_CXX)
$(rs_compatibility_jni_libs): $(renderscript_intermediate)/lib%.so: \
$(renderscript_intermediate)/res/raw/%.bc
$(transform-bc-to-so)
endif
# include the dependency files (.d) generated by llvm-rs-cc.
renderscript_generated_dep_files := $(addprefix $(renderscript_intermediate)/, \
$(patsubst %.fs,%.d, $(patsubst %.rs,%.d, $(notdir $(renderscript_sources)))))

View File

@@ -191,6 +191,8 @@ endif # LOCAL_SDK_VERSION
endif # EMMA_INSTRUMENT_STATIC
endif # LOCAL_EMMA_INSTRUMENT
rs_compatibility_jni_libs :=
#################################
include $(BUILD_SYSTEM)/java.mk
#################################
@@ -324,6 +326,12 @@ jni_shared_libraries := \
$(addsuffix $(so_suffix), \
$(LOCAL_JNI_SHARED_LIBRARIES)))
# Include RS dynamically-generated libraries as well
# Keep this ifneq, as the += otherwise adds spaces that need to be stripped.
ifneq ($(rs_compatibility_jni_libs),)
jni_shared_libraries += $(rs_compatibility_jni_libs)
endif
# App explicitly requires the prebuilt NDK libstlport_shared.so.
# libstlport_shared.so should never go to the system image.
# Instead it should be packaged into the apk.