-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrules.mk
46 lines (33 loc) · 970 Bytes
/
rules.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
PREFIX ?= arm-none-eabi
CC = $(PREFIX)-gcc
LD = $(PREFIX)-gcc
SZ = $(PREFIX)-size
OBJCOPY = $(PREFIX)-objcopy
LDLIBS += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group -mthumb
LDLIBS += -nostartfiles
LDLIBS += -Wl,--gc-sections
CFLAGS += -mcpu=cortex-m3 -mthumb -fno-builtin
CFLAGS += -pipe -Wall -Os
AFLAGS = -mcpu=cortex-m3 -mthumb
%.hex: %.elf
@printf " OBJCOPY $(*).hex\n"
$(Q)$(OBJCOPY) -Oihex $(*).elf $(*).hex
%.bin: %.elf
@printf " OBJCOPY $(*).bin\n"
$(Q)$(OBJCOPY) -Obinary $(*).elf $(*).bin
%.o: %.c
@printf " CC $(<F)\n"
$(Q)$(CC) $(CFLAGS) -MD -o $@ -c $<
clean:
@printf " CLEAN\n"
$(Q)rm -f *.elf *.bin *.hex *.srec *.list *.map $(OBJS) $(SDIR)/*.d
size:
@echo "--------------------------"
@$(SZ) $(TARGET).elf
hex: $(TARGET).hex
elf: $(TARGET).elf
bin: $(TARGET).bin
$(TARGET).elf: $(OBJS) $(LDSCRIPT)
@printf " LD $@\n"
$(Q)$(LD) $(LDFLAGS) $(ARCH_FLAGS) $(OBJS) $(LDLIBS) -o $@
.PHONY: clean elf hex bin size