aboutsummaryrefslogtreecommitdiff
path: root/build_keyboard.mk
diff options
context:
space:
mode:
Diffstat (limited to 'build_keyboard.mk')
-rw-r--r--build_keyboard.mk186
1 files changed, 107 insertions, 79 deletions
diff --git a/build_keyboard.mk b/build_keyboard.mk
index 82464d583..9fa8c3126 100644
--- a/build_keyboard.mk
+++ b/build_keyboard.mk
@@ -7,11 +7,11 @@ endif
7include common.mk 7include common.mk
8 8
9ifneq ($(SUBPROJECT),) 9ifneq ($(SUBPROJECT),)
10 TARGET ?= $(KEYBOARD)_$(SUBPROJECT)_$(KEYMAP) 10 TARGET ?= $(KEYBOARD)_$(SUBPROJECT)_$(KEYMAP)
11 KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD)_$(SUBPROJECT) 11 KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD)_$(SUBPROJECT)
12else 12else
13 TARGET ?= $(KEYBOARD)_$(KEYMAP) 13 TARGET ?= $(KEYBOARD)_$(KEYMAP)
14 KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD) 14 KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD)
15endif 15endif
16 16
17# Force expansion 17# Force expansion
@@ -20,15 +20,15 @@ TARGET := $(TARGET)
20 20
21MASTER ?= left 21MASTER ?= left
22ifdef master 22ifdef master
23 MASTER = $(master) 23 MASTER = $(master)
24endif 24endif
25 25
26ifeq ($(MASTER),right) 26ifeq ($(MASTER),right)
27 OPT_DEFS += -DMASTER_IS_ON_RIGHT 27 OPT_DEFS += -DMASTER_IS_ON_RIGHT
28else 28else
29 ifneq ($(MASTER),left) 29 ifneq ($(MASTER),left)
30$(error MASTER does not have a valid value(left/right)) 30$(error MASTER does not have a valid value(left/right))
31 endif 31 endif
32endif 32endif
33 33
34 34
@@ -56,31 +56,31 @@ endif
56 56
57# We can assume a ChibiOS target When MCU_FAMILY is defined, since it's not used for LUFA 57# We can assume a ChibiOS target When MCU_FAMILY is defined, since it's not used for LUFA
58ifdef MCU_FAMILY 58ifdef MCU_FAMILY
59 PLATFORM=CHIBIOS 59 PLATFORM=CHIBIOS
60else 60else
61 PLATFORM=AVR 61 PLATFORM=AVR
62endif 62endif
63 63
64ifeq ($(PLATFORM),CHIBIOS) 64ifeq ($(PLATFORM),CHIBIOS)
65 include $(TMK_PATH)/protocol/chibios.mk 65 include $(TMK_PATH)/protocol/chibios.mk
66 include $(TMK_PATH)/chibios.mk 66 include $(TMK_PATH)/chibios.mk
67 OPT_OS = chibios 67 OPT_OS = chibios
68 ifneq ("$(wildcard $(SUBPROJECT_PATH)/bootloader_defs.h)","") 68 ifneq ("$(wildcard $(SUBPROJECT_PATH)/bootloader_defs.h)","")
69 OPT_DEFS += -include $(SUBPROJECT_PATH)/bootloader_defs.h 69 OPT_DEFS += -include $(SUBPROJECT_PATH)/bootloader_defs.h
70 else ifneq ("$(wildcard $(SUBPROJECT_PATH)/boards/$(BOARD)/bootloader_defs.h)","") 70 else ifneq ("$(wildcard $(SUBPROJECT_PATH)/boards/$(BOARD)/bootloader_defs.h)","")
71 OPT_DEFS += -include $(SUBPROJECT_PATH)/boards/$(BOARD)/bootloader_defs.h 71 OPT_DEFS += -include $(SUBPROJECT_PATH)/boards/$(BOARD)/bootloader_defs.h
72 else ifneq ("$(wildcard $(KEYBOARD_PATH)/bootloader_defs.h)","") 72 else ifneq ("$(wildcard $(KEYBOARD_PATH)/bootloader_defs.h)","")
73 OPT_DEFS += -include $(KEYBOARD_PATH)/bootloader_defs.h 73 OPT_DEFS += -include $(KEYBOARD_PATH)/bootloader_defs.h
74 else ifneq ("$(wildcard $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h)","") 74 else ifneq ("$(wildcard $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h)","")
75 OPT_DEFS += -include $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h 75 OPT_DEFS += -include $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h
76 endif 76 endif
77endif 77endif
78 78
79CONFIG_H = $(KEYBOARD_PATH)/config.h 79CONFIG_H = $(KEYBOARD_PATH)/config.h
80ifneq ($(SUBPROJECT),) 80ifneq ($(SUBPROJECT),)
81 ifneq ("$(wildcard $(SUBPROJECT_C))","") 81 ifneq ("$(wildcard $(SUBPROJECT_C))","")
82 CONFIG_H = $(SUBPROJECT_PATH)/config.h 82 CONFIG_H = $(SUBPROJECT_PATH)/config.h
83 endif 83 endif
84endif 84endif
85 85
86# Save the defines and includes here, so we don't include any keymap specific ones 86# Save the defines and includes here, so we don't include any keymap specific ones
@@ -112,30 +112,30 @@ KEYMAP_OUTPUT := $(BUILD_DIR)/obj_$(TARGET)
112 112
113 113
114ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") 114ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
115 CONFIG_H = $(KEYMAP_PATH)/config.h 115 CONFIG_H = $(KEYMAP_PATH)/config.h
116endif 116endif
117 117
118# # project specific files 118# # project specific files
119SRC += $(KEYBOARD_C) \ 119SRC += $(KEYBOARD_C) \
120 $(KEYMAP_C) \ 120 $(KEYMAP_C) \
121 $(QUANTUM_DIR)/quantum.c \ 121 $(QUANTUM_DIR)/quantum.c \
122 $(QUANTUM_DIR)/keymap_common.c \ 122 $(QUANTUM_DIR)/keymap_common.c \
123 $(QUANTUM_DIR)/keycode_config.c \ 123 $(QUANTUM_DIR)/keycode_config.c \
124 $(QUANTUM_DIR)/process_keycode/process_leader.c 124 $(QUANTUM_DIR)/process_keycode/process_leader.c
125 125
126ifneq ($(SUBPROJECT),) 126ifneq ($(SUBPROJECT),)
127 SRC += $(SUBPROJECT_C) 127 SRC += $(SUBPROJECT_C)
128endif 128endif
129 129
130ifndef CUSTOM_MATRIX 130ifndef CUSTOM_MATRIX
131 SRC += $(QUANTUM_DIR)/matrix.c 131 SRC += $(QUANTUM_DIR)/matrix.c
132endif 132endif
133 133
134ifeq ($(strip $(API_SYSEX_ENABLE)), yes) 134ifeq ($(strip $(API_SYSEX_ENABLE)), yes)
135 OPT_DEFS += -DAPI_SYSEX_ENABLE 135 OPT_DEFS += -DAPI_SYSEX_ENABLE
136 SRC += $(QUANTUM_DIR)/api/api_sysex.c 136 SRC += $(QUANTUM_DIR)/api/api_sysex.c
137 OPT_DEFS += -DAPI_ENABLE 137 OPT_DEFS += -DAPI_ENABLE
138 SRC += $(QUANTUM_DIR)/api.c 138 SRC += $(QUANTUM_DIR)/api.c
139 MIDI_ENABLE=yes 139 MIDI_ENABLE=yes
140endif 140endif
141 141
@@ -144,25 +144,25 @@ MUSIC_ENABLE := 0
144ifeq ($(strip $(AUDIO_ENABLE)), yes) 144ifeq ($(strip $(AUDIO_ENABLE)), yes)
145 OPT_DEFS += -DAUDIO_ENABLE 145 OPT_DEFS += -DAUDIO_ENABLE
146 MUSIC_ENABLE := 1 146 MUSIC_ENABLE := 1
147 SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c 147 SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c
148 SRC += $(QUANTUM_DIR)/audio/audio.c 148 SRC += $(QUANTUM_DIR)/audio/audio.c
149 SRC += $(QUANTUM_DIR)/audio/voices.c 149 SRC += $(QUANTUM_DIR)/audio/voices.c
150 SRC += $(QUANTUM_DIR)/audio/luts.c 150 SRC += $(QUANTUM_DIR)/audio/luts.c
151endif 151endif
152 152
153ifeq ($(strip $(MIDI_ENABLE)), yes) 153ifeq ($(strip $(MIDI_ENABLE)), yes)
154 OPT_DEFS += -DMIDI_ENABLE 154 OPT_DEFS += -DMIDI_ENABLE
155 MUSIC_ENABLE := 1 155 MUSIC_ENABLE := 1
156 SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c 156 SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c
157endif 157endif
158 158
159ifeq ($(MUSIC_ENABLE), 1) 159ifeq ($(MUSIC_ENABLE), 1)
160 SRC += $(QUANTUM_DIR)/process_keycode/process_music.c 160 SRC += $(QUANTUM_DIR)/process_keycode/process_music.c
161endif 161endif
162 162
163ifeq ($(strip $(COMBO_ENABLE)), yes) 163ifeq ($(strip $(COMBO_ENABLE)), yes)
164 OPT_DEFS += -DCOMBO_ENABLE 164 OPT_DEFS += -DCOMBO_ENABLE
165 SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c 165 SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c
166endif 166endif
167 167
168ifeq ($(strip $(VIRTSER_ENABLE)), yes) 168ifeq ($(strip $(VIRTSER_ENABLE)), yes)
@@ -171,65 +171,93 @@ endif
171 171
172ifeq ($(strip $(FAUXCLICKY_ENABLE)), yes) 172ifeq ($(strip $(FAUXCLICKY_ENABLE)), yes)
173 OPT_DEFS += -DFAUXCLICKY_ENABLE 173 OPT_DEFS += -DFAUXCLICKY_ENABLE
174 SRC += $(QUANTUM_DIR)/fauxclicky.c 174 SRC += $(QUANTUM_DIR)/fauxclicky.c
175endif 175endif
176 176
177ifeq ($(strip $(UCIS_ENABLE)), yes) 177ifeq ($(strip $(UCIS_ENABLE)), yes)
178 OPT_DEFS += -DUCIS_ENABLE 178 OPT_DEFS += -DUCIS_ENABLE
179 SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c 179 UNICODE_COMMON = yes
180 SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c 180 SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
181endif 181endif
182 182
183ifeq ($(strip $(UNICODEMAP_ENABLE)), yes) 183ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
184 OPT_DEFS += -DUNICODEMAP_ENABLE 184 OPT_DEFS += -DUNICODEMAP_ENABLE
185 SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c 185 UNICODE_COMMON = yes
186 SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c 186 SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
187endif 187endif
188 188
189ifeq ($(strip $(UNICODE_ENABLE)), yes) 189ifeq ($(strip $(UNICODE_ENABLE)), yes)
190 OPT_DEFS += -DUNICODE_ENABLE 190 OPT_DEFS += -DUNICODE_ENABLE
191 SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c 191 UNICODE_COMMON = yes
192 SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c 192 SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
193endif
194
195ifeq ($(strip $(UNICODE_COMMON)), yes)
196 SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
193endif 197endif
194 198
195ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) 199ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
196 OPT_DEFS += -DRGBLIGHT_ENABLE 200 OPT_DEFS += -DRGBLIGHT_ENABLE
197 SRC += $(QUANTUM_DIR)/light_ws2812.c 201 SRC += $(QUANTUM_DIR)/light_ws2812.c
198 SRC += $(QUANTUM_DIR)/rgblight.c 202 SRC += $(QUANTUM_DIR)/rgblight.c
203 CIE1931_CURVE = yes
204 LED_BREATHING_TABLE = yes
199endif 205endif
200 206
201ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) 207ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
202 OPT_DEFS += -DTAP_DANCE_ENABLE 208 OPT_DEFS += -DTAP_DANCE_ENABLE
203 SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c 209 SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
204endif 210endif
205 211
206ifeq ($(strip $(PRINTING_ENABLE)), yes) 212ifeq ($(strip $(PRINTING_ENABLE)), yes)
207 OPT_DEFS += -DPRINTING_ENABLE 213 OPT_DEFS += -DPRINTING_ENABLE
208 SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c 214 SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c
209 SRC += $(TMK_DIR)/protocol/serial_uart.c 215 SRC += $(TMK_DIR)/protocol/serial_uart.c
210endif 216endif
211 217
212ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes) 218ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes)
213 SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC)) 219 SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC))
214 OPT_DEFS += $(SERIAL_DEFS) 220 OPT_DEFS += $(SERIAL_DEFS)
215 VAPTH += $(SERIAL_PATH) 221 VAPTH += $(SERIAL_PATH)
216endif 222endif
217 223
218ifneq ($(strip $(VARIABLE_TRACE)),) 224ifneq ($(strip $(VARIABLE_TRACE)),)
219 SRC += $(QUANTUM_DIR)/variable_trace.c 225 SRC += $(QUANTUM_DIR)/variable_trace.c
220 OPT_DEFS += -DNUM_TRACED_VARIABLES=$(strip $(VARIABLE_TRACE)) 226 OPT_DEFS += -DNUM_TRACED_VARIABLES=$(strip $(VARIABLE_TRACE))
221ifneq ($(strip $(MAX_VARIABLE_TRACE_SIZE)),) 227ifneq ($(strip $(MAX_VARIABLE_TRACE_SIZE)),)
222 OPT_DEFS += -DMAX_VARIABLE_TRACE_SIZE=$(strip $(MAX_VARIABLE_TRACE_SIZE)) 228 OPT_DEFS += -DMAX_VARIABLE_TRACE_SIZE=$(strip $(MAX_VARIABLE_TRACE_SIZE))
223endif 229endif
224endif 230endif
225 231
232ifeq ($(strip $(LCD_ENABLE)), yes)
233 CIE1931_CURVE = yes
234endif
235
236ifeq ($(strip $(LED_ENABLE)), yes)
237 CIE1931_CURVE = yes
238endif
239
240ifeq ($(strip $(CIE1931_CURVE)), yes)
241 OPT_DEFS += -DUSE_CIE1931_CURVE
242 LED_TABLES = yes
243endif
244
245ifeq ($(strip $(LED_BREATHING_TABLE)), yes)
246 OPT_DEFS += -DUSE_LED_BREATHING_TABLE
247 LED_TABLES = yes
248endif
249
250ifeq ($(strip $(LED_TABLES)), yes)
251 SRC += $(QUANTUM_DIR)/led_tables.c
252endif
253
226# Optimize size but this may cause error "relocation truncated to fit" 254# Optimize size but this may cause error "relocation truncated to fit"
227#EXTRALDFLAGS = -Wl,--relax 255#EXTRALDFLAGS = -Wl,--relax
228 256
229# Search Path 257# Search Path
230VPATH += $(KEYMAP_PATH) 258VPATH += $(KEYMAP_PATH)
231ifneq ($(SUBPROJECT),) 259ifneq ($(SUBPROJECT),)
232 VPATH += $(SUBPROJECT_PATH) 260 VPATH += $(SUBPROJECT_PATH)
233endif 261endif
234VPATH += $(KEYBOARD_PATH) 262VPATH += $(KEYBOARD_PATH)
235VPATH += $(COMMON_VPATH) 263VPATH += $(COMMON_VPATH)
@@ -243,27 +271,27 @@ EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS)
243 271
244ifeq ($(PLATFORM),AVR) 272ifeq ($(PLATFORM),AVR)
245ifeq ($(strip $(PROTOCOL)), VUSB) 273ifeq ($(strip $(PROTOCOL)), VUSB)
246 include $(TMK_PATH)/protocol/vusb.mk 274 include $(TMK_PATH)/protocol/vusb.mk
247else 275else
248 include $(TMK_PATH)/protocol/lufa.mk 276 include $(TMK_PATH)/protocol/lufa.mk
249endif 277endif
250 include $(TMK_PATH)/avr.mk 278 include $(TMK_PATH)/avr.mk
251endif 279endif
252 280
253ifeq ($(strip $(VISUALIZER_ENABLE)), yes) 281ifeq ($(strip $(VISUALIZER_ENABLE)), yes)
254 VISUALIZER_DIR = $(QUANTUM_DIR)/visualizer 282 VISUALIZER_DIR = $(QUANTUM_DIR)/visualizer
255 VISUALIZER_PATH = $(QUANTUM_PATH)/visualizer 283 VISUALIZER_PATH = $(QUANTUM_PATH)/visualizer
256 include $(VISUALIZER_PATH)/visualizer.mk 284 include $(VISUALIZER_PATH)/visualizer.mk
257endif 285endif
258 286
259OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT) 287OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT)
260$(KEYMAP_OUTPUT)_SRC := $(SRC) 288$(KEYMAP_OUTPUT)_SRC := $(SRC)
261$(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) -DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYMAP=\"$(KEYMAP)\" 289$(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) $(GFXDEFS) -DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYMAP=\"$(KEYMAP)\"
262$(KEYMAP_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) 290$(KEYMAP_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS)
263$(KEYMAP_OUTPUT)_CONFIG := $(CONFIG_H) 291$(KEYMAP_OUTPUT)_CONFIG := $(CONFIG_H)
264$(KEYBOARD_OUTPUT)_SRC := $(CHIBISRC) 292$(KEYBOARD_OUTPUT)_SRC := $(CHIBISRC) $(GFXSRC)
265$(KEYBOARD_OUTPUT)_DEFS := $(PROJECT_DEFS) 293$(KEYBOARD_OUTPUT)_DEFS := $(PROJECT_DEFS) $(GFXDEFS)
266$(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC) 294$(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC) $(GFXINC)
267$(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG) 295$(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG)
268 296
269# Default target. 297# Default target.