[FL-1241] Build optimization (#459)

* Makefile: enable space optimization with debug, cleanup double includes, explicitly define cpp runtime options
* Toolchain: add printf support
* Toolchain: explicit standard declaration
This commit is contained in:
あく 2021-05-12 10:59:20 +03:00 committed by GitHub
parent aa24484b99
commit 3671c68b79
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 9 deletions

View File

@ -2,7 +2,6 @@ PROJECT_ROOT = $(abspath $(dir $(abspath $(firstword $(MAKEFILE_LIST))))..)
PROJECT = bootloader PROJECT = bootloader
include $(PROJECT_ROOT)/make/base.mk include $(PROJECT_ROOT)/make/base.mk
include $(PROJECT_ROOT)/make/git.mk
CFLAGS += -Itargets/include CFLAGS += -Itargets/include
ASM_SOURCES += $(wildcard src/*.s) ASM_SOURCES += $(wildcard src/*.s)

View File

@ -4,7 +4,6 @@ PROJECT = firmware
include $(PROJECT_ROOT)/make/base.mk include $(PROJECT_ROOT)/make/base.mk
include $(PROJECT_ROOT)/assets/assets.mk include $(PROJECT_ROOT)/assets/assets.mk
include $(PROJECT_ROOT)/core/core.mk include $(PROJECT_ROOT)/core/core.mk
include $(PROJECT_ROOT)/make/git.mk
include $(PROJECT_ROOT)/applications/applications.mk include $(PROJECT_ROOT)/applications/applications.mk
include $(PROJECT_ROOT)/lib/lib.mk include $(PROJECT_ROOT)/lib/lib.mk

View File

@ -6,8 +6,8 @@ PREFIX = $(GCC_PATH)/$(PREFIX)
endif endif
endif endif
CC = $(PREFIX)gcc CC = $(PREFIX)gcc -std=gnu17
CPP = $(PREFIX)g++ CPP = $(PREFIX)g++ -std=gnu++17
LD = $(PREFIX)g++ LD = $(PREFIX)g++
AS = $(PREFIX)gcc -x assembler-with-cpp AS = $(PREFIX)gcc -x assembler-with-cpp
CP = $(PREFIX)objcopy CP = $(PREFIX)objcopy
@ -16,12 +16,15 @@ HEX = $(CP) -O ihex
BIN = $(CP) -O binary -S BIN = $(CP) -O binary -S
DEBUG ?= 1 DEBUG ?= 1
COMPACT ?= 0
ifeq ($(DEBUG), 1) ifeq ($(DEBUG), 1)
CFLAGS += -DDEBUG -g CFLAGS += -DDEBUG -Og -g
else ifeq ($(COMPACT), 1)
CFLAGS += -DNDEBUG -DLFS_NO_ASSERT -Os
else else
CFLAGS += -DNDEBUG -Os CFLAGS += -DNDEBUG -DLFS_NO_ASSERT -Og
endif endif
CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" CFLAGS += -fdata-sections -ffunction-sections -fno-math-errno -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)"
CPPFLAGS += -fno-threadsafe-statics CPPFLAGS += -fno-threadsafe-statics -fno-use-cxa-atexit -fno-exceptions -fno-rtti
LDFLAGS += -Wl,-Map=$(OBJ_DIR)/$(PROJECT).map,--cref -Wl,--gc-sections -Wl,--undefined=uxTopUsedPriority LDFLAGS += -Wl,-Map=$(OBJ_DIR)/$(PROJECT).map,--cref -Wl,--gc-sections -Wl,--undefined=uxTopUsedPriority -u _printf_float