some interrupt/pwm testing
[my-code/arm.git] / betty / Makefile
index d9f49e7..a76cf32 100644 (file)
@@ -1,29 +1,70 @@
+# native builds
 CC = gcc
-CFLAGS = -Wall
+CFLAGS = -Wall -I/usr/src/linux/include
 
-ARMCC = /scratch/arm-elf/bin/arm-elf-gcc
-ARMCFLAGS = -Wall -mcpu=arm7tdmi-s 
-ARMOBJCOPY = /scratch/arm-elf/bin/arm-elf-objcopy
+# cross build
+ARCH = arm-elf
+CROSS_CC = $(ARCH)-gcc
+CROSS_AS = $(ARCH)-as
+CROSS_LD = $(ARCH)-ld
+CROSS_OBJCOPY = $(ARCH)-objcopy
+CROSS_OPTS = -mcpu=arm7tdmi-s
+CROSS_CFLAGS = $(CROSS_OPTS) -Wall -Os
+CROSS_ASLAGS = $(CROSS_OPTS) --gstabs
+CROSS_RAM_LDFLAGS = -Tlpc2220_ram.ld -nostartfiles -nostdlib 
+CROSS_ROM_LDFLAGS = -Tlpc2220_rom.ld -nostartfiles -nostdlib
 
-HOSTOBJECTS = lpcload fwdump
+# build objects
+HOST_TARGET = lpcload fwdump font2b
+CROSS_TARGET = fwbc.hex fwflash.hex betty.hex
 
-ARMOBJECTS = fwbc.hex
+# betty deps
+BETTY_DEPS = system.o uart.o buttons.o spi.o display.o flash.o functions.o
+BETTY_DEPS += interrupts.o pwm.o #pffs.o
 
 # all projects
-all: $(HOSTOBJECTS) $(ARMOBJECTS)
+all: $(HOST_TARGET) $(CROSS_TARGET)
+
+# bmp2b / font2b
+links:
+       ln -sfv ../../api/bmp/bmp.{c,h} .
+
+bmp.c: links
+
+bmp.o: bmp.c
+       $(CC) -c $(CFLAGS) -o $@ $<
+
+bmp2b: bmp.o
 
 # arm code
-arm: arm_clean $(ARMOBJECTS)
+arm: arm_clean $(CROSS_TARGET)
 
-# fwbc
-fwbc:
-       $(ARMCC) $(ARMCFLAGS) -c fwbc.c -o fwbc
+# .o out of .c
+%.o: %.c
+       $(CROSS_CC) -c $(CROSS_CFLAGS) -o $@ $<
 
-fwbc.hex: fwbc
-       $(ARMOBJCOPY) -O ihex fwbc fwbc.hex
+# .o out of .s
+%.o: %.s
+       $(CROSS_AS) $(CROSS_ASLAGS) -o $@ $<
 
+# .elf out of .o
+%.elf: %.o startup.o interrupts.o
+       $(CROSS_LD) $(CROSS_RAM_LDFLAGS) startup.o interrupts.o -o $@ $<
+
+# betty is special ;)
+betty.elf: betty.o startup.o $(BETTY_DEPS)
+       #$(CROSS_LD) $(CROSS_ROM_LDFLAGS) startup.o $(BETTY_DEPS) -o $@ $<
+       $(CROSS_LD) $(CROSS_RAM_LDFLAGS) startup.o $(BETTY_DEPS) -o $@ $<
+
+# .hex out of .elf
+%.hex: %.elf
+       $(CROSS_OBJCOPY) -O ihex $< $@
+
+# host clean
 clean:
-       rm -f lpcload fwbc.hex fwbc
+       rm -vf lpcload fwdump
 
+# arm clean
 arm_clean:
-       rm -f fwbc.hex fwbc
+       rm -vf *.o *.hex *.elf
+