Allow module to specify LOCAL_INSTALLED_MODULE_STEM
With this change, you can install a shared library with module name foo as bar.so to the system.img with: LOCAL_INSTALLED_MODULE_STEM := bar.so Note that we in general still disallow a static/shared library to specify LOCAL_MODULE_STEM or LOCAL_BUILT_MODULE_STEM, because the build system uses LOCAL_MODULE to compute build time dependencies, such as export_includes, the -l linker flag etc. Also, if you use LOCAL_INSTALLED_MODULE_STEM to change the installed file name and if any other module links against this library, you may run into runtime error: the library name baked in to the binary is not the same as file name in the system image. Change-Id: I55b571c8139c3bda07a4a0e50cea0f20d8d6c168
This commit is contained in:
parent
cc225ebbbe
commit
feb75860ff
3 changed files with 18 additions and 11 deletions
|
@ -141,15 +141,16 @@ intermediates.COMMON := $(call local-intermediates-dir,COMMON)
|
|||
###########################################################
|
||||
# Pick a name for the intermediate and final targets
|
||||
###########################################################
|
||||
LOCAL_MODULE_STEM := $(strip $(LOCAL_MODULE_STEM))
|
||||
ifeq ($(LOCAL_MODULE_STEM),)
|
||||
ifndef LOCAL_MODULE_STEM
|
||||
LOCAL_MODULE_STEM := $(LOCAL_MODULE)
|
||||
endif
|
||||
LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_MODULE_STEM)$(LOCAL_MODULE_SUFFIX)
|
||||
|
||||
LOCAL_BUILT_MODULE_STEM := $(strip $(LOCAL_BUILT_MODULE_STEM))
|
||||
ifeq ($(LOCAL_BUILT_MODULE_STEM),)
|
||||
LOCAL_BUILT_MODULE_STEM := $(LOCAL_INSTALLED_MODULE_STEM)
|
||||
ifndef LOCAL_BUILT_MODULE_STEM
|
||||
LOCAL_BUILT_MODULE_STEM := $(LOCAL_MODULE_STEM)$(LOCAL_MODULE_SUFFIX)
|
||||
endif
|
||||
|
||||
ifndef LOCAL_INSTALLED_MODULE_STEM
|
||||
LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_MODULE_STEM)$(LOCAL_MODULE_SUFFIX)
|
||||
endif
|
||||
|
||||
# OVERRIDE_BUILT_MODULE_PATH is only allowed to be used by the
|
||||
|
|
|
@ -11,6 +11,7 @@ LOCAL_BUILT_MODULE:=
|
|||
LOCAL_BUILT_MODULE_STEM:=
|
||||
OVERRIDE_BUILT_MODULE_PATH:=
|
||||
LOCAL_INSTALLED_MODULE:=
|
||||
LOCAL_INSTALLED_MODULE_STEM:=
|
||||
LOCAL_UNINSTALLABLE_MODULE:=
|
||||
LOCAL_INTERMEDIATE_TARGETS:=
|
||||
LOCAL_UNSTRIPPED_PATH:=
|
||||
|
|
|
@ -26,12 +26,17 @@ endif
|
|||
# TODO: This duplicates logic from base_rules.mk because we need to
|
||||
# know its results before base_rules.mk is included.
|
||||
# Consolidate the duplicates.
|
||||
LOCAL_MODULE_STEM := $(strip $(LOCAL_MODULE_STEM))
|
||||
ifeq ($(LOCAL_MODULE_STEM),)
|
||||
ifndef LOCAL_MODULE_STEM
|
||||
LOCAL_MODULE_STEM := $(LOCAL_MODULE)
|
||||
endif
|
||||
LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_MODULE_STEM)$(LOCAL_MODULE_SUFFIX)
|
||||
LOCAL_BUILT_MODULE_STEM := $(LOCAL_INSTALLED_MODULE_STEM)
|
||||
|
||||
ifndef LOCAL_BUILT_MODULE_STEM
|
||||
LOCAL_BUILT_MODULE_STEM := $(LOCAL_MODULE_STEM)$(LOCAL_MODULE_SUFFIX)
|
||||
endif
|
||||
|
||||
ifndef LOCAL_INSTALLED_MODULE_STEM
|
||||
LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_MODULE_STEM)$(LOCAL_MODULE_SUFFIX)
|
||||
endif
|
||||
|
||||
# base_rules.make defines $(intermediates), but we need its value
|
||||
# before we include base_rules. Make a guess, and verify that
|
||||
|
@ -90,7 +95,7 @@ endif
|
|||
## Store a copy with symbols for symbolic debugging
|
||||
###########################################################
|
||||
symbolic_input := $(compress_output)
|
||||
symbolic_output := $(LOCAL_UNSTRIPPED_PATH)/$(LOCAL_BUILT_MODULE_STEM)
|
||||
symbolic_output := $(LOCAL_UNSTRIPPED_PATH)/$(LOCAL_INSTALLED_MODULE_STEM)
|
||||
$(symbolic_output) : $(symbolic_input) | $(ACP)
|
||||
@echo "target Symbolic: $(PRIVATE_MODULE) ($@)"
|
||||
$(copy-file-to-target)
|
||||
|
|
Loading…
Reference in a new issue