diff options
Diffstat (limited to 'tmk_core')
| -rw-r--r-- | tmk_core/common.mk | 71 | ||||
| -rw-r--r-- | tmk_core/native.mk | 24 | ||||
| -rw-r--r-- | tmk_core/rules.mk | 29 | 
3 files changed, 71 insertions, 53 deletions
diff --git a/tmk_core/common.mk b/tmk_core/common.mk index 0b767eb04..f826a7b54 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -5,7 +5,7 @@ else ifeq ($(PLATFORM),CHIBIOS)  	PLATFORM_COMMON_DIR = $(COMMON_DIR)/chibios  endif -SRC +=	$(COMMON_DIR)/host.c \ +TMK_COMMON_SRC +=	$(COMMON_DIR)/host.c \  	$(COMMON_DIR)/keyboard.c \  	$(COMMON_DIR)/action.c \  	$(COMMON_DIR)/action_tapping.c \ @@ -21,98 +21,89 @@ SRC +=	$(COMMON_DIR)/host.c \  	$(PLATFORM_COMMON_DIR)/bootloader.c \  ifeq ($(PLATFORM),AVR) -	SRC += $(PLATFORM_COMMON_DIR)/xprintf.S +	TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/xprintf.S  endif   ifeq ($(PLATFORM),CHIBIOS) -	SRC += $(PLATFORM_COMMON_DIR)/printf.c -	SRC += $(PLATFORM_COMMON_DIR)/eeprom.c +	TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/printf.c +	TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/eeprom.c  endif  # Option modules  ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes) -    OPT_DEFS += -DBOOTMAGIC_ENABLE -    SRC += $(COMMON_DIR)/bootmagic.c +    TMK_COMMON_DEFS += -DBOOTMAGIC_ENABLE +    TMK_COMMON_SRC += $(COMMON_DIR)/bootmagic.c  else -    OPT_DEFS += -DMAGIC_ENABLE -    SRC += $(COMMON_DIR)/magic.c +    TMK_COMMON_DEFS += -DMAGIC_ENABLE +    TMK_COMMON_SRC += $(COMMON_DIR)/magic.c  endif  ifeq ($(strip $(MOUSEKEY_ENABLE)), yes) -    SRC += $(COMMON_DIR)/mousekey.c -    OPT_DEFS += -DMOUSEKEY_ENABLE -    OPT_DEFS += -DMOUSE_ENABLE +    TMK_COMMON_SRC += $(COMMON_DIR)/mousekey.c +    TMK_COMMON_DEFS += -DMOUSEKEY_ENABLE +    TMK_COMMON_DEFS += -DMOUSE_ENABLE  endif  ifeq ($(strip $(EXTRAKEY_ENABLE)), yes) -    OPT_DEFS += -DEXTRAKEY_ENABLE +    TMK_COMMON_DEFS += -DEXTRAKEY_ENABLE  endif  ifeq ($(strip $(CONSOLE_ENABLE)), yes) -    OPT_DEFS += -DCONSOLE_ENABLE +    TMK_COMMON_DEFS += -DCONSOLE_ENABLE  else -    OPT_DEFS += -DNO_PRINT -    OPT_DEFS += -DNO_DEBUG +    TMK_COMMON_DEFS += -DNO_PRINT +    TMK_COMMON_DEFS += -DNO_DEBUG  endif  ifeq ($(strip $(COMMAND_ENABLE)), yes) -    SRC += $(COMMON_DIR)/command.c -    OPT_DEFS += -DCOMMAND_ENABLE +    TMK_COMMON_SRC += $(COMMON_DIR)/command.c +    TMK_COMMON_DEFS += -DCOMMAND_ENABLE  endif  ifeq ($(strip $(NKRO_ENABLE)), yes) -    OPT_DEFS += -DNKRO_ENABLE +    TMK_COMMON_DEFS += -DNKRO_ENABLE  endif  ifeq ($(strip $(USB_6KRO_ENABLE)), yes) -    OPT_DEFS += -DUSB_6KRO_ENABLE +    TMK_COMMON_DEFS += -DUSB_6KRO_ENABLE  endif  ifeq ($(strip $(SLEEP_LED_ENABLE)), yes) -    SRC += $(PLATFORM_COMMON_DIR)/sleep_led.c -    OPT_DEFS += -DSLEEP_LED_ENABLE -    OPT_DEFS += -DNO_SUSPEND_POWER_DOWN +    TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/sleep_led.c +    TMK_COMMON_DEFS += -DSLEEP_LED_ENABLE +    TMK_COMMON_DEFS += -DNO_SUSPEND_POWER_DOWN  endif  ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) -    SRC += $(COMMON_DIR)/backlight.c -    OPT_DEFS += -DBACKLIGHT_ENABLE +    TMK_COMMON_SRC += $(COMMON_DIR)/backlight.c +    TMK_COMMON_DEFS += -DBACKLIGHT_ENABLE  endif  ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) -    OPT_DEFS += -DBLUETOOTH_ENABLE +    TMK_COMMON_DEFS += -DBLUETOOTH_ENABLE  endif  ifeq ($(strip $(ONEHAND_ENABLE)), yes) -    OPT_DEFS += -DONEHAND_ENABLE +    TMK_COMMON_DEFS += -DONEHAND_ENABLE  endif  ifeq ($(strip $(KEYMAP_SECTION_ENABLE)), yes) -    OPT_DEFS += -DKEYMAP_SECTION_ENABLE +    TMK_COMMON_DEFS += -DKEYMAP_SECTION_ENABLE      ifeq ($(strip $(MCU)),atmega32u2) -	EXTRALDFLAGS = -Wl,-L$(TMK_DIR),-Tldscript_keymap_avr35.x +	TMK_COMMON_LDFLAGS = -Wl,-L$(TMK_DIR),-Tldscript_keymap_avr35.x      else ifeq ($(strip $(MCU)),atmega32u4) -	EXTRALDFLAGS = -Wl,-L$(TMK_DIR),-Tldscript_keymap_avr5.x +	TMK_COMMON_LDFLAGS = -Wl,-L$(TMK_DIR),-Tldscript_keymap_avr5.x      else -	EXTRALDFLAGS = $(error no ldscript for keymap section) +	TMK_COMMON_LDFLAGS = $(error no ldscript for keymap section)      endif  endif -ifeq ($(MASTER),right)	 -	OPT_DEFS += -DMASTER_IS_ON_RIGHT -else  -	ifneq ($(MASTER),left) -$(error MASTER does not have a valid value(left/right)) -	endif -endif - -  # Bootloader address  ifdef STM32_BOOTLOADER_ADDRESS -    OPT_DEFS += -DSTM32_BOOTLOADER_ADDRESS=$(STM32_BOOTLOADER_ADDRESS) +    TMK_COMMON_DEFS += -DSTM32_BOOTLOADER_ADDRESS=$(STM32_BOOTLOADER_ADDRESS)  endif  # Search Path diff --git a/tmk_core/native.mk b/tmk_core/native.mk new file mode 100644 index 000000000..50232ee9b --- /dev/null +++ b/tmk_core/native.mk @@ -0,0 +1,24 @@ +CC = gcc +OBJCOPY =  +OBJDUMP =  +SIZE =  +AR =  +NM =  +HEX =  +EEP =  +BIN = + + +COMPILEFLAGS += -funsigned-char +COMPILEFLAGS += -funsigned-bitfields +COMPILEFLAGS += -ffunction-sections +COMPILEFLAGS += -fdata-sections +COMPILEFLAGS += -fshort-enums + +CFLAGS += $(COMPILEFLAGS) +CFLAGS += -fno-inline-small-functions +CFLAGS += -fno-strict-aliasing + +CPPFLAGS += $(COMPILEFLAGS) +CPPFLAGS += -fno-exceptions +CPPFLAGS += -std=gnu++11
\ No newline at end of file diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index 21011c280..79fc7119a 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk @@ -21,13 +21,14 @@ VPATH_SRC := $(VPATH)  vpath %.c $(VPATH_SRC)  vpath %.h $(VPATH_SRC)  vpath %.cpp $(VPATH_SRC) +vpath %.cc $(VPATH_SRC)  vpath %.hpp $(VPATH_SRC)  vpath %.S $(VPATH_SRC)  VPATH :=  # Convert all SRC to OBJ  define OBJ_FROM_SRC -$(patsubst %.c,$1/%.o,$(patsubst %.cpp,$1/%.o,$(patsubst %.S,$1/%.o,$($1_SRC)))) +$(patsubst %.c,$1/%.o,$(patsubst %.cpp,$1/%.o,$(patsubst %.cc,$1/%.o,$(patsubst %.S,$1/%.o,$($1_SRC)))))  endef  $(foreach OUTPUT,$(OUTPUTS),$(eval $(OUTPUT)_OBJ +=$(call OBJ_FROM_SRC,$(OUTPUT)))) @@ -160,6 +161,7 @@ SCANF_LIB =  MATH_LIB = -lm +CREATE_MAP ?= yes  #---------------- Linker Options ---------------- @@ -170,7 +172,10 @@ MATH_LIB = -lm  # Comennt out "--relax" option to avoid a error such:  # 	(.vectors+0x30): relocation truncated to fit: R_AVR_13_PCREL against symbol `__vector_12'  # -LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref + +ifeq ($(CREATE_MAP),yes) +	LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref +endif  #LDFLAGS += -Wl,--relax  LDFLAGS += $(EXTMEMOPTS)  LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS)) @@ -202,14 +207,6 @@ ALL_ASFLAGS = $(MCUFLAGS) -x assembler-with-cpp $(ASFLAGS) $(EXTRAFLAGS)  MOVE_DEP = mv -f $(patsubst %.o,%.td,$@) $(patsubst %.o,%.d,$@) -# Default target. -all: build sizeafter - -# Change the build target to build a HEX file or a library. -build: elf hex -#build: elf hex eep lss sym -#build: lib -  elf: $(BUILD_DIR)/$(TARGET).elf  hex: $(BUILD_DIR)/$(TARGET).hex @@ -305,7 +302,13 @@ $1/%.o : %.cpp $1/%.d $1/cppflags.txt $1/compiler.txt | $(BEGIN)  	@mkdir -p $$(@D)  	@$$(SILENT) || printf "$$(MSG_COMPILING_CPP) $$<" | $$(AWK_CMD)  	$$(eval CMD=$$(CC) -c $$($1_CPPFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP)) -	@$(BUILD_CMD) +	@$$(BUILD_CMD) + +$1/%.o : %.cc $1/%.d $1/cppflags.txt $1/compiler.txt | $(BEGIN) +	@mkdir -p $$(@D) +	@$$(SILENT) || printf "$$(MSG_COMPILING_CPP) $$<" | $$(AWK_CMD) +	$$(eval CMD=$$(CC) -c $$($1_CPPFLAGS) $$(GENDEPFLAGS) $$< -o $$@ && $$(MOVE_DEP)) +	@$$(BUILD_CMD)  # Assemble: create object files from assembler source files.  $1/%.o : %.S $1/asflags.txt $1/compiler.txt | $(BEGIN) @@ -361,10 +364,10 @@ show_path:  	@echo OBJ=$(OBJ)  # Create build directory -$(shell mkdir $(BUILD_DIR) 2>/dev/null) +$(shell mkdir -p $(BUILD_DIR) 2>/dev/null)  # Create object files directory -$(eval $(foreach OUTPUT,$(OUTPUTS),$(shell mkdir $(OUTPUT) 2>/dev/null))) +$(eval $(foreach OUTPUT,$(OUTPUTS),$(shell mkdir -p $(OUTPUT) 2>/dev/null)))  # Include the dependency files.  -include $(patsubst %.o,%.d,$(OBJ))  | 
