bf7dcc7df9ed3bb5c9bb612ed2ae31b10deadd42
[rapper.git] / src / Makefile
1 PROJECT=rapper
2 PLATFORM ?= arm-none-eabi
3 BOARD?=lpc1768
4 BPATH=boards/$(BOARD)
5 LDFLAGS=--gc-sections -g -T $(BPATH)/flash.ld
6 CFLAGS=-W -Wall --std=gnu99 -fgnu89-inline -mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections -I$(BPATH) -I. -g
7 #CFLAGS+=-Os
8
9 # objects are separated by space
10 USB_OBJS=usb/serial.o usb/core.o usb/desc.o usb/hw.o usb/user.o usb/vcom.o usb/cdcuser.o
11 BOARD_OBJS=$(BPATH)/startup.o $(BPATH)/system.o boards/cortex_m3/core_cm3.o
12 OBJECTS=main.o $(BOARD_OBJS) $(USB_OBJS)
13
14
15 all: crc
16
17 $(PROJECT).elf: $(OBJECTS)
18         $(PLATFORM)-ld -Map $(PROJECT).map $(LDFLAGS) $(OBJECTS) -o $@
19
20 %.bin: %.elf
21         $(PLATFORM)-objcopy -O binary $< $*.bin
22
23 %.o: %.c
24         $(PLATFORM)-gcc -MM $< -MF $(patsubst %.o,%.d,$@) -MP
25         $(PLATFORM)-gcc $(CFLAGS) -c $< -o $@
26
27 .PHONY: clean gdb crc
28
29 clean:
30         rm -f $(PROJECT).elf $(OBJECTS) $(OBJECTS:.o=.d) $(PROJECT).map
31
32 gdb:
33         $(PLATFORM)-gdb $(PROJECT).elf
34
35 crc:    $(PROJECT).bin
36         ../tools/lpcrc/lpcrc.sh $(PROJECT).bin $(BPATH)/startup.c