# SPDX-License-Identifier:     GPL-2.0+
 #
 
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(CPU).o
-
-START  = start.o
-COBJS  = cpu.o interrupts.o watchdog.o
-
-SRCS    := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS    := $(addprefix $(obj),$(COBJS))
-SOBJS   := $(addprefix $(obj),$(SOBJS))
-
-all:    $(START) $(LIB)
-
-$(LIB):        $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+extra-y        = start.o
+obj-y  = cpu.o interrupts.o watchdog.o
 
 # SPDX-License-Identifier:     GPL-2.0+
 #
 
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(CPU).o
-
-START  = start.o
-COBJS  = cpu.o interrupts.o watchdog.o cache.o
-
-SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(COBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-all:    $(START) $(LIB)
-
-$(LIB):        $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+extra-y        = start.o
+obj-y  = cpu.o interrupts.o watchdog.o cache.o
 
 # SPDX-License-Identifier:     GPL-2.0+
 #
 
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(CPU).o
-
-START  = start.o
-COBJS  = cpu.o interrupts.o watchdog.o cache.o
-
-SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(COBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-all:    $(START) $(LIB)
-
-$(LIB):        $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+extra-y        = start.o
+obj-y  = cpu.o interrupts.o watchdog.o cache.o
 
 # SPDX-License-Identifier:     GPL-2.0+
 #
 
-include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(ARCH).o
-LIBGCC = $(obj)libgcc.o
-
-SOBJS-y        +=
-GLSOBJS        += ashiftrt.o
-GLSOBJS        += ashiftlt.o
-GLSOBJS        += lshiftrt.o
-GLSOBJS        += ashldi3.o
-GLSOBJS        += ashrsi3.o
-GLSOBJS        += lshrdi3.o
-GLSOBJS        += movmem.o
-
-COBJS-y        += board.o
-COBJS-$(CONFIG_CMD_BOOTM) += bootm.o
+obj-y  += board.o
+obj-$(CONFIG_CMD_BOOTM) += bootm.o
 ifeq ($(CONFIG_SH2),y)
-COBJS-y        += time_sh2.o
+obj-y  += time_sh2.o
 else
-COBJS-y        += time.o
-endif
-ifeq ($(CONFIG_CMD_SH_ZIMAGEBOOT),y)
-COBJS-y += zimageboot.o
+obj-y  += time.o
 endif
+obj-$(CONFIG_CMD_SH_ZIMAGEBOOT) += zimageboot.o
 
-SRCS   := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
-OBJS   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
-LGOBJS := $(addprefix $(obj),$(GLSOBJS)) \
-          $(addprefix $(obj),$(GLCOBJS))
 
-# Always build libsh.o
-TARGETS        := $(LIB)
 
 # Build private libgcc only when asked for
 ifdef USE_PRIVATE_LIBGCC
-TARGETS        += $(LIBGCC)
+lib-y  += ashiftrt.o
+lib-y  += ashiftlt.o
+lib-y  += lshiftrt.o
+lib-y  += ashldi3.o
+lib-y  += ashrsi3.o
+lib-y  += lshrdi3.o
+lib-y  += movmem.o
 endif
-
-all:   $(TARGETS)
-
-$(LIB):        $(obj).depend $(OBJS)
-       $(call cmd_link_o_target, $(OBJS))
-
-$(LIBGCC): $(obj).depend $(LGOBJS)
-       $(call cmd_link_o_target, $(LGOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(BOARD).o
-
-COBJS  := ap_sh4a_4a.o
-SOBJS  := lowlevel_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) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := ap_sh4a_4a.o
+obj-y  += lowlevel_init.o
 
 # SPDX-License-Identifier:     GPL-2.0+
 #
 
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(BOARD).o
-
-COBJS  := espt.o
-SOBJS  := lowlevel_init.o
-
-SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(COBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-$(LIB):        $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := espt.o
+obj-y  += lowlevel_init.o
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(BOARD).o
-
-COBJS  := mpr2.o
-SOBJS  := lowlevel_init.o
-
-SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(COBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-$(LIB):        $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := mpr2.o
+obj-y  += lowlevel_init.o
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(BOARD).o
-
-COBJS  := ms7720se.o
-SOBJS  := lowlevel_init.o
-
-SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(COBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-$(LIB):        $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := ms7720se.o
+obj-y  += lowlevel_init.o
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(BOARD).o
-
-COBJS  := ms7722se.o
-SOBJS  := lowlevel_init.o
-
-SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(COBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-$(LIB):        $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := ms7722se.o
+obj-y  += lowlevel_init.o
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 #
-include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).o
-
-COBJS  := ms7750se.o
-SOBJS  := lowlevel_init.o
-
-SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(COBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-$(LIB):        $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := ms7750se.o
+obj-y  += lowlevel_init.o
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(BOARD).o
-
-COBJS  := migo_r.o
-SOBJS  := lowlevel_init.o
-
-SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(COBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-$(LIB):        $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := migo_r.o
+obj-y  += lowlevel_init.o
 
 # SPDX-License-Identifier:     GPL-2.0+
 #
 
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(BOARD).o
-
-COBJS  := ap325rxa.o cpld-ap325rxa.o
-SOBJS  := lowlevel_init.o
-
-SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(COBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-$(LIB):        $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := ap325rxa.o cpld-ap325rxa.o
+obj-y  += lowlevel_init.o
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 
-
-include $(TOPDIR)/config.mk
-
-LIB = $(obj)lib$(BOARD).o
-
-COBJS   := ecovec.o
-SOBJS   := lowlevel_init.o
-
-SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(COBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-$(LIB): $(OBJS) $(SOBJS)
-               $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y := ecovec.o
+obj-y += lowlevel_init.o
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(BOARD).o
-
-COBJS  := r0p7734.o
-SOBJS  := lowlevel_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) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := r0p7734.o
+obj-y  += lowlevel_init.o
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 #
-include $(TOPDIR)/config.mk
 
-LIB    = $(obj)lib$(BOARD).o
-
-COBJS  := r2dplus.o
-SOBJS  := lowlevel_init.o
-
-SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(COBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-$(LIB):        $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := r2dplus.o
+obj-y  += lowlevel_init.o
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(BOARD).o
-
-COBJS  := r7780mp.o
-SOBJS  := lowlevel_init.o
-
-SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(COBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-$(LIB):        $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := r7780mp.o
+obj-y  += lowlevel_init.o
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 
-include $(TOPDIR)/config.mk
-
-LIB    = lib$(BOARD).o
-
-OBJS   := rsk7203.o
-SOBJS  := lowlevel_init.o
-
-LIB    := $(addprefix $(obj),$(LIB))
-OBJS   := $(addprefix $(obj),$(OBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-$(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := rsk7203.o
+obj-y  += lowlevel_init.o
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 
-include $(TOPDIR)/config.mk
-
-LIB    = lib$(BOARD).o
-
-OBJS   := rsk7264.o
-SOBJS  := lowlevel_init.o
-
-LIB    := $(addprefix $(obj),$(LIB))
-OBJS   := $(addprefix $(obj),$(OBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-$(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
+obj-y  := rsk7264.o
+obj-y  += lowlevel_init.o
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 
-include $(TOPDIR)/config.mk
-
-LIB    = lib$(BOARD).o
-
-OBJS   := rsk7269.o
-SOBJS  := lowlevel_init.o
-
-LIB    := $(addprefix $(obj),$(LIB))
-OBJS   := $(addprefix $(obj),$(OBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-$(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
+obj-y  := rsk7269.o
+obj-y  += lowlevel_init.o
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(BOARD).o
-
-COBJS  := sh7752evb.o spi-boot.o
-SOBJS  := lowlevel_init.o
-
-$(LIB):        $(obj).depend $(COBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(COBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := sh7752evb.o spi-boot.o
+obj-y  += lowlevel_init.o
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(BOARD).o
-
-COBJS  := sh7757lcr.o spi-boot.o
-SOBJS  := lowlevel_init.o
-
-$(LIB):        $(obj).depend $(COBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(COBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := sh7757lcr.o spi-boot.o
+obj-y  += lowlevel_init.o
 
 # SPDX-License-Identifier:     GPL-2.0+
 #
 
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(BOARD).o
-
-COBJS  := sh7763rdp.o
-SOBJS  := lowlevel_init.o
-
-SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS   := $(addprefix $(obj),$(COBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-$(LIB):        $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := sh7763rdp.o
+obj-y  += lowlevel_init.o
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 
-include $(TOPDIR)/config.mk
-
-LIB    = $(obj)lib$(BOARD).o
-
-COBJS  := sh7785lcr.o selfcheck.o rtl8169_mac.o
-SOBJS  := lowlevel_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) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := sh7785lcr.o selfcheck.o rtl8169_mac.o
+obj-y  += lowlevel_init.o
 
 #
 # SPDX-License-Identifier:     GPL-2.0+
 
-include $(TOPDIR)/config.mk
-
-LIB    = lib$(BOARD).o
-
-OBJS   := shmin.o
-SOBJS  := lowlevel_init.o
-
-LIB    := $(addprefix $(obj),$(LIB))
-OBJS   := $(addprefix $(obj),$(OBJS))
-SOBJS  := $(addprefix $(obj),$(SOBJS))
-
-$(LIB):        $(obj).depend $(OBJS) $(SOBJS)
-       $(call cmd_link_o_target, $(OBJS) $(SOBJS))
-
-#########################################################################
-
-# defines $(obj).depend target
-include $(SRCTREE)/rules.mk
-
-sinclude $(obj).depend
-
-#########################################################################
+obj-y  := shmin.o
+obj-y  += lowlevel_init.o