kbuild: descend into SOC directory from CPU directory
Subsystems (5)
cover kbuild: descend into SOC directory from CPU directory
In Kbuild, the build system generally descends into each directory from its parent directory, but SOC directory is one of the rule violations.
My motivation of this series is to make further refactoring possible.
You might perhaps wonder if the build system works equivalently especially with 3/4.
I built all the boards to confirm that no boards are broken. Moreover, 2/4 thru 4/4 do not change anything, i.e. produce the same check sums.
Masahiro Yamada (4):
kbuild: Descend into SOC directory from CPU directory
x86: use CONFIG_SYS_COREBOOT to descend into coreboot/ directory
kbuild: use SoC-specific CONFIG to descend into SoC directory
tegra: do not descend into empty directories
Makefile | 3 --- arch/arm/cpu/arm1136/Makefile | 3 +++ arch/arm/cpu/arm1176/Makefile | 3 +++ arch/arm/cpu/arm720t/Makefile | 4 ++++ arch/arm/cpu/arm920t/Makefile | 7 +++++++ arch/arm/cpu/arm926ejs/Makefile | 15 +++++++++++++++ arch/arm/cpu/armv7/Makefile | 25 +++++++++++++++++++++++++ arch/arm/cpu/armv7/tegra114/Makefile | 21 --------------------- arch/arm/cpu/armv7/tegra124/Makefile | 9 --------- arch/arm/cpu/armv7/tegra30/Makefile | 21 --------------------- arch/arm/cpu/armv8/Makefile | 2 ++ arch/avr32/cpu/Makefile | 2 ++ arch/mips/cpu/mips32/Makefile | 2 ++ arch/nds32/cpu/n1213/Makefile | 6 +++--- arch/x86/cpu/Makefile | 2 ++ arch/x86/cpu/coreboot/Makefile | 12 ++++++------ board/davinci/da8xxevm/u-boot-spl-hawk.lds | 2 +- scripts/Makefile.spl | 3 --- 18 files changed, 75 insertions(+), 67 deletions(-) delete mode 100644 arch/arm/cpu/armv7/tegra114/Makefile delete mode 100644 arch/arm/cpu/armv7/tegra124/Makefile delete mode 100644 arch/arm/cpu/armv7/tegra30/Makefile
Signature · 1 line
1.9.1
PATCH 1/4 kbuild: Descend into SOC directory from CPU directory
Some CPUs of some architectures have SOC directories.
At present, the build system directly descends into SOC directories from the top Makefile, but it should generally descend into each directory from its parent directory.
---
Makefile | 3 --- arch/arm/cpu/arm1136/Makefile | 2 ++ arch/arm/cpu/arm1176/Makefile | 2 ++ arch/arm/cpu/arm720t/Makefile | 2 ++ arch/arm/cpu/arm920t/Makefile | 2 ++ arch/arm/cpu/arm926ejs/Makefile | 2 ++ arch/arm/cpu/armv7/Makefile | 2 ++ arch/arm/cpu/armv8/Makefile | 2 ++ arch/avr32/cpu/Makefile | 2 ++ arch/mips/cpu/mips32/Makefile | 2 ++ arch/nds32/cpu/n1213/Makefile | 2 ++ arch/x86/cpu/Makefile | 2 ++ board/davinci/da8xxevm/u-boot-spl-hawk.lds | 2 +- scripts/Makefile.spl | 3 --- 14 files changed, 23 insertions(+), 7 deletions(-)
Makefile +0 -3
@@ -610,9 +610,6 @@ HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makef libs-y += lib/ libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/ libs-y += $(CPUDIR)/ -ifdef SOC -libs-y += $(CPUDIR)/$(SOC)/ -endif libs-$(CONFIG_OF_EMBED) += dts/ libs-y += arch/$(ARCH)/lib/ libs-y += fs/
arch/arm/cpu/arm1136/Makefile +2 -0
@@ -7,3 +7,5 @@ extra-y = start.o obj-y = cpu.o + +obj-y += $(if $(SOC),$(SOC)/)
arch/arm/cpu/arm1176/Makefile +2 -0
@@ -10,3 +10,5 @@ extra-y = start.o obj-y = cpu.o + +obj-y += $(if $(SOC),$(SOC)/)
arch/arm/cpu/arm720t/Makefile +2 -0
@@ -9,3 +9,5 @@ extra-y = start.o obj-y = interrupts.o cpu.o obj-$(CONFIG_TEGRA) += tegra-common/ + +obj-y += $(if $(SOC),$(SOC)/)
arch/arm/cpu/arm920t/Makefile +2 -0
@@ -9,3 +9,5 @@ extra-y = start.o obj-y += cpu.o obj-$(CONFIG_USE_IRQ) += interrupts.o + +obj-y += $(if $(SOC),$(SOC)/)
arch/arm/cpu/arm926ejs/Makefile +2 -0
@@ -13,3 +13,5 @@ ifdef CONFIG_SPL_NO_CPU_SUPPORT_CODE extra-y := endif endif + +obj-y += $(if $(SOC),$(SOC)/)
arch/arm/cpu/armv7/Makefile +2 -0
@@ -37,3 +37,5 @@ obj-$(CONFIG_TEGRA) += tegra-common/ ifneq (,$(filter s5pc1xx exynos,$(SOC))) obj-y += s5p-common/ endif + +obj-y += $(if $(SOC),$(SOC)/)
arch/arm/cpu/armv8/Makefile +2 -0
@@ -14,3 +14,5 @@ obj-y += exceptions.o obj-y += cache.o obj-y += tlb.o obj-y += transition.o + +obj-y += $(if $(SOC),$(SOC)/)
arch/avr32/cpu/Makefile +2 -0
@@ -16,3 +16,5 @@ obj-y += cache.o obj-y += interrupts.o obj-$(CONFIG_PORTMUX_PIO) += portmux-pio.o obj-$(CONFIG_PORTMUX_GPIO) += portmux-gpio.o + +obj-y += $(if $(SOC),$(SOC)/)
arch/mips/cpu/mips32/Makefile +2 -0
@@ -8,3 +8,5 @@ extra-y = start.o obj-y = cache.o obj-y += cpu.o interrupts.o time.o + +obj-y += $(if $(SOC),$(SOC)/)
arch/nds32/cpu/n1213/Makefile +2 -0
@@ -13,3 +13,5 @@ obj- := __dummy__.o extra-y = start.o + +obj-y += $(if $(SOC),$(SOC)/)
arch/x86/cpu/Makefile +2 -0
@@ -11,3 +11,5 @@ extra-y = start.o obj-$(CONFIG_X86_RESET_VECTOR) += resetvec.o start16.o obj-y += interrupts.o cpu.o call64.o + +obj-y += $(if $(SOC),$(SOC)/)
board/davinci/da8xxevm/u-boot-spl-hawk.lds +1 -1
@@ -20,7 +20,7 @@ SECTIONS { *(.vectors) arch/arm/cpu/arm926ejs/start.o (.text*) - arch/arm/cpu/arm926ejs/davinci/built-in.o (.text*) + arch/arm/cpu/arm926ejs/built-in.o (.text*) drivers/mtd/nand/built-in.o (.text*) *(.text*)
scripts/Makefile.spl +0 -3
@@ -60,9 +60,6 @@ libs-y += arch/$(ARCH)/lib/ libs-y += $(CPUDIR)/ -ifdef SOC -libs-y += $(CPUDIR)/$(SOC)/ -endif libs-y += $(if $(BOARDDIR),board/$(BOARDDIR)/) libs-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
Signature · 1 line
1.9.1
PATCH 1/4 kbuild: Descend into SOC directory from CPU directory
Quoted 6 lines · Masahiro Yamada
Some CPUs of some architectures have SOC directories.
At present, the build system directly descends into SOC directories from the topMakefile, but it should generally descend into each directory from its parent directory.Signed-off-by Masahiro Yamada <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141124/3e84e402/attachment.pgp>
PATCH 2/4 x86: use CONFIG_SYS_COREBOOT to descend into coreboot/ directory
In reply to Masahiro YamadaThe references of CONFIG_SYS_COREBOOT in arch/x86/cpu/coreboot/Makefile are redundant because the build system descends into the directory only when CONFIG_SYS_COREBOOT is defined.
---
arch/x86/cpu/Makefile | 2 +- arch/x86/cpu/coreboot/Makefile | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-)
arch/x86/cpu/Makefile +1 -1
@@ -12,4 +12,4 @@ extra-y = start.o obj-$(CONFIG_X86_RESET_VECTOR) += resetvec.o start16.o obj-y += interrupts.o cpu.o call64.o -obj-y += $(if $(SOC),$(SOC)/) +obj-$(CONFIG_SYS_COREBOOT) += coreboot/
arch/x86/cpu/coreboot/Makefile +6 -6
@@ -13,10 +13,10 @@ # SPDX-License-Identifier: GPL-2.0+ # -obj-$(CONFIG_SYS_COREBOOT) += car.o -obj-$(CONFIG_SYS_COREBOOT) += coreboot.o -obj-$(CONFIG_SYS_COREBOOT) += tables.o -obj-$(CONFIG_SYS_COREBOOT) += ipchecksum.o -obj-$(CONFIG_SYS_COREBOOT) += sdram.o -obj-$(CONFIG_SYS_COREBOOT) += timestamp.o +obj-y += car.o +obj-y += coreboot.o +obj-y += tables.o +obj-y += ipchecksum.o +obj-y += sdram.o +obj-y += timestamp.o obj-$(CONFIG_PCI) += pci.o
Signature · 1 line
1.9.1
PATCH 2/4 x86: use CONFIG_SYS_COREBOOT to descend into coreboot/ directory
Quoted 11 lines · Masahiro Yamada
The references of
CONFIG_SYS_COREBOOTinarch/x86/cpu/coreboot/Makefileare redundant because the build system descends into the directory only whenCONFIG_SYS_COREBOOTis defined.Signed-off-by Masahiro Yamada <[email protected]>Cc Simon Glass <[email protected]>---
arch/x86/cpu/Makefile | 2 +- arch/x86/cpu/coreboot/Makefile | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-)
Yes, this was annoying me, thanks.
Regards,
Simon
PATCH 2/4 x86: use CONFIG_SYS_COREBOOT to descend into coreboot/ directory
In reply to Masahiro YamadaQuoted 7 lines · Masahiro Yamada
The references of
CONFIG_SYS_COREBOOTinarch/x86/cpu/coreboot/Makefileare redundant because the build system descends into the directory only whenCONFIG_SYS_COREBOOTis defined.Signed-off-by Masahiro Yamada <[email protected]>Cc Simon Glass <[email protected]>Acked-by Simon Glass <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141124/112f6a6b/attachment.pgp>
PATCH 3/4 kbuild: use SoC-specific CONFIG to descend into SoC directory
In reply to Masahiro YamadaUse "obj-$(CONFIG_FOO) += foo/" where it is possible.
---
arch/arm/cpu/arm1136/Makefile | 3 ++- arch/arm/cpu/arm1176/Makefile | 3 ++- arch/arm/cpu/arm720t/Makefile | 6 ++++-- arch/arm/cpu/arm920t/Makefile | 7 ++++++- arch/arm/cpu/arm926ejs/Makefile | 15 ++++++++++++++- arch/arm/cpu/armv7/Makefile | 28 +++++++++++++++++++++++++++- arch/arm/cpu/armv8/Makefile | 2 +- arch/avr32/cpu/Makefile | 2 +- arch/mips/cpu/mips32/Makefile | 2 +- arch/nds32/cpu/n1213/Makefile | 6 ++---- 10 files changed, 60 insertions(+), 14 deletions(-)
arch/arm/cpu/arm1136/Makefile +2 -1
@@ -8,4 +8,5 @@ extra-y = start.o obj-y = cpu.o -obj-y += $(if $(SOC),$(SOC)/) +obj-$(CONFIG_MX31) += mx31/ +obj-$(CONFIG_MX35) += mx35/
arch/arm/cpu/arm1176/Makefile +2 -1
@@ -11,4 +11,5 @@ extra-y = start.o obj-y = cpu.o -obj-y += $(if $(SOC),$(SOC)/) +obj-$(CONFIG_BCM2835) += bcm2835/ +obj-$(CONFIG_TNETV107X) += tnetv107x/
arch/arm/cpu/arm720t/Makefile +4 -2
@@ -9,5 +9,7 @@ extra-y = start.o obj-y = interrupts.o cpu.o obj-$(CONFIG_TEGRA) += tegra-common/ - -obj-y += $(if $(SOC),$(SOC)/) +obj-$(CONFIG_TEGRA20) += tegra20/ +obj-$(CONFIG_TEGRA30) += tegra30/ +obj-$(CONFIG_TEGRA114) += tegra114/ +obj-$(CONFIG_TEGRA124) += tegra124/
arch/arm/cpu/arm920t/Makefile +6 -1
@@ -10,4 +10,9 @@ extra-y = start.o obj-y += cpu.o obj-$(CONFIG_USE_IRQ) += interrupts.o -obj-y += $(if $(SOC),$(SOC)/) +obj-$(if $(filter a320,$(SOC)),y) += a320/ +obj-$(CONFIG_AT91FAMILY) += at91/ +obj-$(CONFIG_EP93XX) += ep93xx/ +obj-$(CONFIG_IMX) += imx/ +obj-$(CONFIG_KS8695) += ks8695/ +obj-$(CONFIG_S3C24X0) += s3c24x0/
arch/arm/cpu/arm926ejs/Makefile +14 -1
@@ -14,4 +14,17 @@ extra-y := endif endif -obj-y += $(if $(SOC),$(SOC)/) +obj-$(CONFIG_ARMADA100) += armada100/ +obj-$(CONFIG_AT91FAMILY) += at91/ +obj-$(CONFIG_ARCH_DAVINCI) += davinci/ +obj-$(CONFIG_KIRKWOOD) += kirkwood/ +obj-$(if $(filter lpc32xx,$(SOC)),y) += lpc32xx/ +obj-$(CONFIG_MB86R0x) += mb86r0x/ +obj-$(CONFIG_MX25) += mx25/ +obj-$(CONFIG_MX27) += mx27/ +obj-$(if $(filter mxs,$(SOC)),y) += mxs/ +obj-$(CONFIG_ARCH_NOMADIK) += nomadik/ +obj-$(CONFIG_ORION5X) += orion5x/ +obj-$(CONFIG_PANTHEON) += pantheon/ +obj-$(if $(filter spear,$(SOC)),y) += spear/ +obj-$(CONFIG_ARCH_VERSATILE) += versatile/
arch/arm/cpu/armv7/Makefile +27 -1
@@ -38,4 +38,30 @@ ifneq (,$(filter s5pc1xx exynos,$(SOC))) obj-y += s5p-common/ endif -obj-y += $(if $(SOC),$(SOC)/) +obj-$(if $(filter am33xx,$(SOC)),y) += am33xx/ +obj-$(if $(filter armada-xp,$(SOC)),y) += armada-xp/ +obj-$(CONFIG_AT91FAMILY) += at91/ +obj-$(if $(filter bcm281xx,$(SOC)),y) += bcm281xx/ +obj-$(if $(filter bcmcygnus,$(SOC)),y) += bcmcygnus/ +obj-$(if $(filter bcmnsp,$(SOC)),y) += bcmnsp/ +obj-$(CONFIG_ARCH_EXYNOS) += exynos/ +obj-$(CONFIG_ARCH_HIGHBANK) += highbank/ +obj-$(CONFIG_ARCH_KEYSTONE) += keystone/ +obj-$(if $(filter ls102xa,$(SOC)),y) += ls102xa/ +obj-$(if $(filter mx5,$(SOC)),y) += mx5/ +obj-$(CONFIG_MX6) += mx6/ +obj-$(CONFIG_OMAP34XX) += omap3/ +obj-$(CONFIG_OMAP44XX) += omap4/ +obj-$(CONFIG_OMAP54XX) += omap5/ +obj-$(CONFIG_RMOBILE) += rmobile/ +obj-$(CONFIG_ARCH_S5PC1XX) += s5pc1xx/ +obj-$(CONFIG_SOCFPGA) += socfpga/ +obj-$(CONFIG_ARCH_SUNXI) += sunxi/ +obj-$(CONFIG_TEGRA20) += tegra20/ +obj-$(CONFIG_TEGRA30) += tegra30/ +obj-$(CONFIG_TEGRA114) += tegra114/ +obj-$(CONFIG_TEGRA124) += tegra124/ +obj-$(CONFIG_U8500) += u8500/ +obj-$(CONFIG_ARCH_UNIPHIER) += uniphier/ +obj-$(CONFIG_VF610) += vf610/ +obj-$(CONFIG_ZYNQ) += zynq/
arch/arm/cpu/armv8/Makefile +1 -1
@@ -15,4 +15,4 @@ obj-y += cache.o obj-y += tlb.o obj-y += transition.o -obj-y += $(if $(SOC),$(SOC)/) +obj-$(CONFIG_FSL_LSCH3) += fsl-lsch3/
arch/avr32/cpu/Makefile +1 -1
@@ -17,4 +17,4 @@ obj-y += interrupts.o obj-$(CONFIG_PORTMUX_PIO) += portmux-pio.o obj-$(CONFIG_PORTMUX_GPIO) += portmux-gpio.o -obj-y += $(if $(SOC),$(SOC)/) +obj-$(if $(filter at32ap700x,$(SOC)),y) += at32ap700x/
arch/mips/cpu/mips32/Makefile +1 -1
@@ -9,4 +9,4 @@ extra-y = start.o obj-y = cache.o obj-y += cpu.o interrupts.o time.o -obj-y += $(if $(SOC),$(SOC)/) +obj-$(CONFIG_SOC_AU1X00) += au1x00/
arch/nds32/cpu/n1213/Makefile +2 -4
@@ -9,9 +9,7 @@ # SPDX-License-Identifier: GPL-2.0+ # -# necessary to create built-in.o -obj- := __dummy__.o - extra-y = start.o -obj-y += $(if $(SOC),$(SOC)/) +obj-$(if $(filter ag101,$(SOC)),y) += ag101/ +obj-$(if $(filter ag102,$(SOC)),y) += ag102/
Signature · 1 line
1.9.1
PATCH 3/4 kbuild: use SoC-specific CONFIG to descend into SoC directory
Quoted 3 lines · Masahiro Yamada
Use "obj-$(CONFIG_FOO) += foo/" where it is possible.
Signed-off-by Masahiro Yamada <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141124/c82a976c/attachment.pgp>
PATCH 4/4 tegra: do not descend into empty directories
In reply to Masahiro YamadaSome tegra makefiles only contain a dummy line to generate a built-in.o. Let's do not descend into such directories.
---
arch/arm/cpu/armv7/Makefile | 3 --- arch/arm/cpu/armv7/tegra114/Makefile | 21 --------------------- arch/arm/cpu/armv7/tegra124/Makefile | 9 --------- arch/arm/cpu/armv7/tegra30/Makefile | 21 --------------------- 4 files changed, 54 deletions(-) delete mode 100644 arch/arm/cpu/armv7/tegra114/Makefile delete mode 100644 arch/arm/cpu/armv7/tegra124/Makefile delete mode 100644 arch/arm/cpu/armv7/tegra30/Makefile
arch/arm/cpu/armv7/Makefile +0 -3
@@ -58,9 +58,6 @@ obj-$(CONFIG_ARCH_S5PC1XX) += s5pc1xx/ obj-$(CONFIG_SOCFPGA) += socfpga/ obj-$(CONFIG_ARCH_SUNXI) += sunxi/ obj-$(CONFIG_TEGRA20) += tegra20/ -obj-$(CONFIG_TEGRA30) += tegra30/ -obj-$(CONFIG_TEGRA114) += tegra114/ -obj-$(CONFIG_TEGRA124) += tegra124/ obj-$(CONFIG_U8500) += u8500/ obj-$(CONFIG_ARCH_UNIPHIER) += uniphier/ obj-$(CONFIG_VF610) += vf610/
arch/arm/cpu/armv7/tegra114/Makefile deleted +0 -21
@@ -1,21 +0,0 @@ -# -# Copyright (c) 2010-2013, NVIDIA CORPORATION. All rights reserved. -# -# (C) Copyright 2000-2003 -# Wolfgang Denk, DENX Software Engineering, wd at denx.de. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms and conditions of the GNU General Public License, -# version 2, as published by the Free Software Foundation. -# -# This program is distributed in the hope it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# - -# necessary to create built-in.o -obj- := __dummy__.o
arch/arm/cpu/armv7/tegra124/Makefile deleted +0 -9
@@ -1,9 +0,0 @@ -# -# (C) Copyright 2013-2014 -# NVIDIA Corporation <www.nvidia.com> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -# necessary to create built-in.o -obj- := __dummy__.o
arch/arm/cpu/armv7/tegra30/Makefile deleted +0 -21
@@ -1,21 +0,0 @@ -# -# Copyright (c) 2010-2012, NVIDIA CORPORATION. All rights reserved. -# -# (C) Copyright 2000-2003 -# Wolfgang Denk, DENX Software Engineering, wd at denx.de. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms and conditions of the GNU General Public License, -# version 2, as published by the Free Software Foundation. -# -# This program is distributed in the hope it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# - -# necessary to create built-in.o -obj- := __dummy__.o
Signature · 1 line
1.9.1
PATCH 4/4 tegra: do not descend into empty directories
Quoted 6 lines · Masahiro Yamada
Some tegra makefiles only contain a dummy line to generate a built-in.o. Let's do not descend into such directories.
Signed-off-by Masahiro Yamada <[email protected]>Cc Tom Warren <[email protected]>Cc Stephen Warren <[email protected]>
PATCH 4/4 tegra: do not descend into empty directories
In reply to Masahiro YamadaQuoted 7 lines · Masahiro Yamada
Some tegra makefiles only contain a dummy line to generate a built-in.o. Let's do not descend into such directories.
Signed-off-by Masahiro Yamada <[email protected]>Cc Tom Warren <[email protected]>Cc Stephen Warren <[email protected]>Acked-by Simon Glass <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141124/0529ffa3/attachment.pgp>