1*5accce5bSRoberto Vargas# 2*5accce5bSRoberto Vargas# Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. 3*5accce5bSRoberto Vargas# 4*5accce5bSRoberto Vargas# SPDX-License-Identifier: BSD-3-Clause 5*5accce5bSRoberto Vargas# 6*5accce5bSRoberto Vargas 7*5accce5bSRoberto VargasAS = $(CROSS_COMPILE)as 8*5accce5bSRoberto VargasLD = $(CROSS_COMPILE)ld 9*5accce5bSRoberto VargasOC = $(CROSS_COMPILE)objcopy 10*5accce5bSRoberto VargasCPP = $(CROSS_COMPILE)cpp 11*5accce5bSRoberto VargasBUILD_DIR = ../../$(BUILD_PLAT)/romlib 12*5accce5bSRoberto VargasLIB_DIR = ../../$(BUILD_PLAT)/lib 13*5accce5bSRoberto VargasWRAPPER_DIR = ../../$(BUILD_PLAT)/libwrapper 14*5accce5bSRoberto VargasLIBS = -lmbedtls -lfdt -lc 15*5accce5bSRoberto VargasINC = $(INCLUDES:-I%=-I../../%) 16*5accce5bSRoberto VargasPPFLAGS = $(INC) $(DEFINES) -P -D__ASSEMBLY__ -D__LINKER__ -MD -MP -MT $(BUILD_DIR)/romlib.ld 17*5accce5bSRoberto VargasOBJS = $(BUILD_DIR)/jmptbl.o $(BUILD_DIR)/init.o 18*5accce5bSRoberto Vargas 19*5accce5bSRoberto VargasV ?= 0 20*5accce5bSRoberto Vargasifeq ($(V),0) 21*5accce5bSRoberto Vargas Q := @ 22*5accce5bSRoberto Vargaselse 23*5accce5bSRoberto Vargas Q := 24*5accce5bSRoberto Vargasendif 25*5accce5bSRoberto Vargas 26*5accce5bSRoberto Vargasifeq ($(DEBUG),1) 27*5accce5bSRoberto Vargas CFLAGS := -g 28*5accce5bSRoberto Vargas LDFLAGS := -g 29*5accce5bSRoberto Vargasendif 30*5accce5bSRoberto Vargas 31*5accce5bSRoberto Vargas 32*5accce5bSRoberto Vargas.PHONY: all clean distclean 33*5accce5bSRoberto Vargas 34*5accce5bSRoberto Vargasall: $(BUILD_DIR)/romlib.bin $(LIB_DIR)/libwrappers.a 35*5accce5bSRoberto Vargas 36*5accce5bSRoberto Vargas%.o: %.s 37*5accce5bSRoberto Vargas @echo " AS $@" 38*5accce5bSRoberto Vargas $(Q)$(AS) $(ASFLAGS) -o $@ $< 39*5accce5bSRoberto Vargas 40*5accce5bSRoberto Vargas$(BUILD_DIR)/%.o: %.s 41*5accce5bSRoberto Vargas @echo " AS $@" 42*5accce5bSRoberto Vargas $(Q)$(AS) $(ASFLAGS) -o $@ $< 43*5accce5bSRoberto Vargas 44*5accce5bSRoberto Vargas$(BUILD_DIR)/romlib.ld: romlib.ld.S 45*5accce5bSRoberto Vargas @echo " PP $@" 46*5accce5bSRoberto Vargas $(Q)$(CPP) $(PPFLAGS) -o $@ romlib.ld.S 47*5accce5bSRoberto Vargas 48*5accce5bSRoberto Vargas$(BUILD_DIR)/romlib.elf: $(OBJS) $(BUILD_DIR)/romlib.ld 49*5accce5bSRoberto Vargas @echo " LD $@" 50*5accce5bSRoberto Vargas $(Q)$(LD) -T $(BUILD_DIR)/romlib.ld -L$(LIB_DIR) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) 51*5accce5bSRoberto Vargas 52*5accce5bSRoberto Vargas$(BUILD_DIR)/romlib.bin: $(BUILD_DIR)/romlib.elf 53*5accce5bSRoberto Vargas @echo " BIN $@" 54*5accce5bSRoberto Vargas $(Q)$(OC) -O binary $(BUILD_DIR)/romlib.elf $@ 55*5accce5bSRoberto Vargas 56*5accce5bSRoberto Vargas$(WRAPPER_DIR)/jmpvar.s: $(BUILD_DIR)/romlib.elf 57*5accce5bSRoberto Vargas @echo " VAR $@" 58*5accce5bSRoberto Vargas $(Q)./genvar.sh -o $@ $(BUILD_DIR)/romlib.elf 59*5accce5bSRoberto Vargas 60*5accce5bSRoberto Vargas$(LIB_DIR)/libwrappers.a: jmptbl.i $(WRAPPER_DIR)/jmpvar.o 61*5accce5bSRoberto Vargas @echo " AR $@" 62*5accce5bSRoberto Vargas $(Q)./genwrappers.sh -b $(WRAPPER_DIR) -o $@ jmptbl.i 63*5accce5bSRoberto Vargas 64*5accce5bSRoberto Vargas$(BUILD_DIR)/jmptbl.s: jmptbl.i 65*5accce5bSRoberto Vargas @echo " TBL $@" 66*5accce5bSRoberto Vargas $(Q)./gentbl.sh -o $@ jmptbl.i 67*5accce5bSRoberto Vargas 68*5accce5bSRoberto Vargasclean: 69*5accce5bSRoberto Vargas @rm -f $(BUILD_DIR)/* 70*5accce5bSRoberto Vargas 71*5accce5bSRoberto Vargas-include $(BUILD_DIR)/romlib.d 72