]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Output specific include paths
authorFred Sundvik <fsundvik@gmail.com>
Mon, 15 Aug 2016 05:45:36 +0000 (08:45 +0300)
committerFred Sundvik <fsundvik@gmail.com>
Sat, 20 Aug 2016 00:56:40 +0000 (03:56 +0300)
build_keyboard.mk
tmk_core/rules.mk

index d10412ea5707ff64d83daac1b476233e889d5212..0debc49259680981ae0836826d375d43055bf3d6 100644 (file)
@@ -43,8 +43,22 @@ ifneq ($(SUBPROJECT),)
     endif
 endif
 
-# Save the defs here, so we don't include any keymap specific ones 
+# We can assume a ChibiOS target When MCU_FAMILY is defined, since it's not used for LUFA
+ifdef MCU_FAMILY
+       PLATFORM=CHIBIOS
+else
+       PLATFORM=AVR
+endif
+
+ifeq ($(PLATFORM),CHIBIOS)
+       include $(TMK_PATH)/protocol/chibios.mk
+       include $(TMK_PATH)/chibios.mk
+       OPT_OS = chibios
+endif
+
+# Save the defines and includes here, so we don't include any keymap specific ones 
 PROJECT_DEFS := $(OPT_DEFS)
+PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(SUBPROJECT_PATH) $(KEYBOARD_PATH)
 
 MAIN_KEYMAP_PATH := $(KEYBOARD_PATH)/keymaps/$(KEYMAP)
 MAIN_KEYMAP_C := $(MAIN_KEYMAP_PATH)/keymap.c
@@ -72,19 +86,6 @@ else
        KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD)
 endif
 
-# We can assume a ChibiOS target When MCU_FAMILY is defined, since it's not used for LUFA
-ifdef MCU_FAMILY
-       PLATFORM=CHIBIOS
-else
-       PLATFORM=AVR
-endif
-
-ifeq ($(PLATFORM),CHIBIOS)
-       include $(TMK_PATH)/protocol/chibios.mk
-       include $(TMK_PATH)/chibios.mk
-       OPT_OS = chibios
-endif
-
 # Object files directory
 #     To put object files in current directory, use a dot (.), do NOT make
 #     this an empty or blank macro!
@@ -190,8 +191,10 @@ endif
 OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT)
 $(KEYMAP_OUTPUT)_SRC := $(SRC)
 $(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) -DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYMAP=\"$(KEYMAP)\" 
+$(KEYMAP_OUTPUT)_INC := $(EXTRAINCDIRS) $(VPATH)
 $(KEYBOARD_OUTPUT)_SRC := $(CHIBISRC)
 $(KEYBOARD_OUTPUT)_DEFS := $(PROJECT_DEFS)
+$(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC)
 
 
 include $(TMK_PATH)/rules.mk
index 9f6d8d9dfd35f99986627857f68ed3dab881e632..7b2c842ed6042499264df5ced7c321d005c7d08e 100644 (file)
@@ -49,13 +49,6 @@ OPT = s
 AUTOGEN ?= false
 
 
-# List any extra directories to look for include files here.
-#     Each directory must be seperated by a space.
-#     Use forward slashes for directory separators.
-#     For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS += $(subst :, ,$(VPATH_SRC))
-
-
 # Compiler flag to set the C Standard level.
 #     c89   = "ANSI" C
 #     gnu89 = c89 plus GCC extensions
@@ -104,7 +97,6 @@ CFLAGS += -Wstrict-prototypes
 #CFLAGS += -Wunreachable-code
 #CFLAGS += -Wsign-compare
 CFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
-CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
 CFLAGS += $(CSTANDARD)
 ifdef CONFIG_H
     CFLAGS += -include $(CONFIG_H)
@@ -131,7 +123,6 @@ CPPFLAGS += -Wundef
 #CPPFLAGS += -Wunreachable-code
 #CPPFLAGS += -Wsign-compare
 CPPFLAGS += -Wa,-adhlns=$(@:%.o=%.lst)
-CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
 #CPPFLAGS += $(CSTANDARD)
 ifdef CONFIG_H
     CPPFLAGS += -include $(CONFIG_H)
@@ -149,7 +140,6 @@ endif
 #       dump that will be displayed for a given single line of source input.
 ASFLAGS += $(ADEFS) 
 ASFLAGS += -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100
-ASFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
 ifdef CONFIG_H
     ASFLAGS += -include $(CONFIG_H)
 endif
@@ -305,9 +295,11 @@ BEGIN = gccversion sizebefore
        
 
 define GEN_OBJRULE
-$1_CFLAGS = $$(ALL_CFLAGS) $$($1_DEFS)
-$1_CPPFLAGS= $$(ALL_CPPFLAGS) $$($1_DEFS)
-$1_ASFLAGS= $$(ALL_ASFLAGS) $$($1_DEFS)
+$1_INCFLAGS := $$(patsubst %,-I%,$$($1_INC))
+$1_CFLAGS = $$(ALL_CFLAGS) $$($1_DEFS) $$($1_INCFLAGS)
+$1_CPPFLAGS= $$(ALL_CPPFLAGS) $$($1_DEFS) $$($1_INCFLAGS)
+$1_ASFLAGS= $$(ALL_ASFLAGS) $$($1_DEFS) $$($1_INCFLAGS)
+$$(info $$($1_INCFLAGS))
 
 # Compile: create object files from C source files.
 $1/%.o : %.c $1/%.d $1/cflags.txt $1/compiler.txt | $(BEGIN)