# default target all:: include $(TOP)/script/Makefile.vars BUILDDIR ?= $(TOP)/gccout/$(PROJECT) LIBDIR ?= $(TOP)/libs #------------------------------------------------------------------------------- # Rules #------------------------------------------------------------------------------- ifeq ($(APP_LIB1_SUPPORT),y) include $(LIBDIR)/lib1/Makefile.inc endif vpath %.c $(TOP) vpath %.s $(TOP) vpath %.S $(TOP) OBJS := $(addprefix $(BUILDDIR)/, $(obj-y)) LIBS := $(addprefix $(BUILDDIR)/lib/,$(lib-y)) .PHONY: all build clean size cleanall all:: build ifeq ($(TOOLCHAIN),GCC) build: $(BUILDDIR)/$(BINNAME).elf \ $(BUILDDIR)/$(BINNAME).symbols \ $(BUILDDIR)/$(BINNAME).bin \ $(BUILDDIR)/$(BINNAME).size $(BUILDDIR): @mkdir -p $(BUILDDIR) $(LIBDIR): @mkdir -p $(LIBDIR) $(BUILDDIR)/%.sc: %.c @mkdir -p $(dir $@) @cp $< $@ $(BUILDDIR)/%.o: %.c $(ECHO) CC $< @mkdir.exe -p $(dir $@) $(Q)$(CC) $(CFLAGS) $(CFLAGS_CPU) $(CFLAGS_INC) $(CFLAGS_DEFS) $(DEPFLAGS) -c $< -o $@ #overwrite implicit rule %.o: %.c @mkdir -p $(dir $@) $(ECHO) CC $< $(Q)$(CC) $(CFLAGS) $(CFLAGS_CPU) $(CFLAGS_INC) $(CFLAGS_DEFS) $(DEPFLAGS) -c $< -o $@ $(BUILDDIR)/%.o: %.s @mkdir -p $(dir $@) $(ECHO) ASM $< $(Q)$(CC) $(CFLAGS_ASM) $(CFLAGS_CPU) $(CFLAGS_INC) $(CFLAGS_DEFS) $(DEPFLAGS) -c $< -o $@ $(BUILDDIR)/%.o: %.S @mkdir -p $(dir $@) $(ECHO) ASM $< $(Q)$(CC) $(CFLAGS) $(CFLAGS_CPU) $(CFLAGS_INC) $(CFLAGS_DEFS) $(DEPFLAGS) -c $< -o $@ $(BUILDDIR)/$(BINNAME).elf: $(OBJS) $(LIBS) $(ECHO) LINK $@ $(Q)$(CC) $(CFLAGS_CPU) $(CFLAGS_DEFS) -E -P - <$(LD_FILE) -o $(BUILDDIR)/$(PROJECT).lds $(Q)$(LD) -u _scanf_float -u _printf_float -T $(BUILDDIR)/$(PROJECT).lds -o $(BUILDDIR)/$(PROJECT).elf $(OBJS) $(LIBS) $(GCCLIB1_PATH)/libgcc.a $(GCCLIB2_PATH)/libc_nano.a $(GCCLIB2_PATH)/libm.a -Wl,-Map=$(BUILDDIR)/$(PROJECT).map $(BUILDDIR)/$(BINNAME).symbols: $(BUILDDIR)/$(BINNAME).elf $(Q)$(NM) --size-sort --print-size -r $< >$@ $(BUILDDIR)/$(BINNAME).bin: $(BUILDDIR)/$(BINNAME).elf $(ECHO) OBJCOPY $@ $(Q)$(OBJCOPY) -O binary $< $@ $(Q)$(OBJCOPY) -O verilog $< $(@:.bin=.hex) @$(OBJDUMP) -d -h $< > $(BUILDDIR)/$(BINNAME).txt @$(SIZE) $(OBJECTS) $< $(BUILDDIR)/$(BINNAME).size: $(BUILDDIR)/$(BINNAME).elf @$(OBJDUMP) -h $< > $@ @$(SIZE) -G $< >> $@ @$(foreach lib, $(LIBS), $(SIZE) $(lib) -t -G >> $@;) clean: @rm -rf $(BUILDDIR) cleanall: @rm -rf $(TOP)/PLAT/gccout/$(OUTTARGET) $(TOP)/PLAT/middleware/developed/debug/inc/debug_log_*p.h size: $(BUILDDIR)/$(BINNAME).elf @$(SIZE) $(OBJECTS) $(BUILDDIR)/$(BINNAME).elf endif