xref: /rk3399_ARM-atf/lib/romlib/Makefile (revision 5accce5bcc211c08e80c638acbd01099af81cc37)
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