diff options
Diffstat (limited to 'core/base_rules.mk')
| -rw-r--r-- | core/base_rules.mk | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/core/base_rules.mk b/core/base_rules.mk index 604fe06667..c71670f6be 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -40,6 +40,8 @@ $(call verify-module-name) my_test_data := my_test_config := +LOCAL_IS_SOONG_MODULE := $(if $(filter $(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)),true) + LOCAL_IS_HOST_MODULE := $(strip $(LOCAL_IS_HOST_MODULE)) ifdef LOCAL_IS_HOST_MODULE ifneq ($(LOCAL_IS_HOST_MODULE),true) @@ -128,7 +130,7 @@ include $(BUILD_SYSTEM)/local_current_sdk.mk # Check if the use of System SDK is correct. Note that, for Soong modules, the system sdk version # check is done in Soong. No need to do it twice. -ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)) +ifeq (,$(LOCAL_IS_SOONG_MODULE)) include $(BUILD_SYSTEM)/local_systemsdk.mk endif @@ -176,6 +178,7 @@ my_module_path := $(strip $(LOCAL_MODULE_PATH)) endif my_module_path := $(patsubst %/,%,$(my_module_path)) my_module_relative_path := $(strip $(LOCAL_MODULE_RELATIVE_PATH)) +my_module_relative_path := $(patsubst %/,%,$(my_module_relative_path)) ifdef LOCAL_IS_HOST_MODULE partition_tag := @@ -220,7 +223,7 @@ endif # modulo "null-sute", "mts", and "mcts". mts/mcts are automatically added if there's a different # suite starting with "m(c)ts-". null-suite seems useless and is sometimes automatically added # if no other suites are added. -ifneq (,$(filter $(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK))) +ifneq (,$(LOCAL_IS_SOONG_MODULE)) a := $(filter-out null-suite mts mcts,$(sort $(LOCAL_COMPATIBILITY_SUITE))) b := $(filter-out null-suite mts mcts,$(sort $(LOCAL_SOONG_PROVIDER_TEST_SUITES))) ifneq ($(a),$(b)) @@ -355,7 +358,7 @@ include $(BUILD_SYSTEM)/configure_module_stem.mk LOCAL_BUILT_MODULE := $(intermediates)/$(my_built_module_stem) ifneq (,$(LOCAL_SOONG_INSTALLED_MODULE)) - ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)) + ifeq (,$(LOCAL_IS_SOONG_MODULE)) $(call pretty-error, LOCAL_MODULE_MAKEFILE can only be used from $(SOONG_ANDROID_MK)) endif # Use the install path requested by Soong. @@ -389,7 +392,7 @@ LOCAL_INTERMEDIATE_TARGETS += $(LOCAL_BUILT_MODULE) # Don't create .toc files for Soong shared libraries, that is handled in # Soong and soong_cc_prebuilt.mk ########################################################### -ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)) +ifeq (,$(LOCAL_IS_SOONG_MODULE)) ifeq ($(LOCAL_MODULE_CLASS),SHARED_LIBRARIES) LOCAL_INTERMEDIATE_TARGETS += $(LOCAL_BUILT_MODULE).toc $(LOCAL_BUILT_MODULE).toc: $(LOCAL_BUILT_MODULE) @@ -502,16 +505,12 @@ my_path_comp := my_installed_symlinks := -ifneq (,$(LOCAL_SOONG_INSTALLED_MODULE)) - # Soong already generated the copy rule, but make the installed location depend on the Make - # copy of the intermediates for now, as some rules that collect intermediates may expect - # them to exist. - $(LOCAL_INSTALLED_MODULE): $(LOCAL_BUILT_MODULE) -else ifneq (true,$(LOCAL_UNINSTALLABLE_MODULE)) +ifeq (,$(LOCAL_SOONG_INSTALLED_MODULE)) +ifneq (true,$(LOCAL_UNINSTALLABLE_MODULE)) $(LOCAL_INSTALLED_MODULE): PRIVATE_POST_INSTALL_CMD := $(LOCAL_POST_INSTALL_CMD) $(LOCAL_INSTALLED_MODULE): $(LOCAL_BUILT_MODULE) @echo "Install: $@" - ifeq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)) + ifneq (,$(LOCAL_IS_SOONG_MODULE)) $(copy-file-or-link-to-new-target) else $(copy-file-to-new-target) @@ -527,6 +526,7 @@ else ifneq (true,$(LOCAL_UNINSTALLABLE_MODULE)) $(my_all_targets) : | $(my_installed_symlinks) endif # !LOCAL_UNINSTALLABLE_MODULE +endif # !LOCAL_SOONG_INSTALLED_MODULE # Add dependencies on LOCAL_SOONG_INSTALL_SYMLINKS if we're installing any kind of module, not just # ones that set LOCAL_SOONG_INSTALLED_MODULE. This is so we can have a soong module that only @@ -982,6 +982,15 @@ ALL_MODULES.$(my_register_name).SOONG_MODULE_TYPE := \ $(ALL_MODULES.$(my_register_name).SOONG_MODULE_TYPE) $(LOCAL_SOONG_MODULE_TYPE) ALL_MODULES.$(my_register_name).IS_SOONG_MODULE := \ $(if $(filter $(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)),true) +# .IS_SOONG_MODULE above will get reset to an empty string if it encounters a make module with the +# same name as a soong module. The following 3 variables allow for more nuanced detection when it's +# both a make and soong module. +ALL_MODULES.$(my_register_name).IS_SOONG_MODULE_AND_POTENTIALLY_ALSO_MAKE_MODULE := \ + $(or $(ALL_MODULES.$(my_register_name).IS_SOONG_MODULE_AND_POTENTIALLY_ALSO_MAKE_MODULE),$(if $(filter $(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)),true)) +ALL_MODULES.$(my_register_name).IS_MAKE_MODULE_AND_POTENTIALLY_ALSO_SOONG_MODULE := \ + $(or $(ALL_MODULES.$(my_register_name).IS_MAKE_MODULE_AND_POTENTIALLY_ALSO_SOONG_MODULE),$(if $(filter $(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)),,true)) +ALL_MODULES.$(my_register_name).IS_MAKE_AND_SOONG_MODULE := \ + $(and $(ALL_MODULES.$(my_register_name).IS_SOONG_MODULE_AND_POTENTIALLY_ALSO_MAKE_MODULE),$(ALL_MODULES.$(my_register_name).IS_MAKE_MODULE_AND_POTENTIALLY_ALSO_SOONG_MODULE)) ifndef LOCAL_IS_HOST_MODULE ALL_MODULES.$(my_register_name).TARGET_BUILT := \ $(ALL_MODULES.$(my_register_name).TARGET_BUILT) $(LOCAL_BUILT_MODULE) @@ -1077,6 +1086,16 @@ ifdef LOCAL_FILESYSTEM_FILELIST $(ALL_MODULES.$(my_register_name).FILESYSTEM_FILELIST) $(LOCAL_FILESYSTEM_FILELIST) endif +ifdef LOCAL_FILESYSTEM_AVB_KEY_PATH + ALL_MODULES.$(my_register_name).FILESYSTEM_AVB_KEY_PATH := \ + $(ALL_MODULES.$(my_register_name).FILESYSTEM_AVB_KEY_PATH) $(LOCAL_FILESYSTEM_AVB_KEY_PATH) +endif + +ifdef LOCAL_FILESYSTEM_AVB_ALGORITHM + ALL_MODULES.$(my_register_name).FILESYSTEM_AVB_ALGORITHM := \ + $(ALL_MODULES.$(my_register_name).FILESYSTEM_AVB_ALGORITHM) $(LOCAL_FILESYSTEM_AVB_ALGORITHM) +endif + ifndef LOCAL_SOONG_MODULE_INFO_JSON ALL_MAKE_MODULE_INFO_JSON_MODULES += $(my_register_name) ALL_MODULES.$(my_register_name).SHARED_LIBS := \ |
