forked from Minki/linux
kbuild: use more subdir- for visiting subdirectories while cleaning
Documentation/kbuild/makefiles.rst suggests to use "archclean" for
cleaning arch/$(SRCARCH)/boot/, but it is not a hard requirement.
Since commit d92cc4d516
("kbuild: require all architectures to have
arch/$(SRCARCH)/Kbuild"), we can use the "subdir- += boot" trick for
all architectures. This can take advantage of the parallel option (-j)
for "make clean".
I also cleaned up the comments in arch/$(SRCARCH)/Makefile. The "archdep"
target no longer exists.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)
This commit is contained in:
parent
10c6ae274f
commit
8212f8986d
@ -1050,22 +1050,9 @@ is not sufficient this sometimes needs to be explicit.
|
||||
The above assignment instructs kbuild to descend down in the
|
||||
directory compressed/ when "make clean" is executed.
|
||||
|
||||
To support the clean infrastructure in the Makefiles that build the
|
||||
final bootimage there is an optional target named archclean:
|
||||
|
||||
Example::
|
||||
|
||||
#arch/x86/Makefile
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=arch/x86/boot
|
||||
|
||||
When "make clean" is executed, make will descend down in arch/x86/boot,
|
||||
and clean as usual. The Makefile located in arch/x86/boot/ may use
|
||||
the subdir- trick to descend further down.
|
||||
|
||||
Note 1: arch/$(SRCARCH)/Makefile cannot use "subdir-", because that file is
|
||||
included in the top level makefile, and the kbuild infrastructure
|
||||
is not operational at that point.
|
||||
included in the top level makefile. Instead, arch/$(SRCARCH)/Kbuild can use
|
||||
"subdir-".
|
||||
|
||||
Note 2: All directories listed in core-y, libs-y, drivers-y and net-y will
|
||||
be visited during "make clean".
|
||||
|
@ -1,3 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
obj-y += kernel/ mm/
|
||||
obj-$(CONFIG_MATHEMU) += math-emu/
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -55,9 +55,6 @@ $(boot)/vmlinux.gz: vmlinux
|
||||
bootimage bootpfile bootpzfile: vmlinux
|
||||
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
||||
archheaders:
|
||||
$(Q)$(MAKE) $(build)=arch/alpha/kernel/syscalls all
|
||||
|
||||
|
@ -1,3 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
obj-y += kernel/
|
||||
obj-y += mm/
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -112,6 +112,3 @@ uImage: $(uimage-default-y)
|
||||
@$(kecho) ' Image $(boot)/uImage is ready'
|
||||
|
||||
CLEAN_FILES += $(boot)/uImage
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
@ -9,3 +9,6 @@ obj-y += kernel/ mm/ common/
|
||||
obj-y += probes/
|
||||
obj-y += net/
|
||||
obj-y += crypto/
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -317,10 +317,6 @@ ifeq ($(CONFIG_VDSO),y)
|
||||
$(Q)$(MAKE) $(build)=arch/arm/vdso $@
|
||||
endif
|
||||
|
||||
# We use MRPROPER_FILES and CLEAN_FILES now
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
||||
# My testing targets (bypasses dependencies)
|
||||
bp:; $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/bootpImage
|
||||
|
||||
|
@ -4,3 +4,6 @@ obj-$(CONFIG_KVM) += kvm/
|
||||
obj-$(CONFIG_XEN) += xen/
|
||||
obj-$(subst m,y,$(CONFIG_HYPERV)) += hyperv/
|
||||
obj-$(CONFIG_CRYPTO) += crypto/
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -182,13 +182,6 @@ ifeq ($(CONFIG_ARM64_USE_LSE_ATOMICS),y)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
# We use MRPROPER_FILES and CLEAN_FILES now
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
$(Q)$(MAKE) $(clean)=arch/arm64/kernel/vdso
|
||||
$(Q)$(MAKE) $(clean)=arch/arm64/kernel/vdso32
|
||||
|
||||
ifeq ($(KBUILD_EXTMOD),)
|
||||
# We need to generate vdso-offsets.h before compiling certain files in kernel/.
|
||||
# In order to do that, we should use the archprepare target, but we can't since
|
||||
|
@ -81,3 +81,6 @@ extra-y += $(head-y) vmlinux.lds
|
||||
ifeq ($(CONFIG_DEBUG_EFI),y)
|
||||
AFLAGS_head.o += -DVMLINUX_PATH="\"$(realpath $(objtree)/vmlinux)\""
|
||||
endif
|
||||
|
||||
# for cleaning
|
||||
subdir- += vdso vdso32
|
||||
|
@ -1 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -76,9 +76,6 @@ all: zImage
|
||||
zImage Image uImage: vmlinux
|
||||
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
||||
define archhelp
|
||||
echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)'
|
||||
echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
|
||||
|
@ -1,2 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
obj-y += kernel/ mm/ boot/dts/
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -34,9 +34,6 @@ libs-y += arch/$(ARCH)/lib/
|
||||
|
||||
boot := arch/h8300/boot
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
||||
vmlinux.srec vmlinux.bin zImage uImage.bin: vmlinux
|
||||
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
|
||||
|
||||
|
@ -67,8 +67,6 @@ vmlinux.bin: vmlinux FORCE
|
||||
unwcheck: vmlinux
|
||||
-$(Q)READELF=$(READELF) $(PYTHON3) $(srctree)/arch/ia64/scripts/unwcheck.py $<
|
||||
|
||||
archclean:
|
||||
|
||||
archheaders:
|
||||
$(Q)$(MAKE) $(build)=arch/ia64/kernel/syscalls all
|
||||
|
||||
|
@ -2,9 +2,7 @@
|
||||
# m68k/Makefile
|
||||
#
|
||||
# This file is included by the global makefile so that you can add your own
|
||||
# architecture-specific flags and dependencies. Remember to do have actions
|
||||
# for "archclean" and "archdep" for cleaning up and making dependencies for
|
||||
# this architecture
|
||||
# architecture-specific flags and dependencies.
|
||||
#
|
||||
# This file is subject to the terms and conditions of the GNU General Public
|
||||
# License. See the file "COPYING" in the main directory of this archive
|
||||
|
@ -3,3 +3,6 @@ obj-y += kernel/
|
||||
obj-y += mm/
|
||||
obj-$(CONFIG_PCI) += pci/
|
||||
obj-y += boot/dts/
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -60,9 +60,6 @@ export DTB
|
||||
|
||||
all: linux.bin
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
||||
archheaders:
|
||||
$(Q)$(MAKE) $(build)=arch/microblaze/kernel/syscalls all
|
||||
|
||||
|
@ -25,3 +25,6 @@ obj-y += vdso/
|
||||
ifdef CONFIG_KVM
|
||||
obj-y += kvm/
|
||||
endif
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -8,8 +8,7 @@
|
||||
# Copyright (C) 2002, 2003, 2004 Maciej W. Rozycki
|
||||
#
|
||||
# This file is included by the global makefile so that you can add your own
|
||||
# architecture-specific flags and dependencies. Remember to do have actions
|
||||
# for "archclean" cleaning up for this architecture.
|
||||
# architecture-specific flags and dependencies.
|
||||
#
|
||||
|
||||
archscripts: scripts_basic
|
||||
@ -426,11 +425,6 @@ endif
|
||||
$(Q)install -D -m 644 .config $(INSTALL_PATH)/config-$(KERNELRELEASE)
|
||||
$(Q)install -D -m 644 System.map $(INSTALL_PATH)/System.map-$(KERNELRELEASE)
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=arch/mips/boot
|
||||
$(Q)$(MAKE) $(clean)=arch/mips/boot/compressed
|
||||
$(Q)$(MAKE) $(clean)=arch/mips/boot/tools
|
||||
|
||||
archheaders:
|
||||
$(Q)$(MAKE) $(build)=arch/mips/kernel/syscalls all
|
||||
|
||||
|
@ -171,3 +171,6 @@ $(obj)/vmlinux.itb: $(obj)/vmlinux.its $(obj)/vmlinux.bin FORCE
|
||||
|
||||
$(obj)/vmlinux.%.itb: $(obj)/vmlinux.%.its $(obj)/vmlinux.bin.% FORCE
|
||||
$(call if_changed,itb-image,$<)
|
||||
|
||||
# for cleaning
|
||||
subdir- += compressed tools
|
||||
|
@ -1 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -64,9 +64,6 @@ prepare: vdso_prepare
|
||||
vdso_prepare: prepare0
|
||||
$(Q)$(MAKE) $(build)=arch/nds32/kernel/vdso include/generated/vdso-offsets.h
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
||||
define archhelp
|
||||
echo ' Image - kernel image (arch/$(ARCH)/boot/Image)'
|
||||
endef
|
||||
|
@ -1 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -8,8 +8,7 @@
|
||||
# Written by Fredrik Markstrom
|
||||
#
|
||||
# This file is included by the global makefile so that you can add your own
|
||||
# architecture-specific flags and dependencies. Remember to do have actions
|
||||
# for "archclean" cleaning up for this architecture.
|
||||
# architecture-specific flags and dependencies.
|
||||
#
|
||||
# Nios2 port by Wind River Systems Inc trough:
|
||||
# fredrik.markstrom@gmail.com and ivarholmqvist@gmail.com
|
||||
@ -53,9 +52,6 @@ core-y += $(nios2-boot)/dts/
|
||||
|
||||
all: vmImage
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(nios2-boot)
|
||||
|
||||
$(BOOT_TARGETS): vmlinux
|
||||
$(Q)$(MAKE) $(build)=$(nios2-boot) $(nios2-boot)/$@
|
||||
|
||||
|
@ -1,3 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
obj-y += lib/ kernel/ mm/
|
||||
obj-y += boot/dts/
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -1,9 +1,7 @@
|
||||
# BK Id: %F% %I% %G% %U% %#%
|
||||
#
|
||||
# This file is included by the global makefile so that you can add your own
|
||||
# architecture-specific flags and dependencies. Remember to do have actions
|
||||
# for "archclean" and "archdep" for cleaning up and making dependencies for
|
||||
# this architecture
|
||||
# architecture-specific flags and dependencies.
|
||||
#
|
||||
# This file is subject to the terms and conditions of the GNU General Public
|
||||
# License. See the file "COPYING" in the main directory of this archive
|
||||
@ -48,6 +46,3 @@ PHONY += vmlinux.bin
|
||||
|
||||
vmlinux.bin: vmlinux
|
||||
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
@ -1,2 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
obj-y += mm/ kernel/ math-emu/
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -2,9 +2,7 @@
|
||||
# parisc/Makefile
|
||||
#
|
||||
# This file is included by the global makefile so that you can add your own
|
||||
# architecture-specific flags and dependencies. Remember to do have actions
|
||||
# for "archclean" and "archdep" for cleaning up and making dependencies for
|
||||
# this architecture
|
||||
# architecture-specific flags and dependencies.
|
||||
#
|
||||
# This file is subject to the terms and conditions of the GNU General Public
|
||||
# License. See the file "COPYING" in the main directory of this archive
|
||||
@ -181,8 +179,5 @@ define archhelp
|
||||
@echo ' zinstall - Install compressed vmlinuz kernel'
|
||||
endef
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
||||
archheaders:
|
||||
$(Q)$(MAKE) $(build)=arch/parisc/kernel/syscalls all
|
||||
|
@ -16,3 +16,6 @@ obj-$(CONFIG_KVM) += kvm/
|
||||
obj-$(CONFIG_PERF_EVENTS) += perf/
|
||||
obj-$(CONFIG_KEXEC_CORE) += kexec/
|
||||
obj-$(CONFIG_KEXEC_FILE) += purgatory/
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -1,7 +1,5 @@
|
||||
# This file is included by the global makefile so that you can add your own
|
||||
# architecture-specific flags and dependencies. Remember to do have actions
|
||||
# for "archclean" and "archdep" for cleaning up and making dependencies for
|
||||
# this architecture.
|
||||
# architecture-specific flags and dependencies.
|
||||
#
|
||||
# This file is subject to the terms and conditions of the GNU General Public
|
||||
# License. See the file "COPYING" in the main directory of this archive
|
||||
@ -411,9 +409,6 @@ install:
|
||||
sh -x $(srctree)/$(boot)/install.sh "$(KERNELRELEASE)" vmlinux \
|
||||
System.map "$(INSTALL_PATH)"
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
||||
ifeq ($(KBUILD_EXTMOD),)
|
||||
# We need to generate vdso-offsets.h before compiling certain files in kernel/.
|
||||
# In order to do that, we should use the archprepare target, but we can't since
|
||||
|
@ -2,3 +2,6 @@
|
||||
|
||||
obj-y += kernel/ mm/ net/
|
||||
obj-$(CONFIG_BUILTIN_DTB) += boot/dts/
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -1,7 +1,5 @@
|
||||
# This file is included by the global makefile so that you can add your own
|
||||
# architecture-specific flags and dependencies. Remember to do have actions
|
||||
# for "archclean" and "archdep" for cleaning up and making dependencies for
|
||||
# this architecture
|
||||
# architecture-specific flags and dependencies.
|
||||
#
|
||||
# This file is subject to the terms and conditions of the GNU General Public
|
||||
# License. See the file "COPYING" in the main directory of this archive
|
||||
@ -137,6 +135,3 @@ zinstall: install-image = Image.gz
|
||||
install zinstall:
|
||||
$(CONFIG_SHELL) $(srctree)/$(boot)/install.sh $(KERNELRELEASE) \
|
||||
$(boot)/$(install-image) System.map "$(INSTALL_PATH)"
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
@ -8,3 +8,6 @@ obj-$(CONFIG_APPLDATA_BASE) += appldata/
|
||||
obj-y += net/
|
||||
obj-$(CONFIG_PCI) += pci/
|
||||
obj-$(CONFIG_ARCH_HAS_KEXEC_PURGATORY) += purgatory/
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot tools
|
||||
|
@ -3,9 +3,7 @@
|
||||
# s390/Makefile
|
||||
#
|
||||
# This file is included by the global makefile so that you can add your own
|
||||
# architecture-specific flags and dependencies. Remember to do have actions
|
||||
# for "archclean" and "archdep" for cleaning up and making dependencies for
|
||||
# this architecture
|
||||
# architecture-specific flags and dependencies.
|
||||
#
|
||||
# Copyright (C) 1994 by Linus Torvalds
|
||||
#
|
||||
@ -147,10 +145,6 @@ zfcpdump:
|
||||
vdso_install:
|
||||
$(Q)$(MAKE) $(build)=arch/$(ARCH)/kernel/vdso64 $@
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
$(Q)$(MAKE) $(clean)=$(tools)
|
||||
|
||||
archheaders:
|
||||
$(Q)$(MAKE) $(build)=$(syscalls) uapi
|
||||
|
||||
|
@ -2,3 +2,6 @@
|
||||
obj-y += kernel/ mm/ boards/
|
||||
obj-$(CONFIG_SH_FPU_EMU) += math-emu/
|
||||
obj-$(CONFIG_USE_BUILTIN_DTB) += boot/dts/
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -198,9 +198,6 @@ compressed: zImage
|
||||
archprepare:
|
||||
$(Q)$(MAKE) $(build)=arch/sh/tools include/generated/machtypes.h
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
||||
archheaders:
|
||||
$(Q)$(MAKE) $(build)=arch/sh/kernel/syscalls all
|
||||
|
||||
|
@ -9,3 +9,6 @@ obj-y += math-emu/
|
||||
obj-y += net/
|
||||
obj-y += crypto/
|
||||
obj-$(CONFIG_SPARC64) += vdso/
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot
|
||||
|
@ -75,9 +75,6 @@ install:
|
||||
sh $(srctree)/$(boot)/install.sh $(KERNELRELEASE) $(KBUILD_IMAGE) \
|
||||
System.map "$(INSTALL_PATH)"
|
||||
|
||||
archclean:
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
|
||||
archheaders:
|
||||
$(Q)$(MAKE) $(build)=arch/sparc/kernel/syscalls all
|
||||
|
||||
|
@ -25,3 +25,6 @@ obj-y += platform/
|
||||
obj-y += net/
|
||||
|
||||
obj-$(CONFIG_KEXEC_FILE) += purgatory/
|
||||
|
||||
# for cleaning
|
||||
subdir- += boot tools
|
||||
|
@ -283,8 +283,6 @@ endif
|
||||
archclean:
|
||||
$(Q)rm -rf $(objtree)/arch/i386
|
||||
$(Q)rm -rf $(objtree)/arch/x86_64
|
||||
$(Q)$(MAKE) $(clean)=$(boot)
|
||||
$(Q)$(MAKE) $(clean)=arch/x86/tools
|
||||
|
||||
define archhelp
|
||||
echo '* bzImage - Compressed kernel image (arch/x86/boot/bzImage)'
|
||||
|
@ -7,9 +7,7 @@
|
||||
# Copyright (C) 2014 Cadence Design Systems Inc.
|
||||
#
|
||||
# This file is included by the global makefile so that you can add your own
|
||||
# architecture-specific flags and dependencies. Remember to do have actions
|
||||
# for "archclean" and "archdep" for cleaning up and making dependencies for
|
||||
# this architecture
|
||||
# architecture-specific flags and dependencies.
|
||||
|
||||
# Core configuration.
|
||||
# (Use VAR=<xtensa_config> to use another default compiler.)
|
||||
|
Loading…
Reference in New Issue
Block a user