diff --git a/Arduino.mk b/Arduino.mk index 5a04506..d555be8 100644 --- a/Arduino.mk +++ b/Arduino.mk @@ -626,6 +626,13 @@ else $(call show_config_variable,PRE_BUILD_HOOK,[USER]) endif +ifndef PRE_UPLOAD_HOOK + PRE_UPLOAD_HOOK = pre-upload-hook.sh + $(call show_config_variable,PRE_UPLOAD_HOOK,[DEFAULT]) +else + $(call show_config_variable,PRE_UPLOAD_HOOK,[USER]) +endif + ######################################################################## # boards.txt parsing @@ -1521,7 +1528,7 @@ $(OBJDIR)/%.lss: $(OBJDIR)/%.elf $(COMMON_DEPS) $(OBJDIR)/%.sym: $(OBJDIR)/%.elf $(COMMON_DEPS) @$(MKDIR) $(dir $@) - $(NM) --size-sort --demangle --reverse-sort --line-numbers $< > $@ + $(NM) $(AVR_SIZE_OPTS) --size-sort --demangle --reverse-sort --line-numbers $< > $@ ######################################################################## # Ctags @@ -1705,7 +1712,7 @@ error_on_caterina: # Use submake so we can guarantee the reset happens # before the upload, even with make -j -upload: $(TARGET_HEX) verify_size +upload: $(TARGET_HEX) pre-upload verify_size ifeq ($(findstring sam, $(strip $(ARCHITECTURE))), sam) # do reset toggle at 1200 BAUD to enter bootloader if using avrdude or bossa ifeq ($(strip $(UPLOAD_TOOL)), avrdude) @@ -1719,6 +1726,9 @@ else $(MAKE) do_upload endif +pre-upload: + $(call runscript_if_exists,$(PRE_UPLOAD_HOOK)) + raw_upload: $(TARGET_HEX) verify_size ifeq ($(findstring sam, $(strip $(ARCHITECTURE))), sam) $(MAKE) do_sam_upload @@ -1911,7 +1921,8 @@ help: .PHONY: all upload raw_upload raw_eeprom error_on_caterina reset reset_stty ispload \ clean depends size show_boards monitor disasm symbol_sizes generated_assembly \ - generate_assembly verify_size burn_bootloader help pre-build tags debug debug_init + generate_assembly verify_size burn_bootloader help pre-build tags debug debug_init \ + pre-upload # added - in the beginning, so that we don't get an error if the file is not present -include $(DEPS) diff --git a/arduino-mk-vars.md b/arduino-mk-vars.md index 0907eb2..263057d 100644 --- a/arduino-mk-vars.md +++ b/arduino-mk-vars.md @@ -1355,6 +1355,23 @@ PRE_BUILD_HOOK = $(HOME)/bin/bump-revision.sh **Requirement:** *Optional* +### PRE_UPLOAD_HOOK + +**Description:** + +Path to shell script to be executed before uploading. Could be used to automatically +last minute modification just before uploading code to chip. + +Defaults to `pre-upload-hook.sh` + +**Example:** + +```Makefile +PRE_UPLOAD_HOOK = $(HOME)/bin/upload-revision.sh +``` + +**Requirement:** *Optional* + ---- ## Avrdude setting variables