# # Copyright (c) 2018 Renesas Electronics Corporation. All rights reserved. # #/* Select BOOT("CR7"or"ICUMXA")************************* ifeq ("$(BOOT)", "") BOOT = ICUMXA endif #/* Select AArch("64"or"32" )*************************************************** ifeq ("$(AArch)", "") AArch = 64 endif #CPU ifeq ("$(AArch)", "64") CPU = -march=armv8-a endif ifeq ("$(AArch)", "32") CPU = -mcpu=cortex-r7 endif ifeq ("$(AArch)", "32") THUMB = -marm AS_NEON = CC_NEON = ALIGN = -mno-unaligned-access endif ifeq ("$(AArch)", "64") THUMB = AS_NEON = CC_NEON = -mgeneral-regs-only ALIGN = -mstrict-align endif ifeq ("$(AArch)", "32") AArch32_64 = AArch32 BOOTDIR = AArch32_boot OUTPUT_DIR = AArch32_output OBJECT_DIR = AArch32_obj CROSS_COMPILE ?= arm-eabi- endif ifeq ("$(AArch)", "64") AArch32_64 = AArch64 BOOTDIR = AArch64_boot OUTPUT_DIR = AArch64_output OBJECT_DIR = AArch64_obj CROSS_COMPILE ?= aarch64-elf- endif ifeq ("$(BOOT)", "CR7") # BOOT_DEF = Writer MEMORY_DEF = memory_cr7.def FILE_NAME = $(OUTPUT_DIR)/AArch$(AArch)_Dummy_CA53_Program$(FILENAME_ADD) endif ifeq ("$(BOOT)", "ICUMXA") # BOOT_DEF = Writer MEMORY_DEF = memory_icumxa.def FILE_NAME = $(OUTPUT_DIR)/AArch$(AArch)_Dummy_CA53_Program$(FILENAME_ADD) endif LIBS = -L$(subst libc.a, ,$(shell $(CC) -print-file-name=libc.a 2> /dev/null)) -lc LIBS += -L$(subst libgcc.a, ,$(shell $(CC) -print-libgcc-file-name 2> /dev/null)) -lgcc INCLUDE_DIR = include OUTPUT_FILE = $(FILE_NAME).axf #Object file OBJ_FILE_BOOT = \ $(OBJECT_DIR)/boot_mon.o \ $(OBJECT_DIR)/stack.o SRC_FILE := \ main.c \ init_scif.c \ scifdrv0.c \ scifdrv0_v3h.c \ scifdrv2.c \ devdrv.c \ common.c ifeq ("$(BOOT)", "WRITER_WITH_CERT") SRC_FILE += cert_param.c endif OBJ_FILE := $(addprefix $(OBJECT_DIR)/,$(patsubst %.c,%.o,$(SRC_FILE))) #Dependency File DEPEND_FILE = $(patsubst %.lib, ,$(OBJ_FILE:%.o=%.d)) ################################################### #C compiler CC = $(CROSS_COMPILE)gcc #Assembler AS = $(CROSS_COMPILE)as #Linker LD = $(CROSS_COMPILE)ld #Liblary AR = $(CROSS_COMPILE)ar #Object dump OBJDMP = $(CROSS_COMPILE)objdump #Object copy OBJCOPY = $(CROSS_COMPILE)objcopy #clean CL = rm -rf ################################################### # Suffixes .SUFFIXES : .s .c .o ################################################### # Command .PHONY: all all: $(OBJECT_DIR) $(OUTPUT_DIR) $(OBJ_FILE_BOOT) $(OBJ_FILE) $(OUTPUT_FILE) #------------------------------------------ # Make Directory #------------------------------------------ $(OBJECT_DIR): -mkdir "$(OBJECT_DIR)" $(OUTPUT_DIR): -mkdir "$(OUTPUT_DIR)" #------------------------------------------ # Compile #------------------------------------------ $(OBJECT_DIR)/%.o:$(BOOTDIR)/%.s $(AS) -g $(CPU) $(AS_NEON) --MD $(patsubst %.o,%.d,$@) -I $(BOOTDIR) -I $(INCLUDE_DIR) $< -o $@ --defsym $(AArch32_64)=0 $(OBJECT_DIR)/%.o:%.c @if [ ! -e `dirname $@` ]; then mkdir -p `dirname $@`; fi $(CC) -g -Os $(ALIGN) $(CPU) $(CC_NEON) $(THUMB) -MMD -MP -c -I $(BOOTDIR) -I $(INCLUDE_DIR) $< -o $@ -D$(AArch32_64)=0 $(CFLAGS) #------------------------------------------ # Linker #------------------------------------------ $(OUTPUT_FILE): $(OBJ_FILE_BOOT) $(OBJ_FILE) $(MEMORY_DEF) $(LD) $(OBJ_FILE_BOOT) $(OBJ_FILE) \ -T '$(MEMORY_DEF)' \ -o '$(OUTPUT_FILE)' \ -Map '$(FILE_NAME).map' \ -static \ $(LIBS) # Make SREC file $(OBJCOPY) -O srec --srec-forceS3 "$(OUTPUT_FILE)" "$(FILE_NAME).srec" # Make Binary file $(OBJCOPY) -O binary "$(OUTPUT_FILE)" "$(FILE_NAME).bin" # Dis assemble $(OBJDMP) -d -S "$(OUTPUT_FILE)" > "$(FILE_NAME)_disasm.txt" # Time Stamp @echo ========== %date% %time% ========== @echo ========== !!! Compile Complete !!! ========== .PHONY: clean clean: $(CL) $(OBJECT_DIR)/* $(OUTPUT_DIR)/* -include $(DEPEND_FILE)