From 9fb5e5372208973984a23ee6f5f025c05d364633 Mon Sep 17 00:00:00 2001 From: Robert Richter Date: Wed, 3 Sep 2014 15:29:24 +0200 Subject: [PATCH] dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst Move dtbs install rules to Makefile.dtbinst. This change is needed to implement support for dts vendor subdirs. The change makes Makefiles easier and smaller as no longer the dtbs_install rule needs to be defined. Another advantage is that install goals are not encoded in targets anymore (%.dtb_dtbinst_). Signed-off-by: Robert Richter --- arch/arm/Makefile | 6 +++++- arch/arm/boot/dts/Makefile | 2 -- arch/arm64/Makefile | 6 +++++- arch/arm64/boot/dts/Makefile | 2 -- scripts/Kbuild.include | 6 ++++++ scripts/Makefile.dtbinst | 38 ++++++++++++++++++++++++++++++++++++ scripts/Makefile.lib | 12 ------------ 7 files changed, 54 insertions(+), 18 deletions(-) create mode 100644 scripts/Makefile.dtbinst diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 034a94904d69e5..c81e0674e568a5 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -312,9 +312,13 @@ $(INSTALL_TARGETS): $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@ PHONY += dtbs dtbs_install -dtbs dtbs_install: prepare scripts + +dtbs: prepare scripts $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $@ +dtbs_install: + $(Q)$(MAKE) $(dtbinst)=$(boot)/dts MACHINE=$(MACHINE) + # We use MRPROPER_FILES and CLEAN_FILES now archclean: $(Q)$(MAKE) $(clean)=$(boot) diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 38c89cafa1ab8e..e0d348b4d1fa95 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -527,5 +527,3 @@ dtbs: $(addprefix $(obj)/, $(dtb-y)) $(Q)rm -f $(obj)/../*.dtb clean-files := *.dtb - -dtbs_install: $(addsuffix _dtbinst_, $(dtb-y)) diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index a963b3a8fc3499..8e9167a19b6b91 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -71,9 +71,13 @@ zinstall install: vmlinux $(Q)$(MAKE) $(build)=$(boot)/dts $(boot)/dts/$@ PHONY += dtbs dtbs_install -dtbs dtbs_install: prepare scripts + +dtbs: prepare scripts $(Q)$(MAKE) $(build)=$(boot)/dts $@ +dtbs_install: + $(Q)$(MAKE) $(dtbinst)=$(boot)/dts + PHONY += vdso_install vdso_install: $(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso $@ diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile index 3a75cdc2d08739..29ac5adf50aefa 100644 --- a/arch/arm64/boot/dts/Makefile +++ b/arch/arm64/boot/dts/Makefile @@ -8,5 +8,3 @@ targets += $(dtb-y) dtbs: $(addprefix $(obj)/, $(dtb-y)) clean-files := *.dtb - -dtbs_install: $(addsuffix _dtbinst_, $(dtb-y)) diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include index 65e7b08bb2cc04..5374b1bdf02f87 100644 --- a/scripts/Kbuild.include +++ b/scripts/Kbuild.include @@ -179,6 +179,12 @@ build := -f $(srctree)/scripts/Makefile.build obj # $(Q)$(MAKE) $(modbuiltin)=dir modbuiltin := -f $(srctree)/scripts/Makefile.modbuiltin obj +### +# Shorthand for $(Q)$(MAKE) -f scripts/Makefile.dtbinst obj= +# Usage: +# $(Q)$(MAKE) $(dtbinst)=dir +dtbinst := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.dtbinst obj + # Prefix -I with $(srctree) if it is not an absolute path. # skip if -I has no parameter addtree = $(if $(patsubst -I%,%,$(1)), \ diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst new file mode 100644 index 00000000000000..54286cccc28983 --- /dev/null +++ b/scripts/Makefile.dtbinst @@ -0,0 +1,38 @@ +# ========================================================================== +# Installing dtb files +# +# Installs all dtb files listed in $(dtb-y) either in the +# INSTALL_DTBS_PATH directory or the default location: +# +# $INSTALL_PATH/dtbs/$KERNELRELEASE +# +# ========================================================================== + +src := $(obj) + +PHONY := __dtbs_install +__dtbs_install: + +include include/config/auto.conf +include scripts/Kbuild.include +include $(srctree)/$(obj)/Makefile + +PHONY += __dtbs_install_prep +__dtbs_install_prep: + $(Q)if [ -d $(INSTALL_DTBS_PATH).old ]; then rm -rf $(INSTALL_DTBS_PATH).old; fi + $(Q)if [ -d $(INSTALL_DTBS_PATH) ]; then mv $(INSTALL_DTBS_PATH) $(INSTALL_DTBS_PATH).old; fi + $(Q)mkdir -p $(INSTALL_DTBS_PATH) + +dtbinst-files := $(dtb-y) + +# Helper targets for Installing DTBs into the boot directory +quiet_cmd_dtb_install = INSTALL $< + cmd_dtb_install = cp $< $(2) + +$(dtbinst-files): %.dtb: $(obj)/%.dtb | __dtbs_install_prep + $(call cmd,dtb_install,$(INSTALL_DTBS_PATH)) + +PHONY += $(dtbinst-files) +__dtbs_install: $(dtbinst-files) + +.PHONY: $(PHONY) diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 54be19a0fa512e..51175520063445 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -283,18 +283,6 @@ $(obj)/%.dtb: $(src)/%.dts FORCE dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp) -# Helper targets for Installing DTBs into the boot directory -quiet_cmd_dtb_install = INSTALL $< - cmd_dtb_install = cp $< $(2) - -_dtbinst_pre_: - $(Q)if [ -d $(INSTALL_DTBS_PATH).old ]; then rm -rf $(INSTALL_DTBS_PATH).old; fi - $(Q)if [ -d $(INSTALL_DTBS_PATH) ]; then mv $(INSTALL_DTBS_PATH) $(INSTALL_DTBS_PATH).old; fi - $(Q)mkdir -p $(INSTALL_DTBS_PATH) - -%.dtb_dtbinst_: $(obj)/%.dtb _dtbinst_pre_ - $(call cmd,dtb_install,$(INSTALL_DTBS_PATH)) - # Bzip2 # ---------------------------------------------------------------------------