CC=/usr/bin/mipsel-linux-gcc
OBJCOPY=/usr/bin/mipsel-linux-objcopy
OBJDUMP=/usr/bin/mipsel-linux-objdump

CFLAGS=-fno-pic -G 0 -mno-abicalls -mlong-calls -mips2 -O2 -Wall -g \
	-DUSE_ADM8511 # -DUSE_LIBBZIP2
LDFLAGS=-Wl,-Map,moni.map
LIBS= -nostartfiles -nostdlib -L../zlib-1.1.4 -lz 
# LIBS= -nostartfiles -nostdlib -L../bzip2-1.0.2 -lbz2

.SUFFIXES: .elf .mot .dis .bin

TARGET= moni.mot moni-ram.elf moni.bin
OBJS=	vector.o crt0.o main.o nprint.o except.o task.o siu.o cmd.o\
	para.o mlib.o rtl8019as.o skbuf.o arp.o icmp.o\
	timer.o list.o udp.o tftp.o srec.o flash.o boot.o\
	mmc.o crc.o mmc_cmd.o usb.o sl811hs.o adm8511.o dipsw.o led.o hub.o\
	fswrite.o netdev.o dm9601.o

target: $(TARGET) 

moni.elf: $(OBJS) vr4131dimm.x
	./newver version.c > newVer.c
	$(CC) $(CFLAGS) $(LDFLAGS) -o $*.elf -Tvr4131dimm.x newVer.c $(OBJS) $(LIBS)
	mv version.c version.c.old
	mv newVer.c version.c

moni-ram.elf: Makefile $(OBJS) vr4131dimm2.x 
	$(CC) $(CFLAGS) $(LDFLAGS) -o $*.elf -Tvr4131dimm2.x version.c $(OBJS) $(LIBS)

crt0.o: crt0.S Makefile

moni.mot: moni.elf Makefile
	$(OBJCOPY) -F srec --change-addresses 0x3c410000 moni.elf moni.mot

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

#.elf.mot:
#	$(OBJCOPY) -F srec $*.elf $*.mot
.elf.dis:
	$(OBJDUMP) -d $*.elf > $*.dis
.elf.bin:
	$(OBJCOPY) -O binary $*.elf $*.bin

clean:
	rm -f moni.mot moni.elf moni.out moni.dis moni.bin $(OBJS) nprint_test\
		moni-ram.elf moni-ram.mot TAGS *.dis ,* 

tags:
	etags *.[ch]

nprint_test: nprint.c
	cc -o nprint_test -DTEST -g nprint.c

# $(OBJS): Makefile

# DO NOT DELETE

arp.o: nprint.h /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h
arp.o: rtl8019as.h types.h skbuf.h task.h list.h arp.h timer.h
arp.o: types.h list.h
cmd.o: siu.h vr4131.h task.h types.h list.h nprint.h
cmd.o: /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h para.h
except.o: exhdlr.h vr4131.h
icmp.o: skbuf.h types.h task.h list.h rtl8019as.h arp.h icmp.h
intr.o: vr4131.h
main.o: nprint.h /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h
main.o: task.h types.h list.h vr4131.h siu.h
mlib.o: mlib.h
nprint.o: nprint.h /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h
nprint.o: vr4131.h
nprint.o: /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h
para.o: para.h nprint.h
para.o: /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h
para.o: /usr/include/string.h /usr/include/features.h
para.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
para.o: /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h
rtl8019as.o: types.h nprint.h
rtl8019as.o: /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h
rtl8019as.o: rtl8019as.h skbuf.h task.h list.h vr4131.h delay.h
rtl8019as.o: types.h skbuf.h task.h list.h
sci.o: sci.h
sci_intr.o: sci.h task.h types.h list.h nprint.h
sci_intr.o: /usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h
siu.o: siu.h vr4131.h task.h types.h list.h
siu.o: vr4131.h task.h types.h list.h
skbuf.o: skbuf.h types.h task.h list.h rtl8019as.h arp.h icmp.h
skbuf.o: types.h task.h list.h
task.o: task.h types.h list.h
task.o: types.h list.h
timer.o: timer.h types.h task.h list.h
timer.o: types.h task.h list.h
