[U-Boot] [PATCH 2/2] Makefile: Select objects by CONFIG_ rather than $(ARCH) or $(CPU)
Masahiro Yamada
yamada.m at jp.panasonic.com
Thu Nov 28 04:09:59 CET 2013
Convert like follows:
CPU mpc83xx -> CONFIG_MPC83xx
CPU mpc85xx -> CONFIG_MPC85xx
CPU mpc86xx -> CONFIG_MPC86xx
CPU mpc5xxx -> CONFIG_MPC5xxx
CPU mpc8xx -> CONFIG_8xx
CPU mpc8260 -> CONFIG_8260
CPU ppc4xx -> CONFIG_4xx
CPU x86 -> CONFIG_X86
ARCH x86 -> CONFIG_X86
ARCH powerpc -> CONFIG_PPC
Signed-off-by: Masahiro Yamada <yamada.m at jp.panasonic.com>
---
I built all target boards and checked md5sum.
I confirmed this change has no impact.
This patch may look trivial
but it has an important meaning.
Before importing build scripts from Linux Kernel,
we definitely must fix arch/powerpc/cpu/Makefile:
ifneq ($(filter mpc83xx mpc85xx mpc86xx,$(CPU)),)
obj-y += mpc8xxx/
endif
In above code,
obj-y += mpc8xxx/
is not evaluated for CPUs other than mpc83xx, mpc85xx, mpc86xx.
In such a case, Linux build scripts would not generate
arch/powerpc/cpu/built-in.o, which results in an error
at the final link stage.
Please see around line 137 of scripts/Makefile.build
of Linux Kernel (I want to import this file in my upcoming patch):
ifneq ($(strip $(obj-y) $(obj-m) $(obj-n) $(obj-) $(subdir-m) $(lib-target)),)
builtin-target := $(obj)/built-in.o
endif
Note that if $(obj-) and $(obj-y) are both emply,
built-in.o is not generated.
FYI:
CONFIG_MPC83xx is defined in config headers and arch/powerpc/cpu/mpc83xx/config.mk
CONFIG_MPC85xx is defined in config headers
CONFIG_MPC86xx is defined in config headers
CONFIG_MPC5xxx is defined in config headers and arch/powerpc/cpu/mpc5xxx/config.mk
CONFIG_8xx is defined in arch/powerpc/cpu/mpc8xx/config.mk
CONFIG_8260 is defined in arch/powerpc/cpu/mpc8260/config.mk
CONFIG_4xx is defined in config headers and arch/powerpc/cpu/ppc4xx/config.mk
CONFIG_X86 is defined in arch/x86/config.mk
CONFIG_PPC is defined in arch/powerpc/config.mk
Makefile | 12 ++++--------
arch/powerpc/cpu/Makefile | 6 +++---
arch/powerpc/cpu/mpc8xxx/Makefile | 6 ++----
examples/standalone/Makefile | 26 +++++++++++++-------------
post/Makefile | 6 +++---
spl/Makefile | 17 +++++------------
6 files changed, 30 insertions(+), 43 deletions(-)
diff --git a/Makefile b/Makefile
index 5d9d32d..4db925d 100644
--- a/Makefile
+++ b/Makefile
@@ -218,15 +218,11 @@ endif
#########################################################################
# U-Boot objects....order is important (i.e. start must be first)
-OBJS = $(CPUDIR)/start.o
-ifeq ($(CPU),ppc4xx)
-OBJS += $(CPUDIR)/resetvec.o
-endif
-ifeq ($(CPU),mpc85xx)
-OBJS += $(CPUDIR)/resetvec.o
-endif
+head-y := $(CPUDIR)/start.o
+head-$(CONFIG_4xx) += arch/powerpc/cpu/ppc4xx/resetvec.o
+head-$(CONFIG_MPC85xx) += arch/powerpc/cpu/mpc85xx/resetvec.o
-OBJS := $(addprefix $(obj),$(OBJS))
+OBJS := $(addprefix $(obj),$(head-y))
HAVE_VENDOR_COMMON_LIB = $(if $(wildcard board/$(VENDOR)/common/Makefile),y,n)
diff --git a/arch/powerpc/cpu/Makefile b/arch/powerpc/cpu/Makefile
index d630abe..88b5298 100644
--- a/arch/powerpc/cpu/Makefile
+++ b/arch/powerpc/cpu/Makefile
@@ -1,3 +1,3 @@
-ifneq ($(filter mpc83xx mpc85xx mpc86xx,$(CPU)),)
-obj-y += mpc8xxx/
-endif
+obj-$(CONFIG_MPC83xx) += mpc8xxx/
+obj-$(CONFIG_MPC85xx) += mpc8xxx/
+obj-$(CONFIG_MPC86xx) += mpc8xxx/
diff --git a/arch/powerpc/cpu/mpc8xxx/Makefile b/arch/powerpc/cpu/mpc8xxx/Makefile
index 1d083bf..cf75612 100644
--- a/arch/powerpc/cpu/mpc8xxx/Makefile
+++ b/arch/powerpc/cpu/mpc8xxx/Makefile
@@ -19,10 +19,8 @@ ifdef MINIMAL
obj-$(CONFIG_FSL_LAW) += law.o
else
-
-ifneq ($(CPU),mpc83xx)
-obj-y += cpu.o
-endif
+obj-$(CONFIG_MPC85xx) += cpu.o
+obj-$(CONFIG_MPC86xx) += cpu.o
obj-$(CONFIG_OF_LIBFDT) += fdt.o
obj-$(CONFIG_FSL_IFC) += fsl_ifc.o
diff --git a/examples/standalone/Makefile b/examples/standalone/Makefile
index f4f102b..6e7500d 100644
--- a/examples/standalone/Makefile
+++ b/examples/standalone/Makefile
@@ -7,25 +7,27 @@
include $(TOPDIR)/config.mk
-ELF-$(ARCH) :=
-ELF-$(CPU) :=
ELF-y := hello_world
ELF-$(CONFIG_SMC91111) += smc91111_eeprom
ELF-$(CONFIG_SMC911X) += smc911x_eeprom
ELF-$(CONFIG_SPI_FLASH_ATMEL) += atmel_df_pow2
-ELF-i386 += 82559_eeprom
-ELF-mpc5xxx += interrupt
-ELF-mpc8xx += test_burst timer
-ELF-mpc8260 += mem_to_mem_idma2intr
-ELF-ppc += sched
+# TODO:
+# - Fix the warning of 82559_eeprom.c and uncomment the following
+# or
+# - Delete 82559_eeprom.c and the following line
+#ELF-$(CONFIG_X86) += 82559_eeprom
+ELF-$(CONFIG_MPC5xxx) += interrupt
+ELF-$(CONFIG_8xx) += test_burst timer
+ELF-$(CONFIG_8260) += mem_to_mem_idma2intr
+ELF-$(CONFIG_PPC) += sched
#
# Some versions of make do not handle trailing white spaces properly;
# leading to build failures. The problem was found with GNU Make 3.80.
# Using 'strip' as a workaround for the problem.
#
-ELF := $(strip $(ELF-y) $(ELF-$(ARCH)) $(ELF-$(CPU)))
+ELF := $(strip $(ELF-y))
SREC := $(addsuffix .srec,$(ELF))
BIN := $(addsuffix .bin,$(ELF))
@@ -34,11 +36,9 @@ COBJS := $(ELF:=.o)
LIB = $(obj)libstubs.o
-LIBAOBJS-$(ARCH) :=
-LIBAOBJS-$(CPU) :=
-LIBAOBJS-ppc += $(ARCH)_longjmp.o $(ARCH)_setjmp.o
-LIBAOBJS-mpc8xx += test_burst_lib.o
-LIBAOBJS := $(LIBAOBJS-$(ARCH)) $(LIBAOBJS-$(CPU))
+LIBAOBJS-$(CONFIG_PPC) += ppc_longjmp.o ppc_setjmp.o
+LIBAOBJS-$(CONFIG_8xx) += test_burst_lib.o
+LIBAOBJS := $(LIBAOBJS-y)
LIBCOBJS = stubs.o
diff --git a/post/Makefile b/post/Makefile
index 20a463a..2fa6f8a 100644
--- a/post/Makefile
+++ b/post/Makefile
@@ -10,9 +10,9 @@ obj-$(CONFIG_POST_STD_LIST) += tests.o
obj-y += drivers/
obj-$(CONFIG_PPC) += lib_powerpc/
-ifneq ($(filter mpc83xx mpc8xx ppc4xx,$(CPU)),)
-obj-y += cpu/$(CPU)/
-endif
+obj-$(CONFIG_MPC83xx) += cpu/mpc83xx/
+obj-$(CONFIG_8xx) += cpu/mpc8xx/
+obj-$(CONFIG_4xx) += cpu/ppc4xx/
ifneq ($(filter lwmon lwmon5 netta pdm360ng,$(BOARD)),)
obj-y += board/$(BOARD)/
endif
diff --git a/spl/Makefile b/spl/Makefile
index 29d7818..7a0400b 100644
--- a/spl/Makefile
+++ b/spl/Makefile
@@ -42,17 +42,10 @@ else
START_PATH := $(CPUDIR)
endif
-START := $(START_PATH)/start.o
-ifeq ($(CPU),x86)
-START += $(START_PATH)/start16.o
-START += $(START_PATH)/resetvec.o
-endif
-ifeq ($(CPU),ppc4xx)
-START += $(START_PATH)/resetvec.o
-endif
-ifeq ($(CPU),mpc85xx)
-START += $(START_PATH)/resetvec.o
-endif
+head-y := $(START_PATH)/start.o
+head-$(CONFIG_X86) += $(START_PATH)/start16.o $(START_PATH)/resetvec.o
+head-$(CONFIG_4xx) += $(START_PATH)/resetvec.o
+head-$(CONFIG_MPC85xx) += $(START_PATH)/resetvec.o
LIBS-y += arch/$(ARCH)/lib/
@@ -108,7 +101,7 @@ PLATFORM_LIBGCC = $(SPLTREE)/arch/$(ARCH)/lib/libgcc.o
PLATFORM_LIBS := $(filter-out %/libgcc.o, $(filter-out -lgcc, $(PLATFORM_LIBS))) $(PLATFORM_LIBGCC)
endif
-START := $(addprefix $(SPLTREE)/,$(START))
+START := $(addprefix $(SPLTREE)/,$(head-y))
LIBS := $(addprefix $(SPLTREE)/,$(sort $(LIBS-y)))
__START := $(subst $(obj),,$(START))
--
1.8.3.2
More information about the U-Boot
mailing list