e5f9940 Merge commit '1bc3dd200b023cecf063a0cb3ba347f77f6d759d' into core_update da03c50 Add note for L/R side bit being ignored e80f3c1 Add in basic documentation for Macro system 35e8a76 core: Swap position of PEQL and PENT in unimap 00751f1 Merge pull request #406 from 39aldo39/patch-1 e50d7de V-USB remote wakeup 4340997 core: Fix typo in definition AC_g 958144d core: Debug print for system and consumer keys e7e1030 core: Fix sleep_led 0866323 core: Change matrix_init and matrix_print 0dbf73d core: Add matrix_clear() and default impl. 3202ca3 core: Add suspend mode options 4cda3aa core: Fix suspend/wake for converters #386 4e15247 core: LUFA_DEBUG_SUART for serial debug b9cf8e7 core: Fix mechanical locking supoort #390 12aa0fd Merge branch 'nemith-master' fccb3fa core: Fix OPT_DEFS for mbed build 2e2d2c8 Merge branch 'master' of github.com:leizzer/tmk_keyboard f1d3634 Change .gitignore for ChibiOS 3aab802 core: Fix build config in protocol.mk 5e43da0 core: Add short names in unimap 7a56998 core: Fix dfu wait in rules.mk 6d9c500 Merge branch 'mediakey-fix' 08382ac core: Fix 'make dfu' message 78cb04e Fix OS X Recognizing keyboard as Mouse/Tablet a114714 core: 'make dfu' waits for bootloader to start d0a8f13 core: Fix unimap UNIMAP_NO case e17abef core: Change lufa NKRO report size 16 to 32 bytes 375b20f core: Fix common.mk for build options 394fdff core: Fix unimap layout comment 912326c core: Add unimap support 00f4011 core: Fix doc/keymap.md for new keymap framework ddbd7b4 core: Add default implemenation of keymap read 671cacc core: action codes are action_t struct now b4fdb27 core: Change chibios repo directory names 7daed10 core: Fix keycode.txt 90399d7 core: Fix USB remote wakeup on ATmega32U2 #361 3677e84 usb_usb: Add multiple keyboard support 54d5b26 core: Fix Logical Maximum in report descriptor bd0d372 core: Fix LUFA report descriptor 95327b5 Merge pull request #355 from papodaca/XT 62bf548 core: change API of adb.c to accept device address 3097c9e Fix function name in host.h 836e209 Merge branch 'core_split_160522' 3918ea2 Merge commit '20b787fc1284176834cbe7ca2134e4b36bec5828' 7f87b11 core: Add comment of register 3 of ADB ef6478a core: Add adb_host_talk() 5c665b4 update macro names in bluefruit 4f2c5bf Merge commit '71381457fa1311dfa0b58ba882a96db740640871' 53a9c08 Merge pull request #321 from njbair/master f08a656 core: Fix media/consumer keys d526de8 Clean up wording in keymap example 0bb3dbb Clarify layer precedence d915c75 clarify layer documentation 72070d4 ps2_usb: Fix for VUSB configuration 170e2dc Mostly working. Is unstable, will emit bad codes after a while. c8e45b5 core: Actionmap support aabaa24 Codes appear to be detected correctly, the break codes are broken. git-subtree-dir: tmk_core git-subtree-split: e5f994033cbc8700745ac0c6d12772820492eed0
261 lines
7.8 KiB
Makefile
261 lines
7.8 KiB
Makefile
##############################################################################
|
|
# Build global options
|
|
# NOTE: Can be overridden externally.
|
|
#
|
|
|
|
# Compiler options here.
|
|
ifeq ($(USE_OPT),)
|
|
USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16 -std=gnu99 -DPROTOCOL_CHIBIOS
|
|
endif
|
|
|
|
# C specific options here (added to USE_OPT).
|
|
ifeq ($(USE_COPT),)
|
|
USE_COPT =
|
|
endif
|
|
|
|
# include specific config.h?
|
|
ifdef CONFIG_H
|
|
USE_COPT += -include $(CONFIG_H)
|
|
endif
|
|
|
|
# C++ specific options here (added to USE_OPT).
|
|
ifeq ($(USE_CPPOPT),)
|
|
USE_CPPOPT = -fno-rtti
|
|
endif
|
|
|
|
# Enable this if you want the linker to remove unused code and data
|
|
ifeq ($(USE_LINK_GC),)
|
|
USE_LINK_GC = yes
|
|
endif
|
|
|
|
# Linker extra options here.
|
|
ifeq ($(USE_LDOPT),)
|
|
USE_LDOPT =
|
|
endif
|
|
|
|
# Enable this if you want link time optimizations (LTO)
|
|
ifeq ($(USE_LTO),)
|
|
USE_LTO = no
|
|
endif
|
|
|
|
# If enabled, this option allows to compile the application in THUMB mode.
|
|
ifeq ($(USE_THUMB),)
|
|
USE_THUMB = yes
|
|
endif
|
|
|
|
# Enable this if you want to see the full log while compiling.
|
|
ifeq ($(USE_VERBOSE_COMPILE),)
|
|
USE_VERBOSE_COMPILE = no
|
|
endif
|
|
|
|
# If enabled, this option makes the build process faster by not compiling
|
|
# modules not used in the current configuration.
|
|
ifeq ($(USE_SMART_BUILD),)
|
|
USE_SMART_BUILD = yes
|
|
endif
|
|
|
|
#
|
|
# Build global options
|
|
##############################################################################
|
|
|
|
##############################################################################
|
|
# Architecture or project specific options
|
|
#
|
|
|
|
# Stack size to be allocated to the Cortex-M process stack. This stack is
|
|
# the stack used by the main() thread.
|
|
ifeq ($(USE_PROCESS_STACKSIZE),)
|
|
USE_PROCESS_STACKSIZE = 0x200
|
|
endif
|
|
|
|
# Stack size to the allocated to the Cortex-M main/exceptions stack. This
|
|
# stack is used for processing interrupts and exceptions.
|
|
ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
|
|
USE_EXCEPTIONS_STACKSIZE = 0x400
|
|
endif
|
|
|
|
#
|
|
# Architecture or project specific options
|
|
##############################################################################
|
|
|
|
##############################################################################
|
|
# Project, sources and paths
|
|
#
|
|
|
|
# Imported source files and paths
|
|
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
|
|
|
|
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
|
|
# 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)","")
|
|
LDSCRIPT = $(TARGET_DIR)/ld/$(MCU_LDSCRIPT).ld
|
|
else
|
|
LDSCRIPT = $(STARTUPLD)/$(MCU_LDSCRIPT).ld
|
|
endif
|
|
|
|
# C sources that can be compiled in ARM or THUMB mode depending on the global
|
|
# setting.
|
|
CSRC = $(STARTUPSRC) \
|
|
$(KERNSRC) \
|
|
$(PORTSRC) \
|
|
$(OSALSRC) \
|
|
$(HALSRC) \
|
|
$(PLATFORMSRC) \
|
|
$(BOARDSRC) \
|
|
$(STREAMSSRC) \
|
|
$(TMK_DIR)/protocol/chibios/usb_main.c \
|
|
$(TMK_DIR)/protocol/chibios/main.c \
|
|
$(SRC)
|
|
|
|
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
|
|
# setting.
|
|
CPPSRC =
|
|
|
|
# C sources to be compiled in ARM mode regardless of the global setting.
|
|
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
|
# option that results in lower performance and larger code size.
|
|
ACSRC =
|
|
|
|
# C++ sources to be compiled in ARM mode regardless of the global setting.
|
|
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
|
# option that results in lower performance and larger code size.
|
|
ACPPSRC =
|
|
|
|
# C sources to be compiled in THUMB mode regardless of the global setting.
|
|
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
|
# option that results in lower performance and larger code size.
|
|
TCSRC =
|
|
|
|
# C sources to be compiled in THUMB mode regardless of the global setting.
|
|
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
|
# option that results in lower performance and larger code size.
|
|
TCPPSRC =
|
|
|
|
# List ASM source files here
|
|
ASMSRC =
|
|
ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
|
|
|
|
INCDIR = $(CHIBIOS)/os/license \
|
|
$(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
|
|
$(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
|
|
$(STREAMSINC) $(CHIBIOS)/os/various \
|
|
$(TMK_DIR) $(COMMON_DIR) $(TMK_DIR)/protocol/chibios \
|
|
$(TMK_DIR)/protocol $(TARGET_DIR)
|
|
|
|
#
|
|
# Project, sources and paths
|
|
##############################################################################
|
|
|
|
##############################################################################
|
|
# Compiler settings
|
|
#
|
|
|
|
#TRGT = arm-elf-
|
|
TRGT = arm-none-eabi-
|
|
CC = $(TRGT)gcc
|
|
CPPC = $(TRGT)g++
|
|
# Enable loading with g++ only if you need C++ runtime support.
|
|
# NOTE: You can use C++ even without C++ support if you are careful. C++
|
|
# runtime support makes code size explode.
|
|
LD = $(TRGT)gcc
|
|
#LD = $(TRGT)g++
|
|
CP = $(TRGT)objcopy
|
|
AS = $(TRGT)gcc -x assembler-with-cpp
|
|
AR = $(TRGT)ar
|
|
OD = $(TRGT)objdump
|
|
SZ = $(TRGT)size -A
|
|
HEX = $(CP) -O ihex
|
|
BIN = $(CP) -O binary
|
|
|
|
# ARM-specific options here
|
|
AOPT =
|
|
|
|
# THUMB-specific options here
|
|
TOPT = -mthumb -DTHUMB
|
|
|
|
# Define C warning options here
|
|
CWARN = -Wall -Wextra -Wundef -Wstrict-prototypes -Wno-missing-field-initializers
|
|
|
|
# Define C++ warning options here
|
|
CPPWARN = -Wall -Wextra -Wundef
|
|
|
|
#
|
|
# Compiler settings
|
|
##############################################################################
|
|
|
|
##############################################################################
|
|
# Start of user section
|
|
#
|
|
|
|
# List all user C define here, like -D_DEBUG=1
|
|
## Select which interfaces to include here!
|
|
UDEFS += $(OPT_DEFS)
|
|
|
|
# Define ASM defines here
|
|
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
|
|
UDEFS += -include $(TARGET_DIR)/bootloader_defs.h
|
|
else ifneq ("$(wildcard $(TARGET_DIR)/boards/$(BOARD)/bootloader_defs.h)","")
|
|
UADEFS += -include $(TARGET_DIR)/boards/$(BOARD)/bootloader_defs.h
|
|
UDEFS += -include $(TARGET_DIR)/boards/$(BOARD)/bootloader_defs.h
|
|
endif
|
|
|
|
# List all user directories here
|
|
#UINCDIR =
|
|
|
|
# List the user directory to look for the libraries here
|
|
#ULIBDIR =
|
|
|
|
# List all user libraries here
|
|
#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
|
|
endif
|
|
include $(RULESPATH)/rules.mk
|