Add .gitignore
[rapper.git] / bitbucket_lpc1768 / Makefile
1 # Copyright (c) 2008-2010 Jakub Piotr Cłapa
2 # This program is released under the new BSD license.
3 ARCH = /home/asbjorn/dev/armchain/arm-none-eabi/bin/arm-none-eabi
4 MBED_VOLUME = /Volumes/MBED
5
6 # Tool definitions
7 CC      = $(ARCH)-gcc
8 LD      = $(ARCH)-ld
9 AR      = $(ARCH)-ar
10 AS      = $(ARCH)-as
11 CP      = $(ARCH)-objcopy
12 OD      = $(ARCH)-objdump
13 SIZE    = $(ARCH)-size
14 RM      = rm
15 Q       = @./quiet "$@"
16
17 # Flags
18 CFLAGS   = -W -Wall -Os --std=gnu99 -fgnu89-inline -mcpu=cortex-m3 -mthumb
19 CFLAGS  += -ffunction-sections -fdata-sections
20 ASFLAGS  =
21 LDFLAGS  = --gc-sections
22 CPFLAGS  =
23 ODFLAGS  = -x --syms
24 PRFLAGS ?=
25
26 # Source files
27 LINKER_SCRIPT = LPC1768-flash.ld
28 CSRCS  = startup.c $(wildcard CMSIS/*.c)
29 CSRCS += main.c
30 ASRCS  = 
31
32
33 OBJS   = $(CSRCS:.c=.o) $(ASRCS:.s=.o)
34
35 .PHONY: all size clean nuke
36
37 all: main.bin main.hex 
38
39 isp: main.bin
40         @./quiet $< cp $^ $(MBED_VOLUME)/
41
42 size: main.elf
43         @$(SIZE) $<
44
45 %.hex: %.elf
46         $Q $(CP) $(CPFLAGS) -O ihex $< $*.hex
47
48 %.bin: %.elf
49         $Q $(CP) $(CPFLAGS) -O binary $< $*.bin
50
51 main.elf: $(LINKER_SCRIPT) $(OBJS)
52         $Q $(LD) -Map $(@:.elf=.map) $(LDFLAGS) -T $^ -o $@ 
53         $Q $(OD) $(ODFLAGS) $@ > $(@:.elf=.dump)
54         @$(SIZE) $@
55
56 %.o: %.c
57         @$(CC) -MM $< -MF $*.d -MP
58         $Q $(CC) -c $(CFLAGS) $< -o $@
59
60 %.o: %.S
61         $Q $(AS) $(ASFLAGS) $< -o $@
62
63 io-pin.h: io-pin.ss
64         $Q mzscheme $< > $@
65
66 clean:
67         @-rm -f *.elf quiet.log
68         @-\
69 for D in "." "**"; do \
70   rm -f $$D/*.o $$D/*.d $$D/*.lst $$D/*.dump $$D/*.map; \
71 done
72
73 nuke: clean
74         -rm -f *.hex *.bin
75
76 -include $(CSRCS:.c=.d)