]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - Makefile
added a lock screen key
[qmk_firmware.git] / Makefile
index c285dabad49202cbf9733821ac47346fb8348db4..053c8532af1387bf751e32867f738700c2f1ba6b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,8 +5,9 @@ endif
 .DEFAULT_GOAL := all
 
 space := $(subst ,, )
-starting_makefile := $(subst $(space),_SPACE_,$(abspath $(firstword $(MAKEFILE_LIST))))
-mkfile_path := $(subst $(space),_SPACE_,$(abspath $(lastword $(MAKEFILE_LIST))))
+ESCAPED_ABS_PATH = $(subst $(space),_SPACE_,$(abspath $1))
+starting_makefile := $(call ESCAPED_ABS_PATH,$(firstword $(MAKEFILE_LIST)))
+mkfile_path := $(call ESCAPED_ABS_PATH,$(lastword $(MAKEFILE_LIST))))
 abs_tmk_root := $(patsubst %/,%,$(dir $(mkfile_path)))
 
 ifneq (,$(findstring /keyboards/,$(starting_makefile)))
@@ -59,6 +60,12 @@ ifndef KEYBOARD
        KEYBOARD=planck
 endif
 
+MASTER ?= left
+ifdef master
+       MASTER = $(master)
+endif
+
+
 # converts things to keyboards/subproject
 ifneq (,$(findstring /,$(KEYBOARD)))
        TEMP:=$(KEYBOARD)
@@ -77,10 +84,8 @@ endif
 
 ifneq ("$(wildcard $(KEYBOARD_PATH)/$(KEYBOARD).c)","")
        KEYBOARD_FILE = keyboards/$(KEYBOARD)/$(KEYBOARD).c
-       ifndef ARCH
-               ifneq ("$(wildcard $(KEYBOARD_PATH)/Makefile)","")
-                       include $(KEYBOARD_PATH)/Makefile
-               endif
+       ifneq ($(call ESCAPED_ABS_PATH,$(KEYBOARD_PATH)/Makefile),$(starting_makefile))
+               -include $(KEYBOARD_PATH)/Makefile
        endif
 else 
 $(error "$(KEYBOARD_PATH)/$(KEYBOARD).c" does not exist)
@@ -95,7 +100,9 @@ ifdef SUBPROJECT
        ifneq ("$(wildcard $(SUBPROJECT_PATH)/$(SUBPROJECT).c)","")
                OPT_DEFS += -DSUBPROJECT_$(SUBPROJECT)
                SUBPROJECT_FILE = keyboards/$(KEYBOARD)/$(SUBPROJECT)/$(SUBPROJECT).c
-               -include $(SUBPROJECT_PATH)/Makefile
+               ifneq ($(call ESCAPED_ABS_PATH,$(SUBPROJECT_PATH)/Makefile),$(starting_makefile))
+                       -include $(SUBPROJECT_PATH)/Makefile
+               endif
        else 
 $(error "$(SUBPROJECT_PATH)/$(SUBPROJECT).c" does not exist)
        endif
@@ -113,14 +120,18 @@ endif
 KEYMAP_PATH = $(KEYBOARD_PATH)/keymaps/$(KEYMAP)
 ifneq ("$(wildcard $(KEYMAP_PATH)/keymap.c)","")
        KEYMAP_FILE = keyboards/$(KEYBOARD)/keymaps/$(KEYMAP)/keymap.c
-       -include $(KEYMAP_PATH)/Makefile
+       ifneq ($(call ESCAPED_ABS_PATH,$(KEYMAP_PATH)/Makefile),$(starting_makefile))
+               -include $(KEYMAP_PATH)/Makefile
+       endif
 else 
        ifeq ("$(wildcard $(SUBPROJECT_PATH)/keymaps/$(KEYMAP)/keymap.c)","")
 $(error "$(KEYMAP_PATH)/keymap.c" does not exist)
        else
                KEYMAP_PATH = $(SUBPROJECT_PATH)/keymaps/$(KEYMAP)
                KEYMAP_FILE = keyboards/$(KEYBOARD)/$(SUBPROJECT)/keymaps/$(KEYMAP)/keymap.c
-               -include $(KEYMAP_PATH)/Makefile
+               ifneq ($(call ESCAPED_ABS_PATH,$(KEYMAP_PATH)/Makefile),$(starting_makefile))
+                       -include $(KEYMAP_PATH)/Makefile
+               endif
        endif
 endif
 
@@ -129,7 +140,8 @@ ifdef SUBPROJECT
 else
        TARGET ?= $(KEYBOARD)_$(KEYMAP)
 endif
-BUILD_DIR = .build
+
+BUILD_DIR = $(TOP_DIR)/.build
 
 # Object files directory
 #     To put object files in current directory, use a dot (.), do NOT make
@@ -175,7 +187,7 @@ endif
 
 ifeq ($(strip $(MIDI_ENABLE)), yes)
     OPT_DEFS += -DMIDI_ENABLE
-       SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c
+       SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c
 endif
 
 ifeq ($(strip $(AUDIO_ENABLE)), yes)
@@ -198,10 +210,20 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
 endif
 
 ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
-  OPT_DEFS += -DTAP_DANCE_ENABLE
+       OPT_DEFS += -DTAP_DANCE_ENABLE
        SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
 endif
 
+ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes)
+       SERIAL_DIR = $(QUANTUM_DIR)/serial_link
+       SERIAL_PATH = $(QUANTUM_PATH)/serial_link
+       SERIAL_SRC = $(wildcard $(SERIAL_PATH)/protocol/*.c)
+       SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c)
+       SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC))
+       OPT_DEFS += -DSERIAL_LINK_ENABLE
+       VAPTH += $(SERIAL_PATH)
+endif
+
 # Optimize size but this may cause error "relocation truncated to fit"
 #EXTRALDFLAGS = -Wl,--relax
 
@@ -233,13 +255,22 @@ ifeq ($(PLATFORM),AVR)
 else ifeq ($(PLATFORM),CHIBIOS)
        include $(TMK_PATH)/protocol/chibios.mk
        include $(TMK_PATH)/chibios.mk
+       OPT_OS = chibios
 else
        $(error Unknown platform)
 endif
 
+ifeq ($(strip $(VISUALIZER_ENABLE)), yes)
+       VISUALIZER_DIR = $(QUANTUM_DIR)/visualizer
+       VISUALIZER_PATH = $(QUANTUM_PATH)/visualizer
+       include $(VISUALIZER_PATH)/visualizer.mk
+endif
+
 include $(TMK_PATH)/rules.mk
 
 GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
 BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
 OPT_DEFS += -DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYMAP=\"$(KEYMAP)\"
-OPT_DEFS += -DQMK_VERSION=\"$(GIT_VERSION)\" -DQMK_BUILDDATE=\"$(BUILD_DATE)\"
+
+$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(QUANTUM_PATH)/version.h)
+$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(QUANTUM_PATH)/version.h)
\ No newline at end of file