15accce5bSRoberto Vargas# 25accce5bSRoberto Vargas# Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. 35accce5bSRoberto Vargas# 45accce5bSRoberto Vargas# SPDX-License-Identifier: BSD-3-Clause 55accce5bSRoberto Vargas# 65accce5bSRoberto Vargas 75accce5bSRoberto VargasAS = $(CROSS_COMPILE)as 85accce5bSRoberto VargasLD = $(CROSS_COMPILE)ld 95accce5bSRoberto VargasOC = $(CROSS_COMPILE)objcopy 105accce5bSRoberto VargasCPP = $(CROSS_COMPILE)cpp 115accce5bSRoberto VargasBUILD_DIR = ../../$(BUILD_PLAT)/romlib 125accce5bSRoberto VargasLIB_DIR = ../../$(BUILD_PLAT)/lib 135accce5bSRoberto VargasWRAPPER_DIR = ../../$(BUILD_PLAT)/libwrapper 145accce5bSRoberto VargasLIBS = -lmbedtls -lfdt -lc 155accce5bSRoberto VargasINC = $(INCLUDES:-I%=-I../../%) 165accce5bSRoberto VargasPPFLAGS = $(INC) $(DEFINES) -P -D__ASSEMBLY__ -D__LINKER__ -MD -MP -MT $(BUILD_DIR)/romlib.ld 175accce5bSRoberto VargasOBJS = $(BUILD_DIR)/jmptbl.o $(BUILD_DIR)/init.o 18582133a8SSathees BalyaMAPFILE = ../../$(BUILD_PLAT)/romlib/romlib.map 195accce5bSRoberto Vargas 205accce5bSRoberto VargasV ?= 0 215accce5bSRoberto Vargasifeq ($(V),0) 225accce5bSRoberto Vargas Q := @ 235accce5bSRoberto Vargaselse 245accce5bSRoberto Vargas Q := 255accce5bSRoberto Vargasendif 265accce5bSRoberto Vargas 275accce5bSRoberto Vargasifeq ($(DEBUG),1) 285accce5bSRoberto Vargas CFLAGS := -g 29582133a8SSathees Balya LDFLAGS := -g --gc-sections -O1 -Map=$(MAPFILE) 305accce5bSRoberto Vargasendif 315accce5bSRoberto Vargas 325accce5bSRoberto Vargas 335accce5bSRoberto Vargas.PHONY: all clean distclean 345accce5bSRoberto Vargas 355accce5bSRoberto Vargasall: $(BUILD_DIR)/romlib.bin $(LIB_DIR)/libwrappers.a 365accce5bSRoberto Vargas 375accce5bSRoberto Vargas%.o: %.s 385accce5bSRoberto Vargas @echo " AS $@" 395accce5bSRoberto Vargas $(Q)$(AS) $(ASFLAGS) -o $@ $< 405accce5bSRoberto Vargas 415accce5bSRoberto Vargas$(BUILD_DIR)/%.o: %.s 425accce5bSRoberto Vargas @echo " AS $@" 435accce5bSRoberto Vargas $(Q)$(AS) $(ASFLAGS) -o $@ $< 445accce5bSRoberto Vargas 455accce5bSRoberto Vargas$(BUILD_DIR)/romlib.ld: romlib.ld.S 465accce5bSRoberto Vargas @echo " PP $@" 475accce5bSRoberto Vargas $(Q)$(CPP) $(PPFLAGS) -o $@ romlib.ld.S 485accce5bSRoberto Vargas 495accce5bSRoberto Vargas$(BUILD_DIR)/romlib.elf: $(OBJS) $(BUILD_DIR)/romlib.ld 505accce5bSRoberto Vargas @echo " LD $@" 515accce5bSRoberto Vargas $(Q)$(LD) -T $(BUILD_DIR)/romlib.ld -L$(LIB_DIR) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) 525accce5bSRoberto Vargas 535accce5bSRoberto Vargas$(BUILD_DIR)/romlib.bin: $(BUILD_DIR)/romlib.elf 545accce5bSRoberto Vargas @echo " BIN $@" 555accce5bSRoberto Vargas $(Q)$(OC) -O binary $(BUILD_DIR)/romlib.elf $@ 565accce5bSRoberto Vargas 575accce5bSRoberto Vargas$(WRAPPER_DIR)/jmpvar.s: $(BUILD_DIR)/romlib.elf 585accce5bSRoberto Vargas @echo " VAR $@" 595accce5bSRoberto Vargas $(Q)./genvar.sh -o $@ $(BUILD_DIR)/romlib.elf 605accce5bSRoberto Vargas 615accce5bSRoberto Vargas$(LIB_DIR)/libwrappers.a: jmptbl.i $(WRAPPER_DIR)/jmpvar.o 625accce5bSRoberto Vargas @echo " AR $@" 63*8b9a0de4SSathees Balya $(Q)./genwrappers.sh -b $(WRAPPER_DIR) -o $@ $(BUILD_DIR)/jmptbl.i 645accce5bSRoberto Vargas 655accce5bSRoberto Vargas$(BUILD_DIR)/jmptbl.s: jmptbl.i 665accce5bSRoberto Vargas @echo " TBL $@" 67*8b9a0de4SSathees Balya if [ -e "../../$(PLAT_DIR)/jmptbl.i" ] ; \ 68*8b9a0de4SSathees Balya then \ 69*8b9a0de4SSathees Balya $(Q)./gentbl.sh -o $@ -b $(BUILD_DIR) ../../$(PLAT_DIR)/jmptbl.i; \ 70*8b9a0de4SSathees Balya else \ 71*8b9a0de4SSathees Balya @echo "USE_ROMLIB=1 requires jump table list file: jmptbl.i in platform directory"; \ 72*8b9a0de4SSathees Balya fi 735accce5bSRoberto Vargas 745accce5bSRoberto Vargasclean: 755accce5bSRoberto Vargas @rm -f $(BUILD_DIR)/* 765accce5bSRoberto Vargas 775accce5bSRoberto Vargas-include $(BUILD_DIR)/romlib.d 78