diff --git a/Makefile b/Makefile
index 0d27b5b..b255733 100644
--- a/Makefile
+++ b/Makefile
@@ -558,32 +558,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
@@ -611,13 +595,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) \
@@ -626,9 +603,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 3077319..6c4ab64 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 3077319..6c4ab64 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 3077319..6c4ab64 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 2dd48b6..37fb02f 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 51b777c..f7d0417 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 fa5c510..824cd2e 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 3ce180c..0818673 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 6215caf..e3fcf2b 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 d9bcb85..9a9b529 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 51b777c..3c84651 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 cc161ae..1562f17 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 597afde..b2227c5 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 bf7271d..cbd3d27 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 - < $< > $@
