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
							 |