]> www.hackdaworld.org Git - my-code/arm.git/blob - betty/Makefile
4d2a1aa44450803513cd65d6596c7ff0a146d1bd
[my-code/arm.git] / betty / Makefile
1 # native builds
2 CC = gcc
3 CFLAGS = -Wall -I/usr/src/linux/include
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 font2b
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 += interrupts.o #pffs.o
24
25 # all projects
26 all: $(HOST_TARGET) $(CROSS_TARGET)
27
28 # bmp2b / font2b
29 links:
30         ln -sfv ../../api/bmp/bmp.{c,h} .
31
32 bmp.c: links
33
34 bmp.o: bmp.c
35         $(CC) -c $(CFLAGS) -o $@ $<
36
37 bmp2b: bmp.o
38
39 # arm code
40 arm: arm_clean $(CROSS_TARGET)
41
42 # .o out of .c
43 %.o: %.c
44         $(CROSS_CC) -c $(CROSS_CFLAGS) -o $@ $<
45
46 # .o out of .s
47 %.o: %.s
48         $(CROSS_AS) $(CROSS_ASLAGS) -o $@ $<
49
50 # .elf out of .o
51 %.elf: %.o startup.o interrupts.o
52         $(CROSS_LD) $(CROSS_RAM_LDFLAGS) startup.o interrupts.o -o $@ $<
53
54 # betty is special ;)
55 betty.elf: betty.o startup.o $(BETTY_DEPS)
56         #$(CROSS_LD) $(CROSS_ROM_LDFLAGS) startup.o $(BETTY_DEPS) -o $@ $<
57         $(CROSS_LD) $(CROSS_RAM_LDFLAGS) startup.o $(BETTY_DEPS) -o $@ $<
58
59 # .hex out of .elf
60 %.hex: %.elf
61         $(CROSS_OBJCOPY) -O ihex $< $@
62
63 # host clean
64 clean:
65         rm -vf lpcload fwdump
66
67 # arm clean
68 arm_clean:
69         rm -vf *.o *.hex *.elf
70