From 8a7e7d5697a8b14ec02731d003bed89b1c54dfb7 Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Mon, 18 Nov 2013 11:08:35 +0900 Subject: [PATCH] Makefile: descend into subdirectories only when CONFIG_API is defined All objects under api/ and examples/api/ directories are selected by CONFIG_API. So we can move CONFIG_API switch to the top Makefile. In order to use CONFIG_API, the definition of SUBDIR_EXAMPLES-y must be moved after "sinlude $(obj)include/autoconf.mk". Signed-off-by: Masahiro Yamada --- Makefile | 11 ++++++----- api/Makefile | 5 +++-- examples/api/Makefile | 27 ++++++++++++--------------- 3 files changed, 21 insertions(+), 22 deletions(-) diff --git a/Makefile b/Makefile index 2f456e06eb..ed2864cbeb 100644 --- a/Makefile +++ b/Makefile @@ -136,7 +136,6 @@ unexport CDPATH # The "examples" conditionally depend on U-Boot (say, when USE_PRIVATE_LIBGCC # is "yes"), so compile examples after U-Boot is compiled. SUBDIR_TOOLS = tools -SUBDIR_EXAMPLES = examples/standalone examples/api SUBDIRS = $(SUBDIR_TOOLS) .PHONY : $(SUBDIRS) $(VERSION_FILE) $(TIMESTAMP_FILE) @@ -150,8 +149,10 @@ all: sinclude $(obj)include/autoconf.mk.dep sinclude $(obj)include/autoconf.mk +SUBDIR_EXAMPLES-y := examples/standalone +SUBDIR_EXAMPLES-$(CONFIG_API) += examples/api ifndef CONFIG_SANDBOX -SUBDIRS += $(SUBDIR_EXAMPLES) +SUBDIRS += $(SUBDIR_EXAMPLES-y) endif # load ARCH, BOARD, and CPU configuration @@ -277,7 +278,7 @@ LIBS-y += drivers/usb/phy/ LIBS-y += drivers/usb/ulpi/ LIBS-y += common/ LIBS-y += lib/libfdt/ -LIBS-y += api/ +LIBS-$(CONFIG_API) += api/ LIBS-y += post/ LIBS-y += test/ @@ -362,7 +363,7 @@ endif build := -f $(TOPDIR)/scripts/Makefile.build -C -all: $(ALL-y) $(SUBDIR_EXAMPLES) +all: $(ALL-y) $(SUBDIR_EXAMPLES-y) $(obj)u-boot.dtb: checkdtc $(obj)u-boot $(MAKE) $(build) dts binary @@ -550,7 +551,7 @@ $(LIBS): depend $(SUBDIR_TOOLS) $(SUBDIRS): depend $(MAKE) -C $@ all -$(SUBDIR_EXAMPLES): $(obj)u-boot +$(SUBDIR_EXAMPLES-y): $(obj)u-boot $(LDSCRIPT): depend $(MAKE) -C $(dir $@) $(notdir $@) diff --git a/api/Makefile b/api/Makefile index fb130ffe8b..0f85a0b098 100644 --- a/api/Makefile +++ b/api/Makefile @@ -4,5 +4,6 @@ # SPDX-License-Identifier: GPL-2.0+ # -obj-$(CONFIG_API) += api.o api_display.o api_net.o api_storage.o \ - api_platform-$(ARCH).o +obj-y += api.o api_display.o api_net.o api_storage.o +obj-$(CONFIG_ARM) += api_platform-arm.o +obj-$(CONFIG_PPC) += api_platform-powerpc.c diff --git a/examples/api/Makefile b/examples/api/Makefile index 1cefbe777d..cad10a3ecb 100644 --- a/examples/api/Makefile +++ b/examples/api/Makefile @@ -14,25 +14,22 @@ endif include $(TOPDIR)/config.mk # Resulting ELF and binary exectuables will be named demo and demo.bin -OUTPUT-$(CONFIG_API) = $(obj)demo -OUTPUT = $(OUTPUT-y) +OUTPUT = $(obj)demo # Source files located in the examples/api directory -SOBJ_FILES-$(CONFIG_API) += crt0.o -COBJ_FILES-$(CONFIG_API) += demo.o -COBJ_FILES-$(CONFIG_API) += glue.o -COBJ_FILES-$(CONFIG_API) += libgenwrap.o +SOBJ_FILES-y += crt0.o +COBJ_FILES-y += demo.o +COBJ_FILES-y += glue.o +COBJ_FILES-y += libgenwrap.o # Source files which exist outside the examples/api directory -EXT_COBJ_FILES-$(CONFIG_API) += lib/crc32.o -EXT_COBJ_FILES-$(CONFIG_API) += lib/ctype.o -EXT_COBJ_FILES-$(CONFIG_API) += lib/div64.o -EXT_COBJ_FILES-$(CONFIG_API) += lib/string.o -EXT_COBJ_FILES-$(CONFIG_API) += lib/time.o -EXT_COBJ_FILES-$(CONFIG_API) += lib/vsprintf.o -ifeq ($(ARCH),powerpc) -EXT_SOBJ_FILES-$(CONFIG_API) += arch/powerpc/lib/ppcstring.o -endif +EXT_COBJ_FILES-y += lib/crc32.o +EXT_COBJ_FILES-y += lib/ctype.o +EXT_COBJ_FILES-y += lib/div64.o +EXT_COBJ_FILES-y += lib/string.o +EXT_COBJ_FILES-y += lib/time.o +EXT_COBJ_FILES-y += lib/vsprintf.o +EXT_SOBJ_FILES-$(CONFIG_PPC) += arch/powerpc/lib/ppcstring.o # Create a list of source files so their dependencies can be auto-generated SRCS += $(addprefix $(SRCTREE)/,$(EXT_COBJ_FILES-y:.o=.c)) -- 2.30.2