aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFred Sundvik <fsundvik@gmail.com>2016-08-15 08:58:05 +0300
committerFred Sundvik <fsundvik@gmail.com>2016-08-20 03:56:41 +0300
commit9028a412eaf95e37e98a9f2e4573653ec70d7e18 (patch)
treec684154bf682eb988876f23115f8d56462c4e1b9
parent33fbd3be36bf58c6a02fb6b4ae99dc5bca7c8e58 (diff)
downloadqmk_firmware-9028a412eaf95e37e98a9f2e4573653ec70d7e18.tar.gz
qmk_firmware-9028a412eaf95e37e98a9f2e4573653ec70d7e18.zip
Add output specific config file
-rw-r--r--build_keyboard.mk17
-rw-r--r--tmk_core/rules.mk20
2 files changed, 16 insertions, 21 deletions
diff --git a/build_keyboard.mk b/build_keyboard.mk
index 0debc4925..a6b578efb 100644
--- a/build_keyboard.mk
+++ b/build_keyboard.mk
@@ -56,9 +56,17 @@ ifeq ($(PLATFORM),CHIBIOS)
56 OPT_OS = chibios 56 OPT_OS = chibios
57endif 57endif
58 58
59CONFIG_H = $(KEYBOARD_PATH)/config.h
60ifneq ($(SUBPROJECT),)
61 ifneq ("$(wildcard $(SUBPROJECT_C))","")
62 CONFIG_H = $(SUBPROJECT_PATH)/config.h
63 endif
64endif
65
59# Save the defines and includes here, so we don't include any keymap specific ones 66# Save the defines and includes here, so we don't include any keymap specific ones
60PROJECT_DEFS := $(OPT_DEFS) 67PROJECT_DEFS := $(OPT_DEFS)
61PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(SUBPROJECT_PATH) $(KEYBOARD_PATH) 68PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(SUBPROJECT_PATH) $(KEYBOARD_PATH)
69PROJECT_CONFIG := $(CONFIG_H)
62 70
63MAIN_KEYMAP_PATH := $(KEYBOARD_PATH)/keymaps/$(KEYMAP) 71MAIN_KEYMAP_PATH := $(KEYBOARD_PATH)/keymaps/$(KEYMAP)
64MAIN_KEYMAP_C := $(MAIN_KEYMAP_PATH)/keymap.c 72MAIN_KEYMAP_C := $(MAIN_KEYMAP_PATH)/keymap.c
@@ -94,13 +102,6 @@ KEYMAP_OUTPUT := $(BUILD_DIR)/obj_$(TARGET)
94 102
95ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") 103ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
96 CONFIG_H = $(KEYMAP_PATH)/config.h 104 CONFIG_H = $(KEYMAP_PATH)/config.h
97else
98 CONFIG_H = $(KEYBOARD_PATH)/config.h
99 ifneq ($(SUBPROJECT),)
100 ifneq ("$(wildcard $(SUBPROJECT_C))","")
101 CONFIG_H = $(SUBPROJECT_PATH)/config.h
102 endif
103 endif
104endif 105endif
105 106
106# # project specific files 107# # project specific files
@@ -192,9 +193,11 @@ OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT)
192$(KEYMAP_OUTPUT)_SRC := $(SRC) 193$(KEYMAP_OUTPUT)_SRC := $(SRC)
193$(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) -DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYMAP=\"$(KEYMAP)\" 194$(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) -DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYMAP=\"$(KEYMAP)\"
194$(KEYMAP_OUTPUT)_INC := $(EXTRAINCDIRS) $(VPATH) 195$(KEYMAP_OUTPUT)_INC := $(EXTRAINCDIRS) $(VPATH)
196$(KEYMAP_OUTPUT)_CONFIG := $(CONFIG_H)
195$(KEYBOARD_OUTPUT)_SRC := $(CHIBISRC) 197$(KEYBOARD_OUTPUT)_SRC := $(CHIBISRC)
196$(KEYBOARD_OUTPUT)_DEFS := $(PROJECT_DEFS) 198$(KEYBOARD_OUTPUT)_DEFS := $(PROJECT_DEFS)
197$(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC) 199$(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC)
200$(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG)
198 201
199 202
200include $(TMK_PATH)/rules.mk 203include $(TMK_PATH)/rules.mk
diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk
index 7b2c842ed..977a2d0e5 100644
--- a/tmk_core/rules.mk
+++ b/tmk_core/rules.mk
@@ -98,9 +98,6 @@ CFLAGS += -Wstrict-prototypes
98#CFLAGS += -Wsign-compare 98#CFLAGS += -Wsign-compare
99CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst) 99CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
100CFLAGS += $(CSTANDARD) 100CFLAGS += $(CSTANDARD)
101ifdef CONFIG_H
102 CFLAGS += -include $(CONFIG_H)
103endif
104 101
105 102
106#---------------- Compiler Options C++ ---------------- 103#---------------- Compiler Options C++ ----------------
@@ -124,10 +121,6 @@ CPPFLAGS += -Wundef
124#CPPFLAGS += -Wsign-compare 121#CPPFLAGS += -Wsign-compare
125CPPFLAGS += -Wa,-adhlns=$(@:%.o=%.lst) 122CPPFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
126#CPPFLAGS += $(CSTANDARD) 123#CPPFLAGS += $(CSTANDARD)
127ifdef CONFIG_H
128 CPPFLAGS += -include $(CONFIG_H)
129endif
130
131 124
132#---------------- Assembler Options ---------------- 125#---------------- Assembler Options ----------------
133# -Wa,...: tell GCC to pass this to the assembler. 126# -Wa,...: tell GCC to pass this to the assembler.
@@ -140,9 +133,6 @@ endif
140# dump that will be displayed for a given single line of source input. 133# dump that will be displayed for a given single line of source input.
141ASFLAGS += $(ADEFS) 134ASFLAGS += $(ADEFS)
142ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100 135ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100
143ifdef CONFIG_H
144 ASFLAGS += -include $(CONFIG_H)
145endif
146 136
147#---------------- Library Options ---------------- 137#---------------- Library Options ----------------
148# Minimalistic printf version 138# Minimalistic printf version
@@ -296,10 +286,12 @@ BEGIN = gccversion sizebefore
296 286
297define GEN_OBJRULE 287define GEN_OBJRULE
298$1_INCFLAGS := $$(patsubst %,-I%,$$($1_INC)) 288$1_INCFLAGS := $$(patsubst %,-I%,$$($1_INC))
299$1_CFLAGS = $$(ALL_CFLAGS) $$($1_DEFS) $$($1_INCFLAGS) 289ifdef $1_CONFIG
300$1_CPPFLAGS= $$(ALL_CPPFLAGS) $$($1_DEFS) $$($1_INCFLAGS) 290$1_CONFIG_FLAGS += -include $$($1_CONFIG)
301$1_ASFLAGS= $$(ALL_ASFLAGS) $$($1_DEFS) $$($1_INCFLAGS) 291endif
302$$(info $$($1_INCFLAGS)) 292$1_CFLAGS = $$(ALL_CFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS)
293$1_CPPFLAGS= $$(ALL_CPPFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS)
294$1_ASFLAGS= $$(ALL_ASFLAGS) $$($1_DEFS) $$($1_INCFLAGS) $$($1_CONFIG_FLAGS)
303 295
304# Compile: create object files from C source files. 296# Compile: create object files from C source files.
305$1/%.o : %.c $1/%.d $1/cflags.txt $1/compiler.txt | $(BEGIN) 297$1/%.o : %.c $1/%.d $1/cflags.txt $1/compiler.txt | $(BEGIN)