xref: /rk3399_ARM-atf/lib/romlib/Makefile (revision bbb24f611c92ada192ed7a6825da8b477fd6bcfb)
15accce5bSRoberto Vargas#
2ae2e01b8SJohn Tsichritzis# Copyright (c) 2018-2019, 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
272b929c98SLouis MayencourtLDFLAGS := --gc-sections -O1
285accce5bSRoberto Vargasifeq ($(DEBUG),1)
292b929c98SLouis Mayencourt   LDFLAGS += -Map=$(MAPFILE)
305accce5bSRoberto Vargasendif
315accce5bSRoberto Vargas
32*bbb24f61SJohn Tsichritzisifeq (${ARM_ARCH_MINOR},0)
33*bbb24f61SJohn Tsichritzis	ASFLAGS = -march=armv8-a
34*bbb24f61SJohn Tsichritziselse
35*bbb24f61SJohn Tsichritzis	ASFLAGS = -march=armv8.${ARM_ARCH_MINOR}-a
36*bbb24f61SJohn Tsichritzisendif
375accce5bSRoberto Vargas
385accce5bSRoberto Vargas.PHONY: all clean distclean
395accce5bSRoberto Vargas
405accce5bSRoberto Vargasall: $(BUILD_DIR)/romlib.bin $(LIB_DIR)/libwrappers.a
415accce5bSRoberto Vargas
425accce5bSRoberto Vargas%.o: %.s
435accce5bSRoberto Vargas	@echo "  AS      $@"
445accce5bSRoberto Vargas	$(Q)$(AS) $(ASFLAGS) -o $@ $<
455accce5bSRoberto Vargas
465accce5bSRoberto Vargas$(BUILD_DIR)/%.o: %.s
475accce5bSRoberto Vargas	@echo "  AS      $@"
485accce5bSRoberto Vargas	$(Q)$(AS) $(ASFLAGS) -o $@ $<
495accce5bSRoberto Vargas
505accce5bSRoberto Vargas$(BUILD_DIR)/romlib.ld: romlib.ld.S
515accce5bSRoberto Vargas	@echo "  PP      $@"
525accce5bSRoberto Vargas	$(Q)$(CPP) $(PPFLAGS) -o $@ romlib.ld.S
535accce5bSRoberto Vargas
545accce5bSRoberto Vargas$(BUILD_DIR)/romlib.elf: $(OBJS) $(BUILD_DIR)/romlib.ld
555accce5bSRoberto Vargas	@echo "  LD      $@"
565accce5bSRoberto Vargas	$(Q)$(LD) -T $(BUILD_DIR)/romlib.ld -L$(LIB_DIR) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
575accce5bSRoberto Vargas
585accce5bSRoberto Vargas$(BUILD_DIR)/romlib.bin: $(BUILD_DIR)/romlib.elf
595accce5bSRoberto Vargas	@echo "  BIN     $@"
605accce5bSRoberto Vargas	$(Q)$(OC) -O binary $(BUILD_DIR)/romlib.elf $@
615accce5bSRoberto Vargas
625accce5bSRoberto Vargas$(WRAPPER_DIR)/jmpvar.s: $(BUILD_DIR)/romlib.elf
635accce5bSRoberto Vargas	@echo "  VAR     $@"
645accce5bSRoberto Vargas	$(Q)./genvar.sh -o $@ $(BUILD_DIR)/romlib.elf
655accce5bSRoberto Vargas
66ae2e01b8SJohn Tsichritzis$(LIB_DIR)/libwrappers.a: $(BUILD_DIR)/jmptbl.i $(WRAPPER_DIR)/jmpvar.o
675accce5bSRoberto Vargas	@echo "  AR      $@"
68*bbb24f61SJohn Tsichritzis	$(Q)./genwrappers.sh -b $(WRAPPER_DIR) -o $@ --bti=$(ENABLE_BTI) --asflags=$(ASFLAGS) $(BUILD_DIR)/jmptbl.i
695accce5bSRoberto Vargas
70ae2e01b8SJohn Tsichritzis$(BUILD_DIR)/jmptbl.i: $(BUILD_DIR)/jmptbl.s
71ae2e01b8SJohn Tsichritzis
72ae2e01b8SJohn Tsichritzis$(BUILD_DIR)/jmptbl.s: ../../$(PLAT_DIR)/jmptbl.i
735accce5bSRoberto Vargas	@echo "  TBL     $@"
74*bbb24f61SJohn Tsichritzis	$(Q)./gentbl.sh -o $@ -b $(BUILD_DIR) --bti=$(ENABLE_BTI) ../../$(PLAT_DIR)/jmptbl.i
755accce5bSRoberto Vargas
765accce5bSRoberto Vargasclean:
775accce5bSRoberto Vargas	@rm -f $(BUILD_DIR)/*
785accce5bSRoberto Vargas
795accce5bSRoberto Vargas-include $(BUILD_DIR)/romlib.d
80