aboutsummaryrefslogtreecommitdiff
path: root/Arduino.mk
diff options
context:
space:
mode:
Diffstat (limited to 'Arduino.mk')
-rw-r--r--Arduino.mk15
1 files changed, 13 insertions, 2 deletions
diff --git a/Arduino.mk b/Arduino.mk
index 508c7ab..84d8af5 100644
--- a/Arduino.mk
+++ b/Arduino.mk
@@ -465,6 +465,13 @@ else
$(call show_config_variable,USER_LIB_PATH,[USER])
endif
+ifndef PRE_BUILD_HOOK
+ PRE_BUILD_HOOK = pre-build-hook.sh
+ $(call show_config_variable,PRE_BUILD_HOOK,[DEFAULT])
+else
+ $(call show_config_variable,PRE_BUILD_HOOK,[USER])
+endif
+
########################################################################
# boards.txt parsing
@@ -1106,9 +1113,12 @@ all: $(TARGET_EEP) $(TARGET_HEX)
# prerequisite" (e.g., put "| $(OBJDIR)" at the end of the prerequisite
# list) to prevent remaking the target when any file in the directory
# changes.
-$(OBJDIR):
+$(OBJDIR): pre-build
$(MKDIR) $(OBJDIR)
+pre-build:
+ $(call runscript_if_exists,$(PRE_BUILD_HOOK))
+
$(TARGET_ELF): $(LOCAL_OBJS) $(CORE_LIB) $(OTHER_OBJS)
$(CC) $(LDFLAGS) -o $@ $(LOCAL_OBJS) $(CORE_LIB) $(OTHER_OBJS) -lc -lm
@@ -1118,6 +1128,7 @@ $(CORE_LIB): $(CORE_OBJS) $(LIB_OBJS) $(USER_LIB_OBJS)
error_on_caterina:
$(ERROR_ON_CATERINA)
+
# Use submake so we can guarantee the reset happens
# before the upload, even with make -j
upload: $(TARGET_HEX) verify_size
@@ -1244,7 +1255,7 @@ 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
+ generate_assembly verify_size burn_bootloader help pre-build
# added - in the beginning, so that we don't get an error if the file is not present
-include $(DEPS)