Merge changes Ib6ffcc38,Ia58e6bc1
am: 3068a85962
Change-Id: I20aec66ac749a5db3f65e368e14a5caca12afff8
This commit is contained in:
commit
5da565a85a
|
@ -1242,6 +1242,43 @@ else
|
|||
$(hide) touch $@
|
||||
endif
|
||||
|
||||
|
||||
####################################################
|
||||
## Verify that NDK-built libraries only link against
|
||||
## other NDK-built libraries
|
||||
####################################################
|
||||
|
||||
my_link_type := $(intermediates)/link_type
|
||||
ifdef LOCAL_SDK_VERSION
|
||||
$(my_link_type): PRIVATE_LINK_TYPE := ndk
|
||||
$(my_link_type): PRIVATE_ALLOWED_TYPES := ndk
|
||||
else
|
||||
$(my_link_type): PRIVATE_LINK_TYPE := platform
|
||||
$(my_link_type): PRIVATE_ALLOWED_TYPES := (ndk|platform)
|
||||
endif
|
||||
my_link_type_deps := $(strip \
|
||||
$(foreach l,$(my_whole_static_libraries) $(my_static_libraries), \
|
||||
$(call intermediates-dir-for,STATIC_LIBRARIES,$(l),$(LOCAL_IS_HOST_MODULE),,$(LOCAL_2ND_ARCH_VAR_PREFIX),$(my_host_cross))/link_type))
|
||||
ifneq ($(LOCAL_MODULE_CLASS),STATIC_LIBRARIES)
|
||||
my_link_type_deps += $(strip \
|
||||
$(foreach l,$(my_shared_libraries), \
|
||||
$(call intermediates-dir-for,SHARED_LIBRARIES,$(l),$(LOCAL_IS_HOST_MODULE),,$(LOCAL_2ND_ARCH_VAR_PREFIX),$(my_host_cross))/link_type))
|
||||
endif
|
||||
$(my_link_type): PRIVATE_DEPS := $(my_link_type_deps)
|
||||
$(my_link_type): PRIVATE_MODULE := $(LOCAL_MODULE)
|
||||
$(my_link_type): PRIVATE_MAKEFILE := $(LOCAL_MODULE_MAKEFILE)
|
||||
$(my_link_type): $(my_link_type_deps)
|
||||
@echo Check module type: $@
|
||||
$(hide) mkdir -p $(dir $@) && rm -f $@
|
||||
ifdef my_link_type_deps
|
||||
$(hide) for f in $(PRIVATE_DEPS); do \
|
||||
grep -qE '^$(PRIVATE_ALLOWED_TYPES)$$' $$f || \
|
||||
$(call echo-warning,"$(PRIVATE_MAKEFILE): $(PRIVATE_MODULE) ($(PRIVATE_LINK_TYPE)) should not link to $$(basename $${f%_intermediates/link_type}) ($$(cat $$f))"); \
|
||||
done
|
||||
endif
|
||||
$(hide) echo $(PRIVATE_LINK_TYPE) >$@
|
||||
|
||||
|
||||
###########################################################
|
||||
## Common object handling.
|
||||
###########################################################
|
||||
|
@ -1594,4 +1631,4 @@ endif
|
|||
.KATI_RESTAT: $(export_includes)
|
||||
|
||||
# Make sure export_includes gets generated when you are running mm/mmm
|
||||
$(LOCAL_BUILT_MODULE) : | $(export_includes)
|
||||
$(LOCAL_BUILT_MODULE) : | $(export_includes) $(my_link_type)
|
||||
|
|
|
@ -852,6 +852,20 @@ $(subst //,/,$(1)/$(2))
|
|||
endef
|
||||
|
||||
|
||||
###########################################################
|
||||
## Color-coded warnings and errors in build rules
|
||||
##
|
||||
## $(1): message to print
|
||||
###########################################################
|
||||
define echo-warning
|
||||
echo -e "\e[1;35mwarning:\e[0m \e[1m" $(1) "\e[0m\n"
|
||||
endef
|
||||
|
||||
define echo-error
|
||||
echo -e "\e[1;31merror:\e[0m \e[1m" $(1) "\e[0m\n"
|
||||
endef
|
||||
|
||||
|
||||
###########################################################
|
||||
## Package filtering
|
||||
###########################################################
|
||||
|
|
|
@ -98,3 +98,35 @@ $(LOCAL_INSTALLED_MODULE) : $(addprefix $(my_app_lib_path)/, $(notdir $(my_prebu
|
|||
endif # my_embed_jni
|
||||
endif # inner my_prebuilt_jni_libs
|
||||
endif # outer my_prebuilt_jni_libs
|
||||
|
||||
# Verify that all included libraries are built against the NDK
|
||||
ifneq ($(strip $(LOCAL_JNI_SHARED_LIBRARIES)),)
|
||||
my_link_type := $(call intermediates-dir-for,APPS,$(LOCAL_MODULE))/$(my_2nd_arch_prefix)jni_link_type
|
||||
my_link_type_deps := $(strip \
|
||||
$(foreach l,$(LOCAL_JNI_SHARED_LIBRARIES),\
|
||||
$(call intermediates-dir-for,SHARED_LIBRARIES,$(l),,,$(my_2nd_arch_prefix))/link_type))
|
||||
ifneq ($(LOCAL_SDK_VERSION),)
|
||||
$(my_link_type): PRIVATE_LINK_TYPE := sdk
|
||||
$(my_link_type): PRIVATE_ALLOWED_TYPES := ndk
|
||||
else
|
||||
$(my_link_type): PRIVATE_LINK_TYPE := platform
|
||||
$(my_link_type): PRIVATE_ALLOWED_TYPES := (ndk|platform)
|
||||
endif
|
||||
$(my_link_type): PRIVATE_DEPS := $(my_link_type_deps)
|
||||
$(my_link_type): PRIVATE_MODULE := $(LOCAL_MODULE)
|
||||
$(my_link_type): PRIVATE_MAKEFILE := $(LOCAL_MODULE_MAKEFILE)
|
||||
$(my_link_type): $(my_link_type_deps)
|
||||
@echo Check JNI module types: $@
|
||||
$(hide) mkdir -p $(dir $@)
|
||||
$(hide) rm -f $@
|
||||
$(hide) for f in $(PRIVATE_DEPS); do \
|
||||
grep -qE '^$(PRIVATE_ALLOWED_TYPES)$$' $$f || \
|
||||
$(call echo-warning,"$(PRIVATE_MAKEFILE): $(PRIVATE_MODULE) ($(PRIVATE_LINK_TYPE)) should not link to $$(basename $${f%_intermediates/link_type}) ($$(cat $$f))"); \
|
||||
done
|
||||
$(hide) touch $@
|
||||
|
||||
$(LOCAL_BUILT_MODULE): | $(my_link_type)
|
||||
|
||||
my_link_type :=
|
||||
my_link_type_deps :=
|
||||
endif
|
||||
|
|
|
@ -122,7 +122,14 @@ else
|
|||
$(hide) touch $@
|
||||
endif
|
||||
|
||||
$(LOCAL_BUILT_MODULE) : | $(intermediates)/export_includes
|
||||
my_link_type := $(intermediates)/link_type
|
||||
$(my_link_type): PRIVATE_LINK_TYPE := $(if $(LOCAL_SDK_VERSION),ndk,platform)
|
||||
$(my_link_type):
|
||||
@echo Check module type: $@
|
||||
$(hide) mkdir -p $(dir $@) && rm -f $@
|
||||
$(hide) echo $(PRIVATE_LINK_TYPE) >$@
|
||||
|
||||
$(LOCAL_BUILT_MODULE) : | $(export_includes) $(my_link_type)
|
||||
endif # prebuilt_module_is_a_library
|
||||
|
||||
# The real dependency will be added after all Android.mks are loaded and the install paths
|
||||
|
|
Loading…
Reference in New Issue