FORMAT = elf
PREFIX	= mips-rmt-$(FORMAT)
CC 		= $(PREFIX)-gcc
CPP		= $(PREFIX)-gcc -E
AS 		= $(PREFIX)-gcc
LD		= $(PREFIX)-ld
REMOVE		= rm -f

FIRMSTART	= 0x82000000
LD_SCRIPT	= rmt-$(FORMAT).ld
LIBGCC		= $(shell $(CC) -print-libgcc-file-name)
LIBC		= $(shell $(CC) -print-file-name=libc.a)

LFLAGS		= -T$(LD_SCRIPT) -Ttext=$(FIRMSTART) -N -Bstatic \
		  $(LIBC) $(LIBGCC) -nostdlib

TARGET		= RPROM

TARGETFILE	= $(TARGET).out

BINFILE		= $(TARGET).bin
BINFILE_REV	= $(TARGET).br

DISFILE	= $(TARGET).dis

#OBJECTS		= boot.o uart.o main.o
OBJECTS		= boot.o main.o pci.o printk.o uart.o

all: $(BINFILE_REV)

$(BINFILE_REV):	$(OBJECTS) conv
	$(LD) -o $(TARGETFILE) $(OBJECTS) $(LFLAGS) -Map $(TARGET).map

	$(PREFIX)-objcopy --output-target binary -S $(TARGETFILE) $(BINFILE);\
	cat $(BINFILE) | ./conv !> $(BINFILE_REV);\
	chmod a-x $(TARGETFILE) $(BINFILE);\
	chmod a+x $(BINFILE_REV);
	$(PREFIX)-objdump -D -C -f -h -r $(TARGETFILE) > $(DISFILE)
	$(PREFIX)-size $(TARGETFILE)

GCC = gcc

conv:	conv.c
	$(GCC) -O3 -o $@ $<

clean:
	$(REMOVE) *.o $(TARGET).* conv
