X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=tmk_core%2Ftool%2Fchibios%2Fchibios.mk;h=5afcb1930dbb1b5f206e0b1a6b9ed1f5e49cb440;hb=8345571e1df07cdbe612541baa9e4f3441ad3f9e;hp=bc8c61b31c0687db605ca5ed9ad24c02dc9eabe6;hpb=88c053f78e24d9906c0f469ab1862a468044a376;p=max%2Ftmk_keyboard.git diff --git a/tmk_core/tool/chibios/chibios.mk b/tmk_core/tool/chibios/chibios.mk index bc8c61b3..5afcb193 100644 --- a/tmk_core/tool/chibios/chibios.mk +++ b/tmk_core/tool/chibios/chibios.mk @@ -5,7 +5,7 @@ # Compiler options here. ifeq ($(USE_OPT),) - USE_OPT = -O0 -ggdb -fomit-frame-pointer -falign-functions=16 -std=gnu99 -DPROTOCOL_CHIBIOS + USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 -std=gnu99 -DPROTOCOL_CHIBIOS endif # C specific options here (added to USE_OPT). @@ -35,7 +35,7 @@ endif # Enable this if you want link time optimizations (LTO) ifeq ($(USE_LTO),) - USE_LTO = yes + USE_LTO = no endif # If enabled, this option allows to compile the application in THUMB mode. @@ -83,22 +83,47 @@ endif # # Imported source files and paths -CHIBIOS = $(TMK_DIR)/tool/chibios/chibios -# Startup files. -include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk +CHIBIOS ?= $(TMK_DIR)/tool/chibios/ChibiOS +CHIBIOS_CONTRIB ?= $(TMK_DIR)/tool/chibios/ChibiOS-Contrib +# Startup files. Try a few different locations, for compability with old versions and +# for things hardware in the contrib repository +STARTUP_MK = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk +ifeq ("$(wildcard $(STARTUP_MK))","") + STARTUP_MK = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk + ifeq ("$(wildcard $(STARTUP_MK))","") + STARTUP_MK = $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk + endif +endif +include $(STARTUP_MK) # HAL-OSAL files (optional). include $(CHIBIOS)/os/hal/hal.mk -include $(CHIBIOS)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/platform.mk -ifneq ("$(wildcard $(TARGET_DIR)/boards/$(BOARD))","") - include $(TARGET_DIR)/boards/$(BOARD)/board.mk -else - include $(CHIBIOS)/os/hal/boards/$(BOARD)/board.mk + +PLATFORM_MK = $(CHIBIOS)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/platform.mk +ifeq ("$(wildcard $(PLATFORM_MK))","") +PLATFORM_MK = $(CHIBIOS_CONTRIB)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/platform.mk endif +include $(PLATFORM_MK) + + +BOARD_MK = $(TARGET_DIR)/boards/$(BOARD)/board.mk +ifeq ("$(wildcard $(BOARD_MK))","") + BOARD_MK = $(CHIBIOS)/os/hal/boards/$(BOARD)/board.mk + ifeq ("$(wildcard $(BOARD_MK))","") + BOARD_MK = $(CHIBIOS_CONTRIB)/os/hal/boards/$(BOARD)/board.mk + endif +endif +include $(BOARD_MK) include $(CHIBIOS)/os/hal/osal/rt/osal.mk # RTOS files (optional). include $(CHIBIOS)/os/rt/rt.mk -include $(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC/mk/port_v$(ARMV)m.mk +# Compability with old version +PORT_V = $(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC/mk/port_v$(ARMV)m.mk +ifeq ("$(wildcard $(PORT_V))","") +PORT_V = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v$(ARMV)m.mk +endif +include $(PORT_V) # Other files (optional). +include $(CHIBIOS)/os/hal/lib/streams/streams.mk # Define linker script file here ifneq ("$(wildcard $(TARGET_DIR)/ld/$(MCU_LDSCRIPT).ld)","") @@ -116,7 +141,8 @@ CSRC = $(STARTUPSRC) \ $(HALSRC) \ $(PLATFORMSRC) \ $(BOARDSRC) \ - $(CHIBIOS)/os/hal/lib/streams/chprintf.c \ + $(STREAMSSRC) \ + $(LIBSRC) \ $(TMK_DIR)/protocol/chibios/usb_main.c \ $(TMK_DIR)/protocol/chibios/main.c \ $(SRC) @@ -146,13 +172,15 @@ TCSRC = TCPPSRC = # List ASM source files here -ASMSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) +ASMSRC = +ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) -INCDIR = $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ +INCDIR = $(CHIBIOS)/os/license \ + $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ - $(CHIBIOS)/os/hal/lib/streams $(CHIBIOS)/os/various \ + $(STREAMSINC) $(LIBINC) $(CHIBIOS)/os/various \ $(TMK_DIR) $(COMMON_DIR) $(TMK_DIR)/protocol/chibios \ - $(TARGET_DIR) + $(TMK_DIR)/protocol $(TARGET_DIR) # # Project, sources and paths @@ -162,8 +190,6 @@ INCDIR = $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ # Compiler settings # -MCU = cortex-m0 - #TRGT = arm-elf- TRGT = arm-none-eabi- CC = $(TRGT)gcc @@ -177,7 +203,7 @@ CP = $(TRGT)objcopy AS = $(TRGT)gcc -x assembler-with-cpp AR = $(TRGT)ar OD = $(TRGT)objdump -SZ = $(TRGT)size +SZ = $(TRGT)size -A HEX = $(CP) -O ihex BIN = $(CP) -O binary @@ -203,10 +229,10 @@ CPPWARN = -Wall -Wextra -Wundef # List all user C define here, like -D_DEBUG=1 ## Select which interfaces to include here! -UDEFS = $(OPT_DEFS) +UDEFS += $(OPT_DEFS) # Define ASM defines here -UADEFS = $(OPT_DEFS) +UADEFS += $(OPT_DEFS) # bootloader definitions may be used in the startup .s file ifneq ("$(wildcard $(TARGET_DIR)/bootloader_defs.h)","") UADEFS += -include $(TARGET_DIR)/bootloader_defs.h @@ -217,17 +243,20 @@ else ifneq ("$(wildcard $(TARGET_DIR)/boards/$(BOARD)/bootloader_defs.h)","") endif # List all user directories here -UINCDIR = +#UINCDIR = # List the user directory to look for the libraries here -ULIBDIR = +#ULIBDIR = # List all user libraries here -ULIBS = +#ULIBS = # # End of user defines ############################################################################## RULESPATH = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC +ifeq ("$(wildcard $(RULESPATH)/rules.mk)","") +RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk +endif include $(RULESPATH)/rules.mk