forked from solana-labs/ledger-app-solana
-
Notifications
You must be signed in to change notification settings - Fork 26
/
Copy pathMakefile
132 lines (109 loc) · 4.02 KB
/
Makefile
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
# ****************************************************************************
# Ledger App Solana
# (c) 2024 Ledger SAS.
#
# 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),)
# `THIS_DIR` must be resolved BEFORE any `include` directives
THIS_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
TARGET_SDK := $(shell ./util/read-last-sdk)
BOLOS_SDK := ${$(TARGET_SDK)}
endif
ifeq ($(BOLOS_SDK),)
$(error Environment variable BOLOS_SDK is not set)
endif
include $(BOLOS_SDK)/Makefile.defines
########################################
# Mandatory configuration #
########################################
# Application name
APPNAME = "Solana"
# Application version
APPVERSION_M = 1
APPVERSION_N = 7
APPVERSION_P = 0
APPVERSION = "$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P)"
# Application source files
APP_SOURCE_PATH += src
# Application icons
ICON_NANOS = icons/nanos_app_solana.gif
ICON_NANOX = icons/nanox_app_solana.gif
ICON_NANOSP = icons/nanox_app_solana.gif
ICON_STAX = icons/stax_app_solana.gif
ICON_FLEX = icons/flex_app_solana.gif
# Application allowed derivation curves
CURVE_APP_LOAD_PARAMS = ed25519
# Application allowed derivation paths.
PATH_APP_LOAD_PARAMS = "44'/501'" # purpose=coin(44) / coin_type=Solana(501)
# Setting to allow building variant applications
VARIANT_PARAM = COIN
VARIANT_VALUES = solana
# Enabling DEBUG flag will enable PRINTF and disable optimizations
# DEBUG = 1
########################################
# Application custom permissions #
########################################
ifeq ($(TARGET_NAME),$(filter $(TARGET_NAME),TARGET_NANOX TARGET_STAX TARGET_FLEX))
HAVE_APPLICATION_FLAG_BOLOS_SETTINGS = 1
endif
########################################
# Swap features #
########################################
ENABLE_SWAP = 1
########################################
# Application communication interfaces #
########################################
ENABLE_BLUETOOTH = 1
########################################
# NBGL custom features #
########################################
ENABLE_NBGL_QRCODE = 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
# Allow usage of function from lib_standard_app/crypto_helpers.c
APP_SOURCE_FILES += ${BOLOS_SDK}/lib_standard_app/crypto_helpers.c
APP_SOURCE_FILES += ${BOLOS_SDK}/lib_standard_app/swap_utils.c
APP_SOURCE_FILES += ${BOLOS_SDK}/lib_standard_app/base58.c
CFLAGS += -I${BOLOS_SDK}/lib_standard_app/
WITH_U2F?=0
ifneq ($(WITH_U2F),0)
DEFINES += HAVE_U2F HAVE_IO_U2F
DEFINES += U2F_PROXY_MAGIC=\"~SOL\"
SDK_SOURCE_PATH += lib_u2f
endif
DEFINES += HAVE_SDK_TLV_PARSER
WITH_LIBSOL?=1
ifneq ($(WITH_LIBSOL),0)
SOURCE_FILES += $(filter-out %_test.c,$(wildcard libsol/*.c))
CFLAGS += -Ilibsol/include
CFLAGS += -Ilibsol
DEFINES += HAVE_SNPRINTF_FORMAT_U
DEFINES += NDEBUG
endif
#######################################
# Trusted Name Test Mode #
#######################################
TRUSTED_NAME_TEST_KEY ?= 0
ifneq ($(TRUSTED_NAME_TEST_KEY),0)
DEFINES += TRUSTED_NAME_TEST_KEY
endif
FIXED_TLV_CHALLENGE ?= 0
ifneq ($(FIXED_TLV_CHALLENGE),0)
DEFINES += FIXED_TLV_CHALLENGE
endif
include $(BOLOS_SDK)/Makefile.standard_app