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