CC = arm-none-eabi-gcc CPP = arm-none-eabi-cpp LD = arm-none-eabi-gcc AR = arm-none-eabi-ar OBJCOPY = arm-none-eabi-objcopy OBJDUMP = arm-none-eabi-objdump NM = arm-none-eabi-nm SIZE = arm-none-eabi-size SREC_CAT = srec_cat CFLAGS += -mthumb -mabi=aapcs -mlittle-endian CFLAGS += -Wall CFLAGS += -std=c99 CFLAGS += -ffunction-sections -fdata-sections -fno-strict-aliasing CFLAGS += -fshort-enums -fomit-frame-pointer -fno-builtin ifeq ($(WERROR),1) CFLAGS += -Werror endif LDFLAGS += -mthumb -mlittle-endian OBJDUMP_FLAGS += --disassemble --source --disassembler-options=force-thumb ### Are we building with code size optimisations? SMALL ?= 1 ifeq ($(SMALL),1) CFLAGS += -Os else CFLAGS += -O2 endif ### Use CMSIS from arch/cpu/arm/common CONTIKI_ARM_DIRS += . CONTIKI_CPU_DIRS += $(addprefix ../arm/, $(CONTIKI_ARM_DIRS)) ### Default to use os/lib/dbg-io unless configured to do otherwise MAKE_WITH_LIB_DBG_IO ?= 1 ifeq ($(MAKE_WITH_LIB_DBG_IO),1) MODULES += os/lib/dbg-io endif ### CPU-dependent cleanup files CLEAN += *.elf *.bin *.lst *.hex *.i16hex ### Don't treat the following files as intermediate .PRECIOUS: %.elf %.hex %.bin %.i16hex: %.elf $(OBJCOPY) -O ihex $< $@ %.hex: %.i16hex $(SREC_CAT) $< -intel -o $@ -intel %.bin: %.elf $(OBJCOPY) -O binary $(OBJCOPY_FLAGS) $< $@ %.lst: %.elf $(OBJDUMP) $(OBJDUMP_FLAGS) $< > $@ ### We don't really need the .hex and .bin for the .$(TARGET) but let's make ### sure they get built %.$(TARGET): %.elf %.hex %.bin cp $< $@