From fe684febdf493e95ef100217ddbc8ec73c25ac9e Mon Sep 17 00:00:00 2001 From: David Holdeman Date: Wed, 7 Feb 2024 17:28:56 -0600 Subject: [PATCH] gen signature with make generate signature only if it changed to avoid triggering regeneration of configs --- firmware/gen_signature.sh | 15 +++++++++------ firmware/rusefi_config.mk | 8 ++++++-- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/firmware/gen_signature.sh b/firmware/gen_signature.sh index 04220bd862..baefc80737 100755 --- a/firmware/gen_signature.sh +++ b/firmware/gen_signature.sh @@ -2,28 +2,31 @@ # file gen_signature.sh -SHORT_BOARD_NAME=$1 +SHORT_BOARD_NAME=${1:-$SHORT_BOARD_NAME} +cd $(dirname "$0") SIGNATURE_FILE_NAME=tunerstudio/generated/signature_${SHORT_BOARD_NAME}.txt echo "Generating signature for ${SHORT_BOARD_NAME}" # generate a unique signature date=`TZ=Europe/London date +"%Y.%m.%d"` -echo "! Generated by gen_signature.sh" > ${SIGNATURE_FILE_NAME} +echo "! Generated by gen_signature.sh" > ${SIGNATURE_FILE_NAME}.temp -echo "! SIGNATURE_HASH is a built-in variable generated by config_definition-all.jar" >> ${SIGNATURE_FILE_NAME} +echo "! SIGNATURE_HASH is a built-in variable generated by config_definition-all.jar" >> ${SIGNATURE_FILE_NAME}.temp # read the current git branch name branchname=`git branch --show-current` if [ "${branchname}" = "" ]; then # custom board, empty value while executed within submodule branchname="default" - echo "! Using default branch $branchname" >> ${SIGNATURE_FILE_NAME} + echo "! Using default branch $branchname" >> ${SIGNATURE_FILE_NAME}.temp else - echo "! Current branch is: $branchname" >> ${SIGNATURE_FILE_NAME} + echo "! Current branch is: $branchname" >> ${SIGNATURE_FILE_NAME}.temp fi -echo "#define TS_SIGNATURE \"rusEFI $branchname.$date.${SHORT_BOARD_NAME}.@@SIGNATURE_HASH@@\"" >> ${SIGNATURE_FILE_NAME} +echo "#define TS_SIGNATURE \"rusEFI $branchname.$date.${SHORT_BOARD_NAME}.@@SIGNATURE_HASH@@\"" >> ${SIGNATURE_FILE_NAME}.temp +cmp ${SIGNATURE_FILE_NAME}.temp ${SIGNATURE_FILE_NAME} || mv -f ${SIGNATURE_FILE_NAME}.temp ${SIGNATURE_FILE_NAME} +rm -f ${SIGNATURE_FILE_NAME}.temp exit 0 diff --git a/firmware/rusefi_config.mk b/firmware/rusefi_config.mk index e8bfe0902f..39fb9e1072 100644 --- a/firmware/rusefi_config.mk +++ b/firmware/rusefi_config.mk @@ -1,4 +1,5 @@ INI_FILE = $(META_OUTPUT_ROOT_FOLDER)tunerstudio/generated/rusefi_$(SHORT_BOARD_NAME).ini +SIG_FILE = $(PROJECT_DIR)/tunerstudio/generated/signature_$(SHORT_BOARD_NAME).txt CONFIG_FILES = \ $(PROJECT_DIR)/$(INI_FILE) \ @@ -12,11 +13,14 @@ CONFIG_FILES = \ .FORCE: -$(ACOBJS): $(CONFIG_FILES) +$(TCOBJS): $(CONFIG_FILES) + +$(SIG_FILE): .FORCE + bash $(PROJECT_DIR)/gen_signature.sh $(SHORT_BOARD_NAME) $(CONFIG_FILES): .config-sentinel ; -.config-sentinel: .FORCE +.config-sentinel: $(SIG_FILE) .FORCE ifneq (,$(CUSTOM_GEN_CONFIG)) bash $(PROJECT_DIR)/$(BOARD_DIR)/$(CUSTOM_GEN_CONFIG) else