diff options
| author | 2020-06-17 01:26:20 +0000 | |
|---|---|---|
| committer | 2020-06-17 01:26:20 +0000 | |
| commit | 0c263fd2717518c459d58c2c91e4c3ea87a94fa4 (patch) | |
| tree | 6ff4d026d50233aaca1b7b21fdd4fe5358388d3f | |
| parent | 397972fa6a9b8736a6251a465db277169377e35c (diff) | |
| parent | 343caec30c7e63706ddc7fda95c84173367d358b (diff) | |
Merge "Refactor how MODULES-IN-* is defined"
| -rw-r--r-- | core/base_rules.mk | 33 |
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 |