X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tmk_core%2Favr.mk;h=80e8b2be646f75dc6fdfc23997cb2bb4c6efa64c;hb=004826e1b833725b93f9f809ba77b1f967aa9232;hp=0d0eec3bf34e85d557ee2a90931ce8af2568ea80;hpb=e0caf94323d5cc0baae38af11984902fb1a5375f;p=qmk_firmware.git diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index 0d0eec3bf..80e8b2be6 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -96,6 +96,30 @@ ifndef TEENSY_LOADER_CLI endif endif +# Generate a .qmk for the QMK-FF +qmk: $(BUILD_DIR)/$(TARGET).hex + zip $(TARGET).qmk -FSrj $(KEYMAP_PATH)/* + zip $(TARGET).qmk -u $< + printf "@ $<\n@=firmware.hex\n" | zipnote -w $(TARGET).qmk + printf "{\n \"generated\": \"%s\"\n}" "$$(date)" > $(BUILD_DIR)/$(TARGET).json + if [ -f $(KEYBOARD_PATH_5)/info.json ]; then \ + jq -s '.[0] * .[1]' $(BUILD_DIR)/$(TARGET).json $(KEYBOARD_PATH_5)/info.json | ex -sc 'wq!$(BUILD_DIR)/$(TARGET).json' /dev/stdin; \ + fi + if [ -f $(KEYBOARD_PATH_4)/info.json ]; then \ + jq -s '.[0] * .[1]' $(BUILD_DIR)/$(TARGET).json $(KEYBOARD_PATH_4)/info.json | ex -sc 'wq!$(BUILD_DIR)/$(TARGET).json' /dev/stdin; \ + fi + if [ -f $(KEYBOARD_PATH_3)/info.json ]; then \ + jq -s '.[0] * .[1]' $(BUILD_DIR)/$(TARGET).json $(KEYBOARD_PATH_3)/info.json | ex -sc 'wq!$(BUILD_DIR)/$(TARGET).json' /dev/stdin; \ + fi + if [ -f $(KEYBOARD_PATH_2)/info.json ]; then \ + jq -s '.[0] * .[1]' $(BUILD_DIR)/$(TARGET).json $(KEYBOARD_PATH_2)/info.json | ex -sc 'wq!$(BUILD_DIR)/$(TARGET).json' /dev/stdin; \ + fi + if [ -f $(KEYBOARD_PATH_1)/info.json ]; then \ + jq -s '.[0] * .[1]' $(BUILD_DIR)/$(TARGET).json $(KEYBOARD_PATH_1)/info.json | ex -sc 'wq!$(BUILD_DIR)/$(TARGET).json' /dev/stdin; \ + fi + zip $(TARGET).qmk -urj $(BUILD_DIR)/$(TARGET).json + printf "@ $(TARGET).json\n@=info.json\n" | zipnote -w $(TARGET).qmk + # Program the device. program: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep $(PROGRAM_CMD) @@ -145,23 +169,30 @@ dfu-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep $(DFU_PROGRAMMER) $(MCU) reset avrdude: $(BUILD_DIR)/$(TARGET).hex - ls /dev/tty* > /tmp/1; \ - echo "Detecting Pro Micro port, reset your Pro Micro now.\c"; \ - while [ -z $$USB ]; do \ - sleep 1; \ - echo ".\c"; \ - ls /dev/tty* > /tmp/2; \ - USB=`diff /tmp/1 /tmp/2 | grep -o '/dev/tty.*'`; \ - done; \ - echo ""; \ - echo "Detected Pro Micro port at $$USB"; \ - sleep 1; \ - avrdude -p $(MCU) -c avr109 -P $$USB -U flash:w:$(BUILD_DIR)/$(TARGET).hex + if grep -q -s Microsoft /proc/version; then \ + echo 'ERROR: AVR flashing cannot be automated within the Windows Subsystem for Linux (WSL) currently. Instead, take the .hex file generated and flash it using AVRDUDE, AVRDUDESS, or XLoader.'; \ + else \ + ls /dev/tty* > /tmp/1; \ + echo "Detecting USB port, reset your controller now.\c"; \ + while [ -z $$USB ]; do \ + sleep 1; \ + echo ".\c"; \ + ls /dev/tty* > /tmp/2; \ + USB=`diff /tmp/1 /tmp/2 | grep -o '/dev/tty.*'`; \ + done; \ + echo ""; \ + echo "Detected controller on USB port at $$USB"; \ + sleep 1; \ + avrdude -p $(MCU) -c avr109 -P $$USB -U flash:w:$(BUILD_DIR)/$(TARGET).hex; \ + fi # Convert hex to bin. -flashbin: $(BUILD_DIR)/$(TARGET).hex +bin: $(BUILD_DIR)/$(TARGET).hex $(OBJCOPY) -Iihex -Obinary $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin $(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin; + +# copy bin to FLASH.bin +flashbin: bin $(COPY) $(BUILD_DIR)/$(TARGET).bin FLASH.bin; # Generate avr-gdb config/init file which does the following: