forked from LedgerHQ/app-hedera
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
145 lines (113 loc) · 4.27 KB
/
Makefile
File metadata and controls
145 lines (113 loc) · 4.27 KB
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#*******************************************************************************
# Ledger App Hedera
# (c) 2025 Hedera Hashgraph
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#*******************************************************************************
ifeq ($(BOLOS_SDK),)
$(error Environment variable BOLOS_SDK is not set)
endif
include $(BOLOS_SDK)/Makefile.defines
########################################
# Mandatory configuration #
########################################
# Application name
APPNAME = Hedera
# Application version
APPVERSION_M = 1
APPVERSION_N = 9
APPVERSION_P = 0
APPVERSION = "$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P)"
# Application source files
APP_SOURCE_PATH += src proto
SDK_SOURCE_PATH += lib_u2f
# Application icons
ICON_NANOS = icons/nanos_app_hedera.gif
ICON_NANOX = icons/nanox_app_hedera.gif
ICON_NANOSP = icons/nanox_app_hedera.gif
ICON_STAX = icons/stax_app_hedera.gif
ICON_FLEX = icons/flex_app_hedera.gif
ICON_APEX_P = icons/apex_app_hedera.png
# Application allowed derivation curves.
CURVE_APP_LOAD_PARAMS = ed25519 secp256k1
# Application allowed derivation paths.
PATH_APP_LOAD_PARAMS = "44'/3030'" # purpose=coin(44) / coin_type=Hedera HBAR(3030)
VARIANT_PARAM = COIN
VARIANT_VALUES = hedera
# Enabling DEBUG flag will enable PRINTF and disable optimizations
#DEBUG = 1
########################################
# Application custom permissions #
########################################
HAVE_APPLICATION_FLAG_BOLOS_SETTINGS = 1
########################################
# Application communication interfaces #
########################################
ENABLE_BLUETOOTH = 1
########################################
# NBGL custom features #
########################################
ENABLE_NBGL_QRCODE = 1
########################################
# Features enablers #
########################################
ENABLE_SWAP = 1
########################################
# Features disablers #
########################################
# These advanced settings allow to disable some feature that are by
# default enabled in the SDK `Makefile.standard_app`.
DISABLE_STANDARD_APP_FILES = 1
########################################
# App specific configuration #
########################################
ifeq ($(TARGET_NAME),TARGET_NANOS)
DISABLE_STANDARD_BAGL_UX_FLOW = 1
endif
# vendor/printf
DEFINES += PRINTF_DISABLE_SUPPORT_FLOAT PRINTF_DISABLE_SUPPORT_EXPONENTIAL PRINTF_DISABLE_SUPPORT_PTRDIFF_T
DEFINES += PRINTF_FTOA_BUFFER_SIZE=0
# U2F
DEFINES += HAVE_U2F HAVE_IO_U2F
DEFINES += U2F_PROXY_MAGIC=\"BOIL\"
# Allow usage of function from lib_standard_app/crypto_helpers.c
APP_SOURCE_FILES += ${BOLOS_SDK}/lib_standard_app/crypto_helpers.c
# Additional include paths
INCLUDES_PATH += ${BOLOS_SDK}/lib_standard_app $(NANOPB_DIR) .
include vendor/nanopb/extra/nanopb.mk
DEFINES += PB_NO_ERRMSG=1
SOURCE_FILES += $(NANOPB_CORE)
PB_FILES = $(wildcard proto/*.proto)
C_PB_FILES = $(patsubst %.proto,%.pb.c,$(PB_FILES))
PYTHON_PB_FILES = $(patsubst %.proto,%_pb2.py,$(PB_FILES))
# Build rule for C proto files
SOURCE_FILES += $(C_PB_FILES)
.PHONY: c_pb python_pb clean_python_pb
c_pb:
$(PROTOC) $(PROTOC_OPTS) --nanopb_out=. $(PB_FILES)
python_pb:
$(PROTOC) $(PROTOC_OPTS) --python_out=. $(PB_FILES)
clean_python_pb:
rm -f $(PYTHON_PB_FILES)
clean_c_pb:
-@rm -rf proto/*.pb.c proto/*.pb.h
# target to also clean generated proto (c and python) files
.SILENT : cleanall
cleanall : clean clean_python_pb clean_c_pb
check:
@ clang-tidy \
$(foreach path, $(APP_SOURCE_PATH), $(shell find $(path) -name "*.c" -and -not -name "pb*" -and -not -name "glyphs*")) -- \
$(CFLAGS) \
$(addprefix -D, $(DEFINES)) \
$(addprefix -I, $(INCLUDES_PATH))
include $(BOLOS_SDK)/Makefile.standard_app