2
0
Просмотр исходного кода

makefile changes to support a parent directory

Jack Humbert 7 лет назад
Родитель
Сommit
51d3a98efe
2 измененных файлов с 26 добавлено и 18 удалено
  1. 16 10
      build_keyboard.mk
  2. 10 8
      common.mk

+ 16 - 10
build_keyboard.mk

@@ -4,13 +4,15 @@
 # responsible for determining which folder is being used and doing the
 # corresponding environment setup.
 
+SILENT ?= false
+
 ifndef VERBOSE
 .SILENT:
 endif
 
 .DEFAULT_GOAL := all
 
-include common.mk
+include $(TOP_DIR)/common.mk
 
 # Set the filename for the final firmware binary
 KEYBOARD_FILESAFE := $(subst /,_,$(KEYBOARD))
@@ -46,11 +48,11 @@ KEYBOARD_FOLDER_3 := $(notdir $(KEYBOARD_FOLDER_PATH_3))
 KEYBOARD_FOLDER_4 := $(notdir $(KEYBOARD_FOLDER_PATH_4))
 KEYBOARD_FOLDER_5 := $(notdir $(KEYBOARD_FOLDER_PATH_5))
 KEYBOARD_PATHS :=
-KEYBOARD_PATH_1 := keyboards/$(KEYBOARD_FOLDER_PATH_1)
-KEYBOARD_PATH_2 := keyboards/$(KEYBOARD_FOLDER_PATH_2)
-KEYBOARD_PATH_3 := keyboards/$(KEYBOARD_FOLDER_PATH_3)
-KEYBOARD_PATH_4 := keyboards/$(KEYBOARD_FOLDER_PATH_4)
-KEYBOARD_PATH_5 := keyboards/$(KEYBOARD_FOLDER_PATH_5)
+KEYBOARD_PATH_1 := $(TOP_DIR)/keyboards/$(KEYBOARD_FOLDER_PATH_1)
+KEYBOARD_PATH_2 := $(TOP_DIR)/keyboards/$(KEYBOARD_FOLDER_PATH_2)
+KEYBOARD_PATH_3 := $(TOP_DIR)/keyboards/$(KEYBOARD_FOLDER_PATH_3)
+KEYBOARD_PATH_4 := $(TOP_DIR)/keyboards/$(KEYBOARD_FOLDER_PATH_4)
+KEYBOARD_PATH_5 := $(TOP_DIR)/keyboards/$(KEYBOARD_FOLDER_PATH_5)
 
 ifneq ("$(wildcard $(KEYBOARD_PATH_5)/)","")
     KEYBOARD_PATHS += $(KEYBOARD_PATH_5)
@@ -249,8 +251,12 @@ else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
     -include $(MAIN_KEYMAP_PATH_1)/rules.mk
     KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c
     KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
+else ifneq ("$(wildcard keymap.c)","")
+    -include rules.mk
+    KEYMAP_C := keymap.c
+    KEYMAP_PATH := .
 else ifneq ($(LAYOUTS),)
-    include build_layout.mk
+    include $(TOP_DIR)/build_layout.mk
 else
     $(error Could not find keymap)
     # this state should never be reached
@@ -260,7 +266,7 @@ endif
 ifeq ("$(USER_NAME)","")
     USER_NAME := $(KEYMAP)
 endif
-USER_PATH := users/$(USER_NAME)
+USER_PATH := $(TOP_DIR)/users/$(USER_NAME)
 
 -include $(USER_PATH)/rules.mk
 ifneq ("$(wildcard $(USER_PATH)/config.h)","")
@@ -291,10 +297,10 @@ VPATH += $(KEYBOARD_PATHS)
 VPATH += $(COMMON_VPATH)
 VPATH += $(USER_PATH)
 
-include common_features.mk
+include $(TOP_DIR)/common_features.mk
 include $(TMK_PATH)/protocol.mk
 include $(TMK_PATH)/common.mk
-include bootloader.mk
+include $(TOP_DIR)/bootloader.mk
 
 SRC += $(TMK_COMMON_SRC)
 OPT_DEFS += $(TMK_COMMON_DEFS)

+ 10 - 8
common.mk

@@ -1,20 +1,22 @@
-include message.mk
-
 # Directory common source files exist
-TOP_DIR = .
+TOP_DIR ?= .
+
+include $(TOP_DIR)/message.mk
+
 TMK_DIR = tmk_core
-TMK_PATH = $(TMK_DIR)
-LIB_PATH = lib
+TMK_PATH = $(TOP_DIR)/$(TMK_DIR)
+LIB_PATH = $(TOP_DIR)/lib
 
 QUANTUM_DIR = quantum
-QUANTUM_PATH = $(QUANTUM_DIR)
+QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR)
 
 DRIVER_DIR = drivers
-DRIVER_PATH = $(DRIVER_DIR)
+DRIVER_PATH = $(TOP_DIR)/$(DRIVER_DIR)
 
 BUILD_DIR := .build
 
-COMMON_VPATH := $(TOP_DIR)
+COMMON_VPATH := .
+COMMON_VPATH += $(TOP_DIR)
 COMMON_VPATH += $(TMK_PATH)
 COMMON_VPATH += $(QUANTUM_PATH)
 COMMON_VPATH += $(QUANTUM_PATH)/keymap_extras