From: Masahiro Yamada Date: Mon, 21 Oct 2013 02:53:41 +0000 (+0900) Subject: Makefile: convert makefiles to Kbuild style and delete grep switch X-Git-Tag: v2014.01-rc1~136 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=3bddafaab42af50f2a6ae080c425e157906d9387;p=u-boot Makefile: convert makefiles to Kbuild style and delete grep switch We have converted all makefiles needed to build $(LIBS). Until this commit we used to grep switch so that U-Boot style and Kbuild style makefiles coexist. But we do not need any more. Goint forward, use always Kbuild style Makefile when adding a new Makefile Signed-off-by: Masahiro Yamada --- diff --git a/Makefile b/Makefile index 7b05b53cdc..a2fd7f66e6 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 3077319ae2..6c4ab643ef 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 3077319ae2..6c4ab643ef 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 3077319ae2..6c4ab643ef 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 2dd48b67f1..37fb02f0aa 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 51b777c234..f7d0417a2c 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 fa5c510340..824cd2ea1f 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 3ce180cf01..0818673cbd 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 6215cafe25..e3fcf2bdff 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 d9bcb85401..9a9b5298c7 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 51b777c234..3c84651063 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 cc161ae39d..1562f1775e 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 597afdee67..b2227c58a5 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 bf7271d2be..cbd3d27849 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 - < $< > $@