some more pffs code (structures become identifiable ;)
[my-code/arm.git] / betty / Makefile
1 # native builds
2 CC = gcc
3 CFLAGS = -Wall
4
5 # cross build
6 ARCH = arm-elf
7 CROSS_CC = $(ARCH)-gcc
8 CROSS_AS = $(ARCH)-as
9 CROSS_LD = $(ARCH)-ld
10 CROSS_OBJCOPY = $(ARCH)-objcopy
11 CROSS_OPTS = -mcpu=arm7tdmi-s
12 CROSS_CFLAGS = $(CROSS_OPTS) -Wall -Os
13 CROSS_ASLAGS = $(CROSS_OPTS) --gstabs
14 CROSS_RAM_LDFLAGS = -Tlpc2220_ram.ld -nostartfiles -nostdlib
15 CROSS_ROM_LDFLAGS = -Tlpc2220_rom.ld -nostartfiles -nostdlib
16
17 # build objects
18 HOST_TARGET = lpcload fwdump
19 CROSS_TARGET = fwbc.hex fwflash.hex betty.hex
20
21 # betty deps
22 BETTY_DEPS = system.o uart.o buttons.o spi.o display.o flash.o functions.o
23 #BETTY_DEPS += pffs.o
24
25 # all projects
26 all: $(HOST_TARGET) $(CROSS_TARGET)
27
28 # arm code
29 arm: arm_clean $(CROSS_TARGET)
30
31 # .o out of .c
32 %.o: %.c
33         $(CROSS_CC) -c $(CROSS_CFLAGS) -o $@ $<
34
35 # .o out of .s
36 %.o: %.s
37         $(CROSS_AS) $(CROSS_ASLAGS) -o $@ $<
38
39 # .elf out of .o
40 %.elf: %.o startup.o
41         $(CROSS_LD) $(CROSS_RAM_LDFLAGS) startup.o -o $@ $<
42
43 # betty is special ;)
44 betty.elf: betty.o startup.o $(BETTY_DEPS)
45         #$(CROSS_LD) $(CROSS_ROM_LDFLAGS) startup.o $(BETTY_DEPS) -o $@ $<
46         $(CROSS_LD) $(CROSS_RAM_LDFLAGS) startup.o $(BETTY_DEPS) -o $@ $<
47
48 # .hex out of .elf
49 %.hex: %.elf
50         $(CROSS_OBJCOPY) -O ihex $< $@
51
52 # host clean
53 clean:
54         rm -vf lpcload fwdump
55
56 # arm clean
57 arm_clean:
58         rm -vf *.o *.hex *.elf
59