-
Notifications
You must be signed in to change notification settings - Fork 10
/
Makefile
49 lines (41 loc) · 1.4 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
board=nice_nano
shield=cradio
zmk_config=${HOME}/zmk-config
zmk=${zmk_config}/zmk
zmk_image=zmkfirmware/zmk-dev-arm:2.4
build=${zmk}/build
bootloader=/media/${USER}/NICENANO
define do_build
mkdir -pv "${build}/${shield}_$(1)"
cd "${zmk}/app" && \
west build --pristine -d "${build}/${shield}_$(1)" -b "${board}" \
-- -DSHIELD="${shield}_$(1)" -DZMK_CONFIG="${zmk_config}/config"
endef
define do_flash
@ printf "\nWaiting for $(1) ${board} bootloader to appear at ${bootloader} ."
@ while [ ! -f "${bootloader}/current.uf2" ]; do sleep 1; printf "."; done
@ printf "\n";
cp -av "${build}/${shield}_$(1)/zephyr/zmk.uf2" "${bootloader}/"
endef
.PHONY: build flash clean
zmk:
# Get ZMK codebase:
git clone https://github.com/zmkfirmware/zmk ${zmk}
# Apply patches:
git -C ${zmk} remote add -ft macros okke-formsa https://github.com/okke-formsma/zmk
git -C ${zmk} remote add -ft cradio-v2 davidphilipbarr https://github.com/davidphilipbarr/zmk
git -C ${zmk} merge davidphilipbarr/cradio-v2 --no-edit --no-gpg-sign
git -C ${zmk} merge okke-formsa/macros --no-edit --no-gpg-sign
# Set up workspace:
docker run --rm --userns=host --user=$(shell id -u) \
--workdir="/zmk" --volume="${zmk}:/zmk" "${zmk_image}" \
sh -c 'west init -l app; west update'
build: zmk
$(call do_build,left)
$(call do_build,right)
flash-left:
$(call do_flash,left)
flash-right:
$(call do_flash,right)
clean:
rm -rf ${build} ${zmk}