diff options
| author | Fred Sundvik <fsundvik@gmail.com> | 2016-08-08 10:26:23 +0300 |
|---|---|---|
| committer | Fred Sundvik <fsundvik@gmail.com> | 2016-08-20 03:56:30 +0300 |
| commit | 67b294ca66fd9da341ab93019a380d91ac589c96 (patch) | |
| tree | 43ce564d34fc93154476ef777202b2e245fb7805 /build_keyboard.mk | |
| parent | db5c3b74fb6541879bfad9930d2a659b1d89cd83 (diff) | |
| download | qmk_firmware-67b294ca66fd9da341ab93019a380d91ac589c96.tar.gz qmk_firmware-67b294ca66fd9da341ab93019a380d91ac589c96.zip | |
Actual compilation
Diffstat (limited to 'build_keyboard.mk')
| -rw-r--r-- | build_keyboard.mk | 171 |
1 files changed, 42 insertions, 129 deletions
diff --git a/build_keyboard.mk b/build_keyboard.mk index 053c8532a..b0cb22e6a 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk | |||
| @@ -4,44 +4,9 @@ endif | |||
| 4 | 4 | ||
| 5 | .DEFAULT_GOAL := all | 5 | .DEFAULT_GOAL := all |
| 6 | 6 | ||
| 7 | space := $(subst ,, ) | ||
| 8 | ESCAPED_ABS_PATH = $(subst $(space),_SPACE_,$(abspath $1)) | ||
| 9 | starting_makefile := $(call ESCAPED_ABS_PATH,$(firstword $(MAKEFILE_LIST))) | ||
| 10 | mkfile_path := $(call ESCAPED_ABS_PATH,$(lastword $(MAKEFILE_LIST)))) | ||
| 11 | abs_tmk_root := $(patsubst %/,%,$(dir $(mkfile_path))) | ||
| 12 | |||
| 13 | ifneq (,$(findstring /keyboards/,$(starting_makefile))) | ||
| 14 | possible_keyboard:=$(patsubst %/,%,$(dir $(patsubst $(abs_tmk_root)/keyboards/%,%,$(starting_makefile)))) | ||
| 15 | ifneq (,$(findstring /keymaps/,$(possible_keyboard))) | ||
| 16 | KEYMAP_DIR:=$(lastword $(subst /keymaps/, ,$(possible_keyboard))) | ||
| 17 | KEYBOARD_DIR:=$(firstword $(subst /keymaps/, ,$(possible_keyboard))) | ||
| 18 | ifneq (,$(findstring /,$(KEYBOARD_DIR))) | ||
| 19 | # SUBPROJECT_DIR:=$(lastword $(subst /, ,$(KEYBOARD_DIR))) | ||
| 20 | # KEYBOARD_DIR:=$(firstword $(subst /, ,$(KEYBOARD_DIR))) | ||
| 21 | tmk_root = ../../.. | ||
| 22 | else | ||
| 23 | tmk_root = ../../../.. | ||
| 24 | endif | ||
| 25 | else | ||
| 26 | KEYMAP_DIR:=default | ||
| 27 | KEYBOARD_DIR:=$(possible_keyboard) | ||
| 28 | ifneq (,$(findstring /,$(KEYBOARD_DIR))) | ||
| 29 | # SUBPROJECT_DIR:=$(lastword $(subst /, ,$(KEYBOARD_DIR))) | ||
| 30 | # KEYBOARD_DIR:=$(firstword $(subst /, ,$(KEYBOARD_DIR))) | ||
| 31 | tmk_root = ../../.. | ||
| 32 | else | ||
| 33 | tmk_root = ../.. | ||
| 34 | endif | ||
| 35 | endif | ||
| 36 | else | ||
| 37 | tmk_root = . | ||
| 38 | endif | ||
| 39 | # $(info $(KEYBOARD_DIR)) | ||
| 40 | # $(info $(KEYMAP_DIR)) | ||
| 41 | # $(info $(SUBPROJECT_DIR)) | ||
| 42 | 7 | ||
| 43 | # Directory common source filess exist | 8 | # Directory common source filess exist |
| 44 | TOP_DIR = $(tmk_root) | 9 | TOP_DIR = . |
| 45 | TMK_DIR = tmk_core | 10 | TMK_DIR = tmk_core |
| 46 | TMK_PATH = $(TOP_DIR)/$(TMK_DIR) | 11 | TMK_PATH = $(TOP_DIR)/$(TMK_DIR) |
| 47 | LIB_PATH = $(TOP_DIR)/lib | 12 | LIB_PATH = $(TOP_DIR)/lib |
| @@ -50,92 +15,49 @@ QUANTUM_DIR = quantum | |||
| 50 | QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR) | 15 | QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR) |
| 51 | 16 | ||
| 52 | 17 | ||
| 53 | ifdef keyboard | ||
| 54 | KEYBOARD ?= $(keyboard) | ||
| 55 | endif | ||
| 56 | ifdef KEYBOARD_DIR | ||
| 57 | KEYBOARD ?= $(KEYBOARD_DIR) | ||
| 58 | endif | ||
| 59 | ifndef KEYBOARD | ||
| 60 | KEYBOARD=planck | ||
| 61 | endif | ||
| 62 | |||
| 63 | MASTER ?= left | 18 | MASTER ?= left |
| 64 | ifdef master | 19 | ifdef master |
| 65 | MASTER = $(master) | 20 | MASTER = $(master) |
| 66 | endif | 21 | endif |
| 67 | 22 | ||
| 23 | KEYBOARD_PATH := keyboards/$(KEYBOARD) | ||
| 24 | KEYBOARD_C := $(KEYBOARD_PATH)/$(KEYBOARD).c | ||
| 68 | 25 | ||
| 69 | # converts things to keyboards/subproject | 26 | ifneq ("$(wildcard $(KEYBOARD_C))","") |
| 70 | ifneq (,$(findstring /,$(KEYBOARD))) | 27 | include $(KEYBOARD_PATH)/rules.mk |
| 71 | TEMP:=$(KEYBOARD) | ||
| 72 | KEYBOARD:=$(firstword $(subst /, ,$(TEMP))) | ||
| 73 | SUBPROJECT:=$(lastword $(subst /, ,$(TEMP))) | ||
| 74 | endif | ||
| 75 | |||
| 76 | KEYBOARD_PATH = $(TOP_DIR)/keyboards/$(KEYBOARD) | ||
| 77 | |||
| 78 | ifdef sub | ||
| 79 | SUBPROJECT=$(sub) | ||
| 80 | endif | ||
| 81 | ifdef subproject | ||
| 82 | SUBPROJECT=$(subproject) | ||
| 83 | endif | ||
| 84 | |||
| 85 | ifneq ("$(wildcard $(KEYBOARD_PATH)/$(KEYBOARD).c)","") | ||
| 86 | KEYBOARD_FILE = keyboards/$(KEYBOARD)/$(KEYBOARD).c | ||
| 87 | ifneq ($(call ESCAPED_ABS_PATH,$(KEYBOARD_PATH)/Makefile),$(starting_makefile)) | ||
| 88 | -include $(KEYBOARD_PATH)/Makefile | ||
| 89 | endif | ||
| 90 | else | 28 | else |
| 91 | $(error "$(KEYBOARD_PATH)/$(KEYBOARD).c" does not exist) | 29 | $(error "$(KEYBOARD_C)" does not exist) |
| 92 | endif | 30 | endif |
| 93 | 31 | ||
| 94 | ifdef SUBPROJECT_DEFAULT | 32 | |
| 95 | SUBPROJECT?=$(SUBPROJECT_DEFAULT) | 33 | ifneq ($(SUBPROJECT),) |
| 96 | endif | 34 | SUBPROJECT_PATH := keyboards/$(KEYBOARD)/$(SUBPROJECT) |
| 97 | 35 | SUBPROJECT_C := $(SUBPROJECT_PATH)/$(SUBPROJECT).c | |
| 98 | ifdef SUBPROJECT | 36 | ifneq ("$(wildcard $(SUBPROJECT_C))","") |
| 99 | SUBPROJECT_PATH = $(TOP_DIR)/keyboards/$(KEYBOARD)/$(SUBPROJECT) | 37 | OPT_DEFS += -DSUBPROJECT_$(SUBPROJECT) |
| 100 | ifneq ("$(wildcard $(SUBPROJECT_PATH)/$(SUBPROJECT).c)","") | 38 | include $(SUBPROJECT_PATH)/rules.mk |
| 101 | OPT_DEFS += -DSUBPROJECT_$(SUBPROJECT) | 39 | else |
| 102 | SUBPROJECT_FILE = keyboards/$(KEYBOARD)/$(SUBPROJECT)/$(SUBPROJECT).c | 40 | $(error "$(SUBPROJECT_PATH)/$(SUBPROJECT).c" does not exist) |
| 103 | ifneq ($(call ESCAPED_ABS_PATH,$(SUBPROJECT_PATH)/Makefile),$(starting_makefile)) | 41 | endif |
| 104 | -include $(SUBPROJECT_PATH)/Makefile | 42 | endif |
| 105 | endif | 43 | |
| 106 | else | 44 | MAIN_KEYMAP_PATH := $(KEYBOARD_PATH)/keymaps/$(KEYMAP) |
| 107 | $(error "$(SUBPROJECT_PATH)/$(SUBPROJECT).c" does not exist) | 45 | MAIN_KEYMAP_C := $(MAIN_KEYMAP_PATH)/keymap.c |
| 108 | endif | 46 | SUBPROJ_KEYMAP_PATH := $(SUBPROJECT_PATH)/keymaps/$(KEYMAP) |
| 109 | endif | 47 | SUBPROJ_KEYMAP_C := $(SUBPROJ_KEYMAP_PATH)/keymap.c |
| 110 | 48 | ifneq ("$(wildcard $(SUBPROJ_KEYMAP_C))","") | |
| 111 | ifdef keymap | 49 | -include $(SUBPROJ_KEYMAP_PATH)/Makefile |
| 112 | KEYMAP ?= $(keymap) | 50 | KEYMAP_C := $(SUBPROJ_KEYMAP_C) |
| 113 | endif | 51 | KEYMAP_PATH := $(SUBPROJ_KEYMAP_PATH) |
| 114 | ifdef KEYMAP_DIR | 52 | else ifneq ("$(wildcard $(MAIN_KEYMAP_C))","") |
| 115 | KEYMAP ?= $(KEYMAP_DIR) | 53 | -include $(MAIN_KEYMAP_PATH)/Makefile |
| 116 | endif | 54 | KEYMAP_C := $(MAIN_KEYMAP_C) |
| 117 | ifndef KEYMAP | 55 | KEYMAP_PATH := $(MAIN_KEYMAP_PATH) |
| 118 | KEYMAP = default | 56 | else |
| 119 | endif | 57 | $(error "$(MAIN_KEYMAP_C)/keymap.c" does not exist) |
| 120 | KEYMAP_PATH = $(KEYBOARD_PATH)/keymaps/$(KEYMAP) | ||
| 121 | ifneq ("$(wildcard $(KEYMAP_PATH)/keymap.c)","") | ||
| 122 | KEYMAP_FILE = keyboards/$(KEYBOARD)/keymaps/$(KEYMAP)/keymap.c | ||
| 123 | ifneq ($(call ESCAPED_ABS_PATH,$(KEYMAP_PATH)/Makefile),$(starting_makefile)) | ||
| 124 | -include $(KEYMAP_PATH)/Makefile | ||
| 125 | endif | ||
| 126 | else | ||
| 127 | ifeq ("$(wildcard $(SUBPROJECT_PATH)/keymaps/$(KEYMAP)/keymap.c)","") | ||
| 128 | $(error "$(KEYMAP_PATH)/keymap.c" does not exist) | ||
| 129 | else | ||
| 130 | KEYMAP_PATH = $(SUBPROJECT_PATH)/keymaps/$(KEYMAP) | ||
| 131 | KEYMAP_FILE = keyboards/$(KEYBOARD)/$(SUBPROJECT)/keymaps/$(KEYMAP)/keymap.c | ||
| 132 | ifneq ($(call ESCAPED_ABS_PATH,$(KEYMAP_PATH)/Makefile),$(starting_makefile)) | ||
| 133 | -include $(KEYMAP_PATH)/Makefile | ||
| 134 | endif | ||
| 135 | endif | ||
| 136 | endif | 58 | endif |
| 137 | 59 | ||
| 138 | ifdef SUBPROJECT | 60 | ifneq ($(SUBPROJECT),) |
| 139 | TARGET ?= $(KEYBOARD)_$(SUBPROJECT)_$(KEYMAP) | 61 | TARGET ?= $(KEYBOARD)_$(SUBPROJECT)_$(KEYMAP) |
| 140 | else | 62 | else |
| 141 | TARGET ?= $(KEYBOARD)_$(KEYMAP) | 63 | TARGET ?= $(KEYBOARD)_$(KEYMAP) |
| @@ -149,36 +71,27 @@ BUILD_DIR = $(TOP_DIR)/.build | |||
| 149 | OBJDIR = $(BUILD_DIR)/obj_$(TARGET) | 71 | OBJDIR = $(BUILD_DIR)/obj_$(TARGET) |
| 150 | 72 | ||
| 151 | 73 | ||
| 152 | |||
| 153 | ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") | 74 | ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") |
| 154 | CONFIG_H = $(KEYMAP_PATH)/config.h | 75 | CONFIG_H = $(KEYMAP_PATH)/config.h |
| 155 | else | 76 | else |
| 156 | CONFIG_H = $(KEYBOARD_PATH)/config.h | 77 | CONFIG_H = $(KEYBOARD_PATH)/config.h |
| 157 | ifdef SUBPROJECT | 78 | ifneq ($(SUBPROJECT),) |
| 158 | ifneq ("$(wildcard $(SUBPROJECT_PATH)/$(SUBPROJECT).c)","") | 79 | ifneq ("$(wildcard $(SUBPROJECT_C))","") |
| 159 | CONFIG_H = $(SUBPROJECT_PATH)/config.h | 80 | CONFIG_H = $(SUBPROJECT_PATH)/config.h |
| 160 | endif | 81 | endif |
| 161 | endif | 82 | endif |
| 162 | endif | 83 | endif |
| 163 | 84 | ||
| 164 | # # project specific files | 85 | # # project specific files |
| 165 | SRC += $(KEYBOARD_FILE) \ | 86 | SRC += $(KEYBOARD_C) \ |
| 166 | $(KEYMAP_FILE) \ | 87 | $(KEYMAP_C) \ |
| 167 | $(QUANTUM_DIR)/quantum.c \ | 88 | $(QUANTUM_DIR)/quantum.c \ |
| 168 | $(QUANTUM_DIR)/keymap_common.c \ | 89 | $(QUANTUM_DIR)/keymap_common.c \ |
| 169 | $(QUANTUM_DIR)/keycode_config.c \ | 90 | $(QUANTUM_DIR)/keycode_config.c \ |
| 170 | $(QUANTUM_DIR)/process_keycode/process_leader.c | 91 | $(QUANTUM_DIR)/process_keycode/process_leader.c |
| 171 | 92 | ||
| 172 | ifdef SUBPROJECT | 93 | ifneq ($(SUBPROJECT),) |
| 173 | SRC += $(SUBPROJECT_FILE) | 94 | SRC += $(SUBPROJECT_C) |
| 174 | endif | ||
| 175 | |||
| 176 | ifdef SUBPROJECT | ||
| 177 | SRC += $(SUBPROJECT_FILE) | ||
| 178 | endif | ||
| 179 | |||
| 180 | ifdef SUBPROJECT | ||
| 181 | SRC += $(SUBPROJECT_FILE) | ||
| 182 | endif | 95 | endif |
| 183 | 96 | ||
| 184 | ifndef CUSTOM_MATRIX | 97 | ifndef CUSTOM_MATRIX |
| @@ -229,7 +142,7 @@ endif | |||
| 229 | 142 | ||
| 230 | # Search Path | 143 | # Search Path |
| 231 | VPATH += $(KEYMAP_PATH) | 144 | VPATH += $(KEYMAP_PATH) |
| 232 | ifdef SUBPROJECT | 145 | ifneq ($(SUBPROJECT),) |
| 233 | VPATH += $(SUBPROJECT_PATH) | 146 | VPATH += $(SUBPROJECT_PATH) |
| 234 | endif | 147 | endif |
| 235 | VPATH += $(KEYBOARD_PATH) | 148 | VPATH += $(KEYBOARD_PATH) |
