xref: /rk3399_ARM-atf/lib/romlib/Makefile (revision 2b929c986b3ab226e55da85a2131b04d26684e9a)
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
27*2b929c98SLouis MayencourtLDFLAGS := --gc-sections -O1
285accce5bSRoberto Vargasifeq ($(DEBUG),1)
29*2b929c98SLouis Mayencourt   LDFLAGS += -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
61ae2e01b8SJohn Tsichritzis$(LIB_DIR)/libwrappers.a: $(BUILD_DIR)/jmptbl.i $(WRAPPER_DIR)/jmpvar.o
625accce5bSRoberto Vargas	@echo "  AR      $@"
638b9a0de4SSathees Balya	$(Q)./genwrappers.sh -b $(WRAPPER_DIR) -o $@ $(BUILD_DIR)/jmptbl.i
645accce5bSRoberto Vargas
65ae2e01b8SJohn Tsichritzis$(BUILD_DIR)/jmptbl.i: $(BUILD_DIR)/jmptbl.s
66ae2e01b8SJohn Tsichritzis
67ae2e01b8SJohn Tsichritzis$(BUILD_DIR)/jmptbl.s: ../../$(PLAT_DIR)/jmptbl.i
685accce5bSRoberto Vargas	@echo "  TBL     $@"
69ae2e01b8SJohn Tsichritzis	$(Q)./gentbl.sh -o $@ -b $(BUILD_DIR) ../../$(PLAT_DIR)/jmptbl.i
705accce5bSRoberto Vargas
715accce5bSRoberto Vargasclean:
725accce5bSRoberto Vargas	@rm -f $(BUILD_DIR)/*
735accce5bSRoberto Vargas
745accce5bSRoberto Vargas-include $(BUILD_DIR)/romlib.d
75