5 starting_makefile := $(abspath $(firstword $(MAKEFILE_LIST)))
6 mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
7 tmk_root := $(patsubst %/,%,$(dir $(mkfile_path)))
9 ifneq (,$(findstring /keyboard/,$(starting_makefile)))
10 possible_keyboard:=$(patsubst %/,%,$(dir $(patsubst $(tmk_root)/keyboard/%,%,$(starting_makefile))))
11 ifneq (,$(findstring /keymaps/,$(possible_keyboard)))
12 KEYBOARD_DIR:=$(firstword $(subst /keymaps/, ,$(possible_keyboard)))
13 KEYMAP_DIR:=$(lastword $(subst /keymaps/, ,$(possible_keyboard)))
15 KEYBOARD_DIR:=$(possible_keyboard)
20 # $(info $(KEYBOARD_DIR))
21 # $(info $(KEYMAP_DIR))
23 # Directory common source filess exist
26 TMK_PATH = $(TOP_DIR)/$(TMK_DIR)
29 QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR)
32 KEYBOARD ?= $(keyboard)
35 KEYBOARD ?= $(KEYBOARD_DIR)
40 KEYBOARD_PATH = $(TOP_DIR)/keyboard/$(KEYBOARD)
41 ifneq ("$(wildcard $(KEYBOARD_PATH)/$(KEYBOARD).c)","")
42 KEYBOARD_FILE = keyboard/$(KEYBOARD)/$(KEYBOARD).c
44 include $(KEYBOARD_PATH)/Makefile
47 $(error "$(KEYBOARD_PATH)/$(KEYBOARD).c" does not exist)
54 KEYMAP ?= $(KEYMAP_DIR)
59 KEYMAP_PATH = $(KEYBOARD_PATH)/keymaps/$(KEYMAP)
60 ifneq ("$(wildcard $(KEYMAP_PATH)/keymap.c)","")
61 KEYMAP_FILE = keyboard/$(KEYBOARD)/keymaps/$(KEYMAP)/keymap.c
62 -include $(KEYMAP_PATH)/Makefile
64 $(error "$(KEYMAP_PATH)/keymap.c" does not exist)
67 TARGET = $(KEYBOARD)_$(KEYMAP)
69 ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
70 CONFIG_H = $(KEYMAP_PATH)/config.h
72 CONFIG_H = $(KEYBOARD_PATH)/config.h
75 # # project specific files
76 SRC += $(KEYBOARD_FILE) \
78 $(QUANTUM_DIR)/quantum.c \
79 $(QUANTUM_DIR)/keymap_common.c \
83 SRC += $(QUANTUM_DIR)/matrix.c
86 ifeq ($(strip $(AUDIO_ENABLE)), yes)
87 SRC += $(QUANTUM_DIR)/audio/audio.c
88 SRC += $(QUANTUM_DIR)/audio/voices.c
89 SRC += $(QUANTUM_DIR)/audio/luts.c
92 ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
93 SRC += $(QUANTUM_DIR)/light_ws2812.c
94 SRC += $(QUANTUM_DIR)/rgblight.c
95 OPT_DEFS += -DRGBLIGHT_ENABLE
98 # Optimize size but this may cause error "relocation truncated to fit"
99 #EXTRALDFLAGS = -Wl,--relax
102 VPATH += $(KEYMAP_PATH)
103 VPATH += $(KEYBOARD_PATH)
106 VPATH += $(QUANTUM_PATH)
107 VPATH += $(QUANTUM_PATH)/keymap_extras
108 VPATH += $(QUANTUM_PATH)/audio
110 include $(TMK_PATH)/protocol/lufa.mk
111 include $(TMK_PATH)/common.mk
112 include $(TMK_PATH)/rules.mk