Message ID | 20240109120738.346061-3-masahiroy@kernel.org |
---|---|
State | Accepted |
Commit | 8f66864cee447835889ec0d91d52ff39bf2deabc |
Headers | show |
Series | kbuild: create a list of DTBs and allow to install base dtb and overlays | expand |
On Tue, Jan 09, 2024 at 09:07:35PM +0900, Masahiro Yamada wrote: > Retrieve the list of *.dtb(o) files from arch/*/boot/dts/dtbs-list > instead of traversing the directory tree again. Don't you need dtbs-list in .gitignore? > > Please note that 'make dtbs_install' installs *.dtb(o) files directly > added to dtb-y because scripts/Makefile.dtbinst installs $(dtb-y) > without expanding the -dtbs suffix. > > This commit preserves this behavior. > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > --- > > Makefile | 2 +- > scripts/Kbuild.include | 6 ------ > scripts/Makefile.dtbinst | 32 ++++++++++++++++++-------------- > 3 files changed, 19 insertions(+), 21 deletions(-) > > diff --git a/Makefile b/Makefile > index db7f9e34a24e..dae6825b8082 100644 > --- a/Makefile > +++ b/Makefile > @@ -1407,7 +1407,7 @@ endif > dtbs_check: dtbs > > dtbs_install: > - $(Q)$(MAKE) $(dtbinst)=$(dtstree) dst=$(INSTALL_DTBS_PATH) > + $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.dtbinst obj=$(dtstree) > > ifdef CONFIG_OF_EARLY_FLATTREE > all: dtbs > diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include > index 7778cc97a4e0..2f331879816b 100644 > --- a/scripts/Kbuild.include > +++ b/scripts/Kbuild.include > @@ -113,12 +113,6 @@ endef > # $(Q)$(MAKE) $(build)=dir > build := -f $(srctree)/scripts/Makefile.build obj > > -### > -# Shorthand for $(Q)$(MAKE) -f scripts/Makefile.dtbinst obj= > -# Usage: > -# $(Q)$(MAKE) $(dtbinst)=dir > -dtbinst := -f $(srctree)/scripts/Makefile.dtbinst obj > - > ### > # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.clean obj= > # Usage: > diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst > index 4405d5b67578..67956f6496a5 100644 > --- a/scripts/Makefile.dtbinst > +++ b/scripts/Makefile.dtbinst > @@ -8,32 +8,36 @@ > # $INSTALL_PATH/dtbs/$KERNELRELEASE > # ========================================================================== > > -src := $(obj) > - > PHONY := __dtbs_install > __dtbs_install: > > include include/config/auto.conf > include $(srctree)/scripts/Kbuild.include > -include $(kbuild-file) > > -dtbs := $(addprefix $(dst)/, $(dtb-y) $(if $(CONFIG_OF_ALL_DTBS),$(dtb-))) > -subdirs := $(addprefix $(obj)/, $(subdir-y) $(subdir-m)) > - > -__dtbs_install: $(dtbs) $(subdirs) > - @: > +dst := $(INSTALL_DTBS_PATH) > > quiet_cmd_dtb_install = INSTALL $@ > cmd_dtb_install = install -D $< $@ > > -$(dst)/%.dtb: $(obj)/%.dtb > +$(dst)/%: $(obj)/% > $(call cmd,dtb_install) > > -$(dst)/%.dtbo: $(obj)/%.dtbo > - $(call cmd,dtb_install) > +dtbs := $(patsubst $(obj)/%,%,$(call read-file, $(obj)/dtbs-list)) > > -PHONY += $(subdirs) > -$(subdirs): > - $(Q)$(MAKE) $(dtbinst)=$@ dst=$(if $(CONFIG_ARCH_WANT_FLAT_DTB_INSTALL),$(dst),$(patsubst $(obj)/%,$(dst)/%,$@)) > +ifdef CONFIG_ARCH_WANT_FLAT_DTB_INSTALL > + > +define gen_install_rules > +$(dst)/%: $(obj)/$(1)% > + $$(call cmd,dtb_install) > +endef > + > +$(foreach d, $(sort $(dir $(dtbs))), $(eval $(call gen_install_rules,$(d)))) > + > +dtbs := $(notdir $(dtbs)) > + > +endif # CONFIG_ARCH_WANT_FLAT_DTB_INSTALL > + > +__dtbs_install: $(addprefix $(dst)/, $(dtbs)) > + @: > > .PHONY: $(PHONY) > -- > 2.40.1 >
On Wed, Jan 17, 2024 at 11:52 PM Rob Herring <robh@kernel.org> wrote: > > On Tue, Jan 09, 2024 at 09:07:35PM +0900, Masahiro Yamada wrote: > > Retrieve the list of *.dtb(o) files from arch/*/boot/dts/dtbs-list > > instead of traversing the directory tree again. > > Don't you need dtbs-list in .gitignore? Yes. 1/4 added it. > > > > Please note that 'make dtbs_install' installs *.dtb(o) files directly > > added to dtb-y because scripts/Makefile.dtbinst installs $(dtb-y) > > without expanding the -dtbs suffix. > > > > This commit preserves this behavior. > > > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > > --- > > > > Makefile | 2 +- > > scripts/Kbuild.include | 6 ------ > > scripts/Makefile.dtbinst | 32 ++++++++++++++++++-------------- > > 3 files changed, 19 insertions(+), 21 deletions(-) > > > > diff --git a/Makefile b/Makefile > > index db7f9e34a24e..dae6825b8082 100644 > > --- a/Makefile > > +++ b/Makefile > > @@ -1407,7 +1407,7 @@ endif > > dtbs_check: dtbs > > > > dtbs_install: > > - $(Q)$(MAKE) $(dtbinst)=$(dtstree) dst=$(INSTALL_DTBS_PATH) > > + $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.dtbinst obj=$(dtstree) > > > > ifdef CONFIG_OF_EARLY_FLATTREE > > all: dtbs > > diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include > > index 7778cc97a4e0..2f331879816b 100644 > > --- a/scripts/Kbuild.include > > +++ b/scripts/Kbuild.include > > @@ -113,12 +113,6 @@ endef > > # $(Q)$(MAKE) $(build)=dir > > build := -f $(srctree)/scripts/Makefile.build obj > > > > -### > > -# Shorthand for $(Q)$(MAKE) -f scripts/Makefile.dtbinst obj= > > -# Usage: > > -# $(Q)$(MAKE) $(dtbinst)=dir > > -dtbinst := -f $(srctree)/scripts/Makefile.dtbinst obj > > - > > ### > > # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.clean obj= > > # Usage: > > diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst > > index 4405d5b67578..67956f6496a5 100644 > > --- a/scripts/Makefile.dtbinst > > +++ b/scripts/Makefile.dtbinst > > @@ -8,32 +8,36 @@ > > # $INSTALL_PATH/dtbs/$KERNELRELEASE > > # ========================================================================== > > > > -src := $(obj) > > - > > PHONY := __dtbs_install > > __dtbs_install: > > > > include include/config/auto.conf > > include $(srctree)/scripts/Kbuild.include > > -include $(kbuild-file) > > > > -dtbs := $(addprefix $(dst)/, $(dtb-y) $(if $(CONFIG_OF_ALL_DTBS),$(dtb-))) > > -subdirs := $(addprefix $(obj)/, $(subdir-y) $(subdir-m)) > > - > > -__dtbs_install: $(dtbs) $(subdirs) > > - @: > > +dst := $(INSTALL_DTBS_PATH) > > > > quiet_cmd_dtb_install = INSTALL $@ > > cmd_dtb_install = install -D $< $@ > > > > -$(dst)/%.dtb: $(obj)/%.dtb > > +$(dst)/%: $(obj)/% > > $(call cmd,dtb_install) > > > > -$(dst)/%.dtbo: $(obj)/%.dtbo > > - $(call cmd,dtb_install) > > +dtbs := $(patsubst $(obj)/%,%,$(call read-file, $(obj)/dtbs-list)) > > > > -PHONY += $(subdirs) > > -$(subdirs): > > - $(Q)$(MAKE) $(dtbinst)=$@ dst=$(if $(CONFIG_ARCH_WANT_FLAT_DTB_INSTALL),$(dst),$(patsubst $(obj)/%,$(dst)/%,$@)) > > +ifdef CONFIG_ARCH_WANT_FLAT_DTB_INSTALL > > + > > +define gen_install_rules > > +$(dst)/%: $(obj)/$(1)% > > + $$(call cmd,dtb_install) > > +endef > > + > > +$(foreach d, $(sort $(dir $(dtbs))), $(eval $(call gen_install_rules,$(d)))) > > + > > +dtbs := $(notdir $(dtbs)) > > + > > +endif # CONFIG_ARCH_WANT_FLAT_DTB_INSTALL > > + > > +__dtbs_install: $(addprefix $(dst)/, $(dtbs)) > > + @: > > > > .PHONY: $(PHONY) > > -- > > 2.40.1 > >
diff --git a/Makefile b/Makefile index db7f9e34a24e..dae6825b8082 100644 --- a/Makefile +++ b/Makefile @@ -1407,7 +1407,7 @@ endif dtbs_check: dtbs dtbs_install: - $(Q)$(MAKE) $(dtbinst)=$(dtstree) dst=$(INSTALL_DTBS_PATH) + $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.dtbinst obj=$(dtstree) ifdef CONFIG_OF_EARLY_FLATTREE all: dtbs diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include index 7778cc97a4e0..2f331879816b 100644 --- a/scripts/Kbuild.include +++ b/scripts/Kbuild.include @@ -113,12 +113,6 @@ endef # $(Q)$(MAKE) $(build)=dir build := -f $(srctree)/scripts/Makefile.build obj -### -# Shorthand for $(Q)$(MAKE) -f scripts/Makefile.dtbinst obj= -# Usage: -# $(Q)$(MAKE) $(dtbinst)=dir -dtbinst := -f $(srctree)/scripts/Makefile.dtbinst obj - ### # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.clean obj= # Usage: diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst index 4405d5b67578..67956f6496a5 100644 --- a/scripts/Makefile.dtbinst +++ b/scripts/Makefile.dtbinst @@ -8,32 +8,36 @@ # $INSTALL_PATH/dtbs/$KERNELRELEASE # ========================================================================== -src := $(obj) - PHONY := __dtbs_install __dtbs_install: include include/config/auto.conf include $(srctree)/scripts/Kbuild.include -include $(kbuild-file) -dtbs := $(addprefix $(dst)/, $(dtb-y) $(if $(CONFIG_OF_ALL_DTBS),$(dtb-))) -subdirs := $(addprefix $(obj)/, $(subdir-y) $(subdir-m)) - -__dtbs_install: $(dtbs) $(subdirs) - @: +dst := $(INSTALL_DTBS_PATH) quiet_cmd_dtb_install = INSTALL $@ cmd_dtb_install = install -D $< $@ -$(dst)/%.dtb: $(obj)/%.dtb +$(dst)/%: $(obj)/% $(call cmd,dtb_install) -$(dst)/%.dtbo: $(obj)/%.dtbo - $(call cmd,dtb_install) +dtbs := $(patsubst $(obj)/%,%,$(call read-file, $(obj)/dtbs-list)) -PHONY += $(subdirs) -$(subdirs): - $(Q)$(MAKE) $(dtbinst)=$@ dst=$(if $(CONFIG_ARCH_WANT_FLAT_DTB_INSTALL),$(dst),$(patsubst $(obj)/%,$(dst)/%,$@)) +ifdef CONFIG_ARCH_WANT_FLAT_DTB_INSTALL + +define gen_install_rules +$(dst)/%: $(obj)/$(1)% + $$(call cmd,dtb_install) +endef + +$(foreach d, $(sort $(dir $(dtbs))), $(eval $(call gen_install_rules,$(d)))) + +dtbs := $(notdir $(dtbs)) + +endif # CONFIG_ARCH_WANT_FLAT_DTB_INSTALL + +__dtbs_install: $(addprefix $(dst)/, $(dtbs)) + @: .PHONY: $(PHONY)
Retrieve the list of *.dtb(o) files from arch/*/boot/dts/dtbs-list instead of traversing the directory tree again. Please note that 'make dtbs_install' installs *.dtb(o) files directly added to dtb-y because scripts/Makefile.dtbinst installs $(dtb-y) without expanding the -dtbs suffix. This commit preserves this behavior. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> --- Makefile | 2 +- scripts/Kbuild.include | 6 ------ scripts/Makefile.dtbinst | 32 ++++++++++++++++++-------------- 3 files changed, 19 insertions(+), 21 deletions(-)