add IPL
This commit is contained in:
169
IPL/SDK/v3h/src/Dummy_CA53_Program/makefile
Normal file
169
IPL/SDK/v3h/src/Dummy_CA53_Program/makefile
Normal file
@@ -0,0 +1,169 @@
|
||||
#
|
||||
# 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)
|
||||
Reference in New Issue
Block a user