60 lines
2.2 KiB
Makefile
60 lines
2.2 KiB
Makefile
MDLOADER_VERSION := 1.0.6
|
|
QMK_FIRMWARE_COMMIT := af9c4d93ee
|
|
|
|
EXECUTION_DATE := $(shell date +%FT%T%Z)
|
|
TARGET_LAYOUTS := $(wildcard layout/*)
|
|
|
|
BUILD_TARGET_LAYOUTS := $(addsuffix .bin, $(addprefix builds/, $(notdir $(TARGET_LAYOUTS))))
|
|
|
|
WRITE_TARGET?=undefined-target
|
|
|
|
UNAME_S := $(shell uname -s)
|
|
|
|
.DEFAULT_GOAL := help
|
|
|
|
.PHONY: help
|
|
help:
|
|
@printf "\033[33mUsage:\033[0m\n make [target] [arg=\"val\"...]\n\n\033[33mTargets:\033[0m\n"
|
|
@grep -E '^[-a-zA-Z0-9_\.\/]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[32m%-15s\033[0m %s\n", $$1, $$2}'
|
|
|
|
.PHONY: update
|
|
update: qmk_firmware ## Update qmk_firmware
|
|
@git -C qmk_firmware fetch
|
|
@git -C qmk_firmware checkout $(QMK_FIRMWARE_COMMIT)
|
|
$(MAKE) qmk_firmware/patches_applied
|
|
|
|
.PHONY: write
|
|
write: mdloader builds/$(WRITE_TARGET).bin ## Write a layout to the keyboard, pass WRITE_TARGET as variable to control the particular layout
|
|
@./mdloader --first --download builds/$(WRITE_TARGET).bin --restart
|
|
|
|
### Internal targets
|
|
|
|
qmk_firmware/.git/HEAD: qmk_firmware
|
|
|
|
qmk_firmware:
|
|
@git clone https://github.com/Massdrop/qmk_firmware.git qmk_firmware
|
|
@git -C qmk_firmware checkout $(QMK_FIRMWARE_COMMIT)
|
|
$(MAKE) qmk_firmware/patches_applied
|
|
|
|
qmk_firmware/patches_applied: qmk_patches.diff qmk_firmware/.git/HEAD
|
|
@git -C qmk_firmware clean -dffx 2>/dev/null || true
|
|
@git -C qmk_firmware reset --hard HEAD
|
|
@git -C qmk_firmware apply ../qmk_patches.diff
|
|
@touch qmk_firmware/patches_applied
|
|
|
|
mdloader.zip:
|
|
ifeq ($(UNAME_S),Linux)
|
|
@curl -Ls -o mdloader.zip https://github.com/Massdrop/mdloader/releases/download/$(MDLOADER_VERSION)/mdloader-Linux.zip
|
|
endif
|
|
ifeq ($(UNAME_S),Darwin)
|
|
@curl -Ls -o mdloader.zip https://github.com/Massdrop/mdloader/releases/download/$(MDLOADER_VERSION)/mdloader-macOS.zip
|
|
endif
|
|
|
|
mdloader: mdloader.zip
|
|
@unzip mdloader.zip
|
|
@[ -e mdloader ] && touch mdloader
|
|
|
|
builds/%.bin: qmk_firmware/.git/HEAD qmk_firmware/patches_applied layout/%/* | qmk_firmware
|
|
@docker run -it --rm -v $$(pwd)/qmk_firmware:/qmk_firmware -v $$(pwd)/layout:/qmk_firmware/keyboards/massdrop/shift/keymaps -w /qmk_firmware qmkfm/base_container:latest ./bin/qmk compile --keyboard massdrop/shift --keymap $(@:builds/%.bin=%)
|
|
@mv qmk_firmware/massdrop_shift_$(@:builds/%.bin=%).bin $@
|