X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Makefile;h=f79244951cad59271544440a8992009aab450a9d;hb=927ef813638953a0d69692f4d21500f1da25b1f4;hp=ebad723bee888f16e0e4b5083fa28aa6bde713f3;hpb=81d7e7d4c8b99e032ce9423da56dba46f8bce18f;p=qmk_firmware.git diff --git a/Makefile b/Makefile index ebad723be..f79244951 100644 --- a/Makefile +++ b/Makefile @@ -314,11 +314,21 @@ define PARSE_SUBPROJECT ifneq ($$(CURRENT_SP),allsp) # get a list of all keymaps KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/keymaps/*/.))) + LAYOUTS := + $$(eval -include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/rules.mk) + KEYBOARD_LAYOUTS := $$(LAYOUTS) ifneq ($$(CURRENT_SP),) # if the subproject is defined, then also look for keymaps inside the subproject folder SP_KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/$$(CURRENT_SP)/keymaps/*/.))) KEYMAPS := $$(sort $$(KEYMAPS) $$(SP_KEYMAPS)) + # $$(eval -include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/$$(CURRENT_SP)/rules.mk) + # KEYBOARD_LAYOUTS := $$(sort $$(KEYBOARD_LAYOUTS) $$(LAYOUTS)) endif + + LAYOUT_KEYMAPS := + $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.))))) + + KEYMAPS := $$(sort $$(KEYMAPS) $$(LAYOUT_KEYMAPS)) # if the rule after removing the start of it is empty (we haven't specified a kemap or target) # compile all the keymaps ifeq ($$(RULE),) @@ -504,6 +514,9 @@ $(SUBPROJECTS): %: %-allkm cmp $(ROOT_DIR)/Makefile $(ROOT_DIR)/Makefile >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi; # Check if the submodules are dirty, and display a warning if they are ifndef SKIP_GIT + if [ ! -e lib/chibios ]; then git submodule sync lib/chibios && git submodule update --init lib/chibios; fi + if [ ! -e lib/chibios-contrib ]; then git submodule sync lib/chibios-contrib && git submodule update --init lib/chibios-contrib; fi + if [ ! -e lib/ugfx ]; then git submodule sync lib/ugfx && git submodule update --init lib/ugfx; fi git submodule status --recursive 2>/dev/null | \ while IFS= read -r x; do \ case "$$x" in \ @@ -541,6 +554,14 @@ test: test-all .PHONY: test-clean test-clean: test-all-clean +lib/%: + git submodule sync $? + git submodule update --init $? + +git-submodule: + git submodule sync --recursive + git submodule update --init --recursive + ifdef SKIP_VERSION SKIP_GIT := yes endif