CC		= mips-linux-gcc
AS		= mips-linux-as
AR		= mips-linux-ar
LD		= mips-linux-ld
STRIP		= mips-linux-strip
MAKE		= make

LOADADDR	= 0x80600000
CFLAGS		= -I. -O2 -mips2 -mcpu=r4000 -DLOADADDR=$(LOADADDR)
LDFLAGS		= -N -oformat ecoff-littlemips -Ttext $(LOADADDR)
#LDFLAGS		= -N -oformat ecoff-littlemips -Ttext $(LOADADDR) -Tdata 0x80604000

#		  getenv.o setenv.o unsetenv.o putenv.o printf.o \
#		  dumptlb.o errno.o exit.o open.o close.o read.o write.o \

LIBOBJS		= console.o vsprintf.o ctype.o glue.o fprintf.o sleep.o \
		  dumptlb.o seek.o errno.o exit.o open.o close.o read.o write.o \
		  get_nlist.o getenv.o setenv.o unsetenv.o putenv.o printf.o \
		  stdfd.o malloc.o mallocinit.o mallocdebug.o __main.o\
		  strerror.o errlist.o getopt.o getopt1.o perror.o puts.o \
		  fflush.o getchar.o cachectl.o

all:		dummy disk

ifeq (.depend,$(wildcard .depend))
include .depend
endif

disk:		hello milo vmlinux
		mcopy -n hello a:
		mcopy -n milo a:
		mcopy -n vmlinux a:

hello:		hello.o crt0.o libstand.a
		$(LD) $(LDFLAGS) -e __entry -o hello crt0.o hello.o libstand.a


milo:		milo.o crt0.o launch.o libstand.a
		$(LD) $(LDFLAGS) -e __entry -o milo crt0.o milo.o launch.o libstand.a
#		$(LD) $(LDFLAGS) -e __entry -o milo crt0.o launch.o $(LIBOBJS) milo.o

vmlinux:	vmlinux.o libstand.a
		$(LD) -N -Ttext 0x80000000 -o vmlinux vmlinux.o libstand.a

crt0.o:		crt0.S
		$(CC) $(CFLAGS) -c crt0.S

libstand.a:	$(LIBOBJS)
		$(AR) rcs libstand.a $(LIBOBJS)

glue.o:		glue.c $(LIB_HEADERS)
		$(CC) $(CFLAGS) -c glue.c

clean:
		-rm -f hello *.[os] *.bak

distclean:	clean
		-rm -f libstand.a .depend milo vmlinux hello

depend dep:
		for i in *.c;do echo -n "./";$(CPP) $(CFLAGS) -M $$i;done \
			> .tmpdepend
		mv .tmpdepend .depend

ifeq (.depend,$(wildcard .depend))
dummy:
	;
else
.depend:
	@echo "Generating dependencies..."
	@echo
	$(MAKE) depend
	@echo
	@echo "Successful. Try re-making (ignore the error that follows)"
	@echo
	exit 1

dummy:	.depend
	;
endif
