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 |