hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
link-out-dir = $(out-dir)
 
link-script = $(TA_DEV_KIT_DIR)/src/ta.ld.S
link-script-pp = $(link-out-dir)/ta.lds
link-script-dep = $(link-out-dir)/.ta.ld.d
 
SIGN = $(TA_DEV_KIT_DIR)/scripts/sign.py
#TA_SIGN_KEY ?= $(TA_DEV_KIT_DIR)/keys/default_ta.pem
TA_SIGN_KEY := $(TA_DEV_KIT_DIR)/keys/rk_privkey.pem
 
ifneq ($(TA_SIGN_KEY), $(wildcard $(TA_SIGN_KEY)))
TA_SIGN_KEY := $(TA_DEV_KIT_DIR)/keys/oem_privkey.pem
endif
 
all: $(link-out-dir)/$(binary).elf $(link-out-dir)/$(binary).dmp \
   $(link-out-dir)/$(binary).stripped.elf $(link-out-dir)/$(binary).ta
cleanfiles += $(link-out-dir)/$(binary).elf $(link-out-dir)/$(binary).dmp
cleanfiles += $(link-out-dir)/$(binary).map
cleanfiles += $(link-out-dir)/$(binary).stripped.elf
cleanfiles += $(link-out-dir)/$(binary).ta
cleanfiles += $(link-script-pp)
 
link-ldflags  = $(LDFLAGS)
link-ldflags += -pie
link-ldflags += -T $(link-script-pp) -Map=$(link-out-dir)/$(binary).map
link-ldflags += --sort-section=alignment
 
# Macro to reverse a list
reverse = $(if $(wordlist 2,2,$(1)),$(call reverse,$(wordlist 2,$(words $(1)),$(1))) $(firstword $(1)),$(1))
 
link-ldadd  = $(LDADD)
link-ldadd += $(addprefix -L,$(libdirs))
link-ldadd += $(addprefix -l,$(call reverse,$(libnames)))
ldargs-$(binary).elf := $(link-ldflags) $(objs) $(link-ldadd)
 
 
link-script-cppflags-$(sm) := -DASM=1 \
   $(filter-out $(CPPFLAGS_REMOVE) $(cppflags-remove), \
       $(nostdinc$(sm)) $(CPPFLAGS) \
       $(addprefix -I,$(incdirs$(sm)) $(link-out-dir)) \
       $(cppflags$(sm)))
 
-include $(link-script-dep)
 
$(link-script-pp): $(link-script) $(MAKEFILE_LIST)
   @$(cmd-echo-silent) '  CPP     $@'
   $(q)mkdir -p $(dir $@)
   $(q)$(CPP$(sm)) -Wp,-P,-MT,$@,-MD,$(link-script-dep) \
       $(link-script-cppflags-$(sm)) $< > $@
 
$(link-out-dir)/$(binary).elf: $(objs) $(libdeps) $(link-script-pp)
   @$(cmd-echo-silent) '  LD      $@'
   $(q)$(LD$(sm)) $(ldargs-$(binary).elf) -o $@
 
$(link-out-dir)/$(binary).dmp: $(link-out-dir)/$(binary).elf
   @$(cmd-echo-silent) '  OBJDUMP $@'
   $(q)$(OBJDUMP$(sm)) -l -x -d $< > $@
 
$(link-out-dir)/$(binary).stripped.elf: $(link-out-dir)/$(binary).elf
   @$(cmd-echo-silent) '  OBJCOPY $@'
   $(q)$(OBJCOPY$(sm)) --strip-unneeded $< $@
 
$(link-out-dir)/$(binary).ta: $(link-out-dir)/$(binary).stripped.elf \
               $(TA_SIGN_KEY)
   @echo '  SIGN    $@'
   @echo '  SIGN KEY $(TA_SIGN_KEY)'
   $(q)$(SIGN) --key $(TA_SIGN_KEY) --in $< --out $@