]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Make arguments redo, subproject elimination (#1784)
authorJack Humbert <jack.humb@gmail.com>
Sat, 14 Oct 2017 21:32:19 +0000 (11:32 -1000)
committerGitHub <noreply@github.com>
Sat, 14 Oct 2017 21:32:19 +0000 (11:32 -1000)
* 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

217 files changed:
.travis.yml
Makefile
autocomplete.sh [new file with mode: 0644]
build_keyboard.mk
common_features.mk
docs/README.md
docs/adding_a_keyboard_to_qmk.md
docs/config_options.md
docs/contributing.md
docs/documentation_templates.md
docs/faq_build.md
docs/feature_layouts.md
docs/getting_started_build_tools.md
docs/getting_started_make_guide.md
docs/hand_wire.md
docs/unit_testing.md
keyboards/9key/readme.md
keyboards/alps64/readme.md
keyboards/amj40/readme.md
keyboards/amj60/readme.md
keyboards/amjpad/readme.md
keyboards/atomic/keymaps/pvc/config.h
keyboards/atomic/readme.md
keyboards/atreus/keymaps/dvorak_42_key/README.md
keyboards/atreus/keymaps/dvorak_42_key/keymap.c
keyboards/atreus/readme.md
keyboards/atreus62/readme.md
keyboards/bananasplit/README.md
keyboards/bantam44/readme.md
keyboards/chibios_test/boards/GENERIC_STM32_F103/board.mk
keyboards/chibios_test/rules.mk
keyboards/chibios_test/subproject.mk [deleted file]
keyboards/clueboard_17/Makefile [deleted file]
keyboards/clueboard_17/readme.md
keyboards/clueboard_60/boards/GENERIC_STM32_F303XC/board.mk
keyboards/clueboard_60/readme.md
keyboards/clueboard_66/Makefile [deleted file]
keyboards/clueboard_66/clueboard_66.h
keyboards/clueboard_66/config.h
keyboards/clueboard_66/readme.md
keyboards/clueboard_66/rev1/Makefile [deleted file]
keyboards/clueboard_66/rev1/config.h
keyboards/clueboard_66/rev2/Makefile [deleted file]
keyboards/clueboard_66/rev2/config.h
keyboards/clueboard_66/rev2/rev2.h
keyboards/clueboard_66/rev3/config.h
keyboards/clueboard_66/rev3/rev3.h
keyboards/clueboard_66/rules.mk
keyboards/clueboard_66/subproject.mk [deleted file]
keyboards/cluecard/readme.md
keyboards/converter/converter.c [deleted file]
keyboards/converter/converter.h [deleted file]
keyboards/converter/rules.mk [deleted file]
keyboards/converter/usb_usb/README.md
keyboards/converter/usb_usb/rules.mk
keyboards/deltasplit75/config.h
keyboards/deltasplit75/deltasplit75.h
keyboards/deltasplit75/readme.md
keyboards/deltasplit75/rules.mk
keyboards/deltasplit75/subproject.mk [deleted file]
keyboards/deltasplit75/v2/config.h
keyboards/deltasplit75/v2/rules.mk
keyboards/dk60/readme.md
keyboards/dz60/readme.md
keyboards/eco/eco.h
keyboards/eco/readme.md
keyboards/eco/rules.mk
keyboards/eco/subproject.mk [deleted file]
keyboards/ergodone/readme.md
keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c
keyboards/ergodox_ez/keymaps/dvorak_42_key/README.md
keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c
keyboards/ergodox_infinity/keymaps/rask/README.md
keyboards/ergodox_infinity/readme.md
keyboards/felix/readme.md
keyboards/four_banger/readme.md
keyboards/frosty_flake/readme.md
keyboards/gh60/keymaps/dbroqua/config.h
keyboards/gh60/keymaps/robotmaxtron/config.h
keyboards/gh60/readme.md
keyboards/gherkin/README.md
keyboards/gonnerd/readme.md
keyboards/hadron/out.txt [deleted file]
keyboards/hadron/rules.mk
keyboards/hadron/subproject.mk [deleted file]
keyboards/handwired/handwired.c [deleted file]
keyboards/handwired/handwired.h [deleted file]
keyboards/handwired/kbod/readme.md
keyboards/handwired/magicforce61/README.md
keyboards/handwired/rules.mk [deleted file]
keyboards/handwired/traveller/rules.mk
keyboards/hhkb/keymaps/blakedietz/README.md
keyboards/hhkb/readme.md
keyboards/infinity60/readme.md
keyboards/jc65/readme.md
keyboards/jd40/readme.md
keyboards/jd45/config.h
keyboards/jd45/keymaps/mjt/config.h
keyboards/jd45/readme.md
keyboards/jj40/README.md
keyboards/jm60/boards/JM60_BOARD/board.mk
keyboards/jm60/readme.md
keyboards/kbd75/readme.md
keyboards/kinesis/kinesis.h
keyboards/kinesis/rules.mk
keyboards/kinesis/stapelberg/rules.mk
keyboards/kinesis/subproject.mk [deleted file]
keyboards/kitten_paw/readme.md
keyboards/lets_split/lets_split.h
keyboards/lets_split/readme.md
keyboards/lets_split/rules.mk
keyboards/lets_split/subproject.mk [deleted file]
keyboards/levinson/keymaps/bakingpy2u/config.h
keyboards/levinson/keymaps/default/config.h
keyboards/levinson/levinson.h
keyboards/levinson/readme.md
keyboards/levinson/rules.mk
keyboards/levinson/subproject.mk [deleted file]
keyboards/mechmini/README.md
keyboards/mf68/README.md
keyboards/minidox/minidox.h
keyboards/minidox/readme.md
keyboards/minidox/rev1/rules.mk
keyboards/minidox/rules.mk
keyboards/minidox/subproject.mk [deleted file]
keyboards/mitosis/readme.md
keyboards/nyquist/config.h
keyboards/nyquist/keymaps/default/config.h
keyboards/nyquist/keymaps/hexwire/config.h
keyboards/nyquist/nyquist.h
keyboards/nyquist/readme.md
keyboards/nyquist/rev1/rev1.c
keyboards/nyquist/rev1/rev1.h
keyboards/nyquist/rules.mk
keyboards/nyquist/subproject.mk [deleted file]
keyboards/obelus/readme.md
keyboards/org60/readme.md
keyboards/orthodox/config.h
keyboards/orthodox/keymaps/default/config.h
keyboards/orthodox/keymaps/default/rules.mk
keyboards/orthodox/keymaps/drashna/config.h
keyboards/orthodox/keymaps/drashna/rules.mk
keyboards/orthodox/orthodox.h
keyboards/orthodox/readme.md
keyboards/orthodox/rev1/config.h
keyboards/orthodox/rev1/rev1.h
keyboards/orthodox/rev1/rules.mk
keyboards/orthodox/rules.mk
keyboards/pegasushoof/README.md
keyboards/phantom/readme.md
keyboards/planck/config.h
keyboards/planck/keymaps/impossible/rules.mk
keyboards/planck/keymaps/jeebak/rules.mk
keyboards/planck/keymaps/jhenahan/rules.mk
keyboards/planck/keymaps/joe/rules.mk
keyboards/planck/keymaps/leo/rules.mk
keyboards/planck/keymaps/lucas/rules.mk
keyboards/planck/keymaps/mollat/rules.mk
keyboards/planck/keymaps/nico/rules.mk
keyboards/planck/keymaps/phreed/readme.md
keyboards/planck/keymaps/premek/rules.mk
keyboards/planck/keymaps/pvc/config.h
keyboards/planck/keymaps/pvc/rules.mk
keyboards/planck/keymaps/sgoodwin/rules.mk
keyboards/planck/keymaps/tak3over/rules.mk
keyboards/planck/keymaps/thermal_printer/rules.mk
keyboards/planck/planck.c
keyboards/planck/planck.h
keyboards/planck/readme.md
keyboards/planck/rev3/config.h
keyboards/planck/rev3/rev3.h
keyboards/planck/rev4/config.h
keyboards/planck/rev4/rev4.h
keyboards/planck/rules.mk
keyboards/planck/subproject.mk [deleted file]
keyboards/preonic/preonic.c
keyboards/preonic/preonic.h
keyboards/preonic/readme.md
keyboards/ps2avrGB/README.md
keyboards/roadkit/readme.md
keyboards/s60_x/default/config.h
keyboards/s60_x/keymaps/bluebear/config.h
keyboards/s60_x/keymaps/bluebear/rules.mk
keyboards/s60_x/readme.md
keyboards/s60_x/rgb/config.h
keyboards/s60_x/rules.mk
keyboards/s60_x/s60_x.h
keyboards/s60_x/subproject.mk [deleted file]
keyboards/s65_x/readme.md
keyboards/satan/readme.md
keyboards/sixkeyboard/readme.md
keyboards/sweet16/readme.md
keyboards/tada68/readme.md
keyboards/tiger_lily/readme.md
keyboards/tomato/readme.md
keyboards/tv44/readme.md
keyboards/uk78/keymaps/rask/README.md
keyboards/uk78/readme.md
keyboards/v60_type_r/readme.md
keyboards/vision_division/readme.md
keyboards/viterbi/config.h
keyboards/viterbi/readme.md
keyboards/viterbi/rev1/config.h
keyboards/viterbi/rev1/rules.mk
keyboards/viterbi/rules.mk
keyboards/viterbi/viterbi.h
keyboards/whitefox/readme.md
keyboards/xd60/keymaps/default/readme.md
keyboards/xd60/keymaps/kmontag42/readme.md
keyboards/xd60/keymaps/yuuki/README.md
keyboards/xd60/readme.md
keyboards/xd75/readme.md
keyboards/ymd96/README.md
quantum/visualizer/visualizer.mk
tmk_core/chibios.mk
tmk_core/rules.mk
util/travis_build.sh

index e1cccf1e8d9711630d1e6fcba619e5f89461c017..fdb97df2ab127f3737581394ec3fc79a18ea7154 100644 (file)
@@ -18,7 +18,7 @@ install:
 before_script:
   - avr-gcc --version
 script:
-- make test AUTOGEN=false
+- make test:all AUTOGEN=false
 - bash util/travis_build.sh
 addons:
   apt:
index 1ca9876a28955d62949fd73a78031f83615fb198..87a3f4993c8532884e5193e7f4ddb70c8d103449 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -21,7 +21,7 @@ override SILENT := false
 
 QMK_VERSION := $(shell git describe --abbrev=0 --tags 2>/dev/null)
 ifneq ($(QMK_VERSION),)
-$(info QMK Firmware v$(QMK_VERSION))
+$(info QMK Firmware $(QMK_VERSION))
 endif
 
 ON_ERROR := error_occurred=1
@@ -65,80 +65,86 @@ $(eval $(call NEXT_PATH_ELEMENT))
 # It's really a very simple if else chain, if you squint enough,
 # but the makefile syntax makes it very verbose.
 # If we are in a subfolder of keyboards
-ifeq ($(CURRENT_PATH_ELEMENT),keyboards)
-    $(eval $(call NEXT_PATH_ELEMENT))
-    KEYBOARD := $(CURRENT_PATH_ELEMENT)
-    $(eval $(call NEXT_PATH_ELEMENT))
-    # If we are in a subfolder of keymaps, or in other words in a keymap
-    # folder
-    ifeq ($(CURRENT_PATH_ELEMENT),keymaps)
-        $(eval $(call NEXT_PATH_ELEMENT))
-        KEYMAP := $(CURRENT_PATH_ELEMENT)
-     # else if we are not in the keyboard folder itself
-    else ifneq ($(CURRENT_PATH_ELEMENT),)
-        # the we can assume it's a subproject, as no other folders
-        # should have make files in them
-        SUBPROJECT := $(CURRENT_PATH_ELEMENT)
-        $(eval $(call NEXT_PATH_ELEMENT))
-        # if we are inside a keymap folder of a subproject
-        ifeq ($(CURRENT_PATH_ELEMENT),keymaps)
-            $(eval $(call NEXT_PATH_ELEMENT))
-            KEYMAP := $(CURRENT_PATH_ELEMENT)
-        endif
-    endif
-endif
+# 
+# *** No longer needed **
+#
+# ifeq ($(CURRENT_PATH_ELEMENT),keyboards)
+#     $(eval $(call NEXT_PATH_ELEMENT))
+#     KEYBOARD := $(CURRENT_PATH_ELEMENT)
+#     $(eval $(call NEXT_PATH_ELEMENT))
+#     # If we are in a subfolder of keymaps, or in other words in a keymap
+#     # folder
+#     ifeq ($(CURRENT_PATH_ELEMENT),keymaps)
+#         $(eval $(call NEXT_PATH_ELEMENT))
+#         KEYMAP := $(CURRENT_PATH_ELEMENT)
+#      # else if we are not in the keyboard folder itself
+#     else ifneq ($(CURRENT_PATH_ELEMENT),)
+#         # the we can assume it's a subproject, as no other folders
+#         # should have make files in them
+#         SUBPROJECT := $(CURRENT_PATH_ELEMENT)
+#         $(eval $(call NEXT_PATH_ELEMENT))
+#         # if we are inside a keymap folder of a subproject
+#         ifeq ($(CURRENT_PATH_ELEMENT),keymaps)
+#             $(eval $(call NEXT_PATH_ELEMENT))
+#             KEYMAP := $(CURRENT_PATH_ELEMENT)
+#         endif
+#     endif
+# endif
+
+define GET_KEYBOARDS
+    All_RULES_MK := $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/rules.mk))
+    All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/rules.mk))
+    All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/rules.mk))
+    All_RULES_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/*/rules.mk))
+
+    KEYMAPS_MK := $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/keymaps/*/rules.mk))
+    KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/keymaps/*/rules.mk))
+    KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/keymaps/*/rules.mk))
+    KEYMAPS_MK += $$(patsubst $(ROOT_DIR)/keyboards/%/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/*/*/*/*/keymaps/*/rules.mk))
+
+    KEYBOARDS := $$(sort $$(filter-out $$(KEYMAPS_MK), $$(All_RULES_MK)))
+endef
+
+$(eval $(call GET_KEYBOARDS))
 
 # Only consider folders with makefiles, to prevent errors in case there are extra folders
-KEYBOARDS := $(notdir $(patsubst %/rules.mk,%,$(wildcard $(ROOT_DIR)/keyboards/*/rules.mk)))
+#KEYBOARDS += $(patsubst $(ROOD_DIR)/keyboards/%/rules.mk,%,$(wildcard $(ROOT_DIR)/keyboards/*/*/rules.mk))
+
+list-keyboards:
+       echo $(KEYBOARDS)
+       exit 0
 
 #Compatibility with the old make variables, anything you specify directly on the command line
 # always overrides the detected folders
 ifdef keyboard
     KEYBOARD := $(keyboard)
 endif
-ifdef sub
-    SUBPROJECT := $(sub)
-endif
-ifdef subproject
-    SUBPROJECT := $(subproject)
-endif
 ifdef keymap
     KEYMAP := $(keymap)
 endif
 
 # Uncomment these for debugging
-#$(info Keyboard: $(KEYBOARD))
-#$(info Keymap: $(KEYMAP))
-#$(info Subproject: $(SUBPROJECT))
-#$(info Keyboards: $(KEYBOARDS))
+# $(info Keyboard: $(KEYBOARD))
+# $(info Keymap: $(KEYMAP))
+# $(info Subproject: $(SUBPROJECT))
+# $(info Keyboards: $(KEYBOARDS))
 
 
 # Set the default goal depending on where we are running make from
 # this handles the case where you run make without any arguments
-.DEFAULT_GOAL := all
+.DEFAULT_GOAL := all:all
 ifneq ($(KEYMAP),)
-    ifeq ($(SUBPROJECT),)
-         # Inside a keymap folder, just build the keymap, with the
-         # default subproject
-        .DEFAULT_GOAL := $(KEYBOARD)-$(KEYMAP)
-    else
-         # Inside a subproject keyamp folder, build the keymap
-         # for that subproject
-        .DEFAULT_GOAL := $(KEYBOARD)-$(SUBPROJECT)-$(KEYMAP)
-    endif
-else ifneq ($(SUBPROJECT),)
-     # Inside a subproject folder, build all keymaps for that subproject
-    .DEFAULT_GOAL := $(KEYBOARD)-$(SUBPROJECT)-allkm
+    .DEFAULT_GOAL := $(KEYBOARD):$(KEYMAP)
 else ifneq ($(KEYBOARD),)
      # Inside a keyboard folder, build all keymaps for all subprojects
      # Note that this is different from the old behaviour, which would
      # build only the default keymap of the default keyboard
-    .DEFAULT_GOAL := $(KEYBOARD)-allsp-allkm
+    .DEFAULT_GOAL := $(KEYBOARD):all
 endif
 
 
 # Compare the start of the RULE variable with the first argument($1)
-# If the rules equals $1 or starts with $1-, RULE_FOUND is set to true
+# If the rules equals $1 or starts with $1:, RULE_FOUND is set to true
 #     and $1 is removed from the RULE variable
 # Otherwise the RULE_FOUND variable is set to false, and RULE left as it was
 # 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
         RULE:=
         RULE_FOUND := true
     else
-        STARTDASH_REMOVED=$$(subst START$1-,,START$$(RULE))
-        ifneq ($$(STARTDASH_REMOVED),START$$(RULE))
+        STARTCOLON_REMOVED=$$(subst START$1:,,START$$(RULE))
+        ifneq ($$(STARTCOLON_REMOVED),START$$(RULE))
             RULE_FOUND := true
-            RULE := $$(STARTDASH_REMOVED)
+            RULE := $$(STARTCOLON_REMOVED)
         else
             RULE_FOUND := false
         endif
@@ -229,14 +235,14 @@ define PARSE_ALL_IN_LIST
 endef
 
 # The entry point for rule parsing
-# parses a rule in the format <keyboard>-<subproject>-<keymap>-<target>
+# parses a rule in the format <keyboard>:<keymap>:<target>
 # but this particular function only deals with the first <keyboard> part
 define PARSE_RULE
     RULE := $1
     COMMANDS :=
-    # If the rule starts with allkb, then continue the parsing from
+    # If the rule starts with all, then continue the parsing from
     # PARSE_ALL_KEYBOARDS
-    ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allkb),true)
+    ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true)
         $$(eval $$(call PARSE_ALL_KEYBOARDS))
     else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,test),true)
         $$(eval $$(call PARSE_TEST))
@@ -250,35 +256,106 @@ define PARSE_RULE
         $$(eval $$(call PARSE_KEYBOARD,$$(KEYBOARD)))
     else
         $$(info make: *** No rule to make target '$1'. Stop.)
-        # Notice the tab instead of spaces below!
-               exit 1
+        $$(info |)
+        $$(info |  QMK's make format recently changed to use folder locations and colons:)
+        $$(info |     make project_folder:keymap[:target])
+        $$(info |  Examples:)
+        $$(info |     make planck/rev4:default:dfu)
+        $$(info |     make planck:default)
+        $$(info |)
     endif
 endef
 
 # $1 = Keyboard
-# Parses a rule in the format <subproject>-<keymap>-<target>
+# Parses a rule in the format <keymap>:<target>
 # the keyboard is already known when entering this function
 define PARSE_KEYBOARD
+    # If we want to compile the default subproject, then we need to
+    # include the correct makefile to determine the actual name of it
     CURRENT_KB := $1
-    # A subproject is any keyboard subfolder with a makefile
-    SUBPROJECTS := $$(notdir $$(patsubst %/rules.mk,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/*/rules.mk)))
-    # if the rule starts with allsp, then continue with looping over all subprojects
-    ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allsp),true)
-        $$(eval $$(call PARSE_ALL_SUBPROJECTS))
-    # A special case for matching the defaultsp (default subproject)
-    else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,defaultsp),true)
-        $$(eval $$(call PARSE_SUBPROJECT,defaultsp))
-    # If the rule starts with the name of a known subproject
-    else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(SUBPROJECTS)),true)
-        $$(eval $$(call PARSE_SUBPROJECT,$$(MATCHED_ITEM)))
-    # Try to use the SUBPROJECT variable, which is either determined by the
-    # directory which invoked make, or passed as an argument to make
-    else ifneq ($$(SUBPROJECT),)
-        $$(eval $$(call PARSE_SUBPROJECT,$$(SUBPROJECT)))
-       # If there's no matching subproject, we assume it's the default
-       # This will allow you to leave the subproject part of the target out
+
+    # KEYBOARD_FOLDERS := $$(subst /, , $(CURRENT_KB))
+
+    DEFAULT_FOLDER := $$(CURRENT_KB)
+
+    # We assume that every rules.mk will contain the full default value
+    $$(eval include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/rules.mk)
+    ifneq ($$(DEFAULT_FOLDER),$$(CURRENT_KB))
+        $$(eval include $(ROOT_DIR)/keyboards/$$(DEFAULT_FOLDER)/rules.mk)
+    endif
+    CURRENT_KB := $$(DEFAULT_FOLDER)
+
+    # 5/4/3/2/1
+    KEYBOARD_FOLDER_PATH_1 := $$(CURRENT_KB)
+    KEYBOARD_FOLDER_PATH_2 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_1)))
+    KEYBOARD_FOLDER_PATH_3 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_2)))
+    KEYBOARD_FOLDER_PATH_4 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_3)))
+    KEYBOARD_FOLDER_PATH_5 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_4)))
+    KEYBOARD_FOLDER_1 := $$(notdir $$(KEYBOARD_FOLDER_PATH_1))
+    KEYBOARD_FOLDER_2 := $$(notdir $$(KEYBOARD_FOLDER_PATH_2))
+    KEYBOARD_FOLDER_3 := $$(notdir $$(KEYBOARD_FOLDER_PATH_3))
+    KEYBOARD_FOLDER_4 := $$(notdir $$(KEYBOARD_FOLDER_PATH_4))
+    KEYBOARD_FOLDER_5 := $$(notdir $$(KEYBOARD_FOLDER_PATH_5))
+
+    KEYMAPS :=
+    # get a list of all keymaps
+    KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/keymaps/*/.)))
+    KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/keymaps/*/.)))
+    KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.)))
+    KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.)))
+    KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.)))
+    KEYMAPS := $$(sort $$(filter-out $$(KEYBOARD_FOLDER_1) $$(KEYBOARD_FOLDER_2) \
+        $$(KEYBOARD_FOLDER_3) $$(KEYBOARD_FOLDER_4) $$(KEYBOARD_FOLDER_5), $$(KEYMAPS)))
+
+    KEYBOARD_LAYOUTS :=
+    ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_5)/rules.mk)","")
+      LAYOUTS :=
+      $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_5)/rules.mk)
+      KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
+    endif
+    ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_4)/rules.mk)","")
+      LAYOUTS :=
+      $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_4)/rules.mk)
+      KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
+    endif
+    ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_3)/rules.mk)","")
+      LAYOUTS :=
+      $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_3)/rules.mk)
+      KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
+    endif
+    ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_2)/rules.mk)","")
+      LAYOUTS :=
+      $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_2)/rules.mk)
+      KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
+    endif
+    ifneq ("$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_1)/rules.mk)","")
+      LAYOUTS :=
+      $$(eval include $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_1)/rules.mk)
+      KEYBOARD_LAYOUTS := $$(sort $$(LAYOUTS) $$(KEYBOARD_LAYOUTS))
+    endif
+
+    LAYOUT_KEYMAPS :=
+    $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.)))))
+    
+    KEYMAPS := $$(sort $$(KEYMAPS) $$(LAYOUT_KEYMAPS))
+
+    # if the rule after removing the start of it is empty (we haven't specified a kemap or target)
+    # compile all the keymaps
+    ifeq ($$(RULE),)
+        $$(eval $$(call PARSE_ALL_KEYMAPS))
+    # The same if all was specified
+    else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,all),true)
+        $$(eval $$(call PARSE_ALL_KEYMAPS))
+    # Try to match the specified keyamp with the list of known keymaps
+    else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYMAPS)),true)
+        $$(eval $$(call PARSE_KEYMAP,$$(MATCHED_ITEM)))
+    # Otherwise try to match the keymap from the current folder, or arguments to the make command
+    else ifneq ($$(KEYMAP),)
+        $$(eval $$(call PARSE_KEYMAP,$$(KEYMAP)))
+    # Otherwise, make all keymaps, again this is consistent with how it works without
+    # any arguments
     else
-        $$(eval $$(call PARSE_SUBPROJECT,))
+        $$(eval $$(call PARSE_ALL_KEYMAPS))
     endif
 endef
 
@@ -291,86 +368,19 @@ endef
 # $1 Subproject
 # When entering this, the keyboard and subproject are known, so now we need
 # to determine which keymaps are going to get compiled
-define PARSE_SUBPROJECT
-    # If we want to compile the default subproject, then we need to
-    # include the correct makefile to determine the actual name of it
-    CURRENT_SP := $1
-    ifeq ($$(CURRENT_SP),)
-        CURRENT_SP := defaultsp
-    endif
-    ifeq ($$(CURRENT_SP),defaultsp)
-        SUBPROJECT_DEFAULT=
-        ifneq ("$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/subproject.mk)","")
-            $$(eval include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/subproject.mk)
-        endif
-        CURRENT_SP := $$(SUBPROJECT_DEFAULT)
-    endif
-    # If current subproject is empty (the default was not defined), and we have a list of subproject
-    # then make all of them
-    ifeq ($$(CURRENT_SP),)
-        ifneq ($$(SUBPROJECTS),)
-            CURRENT_SP := allsp
-         endif
-    endif
-    # The special allsp is handled later
-    ifneq ($$(CURRENT_SP),allsp)
-        # get a list of all keymaps
-        KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/keymaps/*/.)))
-        LAYOUTS :=
-        $$(eval -include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/rules.mk)
-        KEYBOARD_LAYOUTS := $$(LAYOUTS)
-        ifneq ($$(CURRENT_SP),)
-            # if the subproject is defined, then also look for keymaps inside the subproject folder
-            SP_KEYMAPS := $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/$$(CURRENT_SP)/keymaps/*/.)))
-            KEYMAPS := $$(sort $$(KEYMAPS) $$(SP_KEYMAPS))
-               # $$(eval -include $(ROOT_DIR)/keyboards/$$(CURRENT_KB)/$$(CURRENT_SP)/rules.mk)
-               # KEYBOARD_LAYOUTS := $$(sort $$(KEYBOARD_LAYOUTS) $$(LAYOUTS))
-        endif
+# define PARSE_SUBPROJECT
 
-        LAYOUT_KEYMAPS :=
-        $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.)))))
-        
-        KEYMAPS := $$(sort $$(KEYMAPS) $$(LAYOUT_KEYMAPS))
-        # if the rule after removing the start of it is empty (we haven't specified a kemap or target)
-        # compile all the keymaps
-        ifeq ($$(RULE),)
-            $$(eval $$(call PARSE_ALL_KEYMAPS))
-        # The same if allkm was specified
-        else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allkm),true)
-            $$(eval $$(call PARSE_ALL_KEYMAPS))
-        # Try to match the specified keyamp with the list of known keymaps
-        else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYMAPS)),true)
-            $$(eval $$(call PARSE_KEYMAP,$$(MATCHED_ITEM)))
-        # Otherwise try to match the keymap from the current folder, or arguments to the make command
-        else ifneq ($$(KEYMAP),)
-            $$(eval $$(call PARSE_KEYMAP,$$(KEYMAP)))
-        # No matching keymap found, so we assume that the rest of the rule is the target
-        # If we haven't been able to parse out a subproject, then make all of them
-        # This is consistent with running make without any arguments from the keyboard
-        # folder
-        else ifeq ($1,)
-            $$(eval $$(call PARSE_ALL_SUBPROJECTS))
-        # Otherwise, make all keymaps, again this is consistent with how it works without
-        # any arguments
-        else
-            $$(eval $$(call PARSE_ALL_KEYMAPS))
-        endif
-    else
-        # As earlier mentioned when allsb is specified, we call our self recursively
-        # for all of the subprojects
-        $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$(SUBPROJECTS)))
-    endif
-endef
+# endef
 
 # If we want to parse all subprojects, but the keyboard doesn't have any,
 # then use defaultsp instead
-define PARSE_ALL_SUBPROJECTS
-    ifeq ($$(SUBPROJECTS),)
-        $$(eval $$(call PARSE_SUBPROJECT,defaultsp))
-    else
-        $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$$(SUBPROJECTS)))
-    endif
-endef
+define PARSE_ALL_SUBPROJECTS
+    ifeq ($$(SUBPROJECTS),)
+        $$(eval $$(call PARSE_SUBPROJECT,defaultsp))
+    else
+        $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$$(SUBPROJECTS)))
+    endif
+endef
 
 # $1 Keymap
 # This is the meat of compiling a keyboard, when entering this, everything is known
@@ -380,21 +390,18 @@ endef
 define PARSE_KEYMAP
     CURRENT_KM = $1
     # The rest of the rule is the target
-    # Remove the leading "-" from the target, as it acts as a separator
-    MAKE_TARGET := $$(patsubst -%,%,$$(RULE))
+    # Remove the leading ":" from the target, as it acts as a separator
+    MAKE_TARGET := $$(patsubst :%,%,$$(RULE))
     # We need to generate an unique indentifer to append to the COMMANDS list
-    COMMAND := COMMAND_KEYBOARD_$$(CURRENT_KB)_SUBPROJECT_$(CURRENT_SP)_KEYMAP_$$(CURRENT_KM)
+    CURRENT_KB_UNDER := $$(subst /,_,$$(CURRENT_KB))
+    COMMAND := COMMAND_KEYBOARD_$$(CURRENT_KB_UNDER)_KEYMAP_$$(CURRENT_KM)
     # If we are compiling a keyboard without a subproject, we want to display just the name
     # of the keyboard, otherwise keyboard/subproject
-    ifeq ($$(CURRENT_SP),)
-        KB_SP := $(CURRENT_KB)
-    else
-        KB_SP := $(CURRENT_KB)/$$(CURRENT_SP)
-    endif
+    KB_SP := $$(CURRENT_KB)
     # Format it in bold
     KB_SP := $(BOLD)$$(KB_SP)$(NO_COLOR)
     # Specify the variables that we are passing forward to submake
-    MAKE_VARS := KEYBOARD=$$(CURRENT_KB) SUBPROJECT=$$(CURRENT_SP) KEYMAP=$$(CURRENT_KM)
+    MAKE_VARS := KEYBOARD=$$(CURRENT_KB) KEYMAP=$$(CURRENT_KM)
     # And the first part of the make command
     MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk $$(MAKE_TARGET)
     # The message to display
@@ -455,8 +462,8 @@ endef
 
 define PARSE_TEST
     TESTS :=
-    TEST_NAME := $$(firstword $$(subst -, ,$$(RULE)))
-    TEST_TARGET := $$(subst $$(TEST_NAME),,$$(subst $$(TEST_NAME)-,,$$(RULE)))
+    TEST_NAME := $$(firstword $$(subst :, ,$$(RULE)))
+    TEST_TARGET := $$(subst $$(TEST_NAME),,$$(subst $$(TEST_NAME):,,$$(RULE)))
     ifeq ($$(TEST_NAME),all)
         MATCHED_TESTS := $$(TEST_LIST)
     else
@@ -504,11 +511,6 @@ if [ $$error_occurred -gt 0 ]; then $(HANDLE_ERROR); fi;
 
 endef
 
-# Allow specifying just the subproject, in the keyboard directory, which will compile all keymaps
-SUBPROJECTS := $(notdir $(patsubst %/rules.mk,%,$(wildcard ./*/rules.mk)))
-.PHONY: $(SUBPROJECTS)
-$(SUBPROJECTS): %: %-allkm
-
 # Let's match everything, we handle all the rule parsing ourselves
 .PHONY: %
 %:
@@ -539,22 +541,24 @@ endif
        $(foreach TEST,$(TESTS),$(RUN_TEST))
        if [ -f $(ERROR_FILE) ]; then printf "$(MSG_ERRORS)" & exit 1; fi;
 
+# These no longer work because of the colon system
+
 # All should compile everything
-.PHONY: all
-all: all-keyboards test-all
+.PHONY: all
+all: all-keyboards test-all
 
 # Define some shortcuts, mostly for compatibility with the old syntax
-.PHONY: all-keyboards
-all-keyboards: allkb-allsp-allkm
+.PHONY: all-keyboards
+# all-keyboards: all\:all\:all
 
-.PHONY: all-keyboards-defaults
-all-keyboards-defaults: allkb-allsp-default
+.PHONY: all-keyboards-defaults
+# all-keyboards-defaults: all\:default
 
-.PHONY: test
-test: test-all
+.PHONY: test
+test: test-all
 
-.PHONY: test-clean
-test-clean: test-all-clean
+.PHONY: test-clean
+test-clean: test-all-clean
 
 lib/%:
        git submodule sync $?
diff --git a/autocomplete.sh b/autocomplete.sh
new file mode 100644 (file)
index 0000000..dffb260
--- /dev/null
@@ -0,0 +1 @@
+complete -W " 9key-default alps64-default amj40-default amj40-fabian amj60-default_60_ansi amj60-iso_split_rshift amj60-maximized amjpad-default amjpad-max amjpad-ortho_left amjpad-ortho_right atomic-default atomic-default_ortho_5x15 atomic-pvc atreus-alphadox atreus-classic atreus-default atreus-erlandsona atreus-gerb atreus-jeremy atreus-replicaJunction atreus-xyverz atreus62-atreus52 atreus62-default atreus62-mneme atreus62-xyverz bananasplit-0010 bananasplit-coloneljesus bananasplit-default bananasplit-hhkbanana bananasplit-nic bananasplit-rask bantam44-default chibios_test-default clueboard-bloodlvst clueboard-caps_fn clueboard-colemak clueboard-default clueboard-jokrik clueboard-mac_optimized clueboard-magicmonty clueboard-maximised clueboard-mouse_keys clueboard-serubin clueboard-shift_fn clueboard-skully clueboard-smt clueboard-tetris clueboard-unix_optimized clueboard-win_optimized clueboard-xyverz cluecard-default cluecard-rgb_effects cluepad-default deltasplit75-default deltasplit75-itsaferbie deltasplit75-protosplit dk60-default eco-default eco-that_canadian ergodone-333fred ergodone-ab ergodone-absenth ergodone-adam ergodone-adnw_k_o_y ergodone-albert ergodone-alexjj ergodone-algernon ergodone-alphadox ergodone-andrew_osx ergodone-belak ergodone-bepo ergodone-bepo_csa ergodone-bryan ergodone-coderkun_neo2 ergodone-colemak ergodone-colemak_osx_pc_no ergodone-colemak_programmer ergodone-common_nighthawk ergodone-csharp_dev ergodone-dave ergodone-deadcyclo ergodone-default ergodone-default_ergodox ergodone-dragon788 ergodone-dvorak ergodone-dvorak_emacs ergodone-dvorak_emacs_software ergodone-dvorak_intl_squisher ergodone-dvorak_plover ergodone-dvorak_programmer ergodone-dvorak_programmer_swe ergodone-dvorak_spanish ergodone-emacs_osx_dk ergodone-erez_experimental ergodone-familiar ergodone-french_hacker ergodone-galson ergodone-german ergodone-german-kinergo ergodone-german-lukas ergodone-german-manuneo ergodone-guni ergodone-ishigoya-jp ergodone-italian ergodone-j3rn ergodone-jack ergodone-jacobono ergodone-jafo ergodone-jgarr ergodone-josh ergodone-kastyle ergodone-kines-ish ergodone-kristian ergodone-maz ergodone-mclennon_osx ergodone-mpiechotka ergodone-msc ergodone-naps62 ergodone-neo2_on_qwertz_hardware ergodone-norwegian_programmer_osx_pc ergodone-norwegian_programmer_osx_pc_colemak ergodone-ordinary ergodone-osx_de ergodone-osx_de_adnw_koy ergodone-osx_de_experimental ergodone-osx_fr ergodone-osx_kinesis_pnut ergodone-osx_whiskey_tango_foxtrot_capslock ergodone-phoenix ergodone-plover ergodone-plums ergodone-pvinis ergodone-replicaJunction ergodone-reset_eeprom ergodone-robot_test_layout ergodone-romanzolotarev-norman-osx ergodone-romanzolotarev-norman-plover-osx ergodone-romanzolotarev-norman-plover-osx-hjkl ergodone-romanzolotarev-norman-qwerty-osx ergodone-sethbc ergodone-siroken3 ergodone-sneako ergodone-software_neo2 ergodone-supercoder ergodone-swedish ergodone-swedish-lindhe ergodone-swissgerman ergodone-techtomas ergodone-teckinesis ergodone-tkuichooseyou ergodone-tm2030 ergodone-tonyabra_osx ergodone-townk_osx ergodone-twentylives_dvorak_with_hebrew ergodone-twey ergodone-videck ergodone-win10_writers-block ergodone-workman_osx_mdw ergodone-xyverz ergodone-yoruian ergodone-zweihander-osx ergodox_ez-333fred ergodox_ez-ab ergodox_ez-absenth ergodox_ez-adam ergodox_ez-adnw_k_o_y ergodox_ez-albert ergodox_ez-alexjj ergodox_ez-algernon ergodox_ez-alphadox ergodox_ez-andrew_osx ergodox_ez-belak ergodox_ez-bepo ergodox_ez-bepo_csa ergodox_ez-blakedietz ergodox_ez-bryan ergodox_ez-coderkun_neo2 ergodox_ez-colemak ergodox_ez-colemak_osx_pc_no ergodox_ez-colemak_programmer ergodox_ez-common_nighthawk ergodox_ez-csharp_dev ergodox_ez-dave ergodox_ez-deadcyclo ergodox_ez-default ergodox_ez-default_ergodox ergodox_ez-default_osx ergodox_ez-dragon788 ergodox_ez-drashna ergodox_ez-drashna-custom ergodox_ez-dvorak ergodox_ez-dvorak_emacs ergodox_ez-dvorak_emacs_software ergodox_ez-dvorak_intl_squisher ergodox_ez-dvorak_plover ergodox_ez-dvorak_programmer ergodox_ez-dvorak_programmer_swe ergodox_ez-dvorak_spanish ergodox_ez-emacs_osx_dk ergodox_ez-erez_experimental ergodox_ez-familiar ergodox_ez-french_hacker ergodox_ez-galson ergodox_ez-german ergodox_ez-german-kinergo ergodox_ez-german-lukas ergodox_ez-german-manuneo ergodox_ez-guni ergodox_ez-ishigoya-jp ergodox_ez-italian ergodox_ez-j3rn ergodox_ez-jack ergodox_ez-jacobono ergodox_ez-jafo ergodox_ez-jgarr ergodox_ez-josh ergodox_ez-kastyle ergodox_ez-kines-ish ergodox_ez-kristian ergodox_ez-maz ergodox_ez-mclennon_osx ergodox_ez-mpiechotka ergodox_ez-msc ergodox_ez-naps62 ergodox_ez-neo2_on_qwertz_hardware ergodox_ez-norwegian_programmer_osx_pc ergodox_ez-norwegian_programmer_osx_pc_colemak ergodox_ez-ordinary ergodox_ez-osx_de ergodox_ez-osx_de_adnw_koy ergodox_ez-osx_de_experimental ergodox_ez-osx_fr ergodox_ez-osx_kinesis_pnut ergodox_ez-osx_whiskey_tango_foxtrot_capslock ergodox_ez-phoenix ergodox_ez-plover ergodox_ez-plums ergodox_ez-profet_80 ergodox_ez-pvinis ergodox_ez-replicaJunction ergodox_ez-reset_eeprom ergodox_ez-robot_test_layout ergodox_ez-romanzolotarev-norman-osx ergodox_ez-romanzolotarev-norman-plover-osx ergodox_ez-romanzolotarev-norman-plover-osx-hjkl ergodox_ez-romanzolotarev-norman-qwerty-osx ergodox_ez-sethbc ergodox_ez-siroken3 ergodox_ez-sneako ergodox_ez-software_neo2 ergodox_ez-steno ergodox_ez-supercoder ergodox_ez-swedish ergodox_ez-swedish-lindhe ergodox_ez-swissgerman ergodox_ez-techtomas ergodox_ez-teckinesis ergodox_ez-tkuichooseyou ergodox_ez-tm2030 ergodox_ez-tonyabra_osx ergodox_ez-townk_osx ergodox_ez-twentylives_dvorak_with_hebrew ergodox_ez-twey ergodox_ez-videck ergodox_ez-win10_writers-block ergodox_ez-workman_osx_mdw ergodox_ez-xyverz ergodox_ez-yoruian ergodox_ez-zweihander-osx ergodox_infinity-333fred ergodox_infinity-ab ergodox_infinity-absenth ergodox_infinity-adam ergodox_infinity-adnw_k_o_y ergodox_infinity-albert ergodox_infinity-alexjj ergodox_infinity-algernon ergodox_infinity-alphadox ergodox_infinity-andrew_osx ergodox_infinity-belak ergodox_infinity-bepo ergodox_infinity-bepo_csa ergodox_infinity-bryan ergodox_infinity-coderkun_neo2 ergodox_infinity-colemak ergodox_infinity-colemak_osx_pc_no ergodox_infinity-colemak_programmer ergodox_infinity-common_nighthawk ergodox_infinity-csharp_dev ergodox_infinity-dave ergodox_infinity-deadcyclo ergodox_infinity-default_ergodox ergodox_infinity-dragon788 ergodox_infinity-dvorak ergodox_infinity-dvorak_emacs ergodox_infinity-dvorak_emacs_software ergodox_infinity-dvorak_intl_squisher ergodox_infinity-dvorak_plover ergodox_infinity-dvorak_programmer ergodox_infinity-dvorak_programmer_swe ergodox_infinity-dvorak_spanish ergodox_infinity-emacs_osx_dk ergodox_infinity-erez_experimental ergodox_infinity-familiar ergodox_infinity-french_hacker ergodox_infinity-galson ergodox_infinity-german ergodox_infinity-german-kinergo ergodox_infinity-german-lukas ergodox_infinity-german-manuneo ergodox_infinity-guni ergodox_infinity-ishigoya-jp ergodox_infinity-italian ergodox_infinity-j3rn ergodox_infinity-jack ergodox_infinity-jacobono ergodox_infinity-jafo ergodox_infinity-jgarr ergodox_infinity-josh ergodox_infinity-kastyle ergodox_infinity-kines-ish ergodox_infinity-kristian ergodox_infinity-maz ergodox_infinity-mclennon_osx ergodox_infinity-mpiechotka ergodox_infinity-msc ergodox_infinity-naps62 ergodox_infinity-neo2_on_qwertz_hardware ergodox_infinity-norwegian_programmer_osx_pc ergodox_infinity-norwegian_programmer_osx_pc_colemak ergodox_infinity-ordinary ergodox_infinity-osx_de ergodox_infinity-osx_de_adnw_koy ergodox_infinity-osx_de_experimental ergodox_infinity-osx_fr ergodox_infinity-osx_kinesis_pnut ergodox_infinity-osx_whiskey_tango_foxtrot_capslock ergodox_infinity-phoenix ergodox_infinity-plover ergodox_infinity-plums ergodox_infinity-pvinis ergodox_infinity-replicaJunction ergodox_infinity-reset_eeprom ergodox_infinity-robot_test_layout ergodox_infinity-romanzolotarev-norman-osx ergodox_infinity-romanzolotarev-norman-plover-osx ergodox_infinity-romanzolotarev-norman-plover-osx-hjkl ergodox_infinity-romanzolotarev-norman-qwerty-osx ergodox_infinity-sethbc ergodox_infinity-siroken3 ergodox_infinity-sneako ergodox_infinity-software_neo2 ergodox_infinity-supercoder ergodox_infinity-swedish ergodox_infinity-swedish-lindhe ergodox_infinity-swissgerman ergodox_infinity-techtomas ergodox_infinity-teckinesis ergodox_infinity-tkuichooseyou ergodox_infinity-tm2030 ergodox_infinity-tonyabra_osx ergodox_infinity-townk_osx ergodox_infinity-twentylives_dvorak_with_hebrew ergodox_infinity-twey ergodox_infinity-videck ergodox_infinity-win10_writers-block ergodox_infinity-workman_osx_mdw ergodox_infinity-xyverz ergodox_infinity-yoruian ergodox_infinity-zweihander-osx four_banger-default frosty_flake-default frosty_flake-nikchi frosty_flake-tkl gh60-dbroqua gh60-dbroqua_7U gh60-default gh60-default_60_ansi gh60-default_60_ansi_split_bs_rshift gh60-default_60_iso gh60-robotmaxtron gh60-sethbc gh60-talljoe gh60-unxmaal gh60-xyverz gherkin-default gherkin-mjt gherkin-steno gherkin-talljoe gonnerd-default gonnerd-mauin gonnerd-tkl hadron-default hadron-side_numpad hhkb-blakedietz hhkb-cinaeco hhkb-dbroqua hhkb-default hhkb-jp hhkb-jp_mac hhkb-lxol hhkb-mjt hhkb-rdg_jp hhkb-sh_jp hhkb-shela hhkb-smt infinity60-default infinity60-default_60_ansi_split_bs_rshift infinity60-depariel infinity60-hasu infinity60-jpetermans infinity60-talljoe jc65-default jc65-jetpacktuxedo jd40-default jd40-vanagon jd45-blakedietz jd45-default jd45-jeebak jd45-justin jd45-mjt jd45-mjt6u kbd75-default kc60-dbroqua kc60-dbroqua_hhkb kc60-default kc60-default_60_ansi kc60-mechmerlin kc60-sgoodwin kc60-stanleylai kc60-wigguno kc60-workman-dead kc60-ws2812 kinesis-default kinesis-dvorak kinesis-milestogo kinesis-xyverz kitten_paw-default kitten_paw-ickerwx kmac-default kmac-winkeyless lets_split-OLED_sample lets_split-adam lets_split-dale lets_split-default lets_split-default_ortho_4x12 lets_split-ergodoxish lets_split-fabian lets_split-henxing lets_split-hexwire lets_split-khord lets_split-mbsurfer lets_split-mjt lets_split-piemod lets_split-smt lets_split-xk lets_split-xyverz m10a-default maxipad-default mechmini-default minidox-default minidox-that_canadian mitosis-carvac_dv mitosis-default mitosis-mjt miuni32-adam-lee miuni32-default miuni32-ht_156 nyquist-333fred nyquist-default nyquist-default_ortho_5x12 nyquist-hexwire org60-boardy org60-default orthodox-default pegasushoof-blowrak pegasushoof-default phantom-default phantom-rgbmod phantom-xyverz planck-ab planck-alexey planck-angerthosenear planck-austin planck-basic planck-bone2planck planck-brandon planck-callum planck-cbbrowne planck-chance planck-charlie planck-circuit planck-coloneljesus planck-dale planck-daniel planck-david planck-dbroqua planck-default planck-default_ortho_4x12 planck-dshields planck-dzobert planck-ergodoxish planck-espynn planck-experimental planck-gabriel planck-handwired_binaryplease planck-impossible planck-jacob planck-jeebak planck-jeremy-dev planck-jhenahan planck-joe planck-johannes planck-khord planck-kyle planck-lae3 planck-leo planck-lucas planck-lukas planck-luke planck-max planck-mitch planck-mjt planck-mjtnumsym planck-mollat planck-nico planck-originerd planck-pete planck-piemod planck-premek planck-priyadi planck-pvc planck-rai-suta planck-sgoodwin planck-smt planck-steno planck-tak3over planck-thermal_printer planck-tong92 planck-unicode planck-vifon planck-xyverz planck-yale planck-yang planck-zach preonic-0xdec preonic-CMD-Preonic preonic-dale preonic-default preonic-default_ortho_5x12 preonic-jacwib preonic-kinesis preonic-nikchi preonic-smt preonic-xyverz preonic-zach ps2avrGB-default roadkit-default roadkit-default_ortho_4x4 roadkit-flipphone roadkit-mjt roadkit-singles roadkit-singlesBrent s60_x-ansi_qwertz s60_x-bluebear s60_x-custom s60_x-dbroqua s60_x-default s60_x-hasu s60_x-hhkb s60_x-iso s60_x-jpec s60_x-plain s60_x-poker s60_x-poker_bit s60_x-poker_set s60_x-spacefn s65_x-default s65_x-iso s65_x-nall s65_x-smt satan-admiralStrokers satan-ben_iso satan-colemak satan-dbroqua satan-default satan-default_60_ansi satan-default_60_ansi_split_bs_rshift satan-default_60_iso satan-denolfe satan-iso_split_rshift satan-mark1 satan-midi satan-poker satan-rask63 satan-sethbc satan-smt satan-stanleylai satan-talljoe satan-unxmaal sixkeyboard-default subatomic-default sweet16-default tada68-default tada68-maartenwut tada68-rgb tiger_lily-default tv44-belak tv44-core tv44-default tv44-jeebak tv44-jetpacktuxedo tv44-mjt tv44-smt tv44-tong92 tv44-xyverz uk78-default vision_division-default whitefox-default whitefox-jetpacktuxedo whitefox-matt3o xd60-cheese xd60-default xd60-stanleylai xd75-default xd75-default_ortho_5x15 xd75-fabian" make
index 88b876bac9d98f2fa27d927b46661f28e4987a0c..45020785028d08793e2f0cc90ebb570ce247e542 100644 (file)
@@ -6,18 +6,26 @@ endif
 
 include common.mk
 
-ifneq ($(SUBPROJECT),)
-    TARGET ?= $(KEYBOARD)_$(SUBPROJECT)_$(KEYMAP)
-    KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD)_$(SUBPROJECT)
-else
-    TARGET ?= $(KEYBOARD)_$(KEYMAP)
-    KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD)
-endif
+# 5/4/3/2/1
+KEYBOARD_FOLDER_PATH_1 := $(KEYBOARD)
+KEYBOARD_FOLDER_PATH_2 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_1)))
+KEYBOARD_FOLDER_PATH_3 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_2)))
+KEYBOARD_FOLDER_PATH_4 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_3)))
+KEYBOARD_FOLDER_PATH_5 := $(patsubst %/,%,$(dir $(KEYBOARD_FOLDER_PATH_4)))
+KEYBOARD_FOLDER_1 := $(notdir $(KEYBOARD_FOLDER_PATH_1))
+KEYBOARD_FOLDER_2 := $(notdir $(KEYBOARD_FOLDER_PATH_2))
+KEYBOARD_FOLDER_3 := $(notdir $(KEYBOARD_FOLDER_PATH_3))
+KEYBOARD_FOLDER_4 := $(notdir $(KEYBOARD_FOLDER_PATH_4))
+KEYBOARD_FOLDER_5 := $(notdir $(KEYBOARD_FOLDER_PATH_5))
+
+KEYBOARD_FILESAFE := $(subst /,_,$(KEYBOARD))
+
+TARGET ?= $(KEYBOARD_FILESAFE)_$(KEYMAP)
+KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD_FILESAFE)
 
 # Force expansion
 TARGET := $(TARGET)
 
-
 MASTER ?= left
 ifdef master
     MASTER = $(master)
@@ -31,28 +39,62 @@ $(error MASTER does not have a valid value(left/right))
     endif
 endif
 
-KEYBOARD_PATH := keyboards/$(KEYBOARD)
-KEYBOARD_C := $(KEYBOARD_PATH)/$(KEYBOARD).c
+KEYBOARD_PATHS :=
 
-ifneq ("$(wildcard $(KEYBOARD_C))","")
-    include $(KEYBOARD_PATH)/rules.mk
-else
-    $(error "$(KEYBOARD_C)" does not exist)
-endif
-OPT_DEFS += -DKEYBOARD_$(KEYBOARD)
-
-ifneq ($(SUBPROJECT),)
-    SUBPROJECT_PATH := keyboards/$(KEYBOARD)/$(SUBPROJECT)
-    SUBPROJECT_C := $(SUBPROJECT_PATH)/$(SUBPROJECT).c
-    ifneq ("$(wildcard $(SUBPROJECT_C))","")
-        OPT_DEFS += -DSUBPROJECT_$(SUBPROJECT)
-        include $(SUBPROJECT_PATH)/rules.mk
-    else
-        $(error "$(SUBPROJECT_PATH)/$(SUBPROJECT).c" does not exist)
-    endif
+KEYBOARD_PATH_1 := keyboards/$(KEYBOARD_FOLDER_PATH_1)
+KEYBOARD_PATH_2 := keyboards/$(KEYBOARD_FOLDER_PATH_2)
+KEYBOARD_PATH_3 := keyboards/$(KEYBOARD_FOLDER_PATH_3)
+KEYBOARD_PATH_4 := keyboards/$(KEYBOARD_FOLDER_PATH_4)
+KEYBOARD_PATH_5 := keyboards/$(KEYBOARD_FOLDER_PATH_5)
+
+ifneq ("$(wildcard $(KEYBOARD_PATH_5)/rules.mk)","")
+    KEYBOARD_PATHS += $(KEYBOARD_PATH_5)
+    include $(KEYBOARD_PATH_5)/rules.mk
+endif
+ifneq ("$(wildcard $(KEYBOARD_PATH_4)/rules.mk)","")
+    KEYBOARD_PATHS += $(KEYBOARD_PATH_4)
+    include $(KEYBOARD_PATH_4)/rules.mk
+endif
+ifneq ("$(wildcard $(KEYBOARD_PATH_3)/rules.mk)","")
+    KEYBOARD_PATHS += $(KEYBOARD_PATH_3)
+    include $(KEYBOARD_PATH_3)/rules.mk
 endif
+ifneq ("$(wildcard $(KEYBOARD_PATH_2)/rules.mk)","")
+    KEYBOARD_PATHS += $(KEYBOARD_PATH_2)
+    include $(KEYBOARD_PATH_2)/rules.mk
+endif
+ifneq ("$(wildcard $(KEYBOARD_PATH_1)/rules.mk)","")
+    KEYBOARD_PATHS += $(KEYBOARD_PATH_1)
+    include $(KEYBOARD_PATH_1)/rules.mk
+endif
+
+KEYBOARD_SRC :=
+
+KEYBOARD_C_1 := $(KEYBOARD_PATH_1)/$(KEYBOARD_FOLDER_1).c
+KEYBOARD_C_2 := $(KEYBOARD_PATH_2)/$(KEYBOARD_FOLDER_2).c
+KEYBOARD_C_3 := $(KEYBOARD_PATH_3)/$(KEYBOARD_FOLDER_3).c
+KEYBOARD_C_4 := $(KEYBOARD_PATH_4)/$(KEYBOARD_FOLDER_4).c
+KEYBOARD_C_5 := $(KEYBOARD_PATH_5)/$(KEYBOARD_FOLDER_5).c
 
-# We can assume a ChibiOS target When MCU_FAMILY is defined, since it's not used for LUFA
+ifneq ("$(wildcard $(KEYBOARD_C_5))","")
+    KEYBOARD_SRC += $(KEYBOARD_C_5)
+endif
+ifneq ("$(wildcard $(KEYBOARD_C_4))","")
+    KEYBOARD_SRC += $(KEYBOARD_C_4)
+endif
+ifneq ("$(wildcard $(KEYBOARD_C_3))","")
+    KEYBOARD_SRC += $(KEYBOARD_C_3)
+endif
+ifneq ("$(wildcard $(KEYBOARD_C_2))","")
+    KEYBOARD_SRC += $(KEYBOARD_C_2)
+endif
+ifneq ("$(wildcard $(KEYBOARD_C_1))","")
+    KEYBOARD_SRC += $(KEYBOARD_C_1)
+endif
+
+OPT_DEFS += -DKEYBOARD_$(KEYBOARD_FILESAFE)
+
+# We can assume a ChibiOS target When MCU_FAMILY is defined , since it's not used for LUFA
 ifdef MCU_FAMILY
     PLATFORM=CHIBIOS
 else
@@ -63,44 +105,80 @@ ifeq ($(PLATFORM),CHIBIOS)
     include $(TMK_PATH)/protocol/chibios.mk
     include $(TMK_PATH)/chibios.mk
     OPT_OS = chibios
-    ifneq ("$(wildcard $(SUBPROJECT_PATH)/bootloader_defs.h)","")
-        OPT_DEFS += -include $(SUBPROJECT_PATH)/bootloader_defs.h
-    else ifneq ("$(wildcard $(SUBPROJECT_PATH)/boards/$(BOARD)/bootloader_defs.h)","")
-        OPT_DEFS += -include $(SUBPROJECT_PATH)/boards/$(BOARD)/bootloader_defs.h
-    else ifneq ("$(wildcard $(KEYBOARD_PATH)/bootloader_defs.h)","")
-        OPT_DEFS += -include $(KEYBOARD_PATH)/bootloader_defs.h
-    else ifneq ("$(wildcard $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h)","")
-        OPT_DEFS += -include $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h
+    ifneq ("$(wildcard $(KEYBOARD_PATH_5)/bootloader_defs.h)","")
+        OPT_DEFS += -include $(KEYBOARD_PATH_5)/bootloader_defs.h
+     else ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/bootloader_defs.h)","")
+        OPT_DEFS += -include $(KEYBOARD_PATH_5)/boards/$(BOARD)/bootloader_defs.h
+    else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/bootloader_defs.h)","")
+        OPT_DEFS += -include $(KEYBOARD_PATH_4)/bootloader_defs.h
+     else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/boards/$(BOARD)/bootloader_defs.h)","")
+        OPT_DEFS += -include $(KEYBOARD_PATH_4)/boards/$(BOARD)/bootloader_defs.h
+    else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/bootloader_defs.h)","")
+        OPT_DEFS += -include $(KEYBOARD_PATH_3)/bootloader_defs.h
+     else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/boards/$(BOARD)/bootloader_defs.h)","")
+        OPT_DEFS += -include $(KEYBOARD_PATH_3)/boards/$(BOARD)/bootloader_defs.h
+    else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/bootloader_defs.h)","")
+        OPT_DEFS += -include $(KEYBOARD_PATH_2)/bootloader_defs.h
+     else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/boards/$(BOARD)/bootloader_defs.h)","")
+        OPT_DEFS += -include $(KEYBOARD_PATH_2)/boards/$(BOARD)/bootloader_defs.h
+    else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/bootloader_defs.h)","")
+        OPT_DEFS += -include $(KEYBOARD_PATH_1)/bootloader_defs.h
+     else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h)","")
+        OPT_DEFS += -include $(KEYBOARD_PATH_1)/boards/$(BOARD)/bootloader_defs.h
     endif
 endif
 
-CONFIG_H = $(KEYBOARD_PATH)/config.h
-ifneq ($(SUBPROJECT),)
-    ifneq ("$(wildcard $(SUBPROJECT_C))","")
-        CONFIG_H = $(SUBPROJECT_PATH)/config.h
-    endif
+CONFIG_H :=
+ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","")
+    CONFIG_H += $(KEYBOARD_PATH_5)/config.h
+endif
+ifneq ("$(wildcard $(KEYBOARD_PATH_4)/config.h)","")
+    CONFIG_H += $(KEYBOARD_PATH_4)/config.h
+endif
+ifneq ("$(wildcard $(KEYBOARD_PATH_3)/config.h)","")
+    CONFIG_H += $(KEYBOARD_PATH_3)/config.h
+endif
+ifneq ("$(wildcard $(KEYBOARD_PATH_2)/config.h)","")
+    CONFIG_H += $(KEYBOARD_PATH_2)/config.h
+endif
+ifneq ("$(wildcard $(KEYBOARD_PATH_1)/config.h)","")
+    CONFIG_H += $(KEYBOARD_PATH_1)/config.h
 endif
 
 # Save the defines and includes here, so we don't include any keymap specific ones
 PROJECT_DEFS := $(OPT_DEFS)
-PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(SUBPROJECT_PATH) $(KEYBOARD_PATH)
+PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS)
 PROJECT_CONFIG := $(CONFIG_H)
 
-MAIN_KEYMAP_PATH := $(KEYBOARD_PATH)/keymaps/$(KEYMAP)
-MAIN_KEYMAP_C := $(MAIN_KEYMAP_PATH)/keymap.c
-SUBPROJ_KEYMAP_PATH := $(SUBPROJECT_PATH)/keymaps/$(KEYMAP)
-SUBPROJ_KEYMAP_C := $(SUBPROJ_KEYMAP_PATH)/keymap.c
-ifneq ("$(wildcard $(SUBPROJ_KEYMAP_C))","")
-    -include $(SUBPROJ_KEYMAP_PATH)/rules.mk
-    KEYMAP_C := $(SUBPROJ_KEYMAP_C)
-    KEYMAP_PATH := $(SUBPROJ_KEYMAP_PATH)
-else ifneq ("$(wildcard $(MAIN_KEYMAP_C))","")
-    -include $(MAIN_KEYMAP_PATH)/rules.mk
-    KEYMAP_C := $(MAIN_KEYMAP_C)
-    KEYMAP_PATH := $(MAIN_KEYMAP_PATH)
+MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP)
+MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP)
+MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP)
+MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP)
+MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP)
+
+ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","")
+    -include $(MAIN_KEYMAP_PATH_5)/rules.mk
+    KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c
+    KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
+else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","")
+    -include $(MAIN_KEYMAP_PATH_4)/rules.mk
+    KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c
+    KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
+else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","")
+    -include $(MAIN_KEYMAP_PATH_3)/rules.mk
+    KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c
+    KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
+else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","")
+    -include $(MAIN_KEYMAP_PATH_2)/rules.mk
+    KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c
+    KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
+else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
+    -include $(MAIN_KEYMAP_PATH_1)/rules.mk
+    KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c
+    KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
 else ifneq ($(LAYOUTS),)
     include build_layout.mk
-else
+else 
     $(error Could not find keymap)
     # this state should never be reached
 endif
@@ -110,29 +188,21 @@ endif
 #     this an empty or blank macro!
 KEYMAP_OUTPUT := $(BUILD_DIR)/obj_$(TARGET)
 
-
 ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
-    CONFIG_H = $(KEYMAP_PATH)/config.h
+    CONFIG_H += $(KEYMAP_PATH)/config.h
 endif
 
 # # project specific files
-SRC += $(KEYBOARD_C) \
+SRC += $(KEYBOARD_SRC) \
     $(KEYMAP_C) \
     $(QUANTUM_SRC)
 
-ifneq ($(SUBPROJECT),)
-    SRC += $(SUBPROJECT_C)
-endif
-
 # Optimize size but this may cause error "relocation truncated to fit"
 #EXTRALDFLAGS = -Wl,--relax
 
 # Search Path
 VPATH += $(KEYMAP_PATH)
-ifneq ($(SUBPROJECT),)
-    VPATH += $(SUBPROJECT_PATH)
-endif
-VPATH += $(KEYBOARD_PATH)
+VPATH += $(KEYBOARD_PATHS)
 VPATH += $(COMMON_VPATH)
 
 include common_features.mk
@@ -161,15 +231,15 @@ endif
 OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT)
 $(KEYMAP_OUTPUT)_SRC := $(SRC)
 $(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) $(GFXDEFS) \
--DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(KEYBOARD).h\" -DQMK_KEYBOARD_CONFIG_H=\"$(KEYBOARD_PATH)/config.h\" \
+-DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(KEYBOARD_FOLDER_1).h\" -DQMK_KEYBOARD_CONFIG_H=\"$(KEYBOARD_PATH_1)/config.h\" \
 -DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" \
--DQMK_SUBPROJECT=\"$(SUBPROJECT)\" -DQMK_SUBPROJECT_H=\"$(SUBPROJECT).h\" -DQMK_SUBPROJECT_CONFIG_H=\"$(SUBPROJECT_PATH)/config.h\"
+-DQMK_SUBPROJECT -DQMK_SUBPROJECT_H -DQMK_SUBPROJECT_CONFIG_H
 $(KEYMAP_OUTPUT)_INC :=  $(VPATH) $(EXTRAINCDIRS)
 $(KEYMAP_OUTPUT)_CONFIG := $(CONFIG_H)
 $(KEYBOARD_OUTPUT)_SRC := $(CHIBISRC) $(GFXSRC)
 $(KEYBOARD_OUTPUT)_DEFS := $(PROJECT_DEFS) $(GFXDEFS)
 $(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC) $(GFXINC)
-$(KEYBOARD_OUTPUT)_CONFIG  := $(PROJECT_CONFIG)
+$(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG)
 
 # Default target.
 all: build sizeafter
index 69fdac87dd0e27bc46a80635a79e8aad27e8f7f5..a7c366a109483b24e2d7c93695b7e2ca7198ec34 100644 (file)
@@ -171,6 +171,10 @@ ifeq ($(strip $(TERMINAL_ENABLE)), yes)
     OPT_DEFS += -DTERMINAL_ENABLE
 endif
 
+ifeq ($(strip $(USB_HID_ENABLE)), yes)
+    include $(TMK_DIR)/protocol/usb_hid.mk
+endif
+
 QUANTUM_SRC:= \
     $(QUANTUM_DIR)/quantum.c \
     $(QUANTUM_DIR)/keymap_common.c \
index 515ddb7783800afe41dd2d331e56157810098d5f..065263edbc0e7fa94948ba682a454d6eb0398d5f 100644 (file)
@@ -14,11 +14,11 @@ Otherwise, you can either download it directly ([zip](https://github.com/qmk/qmk
 
 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:
 
-    make planck-rev4-default
+    make planck/rev4:default
 
-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:
+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:
 
-    make preonic-default
+    make preonic:default
 
 ## How to customize {#how-to-customize}
 
index c8b76c1b9f4fe473bcc42410d8dba13572572798..5ee2c8ccae5802e39ff529eeac3bc5c15e5eec42 100644 (file)
@@ -4,7 +4,7 @@ We welcome all keyboard projects into QMK, but ask that you try to stick to a co
 
 ## Naming your directory/project
 
-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. 
+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. 
 
 ## `readme.md`
 
index 13c8bdbbe8896eb8203e7c1733a3d5ccdae0c970..b71dbb8ae9b238160b0bc81989f91ec413fe476b 100644 (file)
@@ -12,29 +12,25 @@ This is a c header file that is one of the first things included, and will persi
 
 // config options
 
-#ifdef SUBPROJECT_<subproject>
-    #include "<subproject>/config.h"
-#endif
-
 #endif
 ```
 
-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.
+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.
 
-## Subproject
+## Revisions
 
 ```c
-#ifndef <subproject>_CONFIG_H
-#define <subproject>_CONFIG_H
+#ifndef <revision>_CONFIG_H
+#define <revision>_CONFIG_H
 
-#include "../config.h"
+#include "config_common.h"
 
 // config options
 
 #endif
 ```
 
-For keyboards that have subprojects, this file contains config options that should apply to only that subproject, and won't change in most keymaps.
+For keyboards that have revisions, this file contains config options that should apply to only that revisions, and won't change in most keymaps.
 
 ## Keymap
 
@@ -42,7 +38,7 @@ For keyboards that have subprojects, this file contains config options that shou
 #ifndef CONFIG_USER_H
 #define CONFIG_USER_H
 
-#include "../../config.h"
+#include "config_common.h"
 
 // config options
 
index b675f98b3f2e9af3274f85b72197b1272d8de549..755dd012f3ca82116b276bdb5df7cd0b83740e6a 100644 (file)
@@ -78,8 +78,8 @@ We have a few different types of changes in QMK, each requiring a different leve
 * 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. 
 * Check for unnecessary whitespace with `git diff --check` before committing.
 * Make sure your code change actually compiles.
-  * Keymaps: Make sure that `make keyboard-revision-your_new_keymap` does not return an error
-  * Keyboards: Make sure that `make keyboard-all` does not return any errors
+  * Keymaps: Make sure that `make keyboard:your_new_keymap` does not return an error
+  * Keyboards: Make sure that `make keyboard:all` does not return any errors
   * Core: Make sure that `make allkb` does not return any errors.
 * 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:
 
@@ -128,7 +128,7 @@ Here are some things to keep in mind when working on your feature or bug fix.
 
 * **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.
 * **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.
-* **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.
+* **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.
 * **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.
 
 We also ask that you follow these guidelines: 
index 856a131a65ebb0d0db0a3b8ee0cb9362f2e8ae01..18829ed0f085d85dc1df432f7da08320b46e0934 100644 (file)
@@ -34,7 +34,7 @@ Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.mass
 
 Make example for this keyboard (after setting up your build environment):
 
-    make planck-rev4-default
+    make planck/rev4:default
 
 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.
 ```
index fe3aeeef611b1594652ead80ab4f24454d2813a6..3d732fa9865298600f591eddb752cb3a3fe92c76 100644 (file)
@@ -13,7 +13,7 @@ In short when your controller is ATMega32u4,
 
 or just
 
-    $ sudo make <keyboard>-<keymap>-dfu
+    $ sudo make <keyboard>:<keymap>:dfu
 
 But to run `make` with root privilege is not good idea. Use former method if possible.
 
index 4d75270dcdf1a3a6ab6e7ebeb0f5cfbe72eb1f06..5763b7380618f33fb8b718924094034c22dfa5c5 100644 (file)
@@ -43,15 +43,15 @@ The folder name must be added to the keyboard's `rules.mk`:
 
     LAYOUTS = 60_ansi
 
-`LAYOUTS` can be appended in the subproject's `rules.mk`:
+`LAYOUTS` can be set in any keyboard folder level's `rules.mk`:
 
-    LAYOUTS += 60_iso
+    LAYOUTS = 60_iso
 
-but the `LAYOUT_<layout>` variable must be defined in `<subproject>.h` as well.
+but the `LAYOUT_<layout>` variable must be defined in `<folder>.h` as well.
 
 ## Tips for making layouts keyboard-agnostic
 
-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:
+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:
 
     #include QMK_KEYBOARD_H
 
@@ -61,17 +61,16 @@ In your config.h, you can also use this variable to include the keyboard's `conf
 
 If you want to keep some keyboard-specific code, you can use these variables to escape it with an `#ifdef` statement:
 
-* `KEYBOARD_<keyboard>`
-* `SUBPROJECT_<subproject>`
+* `KEYBOARD_<folder1>_<folder2>`
 
 For example:
 
 ```c
 #ifdef KEYBOARD_planck
-    #ifdef SUBPROJECT_rev4
+    #ifdef KEYBOARD_planck_rev4
         planck_rev4_function();
     #endif
 #endif
 ```
 
-Note that the names are lowercase and match the folder/file names for the keyboard/subproject exactly.
\ No newline at end of file
+Note that the names are lowercase and match the folder/file names for the keyboard/revision exactly.
\ No newline at end of file
index 0617252b2c2eb403e6e140afde1cc8ffd2e74273..934617d852241fdcdb8162b8c553adf0e79e5a8f 100644 (file)
@@ -121,10 +121,10 @@ If this is a bit complex for you, Docker might be the turn-key solution you need
 # modify the keymap and keyboard assigment to compile what you want
 # defaults are ergodox/default
 
-docker run -e keymap=gwen -e subproject=ez -e keyboard=ergodox --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware
+docker run -e keymap=gwen -e keyboard=ergodox_ez --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware
 
 # 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
-docker run -e keymap=default -e subproject=ez -e keyboard=ergobox --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware
+docker run -e keymap=default -e keyboard=ergobox_ez --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware
 
 ```
 
index 97383d950a41b239f091fe22132741c0e342fba2..b6f0f4ee270562e2a611d608b2bb9be816607a35 100644 (file)
@@ -1,22 +1,21 @@
 # More detailed make instruction
 
-The full syntax of the `make` command is `<keyboard>-<subproject>-<keymap>-<target>`, where:
-
-* `<keyboard>` is the name of the keyboard, for example `planck`
-  * Use `allkb` to compile all keyboards
-* `<subproject>` is the name of the subproject (revision or sub-model of the keyboard). For example, for Planck it can be `rev3` or `rev4`.
-  * If the keyboard doesn't have any subprojects, it can be left out
-  * To compile the default subproject, you can leave it out, or specify `defaultsp`
-  * Use `allsp` to compile all subprojects
+The full syntax of the `make` command is `<keyboard_folder>:<keymap>:<target>`, where:
+
+* `<keyboard_folder>` is the path of the keyboard, for example `planck`
+  * Use `all` to compile all keyboards
+  * Specify the path to compile a revision, for example `planck/rev4` or `planck/rev3` 
+  * If the keyboard doesn't have any folders, it can be left out
+  * To compile the default folder, you can leave it out
 * `<keymap>` is the name of the keymap, for example `algernon`
-  * Use `allkm` to compile all keymaps
+  * Use `all` to compile all keymaps
 * `<target>` will be explained in more detail below.
 
 The `<target>` means the following
 * If no target is given, then it's the same as `all` below
-* `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.
+* `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.
 * `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. 
- * **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`.
+ * **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`.
 * `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.
 
 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
 
 Here are some examples commands
 
-* `make allkb-allsp-allkm` builds everything (all keyboards, all subprojects, all keymaps). Running just `make` from the `root` will also run this.
-* `make ergodox-infinity-algernon-clean` will clean the build output of the Ergodox Infinity keyboard. 
-* `make planck-rev4-default-dfu COLOR=false` builds and uploads the keymap without color output.
+* `make all:all` builds everything (all keyboard folders, all keymaps). Running just `make` from the `root` will also run this.
+* `make ergodox_infinity:algernon:clean` will clean the build output of the Ergodox Infinity keyboard. 
+* `make planck/rev4:default:dfu COLOR=false` builds and uploads the keymap without color output.
 
 ## `rules.mk` options
 
index 8f329daf8bc49b779db992d6e263ae1aa45800e5..b5a565714109e486458245fc102a6625a81854ac 100644 (file)
@@ -273,7 +273,7 @@ Notice how the `k11` and `KC_NO` switched places to represent the wiring, and th
 
 ### keymaps/<variant>/default.c
 
-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`.
+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`.
 
 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.
 
index 3eac6250971d10abde8ad0855d7007bb5e3d0e7f..81cfef79e991b5bc2d88d5e53c28bc21cdbba5cb 100644 (file)
@@ -36,7 +36,7 @@ Note how there's several different tests, each mocking out a separate part. Also
 
 ## Running the tests
 
-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.
+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.
 
 ## Debugging the tests
 
index 0aa0edf31f945ec9a3d631ac791c4d29cbe853da..8c6699129339d15f305f1822e687ed84269e40d4 100644 (file)
@@ -12,6 +12,6 @@ Hardware Availability: [BishopKeyboards.com](http://bishopkeyboards.com/)
 
 Make example for this keyboard (after setting up your build environment):
 
-    make 9key-default
+    make 9key:default
 
 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.
\ No newline at end of file
index f282730490ee3d6f966ff4d432d241abc1fa8f0e..d6308ab190e379032db0fc576e47b14c51713e84 100644 (file)
@@ -3,12 +3,12 @@ Alps64
 
 An Alps-only 60% board designed by Hasu.
 
-Keyboard Maintainer: QMK Community
-Hardware Supported: Alps64 PCB
+Keyboard Maintainer: QMK Community  
+Hardware Supported: Alps64 PCB  
 Hardware Availability: https://geekhack.org/index.php?topic=69666.0
 
 Make example for this keyboard (after setting up your build environment):
 
-    make alps64-default
+    make alps64:default
 
 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.
index e705f20feafd19478f6067298ba6e21bccbd9837..42c5374d52e622e692d4517dfa2425d6c52c60b9 100755 (executable)
@@ -1,35 +1,14 @@
-AMJ40 keyboard firmware
-======================
-DIY/Assembled compact 40% keyboard.
-
-Ported by N.Hou from the original TMK firmware.
-
-*Supports both backlight LEDs as well as RGB underglow. 
-
-*For reference, the AMJ40 uses pin D3 for underglow lighting.
-
-## Quantum MK Firmware
-
-For the full Quantum feature list, see [the parent readme.md](/readme.md).
-
-## Building
-
-Download or clone the whole firmware and navigate to the keyboards/amj40
-folder. Once your dev env is setup, you'll be able to type `make` to generate
-your .hex - you can then use `make dfu` to program your PCB once you hit the
-reset button. 
-
-Depending on which keymap you would like to use, you will have to compile
-slightly differently.
-
-### Default
-To build with the default keymap, simply run `sudo make all`.
-The .hex file will appear in the root of the qmk firmware folder.
-
+AMJ40
+===
 
+DIY/Assembled compact 40% keyboard.
 
+Keyboard Maintainer: QMK Community  
+Hardware Supported: AMJ40 PCB  
+Hardware Availability: https://geekhack.org/index.php?topic=87961.0
 
-### Original tmk firmware
-The original firmware that was used to port to qmk can be found [here](https://github.com/AMJKeyboard/AMJ40).
+Make example for this keyboard (after setting up your build environment):
 
+    make amj40:default
 
+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.
index b7107c7cfb63e6077df6474a5a0bf96e9f4d99e0..e87b1f9f829622c0c9060eb022e8aa699d3bb43d 100644 (file)
@@ -9,6 +9,6 @@ Hardware Availability: https://geekhack.org/index.php?topic=77636.0
 
 Make example for this keyboard (after setting up your build environment):
 
-    make amj60-maximized
+    make amj60:maximized
 
 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.
index cf7c197ecd90093389bf1ac0243c84467706f7c2..27d5e09270f1feddccbae2ca7336f0b2ee90934b 100644 (file)
@@ -9,6 +9,6 @@ Hardware Availability: https://geekhack.org/index.php?topic=83546.0
 
 Make example for this keyboard (after setting up your build environment):
 
-    make amjpad-default
+    make amjpad:default
 
 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.
index ea5821ee76756c55757628aebee2b8bd2291ce4c..e63a7340c706af110f3e101efe8e91aea6cab6be 100644 (file)
@@ -15,37 +15,19 @@ You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#ifndef CONFIG_H
-#define CONFIG_H
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
 
 #include "config_common.h"
 
 /* USB Device descriptor parameter */
-#define VENDOR_ID       0xFEED
+#undef PRODUCT_ID
 #define PRODUCT_ID      0x0419
-#define DEVICE_VER      0x0001
-#define MANUFACTURER    Ortholinear Keyboards
-#define PRODUCT         The Atomic Keyboard
-#define DESCRIPTION     A compact ortholinear keyboard
 
 /* key matrix size */
 #define MATRIX_ROWS 5
 #define MATRIX_COLS 15
 
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
-*/
-#define MATRIX_ROW_PINS { D0, D5, B5, B6, B3 }
-#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 }
-#define UNUSED_PINS
-
 #define BACKLIGHT_PIN B7
 #define BACKLIGHT_BREATHING
 
index 1224c415f06f42dbed0d79a37d5ea3973b898c9e..54a6ee9b543b805a078afd359ed921381776ac10 100644 (file)
@@ -5,12 +5,12 @@ Atomic
 
 A compact 60% (15x5) ortholinear keyboard kit made and sold by OLKB. [More info on qmk.fm](http://qmk.fm/atomic/)
 
-Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
-Hardware Supported: Atomic PCB rev1, Teensy 2.0
+Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)  
+Hardware Supported: Atomic PCB rev1, Teensy 2.0  
 Hardware Availability: no longer available
 
 Make example for this keyboard (after setting up your build environment):
 
-    make atomic-default
+    make atomic:default
 
 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.
\ No newline at end of file
index 45e3ab75cc083463a1921ad483358be6a9d96157..86ce7380238c69c21dd3a92d6c56bb7dd1899cf1 100644 (file)
@@ -7,7 +7,7 @@ How to build and flash
 ----------------------
 
 to build;
-make atreus-dvorak_42_key
+make atreus:dvorak_42_key
 
 to flash:
 avrdude -p atmega32u4 -c avr109 -U flash:w:atreus_dvorak_42_key.hex  -P COM7
index 8f8c319c5467dc7ebd427fd1f0d384848d985788..02980378d47db939e79e0593f2a36e911577bae0 100644 (file)
@@ -15,7 +15,7 @@
 static bool mouse_lock = false;
 
 // building instructions:
-// make atreus-dvorak_42_key
+// make atreus:dvorak_42_key
 
 // flashing instructions:
 // avrdude -p atmega32u4 -c avr109 -U flash:w:atreus_dvorak_42_key.hex  -P COM7
index ef464a1b492c821794719cad4cbd9af68bde6fbb..221c7fac4aec017518d39ffe27cfa08287a26263 100644 (file)
@@ -5,12 +5,12 @@ A small mechanical keyboard that is based around the shape of the human hand.
 
 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.
 
-Keyboard Maintainer: QMK Community
-Hardware Supported: Atreus PCB
+Keyboard Maintainer: QMK Community  
+Hardware Supported: Atreus PCB  
 Hardware Availability: https://atreus.technomancy.us
 
 Make example for this keyboard (after setting up your build environment):
 
-    make atreus-default-avrdude
+    make atreus:default:avrdude
 
 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.
index d68d1b615b521fa7c3ffa663bcb87e7f3588933e..b2de90011cbdb874d9219783960664ece4adb58e 100644 (file)
@@ -5,12 +5,12 @@ A 62 key variant of the Atreus keyboard.
 
 https://github.com/profet23/atreus62
 
-Keyboard Maintainer: QMK Community
-Hardware Supported: Atreus62 PCB
+Keyboard Maintainer: QMK Community  
+Hardware Supported: Atreus62 PCB  
 Hardware Availability: http://shop.profetkeyboards.com/product/atreus62-keyboard
 
 Make example for this keyboard (after setting up your build environment):
 
-    make atreus62-default
+    make atreus62:default
 
 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.
index b059a0834d5f0c79eb47cc92f594467619b2ebe7..cd1e15d77556c8d76aa3b0dfe69fc312502df3f1 100644 (file)
@@ -1,29 +1,15 @@
-# BananaSplit60 keyboard firmware
+BananaSplit60
+===
 
-Ported from evangs/tmk_keyboard
+A 60% PCB featuring a split spacebar.
 
-## Quantum MK Firmware
+Keyboard Maintainer: QMK Community  
+Hardware Supported: BananaSplit60 PCB  
+Hardware Availability: https://thevankeyboards.com/products/gb-bananasplit-60-keyboard-kit?variant=42149104910
 
-For the full Quantum feature list, see [the parent readme](/).
+Make example for this keyboard (after setting up your build environment):
 
-## Building
+    make bananasplit:default
 
-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.
+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.
 
-Depending on which keymap you would like to use, you will have to compile slightly differently.
-
-### Default
-
-To build with the default keymap, simply run `make default`.
-
-### Other Keymaps
-
-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.
-
-To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
-
-```
-$ make [default|jack|<name>]
-```
-
-Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
index 494800958ecede2933398e9eff4c5fe459e8f0ee..0103c164725dcd7fb414c6af581ad3c5f69c9666 100644 (file)
@@ -3,12 +3,12 @@ Bantam-44
 
 A small mechanical keyboard.
 
-Keyboard Maintainer: QMK Community
-Hardware Supported: Bantam-44 PCB
+Keyboard Maintainer: QMK Community  
+Hardware Supported: Bantam-44 PCB  
 Hardware Availability: http://www.bantamkeyboards.com
 
 Make example for this keyboard (after setting up your build environment):
 
-    make bantam44-default
+    make bantam44:default
 
 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.
index 48e0e51fe670e9c8405538e1fc21b71de0903abf..6b8b312fd9fd2a8d03b94392fd55997438408928 100644 (file)
@@ -1,5 +1,5 @@
 # List of all the board related files.
-BOARDSRC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103/board.c
+BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F103/board.c
 
 # Required include directories
-BOARDINC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103
+BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F103
index f72e1ab69a7474bca36465492dedecd8354f1ff1..45f03be020804d164d85835fea69e8130a49b990 100644 (file)
@@ -5,4 +5,6 @@ CONSOLE_ENABLE = yes    # Console for debug
 COMMAND_ENABLE = yes    # Commands for debug and configuration
 SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend
 NKRO_ENABLE = yes          # USB Nkey Rollover
-CUSTOM_MATRIX = yes # Custom matrix file
\ No newline at end of file
+CUSTOM_MATRIX = yes # Custom matrix file
+
+DEFAULT_FOLDER = chibios_test/stm32_f072_onekey
\ No newline at end of file
diff --git a/keyboards/chibios_test/subproject.mk b/keyboards/chibios_test/subproject.mk
deleted file mode 100644 (file)
index 7ed203d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-SUBPROJECT_DEFAULT = stm32_f072_onekey
diff --git a/keyboards/clueboard_17/Makefile b/keyboards/clueboard_17/Makefile
deleted file mode 100644 (file)
index 4e2a6f0..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-ifndef MAKEFILE_INCLUDED
-       include ../../Makefile
-endif
\ No newline at end of file
index f79d6b559457785947607d7d8342aa14e050bdfd..f3590fdbb5d680c8d616ee5b8b2a4807e41c6f09 100644 (file)
@@ -10,6 +10,6 @@ A basic 17 key numpad PCB.
 
 Make example for this keyboard (after setting up your build environment):
 
-    make cluepad-default
+    make clueboard_17:default
 
 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.
index 9674228c363f170e954ce476ed99fc5ae752fc2c..43377629a3ccacf66680abb17cfe692040052433 100644 (file)
@@ -1,5 +1,5 @@
 # List of all the board related files.
-BOARDSRC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F303XC/board.c
+BOARDSRC = $(BOARD_PATH)/boards/GENERIC_STM32_F303XC/board.c
 
 # Required include directories
-BOARDINC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F303XC
+BOARDINC = $(BOARD_PATH)/boards/GENERIC_STM32_F303XC
index b13c5336b089ac92c098bd6f74cb054a5c536c13..7221c82039a70fcd474f828685f5198d616954fe 100644 (file)
@@ -9,6 +9,6 @@ A fully customizable 60% keyboard.
 
 Make example for this keyboard (after setting up your build environment):
 
-    make clueboard_60-default-dfu-util
+    make clueboard_60:default:dfu-util
 
 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.
diff --git a/keyboards/clueboard_66/Makefile b/keyboards/clueboard_66/Makefile
deleted file mode 100644 (file)
index b9bada8..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-SUBPROJECT_DEFAULT = rev2
-
-ifndef MAKEFILE_INCLUDED
-       include ../../Makefile
-endif
\ No newline at end of file
index 295a596d5aa16e43f51b5837cdb161a21b3aec4c..c8989983d0ff0c7a40814a65504b8904d98dec85 100644 (file)
@@ -1,16 +1,16 @@
 #ifndef CLUEBOARD_H
 #define CLUEBOARD_H
 
-#ifdef SUBPROJECT_rev1
+#include "quantum.h"
+
+#ifdef KEYBOARD_clueboard_66_rev1
     #include "rev1.h"
 #endif
-#ifdef SUBPROJECT_rev2
+#ifdef KEYBOARD_clueboard_66_rev2
     #include "rev2.h"
 #endif
-#ifdef SUBPROJECT_rev3
+#ifdef KEYBOARD_clueboard_66_rev3
     #include "rev3.h"
 #endif
 
-#include "quantum.h"
-
 #endif
index 0d4e6a8746c84d3825f4e2a143b7fbb7d67e1906..eaf3e073fb0c72a177b30929a86e902bc802c0f3 100644 (file)
@@ -60,15 +60,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 //#define NO_ACTION_MACRO
 //#define NO_ACTION_FUNCTION
 
-
-#ifdef SUBPROJECT_rev1
-    #include "rev1/config.h"
-#endif
-#ifdef SUBPROJECT_rev2
-    #include "rev2/config.h"
-#endif
-#ifdef SUBPROJECT_rev3
-    #include "rev3/config.h"
-#endif
-
 #endif
index 13859bc242a297e1ba0aeb947857f5b59f5b176d..c2423096ec474cf9d2180ee2d012eaac0229bbc8 100644 (file)
@@ -13,6 +13,6 @@ A fully customizable 66% keyboard.
 
 Make example for this keyboard (after setting up your build environment):
 
-    make clueboard-rev3-default
+    make clueboard/rev3:default
 
 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.
diff --git a/keyboards/clueboard_66/rev1/Makefile b/keyboards/clueboard_66/rev1/Makefile
deleted file mode 100644 (file)
index 191c6bb..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-ifndef MAKEFILE_INCLUDED
-       include ../../../Makefile
-endif
\ No newline at end of file
index f40876ffbf7762482e72759ac0ffad41be927281..519e4d3ecb72dc335a55e292a8dd447a891a4216 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef REV2_CONFIG_H
 #define REV2_CONFIG_H
 
-#include "../config.h"
+#include "config_common.h"
 
 #define PRODUCT_ID      0x2301
 #define DEVICE_VER      0x0003
diff --git a/keyboards/clueboard_66/rev2/Makefile b/keyboards/clueboard_66/rev2/Makefile
deleted file mode 100644 (file)
index 191c6bb..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-ifndef MAKEFILE_INCLUDED
-       include ../../../Makefile
-endif
\ No newline at end of file
index bc34fc07bb120c7d98848afb48d8cfa540e48dbb..3c22c5b4a6bc8ed709e96a3a63fc31f4b6aa2367 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef REV2_CONFIG_H
 #define REV2_CONFIG_H
 
-#include "../config.h"
+#include "config_common.h"
 
 #define PRODUCT_ID      0x2320
 #define DEVICE_VER      0x0001
index 75015ec024f622f594148c94a32ebefa24b3d02a..da7ce500f9e80807127e26d63e0cbd4ea9216c4d 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef REV2_H
 #define REV2_H
 
-#include "../clueboard_66.h"
+#include "clueboard_66.h"
 
 /* Clueboard matrix layout
  * ,-----------------------------------------------------------.  ,---.
index cd12db22e1668f4dc46f6c43b91081c88cbbadaf..5e645c78f0766d086bcf82d2f090731a67e395f8 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef REV3_CONFIG_H
 #define REV3_CONFIG_H
 
-#include "../config.h"
+#include "config_common.h"
 
 #define PRODUCT_ID      0x2370
 #define DEVICE_VER      0x0001
index fd6f983441c60a4eb5fe23b68b8079e7a7f94104..7fd243c80920372f9b50574f7c8e8aac38c6ec01 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef REV3_H
 #define REV3_H
 
-#include "../clueboard_66.h"
+#include "clueboard_66.h"
 
 /* Clueboard matrix layout
  * ,-----------------------------------------------------------.  ,---.
index afbb531a247cac15daf93ecf0b0846916dce22ed..abab3bd5b7205aa630c52ecbf2e70e36ac34f81b 100644 (file)
@@ -19,3 +19,5 @@ RGBLIGHT_ENABLE = yes  # Enable keyboard underlight functionality
 MIDI_ENABLE = no               # MIDI controls
 UNICODE_ENABLE = no            # Unicode
 BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+
+DEFAULT_FOLDER = clueboard_66/rev2
diff --git a/keyboards/clueboard_66/subproject.mk b/keyboards/clueboard_66/subproject.mk
deleted file mode 100644 (file)
index 7c9b395..0000000
+++ /dev/null
@@ -1 +0,0 @@
-SUBPROJECT_DEFAULT = rev2
index d9daa0b2b5977909ec69cf9f308c9e222399a500..589eb57f37c25311a32ec462e8f6a6e0bb857bdf 100644 (file)
@@ -8,6 +8,6 @@ A simple QMK dev kit.
 
 Make example for this keyboard (after setting up your build environment):
 
-    make cluecard-default
+    make cluecard:default
 
 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.
diff --git a/keyboards/converter/converter.c b/keyboards/converter/converter.c
deleted file mode 100644 (file)
index aa4bef6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include "converter.h"
\ No newline at end of file
diff --git a/keyboards/converter/converter.h b/keyboards/converter/converter.h
deleted file mode 100644 (file)
index 7a4a483..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include "quantum.h"
\ No newline at end of file
diff --git a/keyboards/converter/rules.mk b/keyboards/converter/rules.mk
deleted file mode 100644 (file)
index e69de29..0000000
index c1904a8122ff9533b6af7557abc982dec8b02914..2ed702695b2094db5c5d1051b302f32f8a7b58f4 100644 (file)
@@ -9,7 +9,7 @@ Hardware Availability: [GH thread](https://geekhack.org/index.php?topic=72052.0)
 
 Make example for this keyboard (after setting up your build environment):
 
-    make converter-usb_usb-default
+    make converter/usb_usb:default
 
 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.
 
index 4ee6cdb1ce63c58b603222f32760d2e6b220f694..81a393e8abb693c1bb2822ea541f51760dacf7ff 100644 (file)
@@ -1,5 +1,5 @@
 # MCU name
-MCU ?= atmega32u4
+MCU = atmega32u4
 
 
 # Processor frequency.
@@ -13,14 +13,14 @@ MCU ?= atmega32u4
 #     does not *change* the processor frequency - it should merely be updated to
 #     reflect the processor speed set externally so that the code can use accurate
 #     software delays.
-F_CPU ?= 8000000
+F_CPU = 8000000
 
 
 #
 # LUFA specific
 #
 # Target architecture (see library "Board Types" documentation).
-ARCH ?= AVR8
+ARCH = AVR8
 
 # Input clock frequency.
 #     This will define a symbol, F_USB, in all source code files equal to the
@@ -33,7 +33,7 @@ ARCH ?= AVR8
 #
 #     If no clock division is performed on the input clock inside the AVR (via the
 #     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
-F_USB ?= $(F_CPU)
+F_USB = $(F_CPU)
 
 # Interrupt driven control endpoint task
 OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
@@ -51,16 +51,15 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
 # Build Options
 #   comment out to disable the options.
 #
-# BOOTMAGIC_ENABLE     ?= yes  # Virtual DIP switch configuration(+1000)
-# MOUSEKEY_ENABLE              ?= yes  # Mouse keys(+4700)
-EXTRAKEY_ENABLE                ?= yes  # Audio control and System control(+450)
-# CONSOLE_ENABLE               ?= yes  # Console for debug(+400)
-# COMMAND_ENABLE               ?= yes  # Commands for debug and configuration
-# SLEEP_LED_ENABLE ?= yes  # Breathing sleep LED during USB suspend
-# NKRO_ENABLE ?= yes   # USB Nkey Rollover - not yet supported in LUFA
-# BACKLIGHT_ENABLE ?= yes
-
+# BOOTMAGIC_ENABLE     = yes   # Virtual DIP switch configuration(+1000)
+# MOUSEKEY_ENABLE              = yes   # Mouse keys(+4700)
+EXTRAKEY_ENABLE                = yes   # Audio control and System control(+450)
+# CONSOLE_ENABLE               = yes   # Console for debug(+400)
+# COMMAND_ENABLE               = yes  # Commands for debug and configuration
+# SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend
+# NKRO_ENABLE = yes    # USB Nkey Rollover - not yet supported in LUFA
+# BACKLIGHT_ENABLE = yes
+USB_HID_ENABLE = yes
 
 CUSTOM_MATRIX = yes
-SRC = custom_matrix.cpp
-include $(TMK_DIR)/protocol/usb_hid.mk
+SRC = custom_matrix.cpp
\ No newline at end of file
index 89d328be6431fc045ce9625323e5fa60c7e931c3..8a2fbb3b265e0932f79fbba9df47dbe67b562a9d 100644 (file)
@@ -20,10 +20,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #include "config_common.h"
 
-#ifdef SUBPROJECT_protosplit
-    #include "protosplit/config.h"
-#endif
-#ifdef SUBPROJECT_v2
-    #include "v2/config.h"
-#endif
 #endif
index 9db16c78c2980f8e55f1ab744dc346992e35bda9..79d018c912f440fde17d7858426f2bbea4fe9315 100644 (file)
@@ -1,12 +1,7 @@
 #ifndef DELTASPLIT75_H
 #define DELTASPLIT75_H
 
-#ifdef SUBPROJECT_v2
-    #include "v2.h"
-#endif
-#ifdef SUBPROJECT_protosplit
-    #include "protosplit.h"
-#endif
+#include "v2.h"
 
 #include "quantum.h"
 
index a1e35e3378e88ff5b7a4db4e0617c0436c3de10d..f911f78714311d12268d69205c4235b64d8e17d3 100644 (file)
@@ -9,7 +9,7 @@ Hardware Availability: Group Buy
 
 Make example for this keyboard (after setting up your build environment):
 
-    make deltasplit75-v2-default
+    make deltasplit75/v2:default
 
 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.
 
index 1aee5313c1ee122fb0feebc44dc52caef52651b0..e345d61f564a9ece24391c81cd38d2a1ef4b0308 100644 (file)
@@ -55,21 +55,23 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
 #   change to "no" to disable the options, or define them in the Makefile in
 #   the appropriate keymap folder that will get included automatically
 #
-BOOTMAGIC_ENABLE ?= no       # Virtual DIP switch configuration(+1000)
-MOUSEKEY_ENABLE ?= yes       # Mouse keys(+4700)
-EXTRAKEY_ENABLE ?= yes       # Audio control and System control(+450)
-CONSOLE_ENABLE ?= no         # Console for debug(+400)
-COMMAND_ENABLE ?= yes        # Commands for debug and configuration
-NKRO_ENABLE ?= no            # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE ?= no      # Enable keyboard backlight functionality
-MIDI_ENABLE ?= no            # MIDI controls
-AUDIO_ENABLE ?= no           # Audio output on port C6
-UNICODE_ENABLE ?= no         # Unicode
-BLUETOOTH_ENABLE ?= no       # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE ?= no       # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
-SUBPROJECT_rev1 ?= yes
-USE_I2C ?= yes
+BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
+CONSOLE_ENABLE = no         # Console for debug(+400)
+COMMAND_ENABLE = yes        # Commands for debug and configuration
+NKRO_ENABLE = no            # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no      # Enable keyboard backlight functionality
+MIDI_ENABLE = no            # MIDI controls
+AUDIO_ENABLE = no           # Audio output on port C6
+UNICODE_ENABLE = no         # Unicode
+BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no       # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
+SUBPROJECT_rev1 = yes
+USE_I2C = yes
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE ?= no    # Breathing sleep LED during USB suspend
+SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
 
 CUSTOM_MATRIX = yes
+
+DEFAULT_FOLDER = deltasplit75/v2
\ No newline at end of file
diff --git a/keyboards/deltasplit75/subproject.mk b/keyboards/deltasplit75/subproject.mk
deleted file mode 100644 (file)
index 298067e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-SUBPROJECT_DEFAULT = v2
index 0f4b806e2db1b747ebcde8634f8725cf6b256c57..b677d09aa95233520bf078bfc357d1a55713fbbf 100644 (file)
@@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#ifndef CONFIG_H
-#define CONFIG_H
+#ifndef CONFIG_V2_H
+#define CONFIG_V2_H
 
 #include "config_common.h"
 
index 80a942d06f7cc35dc8abf7a43d371a2381a84204..f845616741c20fcb5871515df81dc74fd351d20f 100644 (file)
@@ -1,5 +1 @@
-BACKLIGHT_ENABLE = no
-
-ifndef QUANTUM_DIR
-       include ../../../Makefile
-endif
+BACKLIGHT_ENABLE = no
\ No newline at end of file
index 5eba7915047c88d48fb0a18c4206eb7659299a0a..bd99d4b61cf4002ea21b4febef7bbe14754b671c 100644 (file)
@@ -10,7 +10,7 @@ Another 60% keyboard with different HHKB layout made and sold by dbroqua. [More
 
 Make example for this keyboard (after setting up your build environment):
 
-    make dk60-default
+    make dk60:default
 
 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.
 
index d14af7a5caf1f1afa3e0760fa893c3de52958fce..78b290fbadc903e3a7d0f331edf6717c392bda59 100644 (file)
@@ -10,6 +10,6 @@ Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/collections/pcb/p
 
 Make example for this keyboard (after setting up your build environment):
 
-    make dz60-default
+    make dz60:default
 
 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.
index 2cfb8df26bdcc191fd108a761853e4e9be659496..4f8cfabd88530f3f5828714fe451baf9a0739628 100644 (file)
@@ -1,10 +1,10 @@
 #ifndef ECO_H
 #define ECO_H
 
-#ifdef SUBPROJECT_rev1
+#ifdef KEYBOARD_eco_rev1
     #include "rev1.h"
 #endif
-#ifdef SUBPROJECT_rev2
+#ifdef KEYBOARD_eco_rev2
     #include "rev2.h"
 #endif
 
index d29aa8ece703966325a7253b3b648e2e0ad1def1..afa9d55598c3c86a3581707c34eed431e12f489b 100644 (file)
@@ -10,6 +10,6 @@ Hardware Supported: ECO PCB rev1 Pro Micro
 
 Make example for this keyboard (after setting up your build environment):
 
-    make eco-rev2-that_canadian
+    make eco/rev2:that_canadian
 
 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.
\ No newline at end of file
index cf26cdc0db40626c4ed2fc367fae6c01be6300e7..6f4b4fefc4ee68fd74d290c90a2eca78d5516c73 100644 (file)
@@ -66,3 +66,5 @@ API_SYSEX_ENABLE = no
 
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
+
+DEFAULT_FOLDER = eco/rev2
\ No newline at end of file
diff --git a/keyboards/eco/subproject.mk b/keyboards/eco/subproject.mk
deleted file mode 100644 (file)
index 7c9b395..0000000
+++ /dev/null
@@ -1 +0,0 @@
-SUBPROJECT_DEFAULT = rev2
index 8e3123f4f2245dd279fdf87237d9311171b7301d..207df789a6aa8b371e8de8096ff519e575fd03ee 100644 (file)
@@ -18,7 +18,7 @@ The ErgoDone is a modified version of the ErgoDox, made by K.T.E.C., with pre-so
 
 In the root directory of the repository, build the firmware with a command like:
 
-    make ergodone-default
+    make ergodone:default
 
 For more information on the layout option and other ones, see the [`make` guide](https://docs.qmk.fm/getting_started_make_guide.html).
 
index 4223bc2d1a46c2f0a9fc3a0c8ddf93facbef1612..5f0504beb77f90f30ec5edce5b13b73a1f43e82e 100644 (file)
@@ -98,7 +98,7 @@ enum {
 
 
 // on each tap, light up one led, from right to left
-// on the forth tap, turn them off from right to leftmake ergodox-ez-drashna-custom-teensy
+// on the forth tap, turn them off from right to left
 
 void dance_flsh_each(qk_tap_dance_state_t *state, void *user_data) {
        if (!skip_leds) {
index 18af2cdeef2c17846645ee2e183d590832c17063..9d30c2e19c2b348997d47f2ff9b928f1ad719271 100644 (file)
@@ -5,7 +5,7 @@ This is a dvorak based layout for the Ergodox EZ. Its basic key layout is simila
 
 How to build 
 ------------
-make ergodox_ez-dvorak_42_key-teensy
+make ergodox_ez:dvorak_42_key:teensy
 
 Layers
 ------
index 55168e85d56d8ed3b9e6ee5e0d2c2ae2f796dd34..c1195ecc0dd06af282f76eb75b17189a3c07ad8f 100644 (file)
@@ -5,7 +5,7 @@
 
 
 // to build this keymap
-// make ergodox_ez-dvorak_42_key-teensy
+// make ergodox_ez:dvorak_42_key:teensy
 
 static bool mouse_lock = false;
 
index 99e3953234ab0cf6d2406b4f47a42bc4f5ea95a3..8a13994301d012b14bb6cd08520d219785a66bd6 100644 (file)
@@ -17,4 +17,4 @@ makes sense.
 
 Follow the main Infinity ErgoDox guide but use the following layout:
 
-    $ sudo make ergodox_infinity-rask
+    $ sudo make ergodox_infinity:rask
index 4ad5990b8a049f0ddcde8688b0cccc59b6db1568..7b8c1df3a52d24f21f6ed3f7d45a836a6492bc95 100644 (file)
@@ -5,15 +5,15 @@ for the left and right halves seperately.  To flash them:
 
   - Make sure you are in the top-level qmk_firmware directory
 
-  - Build the firmware with `make ergodox_infinity-keymapname`
+  - Build the firmware with `make ergodox_infinity:keymapname`
 
   - Plug in the left hand keyboard only.
 
   - Press the program button (back of keyboard, above thumb pad).
 
-  - Install the firmware with `sudo make ergodox_infinity-keymapname-dfu-util`
+  - Install the firmware with `sudo make ergodox_infinity:keymapname:dfu-util`
 
-  - Build right hand firmware with `make ergodox_infinity-keymapname MASTER=right`
+  - Build right hand firmware with `make ergodox_infinity:keymapname MASTER=right`
 
   - Plug in the right hand keyboard only.
 
index 1b5f4b42e0170a0f34010bc8c181af1a7c7d9800..e41782c3ccfafa85eeab5baaf660cc3fba4615d3 100644 (file)
@@ -8,6 +8,6 @@ Hardware Availability: [Unikeyboard](https://unikeyboard.io/product/felix/)
 
 Make example for this keyboard (after setting up your build environment):
 
-    make felix-default
+    make felix:default
 
 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.
index f2ab0ad870843deeec9aa45e7daa56b87b9685a2..ffb6091f95c2862410736ea833b0c240c8522f11 100644 (file)
@@ -9,6 +9,6 @@ Hardware Availability: [1up Keyboards](https://1upkeyboards.com/)
 
 Make example for this keyboard (after setting up your build environment):
 
-    make four_banger-default
+    make four_banger:default
 
 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.
\ No newline at end of file
index 4a933d0bd6c9482b80bfb2a77de616f4f34a9f5a..822377a7199461ec142bb1ae4d95174b35191cdb 100644 (file)
@@ -25,19 +25,19 @@ Make example for this keyboard (after setting up your build environment):
 104 key default layout:
 
 ```
-make frosty_flake-default
+make frosty_flake:default
 ```
 
 To directly flash the frosty_flake after compiling use
 
 ```
-make frosty_flake-default-dfu
+make frosty_flake:default:dfu
 ```
 
 87 key tkl layout:
 
 ```
-make frosty_flake-tkl-dfu
+make frosty_flake:tkl:dfu
 ```
 
 See [build environment
index 75ccec0973f65af508659f001bb13715c57e3ffe..0b8218d28a6b7334cffa9e893be55c175567ff64 100644 (file)
@@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License
 along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
 
-#ifndef CONFIG_H
-#define CONFIG_H
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
 
 #include "config_common.h"
 
index bcd7534617c28e7da0514b33129eb63ca6637653..abaddb71f1a3315ccf5fc70d1b55911363076813 100644 (file)
@@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License
 along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
 
-#ifndef CONFIG_H
-#define CONFIG_H
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
 
 #include "config_common.h"
 
index e477b279ce7209c07f8adb293dfa4620dab33e36..400a81c4102e609d8cdb0574ea6e380924e18815 100644 (file)
@@ -11,7 +11,7 @@ Hardware Availability: http://blog.komar.be/projects/gh60-programmable-keyboard/
 
 Make example for this keyboard (after setting up your build environment):
 
-    make gh60-default
+    make gh60:default
 
 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.
 
index 210247af9a1be1905db86e26a4f3875deccd8b42..5e0daeabf9369f587f3b670635cee63446956919 100644 (file)
@@ -11,7 +11,7 @@ Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.c
 
 Make example for this keyboard (after setting up your build environment):
 
-    make gherkin-default
+    make gherkin:default
 
 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.
 First pass at adding support for the gherkin keyboard. Compiles but completely
index 388816abb00f8dbf93492f04de8b13e606087f88..26e4890d9453772e558e1b5b3ac41a44adc65dc5 100644 (file)
@@ -9,7 +9,7 @@ Hardware Availability: http://www.gonskeyboardworks.com/pcbs-and-controllers/60-
 
 Make example for this keyboard (after setting up your build environment):
 
-    make gonnerd-default
+    make gonnerd:default
 
 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.
 
diff --git a/keyboards/hadron/out.txt b/keyboards/hadron/out.txt
deleted file mode 100644 (file)
index 644a6a7..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
--------- begin --------
-avr-gcc.exe (AVR_8_bit_GNU_Toolchain_3.5.0_1662) 4.9.2
-Copyright (C) 2014 Free Software Foundation, Inc.
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-Compiling: ../../keyboards/planck/planck.c                            \e[32;01m[OK]\e[0m
-Compiling: ../../keyboards/planck/keymaps/experimental/keymap.c       \e[33;01m[WARNINGS]\e[0m
- | 
- | ../../keyboards/planck/keymaps/experimental/keymap.c: In function 'action_get_macro':
- | ../../keyboards/planck/keymaps/experimental/keymap.c:227:17: warning: implicit declaration of function 'breathing_speed_set' [-Wimplicit-function-declaration]
- |                  breathing_speed_set(2);
- |                  ^
- | ../../keyboards/planck/keymaps/experimental/keymap.c:228:17: warning: implicit declaration of function 'breathing_pulse' [-Wimplicit-function-declaration]
- |                  breathing_pulse();
- |                  ^
- | 
-Compiling: ../../quantum/quantum.c                                    \e[32;01m[OK]\e[0m
-Compiling: ../../quantum/keymap.c                                     \e[32;01m[OK]\e[0m
-Compiling: ../../quantum/keycode_config.c                             \e[32;01m[OK]\e[0m
-Compiling: ../../quantum/matrix.c                                     \e[32;01m[OK]\e[0m
-Compiling: ../../quantum/audio/audio.c                                \e[32;01m[OK]\e[0m
-Compiling: ../../quantum/audio/voices.c                               \e[32;01m[OK]\e[0m
-Compiling: ../../quantum/audio/luts.c                                 \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/protocol/lufa/lufa.c                        \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/protocol/lufa/descriptor.c                  \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Class/Common/HIDParser.c \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/ConfigDescriptors.c \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/DeviceStandardReq.c \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/Events.c \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/HostStandardReq.c \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/USBTask.c \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/host.c                               \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/keyboard.c                           \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/action.c                             \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/action_tapping.c                     \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/action_macro.c                       \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/action_layer.c                       \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/action_util.c                        \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/print.c                              \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/debug.c                              \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/util.c                               \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/avr/suspend.c                        \e[32;01m[OK]\e[0m
-Assembling: ../../tmk_core/common/avr/xprintf.S                       \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/avr/timer.c                          \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/avr/bootloader.c                     \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/magic.c                              \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/avr/eeconfig.c                       \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/mousekey.c                           \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/command.c                            \e[32;01m[OK]\e[0m
-Compiling: ../../tmk_core/common/backlight.c                          \e[32;01m[OK]\e[0m
-Linking: .build/planck_experimental.elf                               \e[31;01m[ERRORS]\e[0m
- | 
- | .build/obj_planck_experimental/keyboards/planck/keymaps/experimental/keymap.o: In function `action_get_macro':
- | C:\Users\Fred Wales\Documents\Programming\qmk_firmware\keyboards\planck/../../keyboards/planck/keymaps/experimental/keymap.c:240: undefined reference to `breathing_speed_set'
- | C:\Users\Fred Wales\Documents\Programming\qmk_firmware\keyboards\planck/../../keyboards/planck/keymaps/experimental/keymap.c:241: undefined reference to `breathing_pulse'
- | collect2.exe: error: ld returned 1 exit status
- | 
index 78f86f982dccb55ea5e5933a0c23842f852655d1..66a900825a43316516f8ce690d1601e9b5e85e9e 100644 (file)
@@ -70,3 +70,4 @@ SLEEP_LED_ENABLE ?= no    # Breathing sleep LED during USB suspend
 SRC = i2c.c \
          ssd1306.c
 
+DEFAULT_FOLDER = hadron/ver2
\ No newline at end of file
diff --git a/keyboards/hadron/subproject.mk b/keyboards/hadron/subproject.mk
deleted file mode 100644 (file)
index 546c88f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-SUBPROJECT_DEFAULT = ver2
diff --git a/keyboards/handwired/handwired.c b/keyboards/handwired/handwired.c
deleted file mode 100644 (file)
index feef8a9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include "handwired.h"
\ No newline at end of file
diff --git a/keyboards/handwired/handwired.h b/keyboards/handwired/handwired.h
deleted file mode 100644 (file)
index 7a4a483..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include "quantum.h"
\ No newline at end of file
index 67bf711bee4f409ca9c78dbec0c64244cb1dc0c6..d2f2c01ae89d935ce26ec7333ac631fac6f882b2 100644 (file)
@@ -9,7 +9,7 @@ For the full Quantum feature list, see [the parent readme](/).
 
 ## Building
 
-Download or clone the whole firmware and use ```make handwired-kbod-default``` to generate the .hex file. You may flash it with avrdude
+Download or clone the whole firmware and use ```make handwired/kbod:default``` to generate the .hex file. You may flash it with avrdude
 
 ## Flashing
 Something along this line:
index 5a260f9ad1790068814b186114ca47d2410ccd73..cc86732627c81146973b843cb28b6d465af04ad5 100644 (file)
@@ -19,6 +19,6 @@ The following pins are used:
 
 ## Compiling and loading the firmware
 
-To build the firmware, run `make handwired-magicforce61`.
+To build the firmware, run `make handwired/magicforce61`.
 
 Flash the firmware using the teensy loader or avrdude.
diff --git a/keyboards/handwired/rules.mk b/keyboards/handwired/rules.mk
deleted file mode 100644 (file)
index e69de29..0000000
index a7f7fc230e064cd24c88259f54693ae26dfe6cdc..62f94b945219f85dcf2f48a722c77a96cb7773ea 100644 (file)
@@ -80,10 +80,3 @@ BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 AUDIO_ENABLE = no           # Audio output on port C6
 RGBLIGHT_ENABLE = yes
 
-ifndef QUANTUM_DIR
-       include ../../../Makefile
-endif
-
-upload: build
-       $(ATREUS_UPLOAD_COMMAND)
-
index c0f7fde7ad7fd63e62982aeee0b1de6922e92905..4dff47a6e886210cd2edd67249658b00adcfd28e 100644 (file)
@@ -29,7 +29,7 @@ From the hhkb directory run the following:
 
 ```bash
 make clean
-make hhkb-blakedietz-dfu
+make hhkb:blakedietz:dfu
 ```
 
 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.
 You'll see an output similar to the following:
 
 ```bash
-make hhkb-blakedietz-dfu
+make hhkb:blakedietz:dfu
 
 Making hhkb with keymap blakedietz and target dfu
 
index ee64e037a6d6559c749dad5e0e5efb4cfa114e24..8774a73f7752ff8341f8dfbcd05650b7bc1ed6d7 100644 (file)
@@ -9,6 +9,6 @@ Hardware Availability: https://geekhack.org/index.php?topic=12047.0
 
 Make example for this keyboard (after setting up your build environment):
 
-    make hhkb-default
+    make hhkb:default
 
 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.
index bca26c69f930901374c7e4609cef4649bdd5d05e..94f65d370f4c6155e9879423db40da8a5b9a6242 100644 (file)
@@ -9,6 +9,6 @@ Hardware Availability: https://input.club/devices/infinity-keyboard/
 
 Make example for this keyboard (after setting up your build environment):
 
-    make infinity60-default
+    make infinity60:default
 
 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.
index 55ed72229c07fbd69eeb950d3d3f46ce75372f02..e8955ec53dd3e3e0386e34c093ec8bf32d484840 100644 (file)
@@ -13,10 +13,10 @@ Hardware Availability: [keyclack.com](https://keyclack.com/)
 
 Make example for this keyboard (after setting up your build environment):
 
-    make jc65-default
+    make jc65:default
 
 Or to make and flash:
 
-    make jc65-default-dfu
+    make jc65:default:dfu
 
 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.
index 1684a562e0cc7406b033bf08f0876b21538f1673..6934e54d41e443281cd2e9e84e861f763def3d65 100644 (file)
@@ -9,6 +9,6 @@ Hardware Availability: [1up](https://1upkeyboards.com/jd40-mkii-1up-keyboards-lo
 
 Make example for this keyboard (after setting up your build environment):
 
-    make atreus-default
+    make jd40:default
 
 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.
index ee989b7b41b1a9833fb452bd0cb2a5c116c8b31c..43d138f4eda94612b6808fd1f29b53c026208815 100644 (file)
@@ -67,10 +67,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 /* disable debug print */
-#define NO_DEBUG
+// #define NO_DEBUG
 
 /* disable print */
-#define NO_PRINT
+// #define NO_PRINT
 
 /* disable action features */
 //#define NO_ACTION_LAYER
index 276639514b691944c0a208557797d60129cb967d..a8c8e9d17efe5c58120d45f50eebe53b6275c5c9 100644 (file)
@@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#ifndef CONFIG_H
-#define CONFIG_H
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
 
 #include "config_common.h"
 
index 4bed1be416515f9a03768ba2210f432ea8144358..a2e4cf6dd4936f1fb2127628b6775fe5f5fc5443 100644 (file)
@@ -9,6 +9,6 @@ Hardware Availability: https://mechanicalkeyboards.com/shop/index.php?l=product_
 
 Make example for this keyboard (after setting up your build environment):
 
-    make jd45-default
+    make jd45:default
 
 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.
index 03b7533de01f02db0b9074e686823f2bde6678a7..0720366ad8ff30d8283f777fcbfe831beb81b7a9 100644 (file)
@@ -10,7 +10,7 @@ Hardware Availability: [AliExpress](https://www.aliexpress.com/store/product/jj4
 
 Make example for this keyboard (after setting up your build environment):
 
-    make jj40-program
+    make jj40:default:program
 
 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.
 
index 46df0ef334ac577c3e97dcd7c8f1b152b8a19b96..e2f051c314c7816ab7c49ee998bbca9c38ebff77 100644 (file)
@@ -1,5 +1,5 @@
 # List of all the board related files.
-BOARDSRC = $(KEYBOARD_PATH)/boards/JM60_BOARD/board.c
+BOARDSRC = $(BOARD_PATH)/boards/JM60_BOARD/board.c
 
 # Required include directories
-BOARDINC = $(KEYBOARD_PATH)/boards/JM60_BOARD
+BOARDINC = $(BOARD_PATH)/boards/JM60_BOARD
index e4243716f6234e2eee646ddc45c24f5399e29ff3..3ba96ed6031b75906cd91f2316ecc9b38bdd4d41 100644 (file)
@@ -9,7 +9,7 @@ Hardware Availability: https://kbdfans.myshopify.com/ (is no longer sold)
 
 Make example for this keyboard (after setting up your build environment):
 
-    make jm60-default-bin
+    make jm60:default:bin
 
 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,7 +17,7 @@ See [build environment setup](https://docs.qmk.fm/build_environment_setup.html)
 
 1) from the `qmk_firmware` directory run:
 ```
-$ make jm60-default-bin
+$ make jm60:default:bin
 ```
 
 2) rename 'jm60_default.bin' to 'jm60_default.firmware'
index 42fdc0d38622cae55aedeac64ca829c42de74497..6c67307d7d5280ac58957b65fb101d317deefcab 100644 (file)
@@ -7,6 +7,6 @@ Hardware Availability: https://kbdfans.myshopify.com/products/kbd75-keyboard-set
 
 Make example for this keyboard (after setting up your build environment):
 
-    make kbd75-default
+    make kbd75:default
 
 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.
index 66713731fac31dd72d636c3464f6ceab08e1f7c4..94e913ebd9fc564bf6b22ff6aa41b757e7eca96d 100644 (file)
@@ -1,10 +1,10 @@
 #ifndef KINESIS_H
 #define KINESIS_H
 
-#ifdef SUBPROJECT_alvicstep
+#ifdef KEYBOARD_kinesis_alvicstep
        #include "alvicstep.h"
 #endif
-#ifdef SUBPROJECT_stapelberg
+#ifdef KEYBOARD_kinesis_stapelberg
        #include "stapelberg.h"
 #endif
 
index a7ff8da8b5495a0eb8ca3d1a8aa4b802eb2823bf..c8646449bd07852441d4163eadc6959b3057a7c5 100644 (file)
@@ -71,3 +71,5 @@ UNICODE_ENABLE = no         # Unicode
 BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 AUDIO_ENABLE = no # Audio output should be port E6, current quantum library hardcodes C6, which we use for programming
 CUSTOM_MATRIX=yes # need to do our own thing with the matrix
+
+DEFAULT_FOLDER = kinesis/alvicstep
\ No newline at end of file
index fb421a34fc1ff56b17bb629de30fce83f53d7070..3f2ff2d6cc8f257ffcade7ead1ca4042c0e884b9 100644 (file)
@@ -1,9 +1,4 @@
-ifndef QUANTUM_DIR
-       include ../../../Makefile
-endif
 
-# just silently stop, since we need to upload with teensy uploader
-upload: build
 
 
 
diff --git a/keyboards/kinesis/subproject.mk b/keyboards/kinesis/subproject.mk
deleted file mode 100644 (file)
index 63ee4ca..0000000
+++ /dev/null
@@ -1 +0,0 @@
-SUBPROJECT_DEFAULT = alvicstep
index 55fac2ba5becc1fd129fd949ab4379c40cf226d7..b12165b32db373aa43309f01229637b68e436992 100644 (file)
@@ -11,6 +11,6 @@ Hardware Availability: https://geekhack.org/index.php?topic=46700.0
 
 Make example for this keyboard (after setting up your build environment):
 
-    make kitten_paw-default
+    make kitten_paw:default
 
 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.
index 476e7fd2aa02c81bad5277a976cc401b6e40fb4e..d9cfa35a219e056301659131bf4674b134cde5af 100644 (file)
@@ -3,7 +3,11 @@
 
 #include "quantum.h"
 
-#include QMK_SUBPROJECT_H
+#ifdef KEYBOARD_lets_split_rev1
+    #include "rev1.h"
+#else
+    #include "rev2.h"
+#endif
 
 // Used to create a keymap using only KC_ prefixed keys
 #define KC_KEYMAP( \
index 300722a1bb330399b2ae2d342fb5069e24a5c7c6..c9202de63172ef174c1ea727d535cfc858384b0f 100644 (file)
@@ -19,7 +19,7 @@ There is additional information there about flashing and adding RGB underglow.
 Download or clone the `qmk_firmware` repo and navigate to its top level directory. Once your build environment is setup, you'll be able to generate the default .hex using:
 
 ```
-$ make lets_split-rev2-default
+$ make lets_split/rev2:default
 ```
 
 You will see a lot of output and if everything worked correctly you will see the built hex file:
@@ -32,7 +32,7 @@ If you would like to use one of the alternative keymaps, or create your own, cop
 
 
 ```
-$ make lets_split-rev2-YOUR_KEYMAP_NAME
+$ make lets_split/rev2:YOUR_KEYMAP_NAME
 ```
 
 If everything worked correctly you will see a file:
@@ -115,8 +115,8 @@ not be very difficult to adapt it to support more if required.
 
 Flashing
 -------
-From the top level `qmk_firmware` directory run `make KEYBOARD-SUBPROJECT-KEYMAP-avrdude` for automatic serial port resolution and flashing.
-Example: `make lets_split-rev2-default-avrdude`
+From the top level `qmk_firmware` directory run `make KEYBOARD:KEYMAP:avrdude` for automatic serial port resolution and flashing.
+Example: `make lets_split/rev2:default:avrdude`
 
 
 Choosing which board to plug the USB cable into (choosing Master)
index 7b7224fd4d47f5fc58b91cd9361fb8a7b31ab07e..1bbc0367fa243415276ddcb8fb17d041e6468b0b 100644 (file)
@@ -75,4 +75,6 @@ SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
 
 CUSTOM_MATRIX = yes
 
-LAYOUTS = ortho_4x12
\ No newline at end of file
+LAYOUTS = ortho_4x12
+
+DEFAULT_FOLDER = lets_split/rev2
\ No newline at end of file
diff --git a/keyboards/lets_split/subproject.mk b/keyboards/lets_split/subproject.mk
deleted file mode 100644 (file)
index 7c9b395..0000000
+++ /dev/null
@@ -1 +0,0 @@
-SUBPROJECT_DEFAULT = rev2
index 6b409bf0d5d386b6540af2077b4a625a2dbc323a..a2b1e089c70377f8bdbb97cc68fbf7b8719bba5e 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef CONFIG_USER_H
 #define CONFIG_USER_H
 
-#include "../../config.h"
+#include "config_common.h"
 
 /* Use I2C or Serial, not both */
 
index 7f33a43630aaf7d722fca4a09939869b4a01d23e..4c7e48dc0418eab5887bceab3119754637739c8f 100644 (file)
@@ -21,7 +21,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #ifndef CONFIG_USER_H
 #define CONFIG_USER_H
 
-#include "../../config.h"
+#include "config_common.h"
 
 /* Use I2C or Serial, not both */
 
index c69a06faba9a4f9e79a346f30680f88c9d17676b..896c5232f67e0db3a3b0b01e516c4945233c0ff8 100644 (file)
@@ -3,7 +3,7 @@
 
 #include "quantum.h"
 
-#include QMK_SUBPROJECT_H
+#include "rev1.h"
 
 // Used to create a keymap using only KC_ prefixed keys
 #define KC_KEYMAP( \
index 1fcad3c1b70733904278657407bf92720fa92033..94dd7bf04d2b03da5030b9f0a54e9a1ba7de538b 100644 (file)
@@ -9,11 +9,11 @@ Hardware Availability: [Keebio](https://keeb.io)
 
 Make example for this keyboard (after setting up your build environment):
 
-    make levinson-rev1-default
+    make levinson/rev1:default
 
 Example of flashing this keyboard:
 
-    make levinson-rev1-default-avrdude
+    make levinson/rev1:default:avrdude
 
 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.
 
index 7b7224fd4d47f5fc58b91cd9361fb8a7b31ab07e..ba0f5b91d56730800be7d16986e5cb2e1e2a7135 100644 (file)
@@ -75,4 +75,6 @@ SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
 
 CUSTOM_MATRIX = yes
 
-LAYOUTS = ortho_4x12
\ No newline at end of file
+LAYOUTS = ortho_4x12
+
+DEFAULT_FOLDER = levinson/rev1
\ No newline at end of file
diff --git a/keyboards/levinson/subproject.mk b/keyboards/levinson/subproject.mk
deleted file mode 100644 (file)
index 928b1ed..0000000
+++ /dev/null
@@ -1 +0,0 @@
-SUBPROJECT_DEFAULT = rev1
index ed590f3f1bae67c017167c3b3edf772e0f9d9bdd..b95153051c975d13777ec01c7d8b59ccaddaa2aa 100644 (file)
@@ -9,7 +9,7 @@ Hardware Availability: https://mechkeys.ca/collections/keyboards/products/mechmi
 
 Make example for this keyboard (after setting up your build environment):
 
-    make mechmini-default
+    make mechmini:default
 
 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,7 +40,7 @@ Then, with the keyboard plugged in, simply run this command from the
 `qmk_firmware` directory:
 
 ```
-$ make mechmini-program
+$ make mechmini:program
 ```
 
 If you prefer, you can just build it and flash the firmware directly with
index 74bbe9b579dd11dda08d0099ec4a35f406ef9faa..7dd3a900a54e31cd668912f529e2058fcafdbafd 100644 (file)
@@ -9,10 +9,10 @@ Hardware Availability: [PCB files](https://github.com/di0ib/tmk_keyboard/tree/ma
 
 Make example for this keyboard (after setting up your build environment):
 
-    make mf68-default
+    make mf68:default
 
 Example of flashing this keyboard:
 
-    make mf68-default-avrdude
+    make mf68:default:avrdude
 
 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.
index 479c7aec71acfcebfcfd04b65363921e08f4d939..6e8add206bb2c59653b97c1a7708a2cc11539a55 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef MINIDOX_H
 #define MINIDOX_H
 
-#ifdef SUBPROJECT_rev1
+#ifdef KEYBOARD_minidox_rev1
     #include "rev1.h"
 #endif
 
index c15fd244a4e24248db263c72b8b723b785e9436c..b44d66660b551b4f5f91d47913154a7f00e8352c 100644 (file)
@@ -10,7 +10,7 @@ Hardware Supported: MiniDox PCB rev1 Pro Micro
 
 Make example for this keyboard (after setting up your build environment):
 
-    make minidox-rev1-default
+    make minidox/rev1:default
 
 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.
 
@@ -22,8 +22,8 @@ Flashing
 -------
 Note: Most of this is copied from the Let's Split readme, because it is awesome
 
-From the `minidox` directory run `make SUBPROJECT-KEYMAP-avrdude` for automatic serial port resolution and flashing.
-Example: `make rev1-default-avrdude`
+From the root directory run `make PROJECT:KEYMAP:avrdude` for automatic serial port resolution and flashing.
+Example: `make minidox/rev1:default:avrdude`
 
 Choosing which board to plug the USB cable into (choosing Master)
 --------
index a0825b4ef64065fedfe5042ccc7f24f4f0ef71bc..f845616741c20fcb5871515df81dc74fd351d20f 100644 (file)
@@ -1,5 +1 @@
-BACKLIGHT_ENABLE = no
-
-ifndef QUANTUM_DIR
-       include ../../../Makefile
-endif
\ No newline at end of file
+BACKLIGHT_ENABLE = no
\ No newline at end of file
index 539456ae02f8a4b0e4e2296830eb6a2e89994529..0f9d303105a20faedea88f8183ab77ced502cbcb 100644 (file)
@@ -72,3 +72,5 @@ USE_I2C ?= no
 SLEEP_LED_ENABLE ?= no    # Breathing sleep LED during USB suspend
 
 CUSTOM_MATRIX = yes
+
+DEFAULT_FOLDER = minidox/rev1
\ No newline at end of file
diff --git a/keyboards/minidox/subproject.mk b/keyboards/minidox/subproject.mk
deleted file mode 100644 (file)
index 928b1ed..0000000
+++ /dev/null
@@ -1 +0,0 @@
-SUBPROJECT_DEFAULT = rev1
index ef1eb0d832305260b83b260963e7f756d8370590..3cbdbae61a1b1171e6d92f1b0e17ed53821cda12 100644 (file)
@@ -9,7 +9,7 @@ Hardware Availability: https://www.reddit.com/r/MechanicalKeyboards/comments/665
 
 Make example for this keyboard (after setting up your build environment):
 
-    make mitosis-default
+    make mitosis:default
 
 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.
 
index 5e3dc91888794e47568ba23848bfc5b31747dff9..863722d7d04d1c9d813a3b2cf0da210b35fae2a0 100644 (file)
@@ -20,6 +20,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #include "config_common.h"
 
-#include QMK_SUBPROJECT_CONFIG_H
-
 #endif  // CONFIG_H
index 072d4a7ce21152424d1b69db722cdddb056afc02..a6246262e50b92ddb238a21eb5ebd5967905f878 100644 (file)
@@ -18,7 +18,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #ifndef CONFIG_USER_H
 #define CONFIG_USER_H
 
-#include "../../config.h"
+#include "config_common.h"
 
 /* Use I2C or Serial, not both */
 
index 23abba0aa4fe9db1e17ee4ba7baf3fc0807a09f3..4a5b7513aeac06240a20ce0f34556c178bbb09ce 100644 (file)
@@ -18,7 +18,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #ifndef CONFIG_USER_H
 #define CONFIG_USER_H
 
-#include "../../config.h"
+#include "config_common.h"
 
 /* Use I2C or Serial, not both */
 
index dcc2a4ffd458951a5e18f27c89fa21ccdd884080..8d031b05059cc11b332c7aec7223ccc4001c738c 100644 (file)
@@ -1,7 +1,9 @@
 #ifndef NYQUIST_H
 #define NYQUIST_H
 
-#include QMK_SUBPROJECT_H
+#ifdef KEYBOARD_nyquist_rev1
+    #include "rev1.h"
+#endif
 
 #include "quantum.h"
 
index 16debb9870753594643218c17ddb324df3eacdef..1b417a65884e456ad1b2420ff670857d3e555841 100644 (file)
@@ -9,11 +9,11 @@ Hardware Availability: [Keebio](https://keeb.io)
 
 Make example for this keyboard (after setting up your build environment):
 
-    make nyquist-rev1-default
+    make nyquist/rev1:default
 
 Example of flashing this keyboard:
 
-    make nyquist-rev1-default-avrdude
+    make nyquist/rev1:default:avrdude
 
 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.
 
index 7b3228fa659277d21e3bbb711bf9f0554a1ef9b6..99bd781d5759be090d8a772e54a1e7fc06e345c1 100644 (file)
@@ -1,4 +1,4 @@
-#include QMK_SUBPROJECT_H
+#include "rev1.h"
 
 #ifdef AUDIO_ENABLE
     float tone_startup[][2] = SONG(STARTUP_SOUND);
index cf9bf8020395fc62cb67ecb12581aef3c8374ccb..eeaf15272876e1f78eecbad7fdf5dc1c90d85f3d 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef REV1_H
 #define REV1_H
 
-#include QMK_KEYBOARD_H
+#include "nyquist.h"
 
 //void promicro_bootloader_jmp(bool program);
 #include "quantum.h"
index 07cdba4bf6971b74d90dfd042fac17760a531932..f2bc59cc5d17f290efb421cd21500170125c3a81 100644 (file)
@@ -74,4 +74,6 @@ SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
 
 CUSTOM_MATRIX = yes
 
-LAYOUTS = ortho_5x12
\ No newline at end of file
+LAYOUTS = ortho_5x12
+
+DEFAULT_FOLDER = nyquist/rev1
\ No newline at end of file
diff --git a/keyboards/nyquist/subproject.mk b/keyboards/nyquist/subproject.mk
deleted file mode 100644 (file)
index 928b1ed..0000000
+++ /dev/null
@@ -1 +0,0 @@
-SUBPROJECT_DEFAULT = rev1
index e08ed44dddc2299164f6365686ffbdce8921ed47..a9d67b00e86621b967a8f83c57a89870fe2fe72d 100644 (file)
@@ -9,11 +9,11 @@ Hardware Availability: C-Keys soldering workshops, /u/MonkeyPlusPlus
 
 Make example for this keyboard (after setting up your build environment):
 
-    make obelus-default
+    make obelus:default
 
 Or to make and flash:
 
-    make obelus-default-dfu
+    make obelus:default:dfu
 
 See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) and [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
 
index 8e02a40211d7fc890dad97c104da6bdc36cf0003..1a9599c8d8664f78b1f83bc7cf656c55c911799b 100644 (file)
@@ -18,4 +18,4 @@ Default keymap included, matching configuration on sale page.
 
 
 ## Build
-To build the default keymap, simply run `make org60-default`.
\ No newline at end of file
+To build the default keymap, simply run `make org60:default`.
\ No newline at end of file
index b1a5b9cf9c16e1c66017a80434d520ecafb73954..821cd7e29f2a10a6ffc4492aa2c3288e105e134c 100644 (file)
@@ -23,9 +23,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define CONFIG_H
 
 #include "config_common.h"
-
-#ifdef SUBPROJECT_rev1
-    #include "rev1/config.h"
-#endif
-
+    
 #endif
index f24c6db2901cda96d6b5f337a253555d74802c0d..c2892b5e0c27a4b3cf2d61977fd51e71d6f75d69 100644 (file)
@@ -22,7 +22,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #ifndef CONFIG_USER_H
 #define CONFIG_USER_H
 
-#include "../../config.h"
+#include "config_common.h"
 
 /* Use I2C or Serial, not both */
 
index 457a3d01d4a4f6d3a66baaac45d37543aacf7888..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,3 +0,0 @@
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
index 7cbbf1025aade6050b74bfd137ef7e43ee9530eb..bcd14a22d13e136e1ebfaee6e10351f56a57a7f0 100644 (file)
@@ -22,7 +22,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #ifndef CONFIG_USER_H
 #define CONFIG_USER_H
 
-#include "../../config.h"
+#include "config_common.h"
 
 /* Use I2C or Serial, not both */
 
index e252a90449aece82d385b59f27030992b7a74a63..2090afe9a5e191db4e1356fd65fd2a5c84e3a7ad 100644 (file)
@@ -1,6 +1,2 @@
 CONSOLE_ENABLE    = yes
-TAP_DANCE_ENABLE  = yes
-
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
+TAP_DANCE_ENABLE  = yes
\ No newline at end of file
index b33356e5e5eb267f798bfccf19cd29cf26fe7e35..89707467a6b88e8bb4e8e2b11c8e2114a7657a7c 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef ORTHODOX_H
 #define ORTHODOX_H
 
-#ifdef SUBPROJECT_rev1
+#ifdef KEYBOARD_orthodox_rev1
     #include "rev1.h"
 #endif
 
index e1fbf94baf300768fed0cf913d4ce8805137bb3b..fb591b00701cd76212eaf35e006e3008a8c558a4 100644 (file)
@@ -34,10 +34,10 @@ For further reading on build- and flashing-procedures for split ortholinear skel
 
 ## First Time Setup
 
-Download or clone the whole firmware and navigate to the keyboards/orthodox directory. Once your dev env is setup, you'll be able to generate the default .hex using:
+Download or clone the whole firmware and navigate to the root directory. Once your dev env is setup, you'll be able to generate the default .hex using:
 
 ```
-$ make rev1-default
+$ make orthodox/rev1:default
 ```
 
 You will see a lot of output and if everything worked correctly you will see the built hex files in your *root qmk_firmware directory* two levels up:
@@ -50,7 +50,7 @@ If you would like to use one of the alternative keymaps, or create your own, cop
 
 
 ```
-$ make rev1-YOUR_KEYMAP_NAME
+$ make orthodox/rev1:YOUR_KEYMAP_NAME
 ```
 
 If everything worked correctly you will see a file:
@@ -96,8 +96,8 @@ the two halves, i.e. if your split keyboard has 3 rows in each half, then
 
 Flashing
 -------
-From the `orthodox` directory run `make SUBPROJECT-KEYMAP-avrdude` for automatic serial port resolution and flashing.
-Example: `make rev2-default-avrdude`
+From the root directory run `make PROJECT:KEYMAP:avrdude` for automatic serial port resolution and flashing.
+Example: `make orthodox/rev2:default:avrdude`
 
 
 Choosing which board to plug the USB cable into (choosing Master)
index 05f043b4c7df349a1aeab8cb1df3065e6b0da99e..26715f409639ddeb847dc1feab7b120c449fd7f0 100644 (file)
@@ -22,7 +22,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #ifndef REV1_CONFIG_H
 #define REV1_CONFIG_H
 
-#include "../config.h"
+#include "config_common.h"
 
 /* USB Device descriptor parameter */
 #define VENDOR_ID       0xFEED
index 06282b23492b664f6f54f66e7068dcde08748d18..ceaaaed2876a2579a4b86561ddea79f0b2dbbcd3 100644 (file)
@@ -22,7 +22,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #ifndef REV1_H
 #define REV1_H
 
-#include "../orthodox.h"
+#include "orthodox.h"
 
 //void promicro_bootloader_jmp(bool program);
 #include "quantum.h"
index a0825b4ef64065fedfe5042ccc7f24f4f0ef71bc..f845616741c20fcb5871515df81dc74fd351d20f 100644 (file)
@@ -1,5 +1 @@
-BACKLIGHT_ENABLE = no
-
-ifndef QUANTUM_DIR
-       include ../../../Makefile
-endif
\ No newline at end of file
+BACKLIGHT_ENABLE = no
\ No newline at end of file
index 3f40ff2f827e14980f1e72f34ddad9ba43a94ea8..48d6551bc79405e88badffc1b60b574bffa28c21 100644 (file)
@@ -73,3 +73,5 @@ USE_I2C = yes
 SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
 
 CUSTOM_MATRIX = yes
+
+DEFAULT_FOLDER = orthodox/rev1
index c4c152d40129ba51613b66c5209de8d73da6a087..b57191c0f687ba7d0e2b5623906c8b60e8b55487 100644 (file)
@@ -7,6 +7,6 @@ Hardware Availability: https://1upkeyboards.com/filco-pegasus-hoof-controller.ht
 
 Make example for this keyboard (after setting up your build environment):
 
-    make pegasus_hoof-default
+    make pegasus_hoof:default
 
 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.
index 7a31d106e09fc0988f2943c9aca46bc478ba9a68..1ac1363270d15cfcc3392e7f64ae83be681781ce 100644 (file)
@@ -11,6 +11,6 @@ Hardware Availability: https://mechanicalkeyboards.com/shop/index.php?l=product_
 
 Make example for this keyboard (after setting up your build environment):
 
-    make phantom-default
+    make phantom:default
 
 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.
index c8f4377f0af95faeee091f528828e957d044ee3f..bc7ec031ec8dc4dde9115973593e5865d9bea3c1 100644 (file)
@@ -81,6 +81,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 //#define NO_ACTION_MACRO
 //#define NO_ACTION_FUNCTION
 
-#include QMK_SUBPROJECT_CONFIG_H
-
 #endif
index cf2c31f0fb5fddcacec28824e262e4a787696ca7..247a1fd2ae01587ff63b36412f3213257a430db9 100644 (file)
@@ -1,7 +1,3 @@
-# Please remove if no longer applicable
-$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
-$(warning Please disable some options in the Makefile to resolve)
-
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in 
 #   the appropriate keymap folder that will get included automatically
@@ -20,8 +16,4 @@ BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
 
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
-
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
\ No newline at end of file
+SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
\ No newline at end of file
index cf2c31f0fb5fddcacec28824e262e4a787696ca7..247a1fd2ae01587ff63b36412f3213257a430db9 100644 (file)
@@ -1,7 +1,3 @@
-# Please remove if no longer applicable
-$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
-$(warning Please disable some options in the Makefile to resolve)
-
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in 
 #   the appropriate keymap folder that will get included automatically
@@ -20,8 +16,4 @@ BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
 
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
-
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
\ No newline at end of file
+SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
\ No newline at end of file
index 83da2a7f8968359f6386f3f4ddc7215a4b391cd3..bb12dd865c0c63416603d87a43ca27835cc41b5f 100644 (file)
@@ -1,7 +1,3 @@
-# Please remove if no longer applicable
-$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
-$(warning Please disable some options in the Makefile to resolve)
-
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in 
 #   the appropriate keymap folder that will get included automatically
@@ -20,8 +16,4 @@ BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
 
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
-
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
+SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
\ No newline at end of file
index b2ca419445f96612a47a1d0d62f5adef5215a505..247a1fd2ae01587ff63b36412f3213257a430db9 100644 (file)
@@ -1,8 +1,3 @@
-# Please remove if no longer applicable
-$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
-$(warning Please disable some options in the Makefile to resolve)
-
-
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in 
 #   the appropriate keymap folder that will get included automatically
@@ -21,8 +16,4 @@ BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
 
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
-
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
+SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
\ No newline at end of file
index b2ca419445f96612a47a1d0d62f5adef5215a505..247a1fd2ae01587ff63b36412f3213257a430db9 100644 (file)
@@ -1,8 +1,3 @@
-# Please remove if no longer applicable
-$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
-$(warning Please disable some options in the Makefile to resolve)
-
-
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in 
 #   the appropriate keymap folder that will get included automatically
@@ -21,8 +16,4 @@ BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
 
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
-
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
+SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
\ No newline at end of file
index b2ca419445f96612a47a1d0d62f5adef5215a505..247a1fd2ae01587ff63b36412f3213257a430db9 100644 (file)
@@ -1,8 +1,3 @@
-# Please remove if no longer applicable
-$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
-$(warning Please disable some options in the Makefile to resolve)
-
-
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in 
 #   the appropriate keymap folder that will get included automatically
@@ -21,8 +16,4 @@ BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
 
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
-
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
+SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
\ No newline at end of file
index b2ca419445f96612a47a1d0d62f5adef5215a505..be3f692802a42f055ee1f247f6a32a6c59ba96bf 100644 (file)
@@ -1,8 +1,3 @@
-# Please remove if no longer applicable
-$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
-$(warning Please disable some options in the Makefile to resolve)
-
-
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in 
 #   the appropriate keymap folder that will get included automatically
@@ -22,7 +17,3 @@ RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this
 
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
-
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
index b2ca419445f96612a47a1d0d62f5adef5215a505..247a1fd2ae01587ff63b36412f3213257a430db9 100644 (file)
@@ -1,8 +1,3 @@
-# Please remove if no longer applicable
-$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
-$(warning Please disable some options in the Makefile to resolve)
-
-
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in 
 #   the appropriate keymap folder that will get included automatically
@@ -21,8 +16,4 @@ BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
 
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
-
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
+SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
\ No newline at end of file
index 9080222e2885e107002b8d436220bbce32fd64b1..c8fd9324387bd718d83ded446f4b5d46ce6b5049 100644 (file)
 
 Make example for this keyboard (after setting up your build environment):
 
-    make planck-rev3-phreed
+    make planck/rev3:phreed
 
 To flash the keyboard
 
-    make planck-rev3-phreed-dfu
+    make planck/rev3:phreed:dfu
 
 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.
index b2ca419445f96612a47a1d0d62f5adef5215a505..247a1fd2ae01587ff63b36412f3213257a430db9 100644 (file)
@@ -1,8 +1,3 @@
-# Please remove if no longer applicable
-$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
-$(warning Please disable some options in the Makefile to resolve)
-
-
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in 
 #   the appropriate keymap folder that will get included automatically
@@ -21,8 +16,4 @@ BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
 
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
-
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
+SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
\ No newline at end of file
index 1004c8b99f54f8a2f2683dcee9ddfbcbe041b7c8..17f351756ec9d0004460dab9f75454b9ae802589 100644 (file)
@@ -15,19 +15,11 @@ You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#ifndef CONFIG_H
-#define CONFIG_H
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
 
 #include "config_common.h"
 
-/* USB Device descriptor parameter */
-#define VENDOR_ID       0xFEED
-#define PRODUCT_ID      0x6060
-#define DEVICE_VER      0x0001
-#define MANUFACTURER    Ortholinear Keyboards
-#define PRODUCT         The Planck Keyboard
-#define DESCRIPTION     A compact ortholinear keyboard
-
 /* key matrix size */
 #define MATRIX_ROWS 4
 #define MATRIX_COLS 12
index c92ca1bffafaff7ad9edcd9d4920cb860c3512d9..8a73eab584e7ac070a3a44f1652b2a34c49e29d7 100644 (file)
@@ -1,7 +1,3 @@
-# Please remove if no longer applicable
-$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
-$(warning Please disable some options in the Makefile to resolve)
-
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in
 #   the appropriate keymap folder that will get included automatically
@@ -20,8 +16,4 @@ BLUETOOTH_ENABLE = no  # Enable Bluetooth with the Adafruit EZ-Key HID
 RGBLIGHT_ENABLE  = no  # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
 
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no  # Breathing sleep LED during USB suspend
-
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
+SLEEP_LED_ENABLE = no  # Breathing sleep LED during USB suspend
\ No newline at end of file
index 9081c6d3ec8101b65b1e20c9dbaf0c7c1bd238eb..279e16eb724d9ced804a9e4a7fd7b3e7dde9f8f6 100644 (file)
@@ -1,8 +1,3 @@
-# Please remove if no longer applicable
-$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
-$(warning Please disable some options in the Makefile to resolve)
-
-
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in 
 #   the appropriate keymap folder that will get included automatically
@@ -22,8 +17,4 @@ RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this
 API_SYSEX_ENABLE = no                          # Disable extra stuff for ergodoxen
 
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
-
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
+SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
\ No newline at end of file
index b2ca419445f96612a47a1d0d62f5adef5215a505..247a1fd2ae01587ff63b36412f3213257a430db9 100644 (file)
@@ -1,8 +1,3 @@
-# Please remove if no longer applicable
-$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
-$(warning Please disable some options in the Makefile to resolve)
-
-
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in 
 #   the appropriate keymap folder that will get included automatically
@@ -21,8 +16,4 @@ BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
 
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
-
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
+SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
\ No newline at end of file
index 9477d1179ab8225d452884fc527fe2b3856e833d..7c50d87a0f9c736b327314c494d1cb82d472ded9 100644 (file)
@@ -1,8 +1,3 @@
-# Please remove if no longer applicable
-$(warning THIS FILE MAY BE TOO LARGE FOR YOUR KEYBOARD)
-$(warning Please disable some options in the Makefile to resolve)
-
-
 # Build Options
 #   change to "no" to disable the options, or define them in the Makefile in 
 #   the appropriate keymap folder that will get included automatically
@@ -23,7 +18,3 @@ PRINTING_ENABLE = yes
 
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
-
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
index caef2fe5fac73246f0cbda7204ca5eb88c16cb1b..3980b02f503925f8b2bc2102e0f18af553f27ac9 100644 (file)
@@ -1,4 +1,4 @@
-#include QMK_KEYBOARD_H
+#include "planck.h"
 
 #ifdef ONEHAND_ENABLE
 __attribute__ ((weak))
index c055d73cb6999232f1e403a19c975c4b3f4f3cdf..0ac4375d1db9a683f83d3681fd53a19266cf6b33 100644 (file)
@@ -1,8 +1,6 @@
 #ifndef PLANCK_H
 #define PLANCK_H
 
-#include QMK_SUBPROJECT_H
-
 #include "quantum.h"
 
 #define PLANCK_MIT( \
 #define KEYMAP PLANCK_GRID
 #define LAYOUT_ortho_4x12 PLANCK_GRID
 
+#ifdef KEYBOARD_planck_rev3
+    #include "rev3.h"
+#endif
+#ifdef KEYBOARD_planck_rev4
+    #include "rev4.h"
+#endif
+
 #endif
index b1a8c23b2ef06ae002c43887c2f143940ef0dae4..2d76a312a0fb4ae838a8602e1e5a38c843897251 100644 (file)
@@ -11,6 +11,6 @@ Hardware Availability: [OLKB.com](https://olkb.com), [Massdrop](https://www.mass
 
 Make example for this keyboard (after setting up your build environment):
 
-    make planck-rev4-default
+    make planck/rev4:default
 
 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.
\ No newline at end of file
index ade11ffe13fba6d681655511fc912f06748f4f20..45e60962ba5eef56db838dd2131baf2d1ecaf0a5 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef REV3_CONFIG_H
 #define REV3_CONFIG_H
 
-#include QMK_KEYBOARD_CONFIG_H
+#include "config_common.h"
 
 #define DEVICE_VER 0x0003
 
index e5e05236c462d677d22fcd7d75ed0948ea855992..50a09741d539d759f4b23f9009d39b291e962b77 100644 (file)
@@ -1,6 +1,6 @@
 #ifndef REV3_H
 #define REV3_H
 
-#include QMK_KEYBOARD_H
+#include "planck.h"
 
 #endif
\ No newline at end of file
index dcc76c11c9ec29613a9ef0782ba2d4f13cc9e8dc..4ff7649fb585d8df904493115f7c0e9ffd691866 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef REV4_CONFIG_H
 #define REV4_CONFIG_H
 
-#include QMK_KEYBOARD_CONFIG_H
+#include "config_common.h"
 
 #define DEVICE_VER 0x0004
 
index 2d35df19d870d30769ee51314c7c6293792b9737..74ec05460a3aca5aab3dc8c007a144f6ab71a974 100644 (file)
@@ -1,6 +1,6 @@
 #ifndef REV4_H
 #define REV4_H
 
-#include QMK_KEYBOARD_H
+#include "planck.h"
 
 #endif
\ No newline at end of file
index c4091f01179c9a770dfe59c7e8c74187c4ea7675..bee5f8789557978ef5510694ac2247230f8cd91f 100644 (file)
@@ -67,4 +67,6 @@ API_SYSEX_ENABLE = no
 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
 
-LAYOUTS = ortho_4x12
\ No newline at end of file
+LAYOUTS = ortho_4x12
+
+DEFAULT_FOLDER = planck/rev4
\ No newline at end of file
diff --git a/keyboards/planck/subproject.mk b/keyboards/planck/subproject.mk
deleted file mode 100644 (file)
index ac79a33..0000000
+++ /dev/null
@@ -1 +0,0 @@
-SUBPROJECT_DEFAULT = rev4
index cd765fe4afed62230879697c206c2ad870779ada..d9c119b8daca8e5546e4bbbebd29c7dce70b9595 100644 (file)
@@ -1,4 +1,4 @@
-#include QMK_KEYBOARD_H
+#include "preonic.h"
 
 #ifdef ONEHAND_ENABLE
 __attribute__ ((weak))
index 02845a549cce0cce6014d4447b196467cab2b6bd..c142825ba3e6b88cb9cdea22e818e1b54842aa66 100644 (file)
@@ -33,6 +33,7 @@
        { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \
 }
 
+#define KEYMAP PREONIC_MIT
 #define LAYOUT_ortho_5x12 PREONIC_GRID
 
 #endif
index 2a4ccd84dcd125389b2b71da691f588575d51be9..80f27c7f7be7c60cd5a613b5872217b067a51eef 100644 (file)
@@ -11,6 +11,6 @@ Hardware Availability: [OLKB.com](https://olkb.com/preonic/), [Massdrop](https:/
 
 Make example for this keyboard (after setting up your build environment):
 
-    make preonic-default
+    make preonic:default
 
 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.
\ No newline at end of file
index f8360aec0c7c13a93ce2e0c99b8a86ed479dffd9..8fd2af00f4eba3363bbf7bb803116c9562a3fc59 100644 (file)
@@ -37,7 +37,7 @@ Then, with the keyboard plugged in, simply run this command from the
 `qmk_firmware` directory:
 
 ```
-$ make ps2avrGB-program
+$ make ps2avrGB:program
 ```
 
 If you prefer, you can just build it and flash the firmware directly with
index e99b385f37caba49f04647cc3d406b17f9df2de7..fbc40a50fde2ab65a7dfa270eade6fc2696ccf0c 100644 (file)
@@ -9,6 +9,6 @@ Hardware Availability: https://thevankeyboards.com/products/roadkit-r2?variant=3
 
 Make example for this keyboard (after setting up your build environment):
 
-    make roadkit-default
+    make roadkit:default
 
 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.
index 436c6fa8b6491bbc9719aac01a0777acf5dd11da..25fc4ad2e0243efb438695653c1c285c637556e1 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef DEFAULT_CONFIG_H
 #define DEFAULT_CONFIG_H
 
-#include "../config.h"
+#include "config_common.h"
 
 #define PRODUCT         S60-X
 #define DESCRIPTION     q.m.k. keyboard firmware for S60-X
index 5c0d08833f3f7d63e5294d4769970be458557dce..35754b523393d9f7d9744e0b668513b5133164df 100644 (file)
@@ -15,30 +15,14 @@ You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#ifndef CONFIG_H
-#define CONFIG_H
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
 
 #include "config_common.h"
 
 /* USB Device descriptor parameter */
-#define VENDOR_ID       0xFEED
-#define PRODUCT_ID      0x6060
+#undef DEVICE_VER
 #define DEVICE_VER      0x0003
-#define MANUFACTURER    Sentraq
-#define PRODUCT         S60-RGB
-#define DESCRIPTION     QMK keyboard firmware for Sentraq S60-RGB
-
-/* key matrix size */
-#define MATRIX_ROWS 5
-#define MATRIX_COLS 15
-
-// ROWS: Top to bottom, COLS: Left to right
-
-#define MATRIX_ROW_PINS { B5, B4, D7, D6, D4 }
-#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, B6, C6, C7, F1, F0, E6, B3, B2, B1, B0 }
-#define UNUSED_PINS
-
-#define BACKLIGHT_PIN B7
 
 /* COL2ROW or ROW2COL */
 #define DIODE_DIRECTION COL2ROW
@@ -65,10 +49,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 /* Underlight configuration
  */
-
-#define RGB_DI_PIN F6
-#define RGBLIGHT_TIMER
-#define RGBLED_NUM 10    // Number of LEDs
+#undef RGBLIGHT_HUE_STEP
+#undef RGBLIGHT_SAT_STEP
+#undef RGBLIGHT_VAL_STEP
 #define RGBLIGHT_HUE_STEP 10
 #define RGBLIGHT_SAT_STEP 17
 #define RGBLIGHT_VAL_STEP 17
index dfefad39da9ec72d880959b62936a53ce0a05fe4..78d770d262c34a684d3873bfe41bb7357dc95e0e 100644 (file)
@@ -11,8 +11,4 @@ UNICODE_ENABLE = no         # Unicode
 BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
 RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
 SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
-TAP_DANCE_ENABLE = no          # Enable tap dancing keys
-
-ifndef QUANTUM_DIR
-    include ../../../../Makefile
-endif
+TAP_DANCE_ENABLE = no          # Enable tap dancing keys
\ No newline at end of file
index 9e1d06150ff4a2be29126bd64ca69c30007af355..cd7049536f1fbd316f9fa3d7eac6c3bdee975d51 100644 (file)
@@ -8,6 +8,6 @@ Hardware Availability: https://www.massdrop.com/buy/sentraq-60-diy-keyboard-kit?
 
 Make example for this keyboard (after setting up your build environment):
 
-    make s60_x-default
+    make s60_x:default
 
 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.
index 81efc87d54e1bbed57e206cc66b71344288e013a..ec8b0f49e1df2894ede4f99dd3f95876c565c002 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef RBG_CONFIG_H
 #define RBG_CONFIG_H
 
-#include "../config.h"
+#include "config_common.h"
 
 #define PRODUCT         S60-X-RGB
 #define DESCRIPTION     q.m.k. keyboard firmware for S60-X RGB
index 5d4b281951c536878fb9f73a53f15793f28b95c4..57f7a9a591a4a9363565b24ed2637f8124552660 100644 (file)
@@ -62,4 +62,6 @@ SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 MIDI_ENABLE = no            # MIDI controls
 UNICODE_ENABLE = no         # Unicode
 BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
-AUDIO_ENABLE = no           # Audio output on port C6
\ No newline at end of file
+AUDIO_ENABLE = no           # Audio output on port C6
+
+DEFAULT_FOLDER = s60_x/default
\ No newline at end of file
index 5bf8cfcefa1eefb82e645e6114506a8aabc9088c..b70cb5864b12b577fe30336e70d56d14b6174569 100644 (file)
@@ -1,10 +1,10 @@
 #ifndef S60X_H
 #define S60X_H
 
-#ifdef SUBPROJECT_default
+#ifdef KEYBOARD_s60_x_default
     #include "default.h"
 #endif
-#ifdef SUBPROJECT_rgb
+#ifdef KEYBOARD_s60_x_rgb
     #include "rgb.h"
 #endif
 
diff --git a/keyboards/s60_x/subproject.mk b/keyboards/s60_x/subproject.mk
deleted file mode 100644 (file)
index c20a317..0000000
+++ /dev/null
@@ -1 +0,0 @@
-SUBPROJECT_DEFAULT = default
index 9021af4dffcb2cd278e427256096d97b14bbdfeb..f647f9cb6f53df3a68fa18d893843b5e17833def 100644 (file)
@@ -8,6 +8,6 @@ Hardware Availability: https://sentraq.com/collections/group-buys/products/gb-s6
 
 Make example for this keyboard (after setting up your build environment):
 
-    make s65_x-default
+    make s65_x:default
 
 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.
index 33310ce251dfa749dd9ba6cbc1fe5a18a713d0e3..cb887805ffc11321e0a6e1bb7f02d91d3b081888 100644 (file)
@@ -10,6 +10,6 @@ Hardware Availability: https://1upkeyboards.com/gh60-satan-pcb.html
 
 Make example for this keyboard (after setting up your build environment):
 
-    make satan-default
+    make satan:default
 
 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.
index a2fc9eb46b2b7d3f6ad2e8e6f3d2ad1bbef4235e..c0d87bc2c5975924cf9ac01151527b43c6db1197 100644 (file)
@@ -7,7 +7,7 @@ Hardware Availability: http://techkeys.us/collections/accessories/products/sixke
 
 Make example for this keyboard (after setting up your build environment):
 
-    make sixkeyboard-default
+    make sixkeyboard:default
 
 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.
 
index 3bd986fc53bbe58941ce09ea6990cf6abc743cd4..435aed68cdc1111109e87dfb3950ae3b4428cb3a 100644 (file)
@@ -9,6 +9,6 @@ Hardware Availability: [1up Keyboards](https://1upkeyboards.com/)
 
 Make example for this keyboard (after setting up your build environment):
 
-    make sweet16-default
+    make sweet16:default
 
 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.
\ No newline at end of file
index cc025cad4e7944a9c774d9498108d936916a1f18..a18758ac944911de8129e18c6f9f6b6d11e0bbaf 100755 (executable)
@@ -9,7 +9,7 @@ Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/products/tada68-m
 
 Make example for this keyboard (after setting up your build environment):
 
-    make tada68-default-bin
+    make tada68:default:bin
 
 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.
 
@@ -19,7 +19,7 @@ See [build environment setup](https://docs.qmk.fm/build_environment_setup.html)
 
 1) from the `qmk_firmware\` directory run:
 ```
-$ make tada68-default-flashbin
+$ make tada68:default:flashbin
 ```
 
 2) Connect your keyboard to Windows computer, hit the reset button on the TADA, the lights will start flashing.
index b24c4683664be3f6e44875b0f983d29c9e1fb846..99da94742b13e0517c0f1450010b06072bab09d6 100644 (file)
@@ -11,6 +11,6 @@ Hardware Availability: https://geekhack.org/index.php?topic=46700.0
 
 Make example for this keyboard (after setting up your build environment):
 
-    make tiger_lily-default
+    make tiger_lily:default
 
 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.
index fb380899632f420f9327342a7a916d1917d4ab9c..e3851f18ca674666d0ea65bf97c789106842a8c6 100644 (file)
@@ -12,7 +12,7 @@ Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.c
 
 Make example for this keyboard (after setting up your build environment):
 
-    make tomato-default
+    make tomato:default
 
 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.
 
index f0a277dec93896bef20d120a0fd5f9d53bce7069..c2394c0313a0817311f75fce4b9183a540577500 100644 (file)
@@ -9,6 +9,6 @@ Hardware Availability: https://thevankeyboards.com/products/minivan-r4-keyboard-
 
 Make example for this keyboard (after setting up your build environment):
 
-    make tv44-default
+    make tv44:default
 
 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.
index 86eac4bf868cdce9eecc4ae3d637d25df1409d1c..1fabd4d496d9e6cfe1eded2be6cb198291583262 100644 (file)
@@ -7,4 +7,4 @@
 Plug the keyboard in and press the reset button, then in the main
 `qmk_firmware` directory run
 
-    $ sudo make uk78-rask-dfu
+    $ sudo make uk78:rask:dfu
index 2f29ca48c025fc5afd95a545793e54542c3a7d17..eb4d1824c2951420155ae5df4792bb1099b56f53 100644 (file)
@@ -11,6 +11,6 @@ A fully customizable 60%+numpad keyboard.
 
 Make example for this keyboard (after setting up your build environment):
 
-    make uk78-default
+    make uk78:default
 
 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.
\ No newline at end of file
index 685fcba938ec0261f16aae182a747048cc05a64e..c6be2909134c122c2816e82108a925bb76452e41 100644 (file)
@@ -23,7 +23,7 @@ Hardware Availability: [mechanicalkeyboards.com](https://mechanicalkeyboards.com
 
 Make example for this keyboard (after setting up your build environment):
 
-    make v60_type_r-default
+    make v60_type_r:default
 
 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.
 
index 880c62f58df534518469e428511c80db9ef75c55..058629db3e51fbef5e304ecb262932fb0b3f8b02 100644 (file)
@@ -9,6 +9,6 @@ Hardware Availability: https://geekhack.org/index.php?topic=83692.msg2227856#msg
 
 Make example for this keyboard (after setting up your build environment):
 
-    make vision_division-default
+    make vision_division:default
 
 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.
index 55500df79bb2237cf039d3f38ac2fb7b258fbbb4..863722d7d04d1c9d813a3b2cf0da210b35fae2a0 100644 (file)
@@ -20,8 +20,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #include "config_common.h"
 
-#ifdef SUBPROJECT_rev1
-    #include "rev1/config.h"
-#endif
-
 #endif  // CONFIG_H
index bc8451ba309540efb1164b61c446369bc95e4e37..13f3e605662e2f4c2abc94744fa35634c0189d87 100644 (file)
@@ -9,12 +9,12 @@ Hardware Availability: [Keebio](https://keeb.io)
 
 Make example for this keyboard (after setting up your build environment):
 
-    make viterbi-rev1-default
+    make viterbi/rev1:default
 
 
 Example of flashing this keyboard:
 
-    make viterbi-rev1-default-avrdude
+    make viterbi/rev1:default:avrdude
 
 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.
 
index d48075198d0d2b65db2ae69e692b30c504ca208e..68ca5f36262518fa412c4e88c5fdcd7c68010e92 100644 (file)
@@ -18,7 +18,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #ifndef REV1_CONFIG_H
 #define REV1_CONFIG_H
 
-#include "../config.h"
+#include "config_common.h"
 
 /* USB Device descriptor parameter */
 #define VENDOR_ID       0xCEEB
index 80a942d06f7cc35dc8abf7a43d371a2381a84204..f845616741c20fcb5871515df81dc74fd351d20f 100644 (file)
@@ -1,5 +1 @@
-BACKLIGHT_ENABLE = no
-
-ifndef QUANTUM_DIR
-       include ../../../Makefile
-endif
+BACKLIGHT_ENABLE = no
\ No newline at end of file
index 3f40ff2f827e14980f1e72f34ddad9ba43a94ea8..8a1b94013e38f455404553caa856f2f914662366 100644 (file)
@@ -73,3 +73,5 @@ USE_I2C = yes
 SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
 
 CUSTOM_MATRIX = yes
+
+DEFAULT_FOLDER = viterbi/rev1
\ No newline at end of file
index d3d0f64eb7232adcb927a5a21eae5fd5455b1a6b..34742391041456a14ded776c5629a8ec41eb3ecb 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef VITERBI_H
 #define VITERBI_H
 
-#ifdef SUBPROJECT_rev1
+#ifdef KEYBOARD_viterbi_rev1
     #include "rev1.h"
 #endif
 
index 2f1445d33d490b542d6d6ebe90fd8c93fcf88553..c0fa7b4e33fa079638ce5b0c4c5bf6a28c9f9d6e 100644 (file)
@@ -9,6 +9,6 @@ Hardware Availability: https://input.club/whitefox/
 
 Make example for this keyboard (after setting up your build environment):
 
-    make whitefox-default
+    make whitefox:default
 
 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.
index d2a87bd722e58edd3bb4c2e53830d628ca1ba8cd..248e0a60673c9ac14155e47c09784e890e9afbb9 100644 (file)
@@ -6,4 +6,4 @@
 Default Keymap for XD60 as indicated on the original sale page.
 
 ## Build
-To build the default keymap, simply run `make xd60-default`.
+To build the default keymap, simply run `make xd60:default`.
index 946ae5606329d2d51e93d6cbba61621c0c517fbe..a23f6a8bec7919d715317352ad4578320e426d79 100644 (file)
@@ -15,4 +15,4 @@ This layout is  WIP for me as I use my shiny new keyboard more and more. I will
 * I use emacs, which could account for some of the oddities in my layout and macros
 
 ## Build
-To build the default keymap, simply run `make xd60-kmontag42`.
+To build the default keymap, simply run `make xd60:kmontag42`.
index 56b2c811c1a50c18928f9d971ba0045b9b996e8f..83fdbf2b7092f00d1a1fdb66fc90730e47642baf 100644 (file)
@@ -4,7 +4,7 @@ Customized xd60 keymap with inspirations from HHKB and the layout I used on my V
 
 ## Programming Instructions
 
-Change the layout in `keymap.c` then run `make xd60-yuuki`. The compiled file will be located in `.build/xd60_yuuki.hex` relative to the project root. To flash it onto your keyboard, use whatever program works on your OS. I personally use `dfu-programmer`, and run:
+Change the layout in `keymap.c` then run `make xd60:yuuki`. The compiled file will be located in `.build/xd60_yuuki.hex` relative to the project root. To flash it onto your keyboard, use whatever program works on your OS. I personally use `dfu-programmer`, and run:
 
 * `sudo dfu-programmer atmega32u4 erase`
 * `sudo dfu-programmer atmega32u4 flash .build/xd60-yuuki.hex`
index d7aa3d9b9ec33f344262a89733da1415b77dbf6b..389423ed0e78e272b47119d681e353093ad3bb3e 100644 (file)
@@ -11,6 +11,6 @@ Hardware Availability: https://www.massdrop.com/buy/xd60-xd64-custom-mechanical-
 
 Make example for this keyboard (after setting up your build environment):
 
-    make xd60-default
+    make xd60:default
 
 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.
index d5dbdef25f5589ea4dcaedbb5880d7dc16d10495..5f4d2e85ffe46686bcabea771162dda5fc00162b 100644 (file)
@@ -17,13 +17,13 @@ it using DFU.
 
 ### Default
 
-To build with the default keymap, simply run `make xd75-default` from the root directory (i.e. two levels above this file), and to install via DFU, `make xd75-default-dfu`, also from the root directory.
+To build with the default keymap, simply run `make xd75:default` from the root directory (i.e. two levels above this file), and to install via DFU, `make xd75:default:dfu`, also from the root directory.
 
 Note that DFU is likely to require root permissions, so installing the
 firmware likely requires a command line like:
 
 ```
-$ sudo make xd75-default-dfu
+$ sudo make xd75:default:dfu
 ```
 
 ### Other Keymaps
@@ -42,6 +42,6 @@ To build the firmware binary hex file for a specific keymap, and
 install it, using DFU, just do `make` with a keymap like this:
 
 ```
-$ make xd75-[default|<name>]
+$ make xd75:[default|<name>]
 ```
 
index 869dfb1018726e0cfe726258db883a2358d0a00f..a60323ab95f565dc62930312710ca871614ccf87 100644 (file)
@@ -46,7 +46,7 @@ $ pip install pyusb
 
 Build the keyboard with  
 ```
-$ make ymd96-default  
+$ make ymd96:default  
 ```  
 If you make your own layout, change the `default` word to whatever your layout is.  
 
index 671b63ea2ca2bee951deaceb2e33124d1b30ccec..3bf3f7de6c084d08615a19766dc62451ffc9e597 100644 (file)
@@ -93,18 +93,26 @@ GFXDEFS +=-DGDISP_DRIVER_LIST="$(GDISP_DRIVER_LIST)"
 ifneq ("$(wildcard $(KEYMAP_PATH)/visualizer.c)","")
     SRC += $(KEYMAP_PATH)/visualizer.c
 else 
-    ifeq ("$(wildcard $(SUBPROJECT_PATH)/keymaps/$(KEYMAP)/visualizer.c)","")
-        ifeq ("$(wildcard $(SUBPROJECT_PATH)/visualizer.c)","")
-            ifeq ("$(wildcard $(KEYBOARD_PATH)/visualizer.c)","")
-$(error "visualizer.c" not found")
-            else
-               SRC += keyboards/$(KEYBOARD)/visualizer.c
-            endif
-        else
-            SRC += keyboards/$(KEYBOARD)/$(SUBPROJECT)/visualizer.c
-        endif
-    else
-        SRC += keyboards/$(KEYBOARD)/$(SUBPROJECT)/keymaps/$(KEYMAP)/visualizer.c
+    VISUALIZER_1 := $(KEYBOARD_PATH_1)/visualizer.c
+    VISUALIZER_2 := $(KEYBOARD_PATH_2)/visualizer.c
+    VISUALIZER_3 := $(KEYBOARD_PATH_3)/visualizer.c
+    VISUALIZER_4 := $(KEYBOARD_PATH_4)/visualizer.c
+    VISUALIZER_5 := $(KEYBOARD_PATH_5)/visualizer.c
+
+    ifneq ("$(wildcard $(VISUALIZER_5))","")
+        SRC += $(VISUALIZER_5)
+    endif
+    ifneq ("$(wildcard $(VISUALIZER_4))","")
+        SRC += $(VISUALIZER_4)
+    endif
+    ifneq ("$(wildcard $(VISUALIZER_3))","")
+        SRC += $(VISUALIZER_3)
+    endif
+    ifneq ("$(wildcard $(VISUALIZER_2))","")
+        SRC += $(VISUALIZER_2)
+    endif
+    ifneq ("$(wildcard $(VISUALIZER_1))","")
+        SRC += $(VISUALIZER_1)
     endif
 endif
 
index c938eaeb9010ad64b3856c5ff1d2efb1cf37c37d..c804d237e2822a2ebd59c6fba83bbc358ad2494f 100644 (file)
@@ -46,13 +46,32 @@ endif
 include $(PLATFORM_MK)
 
 
-BOARD_MK = $(KEYBOARD_PATH)/boards/$(BOARD)/board.mk
+BOARD_MK := 
+
+ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/board.mk)","")
+    BOARD_PATH = $(KEYBOARD_PATH_5)
+    BOARD_MK += $(KEYBOARD_PATH_5)/boards/$(BOARD)/board.mk
+else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/boards/$(BOARD)/board.mk)","")
+    BOARD_PATH = $(KEYBOARD_PATH_4)
+    BOARD_MK += $(KEYBOARD_PATH_4)/boards/$(BOARD)/board.mk
+else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/boards/$(BOARD)/board.mk)","")
+    BOARD_PATH = $(KEYBOARD_PATH_3)
+    BOARD_MK += $(KEYBOARD_PATH_3)/boards/$(BOARD)/board.mk
+else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/boards/$(BOARD)/board.mk)","")
+    BOARD_PATH = $(KEYBOARD_PATH_2)
+    BOARD_MK += $(KEYBOARD_PATH_2)/boards/$(BOARD)/board.mk
+else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/boards/$(BOARD)/board.mk)","")
+    BOARD_PATH = $(KEYBOARD_PATH_1)
+    BOARD_MK += $(KEYBOARD_PATH_1)/boards/$(BOARD)/board.mk
+endif
+
 ifeq ("$(wildcard $(BOARD_MK))","")
        BOARD_MK = $(CHIBIOS)/os/hal/boards/$(BOARD)/board.mk
        ifeq ("$(wildcard $(BOARD_MK))","")
                BOARD_MK = $(CHIBIOS_CONTRIB)/os/hal/boards/$(BOARD)/board.mk
        endif
 endif
+
 include $(BOARD_MK)
 include $(CHIBIOS)/os/hal/osal/rt/osal.mk
 # RTOS files (optional).
@@ -72,10 +91,18 @@ RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC
 endif
 
 # Define linker script file here
-ifneq ("$(wildcard $(KEYBOARD_PATH)/ld/$(MCU_LDSCRIPT).ld)","")
-LDSCRIPT = $(KEYBOARD_PATH)/ld/$(MCU_LDSCRIPT).ld
+ifneq ("$(wildcard $(KEYBOARD_PATH_5)/ld/$(MCU_LDSCRIPT).ld)","")
+    LDSCRIPT = $(KEYBOARD_PATH_5)/ld/$(MCU_LDSCRIPT).ld
+else ifneq ("$(wildcard $(KEYBOARD_PATH_4)/ld/$(MCU_LDSCRIPT).ld)","")
+    LDSCRIPT = $(KEYBOARD_PATH_4)/ld/$(MCU_LDSCRIPT).ld
+else ifneq ("$(wildcard $(KEYBOARD_PATH_3)/ld/$(MCU_LDSCRIPT).ld)","")
+    LDSCRIPT = $(KEYBOARD_PATH_3)/ld/$(MCU_LDSCRIPT).ld
+else ifneq ("$(wildcard $(KEYBOARD_PATH_2)/ld/$(MCU_LDSCRIPT).ld)","")
+    LDSCRIPT = $(KEYBOARD_PATH_2)/ld/$(MCU_LDSCRIPT).ld
+else ifneq ("$(wildcard $(KEYBOARD_PATH_1)/ld/$(MCU_LDSCRIPT).ld)","")
+    LDSCRIPT = $(KEYBOARD_PATH_1)/ld/$(MCU_LDSCRIPT).ld
 else
-LDSCRIPT = $(STARTUPLD)/$(MCU_LDSCRIPT).ld
+    LDSCRIPT = $(STARTUPLD)/$(MCU_LDSCRIPT).ld
 endif
 
 CHIBISRC = $(STARTUPSRC) \
index 73ffeaac1e8af93f8e78fcd49e6bc6123ee440f5..53e79ef47a57650b443646dedc14d0d19ba2aa08 100644 (file)
@@ -290,7 +290,7 @@ BEGIN = gccversion sizebefore
 define GEN_OBJRULE
 $1_INCFLAGS := $$(patsubst %,-I%,$$($1_INC))
 ifdef $1_CONFIG
-$1_CONFIG_FLAGS += -include $$($1_CONFIG)
+$1_CONFIG_FLAGS += $$(patsubst %,-include %,$$($1_CONFIG))
 endif
 $1_CFLAGS = $$(ALL_CFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS)
 $1_CPPFLAGS= $$(ALL_CPPFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS)
index 3243447ab62079e0d527715cbc8c4f527919ca4e..87a5433705236fc342ff20d1746210464fd1cb27 100644 (file)
@@ -9,21 +9,24 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then
        BRANCH=$(git rev-parse --abbrev-ref HEAD)
        if [ $NEFM -gt 0 -o "$BRANCH" = "master" ]; then
                echo "Making all keymaps for all keyboards"
-               make all-keyboards AUTOGEN="true"
+               make all:all AUTOGEN="true"
                : $((exit_code = $exit_code + $?))
        else
-               MKB=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -oP '(?<=keyboards\/)([a-zA-Z0-9_]+)(?=\/)' | sort -u)
+               MKB=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -oP '(?<=keyboards\/)([a-zA-Z0-9_\/]+)(?=\/)' | sort -u)
                for KB in $MKB ; do
+                       if [[ $KB == *keymaps* ]]; then
+                               continue
+                       fi
                        KEYMAP_ONLY=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/'${KB}'/keymaps/)' | wc -l)
                        if [[ $KEYMAP_ONLY -gt 0 ]]; then
                                echo "Making all keymaps for $KB"
-                               make ${KB}-allsp-allkm AUTOGEN=true
+                               make ${KB}:all AUTOGEN=true
                                : $((exit_code = $exit_code + $?))
                        else
                                MKM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -oP '(?<=keyboards/'${KB}'/keymaps/)([a-zA-Z0-9_]+)(?=\/)' | sort -u)
                                for KM in $MKM ; do
                                        echo "Making $KM for $KB"       
-                                       make ${KB}-allsp-${KM} AUTOGEN=true
+                                       make ${KB}:${KM} AUTOGEN=true
                                        : $((exit_code = $exit_code + $?))
                                done            
                        fi