diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 17 |
1 files changed, 15 insertions, 2 deletions
@@ -12,6 +12,8 @@ STARTING_DIR := $(subst $(ABS_ROOT_DIR),,$(ABS_STARTING_DIR)) | |||
12 | 12 | ||
13 | PATH_ELEMENTS := $(subst /, ,$(STARTING_DIR)) | 13 | PATH_ELEMENTS := $(subst /, ,$(STARTING_DIR)) |
14 | 14 | ||
15 | QUANTUM_DIR:=$(ROOT_DIR)/quantum | ||
16 | |||
15 | define NEXT_PATH_ELEMENT | 17 | define NEXT_PATH_ELEMENT |
16 | $$(eval CURRENT_PATH_ELEMENT := $$(firstword $$(PATH_ELEMENTS))) | 18 | $$(eval CURRENT_PATH_ELEMENT := $$(firstword $$(PATH_ELEMENTS))) |
17 | $$(eval PATH_ELEMENTS := $$(wordlist 2,9999,$$(PATH_ELEMENTS))) | 19 | $$(eval PATH_ELEMENTS := $$(wordlist 2,9999,$$(PATH_ELEMENTS))) |
@@ -111,8 +113,14 @@ define PARSE_KEYBOARD | |||
111 | SUBPROJECTS := $$(notdir $$(patsubst %/Makefile,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/*/Makefile))) | 113 | SUBPROJECTS := $$(notdir $$(patsubst %/Makefile,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/*/Makefile))) |
112 | ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allsp),true) | 114 | ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allsp),true) |
113 | $$(eval $$(call PARSE_ALL_SUBPROJECTS)) | 115 | $$(eval $$(call PARSE_ALL_SUBPROJECTS)) |
116 | else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,defaultsp),true) | ||
117 | $$(eval $$(call PARSE_SUBPROJECT,defaultsp)) | ||
114 | else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(SUBPROJECTS)),true) | 118 | else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(SUBPROJECTS)),true) |
115 | $$(eval $$(call PARSE_SUBPROJECT,$$(MATCHED_ITEM))) | 119 | $$(eval $$(call PARSE_SUBPROJECT,$$(MATCHED_ITEM))) |
120 | else | ||
121 | # If there's no matching subproject, we assume it's the default | ||
122 | # This will allow you to leave the subproject part of the target out | ||
123 | $$(eval $$(call PARSE_SUBPROJECT,defaultsp)) | ||
116 | endif | 124 | endif |
117 | endef | 125 | endef |
118 | 126 | ||
@@ -122,7 +130,12 @@ endef | |||
122 | 130 | ||
123 | # $1 Subproject | 131 | # $1 Subproject |
124 | define PARSE_SUBPROJECT | 132 | define PARSE_SUBPROJECT |
125 | CURRENT_SP := $1 | 133 | ifeq ($1,defaultsp) |
134 | $$(eval include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/Makefile) | ||
135 | CURRENT_SP := $$(SUBPROJECT_DEFAULT) | ||
136 | else | ||
137 | CURRENT_SP := $1 | ||
138 | endif | ||
126 | KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/keymaps/*/.))) | 139 | KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/keymaps/*/.))) |
127 | ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allkm),true) | 140 | ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allkm),true) |
128 | $$(eval $$(call PARSE_ALL_KEYMAPS)) | 141 | $$(eval $$(call PARSE_ALL_KEYMAPS)) |
@@ -133,7 +146,7 @@ endef | |||
133 | 146 | ||
134 | define PARSE_ALL_SUBPROJECTS | 147 | define PARSE_ALL_SUBPROJECTS |
135 | ifeq ($$(SUBPROJECTS),) | 148 | ifeq ($$(SUBPROJECTS),) |
136 | $$(eval $$(call PARSE_SUBPROJECT,)) | 149 | $$(eval $$(call PARSE_SUBPROJECT,defaultsp)) |
137 | else | 150 | else |
138 | $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$$(SUBPROJECTS))) | 151 | $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$$(SUBPROJECTS))) |
139 | endif | 152 | endif |