mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 09:19:51 +00:00
![Russell King](/assets/img/avatar_default.png)
No other kernel installation target moves the target directory out of the way, even deleting an old version of it. These are destructive operations, ones which the kernel build system should not be making. This behaviour prevents being able to do: make install INSTALL_PATH=/some/path/boot make dtbs_install INSTALL_DTBS_PATH=/some/path/boot As it causes the boot directory containing the kernel installed in step 1 to be moved to /some/path/boot.old. Things get even more fun if you do: make install dtbs_install INSTALL_PATH=/some/path/boot INSTALL_DTBS_PATH=/some/path/boot The kernel gets installed into /some/path/boot, then the directory gets renamed to /some/path/boot.old, and a new directory created to hold the dtbs. Even more fun if you supply -j2 when we end up with races in make. Remove this behaviour. If this behaviour is required at installation time, this should be done by the installation external to the kernel makefiles, just like it would be done for 'make modules_install'. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Jason Cooper <jason@lakedaemon.net> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Michal Marek <mmarek@suse.com>
49 lines
1.2 KiB
Makefile
49 lines
1.2 KiB
Makefile
# ==========================================================================
|
|
# 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
|
|
#
|
|
# Traverse through subdirectories listed in $(dts-dirs).
|
|
# ==========================================================================
|
|
|
|
src := $(obj)
|
|
|
|
PHONY := __dtbs_install
|
|
__dtbs_install:
|
|
|
|
export dtbinst-root ?= $(obj)
|
|
|
|
include include/config/auto.conf
|
|
include scripts/Kbuild.include
|
|
include $(src)/Makefile
|
|
|
|
PHONY += __dtbs_install_prep
|
|
__dtbs_install_prep:
|
|
ifeq ("$(dtbinst-root)", "$(obj)")
|
|
$(Q)mkdir -p $(INSTALL_DTBS_PATH)
|
|
endif
|
|
|
|
dtbinst-files := $(dtb-y)
|
|
dtbinst-dirs := $(dts-dirs)
|
|
|
|
# Helper targets for Installing DTBs into the boot directory
|
|
quiet_cmd_dtb_install = INSTALL $<
|
|
cmd_dtb_install = mkdir -p $(2); cp $< $(2)
|
|
|
|
install-dir = $(patsubst $(dtbinst-root)%,$(INSTALL_DTBS_PATH)%,$(obj))
|
|
|
|
$(dtbinst-files) $(dtbinst-dirs): | __dtbs_install_prep
|
|
|
|
$(dtbinst-files): %.dtb: $(obj)/%.dtb
|
|
$(call cmd,dtb_install,$(install-dir))
|
|
|
|
$(dtbinst-dirs):
|
|
$(Q)$(MAKE) $(dtbinst)=$(obj)/$@
|
|
|
|
PHONY += $(dtbinst-files) $(dtbinst-dirs)
|
|
__dtbs_install: $(dtbinst-files) $(dtbinst-dirs)
|
|
|
|
.PHONY: $(PHONY)
|