diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 68 |
1 files changed, 63 insertions, 5 deletions
| @@ -10,19 +10,32 @@ abs_tmk_root := $(patsubst %/,%,$(dir $(mkfile_path))) | |||
| 10 | ifneq (,$(findstring /keyboards/,$(starting_makefile))) | 10 | ifneq (,$(findstring /keyboards/,$(starting_makefile))) |
| 11 | possible_keyboard:=$(patsubst %/,%,$(dir $(patsubst $(abs_tmk_root)/keyboards/%,%,$(starting_makefile)))) | 11 | possible_keyboard:=$(patsubst %/,%,$(dir $(patsubst $(abs_tmk_root)/keyboards/%,%,$(starting_makefile)))) |
| 12 | ifneq (,$(findstring /keymaps/,$(possible_keyboard))) | 12 | ifneq (,$(findstring /keymaps/,$(possible_keyboard))) |
| 13 | KEYBOARD_DIR:=$(firstword $(subst /keymaps/, ,$(possible_keyboard))) | ||
| 14 | KEYMAP_DIR:=$(lastword $(subst /keymaps/, ,$(possible_keyboard))) | 13 | KEYMAP_DIR:=$(lastword $(subst /keymaps/, ,$(possible_keyboard))) |
| 15 | tmk_root = ../../../.. | 14 | KEYBOARD_DIR:=$(firstword $(subst /keymaps/, ,$(possible_keyboard))) |
| 15 | ifneq (,$(findstring /,$(KEYBOARD_DIR))) | ||
| 16 | # SUBPROJECT_DIR:=$(lastword $(subst /, ,$(KEYBOARD_DIR))) | ||
| 17 | # KEYBOARD_DIR:=$(firstword $(subst /, ,$(KEYBOARD_DIR))) | ||
| 18 | tmk_root = ../../.. | ||
| 19 | else | ||
| 20 | tmk_root = ../../../.. | ||
| 21 | endif | ||
| 16 | else | 22 | else |
| 17 | KEYBOARD_DIR:=$(possible_keyboard) | ||
| 18 | KEYMAP_DIR:=default | 23 | KEYMAP_DIR:=default |
| 19 | tmk_root = ../.. | 24 | KEYBOARD_DIR:=$(possible_keyboard) |
| 25 | ifneq (,$(findstring /,$(KEYBOARD_DIR))) | ||
| 26 | # SUBPROJECT_DIR:=$(lastword $(subst /, ,$(KEYBOARD_DIR))) | ||
| 27 | # KEYBOARD_DIR:=$(firstword $(subst /, ,$(KEYBOARD_DIR))) | ||
| 28 | tmk_root = ../../.. | ||
| 29 | else | ||
| 30 | tmk_root = ../.. | ||
| 31 | endif | ||
| 20 | endif | 32 | endif |
| 21 | else | 33 | else |
| 22 | tmk_root = . | 34 | tmk_root = . |
| 23 | endif | 35 | endif |
| 24 | # $(info $(KEYBOARD_DIR)) | 36 | # $(info $(KEYBOARD_DIR)) |
| 25 | # $(info $(KEYMAP_DIR)) | 37 | # $(info $(KEYMAP_DIR)) |
| 38 | # $(info $(SUBPROJECT_DIR)) | ||
| 26 | 39 | ||
| 27 | # Directory common source filess exist | 40 | # Directory common source filess exist |
| 28 | TOP_DIR = $(tmk_root) | 41 | TOP_DIR = $(tmk_root) |
| @@ -32,6 +45,7 @@ TMK_PATH = $(TOP_DIR)/$(TMK_DIR) | |||
| 32 | QUANTUM_DIR = quantum | 45 | QUANTUM_DIR = quantum |
| 33 | QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR) | 46 | QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR) |
| 34 | 47 | ||
| 48 | |||
| 35 | ifdef keyboard | 49 | ifdef keyboard |
| 36 | KEYBOARD ?= $(keyboard) | 50 | KEYBOARD ?= $(keyboard) |
| 37 | endif | 51 | endif |
| @@ -41,7 +55,16 @@ endif | |||
| 41 | ifndef KEYBOARD | 55 | ifndef KEYBOARD |
| 42 | KEYBOARD=planck | 56 | KEYBOARD=planck |
| 43 | endif | 57 | endif |
| 58 | |||
| 59 | # converts things to keyboards/subproject | ||
| 60 | ifneq (,$(findstring /,$(KEYBOARD))) | ||
| 61 | TEMP:=$(KEYBOARD) | ||
| 62 | KEYBOARD:=$(firstword $(subst /, ,$(TEMP))) | ||
| 63 | SUBPROJECT:=$(lastword $(subst /, ,$(TEMP))) | ||
| 64 | endif | ||
| 65 | |||
| 44 | KEYBOARD_PATH = $(TOP_DIR)/keyboards/$(KEYBOARD) | 66 | KEYBOARD_PATH = $(TOP_DIR)/keyboards/$(KEYBOARD) |
| 67 | |||
| 45 | ifneq ("$(wildcard $(KEYBOARD_PATH)/$(KEYBOARD).c)","") | 68 | ifneq ("$(wildcard $(KEYBOARD_PATH)/$(KEYBOARD).c)","") |
| 46 | KEYBOARD_FILE = keyboards/$(KEYBOARD)/$(KEYBOARD).c | 69 | KEYBOARD_FILE = keyboards/$(KEYBOARD)/$(KEYBOARD).c |
| 47 | ifndef ARCH | 70 | ifndef ARCH |
| @@ -51,6 +74,28 @@ else | |||
| 51 | $(error "$(KEYBOARD_PATH)/$(KEYBOARD).c" does not exist) | 74 | $(error "$(KEYBOARD_PATH)/$(KEYBOARD).c" does not exist) |
| 52 | endif | 75 | endif |
| 53 | 76 | ||
| 77 | ifdef sub | ||
| 78 | SUBPROJECT=$(sub) | ||
| 79 | endif | ||
| 80 | ifdef subproject | ||
| 81 | SUBPROJECT=$(subproject) | ||
| 82 | endif | ||
| 83 | |||
| 84 | ifdef SUBPROJECT_DEFAULT | ||
| 85 | SUBPROJECT?=$(SUBPROJECT_DEFAULT) | ||
| 86 | endif | ||
| 87 | |||
| 88 | ifdef SUBPROJECT | ||
| 89 | SUBPROJECT_PATH = $(TOP_DIR)/keyboards/$(KEYBOARD)/$(SUBPROJECT) | ||
| 90 | ifneq ("$(wildcard $(SUBPROJECT_PATH)/$(SUBPROJECT).c)","") | ||
| 91 | OPT_DEFS += -DSUBPROJECT_$(SUBPROJECT) | ||
| 92 | SUBPROJECT_FILE = keyboards/$(KEYBOARD)/$(SUBPROJECT)/$(SUBPROJECT).c | ||
| 93 | -include $(SUBPROJECT_PATH)/Makefile | ||
| 94 | else | ||
| 95 | $(error "$(SUBPROJECT_PATH)/$(SUBPROJECT).c" does not exist) | ||
| 96 | endif | ||
| 97 | endif | ||
| 98 | |||
| 54 | ifdef keymap | 99 | ifdef keymap |
| 55 | KEYMAP ?= $(keymap) | 100 | KEYMAP ?= $(keymap) |
| 56 | endif | 101 | endif |
| @@ -68,7 +113,13 @@ else | |||
| 68 | $(error "$(KEYMAP_PATH)/keymap.c" does not exist) | 113 | $(error "$(KEYMAP_PATH)/keymap.c" does not exist) |
| 69 | endif | 114 | endif |
| 70 | 115 | ||
| 71 | TARGET ?= $(KEYBOARD)_$(KEYMAP) | 116 | ifdef SUBPROJECT |
| 117 | TARGET ?= $(KEYBOARD)_$(SUBPROJECT)_$(KEYMAP) | ||
| 118 | else | ||
| 119 | TARGET ?= $(KEYBOARD)_$(KEYMAP) | ||
| 120 | endif | ||
| 121 | |||
| 122 | |||
| 72 | 123 | ||
| 73 | ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") | 124 | ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") |
| 74 | CONFIG_H = $(KEYMAP_PATH)/config.h | 125 | CONFIG_H = $(KEYMAP_PATH)/config.h |
| @@ -83,6 +134,10 @@ SRC += $(KEYBOARD_FILE) \ | |||
| 83 | $(QUANTUM_DIR)/keymap.c \ | 134 | $(QUANTUM_DIR)/keymap.c \ |
| 84 | $(QUANTUM_DIR)/keycode_config.c | 135 | $(QUANTUM_DIR)/keycode_config.c |
| 85 | 136 | ||
| 137 | ifdef SUBPROJECT | ||
| 138 | SRC += $(SUBPROJECT_FILE) | ||
| 139 | endif | ||
| 140 | |||
| 86 | ifndef CUSTOM_MATRIX | 141 | ifndef CUSTOM_MATRIX |
| 87 | SRC += $(QUANTUM_DIR)/matrix.c | 142 | SRC += $(QUANTUM_DIR)/matrix.c |
| 88 | endif | 143 | endif |
| @@ -104,6 +159,9 @@ endif | |||
| 104 | 159 | ||
| 105 | # Search Path | 160 | # Search Path |
| 106 | VPATH += $(KEYMAP_PATH) | 161 | VPATH += $(KEYMAP_PATH) |
| 162 | ifdef SUBPROJECT | ||
| 163 | VPATH += $(SUBPROJECT_PATH) | ||
| 164 | endif | ||
| 107 | VPATH += $(KEYBOARD_PATH) | 165 | VPATH += $(KEYBOARD_PATH) |
| 108 | VPATH += $(TOP_DIR) | 166 | VPATH += $(TOP_DIR) |
| 109 | VPATH += $(TMK_PATH) | 167 | VPATH += $(TMK_PATH) |
