aboutsummaryrefslogtreecommitdiff
path: root/tool/mbed/gcc.mk
diff options
context:
space:
mode:
Diffstat (limited to 'tool/mbed/gcc.mk')
-rw-r--r--tool/mbed/gcc.mk80
1 files changed, 80 insertions, 0 deletions
diff --git a/tool/mbed/gcc.mk b/tool/mbed/gcc.mk
new file mode 100644
index 000000000..0fc41fe27
--- /dev/null
+++ b/tool/mbed/gcc.mk
@@ -0,0 +1,80 @@
1###############################################################################
2GCC_BIN =
3AS = $(GCC_BIN)arm-none-eabi-as
4CC = $(GCC_BIN)arm-none-eabi-gcc
5CPP = $(GCC_BIN)arm-none-eabi-g++
6LD = $(GCC_BIN)arm-none-eabi-gcc
7OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy
8OBJDUMP = $(GCC_BIN)arm-none-eabi-objdump
9SIZE = $(GCC_BIN)arm-none-eabi-size
10CHKSUM = ~/Dropbox/MBED/tool/lpc-vector-checksum
11
12CPU = -mcpu=cortex-m0 -mthumb
13
14CC_FLAGS += $(CPU) -c -g -fno-common -fmessage-length=0 -Wall -fno-exceptions -ffunction-sections -fdata-sections
15CC_FLAGS += -MMD -MP
16CC_SYMBOLS = -DTARGET_LPC11U35_401 -DTARGET_M0 -DTARGET_NXP -DTARGET_LPC11UXX -DTOOLCHAIN_GCC_ARM -DTOOLCHAIN_GCC -D__CORTEX_M0 -DARM_MATH_CM0 -DMBED_BUILD_TIMESTAMP=1399108688.49 -D__MBED__=1
17
18LD_FLAGS = -mcpu=cortex-m0 -mthumb -Wl,--gc-sections --specs=nano.specs
19LD_FLAGS += -Wl,-Map=$(OBJDIR)/$(PROJECT).map,--cref
20LD_SYS_LIBS = -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
21
22ifeq ($(DEBUG), 1)
23 CC_FLAGS += -DDEBUG -O0
24else
25 CC_FLAGS += -DNDEBUG -Os
26endif
27
28all: $(OBJDIR)/$(PROJECT).bin $(OBJDIR)/$(PROJECT).hex size
29
30clean:
31 rm -f $(OBJDIR)/$(PROJECT).bin $(OBJDIR)/$(PROJECT).elf $(OBJDIR)/$(PROJECT).hex $(OBJDIR)/$(PROJECT).map $(OBJDIR)/$(PROJECT).lst $(OBJECTS) $(DEPS)
32 rm -fr $(OBJDIR)
33
34$(OBJDIR)/%.o: %.s
35 mkdir -p $(@D)
36 $(AS) $(CPU) -o $@ $<
37
38$(OBJDIR)/%.o: %.c
39 mkdir -p $(@D)
40 $(CC) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu99 $(INCLUDE_PATHS) -o $@ $<
41
42$(OBJDIR)/%.o: %.cpp
43 mkdir -p $(@D)
44 $(CPP) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu++98 $(INCLUDE_PATHS) -o $@ $<
45
46
47$(OBJDIR)/$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS)
48 $(LD) $(LD_FLAGS) -T$(LINKER_SCRIPT) $(LIBRARY_PATHS) -o $@ $^ $(LIBRARIES) $(LD_SYS_LIBS) $(LIBRARIES) $(LD_SYS_LIBS)
49 @echo ""
50 @echo "*****"
51 @echo "***** You must modify vector checksum value in *.bin and *.hex files."
52 @echo "*****"
53 @echo ""
54
55$(OBJDIR)/$(PROJECT).bin: $(OBJDIR)/$(PROJECT).elf
56 @$(OBJCOPY) -O binary $< $@
57 @echo "Writing vector checksum value into $@ ..."
58 @$(CHKSUM) $@
59 @echo
60
61$(OBJDIR)/$(PROJECT).hex: $(OBJDIR)/$(PROJECT).elf
62 @$(OBJCOPY) -O ihex $< $@
63
64$(OBJDIR)/$(PROJECT).lst: $(OBJDIR)/$(PROJECT).elf
65 @$(OBJDUMP) -Sdh $< > $@
66
67lst: $(OBJDIR)/$(PROJECT).lst
68
69size:
70 $(SIZE) $(OBJDIR)/$(PROJECT).elf
71
72prog: $(OBJDIR)/$(PROJECT).bin
73 @echo "Program..."
74ifneq ($(shell mount | grep 'CRP DISABLD'),)
75 umount /dev/nxpisp >/dev/null 2>&1
76endif
77 dd if=$< of=/dev/nxpisp seek=4
78
79DEPS = $(OBJECTS:.o=.d) $(SYS_OBJECTS:.o=.d)
80-include $(DEPS)