mirror of
https://github.com/hathach/tinyusb.git
synced 2025-03-30 13:20:33 +00:00
72 lines
1.6 KiB
Makefile
72 lines
1.6 KiB
Makefile
# ---------------------------------------
|
|
# Compiler Flags
|
|
# ---------------------------------------
|
|
CFLAGS += \
|
|
-MD \
|
|
-ggdb \
|
|
-fdata-sections \
|
|
-ffunction-sections \
|
|
-fno-strict-aliasing \
|
|
-Wall \
|
|
-Wextra \
|
|
-Werror \
|
|
-Wfatal-errors \
|
|
-Wdouble-promotion \
|
|
-Wstrict-prototypes \
|
|
-Wstrict-overflow \
|
|
-Werror-implicit-function-declaration \
|
|
-Wfloat-equal \
|
|
-Wundef \
|
|
-Wshadow \
|
|
-Wwrite-strings \
|
|
-Wsign-compare \
|
|
-Wmissing-format-attribute \
|
|
-Wunreachable-code \
|
|
-Wcast-align \
|
|
-Wcast-function-type \
|
|
-Wcast-qual \
|
|
-Wnull-dereference \
|
|
-Wuninitialized \
|
|
-Wunused \
|
|
-Wreturn-type \
|
|
-Wredundant-decls \
|
|
|
|
# conversion is too strict for most mcu driver, may be disable sign/int/arith-conversion
|
|
# -Wconversion
|
|
|
|
# Size Optimization as default
|
|
CFLAGS_OPTIMIZED ?= -Os
|
|
|
|
# Debugging/Optimization
|
|
ifeq ($(DEBUG), 1)
|
|
CFLAGS += -O0
|
|
NO_LTO = 1
|
|
else
|
|
CFLAGS += $(CFLAGS_OPTIMIZED)
|
|
endif
|
|
|
|
# ---------------------------------------
|
|
# Linker Flags
|
|
# ---------------------------------------
|
|
LDFLAGS += \
|
|
-Wl,-Map=$@.map \
|
|
-Wl,--cref \
|
|
-Wl,-gc-sections \
|
|
|
|
# renesas rx does not support --print-memory-usage flags
|
|
ifneq ($(FAMILY),rx)
|
|
LDFLAGS += -Wl,--print-memory-usage
|
|
endif
|
|
|
|
ifeq ($(TOOLCHAIN),gcc)
|
|
CC_VERSION := $(shell $(CC) -dumpversion)
|
|
CC_VERSION_MAJOR = $(firstword $(subst ., ,$(CC_VERSION)))
|
|
|
|
# from version 12
|
|
ifeq ($(strip $(if $(CMDEXE),\
|
|
$(shell if $(CC_VERSION_MAJOR) geq 12 (echo 1) else (echo 0)),\
|
|
$(shell expr $(CC_VERSION_MAJOR) \>= 12))), 1)
|
|
LDFLAGS += -Wl,--no-warn-rwx-segment
|
|
endif
|
|
endif
|