diff options
Diffstat (limited to 'tmk_core/rules.mk')
| -rw-r--r-- | tmk_core/rules.mk | 31 |
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 |
| 224 | endif | 224 | endif |
| 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 | ||
| 229 | UF2CONV = $(TOP_DIR)/util/uf2conv.py | ||
| 230 | UF2_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 |
| 228 | GENDEPFLAGS = -MMD -MP -MF $(patsubst %.o,%.td,$@) | 234 | GENDEPFLAGS = -MMD -MP -MF $(patsubst %.o,%.td,$@) |
| @@ -255,6 +261,7 @@ DFU_SUFFIX_ARGS ?= | |||
| 255 | 261 | ||
| 256 | elf: $(BUILD_DIR)/$(TARGET).elf | 262 | elf: $(BUILD_DIR)/$(TARGET).elf |
| 257 | hex: $(BUILD_DIR)/$(TARGET).hex | 263 | hex: $(BUILD_DIR)/$(TARGET).hex |
| 264 | uf2: $(BUILD_DIR)/$(TARGET).uf2 | ||
| 258 | cpfirmware: $(FIRMWARE_FORMAT) | 265 | cpfirmware: $(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 \ |
| 479 | gccversion build elf hex eep lss sym coff extcoff \ | 498 | gccversion build elf hex uf2 eep lss sym coff extcoff \ |
| 480 | clean clean_list debug gdb-config show_path \ | 499 | clean clean_list debug gdb-config show_path \ |
| 481 | program teensy dfu dfu-ee dfu-start \ | 500 | program teensy dfu dfu-ee dfu-start \ |
| 482 | flash dfu-split-left dfu-split-right \ | 501 | flash dfu-split-left dfu-split-right \ |
