summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorNick Brassel <nick@tzarc.org>2023-11-28 07:53:43 +1100
committerGitHub <noreply@github.com>2023-11-28 07:53:43 +1100
commit5501e804ff8d41ce656061b91896c4ac8c681d78 (patch)
tree6a655fbceaeab67cf727dbe4318721407dd31824 /Makefile
parent094357c40347e8a5db36578851f1af34a92e9f68 (diff)
QMK Userspace (#22222)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile30
1 files changed, 28 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 9ef406e420..ab30a17f58 100644
--- a/Makefile
+++ b/Makefile
@@ -38,6 +38,11 @@ $(info QMK Firmware $(QMK_VERSION))
38endif 38endif
39endif 39endif
40 40
41# Try to determine userspace from qmk config, if set.
42ifeq ($(QMK_USERSPACE),)
43 QMK_USERSPACE = $(shell qmk config -ro user.overlay_dir | cut -d= -f2 | sed -e 's@^None$$@@g')
44endif
45
41# Determine which qmk cli to use 46# Determine which qmk cli to use
42QMK_BIN := qmk 47QMK_BIN := qmk
43 48
@@ -191,9 +196,20 @@ define PARSE_KEYBOARD
191 KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.))) 196 KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.)))
192 KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.))) 197 KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.)))
193 198
199 ifneq ($(QMK_USERSPACE),)
200 KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/keymaps/*/.)))
201 KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/keymaps/*/.)))
202 KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.)))
203 KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.)))
204 KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.)))
205 endif
206
194 KEYBOARD_LAYOUTS := $(shell $(QMK_BIN) list-layouts --keyboard $1) 207 KEYBOARD_LAYOUTS := $(shell $(QMK_BIN) list-layouts --keyboard $1)
195 LAYOUT_KEYMAPS := 208 LAYOUT_KEYMAPS :=
196 $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.))))) 209 $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.)))))
210 ifneq ($(QMK_USERSPACE),)
211 $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/layouts/$$(LAYOUT)/*/.)))))
212 endif
197 213
198 KEYMAPS := $$(sort $$(KEYMAPS) $$(LAYOUT_KEYMAPS)) 214 KEYMAPS := $$(sort $$(KEYMAPS) $$(LAYOUT_KEYMAPS))
199 215
@@ -431,8 +447,18 @@ clean:
431 rm -rf $(BUILD_DIR) 447 rm -rf $(BUILD_DIR)
432 echo 'done.' 448 echo 'done.'
433 449
434.PHONY: distclean 450.PHONY: distclean distclean_qmk
435distclean: clean 451distclean: distclean_qmk
452distclean_qmk: clean
436 echo -n 'Deleting *.bin, *.hex, and *.uf2 ... ' 453 echo -n 'Deleting *.bin, *.hex, and *.uf2 ... '
437 rm -f *.bin *.hex *.uf2 454 rm -f *.bin *.hex *.uf2
438 echo 'done.' 455 echo 'done.'
456
457ifneq ($(QMK_USERSPACE),)
458.PHONY: distclean_userspace
459distclean: distclean_userspace
460distclean_userspace: clean
461 echo -n 'Deleting userspace *.bin, *.hex, and *.uf2 ... '
462 rm -f $(QMK_USERSPACE)/*.bin $(QMK_USERSPACE)/*.hex $(QMK_USERSPACE)/*.uf2
463 echo 'done.'
464endif