summaryrefslogtreecommitdiffstats
path: root/tmk_core
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2020-05-20 16:28:39 +0100
committerGitHub <noreply@github.com>2020-05-20 16:28:39 +0100
commitb0c780ed32712d2eb38c69a2b9465a00b861381e (patch)
tree500c8c4f797e8a38a49fee8bbafaaf8efd4481c6 /tmk_core
parent3ad2be52a7098c269d741f8d59a424afdbd7302d (diff)
Fix ChibiOS FPU build logic (#9132)
Diffstat (limited to 'tmk_core')
-rw-r--r--tmk_core/chibios.mk28
-rw-r--r--tmk_core/rules.mk2
2 files changed, 13 insertions, 17 deletions
diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk
index d0f1032acb..09aaddeef0 100644
--- a/tmk_core/chibios.mk
+++ b/tmk_core/chibios.mk
@@ -220,6 +220,18 @@ COMPILEFLAGS += -fno-common
COMPILEFLAGS += -fshort-wchar
COMPILEFLAGS += $(THUMBFLAGS)
+# FPU options default (Cortex-M4 and Cortex-M7 single precision).
+USE_FPU_OPT ?= -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant
+
+# FPU-related options
+USE_FPU ?= no
+ifneq ($(USE_FPU),no)
+ COMPILEFLAGS += $(USE_FPU_OPT)
+ OPT_DEFS += -DCORTEX_USE_FPU=TRUE
+else
+ OPT_DEFS += -DCORTEX_USE_FPU=FALSE
+endif
+
CFLAGS += $(COMPILEFLAGS)
ASFLAGS += $(THUMBFLAGS)
@@ -241,22 +253,6 @@ OPT_DEFS += -DPORT_IGNORE_GCC_VERSION_CHECK=1
MCUFLAGS = -mcpu=$(MCU)
-# FPU options default (Cortex-M4 and Cortex-M7 single precision).
-ifeq ($(USE_FPU_OPT),)
- USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv4-sp-d16 -fsingle-precision-constant
-endif
-
-# FPU-related options
-ifeq ($(USE_FPU),)
- USE_FPU = no
-endif
-ifneq ($(USE_FPU),no)
- OPT += $(USE_FPU_OPT)
- OPT_DEFS += -DCORTEX_USE_FPU=TRUE
-else
- OPT_DEFS += -DCORTEX_USE_FPU=FALSE
-endif
-
DEBUG = gdb
DFU_ARGS ?=
diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk
index f45fd37929..9bb341ecb1 100644
--- a/tmk_core/rules.mk
+++ b/tmk_core/rules.mk
@@ -46,7 +46,7 @@ FORMAT = ihex
# Optimization level, can be [0, 1, 2, 3, s].
# 0 = turn off optimization. s = optimize for size.
# (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
-OPT = s
+OPT ?= s
# Compiler flag to set the C Standard level.
# c89 = "ANSI" C