Skip to content

Commit

Permalink
Added a standard plugin Makefile
Browse files Browse the repository at this point in the history
  • Loading branch information
apaillier-ledger committed Nov 7, 2023
1 parent fece8dc commit dd1bb56
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 0 deletions.
73 changes: 73 additions & 0 deletions src_plugin_sdk/standard_plugin.mk
Original file line number Diff line number Diff line change
@@ -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
1 change: 1 addition & 0 deletions tools/build_sdk.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit dd1bb56

Please sign in to comment.