6 starting_makefile
:= $(subst $(space
),_SPACE_
,$(abspath
$(firstword $(MAKEFILE_LIST
))))
7 mkfile_path
:= $(subst $(space
),_SPACE_
,$(abspath
$(lastword
$(MAKEFILE_LIST
))))
8 abs_tmk_root
:= $(patsubst %/,%,$(dir $(mkfile_path
)))
10 ifneq (,$(findstring /keyboard
/,$(starting_makefile
)))
11 possible_keyboard
:=$(patsubst %/,%,$(dir $(patsubst $(abs_tmk_root
)/keyboard
/%,%,$(starting_makefile
))))
12 ifneq (,$(findstring /keymaps
/,$(possible_keyboard
)))
13 KEYBOARD_DIR
:=$(firstword $(subst /keymaps
/, ,$(possible_keyboard
)))
14 KEYMAP_DIR
:=$(lastword
$(subst /keymaps
/, ,$(possible_keyboard
)))
15 tmk_root
= ..
/..
/..
/..
17 KEYBOARD_DIR
:=$(possible_keyboard
)
24 # $(info $(KEYBOARD_DIR))
25 # $(info $(KEYMAP_DIR))
27 # Directory common source filess exist
30 TMK_PATH
= $(TOP_DIR
)/$(TMK_DIR
)
33 QUANTUM_PATH
= $(TOP_DIR
)/$(QUANTUM_DIR
)
36 KEYBOARD ?
= $(keyboard
)
39 KEYBOARD ?
= $(KEYBOARD_DIR
)
44 KEYBOARD_PATH
= $(TOP_DIR
)/keyboard
/$(KEYBOARD
)
45 ifneq ("$(wildcard $(KEYBOARD_PATH)/$(KEYBOARD).c)","")
46 KEYBOARD_FILE
= keyboard
/$(KEYBOARD
)/$(KEYBOARD
).c
48 include $(KEYBOARD_PATH
)/Makefile
51 $(error
"$(KEYBOARD_PATH)/$(KEYBOARD).c" does not exist
)
58 KEYMAP ?
= $(KEYMAP_DIR
)
63 KEYMAP_PATH
= $(KEYBOARD_PATH
)/keymaps
/$(KEYMAP
)
64 ifneq ("$(wildcard $(KEYMAP_PATH)/keymap.c)","")
65 KEYMAP_FILE
= keyboard
/$(KEYBOARD
)/keymaps
/$(KEYMAP
)/keymap.c
66 -include $(KEYMAP_PATH
)/Makefile
68 $(error
"$(KEYMAP_PATH)/keymap.c" does not exist
)
71 TARGET ?
= $(KEYBOARD
)_
$(KEYMAP
)
73 ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
74 CONFIG_H
= $(KEYMAP_PATH
)/config.h
76 CONFIG_H
= $(KEYBOARD_PATH
)/config.h
79 # # project specific files
80 SRC
+= $(KEYBOARD_FILE
) \
82 $(QUANTUM_DIR
)/quantum.c \
83 $(QUANTUM_DIR
)/keymap.c \
84 $(QUANTUM_DIR
)/keycode_config.c \
88 SRC
+= $(QUANTUM_DIR
)/matrix.c
91 ifeq ($(strip $(AUDIO_ENABLE
)), yes
)
92 SRC
+= $(QUANTUM_DIR
)/audio
/audio.c
93 SRC
+= $(QUANTUM_DIR
)/audio
/voices.c
94 SRC
+= $(QUANTUM_DIR
)/audio
/luts.c
97 ifeq ($(strip $(RGBLIGHT_ENABLE
)), yes
)
98 SRC
+= $(QUANTUM_DIR
)/light_ws2812.c
99 SRC
+= $(QUANTUM_DIR
)/rgblight.c
100 OPT_DEFS
+= -DRGBLIGHT_ENABLE
103 # Optimize size but this may cause error "relocation truncated to fit"
104 #EXTRALDFLAGS = -Wl,--relax
107 VPATH
+= $(KEYMAP_PATH
)
108 VPATH
+= $(KEYBOARD_PATH
)
111 VPATH
+= $(QUANTUM_PATH
)
112 VPATH
+= $(QUANTUM_PATH
)/keymap_extras
113 VPATH
+= $(QUANTUM_PATH
)/audio
115 include $(TMK_PATH
)/protocol
/lufa.mk
116 include $(TMK_PATH
)/common.mk
117 include $(TMK_PATH
)/rules.mk
119 GIT_VERSION
:= $(shell git describe
--abbrev
=6 --dirty
--always
--tags 2>/dev
/null || date
+"%Y-%m-%d-%H:%M:%S")
120 BUILD_DATE
:= $(shell date
+"%Y-%m-%d-%H:%M:%S")
121 OPT_DEFS
+= -DQMK_KEYBOARD
=\"$(KEYBOARD
)\" -DQMK_KEYMAP
=\"$(KEYMAP
)\"
122 OPT_DEFS
+= -DQMK_VERSION
=\"$(GIT_VERSION
)\" -DQMK_BUILDDATE
=\"$(BUILD_DATE
)\"