ROM_WORDADDR_WIDTH=11
TOOLS_DIR=../../../tools

CFLAGS=-G 0 -O2 -I. -I../ -msoft-float -march=r3000
LFLAGS=-G 0 -M -T bootloader.ld
LIB_DIRS=-L /usr/local/mipsel-elf/lib -L /usr/local/lib/gcc/mipsel-elf/4.3.2
LIBS=-lc -lm -lgcc

CC=mipsel-elf-gcc
LD=mipsel-elf-ld
OBJDUMP=mipsel-elf-objdump
OBJCOPY=mipsel-elf-objcopy

all: bootloader

libsys: startup_boot.S init_boot.S kernel_boot.S libsys_boot.c
	$(CC) $(CFLAGS) -c startup_boot.S -o startup.o
	$(CC) $(CFLAGS) -c init_boot.S -o init.o
	$(CC) $(CFLAGS) -c kernel_boot.S -o kernel.o
	$(CC) $(CFLAGS) -c libsys_boot.c -o libsys.o

bootloader: libsys bootloader.c 
	$(CC) $(CFLAGS) -g -c bootloader.c
	$(CC) $(CFLAGS) -g -c ../cfiflash.c
	$(LD) $(LFLAGS) $(LIB_DIRS) startup.o init.o kernel.o libsys.o cfiflash.o bootloader.o -o bootloader.elf $(LIBS) >bootloader.map
	$(OBJDUMP) -d bootloader.elf > bootloader.dis
	$(OBJCOPY) bootloader.elf -O binary bootloader.ROM.bin
	$(OBJCOPY) -O srec bootloader.elf bootloader.srec
	$(TOOLS_DIR)/romgen bootloader.ROM.bin $(ROM_WORDADDR_WIDTH)

clean:
	rm -rf *.o *.bin *.map *.dis *.srec *.elf *.vhd* *.tcl bootloader > /dev/null
