From 5e797732754a34b1646cd0a738027c7612649085 Mon Sep 17 00:00:00 2001 From: Jukka Laitinen Date: Tue, 3 Nov 2020 14:39:59 +0200 Subject: [PATCH] Add signing of px4 binary into makefiles When an environment variable "SIGNING_TOOL" is defined, the make will call this with two filename arguments: and . The SIGNING_TOOL will read in the binary from input, and append signature to the output. For example: SIGNING_TOOL=${PWD}/Tools/cryptotools.py make px4_fmu-v5_default Will use the example "cryptotools.py" to sign the px4_fmu-v5.bin Signed-off-by: Jukka Laitinen --- platforms/nuttx/CMakeLists.txt | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/platforms/nuttx/CMakeLists.txt b/platforms/nuttx/CMakeLists.txt index f765586cd7..0c78f21541 100644 --- a/platforms/nuttx/CMakeLists.txt +++ b/platforms/nuttx/CMakeLists.txt @@ -148,8 +148,20 @@ if (config_romfs_root) target_link_libraries(px4 PRIVATE romfs) endif() -add_custom_command(OUTPUT ${PX4_BINARY_DIR_REL}/${PX4_BOARD}.bin - COMMAND ${CMAKE_OBJCOPY} -O binary ${PX4_BINARY_DIR_REL}/${FW_NAME} ${PX4_BINARY_DIR_REL}/${PX4_BOARD}.bin +if((DEFINED ENV{SIGNING_TOOL}) AND (NOT NUTTX_DIR MATCHES "external")) + set(PX4_BINARY_OUTPUT ${PX4_BINARY_DIR}/${PX4_BOARD}_unsigned.bin) + + add_custom_command(OUTPUT ${PX4_BINARY_DIR_REL}/${PX4_BOARD}.bin + COMMAND $ENV{SIGNING_TOOL} $ENV{SIGNING_ARGS} ${PX4_BINARY_OUTPUT} ${PX4_BINARY_DIR}/${PX4_BOARD}.bin + DEPENDS ${PX4_BINARY_OUTPUT} + WORKING_DIRECTORY ${PX4_SOURCE_DIR} +) +else() +set(PX4_BINARY_OUTPUT ${PX4_BINARY_DIR_REL}/${PX4_BOARD}.bin) +endif() + +add_custom_command(OUTPUT ${PX4_BINARY_OUTPUT} + COMMAND ${CMAKE_OBJCOPY} -O binary ${PX4_BINARY_DIR_REL}/${FW_NAME} ${PX4_BINARY_OUTPUT} DEPENDS px4 )