###############################################################
#####
##### Makefile for boop - communicate with betty
##### Created at 30.8.2007 02:26 am 
#####
##### boop V0.1 by netguy - ck@mamalala.net
##### Makefile V0.1 by alterego - alteregon@gmx.net
#####
###############################################################

###############################################################
#####
##### PATHS (default installation)
#####
##### You can put your path-config into Makefile.local 
##### to override these defaults
#####
###############################################################

ARMBASE=/opt/armtool/4.1.1
INCLUDEPATH=$(ARMBASE)/include
LIBPATH=$(ARMBASE)/arm-elf/lib/interwork
ARMPATH=$(ARMBASE)/bin
TOOLPREFIX=/arm-elf-

###############################################################
#####
##### Compiler, Linker and Tools
#####
###############################################################

CC=$(ARMPATH)$(TOOLPREFIX)gcc
AS=$(ARMPATH)$(TOOLPREFIX)as
LD=$(ARMPATH)$(TOOLPREFIX)ld
OC=$(ARMPATH)$(TOOLPREFIX)objcopy
OD=$(ARMPATH)$(TOOLPREFIX)objdump

CPUFLAGS=-mcpu=arm7tdmi-s
OPTFLAGS=-Os
#OPTFLAGS=

CFLAGS=$(CPUFLAGS) -c -Wall -mthumb-interwork -msoft-float -I$(INCLUDEPATH)
ASFLAGS=$(CPUFLAGS) -D --gstabs -mthumb-interwork -mfpu=softfpa
ROMLDFLAGS=-Tlpc2220_rom.ld -nostartfiles -nostdlib -Map boop.map
THUMBFLAGS=-mthumb

#CFLAGS=$(CPUFLAGS) -c -Wall -msoft-float -I$(INCLUDEPATH)
#ASFLAGS=$(CPUFLAGS) -D --gstabs -mfpu=softfpa
#ROMLDFLAGS=-Tlpc2220_rom.ld -nostartfiles -nostdlib -Map boop.map
#THUMBFLAGS=

-include Makefile.local

###############################################################
#####
##### Do the boop
#####
###############################################################

all: boop_rom.bin

boop_rom.bin: boop.elf
	$(OC) -O binary boop_rom.elf boop_rom.bin
	$(OC) -O ihex boop_rom.elf boop_rom.hex

boop.elf: crt.o serial.o lcd.o fonty.o flash.o main.o irq.o soundcore.o soundirq.o keyboard.o infrared.o ir_rc5.o ir_rcmm.o ir_nrc17.o ir_sirc.o ir_rec80.o ir_itt.o ir_spaceenc.o ir_recs80.o ir_rca.o batt.o cc1100.o
	$(LD) $(ROMLDFLAGS) -o boop_rom.elf crt.o serial.o flash.o irq.o keyboard.o soundcore.o soundirq.o lcd.o fonty.o infrared.o ir_rc5.o ir_rcmm.o ir_nrc17.o ir_sirc.o ir_rec80.o ir_itt.o ir_spaceenc.o ir_recs80.o ir_rca.o batt.o cc1100.o main.o

test: boop.elf
	$(OD) -h boop.elf

crt.o: crt.s
	$(AS) $(ASFLAGS) -o crt.o crt.s

irq.o: irq.c irq.h
	$(CC) $(CFLAGS) -o irq.o irq.c

keyboard.o: keyboard.c keyboard.h
	$(CC) $(CFLAGS) -o keyboard.o keyboard.c

infrared.o: infrared.c infrared.h
	$(CC) $(CFLAGS) -o infrared.o infrared.c

ir_rc5.o: ir_rc5.c ir_rc5.h infrared.h
	$(CC) $(CFLAGS) $(THUMBFLAGS) -o ir_rc5.o ir_rc5.c

ir_rcmm.o: ir_rcmm.c ir_rcmm.h infrared.h
	$(CC) $(CFLAGS) $(THUMBFLAGS) -o ir_rcmm.o ir_rcmm.c

ir_nrc17.o: ir_nrc17.c ir_nrc17.h infrared.h
	$(CC) $(CFLAGS) $(THUMBFLAGS) -o ir_nrc17.o ir_nrc17.c

ir_sirc.o: ir_sirc.c ir_sirc.h infrared.h
	$(CC) $(CFLAGS) $(THUMBFLAGS) -o ir_sirc.o ir_sirc.c

ir_rec80.o: ir_rec80.c ir_rec80.h infrared.h
	$(CC) $(CFLAGS) $(THUMBFLAGS) -o ir_rec80.o ir_rec80.c

ir_itt.o: ir_itt.c ir_itt.h infrared.h
	$(CC) $(CFLAGS) $(THUMBFLAGS) -o ir_itt.o ir_itt.c

ir_spaceenc.o: ir_spaceenc.c ir_spaceenc.h infrared.h
	$(CC) $(CFLAGS) $(THUMBFLAGS) -o ir_spaceenc.o ir_spaceenc.c

ir_recs80.o: ir_recs80.c ir_recs80.h infrared.h
	$(CC) $(CFLAGS) $(THUMBFLAGS) -o ir_recs80.o ir_recs80.c

ir_rca.o: ir_rca.c ir_rca.h infrared.h
	$(CC) $(CFLAGS) $(THUMBFLAGS) -o ir_rca.o ir_rca.c

soundcore.o: soundcore.c soundcore.h
	$(CC) $(CFLAGS) $(OPTFLAGS) -o soundcore.o soundcore.c

soundirq.o: soundirq.c soundirq.h
	$(CC) $(CFLAGS) -o soundirq.o soundirq.c

flash.o: flash.c flash.h
	$(CC) $(CFLAGS) $(THUMBFLAGS) -o flash.o flash.c

lcd.o: lcd.c lcd.h
	$(CC) $(CFLAGS) $(OPTFLAGS) -o lcd.o lcd.c

fonty.o: fonty.c fonty.h
	$(CC) $(CFLAGS) $(OPTFLAGS) -o fonty.o fonty.c

serial.o: serial.c serial.h
	$(CC) $(CFLAGS) $(THUMBFLAGS) -o serial.o serial.c

batt.o: batt.c
	$(CC) $(CFLAGS) -o batt.o batt.c

cc1100.o: cc1100.c
	$(CC) $(CFLAGS) -o cc1100.o cc1100.c

main.o: main.c
	$(CC) $(CFLAGS) $(THUMBFLAGS) -o main.o main.c

resident: boop_rom.bin
	lpctool -i -v -e -a boop_rom.bin

uresident: boop_rom.bin
	lpctool -d /dev/ttyUSB0 -i -v -e -a boop_rom.bin

clean:
	$(RM) -v *.o *.elf *.bin *.hex *~

### EOF
