diff options
author | Masahiro Yamada <yamada.m@jp.panasonic.com> | 2014-08-19 09:34:20 +0200 |
---|---|---|
committer | Michal Marek <mmarek@suse.cz> | 2014-08-19 10:26:19 +0200 |
commit | c8589d1e9e01debdb4f574afe7c585714353ad79 (patch) | |
tree | d97e91953904fe8db17367b8323410f2003a4faa /scripts/Makefile.lib | |
parent | Linux 3.17-rc1 (diff) | |
download | linux-c8589d1e9e01debdb4f574afe7c585714353ad79.tar.xz linux-c8589d1e9e01debdb4f574afe7c585714353ad79.zip |
kbuild: handle multi-objs dependency appropriately
The comment in scripts/Makefile.build says as follows:
We would rather have a list of rules like
foo.o: $(foo-objs)
but that's not so easy, so we rather make all composite objects depend
on the set of all their parts
This commit makes it possible!
For example, assume a Makefile like this
obj-m = foo.o bar.o
foo-objs := foo1.o foo2.o
bar-objs := bar1.o bar2.o
Without this patch, foo.o depends on all of
foo1.o foo2.o bar1.o bar2.o.
It looks funny that foo.o is regenerated when bar1.c is updated.
Now we can handle the dependency of foo.o and bar.o separately.
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Diffstat (limited to '')
-rw-r--r-- | scripts/Makefile.lib | 9 |
1 files changed, 9 insertions, 0 deletions
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 \ modname-multi = $(sort $(foreach m,$(multi-used),\ $(if $(filter $(subst $(obj)/,,$*.o), $($(m:.o=-objs)) $($(m:.o=-y))),$(m:.o=)))) +# Useful for describing the dependency of composite objects +# Usage: +# $(call multi_depend, multi_used_targets, suffix_to_remove, suffix_to_add) +define multi_depend +$(foreach m, $(notdir $1), \ + $(eval $(obj)/$m: \ + $(addprefix $(obj)/, $(foreach s, $3, $($(m:%$(strip $2)=%$(s))))))) +endef + ifdef REGENERATE_PARSERS # GPERF |