massdrop-shift-qmk-compiler/Makefile
2022-05-03 23:08:04 +02:00

49 lines
1.8 KiB
Makefile

MDLOADER_VERSION := 1.0.6
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
.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 qmk_firmware/patches_applied ## Update qmk_firmware
@git -C qmk_firmware pull
.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
$(MAKE) qmk_firmware/patches_applied
qmk_firmware/patches_applied: qmk_patches.diff
@sudo git -C qmk_firmware clean -dffx
@git -C qmk_firmware reset --hard HEAD
@git -C qmk_firmware apply ../qmk_patches.diff
@touch qmk_firmware/patches_applied
mdloader-Linux.zip:
@curl -LOs https://github.com/Massdrop/mdloader/releases/download/$(MDLOADER_VERSION)/mdloader-Linux.zip
mdloader: mdloader-Linux.zip
@unzip mdloader-Linux.zip
@[ -e mdloader ] && touch mdloader
builds/%.bin: qmk_firmware/.git/HEAD | 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 $@