diff options
-rw-r--r-- | scripts/Makefile.build | 10 | ||||
-rw-r--r-- | scripts/Makefile.lib | 9 |
2 files changed, 13 insertions, 6 deletions
diff --git a/scripts/Makefile.build b/scripts/Makefile.build index bf3e6778cd71..5b09d3637855 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build | |||
@@ -382,16 +382,14 @@ cmd_link_multi-y = $(LD) $(ld_flags) -r -o $@ $(link_multi_deps) $(cmd_secanalys | |||
382 | quiet_cmd_link_multi-m = LD [M] $@ | 382 | quiet_cmd_link_multi-m = LD [M] $@ |
383 | cmd_link_multi-m = $(cmd_link_multi-y) | 383 | cmd_link_multi-m = $(cmd_link_multi-y) |
384 | 384 | ||
385 | # We would rather have a list of rules like | 385 | $(multi-used-y): FORCE |
386 | # foo.o: $(foo-objs) | ||
387 | # but that's not so easy, so we rather make all composite objects depend | ||
388 | # on the set of all their parts | ||
389 | $(multi-used-y) : %.o: $(multi-objs-y) FORCE | ||
390 | $(call if_changed,link_multi-y) | 386 | $(call if_changed,link_multi-y) |
387 | $(call multi_depend, $(multi-used-y), .o, -objs -y) | ||
391 | 388 | ||
392 | $(multi-used-m) : %.o: $(multi-objs-m) FORCE | 389 | $(multi-used-m): FORCE |
393 | $(call if_changed,link_multi-m) | 390 | $(call if_changed,link_multi-m) |
394 | @{ echo $(@:.o=.ko); echo $(link_multi_deps); } > $(MODVERDIR)/$(@F:.o=.mod) | 391 | @{ echo $(@:.o=.ko); echo $(link_multi_deps); } > $(MODVERDIR)/$(@F:.o=.mod) |
392 | $(call multi_depend, $(multi-used-m), .o, -objs -y) | ||
395 | 393 | ||
396 | targets += $(multi-used-y) $(multi-used-m) | 394 | targets += $(multi-used-y) $(multi-used-m) |
397 | 395 | ||
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 260bf8acfce9..54be19a0fa51 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib | |||
@@ -159,6 +159,15 @@ dtc_cpp_flags = -Wp,-MD,$(depfile).pre.tmp -nostdinc \ | |||
159 | modname-multi = $(sort $(foreach m,$(multi-used),\ | 159 | modname-multi = $(sort $(foreach m,$(multi-used),\ |
160 | $(if $(filter $(subst $(obj)/,,$*.o), $($(m:.o=-objs)) $($(m:.o=-y))),$(m:.o=)))) | 160 | $(if $(filter $(subst $(obj)/,,$*.o), $($(m:.o=-objs)) $($(m:.o=-y))),$(m:.o=)))) |
161 | 161 | ||
162 | # Useful for describing the dependency of composite objects | ||
163 | # Usage: | ||
164 | # $(call multi_depend, multi_used_targets, suffix_to_remove, suffix_to_add) | ||
165 | define multi_depend | ||
166 | $(foreach m, $(notdir $1), \ | ||
167 | $(eval $(obj)/$m: \ | ||
168 | $(addprefix $(obj)/, $(foreach s, $3, $($(m:%$(strip $2)=%$(s))))))) | ||
169 | endef | ||
170 | |||
162 | ifdef REGENERATE_PARSERS | 171 | ifdef REGENERATE_PARSERS |
163 | 172 | ||
164 | # GPERF | 173 | # GPERF |