c7e36a3d55
Previously, the clean target would delete a number of file extensions, many of which currently unknown to our build system (old platforms?). This commit changes the target so that it only cleans what we know we are building. Platforms / CPUs can append to the target with platform-specific build artifacts.
55 lines
1.3 KiB
Makefile
55 lines
1.3 KiB
Makefile
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 += -Werror -Wall
|
|
CFLAGS += -std=c99
|
|
CFLAGS += -ffunction-sections -fdata-sections -fno-strict-aliasing
|
|
CFLAGS += -fshort-enums -fomit-frame-pointer -fno-builtin
|
|
|
|
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 and the existing dbg-io from arch/cpu/arm/common
|
|
CONTIKI_ARM_DIRS += . common/dbg-io
|
|
CONTIKI_CPU_DIRS += $(addprefix ../arm/, $(CONTIKI_ARM_DIRS))
|
|
|
|
### 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 $< $@
|