Переглянути джерело

Make arguments redo, subproject elimination (#1784)

* redo make args to use colons, better folder structuring system [skip ci]

* don't put spaces after statements - hard lessons in makefile development

* fix-up some other rules.mk

* give travis a chance

* reset KEYMAPS variable

* start converting keyboards to new system

* try making all with travis

* redo make args to use colons, better folder structuring system [skip ci]

* don't put spaces after statements - hard lessons in makefile development

* fix-up some other rules.mk

* give travis a chance

* reset KEYMAPS variable

* start converting keyboards to new system

* try making all with travis

* start to update readmes and keyboards

* look in keyboard directories for board.mk

* update visualizer rules

* fix up some other keyboards/keymaps

* fix arm board ld includes

* fix board rules

* fix up remaining keyboards

* reset layout variable

* reset keyboard_layouts

* fix remainging keymaps/boards

* update readmes, docs

* add note to makefile error

* update readmes

* remove planck keymap warnings

* update references and docs

* test out tarvis build stages

* don't use stages for now

* don't use stages for now
pjones-keymap
Jack Humbert 1 рік тому
джерело
коміт
800ec55dfc
100 змінених файлів з 509 додано та 603 видалено
  1. 1
    1
      .travis.yml
  2. 182
    178
      Makefile
  3. 1
    0
      autocomplete.sh
  4. 138
    68
      build_keyboard.mk
  5. 4
    0
      common_features.mk
  6. 3
    3
      docs/README.md
  7. 1
    1
      docs/adding_a_keyboard_to_qmk.md
  8. 7
    11
      docs/config_options.md
  9. 3
    3
      docs/contributing.md
  10. 1
    1
      docs/documentation_templates.md
  11. 1
    1
      docs/faq_build.md
  12. 7
    8
      docs/feature_layouts.md
  13. 2
    2
      docs/getting_started_build_tools.md
  14. 13
    14
      docs/getting_started_make_guide.md
  15. 1
    1
      docs/hand_wire.md
  16. 1
    1
      docs/unit_testing.md
  17. 1
    1
      keyboards/9key/readme.md
  18. 3
    3
      keyboards/alps64/readme.md
  19. 9
    30
      keyboards/amj40/readme.md
  20. 1
    1
      keyboards/amj60/readme.md
  21. 1
    1
      keyboards/amjpad/readme.md
  22. 3
    21
      keyboards/atomic/keymaps/pvc/config.h
  23. 3
    3
      keyboards/atomic/readme.md
  24. 1
    1
      keyboards/atreus/keymaps/dvorak_42_key/README.md
  25. 1
    1
      keyboards/atreus/keymaps/dvorak_42_key/keymap.c
  26. 3
    3
      keyboards/atreus/readme.md
  27. 3
    3
      keyboards/atreus62/readme.md
  28. 9
    23
      keyboards/bananasplit/README.md
  29. 3
    3
      keyboards/bantam44/readme.md
  30. 2
    2
      keyboards/chibios_test/boards/GENERIC_STM32_F103/board.mk
  31. 3
    1
      keyboards/chibios_test/rules.mk
  32. 0
    1
      keyboards/chibios_test/subproject.mk
  33. 0
    3
      keyboards/clueboard_17/Makefile
  34. 1
    1
      keyboards/clueboard_17/readme.md
  35. 2
    2
      keyboards/clueboard_60/boards/GENERIC_STM32_F303XC/board.mk
  36. 1
    1
      keyboards/clueboard_60/readme.md
  37. 0
    5
      keyboards/clueboard_66/Makefile
  38. 5
    5
      keyboards/clueboard_66/clueboard_66.h
  39. 0
    11
      keyboards/clueboard_66/config.h
  40. 1
    1
      keyboards/clueboard_66/readme.md
  41. 0
    3
      keyboards/clueboard_66/rev1/Makefile
  42. 1
    1
      keyboards/clueboard_66/rev1/config.h
  43. 0
    3
      keyboards/clueboard_66/rev2/Makefile
  44. 1
    1
      keyboards/clueboard_66/rev2/config.h
  45. 1
    1
      keyboards/clueboard_66/rev2/rev2.h
  46. 1
    1
      keyboards/clueboard_66/rev3/config.h
  47. 1
    1
      keyboards/clueboard_66/rev3/rev3.h
  48. 2
    0
      keyboards/clueboard_66/rules.mk
  49. 0
    1
      keyboards/clueboard_66/subproject.mk
  50. 1
    1
      keyboards/cluecard/readme.md
  51. 0
    1
      keyboards/converter/converter.c
  52. 0
    1
      keyboards/converter/converter.h
  53. 0
    0
      keyboards/converter/rules.mk
  54. 1
    1
      keyboards/converter/usb_usb/README.md
  55. 14
    15
      keyboards/converter/usb_usb/rules.mk
  56. 0
    6
      keyboards/deltasplit75/config.h
  57. 1
    6
      keyboards/deltasplit75/deltasplit75.h
  58. 1
    1
      keyboards/deltasplit75/readme.md
  59. 17
    15
      keyboards/deltasplit75/rules.mk
  60. 0
    1
      keyboards/deltasplit75/subproject.mk
  61. 2
    2
      keyboards/deltasplit75/v2/config.h
  62. 1
    5
      keyboards/deltasplit75/v2/rules.mk
  63. 1
    1
      keyboards/dk60/readme.md
  64. 1
    1
      keyboards/dz60/readme.md
  65. 2
    2
      keyboards/eco/eco.h
  66. 1
    1
      keyboards/eco/readme.md
  67. 2
    0
      keyboards/eco/rules.mk
  68. 0
    1
      keyboards/eco/subproject.mk
  69. 1
    1
      keyboards/ergodone/readme.md
  70. 1
    1
      keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c
  71. 1
    1
      keyboards/ergodox_ez/keymaps/dvorak_42_key/README.md
  72. 1
    1
      keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c
  73. 1
    1
      keyboards/ergodox_infinity/keymaps/rask/README.md
  74. 3
    3
      keyboards/ergodox_infinity/readme.md
  75. 1
    1
      keyboards/felix/readme.md
  76. 1
    1
      keyboards/four_banger/readme.md
  77. 3
    3
      keyboards/frosty_flake/readme.md
  78. 2
    2
      keyboards/gh60/keymaps/dbroqua/config.h
  79. 2
    2
      keyboards/gh60/keymaps/robotmaxtron/config.h
  80. 1
    1
      keyboards/gh60/readme.md
  81. 1
    1
      keyboards/gherkin/README.md
  82. 1
    1
      keyboards/gonnerd/readme.md
  83. 0
    66
      keyboards/hadron/out.txt
  84. 1
    0
      keyboards/hadron/rules.mk
  85. 0
    1
      keyboards/hadron/subproject.mk
  86. 0
    1
      keyboards/handwired/handwired.c
  87. 0
    1
      keyboards/handwired/handwired.h
  88. 1
    1
      keyboards/handwired/kbod/readme.md
  89. 1
    1
      keyboards/handwired/magicforce61/README.md
  90. 0
    0
      keyboards/handwired/rules.mk
  91. 0
    7
      keyboards/handwired/traveller/rules.mk
  92. 2
    2
      keyboards/hhkb/keymaps/blakedietz/README.md
  93. 1
    1
      keyboards/hhkb/readme.md
  94. 1
    1
      keyboards/infinity60/readme.md
  95. 2
    2
      keyboards/jc65/readme.md
  96. 1
    1
      keyboards/jd40/readme.md
  97. 2
    2
      keyboards/jd45/config.h
  98. 2
    2
      keyboards/jd45/keymaps/mjt/config.h
  99. 1
    1
      keyboards/jd45/readme.md
  100. 0
    0
      keyboards/jj40/README.md

+ 1
- 1
.travis.yml Переглянути файл

@@ -18,7 +18,7 @@ install:
18 18
 before_script:
19 19
   - avr-gcc --version
20 20
 script:
21
-- make test AUTOGEN=false
21
+- make test:all AUTOGEN=false
22 22
 - bash util/travis_build.sh
23 23
 addons:
24 24
   apt:

+ 182
- 178
Makefile Переглянути файл

@@ -21,7 +21,7 @@ override SILENT := false
21 21
 
22 22
 QMK_VERSION := $(shell git describe --abbrev=0 --tags 2>/dev/null)
23 23
 ifneq ($(QMK_VERSION),)
24
-$(info QMK Firmware v$(QMK_VERSION))
24
+$(info QMK Firmware $(QMK_VERSION))
25 25
 endif
26 26
 
27 27
 ON_ERROR := error_occurred=1
@@ -65,80 +65,86 @@ $(eval $(call NEXT_PATH_ELEMENT))
65 65
 # It's really a very simple if else chain, if you squint enough,
66 66
 # but the makefile syntax makes it very verbose.
67 67
 # If we are in a subfolder of keyboards
68
-ifeq ($(CURRENT_PATH_ELEMENT),keyboards)
69
-    $(eval $(call NEXT_PATH_ELEMENT))
70
-    KEYBOARD := $(CURRENT_PATH_ELEMENT)
71
-    $(eval $(call NEXT_PATH_ELEMENT))
72
-    # If we are in a subfolder of keymaps, or in other words in a keymap
73
-    # folder
74
-    ifeq ($(CURRENT_PATH_ELEMENT),keymaps)
75
-        $(eval $(call NEXT_PATH_ELEMENT))
76
-        KEYMAP := $(CURRENT_PATH_ELEMENT)
77
-     # else if we are not in the keyboard folder itself
78
-    else ifneq ($(CURRENT_PATH_ELEMENT),)
79
-        # the we can assume it's a subproject, as no other folders
80
-        # should have make files in them
81
-        SUBPROJECT := $(CURRENT_PATH_ELEMENT)
82
-        $(eval $(call NEXT_PATH_ELEMENT))
83
-        # if we are inside a keymap folder of a subproject
84
-        ifeq ($(CURRENT_PATH_ELEMENT),keymaps)
85
-            $(eval $(call NEXT_PATH_ELEMENT))
86
-            KEYMAP := $(CURRENT_PATH_ELEMENT)
87
-        endif
88
-    endif
89
-endif
68
+# 
69
+# *** No longer needed **
70
+#
71
+# ifeq ($(CURRENT_PATH_ELEMENT),keyboards)
72
+#     $(eval $(call NEXT_PATH_ELEMENT))
73
+#     KEYBOARD := $(CURRENT_PATH_ELEMENT)
74
+#     $(eval $(call NEXT_PATH_ELEMENT))
75
+#     # If we are in a subfolder of keymaps, or in other words in a keymap
76
+#     # folder
77
+#     ifeq ($(CURRENT_PATH_ELEMENT),keymaps)
78
+#         $(eval $(call NEXT_PATH_ELEMENT))
79
+#         KEYMAP := $(CURRENT_PATH_ELEMENT)
80
+#      # else if we are not in the keyboard folder itself
81
+#     else ifneq ($(CURRENT_PATH_ELEMENT),)
82
+#         # the we can assume it's a subproject, as no other folders
83
+#         # should have make files in them
84
+#         SUBPROJECT := $(CURRENT_PATH_ELEMENT)
85
+#         $(eval $(call NEXT_PATH_ELEMENT))
86
+#         # if we are inside a keymap folder of a subproject
87
+#         ifeq ($(CURRENT_PATH_ELEMENT),keymaps)
88
+#             $(eval $(call NEXT_PATH_ELEMENT))
89
+#             KEYMAP := $(CURRENT_PATH_ELEMENT)
90
+#         endif
91
+#     endif
92
+# endif
93
+
94
+define GET_KEYBOARDS
95
+    All_RULES_MK := $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/rules.mk))
96
+    All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/rules.mk))
97
+    All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/rules.mk))
98
+    All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/*/rules.mk))
99
+
100
+    KEYMAPS_MK := $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/keymaps/*/rules.mk))
101
+    KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/keymaps/*/rules.mk))
102
+    KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/keymaps/*/rules.mk))
103
+    KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/*/keymaps/*/rules.mk))
104
+
105
+    KEYBOARDS := $$(sort $$(filter-out $$(KEYMAPS_MK), $$(All_RULES_MK)))
106
+endef
107
+
108
+$(eval $(call GET_KEYBOARDS))
90 109
 
91 110
 # Only consider folders with makefiles, to prevent errors in case there are extra folders
92
-KEYBOARDS := $(notdir $(patsubst %/rules.mk,%,$(wildcard $(ROOT_DIR)/keyboards/*/rules.mk)))
111
+#KEYBOARDS += $(patsubst $(ROOD_DIR)/keyboards/%/rules.mk,%,$(wildcard $(ROOT_DIR)/keyboards/*/*/rules.mk))
112
+
113
+list-keyboards:
114
+	echo $(KEYBOARDS)
115
+	exit 0
93 116
 
94 117
 #Compatibility with the old make variables, anything you specify directly on the command line
95 118
 # always overrides the detected folders
96 119
 ifdef keyboard
97 120
     KEYBOARD := $(keyboard)
98 121
 endif
99
-ifdef sub
100
-    SUBPROJECT := $(sub)
101
-endif
102
-ifdef subproject
103
-    SUBPROJECT := $(subproject)
104
-endif
105 122
 ifdef keymap
106 123
     KEYMAP := $(keymap)
107 124
 endif
108 125
 
109 126
 # Uncomment these for debugging
110
-#$(info Keyboard: $(KEYBOARD))
111
-#$(info Keymap: $(KEYMAP))
112
-#$(info Subproject: $(SUBPROJECT))
113
-#$(info Keyboards: $(KEYBOARDS))
127
+# $(info Keyboard: $(KEYBOARD))
128
+# $(info Keymap: $(KEYMAP))
129
+# $(info Subproject: $(SUBPROJECT))
130
+# $(info Keyboards: $(KEYBOARDS))
114 131
 
115 132
 
116 133
 # Set the default goal depending on where we are running make from
117 134
 # this handles the case where you run make without any arguments
118
-.DEFAULT_GOAL := all
135
+.DEFAULT_GOAL := all:all
119 136
 ifneq ($(KEYMAP),)
120
-    ifeq ($(SUBPROJECT),)
121
-         # Inside a keymap folder, just build the keymap, with the
122
-         # default subproject
123
-        .DEFAULT_GOAL := $(KEYBOARD)-$(KEYMAP)
124
-    else
125
-         # Inside a subproject keyamp folder, build the keymap
126
-         # for that subproject
127
-        .DEFAULT_GOAL := $(KEYBOARD)-$(SUBPROJECT)-$(KEYMAP)
128
-    endif
129
-else ifneq ($(SUBPROJECT),)
130
-     # Inside a subproject folder, build all keymaps for that subproject
131
-    .DEFAULT_GOAL := $(KEYBOARD)-$(SUBPROJECT)-allkm
137
+    .DEFAULT_GOAL := $(KEYBOARD):$(KEYMAP)
132 138
 else ifneq ($(KEYBOARD),)
133 139
      # Inside a keyboard folder, build all keymaps for all subprojects
134 140
      # Note that this is different from the old behaviour, which would
135 141
      # build only the default keymap of the default keyboard
136
-    .DEFAULT_GOAL := $(KEYBOARD)-allsp-allkm
142
+    .DEFAULT_GOAL := $(KEYBOARD):all
137 143
 endif
138 144
 
139 145
 
140 146
 # Compare the start of the RULE variable with the first argument($1)
141
-# If the rules equals $1 or starts with $1-, RULE_FOUND is set to true
147
+# If the rules equals $1 or starts with $1:, RULE_FOUND is set to true
142 148
 #     and $1 is removed from the RULE variable
143 149
 # Otherwise the RULE_FOUND variable is set to false, and RULE left as it was
144 150
 # The function is a bit tricky, since there's no built in $(startswith) function
@@ -147,10 +153,10 @@ define COMPARE_AND_REMOVE_FROM_RULE_HELPER
147 153
         RULE:=
148 154
         RULE_FOUND := true
149 155
     else
150
-        STARTDASH_REMOVED=$$(subst START$1-,,START$$(RULE))
151
-        ifneq ($$(STARTDASH_REMOVED),START$$(RULE))
156
+        STARTCOLON_REMOVED=$$(subst START$1:,,START$$(RULE))
157
+        ifneq ($$(STARTCOLON_REMOVED),START$$(RULE))
152 158
             RULE_FOUND := true
153
-            RULE := $$(STARTDASH_REMOVED)
159
+            RULE := $$(STARTCOLON_REMOVED)
154 160
         else
155 161
             RULE_FOUND := false
156 162
         endif
@@ -229,14 +235,14 @@ define PARSE_ALL_IN_LIST
229 235
 endef
230 236
 
231 237
 # The entry point for rule parsing
232
-# parses a rule in the format <keyboard>-<subproject>-<keymap>-<target>
238
+# parses a rule in the format <keyboard>:<keymap>:<target>
233 239
 # but this particular function only deals with the first <keyboard> part
234 240
 define PARSE_RULE
235 241
     RULE := $1
236 242
     COMMANDS :=
237
-    # If the rule starts with allkb, then continue the parsing from
243
+    # If the rule starts with all, then continue the parsing from
238 244
     # PARSE_ALL_KEYBOARDS
239
-    ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allkb),true)
245
+    ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true)
240 246
         $$(eval $$(call PARSE_ALL_KEYBOARDS))
241 247
     else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,test),true)
242 248
         $$(eval $$(call PARSE_TEST))
@@ -250,35 +256,106 @@ define PARSE_RULE
250 256
         $$(eval $$(call PARSE_KEYBOARD,$$(KEYBOARD)))
251 257
     else
252 258
         $$(info make: *** No rule to make target '$1'. Stop.)
253
-        # Notice the tab instead of spaces below!
254
-		exit 1
259
+        $$(info |)
260
+        $$(info |  QMK's make format recently changed to use folder locations and colons:)
261
+        $$(info |     make project_folder:keymap[:target])
262
+        $$(info |  Examples:)
263
+        $$(info |     make planck/rev4:default:dfu)
264
+        $$(info |     make planck:default)
265
+        $$(info |)
255 266
     endif
256 267
 endef
257 268
 
258 269
 # $1 = Keyboard
259
-# Parses a rule in the format <subproject>-<keymap>-<target>
270
+# Parses a rule in the format <keymap>:<target>
260 271
 # the keyboard is already known when entering this function
261 272
 define PARSE_KEYBOARD
273
+    # If we want to compile the default subproject, then we need to
274
+    # include the correct makefile to determine the actual name of it
262 275
     CURRENT_KB := $1
263
-    # A subproject is any keyboard subfolder with a makefile
264
-    SUBPROJECTS := $$(notdir $$(patsubst %/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/*/rules.mk)))
265
-    # if the rule starts with allsp, then continue with looping over all subprojects
266
-    ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allsp),true)
267
-        $$(eval $$(call PARSE_ALL_SUBPROJECTS))
268
-    # A special case for matching the defaultsp (default subproject)
269
-    else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,defaultsp),true)
270
-        $$(eval $$(call PARSE_SUBPROJECT,defaultsp))
271
-    # If the rule starts with the name of a known subproject
272
-    else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(SUBPROJECTS)),true)
273
-        $$(eval $$(call PARSE_SUBPROJECT,$$(MATCHED_ITEM)))
274
-    # Try to use the SUBPROJECT variable, which is either determined by the
275
-    # directory which invoked make, or passed as an argument to make
276
-    else ifneq ($$(SUBPROJECT),)
277
-        $$(eval $$(call PARSE_SUBPROJECT,$$(SUBPROJECT)))
278
-	# If there's no matching subproject, we assume it's the default
279
-	# This will allow you to leave the subproject part of the target out
276
+
277
+    # KEYBOARD_FOLDERS := $$(subst /, , $(CURRENT_KB))
278
+
279
+    DEFAULT_FOLDER := $$(CURRENT_KB)
280
+
281
+    # We assume that every rules.mk will contain the full default value
282
+    $$(eval include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/rules.mk)
283
+    ifneq ($$(DEFAULT_FOLDER),$$(CURRENT_KB))
284
+        $$(eval include $(ROOT_DIR)/keyboards/$$(DEFAULT_FOLDER)/rules.mk)
285
+    endif
286
+    CURRENT_KB := $$(DEFAULT_FOLDER)
287
+
288
+    # 5/4/3/2/1
289
+    KEYBOARD_FOLDER_PATH_1 := $$(CURRENT_KB)
290
+    KEYBOARD_FOLDER_PATH_2 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_1)))
291
+    KEYBOARD_FOLDER_PATH_3 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_2)))
292
+    KEYBOARD_FOLDER_PATH_4 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_3)))
293
+    KEYBOARD_FOLDER_PATH_5 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_4)))
294
+    KEYBOARD_FOLDER_1 := $$(notdir $$(KEYBOARD_FOLDER_PATH_1))
295
+    KEYBOARD_FOLDER_2 := $$(notdir $$(KEYBOARD_FOLDER_PATH_2))
296
+    KEYBOARD_FOLDER_3 := $$(notdir $$(KEYBOARD_FOLDER_PATH_3))
297
+    KEYBOARD_FOLDER_4 := $$(notdir $$(KEYBOARD_FOLDER_PATH_4))
298
+    KEYBOARD_FOLDER_5 := $$(notdir $$(KEYBOARD_FOLDER_PATH_5))
299
+
300
+    KEYMAPS :=
301
+    # get a list of all keymaps
302
+    KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/keymaps/*/.)))
303
+    KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/keymaps/*/.)))
304
+    KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.)))
305
+    KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.)))
306
+    KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.)))
307
+    KEYMAPS := $$(sort $$(filter-out $$(KEYBOARD_FOLDER_1) $$(KEYBOARD_FOLDER_2) \
308
+        $$(KEYBOARD_FOLDER_3) $$(KEYBOARD_FOLDER_4) $$(KEYBOARD_FOLDER_5), $$(KEYMAPS)))
309
+
310
+    KEYBOARD_LAYOUTS :=
311
+    ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_5)/rules.mk)","")
312
+      LAYOUTS :=
313
+      $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_5)/rules.mk)
314
+      KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
315
+    endif
316
+    ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_4)/rules.mk)","")
317
+      LAYOUTS :=
318
+      $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_4)/rules.mk)
319
+      KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
320
+    endif
321
+    ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_3)/rules.mk)","")
322
+      LAYOUTS :=
323
+      $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_3)/rules.mk)
324
+      KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
325
+    endif
326
+    ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_2)/rules.mk)","")
327
+      LAYOUTS :=
328
+      $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_2)/rules.mk)
329
+      KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
330
+    endif
331
+    ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_1)/rules.mk)","")
332
+      LAYOUTS :=
333
+      $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_1)/rules.mk)
334
+      KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
335
+    endif
336
+
337
+    LAYOUT_KEYMAPS :=
338
+    $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.)))))
339
+    
340
+    KEYMAPS := $$(sort $$(KEYMAPS) $$(LAYOUT_KEYMAPS))
341
+
342
+    # if the rule after removing the start of it is empty (we haven't specified a kemap or target)
343
+    # compile all the keymaps
344
+    ifeq ($$(RULE),)
345
+        $$(eval $$(call PARSE_ALL_KEYMAPS))
346
+    # The same if all was specified
347
+    else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true)
348
+        $$(eval $$(call PARSE_ALL_KEYMAPS))
349
+    # Try to match the specified keyamp with the list of known keymaps
350
+    else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYMAPS)),true)
351
+        $$(eval $$(call PARSE_KEYMAP,$$(MATCHED_ITEM)))
352
+    # Otherwise try to match the keymap from the current folder, or arguments to the make command
353
+    else ifneq ($$(KEYMAP),)
354
+        $$(eval $$(call PARSE_KEYMAP,$$(KEYMAP)))
355
+    # Otherwise, make all keymaps, again this is consistent with how it works without
356
+    # any arguments
280 357
     else
281
-        $$(eval $$(call PARSE_SUBPROJECT,))
358
+        $$(eval $$(call PARSE_ALL_KEYMAPS))
282 359
     endif
283 360
 endef
284 361
 
@@ -291,86 +368,19 @@ endef
291 368
 # $1 Subproject
292 369
 # When entering this, the keyboard and subproject are known, so now we need
293 370
 # to determine which keymaps are going to get compiled
294
-define PARSE_SUBPROJECT
295
-    # If we want to compile the default subproject, then we need to
296
-    # include the correct makefile to determine the actual name of it
297
-    CURRENT_SP := $1
298
-    ifeq ($$(CURRENT_SP),)
299
-        CURRENT_SP := defaultsp
300
-    endif
301
-    ifeq ($$(CURRENT_SP),defaultsp)
302
-        SUBPROJECT_DEFAULT=
303
-        ifneq ("$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/subproject.mk)","")
304
-            $$(eval include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/subproject.mk)
305
-        endif
306
-        CURRENT_SP := $$(SUBPROJECT_DEFAULT)
307
-    endif
308
-    # If current subproject is empty (the default was not defined), and we have a list of subproject
309
-    # then make all of them
310
-    ifeq ($$(CURRENT_SP),)
311
-        ifneq ($$(SUBPROJECTS),)
312
-            CURRENT_SP := allsp
313
-         endif
314
-    endif
315
-    # The special allsp is handled later
316
-    ifneq ($$(CURRENT_SP),allsp)
317
-        # get a list of all keymaps
318
-        KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/keymaps/*/.)))
319
-        LAYOUTS :=
320
-        $$(eval -include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/rules.mk)
321
-        KEYBOARD_LAYOUTS := $$(LAYOUTS)
322
-        ifneq ($$(CURRENT_SP),)
323
-            # if the subproject is defined, then also look for keymaps inside the subproject folder
324
-            SP_KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/$$(CURRENT_SP)/keymaps/*/.)))
325
-            KEYMAPS := $$(sort $$(KEYMAPS) $$(SP_KEYMAPS))
326
-	        # $$(eval -include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/$$(CURRENT_SP)/rules.mk)
327
-        	# KEYBOARD_LAYOUTS := $$(sort $$(KEYBOARD_LAYOUTS) $$(LAYOUTS))
328
-        endif
371
+# define PARSE_SUBPROJECT
329 372
 
330
-        LAYOUT_KEYMAPS :=
331
-        $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.)))))
332
-        
333
-        KEYMAPS := $$(sort $$(KEYMAPS) $$(LAYOUT_KEYMAPS))
334
-        # if the rule after removing the start of it is empty (we haven't specified a kemap or target)
335
-        # compile all the keymaps
336
-        ifeq ($$(RULE),)
337
-            $$(eval $$(call PARSE_ALL_KEYMAPS))
338
-        # The same if allkm was specified
339
-        else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allkm),true)
340
-            $$(eval $$(call PARSE_ALL_KEYMAPS))
341
-        # Try to match the specified keyamp with the list of known keymaps
342
-        else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYMAPS)),true)
343
-            $$(eval $$(call PARSE_KEYMAP,$$(MATCHED_ITEM)))
344
-        # Otherwise try to match the keymap from the current folder, or arguments to the make command
345
-        else ifneq ($$(KEYMAP),)
346
-            $$(eval $$(call PARSE_KEYMAP,$$(KEYMAP)))
347
-        # No matching keymap found, so we assume that the rest of the rule is the target
348
-        # If we haven't been able to parse out a subproject, then make all of them
349
-        # This is consistent with running make without any arguments from the keyboard
350
-        # folder
351
-        else ifeq ($1,)
352
-            $$(eval $$(call PARSE_ALL_SUBPROJECTS))
353
-        # Otherwise, make all keymaps, again this is consistent with how it works without
354
-        # any arguments
355
-        else
356
-            $$(eval $$(call PARSE_ALL_KEYMAPS))
357
-        endif
358
-    else
359
-        # As earlier mentioned when allsb is specified, we call our self recursively
360
-        # for all of the subprojects
361
-        $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$(SUBPROJECTS)))
362
-    endif
363
-endef
373
+# endef
364 374
 
365 375
 # If we want to parse all subprojects, but the keyboard doesn't have any,
366 376
 # then use defaultsp instead
367
-define PARSE_ALL_SUBPROJECTS
368
-    ifeq ($$(SUBPROJECTS),)
369
-        $$(eval $$(call PARSE_SUBPROJECT,defaultsp))
370
-    else
371
-        $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$$(SUBPROJECTS)))
372
-    endif
373
-endef
377
+# define PARSE_ALL_SUBPROJECTS
378
+#     ifeq ($$(SUBPROJECTS),)
379
+#         $$(eval $$(call PARSE_SUBPROJECT,defaultsp))
380
+#     else
381
+#         $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$$(SUBPROJECTS)))
382
+#     endif
383
+# endef
374 384
 
375 385
 # $1 Keymap
376 386
 # This is the meat of compiling a keyboard, when entering this, everything is known
@@ -380,21 +390,18 @@ endef
380 390
 define PARSE_KEYMAP
381 391
     CURRENT_KM = $1
382 392
     # The rest of the rule is the target
383
-    # Remove the leading "-" from the target, as it acts as a separator
384
-    MAKE_TARGET := $$(patsubst -%,%,$$(RULE))
393
+    # Remove the leading ":" from the target, as it acts as a separator
394
+    MAKE_TARGET := $$(patsubst :%,%,$$(RULE))
385 395
     # We need to generate an unique indentifer to append to the COMMANDS list
386
-    COMMAND := COMMAND_KEYBOARD_$$(CURRENT_KB)_SUBPROJECT_$(CURRENT_SP)_KEYMAP_$$(CURRENT_KM)
396
+    CURRENT_KB_UNDER := $$(subst /,_,$$(CURRENT_KB))
397
+    COMMAND := COMMAND_KEYBOARD_$$(CURRENT_KB_UNDER)_KEYMAP_$$(CURRENT_KM)
387 398
     # If we are compiling a keyboard without a subproject, we want to display just the name
388 399
     # of the keyboard, otherwise keyboard/subproject
389
-    ifeq ($$(CURRENT_SP),)
390
-        KB_SP := $(CURRENT_KB)
391
-    else
392
-        KB_SP := $(CURRENT_KB)/$$(CURRENT_SP)
393
-    endif
400
+    KB_SP := $$(CURRENT_KB)
394 401
     # Format it in bold
395 402
     KB_SP := $(BOLD)$$(KB_SP)$(NO_COLOR)
396 403
     # Specify the variables that we are passing forward to submake
397
-    MAKE_VARS := KEYBOARD=$$(CURRENT_KB) SUBPROJECT=$$(CURRENT_SP) KEYMAP=$$(CURRENT_KM)
404
+    MAKE_VARS := KEYBOARD=$$(CURRENT_KB) KEYMAP=$$(CURRENT_KM)
398 405
     # And the first part of the make command
399 406
     MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk $$(MAKE_TARGET)
400 407
     # The message to display
@@ -455,8 +462,8 @@ endef
455 462
 
456 463
 define PARSE_TEST
457 464
     TESTS :=
458
-    TEST_NAME := $$(firstword $$(subst -, ,$$(RULE)))
459
-    TEST_TARGET := $$(subst $$(TEST_NAME),,$$(subst $$(TEST_NAME)-,,$$(RULE)))
465
+    TEST_NAME := $$(firstword $$(subst :, ,$$(RULE)))
466
+    TEST_TARGET := $$(subst $$(TEST_NAME),,$$(subst $$(TEST_NAME):,,$$(RULE)))
460 467
     ifeq ($$(TEST_NAME),all)
461 468
         MATCHED_TESTS := $$(TEST_LIST)
462 469
     else
@@ -504,11 +511,6 @@ if [ $$error_occurred -gt 0 ]; then $(HANDLE_ERROR); fi;
504 511
 
505 512
 endef
506 513
 
507
-# Allow specifying just the subproject, in the keyboard directory, which will compile all keymaps
508
-SUBPROJECTS := $(notdir $(patsubst %/rules.mk,%,$(wildcard ./*/rules.mk)))
509
-.PHONY: $(SUBPROJECTS)
510
-$(SUBPROJECTS): %: %-allkm
511
-
512 514
 # Let's match everything, we handle all the rule parsing ourselves
513 515
 .PHONY: %
514 516
 %:
@@ -539,22 +541,24 @@ endif
539 541
 	$(foreach TEST,$(TESTS),$(RUN_TEST))
540 542
 	if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi;
541 543
 
544
+# These no longer work because of the colon system
545
+
542 546
 # All should compile everything
543
-.PHONY: all
544
-all: all-keyboards test-all
547
+# .PHONY: all
548
+# all: all-keyboards test-all
545 549
 
546 550
 # Define some shortcuts, mostly for compatibility with the old syntax
547
-.PHONY: all-keyboards
548
-all-keyboards: allkb-allsp-allkm
551
+# .PHONY: all-keyboards
552
+# all-keyboards: all\:all\:all
549 553
 
550
-.PHONY: all-keyboards-defaults
551
-all-keyboards-defaults: allkb-allsp-default
554
+# .PHONY: all-keyboards-defaults
555
+# all-keyboards-defaults: all\:default
552 556
 
553
-.PHONY: test
554
-test: test-all
557
+# .PHONY: test
558
+# test: test-all
555 559
 
556
-.PHONY: test-clean
557
-test-clean: test-all-clean
560
+# .PHONY: test-clean
561
+# test-clean: test-all-clean
558 562
 
559 563
 lib/%:
560 564
 	git submodule sync $?

+ 1
- 0
autocomplete.sh
Різницю між файлами не показано, бо вона завелика
Переглянути файл


+ 138
- 68
build_keyboard.mk Переглянути файл

@@ -6,18 +6,26 @@ endif
6 6
 
7 7
 include common.mk
8 8
 
9
-ifneq ($(SUBPROJECT),)
10
-    TARGET ?= $(KEYBOARD)_$(SUBPROJECT)_$(KEYMAP)
11
-    KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD)_$(SUBPROJECT)
12
-else
13
-    TARGET ?= $(KEYBOARD)_$(KEYMAP)
14
-    KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD)
15
-endif
9
+# 5/4/3/2/1
10
+KEYBOARD_FOLDER_PATH_1 := $(KEYBOARD)
11
+KEYBOARD_FOLDER_PATH_2 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_1)))
12
+KEYBOARD_FOLDER_PATH_3 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_2)))
13
+KEYBOARD_FOLDER_PATH_4 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_3)))
14
+KEYBOARD_FOLDER_PATH_5 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_4)))
15
+KEYBOARD_FOLDER_1 := $(notdir $(KEYBOARD_FOLDER_PATH_1))
16
+KEYBOARD_FOLDER_2 := $(notdir $(KEYBOARD_FOLDER_PATH_2))
17
+KEYBOARD_FOLDER_3 := $(notdir $(KEYBOARD_FOLDER_PATH_3))
18
+KEYBOARD_FOLDER_4 := $(notdir $(KEYBOARD_FOLDER_PATH_4))
19
+KEYBOARD_FOLDER_5 := $(notdir $(KEYBOARD_FOLDER_PATH_5))
20
+
21
+KEYBOARD_FILESAFE := $(subst /,_,$(KEYBOARD))
22
+
23
+TARGET ?= $(KEYBOARD_FILESAFE)_$(KEYMAP)
24
+KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD_FILESAFE)
16 25
 
17 26
 # Force expansion
18 27
 TARGET := $(TARGET)
19 28
 
20
-
21 29
 MASTER ?= left
22 30
 ifdef master
23 31
     MASTER = $(master)
@@ -31,28 +39,62 @@ $(error MASTER does not have a valid value(left/right))
31 39
     endif
32 40
 endif
33 41
 
34
-KEYBOARD_PATH := keyboards/$(KEYBOARD)
35
-KEYBOARD_C := $(KEYBOARD_PATH)/$(KEYBOARD).c
42
+KEYBOARD_PATHS :=
36 43
 
37
-ifneq ("$(wildcard $(KEYBOARD_C))","")
38
-    include $(KEYBOARD_PATH)/rules.mk
39
-else
40
-    $(error "$(KEYBOARD_C)" does not exist)
41
-endif
42
-OPT_DEFS += -DKEYBOARD_$(KEYBOARD)
43
-
44
-ifneq ($(SUBPROJECT),)
45
-    SUBPROJECT_PATH := keyboards/$(KEYBOARD)/$(SUBPROJECT)
46
-    SUBPROJECT_C := $(SUBPROJECT_PATH)/$(SUBPROJECT).c
47
-    ifneq ("$(wildcard $(SUBPROJECT_C))","")
48
-        OPT_DEFS += -DSUBPROJECT_$(SUBPROJECT)
49
-        include $(SUBPROJECT_PATH)/rules.mk
50
-    else
51
-        $(error "$(SUBPROJECT_PATH)/$(SUBPROJECT).c" does not exist)
52
-    endif
44
+KEYBOARD_PATH_1 := keyboards/$(KEYBOARD_FOLDER_PATH_1)
45
+KEYBOARD_PATH_2 := keyboards/$(KEYBOARD_FOLDER_PATH_2)
46
+KEYBOARD_PATH_3 := keyboards/$(KEYBOARD_FOLDER_PATH_3)
47
+KEYBOARD_PATH_4 := keyboards/$(KEYBOARD_FOLDER_PATH_4)
48
+KEYBOARD_PATH_5 := keyboards/$(KEYBOARD_FOLDER_PATH_5)
49
+
50
+ifneq ("$(wildcard $(KEYBOARD_PATH_5)/rules.mk)","")
51
+    KEYBOARD_PATHS += $(KEYBOARD_PATH_5)
52
+    include $(KEYBOARD_PATH_5)/rules.mk
53
+endif
54
+ifneq ("$(wildcard $(KEYBOARD_PATH_4)/rules.mk)","")
55
+    KEYBOARD_PATHS += $(KEYBOARD_PATH_4)
56
+    include $(KEYBOARD_PATH_4)/rules.mk
57
+endif
58
+ifneq ("$(wildcard $(KEYBOARD_PATH_3)/rules.mk)","")
59
+    KEYBOARD_PATHS += $(KEYBOARD_PATH_3)
60
+    include $(KEYBOARD_PATH_3)/rules.mk
53 61
 endif
62
+ifneq ("$(wildcard $(KEYBOARD_PATH_2)/rules.mk)","")
63
+    KEYBOARD_PATHS += $(KEYBOARD_PATH_2)
64
+    include $(KEYBOARD_PATH_2)/rules.mk
65
+endif
66
+ifneq ("$(wildcard $(KEYBOARD_PATH_1)/rules.mk)","")
67
+    KEYBOARD_PATHS += $(KEYBOARD_PATH_1)
68
+    include $(KEYBOARD_PATH_1)/rules.mk
69
+endif
70
+
71
+KEYBOARD_SRC :=
72
+
73
+KEYBOARD_C_1 := $(KEYBOARD_PATH_1)/$(KEYBOARD_FOLDER_1).c
74
+KEYBOARD_C_2 := $(KEYBOARD_PATH_2)/$(KEYBOARD_FOLDER_2).c
75
+KEYBOARD_C_3 := $(KEYBOARD_PATH_3)/$(KEYBOARD_FOLDER_3).c
76
+KEYBOARD_C_4 := $(KEYBOARD_PATH_4)/$(KEYBOARD_FOLDER_4).c
77
+KEYBOARD_C_5 := $(KEYBOARD_PATH_5)/$(KEYBOARD_FOLDER_5).c
54 78
 
55
-# We can assume a ChibiOS target When MCU_FAMILY is defined, since it's not used for LUFA
79
+ifneq ("$(wildcard $(KEYBOARD_C_5))","")
80
+    KEYBOARD_SRC += $(KEYBOARD_C_5)
81
+endif
82
+ifneq ("$(wildcard $(KEYBOARD_C_4))","")
83
+    KEYBOARD_SRC += $(KEYBOARD_C_4)
84
+endif
85
+ifneq ("$(wildcard $(KEYBOARD_C_3))","")
86
+    KEYBOARD_SRC += $(KEYBOARD_C_3)
87
+endif
88
+ifneq ("$(wildcard $(KEYBOARD_C_2))","")
89
+    KEYBOARD_SRC += $(KEYBOARD_C_2)
90
+endif
91
+ifneq ("$(wildcard $(KEYBOARD_C_1))","")
92
+    KEYBOARD_SRC += $(KEYBOARD_C_1)
93
+endif
94
+
95
+OPT_DEFS += -DKEYBOARD_$(KEYBOARD_FILESAFE)
96
+
97
+# We can assume a ChibiOS target When MCU_FAMILY is defined , since it's not used for LUFA
56 98
 ifdef MCU_FAMILY
57 99
     PLATFORM=CHIBIOS
58 100
 else
@@ -63,44 +105,80 @@ ifeq ($(PLATFORM),CHIBIOS)
63 105
     include $(TMK_PATH)/protocol/chibios.mk
64 106
     include $(TMK_PATH)/chibios.mk
65 107
     OPT_OS = chibios
66
-    ifneq ("$(wildcard $(SUBPROJECT_PATH)/bootloader_defs.h)","")
67
-        OPT_DEFS += -include $(SUBPROJECT_PATH)/bootloader_defs.h
68
-    else ifneq ("$(wildcard $(SUBPROJECT_PATH)/boards/$(BOARD)/bootloader_defs.h)","")
69
-        OPT_DEFS += -include $(SUBPROJECT_PATH)/boards/$(BOARD)/bootloader_defs.h
70
-    else ifneq ("$(wildcard $(KEYBOARD_PATH)/bootloader_defs.h)","")
71
-        OPT_DEFS += -include $(KEYBOARD_PATH)/bootloader_defs.h
72
-    else ifneq ("$(wildcard $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h)","")
73
-        OPT_DEFS += -include $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h
108
+    ifneq ("$(wildcard $(KEYBOARD_PATH_5)/bootloader_defs.h)","")
109
+        OPT_DEFS += -include $(KEYBOARD_PATH_5)/bootloader_defs.h
110
+     else ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/bootloader_defs.h)","")
111
+        OPT_DEFS += -include $(KEYBOARD_PATH_5)/boards/$(BOARD)/bootloader_defs.h
112
+    else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/bootloader_defs.h)","")
113
+        OPT_DEFS += -include $(KEYBOARD_PATH_4)/bootloader_defs.h
114
+     else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/boards/$(BOARD)/bootloader_defs.h)","")
115
+        OPT_DEFS += -include $(KEYBOARD_PATH_4)/boards/$(BOARD)/bootloader_defs.h
116
+    else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/bootloader_defs.h)","")
117
+        OPT_DEFS += -include $(KEYBOARD_PATH_3)/bootloader_defs.h
118
+     else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/boards/$(BOARD)/bootloader_defs.h)","")
119
+        OPT_DEFS += -include $(KEYBOARD_PATH_3)/boards/$(BOARD)/bootloader_defs.h
120
+    else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/bootloader_defs.h)","")
121
+        OPT_DEFS += -include $(KEYBOARD_PATH_2)/bootloader_defs.h
122
+     else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/boards/$(BOARD)/bootloader_defs.h)","")
123
+        OPT_DEFS += -include $(KEYBOARD_PATH_2)/boards/$(BOARD)/bootloader_defs.h
124
+    else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/bootloader_defs.h)","")
125
+        OPT_DEFS += -include $(KEYBOARD_PATH_1)/bootloader_defs.h
126
+     else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h)","")
127
+        OPT_DEFS += -include $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h
74 128
     endif
75 129
 endif
76 130
 
77
-CONFIG_H = $(KEYBOARD_PATH)/config.h
78
-ifneq ($(SUBPROJECT),)
79
-    ifneq ("$(wildcard $(SUBPROJECT_C))","")
80
-        CONFIG_H = $(SUBPROJECT_PATH)/config.h
81
-    endif
131
+CONFIG_H :=
132
+ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","")
133
+    CONFIG_H += $(KEYBOARD_PATH_5)/config.h
134
+endif
135
+ifneq ("$(wildcard $(KEYBOARD_PATH_4)/config.h)","")
136
+    CONFIG_H += $(KEYBOARD_PATH_4)/config.h
137
+endif
138
+ifneq ("$(wildcard $(KEYBOARD_PATH_3)/config.h)","")
139
+    CONFIG_H += $(KEYBOARD_PATH_3)/config.h
140
+endif
141
+ifneq ("$(wildcard $(KEYBOARD_PATH_2)/config.h)","")
142
+    CONFIG_H += $(KEYBOARD_PATH_2)/config.h
143
+endif
144
+ifneq ("$(wildcard $(KEYBOARD_PATH_1)/config.h)","")
145
+    CONFIG_H += $(KEYBOARD_PATH_1)/config.h
82 146
 endif
83 147
 
84 148
 # Save the defines and includes here, so we don't include any keymap specific ones
85 149
 PROJECT_DEFS := $(OPT_DEFS)
86
-PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(SUBPROJECT_PATH) $(KEYBOARD_PATH)
150
+PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS)
87 151
 PROJECT_CONFIG := $(CONFIG_H)
88 152
 
89
-MAIN_KEYMAP_PATH := $(KEYBOARD_PATH)/keymaps/$(KEYMAP)
90
-MAIN_KEYMAP_C := $(MAIN_KEYMAP_PATH)/keymap.c
91
-SUBPROJ_KEYMAP_PATH := $(SUBPROJECT_PATH)/keymaps/$(KEYMAP)
92
-SUBPROJ_KEYMAP_C := $(SUBPROJ_KEYMAP_PATH)/keymap.c
93
-ifneq ("$(wildcard $(SUBPROJ_KEYMAP_C))","")
94
-    -include $(SUBPROJ_KEYMAP_PATH)/rules.mk
95
-    KEYMAP_C := $(SUBPROJ_KEYMAP_C)
96
-    KEYMAP_PATH := $(SUBPROJ_KEYMAP_PATH)
97
-else ifneq ("$(wildcard $(MAIN_KEYMAP_C))","")
98
-    -include $(MAIN_KEYMAP_PATH)/rules.mk
99
-    KEYMAP_C := $(MAIN_KEYMAP_C)
100
-    KEYMAP_PATH := $(MAIN_KEYMAP_PATH)
153
+MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
154
+MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP)
155
+MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
156
+MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
157
+MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
158
+
159
+ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","")
160
+    -include $(MAIN_KEYMAP_PATH_5)/rules.mk
161
+    KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c
162
+    KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
163
+else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","")
164
+    -include $(MAIN_KEYMAP_PATH_4)/rules.mk
165
+    KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c
166
+    KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
167
+else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","")
168
+    -include $(MAIN_KEYMAP_PATH_3)/rules.mk
169
+    KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c
170
+    KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
171
+else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","")
172
+    -include $(MAIN_KEYMAP_PATH_2)/rules.mk
173
+    KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c
174
+    KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
175
+else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
176
+    -include $(MAIN_KEYMAP_PATH_1)/rules.mk
177
+    KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c
178
+    KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
101 179
 else ifneq ($(LAYOUTS),)
102 180
     include build_layout.mk
103
-else
181
+else 
104 182
     $(error Could not find keymap)
105 183
     # this state should never be reached
106 184
 endif
@@ -110,29 +188,21 @@ endif
110 188
 #     this an empty or blank macro!
111 189
 KEYMAP_OUTPUT := $(BUILD_DIR)/obj_$(TARGET)
112 190
 
113
-
114 191
 ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
115
-    CONFIG_H = $(KEYMAP_PATH)/config.h
192
+    CONFIG_H += $(KEYMAP_PATH)/config.h
116 193
 endif
117 194
 
118 195
 # # project specific files
119
-SRC += $(KEYBOARD_C) \
196
+SRC += $(KEYBOARD_SRC) \
120 197
     $(KEYMAP_C) \
121 198
     $(QUANTUM_SRC)
122 199
 
123
-ifneq ($(SUBPROJECT),)
124
-    SRC += $(SUBPROJECT_C)
125
-endif
126
-
127 200
 # Optimize size but this may cause error "relocation truncated to fit"
128 201
 #EXTRALDFLAGS = -Wl,--relax
129 202
 
130 203
 # Search Path
131 204
 VPATH += $(KEYMAP_PATH)
132
-ifneq ($(SUBPROJECT),)
133
-    VPATH += $(SUBPROJECT_PATH)
134
-endif
135
-VPATH += $(KEYBOARD_PATH)
205
+VPATH += $(KEYBOARD_PATHS)
136 206
 VPATH += $(COMMON_VPATH)
137 207
 
138 208
 include common_features.mk
@@ -161,15 +231,15 @@ endif
161 231
 OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT)
162 232
 $(KEYMAP_OUTPUT)_SRC := $(SRC)
163 233
 $(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) $(GFXDEFS) \
164
--DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(KEYBOARD).h\" -DQMK_KEYBOARD_CONFIG_H=\"$(KEYBOARD_PATH)/config.h\" \
234
+-DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(KEYBOARD_FOLDER_1).h\" -DQMK_KEYBOARD_CONFIG_H=\"$(KEYBOARD_PATH_1)/config.h\" \
165 235
 -DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" \
166
--DQMK_SUBPROJECT=\"$(SUBPROJECT)\" -DQMK_SUBPROJECT_H=\"$(SUBPROJECT).h\" -DQMK_SUBPROJECT_CONFIG_H=\"$(SUBPROJECT_PATH)/config.h\"
236
+-DQMK_SUBPROJECT -DQMK_SUBPROJECT_H -DQMK_SUBPROJECT_CONFIG_H
167 237
 $(KEYMAP_OUTPUT)_INC :=  $(VPATH) $(EXTRAINCDIRS)
168 238
 $(KEYMAP_OUTPUT)_CONFIG := $(CONFIG_H)
169 239
 $(KEYBOARD_OUTPUT)_SRC := $(CHIBISRC) $(GFXSRC)
170 240
 $(KEYBOARD_OUTPUT)_DEFS := $(PROJECT_DEFS) $(GFXDEFS)
171 241
 $(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC) $(GFXINC)
172
-$(KEYBOARD_OUTPUT)_CONFIG  := $(PROJECT_CONFIG)
242
+$(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG)
173 243
 
174 244
 # Default target.
175 245
 all: build sizeafter

+ 4
- 0
common_features.mk Переглянути файл

@@ -171,6 +171,10 @@ ifeq ($(strip $(TERMINAL_ENABLE)), yes)
171 171
     OPT_DEFS += -DTERMINAL_ENABLE
172 172
 endif
173 173
 
174
+ifeq ($(strip $(USB_HID_ENABLE)), yes)
175
+    include $(TMK_DIR)/protocol/usb_hid.mk
176
+endif
177
+
174 178
 QUANTUM_SRC:= \
175 179
     $(QUANTUM_DIR)/quantum.c \
176 180
     $(QUANTUM_DIR)/keymap_common.c \

+ 3
- 3
docs/README.md Переглянути файл

@@ -14,11 +14,11 @@ Otherwise, you can either download it directly ([zip](https://github.com/qmk/qmk
14 14
 
15 15
 Before you are able to compile, you'll need to [install an environment](getting_started_build_tools.md) for AVR or/and ARM development. Once that is complete, you'll use the `make` command to build a keyboard and keymap with the following notation:
16 16
 
17
-    make planck-rev4-default
17
+    make planck/rev4:default
18 18
 
19
-This would build the `rev4` revision of the `planck` with the `default` keymap. Not all keyboards have revisions (also called subprojects), in which case, it can be omitted:
19
+This would build the `rev4` revision of the `planck` with the `default` keymap. Not all keyboards have revisions (also called subprojects or folders), in which case, it can be omitted:
20 20
 
21
-    make preonic-default
21
+    make preonic:default
22 22
 
23 23
 ## How to customize {#how-to-customize}
24 24
 

+ 1
- 1
docs/adding_a_keyboard_to_qmk.md Переглянути файл

@@ -4,7 +4,7 @@ We welcome all keyboard projects into QMK, but ask that you try to stick to a co
4 4
 
5 5
 ## Naming your directory/project
6 6
 
7
-All names should be lowercase alphanumeric, and separated by an underscore (`_`), but not begin with one. Dashes (`-`) aren't allow by our build system, and will confuse it with keymaps/subprojects. Your directory and your `.h` and `.c` files should have exactly the same name. Subprojects/revision should follow the same format. 
7
+All names should be lowercase alphanumeric, and separated by an underscore (`_`), but not begin with one. Your directory and your `.h` and `.c` files should have exactly the same name. All folders should follow the same format. 
8 8
 
9 9
 ## `readme.md`
10 10
 

+ 7
- 11
docs/config_options.md Переглянути файл

@@ -12,29 +12,25 @@ This is a c header file that is one of the first things included, and will persi
12 12
 
13 13
 // config options
14 14
 
15
-#ifdef SUBPROJECT_<subproject>
16
-    #include "<subproject>/config.h"
17
-#endif
18
-
19 15
 #endif
20 16
 ```
21 17
 
22
-This file contains config options that should apply to the whole keyboard, and won't change in subprojects, or most keymaps. The suproject block here only applies to keyboards with subprojects.
18
+This file contains config options that should apply to the whole keyboard, and won't change in revisions, or most keymaps. The revision block here only applies to keyboards with revisions.
23 19
 
24
-## Subproject
20
+## Revisions
25 21
 
26 22
 ```c
27
-#ifndef <subproject>_CONFIG_H
28
-#define <subproject>_CONFIG_H
23
+#ifndef <revision>_CONFIG_H
24
+#define <revision>_CONFIG_H
29 25
 
30
-#include "../config.h"
26
+#include "config_common.h"
31 27
 
32 28
 // config options
33 29
 
34 30
 #endif
35 31
 ```
36 32
 
37
-For keyboards that have subprojects, this file contains config options that should apply to only that subproject, and won't change in most keymaps.
33
+For keyboards that have revisions, this file contains config options that should apply to only that revisions, and won't change in most keymaps.
38 34
 
39 35
 ## Keymap
40 36
 
@@ -42,7 +38,7 @@ For keyboards that have subprojects, this file contains config options that shou
42 38
 #ifndef CONFIG_USER_H
43 39
 #define CONFIG_USER_H
44 40
 
45
-#include "../../config.h"
41
+#include "config_common.h"
46 42
 
47 43
 // config options
48 44
 

+ 3
- 3
docs/contributing.md Переглянути файл

@@ -78,8 +78,8 @@ We have a few different types of changes in QMK, each requiring a different leve
78 78
 * Separate PR's into logical units. For example, do not submit one PR covering two separate features, instead submit a separate PR for each feature. 
79 79
 * Check for unnecessary whitespace with `git diff --check` before committing.
80 80
 * Make sure your code change actually compiles.
81
-  * Keymaps: Make sure that `make keyboard-revision-your_new_keymap` does not return an error
82
-  * Keyboards: Make sure that `make keyboard-all` does not return any errors
81
+  * Keymaps: Make sure that `make keyboard:your_new_keymap` does not return an error
82
+  * Keyboards: Make sure that `make keyboard:all` does not return any errors
83 83
   * Core: Make sure that `make allkb` does not return any errors.
84 84
 * Make sure commit messages are understandable on their own. You should put a short description (no more than 70 characters) on the first line, the second line should be empty, and on the 3rd and later lines you should describe your commit in detail, if required. Example:
85 85
 
@@ -128,7 +128,7 @@ Here are some things to keep in mind when working on your feature or bug fix.
128 128
 
129 129
 * **Disabled by default** - memory is a pretty limited on most chips QMK supports, and it's important that current keymaps aren't broken, so please allow your feature to be turned **on**, rather than being turned off. If you think it should be on by default, or reduces the size of the code, please talk with us about it.
130 130
 * **Compile locally before submitting** - hopefully this one is obvious, but things need to compile! Our Travis system will catch any issues, but it's generally faster for you to compile a few keyboards locally instead of waiting for the results to come back.
131
-* **Consider subprojects and different chip-bases** - there are several keyboards that have subprojects that allow for slightly different configurations, and even different chip-bases. Try to make a feature supported in ARM and AVR, or automatically disabled on platforms it doesn't work on.
131
+* **Consider revisions and different chip-bases** - there are several keyboards that have revisions that allow for slightly different configurations, and even different chip-bases. Try to make a feature supported in ARM and AVR, or automatically disabled on platforms it doesn't work on.
132 132
 * **Explain your feature** - Document it in `docs/`, either as a new file or as part of an existing file. If you don't document it other people won't be able to benefit from your hard work.
133 133
 
134 134
 We also ask that you follow these guidelines: 

+ 1
- 1
docs/documentation_templates.md Переглянути файл

@@ -34,7 +34,7 @@ Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.mass
34 34
 
35 35
 Make example for this keyboard (after setting up your build environment):
36 36
 
37
-    make planck-rev4-default
37
+    make planck/rev4:default
38 38
 
39 39
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
40 40
 ```

+ 1
- 1
docs/faq_build.md Переглянути файл

@@ -13,7 +13,7 @@ In short when your controller is ATMega32u4,
13 13
 
14 14
 or just
15 15
 
16
-    $ sudo make <keyboard>-<keymap>-dfu
16
+    $ sudo make <keyboard>:<keymap>:dfu
17 17
 
18 18
 But to run `make` with root privilege is not good idea. Use former method if possible.
19 19
 

+ 7
- 8
docs/feature_layouts.md Переглянути файл

@@ -43,15 +43,15 @@ The folder name must be added to the keyboard's `rules.mk`:
43 43
 
44 44
     LAYOUTS = 60_ansi
45 45
 
46
-`LAYOUTS` can be appended in the subproject's `rules.mk`:
46
+`LAYOUTS` can be set in any keyboard folder level's `rules.mk`:
47 47
 
48
-    LAYOUTS += 60_iso
48
+    LAYOUTS = 60_iso
49 49
 
50
-but the `LAYOUT_<layout>` variable must be defined in `<subproject>.h` as well.
50
+but the `LAYOUT_<layout>` variable must be defined in `<folder>.h` as well.
51 51
 
52 52
 ## Tips for making layouts keyboard-agnostic
53 53
 
54
-Instead of using `#include "planck.h"`, you can use this line to include whatever `<keyboard>.h` (`<subproject>.h` should not be included here) file that is being compiled:
54
+Instead of using `#include "planck.h"`, you can use this line to include whatever `<keyboard>.h` (`<folder>.h` should not be included here) file that is being compiled:
55 55
 
56 56
     #include QMK_KEYBOARD_H
57 57
 
@@ -61,17 +61,16 @@ In your config.h, you can also use this variable to include the keyboard's `conf
61 61
 
62 62
 If you want to keep some keyboard-specific code, you can use these variables to escape it with an `#ifdef` statement:
63 63
 
64
-* `KEYBOARD_<keyboard>`
65
-* `SUBPROJECT_<subproject>`
64
+* `KEYBOARD_<folder1>_<folder2>`
66 65
 
67 66
 For example:
68 67
 
69 68
 ```c
70 69
 #ifdef KEYBOARD_planck
71
-    #ifdef SUBPROJECT_rev4
70
+    #ifdef KEYBOARD_planck_rev4
72 71
         planck_rev4_function();
73 72
     #endif
74 73
 #endif
75 74
 ```
76 75
 
77
-Note that the names are lowercase and match the folder/file names for the keyboard/subproject exactly.
76
+Note that the names are lowercase and match the folder/file names for the keyboard/revision exactly.

+ 2
- 2
docs/getting_started_build_tools.md Переглянути файл

@@ -121,10 +121,10 @@ If this is a bit complex for you, Docker might be the turn-key solution you need
121 121
 # modify the keymap and keyboard assigment to compile what you want
122 122
 # defaults are ergodox/default
123 123
 
124
-docker run -e keymap=gwen -e subproject=ez -e keyboard=ergodox --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware
124
+docker run -e keymap=gwen -e keyboard=ergodox_ez --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware
125 125
 
126 126
 # On windows docker seems to have issue with VOLUME tag in Dockerfile, and $('pwd') won't print a windows compliant path, use full path instead like this
127
-docker run -e keymap=default -e subproject=ez -e keyboard=ergobox --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware
127
+docker run -e keymap=default -e keyboard=ergobox_ez --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware
128 128
 
129 129
 ```
130 130
 

+ 13
- 14
docs/getting_started_make_guide.md Переглянути файл

@@ -1,22 +1,21 @@
1 1
 # More detailed make instruction
2 2
 
3
-The full syntax of the `make` command is `<keyboard>-<subproject>-<keymap>-<target>`, where:
4
-
5
-* `<keyboard>` is the name of the keyboard, for example `planck`
6
-  * Use `allkb` to compile all keyboards
7
-* `<subproject>` is the name of the subproject (revision or sub-model of the keyboard). For example, for Planck it can be `rev3` or `rev4`.
8
-  * If the keyboard doesn't have any subprojects, it can be left out
9
-  * To compile the default subproject, you can leave it out, or specify `defaultsp`
10
-  * Use `allsp` to compile all subprojects
3
+The full syntax of the `make` command is `<keyboard_folder>:<keymap>:<target>`, where:
4
+
5
+* `<keyboard_folder>` is the path of the keyboard, for example `planck`
6
+  * Use `all` to compile all keyboards
7
+  * Specify the path to compile a revision, for example `planck/rev4` or `planck/rev3` 
8
+  * If the keyboard doesn't have any folders, it can be left out
9
+  * To compile the default folder, you can leave it out
11 10
 * `<keymap>` is the name of the keymap, for example `algernon`
12
-  * Use `allkm` to compile all keymaps
11
+  * Use `all` to compile all keymaps
13 12
 * `<target>` will be explained in more detail below.
14 13
 
15 14
 The `<target>` means the following
16 15
 * If no target is given, then it's the same as `all` below
17
-* `all` compiles as many keyboard/revision/keymap combinations as specified. For example, `make planck-rev4-default-all` will generate a single .hex, while `make planck-rev-all` will generate a hex for every keymap available to the planck.
16
+* `all` compiles as many keyboard/revision/keymap combinations as specified. For example, `make planck/rev4:default:all` will generate a single .hex, while `make planck/rev4:all` will generate a hex for every keymap available to the planck.
18 17
 * `dfu`, `teensy` or `dfu-util`, compile and upload the firmware to the keyboard. If the compilation fails, then nothing will be uploaded. The programmer to use depends on the keyboard. For most keyboards it's `dfu`, but for ChibiOS keyboards you should use `dfu-util`, and `teensy` for standard Teensys. To find out which command you should use for your keyboard, check the keyboard specific readme. 
19
- * **Note**: some operating systems need root access for these commands to work, so in that case you need to run for example `sudo make planck-rev4-default-dfu`.
18
+ * **Note**: some operating systems need root access for these commands to work, so in that case you need to run for example `sudo make planck/rev4:default:dfu`.
20 19
 * `clean`, cleans the build output folders to make sure that everything is built from scratch. Run this before normal compilation if you have some unexplainable problems.
21 20
 
22 21
 You can also add extra options at the end of the make command line, after the target
@@ -30,9 +29,9 @@ The make command itself also has some additional options, type `make --help` for
30 29
 
31 30
 Here are some examples commands
32 31
 
33
-* `make allkb-allsp-allkm` builds everything (all keyboards, all subprojects, all keymaps). Running just `make` from the `root` will also run this.
34
-* `make ergodox-infinity-algernon-clean` will clean the build output of the Ergodox Infinity keyboard. 
35
-* `make planck-rev4-default-dfu COLOR=false` builds and uploads the keymap without color output.
32
+* `make all:all` builds everything (all keyboard folders, all keymaps). Running just `make` from the `root` will also run this.
33
+* `make ergodox_infinity:algernon:clean` will clean the build output of the Ergodox Infinity keyboard. 
34
+* `make planck/rev4:default:dfu COLOR=false` builds and uploads the keymap without color output.
36 35
 
37 36
 ## `rules.mk` options
38 37
 

+ 1
- 1
docs/hand_wire.md Переглянути файл

@@ -273,7 +273,7 @@ Notice how the `k11` and `KC_NO` switched places to represent the wiring, and th
273 273
 
274 274
 ### keymaps/<variant>/default.c
275 275
 
276
-This is the actual keymap for your keyboard, and the main place you'll make changes as you perfect your layout. `default.c` is the file that gets pull by default when typing `make`, but you can make other files as well, and specify them by typing `make handwired-<keyboard>-<variant>`, which will pull `keymaps/<variant>/keymap.c`.
276
+This is the actual keymap for your keyboard, and the main place you'll make changes as you perfect your layout. `default.c` is the file that gets pull by default when typing `make`, but you can make other files as well, and specify them by typing `make handwired/<keyboard>:<variant>`, which will pull `keymaps/<variant>/keymap.c`.
277 277
 
278 278
 The basis of a keymap is its layers - by default, layer 0 is active. You can activate other layers, the highest of which will be referenced first. Let's start with our base layer.
279 279
 

+ 1
- 1
docs/unit_testing.md Переглянути файл

@@ -36,7 +36,7 @@ Note how there's several different tests, each mocking out a separate part. Also
36 36
 
37 37
 ## Running the tests
38 38
 
39
-To run all the tests in the codebase, type `make test`. You can also run test matching a substring by typing `make test-matchingsubstring` Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer.
39
+To run all the tests in the codebase, type `make test`. You can also run test matching a substring by typing `make test:matchingsubstring` Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer.
40 40
 
41 41
 ## Debugging the tests
42 42
 

+ 1
- 1
keyboards/9key/readme.md Переглянути файл

@@ -12,6 +12,6 @@ Hardware Availability: [BishopKeyboards.com](http://bishopkeyboards.com/)
12 12
 
13 13
 Make example for this keyboard (after setting up your build environment):
14 14
 
15
-    make 9key-default
15
+    make 9key:default
16 16
 
17 17
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 3
- 3
keyboards/alps64/readme.md Переглянути файл

@@ -3,12 +3,12 @@ Alps64
3 3
 
4 4
 An Alps-only 60% board designed by Hasu.
5 5
 
6
-Keyboard Maintainer: QMK Community
7
-Hardware Supported: Alps64 PCB
6
+Keyboard Maintainer: QMK Community  
7
+Hardware Supported: Alps64 PCB  
8 8
 Hardware Availability: https://geekhack.org/index.php?topic=69666.0
9 9
 
10 10
 Make example for this keyboard (after setting up your build environment):
11 11
 
12
-    make alps64-default
12
+    make alps64:default
13 13
 
14 14
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 9
- 30
keyboards/amj40/readme.md Переглянути файл

@@ -1,35 +1,14 @@
1
-AMJ40 keyboard firmware
2
-======================
3
-DIY/Assembled compact 40% keyboard.
4
-
5
-Ported by N.Hou from the original TMK firmware.
6
-
7
-*Supports both backlight LEDs as well as RGB underglow. 
8
-
9
-*For reference, the AMJ40 uses pin D3 for underglow lighting.
10
-
11
-## Quantum MK Firmware
12
-
13
-For the full Quantum feature list, see [the parent readme.md](/readme.md).
14
-
15
-## Building
16
-
17
-Download or clone the whole firmware and navigate to the keyboards/amj40
18
-folder. Once your dev env is setup, you'll be able to type `make` to generate
19
-your .hex - you can then use `make dfu` to program your PCB once you hit the
20
-reset button. 
21
-
22
-Depending on which keymap you would like to use, you will have to compile
23
-slightly differently.
24
-
25
-### Default
26
-To build with the default keymap, simply run `sudo make all`.
27
-The .hex file will appear in the root of the qmk firmware folder.
28
-
1
+AMJ40
2
+===
29 3
 
4
+DIY/Assembled compact 40% keyboard.
30 5
 
6
+Keyboard Maintainer: QMK Community  
7
+Hardware Supported: AMJ40 PCB  
8
+Hardware Availability: https://geekhack.org/index.php?topic=87961.0
31 9
 
32
-### Original tmk firmware
33
-The original firmware that was used to port to qmk can be found [here](https://github.com/AMJKeyboard/AMJ40).
10
+Make example for this keyboard (after setting up your build environment):
34 11
 
12
+    make amj40:default
35 13
 
14
+See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 1
- 1
keyboards/amj60/readme.md Переглянути файл

@@ -9,6 +9,6 @@ Hardware Availability: https://geekhack.org/index.php?topic=77636.0
9 9
 
10 10
 Make example for this keyboard (after setting up your build environment):
11 11
 
12
-    make amj60-maximized
12
+    make amj60:maximized
13 13
 
14 14
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 1
- 1
keyboards/amjpad/readme.md Переглянути файл

@@ -9,6 +9,6 @@ Hardware Availability: https://geekhack.org/index.php?topic=83546.0
9 9
 
10 10
 Make example for this keyboard (after setting up your build environment):
11 11
 
12
-    make amjpad-default
12
+    make amjpad:default
13 13
 
14 14
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 3
- 21
keyboards/atomic/keymaps/pvc/config.h Переглянути файл

@@ -15,37 +15,19 @@ You should have received a copy of the GNU General Public License
15 15
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 16
 */
17 17
 
18
-#ifndef CONFIG_H
19
-#define CONFIG_H
18
+#ifndef CONFIG_USER_H
19
+#define CONFIG_USER_H
20 20
 
21 21
 #include "config_common.h"
22 22
 
23 23
 /* USB Device descriptor parameter */
24
-#define VENDOR_ID       0xFEED
24
+#undef PRODUCT_ID
25 25
 #define PRODUCT_ID      0x0419
26
-#define DEVICE_VER      0x0001
27
-#define MANUFACTURER    Ortholinear Keyboards
28
-#define PRODUCT         The Atomic Keyboard
29
-#define DESCRIPTION     A compact ortholinear keyboard
30 26
 
31 27
 /* key matrix size */
32 28
 #define MATRIX_ROWS 5
33 29
 #define MATRIX_COLS 15
34 30
 
35
-/*
36
- * Keyboard Matrix Assignments
37
- *
38
- * Change this to how you wired your keyboard
39
- * COLS: AVR pins used for columns, left to right
40
- * ROWS: AVR pins used for rows, top to bottom
41
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
42
- *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
43
- *
44
-*/
45
-#define MATRIX_ROW_PINS { D0, D5, B5, B6, B3 }
46
-#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 }
47
-#define UNUSED_PINS
48
-
49 31
 #define BACKLIGHT_PIN B7
50 32
 #define BACKLIGHT_BREATHING
51 33
 

+ 3
- 3
keyboards/atomic/readme.md Переглянути файл

@@ -5,12 +5,12 @@ Atomic
5 5
 
6 6
 A compact 60% (15x5) ortholinear keyboard kit made and sold by OLKB. [More info on qmk.fm](http://qmk.fm/atomic/)
7 7
 
8
-Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
9
-Hardware Supported: Atomic PCB rev1, Teensy 2.0
8
+Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)  
9
+Hardware Supported: Atomic PCB rev1, Teensy 2.0  
10 10
 Hardware Availability: no longer available
11 11
 
12 12
 Make example for this keyboard (after setting up your build environment):
13 13
 
14
-    make atomic-default
14
+    make atomic:default
15 15
 
16 16
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 1
- 1
keyboards/atreus/keymaps/dvorak_42_key/README.md Переглянути файл

@@ -7,7 +7,7 @@ How to build and flash
7 7
 ----------------------
8 8
 
9 9
 to build;
10
-make atreus-dvorak_42_key
10
+make atreus:dvorak_42_key
11 11
 
12 12
 to flash:
13 13
 avrdude -p atmega32u4 -c avr109 -U flash:w:atreus_dvorak_42_key.hex  -P COM7

+ 1
- 1
keyboards/atreus/keymaps/dvorak_42_key/keymap.c Переглянути файл

@@ -15,7 +15,7 @@
15 15
 static bool mouse_lock = false;
16 16
 
17 17
 // building instructions:
18
-// make atreus-dvorak_42_key
18
+// make atreus:dvorak_42_key
19 19
 
20 20
 // flashing instructions:
21 21
 // avrdude -p atmega32u4 -c avr109 -U flash:w:atreus_dvorak_42_key.hex  -P COM7

+ 3
- 3
keyboards/atreus/readme.md Переглянути файл

@@ -5,12 +5,12 @@ A small mechanical keyboard that is based around the shape of the human hand.
5 5
 
6 6
 These configuration files are specifically for the Atreus keyboards created by Phil Hagelberg (@technomancy). This keyboard is available in two variants: one powered by a Teensy 2, (usually hand-wired) one powered by an A-Star. (usually using a PCB) This repository currently assumes that you have an A-Star powered Atreus. If you are using a Teensy2, specify that by adding `TEENSY2=yes` to your `make` commands.
7 7
 
8
-Keyboard Maintainer: QMK Community
9
-Hardware Supported: Atreus PCB
8
+Keyboard Maintainer: QMK Community  
9
+Hardware Supported: Atreus PCB  
10 10
 Hardware Availability: https://atreus.technomancy.us
11 11
 
12 12
 Make example for this keyboard (after setting up your build environment):
13 13
 
14
-    make atreus-default-avrdude
14
+    make atreus:default:avrdude
15 15
 
16 16
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 3
- 3
keyboards/atreus62/readme.md Переглянути файл

@@ -5,12 +5,12 @@ A 62 key variant of the Atreus keyboard.
5 5
 
6 6
 https://github.com/profet23/atreus62
7 7
 
8
-Keyboard Maintainer: QMK Community
9
-Hardware Supported: Atreus62 PCB
8
+Keyboard Maintainer: QMK Community  
9
+Hardware Supported: Atreus62 PCB  
10 10
 Hardware Availability: http://shop.profetkeyboards.com/product/atreus62-keyboard
11 11
 
12 12
 Make example for this keyboard (after setting up your build environment):
13 13
 
14
-    make atreus62-default
14
+    make atreus62:default
15 15
 
16 16
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 9
- 23
keyboards/bananasplit/README.md Переглянути файл

@@ -1,29 +1,15 @@
1
-# BananaSplit60 keyboard firmware
1
+BananaSplit60
2
+===
2 3
 
3
-Ported from evangs/tmk_keyboard
4
+A 60% PCB featuring a split spacebar.
4 5
 
5
-## Quantum MK Firmware
6
+Keyboard Maintainer: QMK Community  
7
+Hardware Supported: BananaSplit60 PCB  
8
+Hardware Availability: https://thevankeyboards.com/products/gb-bananasplit-60-keyboard-kit?variant=42149104910
6 9
 
7
-For the full Quantum feature list, see [the parent readme](/).
10
+Make example for this keyboard (after setting up your build environment):
8 11
 
9
-## Building
12
+    make bananasplit:default
10 13
 
11
-Download or clone the whole firmware and navigate to the keyboards/bananasplit folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
14
+See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
12 15
 
13
-Depending on which keymap you would like to use, you will have to compile slightly differently.
14
-
15
-### Default
16
-
17
-To build with the default keymap, simply run `make default`.
18
-
19
-### Other Keymaps
20
-
21
-Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files.
22
-
23
-To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
24
-
25
-```
26
-$ make [default|jack|<name>]
27
-```
28
-
29
-Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.

+ 3
- 3
keyboards/bantam44/readme.md Переглянути файл

@@ -3,12 +3,12 @@ Bantam-44
3 3
 
4 4
 A small mechanical keyboard.
5 5
 
6
-Keyboard Maintainer: QMK Community
7
-Hardware Supported: Bantam-44 PCB
6
+Keyboard Maintainer: QMK Community  
7
+Hardware Supported: Bantam-44 PCB  
8 8
 Hardware Availability: http://www.bantamkeyboards.com
9 9
 
10 10
 Make example for this keyboard (after setting up your build environment):
11 11
 
12
-    make bantam44-default
12
+    make bantam44:default
13 13
 
14 14
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 2
- 2
keyboards/chibios_test/boards/GENERIC_STM32_F103/board.mk Переглянути файл

@@ -1,5 +1,5 @@
1 1
 # List of all the board related files.
2
-BOARDSRC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103/board.c
2
+BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F103/board.c
3 3
 
4 4
 # Required include directories
5
-BOARDINC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103
5
+BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F103

+ 3
- 1
keyboards/chibios_test/rules.mk Переглянути файл

@@ -5,4 +5,6 @@ CONSOLE_ENABLE = yes	# Console for debug
5 5
 COMMAND_ENABLE = yes    # Commands for debug and configuration
6 6
 SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend
7 7
 NKRO_ENABLE = yes	    # USB Nkey Rollover
8
-CUSTOM_MATRIX = yes # Custom matrix file
8
+CUSTOM_MATRIX = yes # Custom matrix file
9
+
10
+DEFAULT_FOLDER = chibios_test/stm32_f072_onekey

+ 0
- 1
keyboards/chibios_test/subproject.mk Переглянути файл

@@ -1 +0,0 @@
1
-SUBPROJECT_DEFAULT = stm32_f072_onekey

+ 0
- 3
keyboards/clueboard_17/Makefile Переглянути файл

@@ -1,3 +0,0 @@
1
-ifndef MAKEFILE_INCLUDED
2
-	include ../../Makefile
3
-endif

+ 1
- 1
keyboards/clueboard_17/readme.md Переглянути файл

@@ -10,6 +10,6 @@ A basic 17 key numpad PCB.
10 10
 
11 11
 Make example for this keyboard (after setting up your build environment):
12 12
 
13
-    make cluepad-default
13
+    make clueboard_17:default
14 14
 
15 15
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 2
- 2
keyboards/clueboard_60/boards/GENERIC_STM32_F303XC/board.mk Переглянути файл

@@ -1,5 +1,5 @@
1 1
 # List of all the board related files.
2
-BOARDSRC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F303XC/board.c
2
+BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F303XC/board.c
3 3
 
4 4
 # Required include directories
5
-BOARDINC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F303XC
5
+BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F303XC

+ 1
- 1
keyboards/clueboard_60/readme.md Переглянути файл

@@ -9,6 +9,6 @@ A fully customizable 60% keyboard.
9 9
 
10 10
 Make example for this keyboard (after setting up your build environment):
11 11
 
12
-    make clueboard_60-default-dfu-util
12
+    make clueboard_60:default:dfu-util
13 13
 
14 14
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 0
- 5
keyboards/clueboard_66/Makefile Переглянути файл

@@ -1,5 +0,0 @@
1
-SUBPROJECT_DEFAULT = rev2
2
-
3
-ifndef MAKEFILE_INCLUDED
4
-	include ../../Makefile
5
-endif

+ 5
- 5
keyboards/clueboard_66/clueboard_66.h Переглянути файл

@@ -1,16 +1,16 @@
1 1
 #ifndef CLUEBOARD_H
2 2
 #define CLUEBOARD_H
3 3
 
4
-#ifdef SUBPROJECT_rev1
4
+#include "quantum.h"
5
+
6
+#ifdef KEYBOARD_clueboard_66_rev1
5 7
     #include "rev1.h"
6 8
 #endif
7
-#ifdef SUBPROJECT_rev2
9
+#ifdef KEYBOARD_clueboard_66_rev2
8 10
     #include "rev2.h"
9 11
 #endif
10
-#ifdef SUBPROJECT_rev3
12
+#ifdef KEYBOARD_clueboard_66_rev3
11 13
     #include "rev3.h"
12 14
 #endif
13 15
 
14
-#include "quantum.h"
15
-
16 16
 #endif

+ 0
- 11
keyboards/clueboard_66/config.h Переглянути файл

@@ -60,15 +60,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
60 60
 //#define NO_ACTION_MACRO
61 61
 //#define NO_ACTION_FUNCTION
62 62
 
63
-
64
-#ifdef SUBPROJECT_rev1
65
-    #include "rev1/config.h"
66
-#endif
67
-#ifdef SUBPROJECT_rev2
68
-    #include "rev2/config.h"
69
-#endif
70
-#ifdef SUBPROJECT_rev3
71
-    #include "rev3/config.h"
72
-#endif
73
-
74 63
 #endif

+ 1
- 1
keyboards/clueboard_66/readme.md Переглянути файл

@@ -13,6 +13,6 @@ A fully customizable 66% keyboard.
13 13
 
14 14
 Make example for this keyboard (after setting up your build environment):
15 15
 
16
-    make clueboard-rev3-default
16
+    make clueboard/rev3:default
17 17
 
18 18
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 0
- 3
keyboards/clueboard_66/rev1/Makefile Переглянути файл

@@ -1,3 +0,0 @@
1
-ifndef MAKEFILE_INCLUDED
2
-	include ../../../Makefile
3
-endif

+ 1
- 1
keyboards/clueboard_66/rev1/config.h Переглянути файл

@@ -1,7 +1,7 @@
1 1
 #ifndef REV2_CONFIG_H
2 2
 #define REV2_CONFIG_H
3 3
 
4
-#include "../config.h"
4
+#include "config_common.h"
5 5
 
6 6
 #define PRODUCT_ID      0x2301
7 7
 #define DEVICE_VER      0x0003

+ 0
- 3
keyboards/clueboard_66/rev2/Makefile Переглянути файл

@@ -1,3 +0,0 @@
1
-ifndef MAKEFILE_INCLUDED
2
-	include ../../../Makefile
3
-endif

+ 1
- 1
keyboards/clueboard_66/rev2/config.h Переглянути файл

@@ -1,7 +1,7 @@
1 1
 #ifndef REV2_CONFIG_H
2 2
 #define REV2_CONFIG_H
3 3
 
4
-#include "../config.h"
4
+#include "config_common.h"
5 5
 
6 6
 #define PRODUCT_ID      0x2320
7 7
 #define DEVICE_VER      0x0001

+ 1
- 1
keyboards/clueboard_66/rev2/rev2.h Переглянути файл

@@ -1,7 +1,7 @@
1 1
 #ifndef REV2_H
2 2
 #define REV2_H
3 3
 
4
-#include "../clueboard_66.h"
4
+#include "clueboard_66.h"
5 5
 
6 6
 /* Clueboard matrix layout
7 7
  * ,-----------------------------------------------------------.  ,---.

+ 1
- 1
keyboards/clueboard_66/rev3/config.h Переглянути файл

@@ -1,7 +1,7 @@
1 1
 #ifndef REV3_CONFIG_H
2 2
 #define REV3_CONFIG_H
3 3
 
4
-#include "../config.h"
4
+#include "config_common.h"
5 5
 
6 6
 #define PRODUCT_ID      0x2370
7 7
 #define DEVICE_VER      0x0001

+ 1
- 1
keyboards/clueboard_66/rev3/rev3.h Переглянути файл

@@ -1,7 +1,7 @@
1 1
 #ifndef REV3_H
2 2
 #define REV3_H
3 3
 
4
-#include "../clueboard_66.h"
4
+#include "clueboard_66.h"
5 5
 
6 6
 /* Clueboard matrix layout
7 7
  * ,-----------------------------------------------------------.  ,---.

+ 2
- 0
keyboards/clueboard_66/rules.mk Переглянути файл

@@ -19,3 +19,5 @@ RGBLIGHT_ENABLE = yes  # Enable keyboard underlight functionality
19 19
 MIDI_ENABLE = no 		# MIDI controls
20 20
 UNICODE_ENABLE = no 		# Unicode
21 21
 BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
22
+
23
+DEFAULT_FOLDER = clueboard_66/rev2

+ 0
- 1
keyboards/clueboard_66/subproject.mk Переглянути файл

@@ -1 +0,0 @@
1
-SUBPROJECT_DEFAULT = rev2

+ 1
- 1
keyboards/cluecard/readme.md Переглянути файл

@@ -8,6 +8,6 @@ A simple QMK dev kit.
8 8
 
9 9
 Make example for this keyboard (after setting up your build environment):
10 10
 
11
-    make cluecard-default
11
+    make cluecard:default
12 12
 
13 13
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 0
- 1
keyboards/converter/converter.c Переглянути файл

@@ -1 +0,0 @@
1
-#include "converter.h"

+ 0
- 1
keyboards/converter/converter.h Переглянути файл

@@ -1 +0,0 @@
1
-#include "quantum.h"

+ 0
- 0
keyboards/converter/rules.mk Переглянути файл


+ 1
- 1
keyboards/converter/usb_usb/README.md Переглянути файл

@@ -9,7 +9,7 @@ Hardware Availability: [GH thread](https://geekhack.org/index.php?topic=72052.0)
9 9
 
10 10
 Make example for this keyboard (after setting up your build environment):
11 11
 
12
-    make converter-usb_usb-default
12
+    make converter/usb_usb:default
13 13
 
14 14
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
15 15
 

+ 14
- 15
keyboards/converter/usb_usb/rules.mk Переглянути файл

@@ -1,5 +1,5 @@
1 1
 # MCU name
2
-MCU ?= atmega32u4
2
+MCU = atmega32u4
3 3
 
4 4
 
5 5
 # Processor frequency.
@@ -13,14 +13,14 @@ MCU ?= atmega32u4
13 13
 #     does not *change* the processor frequency - it should merely be updated to
14 14
 #     reflect the processor speed set externally so that the code can use accurate
15 15
 #     software delays.
16
-F_CPU ?= 8000000
16
+F_CPU = 8000000
17 17
 
18 18
 
19 19
 #
20 20
 # LUFA specific
21 21
 #
22 22
 # Target architecture (see library "Board Types" documentation).
23
-ARCH ?= AVR8
23
+ARCH = AVR8
24 24
 
25 25
 # Input clock frequency.
26 26
 #     This will define a symbol, F_USB, in all source code files equal to the
@@ -33,7 +33,7 @@ ARCH ?= AVR8
33 33
 #
34 34
 #     If no clock division is performed on the input clock inside the AVR (via the
35 35
 #     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
36
-F_USB ?= $(F_CPU)
36
+F_USB = $(F_CPU)
37 37
 
38 38
 # Interrupt driven control endpoint task
39 39
 OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
@@ -51,16 +51,15 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
51 51
 # Build Options
52 52
 #   comment out to disable the options.
53 53
 #
54
-# BOOTMAGIC_ENABLE	?= yes	# Virtual DIP switch configuration(+1000)
55
-# MOUSEKEY_ENABLE		?= yes	# Mouse keys(+4700)
56
-EXTRAKEY_ENABLE		?= yes	# Audio control and System control(+450)
57
-# CONSOLE_ENABLE		?= yes	# Console for debug(+400)
58
-# COMMAND_ENABLE		?= yes  # Commands for debug and configuration
59
-# SLEEP_LED_ENABLE ?= yes  # Breathing sleep LED during USB suspend
60
-# NKRO_ENABLE ?= yes	# USB Nkey Rollover - not yet supported in LUFA
61
-# BACKLIGHT_ENABLE ?= yes
62
-
54
+# BOOTMAGIC_ENABLE	= yes	# Virtual DIP switch configuration(+1000)
55
+# MOUSEKEY_ENABLE		= yes	# Mouse keys(+4700)
56
+EXTRAKEY_ENABLE		= yes	# Audio control and System control(+450)
57
+# CONSOLE_ENABLE		= yes	# Console for debug(+400)
58
+# COMMAND_ENABLE		= yes  # Commands for debug and configuration
59
+# SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend
60
+# NKRO_ENABLE = yes	# USB Nkey Rollover - not yet supported in LUFA
61
+# BACKLIGHT_ENABLE = yes
62
+USB_HID_ENABLE = yes
63 63
 
64 64
 CUSTOM_MATRIX = yes
65
-SRC = custom_matrix.cpp
66
-include $(TMK_DIR)/protocol/usb_hid.mk
65
+SRC = custom_matrix.cpp

+ 0
- 6
keyboards/deltasplit75/config.h Переглянути файл

@@ -20,10 +20,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
20 20
 
21 21
 #include "config_common.h"
22 22
 
23
-#ifdef SUBPROJECT_protosplit
24
-    #include "protosplit/config.h"
25
-#endif
26
-#ifdef SUBPROJECT_v2
27
-    #include "v2/config.h"
28
-#endif
29 23
 #endif

+ 1
- 6
keyboards/deltasplit75/deltasplit75.h Переглянути файл

@@ -1,12 +1,7 @@
1 1
 #ifndef DELTASPLIT75_H
2 2
 #define DELTASPLIT75_H
3 3
 
4
-#ifdef SUBPROJECT_v2
5
-    #include "v2.h"
6
-#endif
7
-#ifdef SUBPROJECT_protosplit
8
-    #include "protosplit.h"
9
-#endif
4
+#include "v2.h"
10 5
 
11 6
 #include "quantum.h"
12 7
 

+ 1
- 1
keyboards/deltasplit75/readme.md Переглянути файл

@@ -9,7 +9,7 @@ Hardware Availability: Group Buy
9 9
 
10 10
 Make example for this keyboard (after setting up your build environment):
11 11
 
12
-    make deltasplit75-v2-default
12
+    make deltasplit75/v2:default
13 13
 
14 14
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
15 15
 

+ 17
- 15
keyboards/deltasplit75/rules.mk Переглянути файл

@@ -55,21 +55,23 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
55 55
 #   change to "no" to disable the options, or define them in the Makefile in
56 56
 #   the appropriate keymap folder that will get included automatically
57 57
 #
58
-BOOTMAGIC_ENABLE ?= no       # Virtual DIP switch configuration(+1000)
59
-MOUSEKEY_ENABLE ?= yes       # Mouse keys(+4700)
60
-EXTRAKEY_ENABLE ?= yes       # Audio control and System control(+450)
61
-CONSOLE_ENABLE ?= no         # Console for debug(+400)
62
-COMMAND_ENABLE ?= yes        # Commands for debug and configuration
63
-NKRO_ENABLE ?= no            # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
64
-BACKLIGHT_ENABLE ?= no      # Enable keyboard backlight functionality
65
-MIDI_ENABLE ?= no            # MIDI controls
66
-AUDIO_ENABLE ?= no           # Audio output on port C6
67
-UNICODE_ENABLE ?= no         # Unicode
68
-BLUETOOTH_ENABLE ?= no       # Enable Bluetooth with the Adafruit EZ-Key HID
69
-RGBLIGHT_ENABLE ?= no       # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
70
-SUBPROJECT_rev1 ?= yes
71
-USE_I2C ?= yes
58
+BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000)
59
+MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
60
+EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
61
+CONSOLE_ENABLE = no         # Console for debug(+400)
62
+COMMAND_ENABLE = yes        # Commands for debug and configuration
63
+NKRO_ENABLE = no            # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
64
+BACKLIGHT_ENABLE = no      # Enable keyboard backlight functionality
65
+MIDI_ENABLE = no            # MIDI controls
66
+AUDIO_ENABLE = no           # Audio output on port C6
67
+UNICODE_ENABLE = no         # Unicode
68
+BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
69
+RGBLIGHT_ENABLE = no       # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
70
+SUBPROJECT_rev1 = yes
71
+USE_I2C = yes
72 72
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
73
-SLEEP_LED_ENABLE ?= no    # Breathing sleep LED during USB suspend
73
+SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
74 74
 
75 75
 CUSTOM_MATRIX = yes
76
+
77
+DEFAULT_FOLDER = deltasplit75/v2

+ 0
- 1
keyboards/deltasplit75/subproject.mk Переглянути файл

@@ -1 +0,0 @@
1
-SUBPROJECT_DEFAULT = v2

+ 2
- 2
keyboards/deltasplit75/v2/config.h Переглянути файл

@@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License
15 15
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 16
 */
17 17
 
18
-#ifndef CONFIG_H
19
-#define CONFIG_H
18
+#ifndef CONFIG_V2_H
19
+#define CONFIG_V2_H
20 20
 
21 21
 #include "config_common.h"
22 22
 

+ 1
- 5
keyboards/deltasplit75/v2/rules.mk Переглянути файл

@@ -1,5 +1 @@
1
-BACKLIGHT_ENABLE = no
2
-
3
-ifndef QUANTUM_DIR
4
-	include ../../../Makefile
5
-endif
1
+BACKLIGHT_ENABLE = no

+ 1
- 1
keyboards/dk60/readme.md Переглянути файл

@@ -10,7 +10,7 @@ Another 60% keyboard with different HHKB layout made and sold by dbroqua. [More
10 10
 
11 11
 Make example for this keyboard (after setting up your build environment):
12 12
 
13
-    make dk60-default
13
+    make dk60:default
14 14
 
15 15
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
16 16
 

+ 1
- 1
keyboards/dz60/readme.md Переглянути файл

@@ -10,6 +10,6 @@ Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/collections/pcb/p
10 10
 
11 11
 Make example for this keyboard (after setting up your build environment):
12 12
 
13
-    make dz60-default
13
+    make dz60:default
14 14
 
15 15
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 2
- 2
keyboards/eco/eco.h Переглянути файл

@@ -1,10 +1,10 @@
1 1
 #ifndef ECO_H
2 2
 #define ECO_H
3 3
 
4
-#ifdef SUBPROJECT_rev1
4
+#ifdef KEYBOARD_eco_rev1
5 5
     #include "rev1.h"
6 6
 #endif
7
-#ifdef SUBPROJECT_rev2
7
+#ifdef KEYBOARD_eco_rev2
8 8
     #include "rev2.h"
9 9
 #endif
10 10
 

+ 1
- 1
keyboards/eco/readme.md Переглянути файл

@@ -10,6 +10,6 @@ Hardware Supported: ECO PCB rev1 Pro Micro
10 10
 
11 11
 Make example for this keyboard (after setting up your build environment):
12 12
 
13
-    make eco-rev2-that_canadian
13
+    make eco/rev2:that_canadian
14 14
 
15 15
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 2
- 0
keyboards/eco/rules.mk Переглянути файл

@@ -66,3 +66,5 @@ API_SYSEX_ENABLE = no
66 66
 
67 67
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
68 68
 SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
69
+
70
+DEFAULT_FOLDER = eco/rev2

+ 0
- 1
keyboards/eco/subproject.mk Переглянути файл

@@ -1 +0,0 @@
1
-SUBPROJECT_DEFAULT = rev2

+ 1
- 1
keyboards/ergodone/readme.md Переглянути файл

@@ -18,7 +18,7 @@ The ErgoDone is a modified version of the ErgoDox, made by K.T.E.C., with pre-so
18 18
 
19 19
 In the root directory of the repository, build the firmware with a command like:
20 20
 
21
-    make ergodone-default
21
+    make ergodone:default
22 22
 
23 23
 For more information on the layout option and other ones, see the [`make` guide](https://docs.qmk.fm/getting_started_make_guide.html).
24 24
 

+ 1
- 1
keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c Переглянути файл

@@ -98,7 +98,7 @@ enum {
98 98
 
99 99
 
100 100
 // on each tap, light up one led, from right to left
101
-// on the forth tap, turn them off from right to leftmake ergodox-ez-drashna-custom-teensy
101
+// on the forth tap, turn them off from right to left
102 102
 
103 103
 void dance_flsh_each(qk_tap_dance_state_t *state, void *user_data) {
104 104
 	if (!skip_leds) {

+ 1
- 1
keyboards/ergodox_ez/keymaps/dvorak_42_key/README.md Переглянути файл

@@ -5,7 +5,7 @@ This is a dvorak based layout for the Ergodox EZ. Its basic key layout is simila
5 5
 
6 6
 How to build 
7 7
 ------------
8
-make ergodox_ez-dvorak_42_key-teensy
8
+make ergodox_ez:dvorak_42_key:teensy
9 9
 
10 10
 Layers
11 11
 ------

+ 1
- 1
keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c Переглянути файл

@@ -5,7 +5,7 @@
5 5
 
6 6
 
7 7
 // to build this keymap
8
-// make ergodox_ez-dvorak_42_key-teensy
8
+// make ergodox_ez:dvorak_42_key:teensy
9 9
 
10 10
 static bool mouse_lock = false;
11 11
 

+ 1
- 1
keyboards/ergodox_infinity/keymaps/rask/README.md Переглянути файл

@@ -17,4 +17,4 @@ makes sense.
17 17
 
18 18
 Follow the main Infinity ErgoDox guide but use the following layout:
19 19
 
20
-    $ sudo make ergodox_infinity-rask
20
+    $ sudo make ergodox_infinity:rask

+ 3
- 3
keyboards/ergodox_infinity/readme.md Переглянути файл

@@ -5,15 +5,15 @@ for the left and right halves seperately.  To flash them:
5 5
 
6 6
   - Make sure you are in the top-level qmk_firmware directory
7 7
 
8
-  - Build the firmware with `make ergodox_infinity-keymapname`
8
+  - Build the firmware with `make ergodox_infinity:keymapname`
9 9
 
10 10
   - Plug in the left hand keyboard only.
11 11
 
12 12
   - Press the program button (back of keyboard, above thumb pad).
13 13
 
14
-  - Install the firmware with `sudo make ergodox_infinity-keymapname-dfu-util`
14
+  - Install the firmware with `sudo make ergodox_infinity:keymapname:dfu-util`
15 15
 
16
-  - Build right hand firmware with `make ergodox_infinity-keymapname MASTER=right`
16
+  - Build right hand firmware with `make ergodox_infinity:keymapname MASTER=right`
17 17
 
18 18
   - Plug in the right hand keyboard only.
19 19
 

+ 1
- 1
keyboards/felix/readme.md Переглянути файл

@@ -8,6 +8,6 @@ Hardware Availability: [Unikeyboard](https://unikeyboard.io/product/felix/)
8 8
 
9 9
 Make example for this keyboard (after setting up your build environment):
10 10
 
11
-    make felix-default
11
+    make felix:default
12 12
 
13 13
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 1
- 1
keyboards/four_banger/readme.md Переглянути файл

@@ -9,6 +9,6 @@ Hardware Availability: [1up Keyboards](https://1upkeyboards.com/)
9 9
 
10 10
 Make example for this keyboard (after setting up your build environment):
11 11
 
12
-    make four_banger-default
12
+    make four_banger:default
13 13
 
14 14
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 3
- 3
keyboards/frosty_flake/readme.md Переглянути файл

@@ -25,19 +25,19 @@ Make example for this keyboard (after setting up your build environment):
25 25
 104 key default layout:
26 26
 
27 27
 ```
28
-make frosty_flake-default
28
+make frosty_flake:default
29 29
 ```
30 30
 
31 31
 To directly flash the frosty_flake after compiling use
32 32
 
33 33
 ```
34
-make frosty_flake-default-dfu
34
+make frosty_flake:default:dfu
35 35
 ```
36 36
 
37 37
 87 key tkl layout:
38 38
 
39 39
 ```
40
-make frosty_flake-tkl-dfu
40
+make frosty_flake:tkl:dfu
41 41
 ```
42 42
 
43 43
 See [build environment

+ 2
- 2
keyboards/gh60/keymaps/dbroqua/config.h Переглянути файл

@@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License
15 15
 along with this program. If not, see <http://www.gnu.org/licenses/>.
16 16
 */
17 17
 
18
-#ifndef CONFIG_H
19
-#define CONFIG_H
18
+#ifndef CONFIG_USER_H
19
+#define CONFIG_USER_H
20 20
 
21 21
 #include "config_common.h"
22 22
 

+ 2
- 2
keyboards/gh60/keymaps/robotmaxtron/config.h Переглянути файл

@@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License
15 15
 along with this program. If not, see <http://www.gnu.org/licenses/>.
16 16
 */
17 17
 
18
-#ifndef CONFIG_H
19
-#define CONFIG_H
18
+#ifndef CONFIG_USER_H
19
+#define CONFIG_USER_H
20 20
 
21 21
 #include "config_common.h"
22 22
 

+ 1
- 1
keyboards/gh60/readme.md Переглянути файл

@@ -11,7 +11,7 @@ Hardware Availability: http://blog.komar.be/projects/gh60-programmable-keyboard/
11 11
 
12 12
 Make example for this keyboard (after setting up your build environment):
13 13
 
14
-    make gh60-default
14
+    make gh60:default
15 15
 
16 16
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
17 17
 

+ 1
- 1
keyboards/gherkin/README.md Переглянути файл

@@ -11,7 +11,7 @@ Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.c
11 11
 
12 12
 Make example for this keyboard (after setting up your build environment):
13 13
 
14
-    make gherkin-default
14
+    make gherkin:default
15 15
 
16 16
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
17 17
 First pass at adding support for the gherkin keyboard. Compiles but completely

+ 1
- 1
keyboards/gonnerd/readme.md Переглянути файл

@@ -9,7 +9,7 @@ Hardware Availability: http://www.gonskeyboardworks.com/pcbs-and-controllers/60-
9 9
 
10 10
 Make example for this keyboard (after setting up your build environment):
11 11
 
12
-    make gonnerd-default
12
+    make gonnerd:default
13 13
 
14 14
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
15 15
 

+ 0
- 66
keyboards/hadron/out.txt Переглянути файл

@@ -1,66 +0,0 @@
1
--------- begin --------
2
-avr-gcc.exe (AVR_8_bit_GNU_Toolchain_3.5.0_1662) 4.9.2
3
-Copyright (C) 2014 Free Software Foundation, Inc.
4
-This is free software; see the source for copying conditions.  There is NO
5
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
6
-
7
-Compiling: ../../keyboards/planck/planck.c                            [OK]
8
-Compiling: ../../keyboards/planck/keymaps/experimental/keymap.c       [WARNINGS]
9
- | 
10
- | ../../keyboards/planck/keymaps/experimental/keymap.c: In function 'action_get_macro':
11
- | ../../keyboards/planck/keymaps/experimental/keymap.c:227:17: warning: implicit declaration of function 'breathing_speed_set' [-Wimplicit-function-declaration]
12
- |                  breathing_speed_set(2);
13
- |                  ^
14
- | ../../keyboards/planck/keymaps/experimental/keymap.c:228:17: warning: implicit declaration of function 'breathing_pulse' [-Wimplicit-function-declaration]
15
- |                  breathing_pulse();
16
- |                  ^
17
- | 
18
-Compiling: ../../quantum/quantum.c                                    [OK]
19
-Compiling: ../../quantum/keymap.c                                     [OK]
20
-Compiling: ../../quantum/keycode_config.c                             [OK]
21
-Compiling: ../../quantum/matrix.c                                     [OK]
22
-Compiling: ../../quantum/audio/audio.c                                [OK]
23
-Compiling: ../../quantum/audio/voices.c                               [OK]
24
-Compiling: ../../quantum/audio/luts.c                                 [OK]
25
-Compiling: ../../tmk_core/protocol/lufa/lufa.c                        [OK]
26
-Compiling: ../../tmk_core/protocol/lufa/descriptor.c                  [OK]
27
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Class/Common/HIDParser.c [OK]
28
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c [OK]
29
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c [OK]
30
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c [OK]
31
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c [OK]
32
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c [OK]
33
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c [OK]
34
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c [OK]
35
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c [OK]
36
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/ConfigDescriptors.c [OK]
37
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/DeviceStandardReq.c [OK]
38
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/Events.c [OK]
39
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/HostStandardReq.c [OK]
40
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/USBTask.c [OK]
41
-Compiling: ../../tmk_core/common/host.c                               [OK]
42
-Compiling: ../../tmk_core/common/keyboard.c                           [OK]
43
-Compiling: ../../tmk_core/common/action.c                             [OK]
44
-Compiling: ../../tmk_core/common/action_tapping.c                     [OK]
45
-Compiling: ../../tmk_core/common/action_macro.c                       [OK]
46
-Compiling: ../../tmk_core/common/action_layer.c                       [OK]
47
-Compiling: ../../tmk_core/common/action_util.c                        [OK]
48
-Compiling: ../../tmk_core/common/print.c                              [OK]
49
-Compiling: ../../tmk_core/common/debug.c                              [OK]
50
-Compiling: ../../tmk_core/common/util.c                               [OK]
51
-Compiling: ../../tmk_core/common/avr/suspend.c                        [OK]
52
-Assembling: ../../tmk_core/common/avr/xprintf.S                       [OK]
53
-Compiling: ../../tmk_core/common/avr/timer.c                          [OK]
54
-Compiling: ../../tmk_core/common/avr/bootloader.c                     [OK]
55
-Compiling: ../../tmk_core/common/magic.c                              [OK]
56
-Compiling: ../../tmk_core/common/avr/eeconfig.c                       [OK]
57
-Compiling: ../../tmk_core/common/mousekey.c                           [OK]
58
-Compiling: ../../tmk_core/common/command.c                            [OK]
59
-Compiling: ../../tmk_core/common/backlight.c                          [OK]
60
-Linking: .build/planck_experimental.elf                               [ERRORS]
61
- | 
62
- | .build/obj_planck_experimental/keyboards/planck/keymaps/experimental/keymap.o: In function `action_get_macro':
63
- | C:\Users\Fred Wales\Documents\Programming\qmk_firmware\keyboards\planck/../../keyboards/planck/keymaps/experimental/keymap.c:240: undefined reference to `breathing_speed_set'
64
- | C:\Users\Fred Wales\Documents\Programming\qmk_firmware\keyboards\planck/../../keyboards/planck/keymaps/experimental/keymap.c:241: undefined reference to `breathing_pulse'
65
- | collect2.exe: error: ld returned 1 exit status
66
- | 

+ 1
- 0
keyboards/hadron/rules.mk Переглянути файл

@@ -70,3 +70,4 @@ SLEEP_LED_ENABLE ?= no    # Breathing sleep LED during USB suspend
70 70
 SRC = i2c.c \
71 71
 	  ssd1306.c
72 72
 
73
+DEFAULT_FOLDER = hadron/ver2

+ 0
- 1
keyboards/hadron/subproject.mk Переглянути файл

@@ -1 +0,0 @@
1
-SUBPROJECT_DEFAULT = ver2

+ 0
- 1
keyboards/handwired/handwired.c Переглянути файл

@@ -1 +0,0 @@
1
-#include "handwired.h"

+ 0
- 1
keyboards/handwired/handwired.h Переглянути файл

@@ -1 +0,0 @@
1
-#include "quantum.h"

+ 1
- 1
keyboards/handwired/kbod/readme.md Переглянути файл

@@ -9,7 +9,7 @@ For the full Quantum feature list, see [the parent readme](/).
9 9
 
10 10
 ## Building
11 11
 
12
-Download or clone the whole firmware and use ```make handwired-kbod-default``` to generate the .hex file. You may flash it with avrdude
12
+Download or clone the whole firmware and use ```make handwired/kbod:default``` to generate the .hex file. You may flash it with avrdude
13 13
 
14 14
 ## Flashing
15 15
 Something along this line:

+ 1
- 1
keyboards/handwired/magicforce61/README.md Переглянути файл

@@ -19,6 +19,6 @@ The following pins are used:
19 19
 
20 20
 ## Compiling and loading the firmware
21 21
 
22
-To build the firmware, run `make handwired-magicforce61`.
22
+To build the firmware, run `make handwired/magicforce61`.
23 23
 
24 24
 Flash the firmware using the teensy loader or avrdude.

+ 0
- 0
keyboards/handwired/rules.mk Переглянути файл


+ 0
- 7
keyboards/handwired/traveller/rules.mk Переглянути файл

@@ -80,10 +80,3 @@ BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
80 80
 AUDIO_ENABLE = no           # Audio output on port C6
81 81
 RGBLIGHT_ENABLE = yes
82 82
 
83
-ifndef QUANTUM_DIR
84
-	include ../../../Makefile
85
-endif
86
-
87
-upload: build
88
-	$(ATREUS_UPLOAD_COMMAND)
89
-

+ 2
- 2
keyboards/hhkb/keymaps/blakedietz/README.md Переглянути файл

@@ -29,7 +29,7 @@ From the hhkb directory run the following:
29 29
 
30 30
 ```bash
31 31
 make clean
32
-make hhkb-blakedietz-dfu
32
+make hhkb:blakedietz:dfu
33 33
 ```
34 34
 
35 35
 Press the button on the alternate controller to put the board into boot mode.
@@ -37,7 +37,7 @@ Press the button on the alternate controller to put the board into boot mode.
37 37
 You'll see an output similar to the following:
38 38
 
39 39
 ```bash
40
-make hhkb-blakedietz-dfu
40
+make hhkb:blakedietz:dfu
41 41
 
42 42
 Making hhkb with keymap blakedietz and target dfu
43 43
 

+ 1
- 1
keyboards/hhkb/readme.md Переглянути файл

@@ -9,6 +9,6 @@ Hardware Availability: https://geekhack.org/index.php?topic=12047.0
9 9
 
10 10
 Make example for this keyboard (after setting up your build environment):
11 11
 
12
-    make hhkb-default
12
+    make hhkb:default
13 13
 
14 14
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 1
- 1
keyboards/infinity60/readme.md Переглянути файл

@@ -9,6 +9,6 @@ Hardware Availability: https://input.club/devices/infinity-keyboard/
9 9
 
10 10
 Make example for this keyboard (after setting up your build environment):
11 11
 
12
-    make infinity60-default
12
+    make infinity60:default
13 13
 
14 14
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 2
- 2
keyboards/jc65/readme.md Переглянути файл

@@ -13,10 +13,10 @@ Hardware Availability: [keyclack.com](https://keyclack.com/)
13 13
 
14 14
 Make example for this keyboard (after setting up your build environment):
15 15
 
16
-    make jc65-default
16
+    make jc65:default
17 17
 
18 18
 Or to make and flash:
19 19
 
20
-    make jc65-default-dfu
20
+    make jc65:default:dfu
21 21
 
22 22
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 1
- 1
keyboards/jd40/readme.md Переглянути файл

@@ -9,6 +9,6 @@ Hardware Availability: [1up](https://1upkeyboards.com/jd40-mkii-1up-keyboards-lo
9 9
 
10 10
 Make example for this keyboard (after setting up your build environment):
11 11
 
12
-    make atreus-default
12
+    make jd40:default
13 13
 
14 14
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 2
- 2
keyboards/jd45/config.h Переглянути файл

@@ -67,10 +67,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
67 67
  */
68 68
 
69 69
 /* disable debug print */
70
-#define NO_DEBUG
70
+// #define NO_DEBUG
71 71
 
72 72
 /* disable print */
73
-#define NO_PRINT
73
+// #define NO_PRINT
74 74
 
75 75
 /* disable action features */
76 76
 //#define NO_ACTION_LAYER

+ 2
- 2
keyboards/jd45/keymaps/mjt/config.h Переглянути файл

@@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License
15 15
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 16
 */
17 17
 
18
-#ifndef CONFIG_H
19
-#define CONFIG_H
18
+#ifndef CONFIG_USER_H
19
+#define CONFIG_USER_H
20 20
 
21 21
 #include "config_common.h"
22 22
 

+ 1
- 1
keyboards/jd45/readme.md Переглянути файл

@@ -9,6 +9,6 @@ Hardware Availability: https://mechanicalkeyboards.com/shop/index.php?l=product_
9 9
 
10 10
 Make example for this keyboard (after setting up your build environment):
11 11
 
12
-    make jd45-default
12
+    make jd45:default
13 13
 
14 14
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

+ 0
- 0
keyboards/jj40/README.md Переглянути файл


Деякі файли не було показано, через те що забагато файлів було змінено

Завантаження…
Відмінити
Зберегти