From dd1bb56ac71e51f805e0862ff9fdbbfa02ed3ce2 Mon Sep 17 00:00:00 2001 From: Alexandre Paillier Date: Mon, 30 Oct 2023 14:50:09 +0100 Subject: [PATCH] Added a standard plugin Makefile --- src_plugin_sdk/standard_plugin.mk | 73 +++++++++++++++++++++++++++++++ tools/build_sdk.py | 1 + 2 files changed, 74 insertions(+) create mode 100644 src_plugin_sdk/standard_plugin.mk diff --git a/src_plugin_sdk/standard_plugin.mk b/src_plugin_sdk/standard_plugin.mk new file mode 100644 index 000000000..6a2023f2e --- /dev/null +++ b/src_plugin_sdk/standard_plugin.mk @@ -0,0 +1,73 @@ +# **************************************************************************** +# Ledger Ethereum Plugin SDK +# (c) 2023 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),) +$(error Environment variable BOLOS_SDK is not set) +endif + +# Prevent compilation of BAGL/NBGL +# Has to be before any SDK include +DISABLE_UI = 1 + +include $(BOLOS_SDK)/Makefile.defines + +APPVERSION ?= "$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P)" + +# Application source files +APP_SOURCE_PATH += src ethereum-plugin-sdk + +# Application icons following guidelines: +# https://developers.ledger.com/docs/embedded-app/design-requirements/#device-icon +NORMAL_NAME ?= $(shell echo -n "$(APPNAME)" | tr " ." "_" | tr "[:upper:]" "[:lower:]") +ICON_NANOS = icons/nanos_app_$(NORMAL_NAME).gif +ICON_NANOX = icons/nanox_app_$(NORMAL_NAME).gif +ICON_NANOSP = $(ICON_NANOX) +ICON_STAX = icons/stax_app_$(NORMAL_NAME).gif + +ifeq ($(TARGET_NAME),TARGET_STAX) + DEFINES += ICONGLYPH=C_stax_$(NORMAL_NAME)_64px + DEFINES += ICONBITMAP=C_stax_$(NORMAL_NAME)_64px_bitmap +endif + +CURVE_APP_LOAD_PARAMS = secp256k1 + +PATH_APP_LOAD_PARAMS ?= "44'/60'" + +VARIANT_PARAM = COIN +VARIANTS_VALUES ?= $(NORMAL_NAME) + +HAVE_APPLICATION_FLAG_LIBRARY = 1 + +DISABLE_STANDARD_APP_FILES = 1 +DISABLE_STANDARD_SNPRINTF = 1 +DISABLE_STANDARD_USB = 1 +DISABLE_STANDARD_WEBUSB = 1 +DISABLE_STANDARD_BAGL_UX_FLOW = 1 + +# Required for PRINTFs to compile +ifeq ($(DEBUG),0) + DISABLE_STANDARD_SEPROXYHAL = 1 +endif + +# So the plugin can still access the necessary NBGL types and pass its icon to +# the Ethereum app +ifeq ($(TARGET_NAME),TARGET_STAX) + DEFINES += HAVE_NBGL + INCLUDES_PATH += $(BOLOS_SDK)/lib_nbgl/include $(BOLOS_SDK)/lib_ux_stax +endif + +include $(BOLOS_SDK)/Makefile.standard_app diff --git a/tools/build_sdk.py b/tools/build_sdk.py index 9f5775c32..dfda9be77 100755 --- a/tools/build_sdk.py +++ b/tools/build_sdk.py @@ -220,6 +220,7 @@ def merge_c_files(sources, nodes_to_extract): files_to_copy = [ "CHANGELOG.md", "README.md", + "standard_plugin.mk", ] for file in files_to_copy: shutil.copyfile("src_plugin_sdk/" + file,