bbe4e11a76
When an Android.mk specifies a local path that is outside the current directory, it uses '..', since we prepend $(LOCAL_PATH)/ to the given path. This path ('a/b/../c') gets inserted into command lines and dependencies. For dependencies, when it gets to Ninja, Ninja calls CanonicalizePath and removes those references ('a/c'), but the command line is preserved. So we've got a command line that references 'a/b', but no dependency on it. Usually that's not a big problem, but it's an issue if we're trying to only expose dependencies to the rule, like with RBE only sending the dependencies to the remote workers. So use our 'clean-path' macro to collapse the '..' references in Kati so that they don't show up in the command line either. Test: treehugger Test: build a system image with RBE Change-Id: I0706faa2ac15e9c12c720f43c7bb8171c5efd97c
63 lines
2.4 KiB
Makefile
63 lines
2.4 KiB
Makefile
###########################################################
|
|
## Standard rules for copying files that are prebuilt
|
|
##
|
|
## Additional inputs from base_rules.make:
|
|
## None.
|
|
##
|
|
###########################################################
|
|
|
|
include $(BUILD_SYSTEM)/use_lld_setup.mk
|
|
|
|
ifneq ($(LOCAL_PREBUILT_LIBS),)
|
|
$(call pretty-error,dont use LOCAL_PREBUILT_LIBS anymore)
|
|
endif
|
|
ifneq ($(LOCAL_PREBUILT_EXECUTABLES),)
|
|
$(call pretty-error,dont use LOCAL_PREBUILT_EXECUTABLES anymore)
|
|
endif
|
|
ifneq ($(LOCAL_PREBUILT_JAVA_LIBRARIES),)
|
|
$(call pretty-error,dont use LOCAL_PREBUILT_JAVA_LIBRARIES anymore)
|
|
endif
|
|
|
|
my_32_64_bit_suffix := $(if $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)IS_64_BIT),64,32)
|
|
|
|
ifdef LOCAL_PREBUILT_MODULE_FILE
|
|
my_prebuilt_src_file := $(LOCAL_PREBUILT_MODULE_FILE)
|
|
else ifdef LOCAL_SRC_FILES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
|
|
my_prebuilt_src_file := $(call clean-path,$(LOCAL_PATH)/$(LOCAL_SRC_FILES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)))
|
|
LOCAL_SRC_FILES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) :=
|
|
else ifdef LOCAL_SRC_FILES_$(my_32_64_bit_suffix)
|
|
my_prebuilt_src_file := $(call clean-path,$(LOCAL_PATH)/$(LOCAL_SRC_FILES_$(my_32_64_bit_suffix)))
|
|
LOCAL_SRC_FILES_$(my_32_64_bit_suffix) :=
|
|
else ifdef LOCAL_SRC_FILES
|
|
my_prebuilt_src_file := $(call clean-path,$(LOCAL_PATH)/$(LOCAL_SRC_FILES))
|
|
LOCAL_SRC_FILES :=
|
|
else ifdef LOCAL_REPLACE_PREBUILT_APK_INSTALLED
|
|
# This is handled specially in app_prebuilt_internal.mk
|
|
else
|
|
$(call pretty-error,No source files specified)
|
|
endif
|
|
|
|
LOCAL_CHECKED_MODULE := $(my_prebuilt_src_file)
|
|
|
|
ifneq (APPS,$(LOCAL_MODULE_CLASS))
|
|
ifdef LOCAL_COMPRESSED_MODULE
|
|
$(error $(LOCAL_MODULE) : LOCAL_COMPRESSED_MODULE can only be defined for module class APPS)
|
|
endif # LOCAL_COMPRESSED_MODULE
|
|
endif # APPS
|
|
|
|
ifeq (APPS,$(LOCAL_MODULE_CLASS))
|
|
include $(BUILD_SYSTEM)/app_prebuilt_internal.mk
|
|
else ifeq (JAVA_LIBRARIES,$(LOCAL_MODULE_CLASS))
|
|
include $(BUILD_SYSTEM)/java_prebuilt_internal.mk
|
|
else ifneq ($(filter STATIC_LIBRARIES SHARED_LIBRARIES EXECUTABLES NATIVE_TESTS,$(LOCAL_MODULE_CLASS)),)
|
|
include $(BUILD_SYSTEM)/cc_prebuilt_internal.mk
|
|
else ifneq ($(filter SCRIPT ETC DATA,$(LOCAL_MODULE_CLASS)),)
|
|
include $(BUILD_SYSTEM)/misc_prebuilt_internal.mk
|
|
else
|
|
$(error $(LOCAL_MODULE) : unexpected LOCAL_MODULE_CLASS for prebuilts: $(LOCAL_MODULE_CLASS))
|
|
endif
|
|
|
|
$(built_module) : $(LOCAL_ADDITIONAL_DEPENDENCIES)
|
|
|
|
my_prebuilt_src_file :=
|
|
my_preopt_for_extracted_apk :=
|