#
#   CHECK / MTEST / FTEST / LOAD / CKMON Makefile
#
#   jg  28-sep-89
#

TESTOBJS=testt2$(O) testt414$(O) testt425$(O) testt32$(O) testt80x$(O) testt800$(O) testt801$(O)

#
#   uncomment these definitions for PC
#   requires IMS-D705B, MicroSoft C 5.1 and MASM 5.1
#
#E=.exe
#O=.obj
#
# uncomment one of the following depending upon the memory model wanted
# (blank option is small model)
#MODEL=-AC
#MODEL=

# uncomment one of the pairs of lines following depending upon whether 
# you want b004 assembler or not
#  uncomment correct link file b4 = b004, b4a = b004 assembler, b8 = b008

#B004MODE=-DB4ASM
#LINKOBJS=b004asm.obj b004fast.obj
#B004MODE=
#LINKOBJS=b004fast.obj
#LINKMODULE=b008link
#LINKOBJS=$(LINKMODULE)$(O)

#   uncomment the following line for the ALTA board
#LINKOBJS=alta.obj

#FTESTLINK= link /NOI /STACK:2000 /CO @ftestb8.lnk
#FTESTLINK= link /NOI /STACK:2000 /CO @ftestb4.lnk
#FTESTLINK= link /NOI /STACK:2000 /CO @ftestb4a.lnk

#OPTIM=-Ox
#COPTS=-DMSC -W3 $(MODEL)
#CC=cl -c $(OPTIM) $(COPTS)
#LINK= cl $(OPTIM) -F 2000 -o
#RM=rm

#   uncomment these definitions for Sun
#   requires gcc and a link.c for your board
#
#E=
#O=.o
#COPTS= -DGCC -I/usr/local/gnu/gcc/ -ansi -O
#CC=gcc -c $(COPTS)
#LINKOBJS=b014link.o
#LINK=gcc -o
#RM=rm
#FTESTLINK=$(LINK) ftest$(E) ftest$(O) cklib$(O) $(LINKOBJS) $(TESTOBJS)
#

#   uncomment these definitions for Sun 3 or 4 cc
#   requires a link.c for your board
#
E=
O=.o
COPTS= -O
## uncomment this line if you have a sun 3
#CC=cc -c -sun3 $(COPTS)
## uncomment these lines if you have a sun 386
CC=cc -c -sun386 $(COPTS)
LINKMODULE=s386link
LINKOBJS=$(LINKMODULE)$(O)
## uncomment this line if you have a sun 4
#CC=cc -c -sun4 $(COPTS)
#LINKOBJS=b008link.o
LINK=cc -o
RM=rm
FTESTLINK=$(LINK) ftest$(E) ftest$(O) cklib$(O) $(LINKOBJS) $(TESTOBJS)
#

#
#   uncomment these definitions for helios 1.1
#
#E=
#O=.o
#COPTS=-DHELIOS
#CC=c -c $(COPTS)
#C=c $(COPTS)
#LINKOBJS=helios.o
#LINK=c -o
#RM=rm
#OCCAM=occam -si-a-n-d-k-v-e-w-u-T

#
#  build everything
#
all:    check$(E) mtest$(E) ftest$(E) load$(E) ckmon$(E) 

clean:	
	$(RM) *$(O) check$(E) mtest$(E) ftest$(E) load$(E) ckmon$(E) 
#
#  check
#

check$(E):      check$(O) cklib$(O) $(LINKOBJS)
		$(LINK) check$(E) check$(O) cklib$(O) $(LINKOBJS)

check$(O):      check.c readcfb.h checklib.h inmos.h cklib.h \
		type32.h type16.h check32a.h check16a.h check16b.h check32b.h
		$(CC) check.c

#
#  mtest
#

mtest$(E):      mtest$(O) cklib$(O) $(LINKOBJS)
		$(LINK) mtest$(E) mtest$(O) cklib$(O) $(LINKOBJS)

mtest$(O):      mtest.c cklib.h inmos.h \
		mtest32.h mtest16.h checklib.h
		$(CC) mtest.c

#
#  ftest
#

ftest$(E):      ftest$(O) cklib$(O) $(LINKOBJS) $(TESTOBJS)
		$(FTESTLINK)

ftest$(O):      ftest.c testcode.h inmos.h cklib.h checklib.h route32.h route16.h test4k.h
		$(CC) ftest.c

testt2$(O):	testcode.h inmos.h checklib.h cklib.h test222a.h test222b.h testt2.c
		$(CC) testt2.c

testt32$(O):	testcode.h inmos.h checklib.h cklib.h testt32a.h testt32b.h testt32.c
		$(CC) testt32.c

testt414$(O):	testcode.h inmos.h checklib.h cklib.h test414a.h testt414.c
		$(CC) testt414.c

testt425$(O):	testcode.h inmos.h checklib.h cklib.h test425a.h testt425.c
		$(CC) testt425.c

testt80x$(O):	testcode.h inmos.h checklib.h cklib.h \
		test80xa.h test80xb.h test80xc.h test80xd.h testt80x.c
		$(CC) testt80x.c

testt800$(O):	testcode.h inmos.h checklib.h cklib.h test800a.h testt800.c
		$(CC) testt800.c
testt801$(O):	testcode.h inmos.h checklib.h cklib.h test801a.h testt801.c
		$(CC) testt801.c

#
#  load
#

load$(E):       load$(O) cklib$(O) $(LINKOBJS)
		$(LINK) load$(E) load$(O) cklib$(O) $(LINKOBJS)

load$(O):       load.c cklib.h inmos.h route32.h route16.h
		$(CC) load.c
		
#
#  ckmon
#

ckmon$(E):	ckmon$(O) screen$(O) cklib$(O) $(LINKOBJS)
		$(LINK) ckmon$(E) ckmon$(O) screen$(O) cklib$(O) $(LINKOBJS)

ckmon$(O):	ckmon.c link.h screen.h inmos.h opcodes.h \
		cklib.h boot.h peek.h pp32.h pp16.h
		$(CC) ckmon.c

screen$(O):	screen.c screen.h
		$(CC) screen.c

#
#  support routines
#

cklib$(O):	cklib.c cklib.h checklib.h boot.h
		$(CC) cklib.c
		
#
#  link code
#

$(LINKMODULE)$(O):	$(LINKMODULE).c inmos.h
			$(CC) $(CFLAGS) $(LINKMODULE).c

			
#
#  PC link routines
#

b004fast.obj:           b004link.c inmos.h
		        cl -c $(MODEL) $(OPTIM) -DMSC $(B004MODE) -Fob004fast.obj b004link.c

#  use this target for compact memory model
b004asm.obj:		b004asm.asm
			masm /ML /MX /DCOMPACT_MODEL b004asm;

#
#  eof
#

