Skip to content

Commit

Permalink
Makefile: descend into subdirectories only when CONFIG_API is defined
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
masahir0y authored and trini committed Nov 25, 2013
1 parent fdb8704 commit 8a7e7d5
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 22 deletions.
11 changes: 6 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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
Expand Down Expand Up @@ -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/

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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 $@)
Expand Down
5 changes: 3 additions & 2 deletions api/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
27 changes: 12 additions & 15 deletions examples/api/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down

0 comments on commit 8a7e7d5

Please sign in to comment.