aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/rules.mk
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/rules.mk')
-rw-r--r--tmk_core/rules.mk31
1 files changed, 25 insertions, 6 deletions
diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk
index bbcfc1e4d..8dbed35fb 100644
--- a/tmk_core/rules.mk
+++ b/tmk_core/rules.mk
@@ -223,6 +223,12 @@ ifneq ($(filter Darwin FreeBSD,$(shell uname -s)),)
223 MD5SUM = md5 223 MD5SUM = md5
224endif 224endif
225 225
226# UF2 format settings
227# To produce a UF2 file in your build, add to your keyboard's rules.mk:
228# FIRMWARE_FORMAT = uf2
229UF2CONV = $(TOP_DIR)/util/uf2conv.py
230UF2_FAMILY ?= 0x0
231
226# Compiler flags to generate dependency files. 232# Compiler flags to generate dependency files.
227#GENDEPFLAGS = -MMD -MP -MF .dep/$(@F).d 233#GENDEPFLAGS = -MMD -MP -MF .dep/$(@F).d
228GENDEPFLAGS = -MMD -MP -MF $(patsubst %.o,%.td,$@) 234GENDEPFLAGS = -MMD -MP -MF $(patsubst %.o,%.td,$@)
@@ -255,6 +261,7 @@ DFU_SUFFIX_ARGS ?=
255 261
256elf: $(BUILD_DIR)/$(TARGET).elf 262elf: $(BUILD_DIR)/$(TARGET).elf
257hex: $(BUILD_DIR)/$(TARGET).hex 263hex: $(BUILD_DIR)/$(TARGET).hex
264uf2: $(BUILD_DIR)/$(TARGET).uf2
258cpfirmware: $(FIRMWARE_FORMAT) 265cpfirmware: $(FIRMWARE_FORMAT)
259 $(SILENT) || printf "Copying $(TARGET).$(FIRMWARE_FORMAT) to qmk_firmware folder" | $(AWK_CMD) 266 $(SILENT) || printf "Copying $(TARGET).$(FIRMWARE_FORMAT) to qmk_firmware folder" | $(AWK_CMD)
260 $(COPY) $(BUILD_DIR)/$(TARGET).$(FIRMWARE_FORMAT) $(TARGET).$(FIRMWARE_FORMAT) && $(PRINT_OK) 267 $(COPY) $(BUILD_DIR)/$(TARGET).$(FIRMWARE_FORMAT) $(TARGET).$(FIRMWARE_FORMAT) && $(PRINT_OK)
@@ -283,32 +290,44 @@ gccversion :
283 290
284# Create final output files (.hex, .eep) from ELF output file. 291# Create final output files (.hex, .eep) from ELF output file.
285%.hex: %.elf 292%.hex: %.elf
286 @$(SILENT) || printf "$(MSG_FLASH) $@" | $(AWK_CMD)
287 $(eval CMD=$(HEX) $< $@) 293 $(eval CMD=$(HEX) $< $@)
294 #@$(SILENT) || printf "$(MSG_EXECUTING) '$(CMD)':\n"
295 @$(SILENT) || printf "$(MSG_FLASH) $@" | $(AWK_CMD)
296 @$(BUILD_CMD)
297
298%.uf2: %.hex
299 $(eval CMD=$(UF2CONV) $(BUILD_DIR)/$(TARGET).hex -o $(BUILD_DIR)/$(TARGET).uf2 -c -f $(UF2_FAMILY) >/dev/null 2>&1)
300 #@$(SILENT) || printf "$(MSG_EXECUTING) '$(CMD)':\n"
301 @$(SILENT) || printf "$(MSG_UF2) $@" | $(AWK_CMD)
288 @$(BUILD_CMD) 302 @$(BUILD_CMD)
289 303
290%.eep: %.elf 304%.eep: %.elf
291 @$(SILENT) || printf "$(MSG_EEPROM) $@" | $(AWK_CMD)
292 $(eval CMD=$(EEP) $< $@ || exit 0) 305 $(eval CMD=$(EEP) $< $@ || exit 0)
306 #@$(SILENT) || printf "$(MSG_EXECUTING) '$(CMD)':\n"
307 @$(SILENT) || printf "$(MSG_EEPROM) $@" | $(AWK_CMD)
293 @$(BUILD_CMD) 308 @$(BUILD_CMD)
294 309
295# Create extended listing file from ELF output file. 310# Create extended listing file from ELF output file.
296%.lss: %.elf 311%.lss: %.elf
297 @$(SILENT) || printf "$(MSG_EXTENDED_LISTING) $@" | $(AWK_CMD)
298 $(eval CMD=$(OBJDUMP) -h -S -z $< > $@) 312 $(eval CMD=$(OBJDUMP) -h -S -z $< > $@)
313 #@$(SILENT) || printf "$(MSG_EXECUTING) '$(CMD)':\n"
314 @$(SILENT) || printf "$(MSG_EXTENDED_LISTING) $@" | $(AWK_CMD)
299 @$(BUILD_CMD) 315 @$(BUILD_CMD)
300 316
301# Create a symbol table from ELF output file. 317# Create a symbol table from ELF output file.
302%.sym: %.elf 318%.sym: %.elf
303 @$(SILENT) || printf "$(MSG_SYMBOL_TABLE) $@" | $(AWK_CMD)
304 $(eval CMD=$(NM) -n $< > $@ ) 319 $(eval CMD=$(NM) -n $< > $@ )
320 #@$(SILENT) || printf "$(MSG_EXECUTING) '$(CMD)':\n"
321 @$(SILENT) || printf "$(MSG_SYMBOL_TABLE) $@" | $(AWK_CMD)
305 @$(BUILD_CMD) 322 @$(BUILD_CMD)
306 323
307%.bin: %.elf 324%.bin: %.elf
308 @$(SILENT) || printf "$(MSG_BIN) $@" | $(AWK_CMD)
309 $(eval CMD=$(BIN) $< $@ || exit 0) 325 $(eval CMD=$(BIN) $< $@ || exit 0)
326 #@$(SILENT) || printf "$(MSG_EXECUTING) '$(CMD)':\n"
327 @$(SILENT) || printf "$(MSG_BIN) $@" | $(AWK_CMD)
310 @$(BUILD_CMD) 328 @$(BUILD_CMD)
311 if [ ! -z "$(DFU_SUFFIX_ARGS)" ]; then \ 329 if [ ! -z "$(DFU_SUFFIX_ARGS)" ]; then \
330 #$(SILENT) || printf "$(MSG_EXECUTING) '$(DFU_SUFFIX) $(DFU_SUFFIX_ARGS) -a $(BUILD_DIR)/$(TARGET).bin 1>/dev/null':\n" ;\
312 $(DFU_SUFFIX) $(DFU_SUFFIX_ARGS) -a $(BUILD_DIR)/$(TARGET).bin 1>/dev/null ;\ 331 $(DFU_SUFFIX) $(DFU_SUFFIX_ARGS) -a $(BUILD_DIR)/$(TARGET).bin 1>/dev/null ;\
313 fi 332 fi
314 $(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin; 333 $(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin;
@@ -476,7 +495,7 @@ $(eval $(foreach OUTPUT,$(OUTPUTS),$(shell mkdir -p $(OUTPUT) 2>/dev/null)))
476 495
477# Listing of phony targets. 496# Listing of phony targets.
478.PHONY : all dump_vars finish sizebefore sizeafter qmkversion \ 497.PHONY : all dump_vars finish sizebefore sizeafter qmkversion \
479gccversion build elf hex eep lss sym coff extcoff \ 498gccversion build elf hex uf2 eep lss sym coff extcoff \
480clean clean_list debug gdb-config show_path \ 499clean clean_list debug gdb-config show_path \
481program teensy dfu dfu-ee dfu-start \ 500program teensy dfu dfu-ee dfu-start \
482flash dfu-split-left dfu-split-right \ 501flash dfu-split-left dfu-split-right \