summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2020-06-17 01:26:20 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2020-06-17 01:26:20 +0000
commit0c263fd2717518c459d58c2c91e4c3ea87a94fa4 (patch)
tree6ff4d026d50233aaca1b7b21fdd4fe5358388d3f
parent397972fa6a9b8736a6251a465db277169377e35c (diff)
parent343caec30c7e63706ddc7fda95c84173367d358b (diff)
Merge "Refactor how MODULES-IN-* is defined"
-rw-r--r--core/base_rules.mk33
1 files changed, 27 insertions, 6 deletions
diff --git a/core/base_rules.mk b/core/base_rules.mk
index 9818d60fd6..d604480be1 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -452,12 +452,33 @@ endif
# Set up phony targets that covers all modules under the given paths.
# This allows us to build everything in given paths by running mmma/mma.
-my_path_components := $(subst /,$(space),$(LOCAL_PATH))
-my_path_prefix := MODULES-IN
-$(foreach c, $(my_path_components),\
- $(eval my_path_prefix := $(my_path_prefix)-$(c))\
- $(eval .PHONY : $(my_path_prefix))\
- $(eval $(my_path_prefix) : $(my_all_targets)))
+define my_path_comp
+parent := $(patsubst %/,%,$(dir $(1)))
+parent_target := MODULES-IN-$$(subst /,-,$$(parent))
+.PHONY: $$(parent_target)
+$$(parent_target): $(2)
+ifndef $$(parent_target)
+ $$(parent_target) := true
+ ifneq (,$$(findstring /,$$(parent)))
+ $$(eval $$(call my_path_comp,$$(parent),$$(parent_target)))
+ endif
+endif
+endef
+
+_local_path := $(patsubst %/,%,$(LOCAL_PATH))
+_local_path_target := MODULES-IN-$(subst /,-,$(_local_path))
+
+.PHONY: $(_local_path_target)
+$(_local_path_target): $(my_register_name)
+
+ifndef $(_local_path_target)
+ $(_local_path_target) := true
+ $(eval $(call my_path_comp,$(_local_path),$(_local_path_target)))
+endif
+
+_local_path :=
+_local_path_target :=
+my_path_comp :=
###########################################################
## Module installation rule