blob: 46c8877dfee51a191b8bb79332b0bfb84319faab [file] [log] [blame]
# ------------------------------------------------------------
# Makefile for BL301 SCP User Task
# ------------------------------------------------------------
include $(buildsrc)/config.mk
include $(buildtree)/include/autoconf.mk
include $(buildtree)/.config
# Select ARMv7-m bare-metal toolchain
#CROSS_COMPILE=arm-none-eabi-
ASM=$(CROSS_COMPILE_T32)as
CC=$(CROSS_COMPILE_T32)gcc
CPP=$(CROSS_COMPILE_T32)cpp
LD=$(CROSS_COMPILE_T32)ld
OBJCOPY=$(CROSS_COMPILE_T32)objcopy
OBJDUMP=$(CROSS_COMPILE_T32)objdump
ARM_ARCH=armv7-m
ARM_CPU=cortex-m3
CFLAGS_WARN=-Wall -Werror -Wundef -Wstrict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common -fomit-frame-pointer \
-Werror-implicit-function-declaration -Wno-format-security \
-fno-delete-null-pointer-checks -Wdeclaration-after-statement \
-Wno-pointer-sign -fno-strict-overflow -fconserve-stack
CFLAGS_DEBUG=-g
# CPU specific compilation flags
CFLAGS_CPU=-march=$(ARM_ARCH) -mcpu=$(ARM_CPU) -mthumb -Os -mno-sched-prolog
# FPU compilation flags
CFLAGS_FPU-$(CONFIG_FPU)=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
CFLAGS_INCLUDE=-I$(buildsrc)/build/include/ \
-I$(buildsrc)/include/ \
-I$(buildsrc)/arch/arm/include/ \
-I. \
-I./include \
-I./build
VPATH_LIST= $(buildsrc)/board/$(BOARDDIR)
#VPATH_LIST= $(buildsrc)/$(BOARDDIR)
VPATH_LIST:=$(VPATH_LIST:%=%/firmware/scp_task/)
CFLAGS=$(CFLAGS_CPU) $(CFLAGS_WARN) $(VPATH_LIST:%=-I%) $(CFLAGS_INCLUDE) $(CFLAGS_FPU-y)
ASFLAGS= -gdwarf2 -mcpu=$(ARM_CPU)
DUMP_FLAGS = -D -x
LDFLAGS=-Bstatic
#LDFLAGS+=$(LD_LIB_PATH_ARM:%=-L%) -lm -lc -lgcc
ifeq ($(BL33_DEBUG), 1)
CFLAGS += -DBL33_DEBUG_PRINT
endif
# Output directory for build objects
obj=$(buildtree)/scp_task
vpath %.lds ./
vpath %.S ./
vpath %.c $(VPATH_LIST)
vpath %.c ./
#OBJS = user_task_entry.o
OBJS = task_entry.o
OBJS += user_task.o
OBJS += misc.o
OBJS += uart.o
OBJS += suspend.o
OBJS += lib/string.o
OBJS += lib/delay.o
OBJS := $(OBJS:%=$(obj)/%)
.NOTPARALLEL : all
all : clean $(obj)/bl301.out $(obj)/bl301.bin
$(obj)/bl301.bin: $(obj)/bl301.out
@echo " OBJCOPY $@"
@$(OBJCOPY) --gap-fill=0xff -O binary $< $@
$(obj)/bl301.out: Makefile $(OBJS)
@echo " LD $@"
@echo " OBJDUMP $(obj)/bl301.dis"
@$(LD) $(OBJS) $(LDFLAGS) -T $(obj)/user_task.lds -Map $(obj)/bl301.map -o $@
@$(OBJDUMP) $(DUMP_FLAGS) $@ > $(obj)/bl301.dis
$(OBJS): $(obj)/user_task.lds
$(obj)/%.o : %.c
@echo " CC $(subst $(obj)/,,$@)"
@mkdir -p $(@D)
@$(CC) $(CFLAGS) -MD -c $< -o $@
$(obj)/misc.s: misc.S
@mkdir -p $(@D)
@echo " CPP $(subst $(obj)/,,$@)"
@$(CPP) -D__ASSEMBLY__ -E $< -o $@
$(obj)/task_entry.s: task_entry.S
@mkdir -p $(@D)
@echo " CPP $(subst $(obj)/,,$@)"
@$(CPP) -D__ASSEMBLY__ -E $< -o $@
$(obj)/misc.o: $(obj)/misc.s
@echo " CC $(subst $(obj)/,,$@)"
@mkdir -p $(@D)
@$(CC) $(CFLAGS) -MD -c $< -o $@
$(obj)/task_entry.o: $(obj)/task_entry.s
@echo " CC $(subst $(obj)/,,$@)"
@mkdir -p $(@D)
@$(CC) $(CFLAGS) -MD -c $< -o $@
$(obj)/user_task.lds : user_task.lds
@mkdir -p $(@D)
@echo " CPP $(subst $(obj)/,,$@)"
@$(CPP) $(CFLAGS) -P $< $@
clean:
@-rm -rf $(obj)/
@-rm -rf $(OBJS)
-include $(wildcard $(obj)/*.d)