On 20-01-21, 17:58, Masahiro Yamada wrote: > > +%.dtb %.dtbo: include/config/kernel.release scripts_dtc > > $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ > > > No, this is wrong because it does not work > as grouped targets. > > You need to separate them. > > > > %.dtb: include/config/kernel.release scripts_dtc > $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ > > %.dtbo: include/config/kernel.release scripts_dtc > $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ > > > > > See GNU make manual. > > > "Pattern rules may have more than one target; however, every target > must contain a % character. > Pattern rules are always treated as grouped targets" > > https://www.gnu.org/software/make/manual/html_node/Pattern-Intro.html Hmm, okay I will do that. I did it this way because I saw similar stuff at some other places. I am not a regular Makefile hacker, there is every chance I am reading it wrong. $ git grep "%.*%.*:" | grep Makefile Makefile:%/config/auto.conf %/config/auto.conf.cmd %/generated/autoconf.h: $(KCONFIG_CONFIG) scripts/Makefile.build:$(obj)/%.asn1.c $(obj)/%.asn1.h: $(src)/%.asn1 $(objtree)/scripts/asn1_compiler scripts/Makefile.host:$(obj)/%.tab.c $(obj)/%.tab.h: $(src)/%.y FORCE scripts/genksyms/Makefile:$(obj)/pars%.tab.c $(obj)/pars%.tab.h: $(src)/pars%.y FORCE tools/perf/Documentation/Makefile:$(OUTPUT)%.1 $(OUTPUT)%.5 $(OUTPUT)%.7 : %.txt tools/perf/Documentation/Makefile:$(OUTPUT)%.1 $(OUTPUT)%.5 $(OUTPUT)%.7 : $(OUTPUT)%.xml -- viresh