|
@@ -5,8 +5,9 @@ endif
|
|
|
.DEFAULT_GOAL := all
|
|
|
|
|
|
space := $(subst ,, )
|
|
|
-starting_makefile := $(subst $(space),_SPACE_,$(abspath $(firstword $(MAKEFILE_LIST))))
|
|
|
-mkfile_path := $(subst $(space),_SPACE_,$(abspath $(lastword $(MAKEFILE_LIST))))
|
|
|
+ESCAPED_ABS_PATH = $(subst $(space),_SPACE_,$(abspath $1))
|
|
|
+starting_makefile := $(call ESCAPED_ABS_PATH,$(firstword $(MAKEFILE_LIST)))
|
|
|
+mkfile_path := $(call ESCAPED_ABS_PATH,$(lastword $(MAKEFILE_LIST))))
|
|
|
abs_tmk_root := $(patsubst %/,%,$(dir $(mkfile_path)))
|
|
|
|
|
|
ifneq (,$(findstring /keyboards/,$(starting_makefile)))
|
|
@@ -83,10 +84,8 @@ endif
|
|
|
|
|
|
ifneq ("$(wildcard $(KEYBOARD_PATH)/$(KEYBOARD).c)","")
|
|
|
KEYBOARD_FILE = keyboards/$(KEYBOARD)/$(KEYBOARD).c
|
|
|
- ifndef ARCH
|
|
|
- ifneq ("$(wildcard $(KEYBOARD_PATH)/Makefile)","")
|
|
|
- include $(KEYBOARD_PATH)/Makefile
|
|
|
- endif
|
|
|
+ ifneq ($(call ESCAPED_ABS_PATH,$(KEYBOARD_PATH)/Makefile),$(starting_makefile))
|
|
|
+ -include $(KEYBOARD_PATH)/Makefile
|
|
|
endif
|
|
|
else
|
|
|
$(error "$(KEYBOARD_PATH)/$(KEYBOARD).c" does not exist)
|
|
@@ -101,7 +100,9 @@ ifdef SUBPROJECT
|
|
|
ifneq ("$(wildcard $(SUBPROJECT_PATH)/$(SUBPROJECT).c)","")
|
|
|
OPT_DEFS += -DSUBPROJECT_$(SUBPROJECT)
|
|
|
SUBPROJECT_FILE = keyboards/$(KEYBOARD)/$(SUBPROJECT)/$(SUBPROJECT).c
|
|
|
- -include $(SUBPROJECT_PATH)/Makefile
|
|
|
+ ifneq ($(call ESCAPED_ABS_PATH,$(SUBPROJECT_PATH)/Makefile),$(starting_makefile))
|
|
|
+ -include $(SUBPROJECT_PATH)/Makefile
|
|
|
+ endif
|
|
|
else
|
|
|
$(error "$(SUBPROJECT_PATH)/$(SUBPROJECT).c" does not exist)
|
|
|
endif
|
|
@@ -119,14 +120,18 @@ endif
|
|
|
KEYMAP_PATH = $(KEYBOARD_PATH)/keymaps/$(KEYMAP)
|
|
|
ifneq ("$(wildcard $(KEYMAP_PATH)/keymap.c)","")
|
|
|
KEYMAP_FILE = keyboards/$(KEYBOARD)/keymaps/$(KEYMAP)/keymap.c
|
|
|
- -include $(KEYMAP_PATH)/Makefile
|
|
|
+ ifneq ($(call ESCAPED_ABS_PATH,$(KEYMAP_PATH)/Makefile),$(starting_makefile))
|
|
|
+ -include $(KEYMAP_PATH)/Makefile
|
|
|
+ endif
|
|
|
else
|
|
|
ifeq ("$(wildcard $(SUBPROJECT_PATH)/keymaps/$(KEYMAP)/keymap.c)","")
|
|
|
$(error "$(KEYMAP_PATH)/keymap.c" does not exist)
|
|
|
else
|
|
|
KEYMAP_PATH = $(SUBPROJECT_PATH)/keymaps/$(KEYMAP)
|
|
|
KEYMAP_FILE = keyboards/$(KEYBOARD)/$(SUBPROJECT)/keymaps/$(KEYMAP)/keymap.c
|
|
|
- -include $(KEYMAP_PATH)/Makefile
|
|
|
+ ifneq ($(call ESCAPED_ABS_PATH,$(KEYMAP_PATH)/Makefile),$(starting_makefile))
|
|
|
+ -include $(KEYMAP_PATH)/Makefile
|
|
|
+ endif
|
|
|
endif
|
|
|
endif
|
|
|
|