diff --git a/Makefile b/Makefile index 7b05b53cdcd6e587959b219528dc2875f45bcaff..a2fd7f66e673e9c8e747f42527b6a2e8d6a329e9 100644 --- a/Makefile +++ b/Makefile @@ -559,32 +559,16 @@ ifeq ($(CONFIG_KALLSYMS),y) $(GEN_UBOOT) $(obj)common/system_map.o endif -# Tentative step for Kbuild-style makefiles coexist with conventional U-Boot style makefiles -# U-Boot conventional sub makefiles always include some other makefiles. -# So, the build system searches a line beginning with "include" before entering into the sub makefile -# in order to distinguish which style it is. -# If the Makefile include a "include" line, we assume it is an U-Boot style makefile. -# Otherwise, it is treated as a Kbuild-style makefile. -select_makefile = \ - +if grep -q "^include" $1/Makefile; then \ - $(MAKE) -C $1; \ - else \ - $(MAKE) -C $1 -f $(TOPDIR)/scripts/Makefile.build; \ - mv $(dir $@)built-in.o $@; \ - fi - -# We do not need to build $(OBJS) explicitly. -# It is built while we are at $(CPUDIR)/lib$(CPU).o build. -$(OBJS): depend - if grep -q "^include" $(CPUDIR)/Makefile; then \ - $(MAKE) -C $(CPUDIR) $(if $(REMOTE_BUILD),$@,$(notdir $@)); \ - fi +$(OBJS): + @: $(LIBS): depend $(SUBDIR_TOOLS) - +$(call select_makefile, $(dir $(subst $(obj),,$@))) + $(MAKE) $(build) $(dir $(subst $(obj),,$@)) + mv $(dir $@)built-in.o $@ $(LIBBOARD): depend $(LIBS) - +$(call select_makefile, $(dir $(subst $(obj),,$@))) + $(MAKE) $(build) $(dir $(subst $(obj),,$@)) + mv $(dir $@)built-in.o $@ $(SUBDIRS): depend $(MAKE) -C $@ all @@ -612,13 +596,6 @@ $(obj)tpl/u-boot-tpl.bin: $(SUBDIR_TOOLS) depend updater: $(MAKE) -C tools/updater all -select_makefile2 = \ - if grep -q "^include" $1/Makefile; then \ - $(MAKE) -C $1 _depend; \ - else \ - $(MAKE) -C $1 -f $(TOPDIR)/scripts/Makefile.build _depend; \ - fi - # Explicitly make _depend in subdirs containing multiple targets to prevent # parallel sub-makes creating .depend files simultaneously. depend dep: $(TIMESTAMP_FILE) $(VERSION_FILE) \ @@ -627,9 +604,6 @@ depend dep: $(TIMESTAMP_FILE) $(VERSION_FILE) \ $(obj)include/autoconf.mk \ $(obj)include/generated/generic-asm-offsets.h \ $(obj)include/generated/asm-offsets.h - +for dir in $(SUBDIRS) $(CPUDIR) $(LDSCRIPT_MAKEFILE_DIR) ; do \ - $(call select_makefile2, $$dir); \ - done TAG_SUBDIRS = $(SUBDIRS) TAG_SUBDIRS += $(dir $(__LIBS)) diff --git a/board/avionic-design/medcom-wide/Makefile b/board/avionic-design/medcom-wide/Makefile index 3077319ae2290891b710e7a4a393ce996288245a..6c4ab643efc7a23e6d2e0c835b82bbdce27e5eaa 100644 --- a/board/avionic-design/medcom-wide/Makefile +++ b/board/avionic-design/medcom-wide/Makefile @@ -7,28 +7,8 @@ # SPDX-License-Identifier: GPL-2.0+ # -include $(TOPDIR)/config.mk - $(shell mkdir -p $(obj)../common $(obj)../../nvidia/common) -LIB = $(obj)lib$(BOARD).o - -COBJS-y := ../common/tamonten.o +obj-y := ../common/tamonten.o include ../../nvidia/common/common.mk - -COBJS := $(COBJS-y) -SRCS := $(COBJS:.o=.c) -OBJS := $(addprefix $(obj),$(COBJS)) - -$(LIB): $(obj).depend $(OBJS) - $(call cmd_link_o_target, $(OBJS)) - -######################################################################### - -# defines $(obj).depend target -include $(SRCTREE)/rules.mk - -sinclude $(obj).depend - -######################################################################### diff --git a/board/avionic-design/plutux/Makefile b/board/avionic-design/plutux/Makefile index 3077319ae2290891b710e7a4a393ce996288245a..6c4ab643efc7a23e6d2e0c835b82bbdce27e5eaa 100644 --- a/board/avionic-design/plutux/Makefile +++ b/board/avionic-design/plutux/Makefile @@ -7,28 +7,8 @@ # SPDX-License-Identifier: GPL-2.0+ # -include $(TOPDIR)/config.mk - $(shell mkdir -p $(obj)../common $(obj)../../nvidia/common) -LIB = $(obj)lib$(BOARD).o - -COBJS-y := ../common/tamonten.o +obj-y := ../common/tamonten.o include ../../nvidia/common/common.mk - -COBJS := $(COBJS-y) -SRCS := $(COBJS:.o=.c) -OBJS := $(addprefix $(obj),$(COBJS)) - -$(LIB): $(obj).depend $(OBJS) - $(call cmd_link_o_target, $(OBJS)) - -######################################################################### - -# defines $(obj).depend target -include $(SRCTREE)/rules.mk - -sinclude $(obj).depend - -######################################################################### diff --git a/board/avionic-design/tec/Makefile b/board/avionic-design/tec/Makefile index 3077319ae2290891b710e7a4a393ce996288245a..6c4ab643efc7a23e6d2e0c835b82bbdce27e5eaa 100644 --- a/board/avionic-design/tec/Makefile +++ b/board/avionic-design/tec/Makefile @@ -7,28 +7,8 @@ # SPDX-License-Identifier: GPL-2.0+ # -include $(TOPDIR)/config.mk - $(shell mkdir -p $(obj)../common $(obj)../../nvidia/common) -LIB = $(obj)lib$(BOARD).o - -COBJS-y := ../common/tamonten.o +obj-y := ../common/tamonten.o include ../../nvidia/common/common.mk - -COBJS := $(COBJS-y) -SRCS := $(COBJS:.o=.c) -OBJS := $(addprefix $(obj),$(COBJS)) - -$(LIB): $(obj).depend $(OBJS) - $(call cmd_link_o_target, $(OBJS)) - -######################################################################### - -# defines $(obj).depend target -include $(SRCTREE)/rules.mk - -sinclude $(obj).depend - -######################################################################### diff --git a/board/avnet/fx12mm/Makefile b/board/avnet/fx12mm/Makefile index 2dd48b67f109a8824588b3ac117a81a699743cd0..37fb02f0aafa11a7d36b1645d82a53962eaa8b72 100644 --- a/board/avnet/fx12mm/Makefile +++ b/board/avnet/fx12mm/Makefile @@ -6,6 +6,6 @@ # SPDX-License-Identifier: GPL-2.0+ # -COBJS += $(BOARD).o +obj-y += fx12mm.o include $(SRCTREE)/board/xilinx/ppc405-generic/Makefile diff --git a/board/avnet/v5fx30teval/Makefile b/board/avnet/v5fx30teval/Makefile index 51b777c234b636282e99bcf88098e08010997b27..f7d0417a2c9f6dc323baf28f8bad6e906a7565b7 100644 --- a/board/avnet/v5fx30teval/Makefile +++ b/board/avnet/v5fx30teval/Makefile @@ -6,6 +6,6 @@ # SPDX-License-Identifier: GPL-2.0+ # -COBJS += $(BOARD).o +obj-y += v5fx30teval.o include $(SRCTREE)/board/xilinx/ppc440-generic/Makefile diff --git a/board/compal/paz00/Makefile b/board/compal/paz00/Makefile index fa5c510340284b4dd341e2a5d53e9c83a7e31358..824cd2ea1f7cad3db94805d0e28229b7d45bda11 100644 --- a/board/compal/paz00/Makefile +++ b/board/compal/paz00/Makefile @@ -14,28 +14,8 @@ # more details. # -include $(TOPDIR)/config.mk - $(shell mkdir -p $(obj)../../nvidia/common) -LIB = $(obj)lib$(BOARD).o - -COBJS-y := $(BOARD).o +obj-y := paz00.o include ../../nvidia/common/common.mk - -COBJS := $(COBJS-y) -SRCS := $(COBJS:.o=.c) -OBJS := $(addprefix $(obj),$(COBJS)) - -$(LIB): $(obj).depend $(OBJS) - $(call cmd_link_o_target, $(OBJS)) - -######################################################################### - -# defines $(obj).depend target -include $(SRCTREE)/rules.mk - -sinclude $(obj).depend - -######################################################################### diff --git a/board/compulab/trimslice/Makefile b/board/compulab/trimslice/Makefile index 3ce180cf015af95f26119e31b8e1d0b026ecc69b..0818673cbdc6ba37cd84796d30650105c161dbe8 100644 --- a/board/compulab/trimslice/Makefile +++ b/board/compulab/trimslice/Makefile @@ -5,28 +5,8 @@ # SPDX-License-Identifier: GPL-2.0+ # -include $(TOPDIR)/config.mk - $(shell mkdir -p $(obj)../../nvidia/common) -LIB = $(obj)lib$(BOARD).o - -COBJS-y := $(BOARD).o +obj-y := trimslice.o include ../../nvidia/common/common.mk - -COBJS := $(COBJS-y) -SRCS := $(COBJS:.o=.c) -OBJS := $(addprefix $(obj),$(COBJS)) - -$(LIB): $(obj).depend $(OBJS) - $(call cmd_link_o_target, $(OBJS)) - -######################################################################### - -# defines $(obj).depend target -include $(SRCTREE)/rules.mk - -sinclude $(obj).depend - -######################################################################### diff --git a/board/nvidia/common/Makefile b/board/nvidia/common/Makefile index 6215cafe25335a01086653c4e850e16275449e62..e3fcf2bdffcb4e052bd809b9d967159f11e46c4c 100644 --- a/board/nvidia/common/Makefile +++ b/board/nvidia/common/Makefile @@ -1,30 +1,4 @@ # Copyright (c) 2011 The Chromium OS Authors. # SPDX-License-Identifier: GPL-2.0+ -include $(TOPDIR)/config.mk - -ifneq ($(OBJTREE),$(SRCTREE)) -$(shell mkdir -p $(obj)board/$(VENDOR)/common) -endif - -LIB = $(obj)lib$(VENDOR).o - include common.mk - -COBJS := $(COBJS-y) -SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) -OBJS := $(addprefix $(obj),$(COBJS)) -SOBJS := $(addprefix $(obj),$(SOBJS)) - -all: $(LIB) - -$(LIB): $(obj).depend $(OBJS) $(SOBJS) - $(call cmd_link_o_target, $(OBJS) $(SOBJS)) - -######################################################################### -# This is for $(obj).depend target -include $(SRCTREE)/rules.mk - -sinclude $(obj).depend - -######################################################################### diff --git a/board/nvidia/common/common.mk b/board/nvidia/common/common.mk index d9bcb854011afe2196544eb9116e2eb466645408..9a9b5298c74979c6d65666a7c5596e90d8eed1af 100644 --- a/board/nvidia/common/common.mk +++ b/board/nvidia/common/common.mk @@ -1,3 +1,3 @@ # common options for all tegra boards -COBJS-y += ../../nvidia/common/board.o -COBJS-$(CONFIG_TEGRA_CLOCK_SCALING) += ../../nvidia/common/emc.o +obj-y += ../../nvidia/common/board.o +obj-$(CONFIG_TEGRA_CLOCK_SCALING) += ../../nvidia/common/emc.o diff --git a/board/xilinx/ml507/Makefile b/board/xilinx/ml507/Makefile index 51b777c234b636282e99bcf88098e08010997b27..3c84651063eb4f0b11c73309617cec744ad3e29e 100644 --- a/board/xilinx/ml507/Makefile +++ b/board/xilinx/ml507/Makefile @@ -6,6 +6,6 @@ # SPDX-License-Identifier: GPL-2.0+ # -COBJS += $(BOARD).o +obj-y += ml507.o include $(SRCTREE)/board/xilinx/ppc440-generic/Makefile diff --git a/board/xilinx/ppc405-generic/Makefile b/board/xilinx/ppc405-generic/Makefile index cc161ae39de8bf2457b192d169a3f3554429bb35..1562f1775e608b163f521860e62ae6e8f1748e8f 100644 --- a/board/xilinx/ppc405-generic/Makefile +++ b/board/xilinx/ppc405-generic/Makefile @@ -9,27 +9,8 @@ # SPDX-License-Identifier: GPL-2.0+ # -include $(TOPDIR)/config.mk ifneq ($(OBJTREE),$(SRCTREE)) $(shell mkdir -p $(obj)../../xilinx/ppc405-generic) endif -LIB = $(obj)lib$(BOARD).o - -COBJS += ../../xilinx/ppc405-generic/xilinx_ppc405_generic.o - -SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) -OBJS := $(addprefix $(obj),$(COBJS)) -SOBJS := $(addprefix $(obj),$(SOBJS)) - -$(LIB): $(obj).depend $(OBJS) $(SOBJS) - $(call cmd_link_o_target, $(OBJS)) - -######################################################################### - -# defines $(obj).depend target -include $(SRCTREE)/rules.mk - -sinclude $(obj).depend - -######################################################################### +obj-y += ../../xilinx/ppc405-generic/xilinx_ppc405_generic.o diff --git a/board/xilinx/ppc440-generic/Makefile b/board/xilinx/ppc440-generic/Makefile index 597afdee67fcde77c1edc0286bee53cc8d1f037c..b2227c58a5230d723aa454e476aa0405764d0803 100644 --- a/board/xilinx/ppc440-generic/Makefile +++ b/board/xilinx/ppc440-generic/Makefile @@ -9,28 +9,9 @@ # SPDX-License-Identifier: GPL-2.0+ # -include $(TOPDIR)/config.mk ifneq ($(OBJTREE),$(SRCTREE)) $(shell mkdir -p $(obj)../../xilinx/ppc440-generic) endif -LIB = $(obj)lib$(BOARD).o - -COBJS += ../../xilinx/ppc440-generic/xilinx_ppc440_generic.o -SOBJS += ../../xilinx/ppc440-generic/init.o - -SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) -OBJS := $(addprefix $(obj),$(COBJS)) -SOBJS := $(addprefix $(obj),$(SOBJS)) - -$(LIB): $(obj).depend $(OBJS) $(SOBJS) - $(call cmd_link_o_target, $(OBJS)) - -######################################################################### - -# defines $(obj).depend target -include $(SRCTREE)/rules.mk - -sinclude $(obj).depend - -######################################################################### +obj-y += ../../xilinx/ppc440-generic/xilinx_ppc440_generic.o +extra-y += ../../xilinx/ppc440-generic/init.o diff --git a/spl/Makefile b/spl/Makefile index bf7271d2be5ac405b03e007fc53b64f883bdfe50..cbd3d278491cdf1b6284fbfb414e5c187fb4c89b 100644 --- a/spl/Makefile +++ b/spl/Makefile @@ -190,29 +190,12 @@ GEN_UBOOT = \ $(obj)$(SPL_BIN): depend $(START) $(LIBS) $(obj)u-boot-spl.lds $(GEN_UBOOT) -# Tentative step for Kbuild-style makefiles coexist with conventional U-Boot style makefiles -# U-Boot conventional sub makefiles always include some other makefiles. -# So, the build system searches a line beginning with "include" before entering into the sub makefile -# in order to distinguish which style it is. -# If the Makefile include a "include" line, we assume it is an U-Boot style makefile. -# Otherwise, it is treated as a Kbuild-style makefile. -select_makefile = \ - if grep -q "^include" $1/Makefile; then \ - $(MAKE) -C $1; \ - else \ - $(MAKE) -C $1 -f $(TOPDIR)/scripts/Makefile.build; \ - mv $(dir $@)built-in.o $@; \ - fi - -# We do not need to build $(START) explicitly. -# It is built while we are at $(CPUDIR)/lib$(CPU).o build. -$(START): depend - if grep -q "^include" $(SRCTREE)$(dir $(subst $(SPLTREE),,$@))Makefile; then \ - $(MAKE) -C $(SRCTREE)/$(START_PATH) $@; \ - fi +$(START): + @: $(LIBS): depend - +$(call select_makefile, $(SRCTREE)$(dir $(subst $(SPLTREE),,$@))) + $(MAKE) $(build) $(SRCTREE)$(dir $(subst $(SPLTREE),,$@)) + mv $(dir $@)built-in.o $@ $(obj)u-boot-spl.lds: $(LDSCRIPT) depend $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj). -ansi -D__ASSEMBLY__ -P - < $< > $@