1# 2# Copyright (c) 2015-2018, Renesas Electronics Corporation. All rights reserved. 3# 4# SPDX-License-Identifier: BSD-3-Clause 5# 6 7################################################### 8# makefile 9################################################### 10 11#output file name 12FILE_NAME_SA0 = bootparam_sa0 13FILE_NAME_SA6 = cert_header_sa6 14 15OUTPUT_FILE_SA0 = $(FILE_NAME_SA0).elf 16OUTPUT_FILE_SA6 = $(FILE_NAME_SA6).elf 17 18#object file name 19OBJ_FILE_SA0 = sa0.o 20OBJ_FILE_SA6 = sa6.o 21 22#linker script name 23MEMORY_DEF_SA0 = sa0.ld.S 24MEMORY_DEF_SA6 = sa6.ld.S 25 26################################################### 27# Convenience function for adding build definitions 28# $(eval $(call add_define,FOO)) will have: 29# -DFOO if $(FOO) is empty; -DFOO=$(FOO) otherwise 30define add_define 31DEFINES += -D$(1)$(if $(value $(1)),=$(value $(1)),) 32endef 33 34# Process RCAR_SA0_SIZE flag 35ifndef RCAR_SA0_SIZE 36RCAR_SA0_SIZE := 1 37else 38ifeq (${RCAR_SA0_SIZE},0) 39RCAR_SA0_SIZE := 0 40else 41RCAR_SA0_SIZE := 1 42endif 43endif 44$(eval $(call add_define,RCAR_SA0_SIZE)) 45 46# Process RCAR_SA6_TYPE flag 47ifndef RCAR_SA6_TYPE 48RCAR_SA6_TYPE := 0 49else 50ifeq (${RCAR_SA6_TYPE},0) 51RCAR_SA6_TYPE := 0 52else 53RCAR_SA6_TYPE := 1 54endif 55endif 56$(eval $(call add_define,RCAR_SA6_TYPE)) 57 58# Handle different VMA adjustment on D3 59ifeq (${RCAR_LSI},${RCAR_D3}) 60RCAR_VMA_ADJUST_ADDR := 0xE6320000 61else 62RCAR_VMA_ADJUST_ADDR := 0xE6312000 63endif 64$(eval $(call add_define,RCAR_VMA_ADJUST_ADDR)) 65 66 67################################################### 68 69#c compiler 70CC = $(CROSS_COMPILE)gcc 71CFLAGS += ${DEFINES} 72CFLAGS += -I../../include/lib/stdlib 73 74#Linker 75LD = $(CROSS_COMPILE)ld 76 77#objcopy 78objcopy = $(CROSS_COMPILE)objcopy 79 80#clean 81CL = rm -f 82 83################################################### 84.SUFFIXES : .s .c .o 85 86################################################### 87# command 88 89.PHONY: all 90all: $(OUTPUT_FILE_SA0) $(OUTPUT_FILE_SA6) 91################################################### 92# Linker 93################################################### 94$(OUTPUT_FILE_SA0) : $(MEMORY_DEF_SA0) $(OBJ_FILE_SA0) 95 $(LD) $(OBJ_FILE_SA0) \ 96 -T $(MEMORY_DEF_SA0) \ 97 -o $(OUTPUT_FILE_SA0) \ 98 -Map $(FILE_NAME_SA0).map \ 99 100 $(objcopy) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).srec 101 $(objcopy) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA0) $(FILE_NAME_SA0).bin 102 103$(OUTPUT_FILE_SA6) : $(MEMORY_DEF_SA6) $(OBJ_FILE_SA6) 104 $(LD) $(OBJ_FILE_SA6) \ 105 -T $(MEMORY_DEF_SA6) \ 106 -o $(OUTPUT_FILE_SA6) \ 107 -Map $(FILE_NAME_SA6).map \ 108 109 $(objcopy) -O srec --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).srec 110 $(objcopy) -O binary --adjust-vma=$(RCAR_VMA_ADJUST_ADDR) --srec-forceS3 $(OUTPUT_FILE_SA6) $(FILE_NAME_SA6).bin 111 112################################################### 113# Compile 114################################################### 115 116%.o:../%.c 117 $(CC) -c -I $< -o $@ 118 119.PHONY: clean 120clean: 121 $(CL) *.bin *.map *.srec *.elf *.o 122