1# 2# (C) Copyright 2007 Semihalf 3# 4# SPDX-License-Identifier: GPL-2.0+ 5# 6 7ifdef FTRACE 8ccflags-y += -finstrument-functions -DFTRACE 9endif 10 11ifeq ($(ARCH),powerpc) 12LOAD_ADDR = 0x40000 13endif 14ifeq ($(ARCH),arm) 15LOAD_ADDR = 0x1000000 16endif 17 18# Resulting ELF and binary exectuables will be named demo and demo.bin 19extra-y = demo 20 21# Source files located in the examples/api directory 22SOBJ_FILES-y += crt0.o 23COBJ_FILES-y += demo.o 24COBJ_FILES-y += glue.o 25COBJ_FILES-y += libgenwrap.o 26 27# Source files which exist outside the examples/api directory 28EXT_COBJ_FILES-y += lib/crc32.o 29EXT_COBJ_FILES-y += lib/ctype.o 30EXT_COBJ_FILES-y += lib/div64.o 31EXT_COBJ_FILES-y += lib/string.o 32EXT_COBJ_FILES-y += lib/time.o 33EXT_COBJ_FILES-y += lib/vsprintf.o 34EXT_SOBJ_FILES-$(CONFIG_PPC) += arch/powerpc/lib/ppcstring.o 35 36# Create a list of object files to be compiled 37OBJS += $(addprefix $(obj)/,$(SOBJ_FILES-y)) 38OBJS += $(addprefix $(obj)/,$(COBJ_FILES-y)) 39OBJS += $(addprefix $(obj)/,$(notdir $(EXT_COBJ_FILES-y))) 40OBJS += $(addprefix $(obj)/,$(notdir $(EXT_SOBJ_FILES-y))) 41 42######################################################################### 43 44$(obj)/demo: $(OBJS) 45 $(LD) --gc-sections -Ttext $(LOAD_ADDR) -o $@ $^ $(PLATFORM_LIBS) 46 47$(obj)/demo.bin: $(obj)/demo 48 $(OBJCOPY) -O binary $< $@ 2>/dev/null 49 50# Rule to build generic library C files 51$(addprefix $(obj)/,$(notdir $(EXT_COBJ_FILES-y))): $(obj)/%.o: $(SRCTREE)/lib/%.c FORCE 52 $(call cmd,force_checksrc) 53 $(call if_changed_rule,cc_o_c) 54 55# Rule to build architecture-specific library assembly files 56$(addprefix $(obj)/,$(notdir $(EXT_SOBJ_FILES-y))): $(obj)/%.o: $(SRCTREE)/arch/$(ARCH)/lib/%.S 57 $(call if_changed_dep,as_o_S) 58