72 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
|   | # makefile for arm gcc toolchain
 | ||
|  | 
 | ||
|  | CC = $(CROSS_COMPILE)gcc | ||
|  | CXX = $(CROSS_COMPILE)g++ | ||
|  | AS = $(CC) -x assembler-with-cpp | ||
|  | LD = $(CC) | ||
|  | 
 | ||
|  | GDB = $(CROSS_COMPILE)gdb | ||
|  | OBJCOPY = $(CROSS_COMPILE)objcopy | ||
|  | SIZE = $(CROSS_COMPILE)size | ||
|  | 
 | ||
|  | # ---------------------------------------
 | ||
|  | # Compiler Flags
 | ||
|  | # ---------------------------------------
 | ||
|  | CFLAGS += \
 | ||
|  |   -MD \
 | ||
|  |   -ggdb \
 | ||
|  |   -fdata-sections \
 | ||
|  |   -ffunction-sections \
 | ||
|  |   -fsingle-precision-constant \
 | ||
|  |   -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 \
 | ||
|  | 
 | ||
|  | # Some toolchain such as renesas rx does not support --print-memory-usage flags
 | ||
|  | ifneq ($(FAMILY),rx) | ||
|  | LDFLAGS += -Wl,--print-memory-usage | ||
|  | endif |