1
- # *** ****************************************************************************
2
- # Ledger App
3
- # (c) 2017 Ledger
1
+ # ****************************************************************************
2
+ # Ledger App Boilerplate
3
+ # (c) 2020 Ledger SAS.
4
4
#
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
8
#
9
- # http://www.apache.org/licenses/LICENSE-2.0
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
10
#
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- # *** ****************************************************************************
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ # ****************************************************************************
17
17
18
18
ifeq ($(BOLOS_SDK ) ,)
19
- $(error Environment variable BOLOS_SDK is not set)
19
+ $(error Environment variable BOLOS_SDK is not set)
20
20
endif
21
+
21
22
include $(BOLOS_SDK ) /Makefile.defines
22
23
23
- APPNAME = "IOTA"
24
- APPVERSION_MAJOR = 0
25
- APPVERSION_MINOR = 5
26
- APPVERSION_PATCH = 5
27
- APPVERSION = $(APPVERSION_MAJOR ) .$(APPVERSION_MINOR ) .$(APPVERSION_PATCH )
28
24
APP_LOAD_PARAMS = --path "44'/4218'" --appFlags 0x240 $(COMMON_LOAD_PARAMS )
29
25
30
- ifeq ($(TARGET_NAME ) ,TARGET_BLUE)
31
- ICONNAME = icons/blue_app_iota.gif
32
- else ifeq ($(TARGET_NAME),TARGET_NANOX)
33
- ICONNAME = icons/nanox_app_iota.gif
34
- else ifeq ($(TARGET_NAME),TARGET_NANOS)
35
- ICONNAME = icons/nanos_app_iota.gif
26
+ APPNAME = "IOTA Legacy"
27
+ APPVERSION_M = 0
28
+ APPVERSION_N = 5
29
+ APPVERSION_P = 9
30
+ APPVERSION = "$(APPVERSION_M ) .$(APPVERSION_N ) .$(APPVERSION_P ) "
31
+
32
+ ifeq ($(TARGET_NAME ) ,TARGET_NANOS)
33
+ ICONNAME =icons/nanos_app_iota.gif
36
34
else
37
- $( error unexpected target : $( TARGET_NAME ) )
35
+ ICONNAME =icons/nanox_app_iota.gif
38
36
endif
39
37
40
-
41
- # ###############
42
- # Default rule #
43
- # ###############
44
38
all : default
45
39
46
- # ###########
47
- # Platform #
48
- # ###########
49
-
50
40
DEFINES += $(DEFINES_LIB )
51
-
41
+ DEFINES += APPNAME=\"$(APPNAME ) \"
42
+ DEFINES += APPVERSION=\"$(APPVERSION ) \"
43
+ DEFINES += APPVERSION_MAJOR=$(APPVERSION_M ) APPVERSION_MINOR=$(APPVERSION_N ) APPVERSION_PATCH=$(APPVERSION_P )
52
44
DEFINES += OS_IO_SEPROXYHAL
53
- DEFINES += HAVE_BAGL HAVE_SPRINTF HAVE_SNPRINTF_FORMAT_U
45
+ DEFINES += HAVE_BAGL HAVE_UX_FLOW HAVE_SPRINTF HAVE_SNPRINTF_FORMAT_U
54
46
DEFINES += HAVE_IO_USB HAVE_L4_USBLIB IO_USB_MAX_ENDPOINTS=6 IO_HID_EP_LENGTH=64 HAVE_USB_APDU
55
- DEFINES += LEDGER_MAJOR_VERSION=$(APPVERSION_MAJOR ) LEDGER_MINOR_VERSION=$(APPVERSION_MINOR ) LEDGER_PATCH_VERSION=$(APPVERSION_PATCH )
56
-
57
- # U2F
58
- DEFINES += HAVE_U2F HAVE_IO_U2F
59
- DEFINES += U2F_PROXY_MAGIC=\"IOT\"
60
47
DEFINES += USB_SEGMENT_SIZE=64
61
- DEFINES += BLE_SEGMENT_SIZE=32 # max MTU, min 20
62
-
63
- # WebUSB
64
- WEBUSB_URL = www.ledgerwallet.com
65
- DEFINES += HAVE_WEBUSB WEBUSB_URL_SIZE_B=$(shell echo -n $(WEBUSB_URL ) | wc -c) WEBUSB_URL=$(shell echo -n $(WEBUSB_URL ) | sed -e "s/./\\\'\0\\\',/g")
66
-
67
- DEFINES += APPVERSION_MAJOR=$(APPVERSION_MAJOR )
68
- DEFINES += APPVERSION_MINOR=$(APPVERSION_MINOR )
69
- DEFINES += APPVERSION_PATCH=$(APPVERSION_PATCH )
70
- DEFINES += APPVERSION=\"$(APPVERSION ) \"
71
-
48
+ DEFINES += BLE_SEGMENT_SIZE=32
49
+ DEFINES += HAVE_WEBUSB WEBUSB_URL_SIZE_B=0 WEBUSB_URL=""
50
+ DEFINES += UNUSED\(x\)=\(void\)x
72
51
73
52
ifeq ($(TARGET_NAME ) ,TARGET_NANOX)
74
- DEFINES += IO_SEPROXYHAL_BUFFER_SIZE_B=300
75
- DEFINES += HAVE_BLE BLE_COMMAND_TIMEOUT_MS=2000
76
- DEFINES += HAVE_BLE_APDU # basic ledger apdu transport over BLE
53
+ DEFINES += HAVE_BLE BLE_COMMAND_TIMEOUT_MS=2000 HAVE_BLE_APDU
54
+ endif
77
55
56
+ ifeq ($(TARGET_NAME ) ,TARGET_NANOS)
57
+ DEFINES += IO_SEPROXYHAL_BUFFER_SIZE_B=128
58
+ else
59
+ # nanox, nanosplus
60
+ DEFINES += IO_SEPROXYHAL_BUFFER_SIZE_B=300
78
61
DEFINES += HAVE_GLO096
79
- DEFINES += HAVE_BAGL BAGL_WIDTH=128 BAGL_HEIGHT=64
80
- DEFINES += HAVE_BAGL_ELLIPSIS # long label truncation feature
62
+ DEFINES += BAGL_WIDTH=128 BAGL_HEIGHT=64
63
+ DEFINES += HAVE_BAGL_ELLIPSIS
81
64
DEFINES += HAVE_BAGL_FONT_OPEN_SANS_REGULAR_11PX
82
65
DEFINES += HAVE_BAGL_FONT_OPEN_SANS_EXTRABOLD_11PX
83
66
DEFINES += HAVE_BAGL_FONT_OPEN_SANS_LIGHT_16PX
84
- DEFINES += HAVE_UX_FLOW
85
- else
86
- DEFINES += IO_SEPROXYHAL_BUFFER_SIZE_B=128
87
67
endif
88
68
89
- DEBUG = 1
69
+ DEBUG = 0
90
70
ifneq ($(DEBUG ) ,0)
91
- # Development flags
92
71
APP_LOAD_PARAMS += --path "44'/01'"
93
- DEFINES += HAVE_BOLOS_APP_STACK_CANARY
94
- ifeq ($(TARGET_NAME),TARGET_NANOX )
95
- DEFINES += HAVE_PRINTF PRINTF=mcu_usb_printf
72
+ DEFINES += HAVE_BOLOS_APP_STACK_CANARY
73
+ ifeq ($(TARGET_NAME),TARGET_NANOS )
74
+ DEFINES += PRINTF=screen_printf
96
75
else
97
- DEFINES += HAVE_PRINTF PRINTF=screen_printf
76
+ # nanox, nanosplus
77
+ DEFINES += PRINTF=mcu_usb_printf
98
78
endif
99
79
else
100
- # Release flags
101
- DEFINES += PRINTF\(...\)=
80
+ DEFINES += PRINTF\(...\)=
102
81
endif
103
82
104
- # #############
105
- # Compiler #
106
- # #############
107
83
ifneq ($(BOLOS_ENV ) ,)
108
84
$(info BOLOS_ENV=$(BOLOS_ENV))
109
85
CLANGPATH := $(BOLOS_ENV ) /clang-arm-fropi/bin/
110
- GCCPATH := $(BOLOS_ENV ) /gcc-arm-none-eabi-5_3-2016q1/bin/
86
+ GCCPATH := $(BOLOS_ENV ) /gcc-arm-none-eabi-5_3-2016q1/bin/
111
87
else
112
88
$(info BOLOS_ENV is not set : falling back to CLANGPATH and GCCPATH)
113
89
endif
@@ -118,41 +94,34 @@ ifeq ($(GCCPATH),)
118
94
$(info GCCPATH is not set : arm-none-eabi-* will be used from PATH)
119
95
endif
120
96
121
- CC := $(CLANGPATH ) clang
122
- CFLAGS += -O3 -Os
123
-
124
- AS := $(GCCPATH ) arm-none-eabi-gcc
125
- AFLAGS +=
126
-
127
- LD := $(GCCPATH ) arm-none-eabi-gcc
97
+ CC := $(CLANGPATH ) clang
98
+ CFLAGS += -O3 -Os
99
+ AS := $(GCCPATH ) arm-none-eabi-gcc
100
+ LD := $(GCCPATH ) arm-none-eabi-gcc
128
101
LDFLAGS += -O3 -Os
129
- LDLIBS += -lm -lgcc -lc
102
+ LDLIBS += -lm -lgcc -lc
130
103
131
- # import rules to compile glyphs(/pone)
132
104
include $(BOLOS_SDK ) /Makefile.glyphs
133
105
134
- # ## variables processed by the common makefile.rules of the SDK to grab source files and include dirs
135
106
APP_SOURCE_PATH += src
136
- SDK_SOURCE_PATH += lib_stusb lib_stusb_impl lib_u2f
107
+ SDK_SOURCE_PATH += lib_stusb lib_stusb_impl lib_ux
137
108
138
109
ifeq ($(TARGET_NAME ) ,TARGET_NANOX)
139
110
SDK_SOURCE_PATH += lib_blewbxx lib_blewbxx_impl
140
- SDK_SOURCE_PATH += lib_ux
141
111
endif
142
112
143
113
load : all
144
- python -m ledgerblue.loadApp $(APP_LOAD_PARAMS )
114
+ python3 -m ledgerblue.loadApp $(APP_LOAD_PARAMS )
115
+
116
+ load-offline : all
117
+ python3 -m ledgerblue.loadApp $(APP_LOAD_PARAMS ) --offline
145
118
146
119
delete :
147
- python -m ledgerblue.deleteApp $(COMMON_DELETE_PARAMS )
120
+ python3 -m ledgerblue.deleteApp $(COMMON_DELETE_PARAMS )
148
121
149
- # import generic rules from the sdk
150
122
include $(BOLOS_SDK ) /Makefile.rules
151
123
152
- # add dependency on custom makefile filename
153
124
dep/% .d : % .c Makefile
154
125
155
-
156
-
157
126
listvariants :
158
- @echo VARIANTS COIN iota
127
+ @echo VARIANTS COIN iota_legacy
0 commit comments