u-boot-brain/examples/api/Makefile
Masahiro Yamada 6825a95b0b kbuild: use Linux Kernel build scripts
Now we are ready to switch over to real Kbuild.

This commit disables temporary scripts:
  scripts/{Makefile.build.tmp, Makefile.host.tmp}
and enables real Kbuild scripts:
  scripts/{Makefile.build,Makefile.host,Makefile.lib}.

This switch is triggered by the line in scripts/Kbuild.include
  -build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build.tmp obj
  +build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj

We need to adjust some build scripts for U-Boot.
But smaller amount of modification is preferable.

Additionally, we need to fix compiler flags which are
locally added or removed.

In Kbuild, it is not allowed to change CFLAGS locally.
Instead, ccflags-y, asflags-y, cppflags-y,
CFLAGS_$(basetarget).o, CFLAGS_REMOVE_$(basetarget).o
are prepared for that purpose.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Tested-by: Gerhard Sittig <gsi@denx.de>
2014-02-19 11:07:50 -05:00

58 lines
1.6 KiB
Makefile

#
# (C) Copyright 2007 Semihalf
#
# SPDX-License-Identifier: GPL-2.0+
#
ifdef FTRACE
ccflags-y += -finstrument-functions -DFTRACE
endif
ifeq ($(ARCH),powerpc)
LOAD_ADDR = 0x40000
endif
ifeq ($(ARCH),arm)
LOAD_ADDR = 0x1000000
endif
# Resulting ELF and binary exectuables will be named demo and demo.bin
extra-y = demo
# Source files located in the examples/api directory
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-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 object files to be compiled
OBJS += $(addprefix $(obj)/,$(SOBJ_FILES-y))
OBJS += $(addprefix $(obj)/,$(COBJ_FILES-y))
OBJS += $(addprefix $(obj)/,$(notdir $(EXT_COBJ_FILES-y)))
OBJS += $(addprefix $(obj)/,$(notdir $(EXT_SOBJ_FILES-y)))
#########################################################################
$(obj)/demo: $(OBJS)
$(LD) --gc-sections -Ttext $(LOAD_ADDR) -o $@ $^ $(PLATFORM_LIBS)
$(obj)/demo.bin: $(obj)/demo
$(OBJCOPY) -O binary $< $@ 2>/dev/null
# Rule to build generic library C files
$(addprefix $(obj)/,$(notdir $(EXT_COBJ_FILES-y))): $(obj)/%.o: $(SRCTREE)/lib/%.c FORCE
$(call cmd,force_checksrc)
$(call if_changed_rule,cc_o_c)
# Rule to build architecture-specific library assembly files
$(addprefix $(obj)/,$(notdir $(EXT_SOBJ_FILES-y))): $(obj)/%.o: $(SRCTREE)/arch/$(ARCH)/lib/%.S
$(call if_changed_dep,as_o_S)