#-------------------------------------------------------------------------------
#				Standalone Makefile
#-------------------------------------------------------------------------------

# -- PROM REVISIONS
Q10REV=	2.4
Q20REV=	2.4
V10REV=	2.4
V20REV=	2.4

# -- WHERE TO INSTALL DIAGNOSTICS 
IDIR=	/usr/stand

PATH=	/bin:/usr/bin:/etc
CC=	cc
AS=	as
LD=	ld
AR=	ar
RANLIB= ranlib
SIZE=	size
LIB=	/lib/libc.a
CFLAGS=	-c -O -I. -DKERNEL

#
#-------------------------------------------------------------------------------
#             -- Source files for all bus/processor configurations --
#
CDEVS=	da.c el.c ex.c gp.c gp.s.c hp.c il.c parallax.c ra.c ring.c rk.c \
	rl.c rx.c sd.c sm.c tm.c ts.c ts.c vb.c
CSYS=	conf.c diskpart.c machdep.c prf.c qb.c sio.c sys.c
CTESTS=	bad144.c boot.c cat.c chktxt.c copy.c clock.c dcopy.c \
	diskformat.c diskpart.c diskread.c disktest.c dma.c dmax.c dperform.c \
	fault.c icp.c mem.c memtest.c mmu.c od.c prmmu.c xfer.c cpu.c
CFILES=	${CDEVS} ${CSYS} ${CTESTS}

#
#-------------------------------------------------------------------------------
#             -- Definitions for each bus/processor configurations --
#

#   -----   QBUS M68010
Q10FLAGS=	-DQBUS -DM68010
Q10LIB=		libsa.Q10.a
Q10CFLAGS=	${CFLAGS} ${Q10FLAGS}

Q10DEVS=	da.Q10.o el.Q10.o ex.Q10.o hp.Q10.o il.Q10.o ra.Q10.o rk.Q10.o \
		rl.Q10.o rx.Q10.o sm.Q10.o tm.Q10.o ts.Q10.o parallax.Q10.o
Q10OFILES=	conf.Q10.o diskpart.Q10.o machdep.Q10.o prf.Q10.o qb.Q10.o \
		sio.Q10.o sys.Q10.o ${Q10DEVS}

#   -----   QBUS M68020
#	TBS

#   -----   VBUS M68010
V10FLAGS=	-DVBUS -DM68010
V10LIB=		libsa.V10.a
V10CFLAGS=	${CFLAGS} ${V10FLAGS}

V10DEVS=	da.V10.o ex.V10.o gp.V10.o gp.s.V10.o sd.V10.o sm.V10.o \
		ts.V10.o vb.V10.o ring.V10.o
V10OFILES=	conf.V10.o diskpart.V10.o machdep.V10.o prf.V10.o qb.V10.o \
		sio.V10.o sys.V10.o ${V10DEVS}

#   -----   VBUS M68020
V20FLAGS=	-DVBUS -DM68020
V20LIB=		libsa.V20.a
V20CFLAGS	=${CFLAGS} ${V20FLAGS}

V20DEVS=	da.V20.o ex.V20.o gp.V20.o gp.s.V20.o sd.V20.o sm.V20.o \
		ts.V20.o vb.V20.o ring.V20.o
V20OFILES=	conf.V20.o diskpart.V20.o machdep.V20.o prf.V20.o qb.V20.o \
		sio.V20.o sys.V20.o ${V20DEVS}

#
#-------------------------------------------------------------------------------
#             -- Suffix Rules for each bus/processor configurations --
#
.SUFFIXES:.Q10.o .V10.o .V20.o

.c.Q10.o:; ${CC} ${Q10CFLAGS} $*.c; mv $*.o $@

.c.V10.o:; ${CC} ${V10CFLAGS} $*.c; mv $*.o $@

.c.V20.o:; ${CC} ${V20CFLAGS} $*.c; mv $*.o $@

#
#-------------------------------------------------------------------------------
#                      -- make all definitions --
#
Q10STD=	Q10/boot Q10/pboot Q10/copy Q10/mem Q10/mmu Q10/diskread Q10/disktest \
	Q10/dma Q10/bad144 Q10/diskformat
Q10EXT=	Q10/cat Q10/dcopy Q10/dmax Q10/memtest Q10/mmu Q10/od Q10/cpu

V10STD=	V10/boot V10/pboot V10/copy V10/mem V10/mmu V10/diskread V10/disktest \
	V10/dma V10/bad144 V10/diskformat
V10EXT=	V10/cat V10/clock V10/dcopy V10/dmax V10/icp V10/memtest V10/od Q10/cpu

V20STD=	V20/boot V20/pboot V20/copy V20/mem V20/mmu V20/diskread V20/disktest \
	V20/dma V20/bad144 V20/diskformat
V20EXT=	V20/cat V20/clock V20/dcopy V20/dmax V20/fault V20/icp V20/memtest \
	V20/od V20/prmmu V20/chktxt Q10/cpu

all:	Q10 V10 V20 xfer root
	@echo Done all.

Q10:	${Q10STD} ${Q10EXT}

V10:	${V10STD} ${V10EXT}

V20:	${V20STD} ${V20EXT}

root:	Q10 V10 V20
	@rm -f DIAG_ROOT PROTO
	@echo mkfs DIAG_ROOT 4000 4000 1 8192
	@mkfs DIAG_ROOT 4000 4000 1 8192 2>&1 > /dev/null
	@echo Mkproto V20 V10 Q10
	@Mkproto V20 V10 Q10 > PROTO 2> /dev/null
	mkproto DIAG_ROOT PROTO
	@fsck -y DIAG_ROOT 2>&1 > /dev/null
	@fsck -y DIAG_ROOT
	@echo Done root

install:
	cp -r Q10 ${IDIR}
	cp -r V10 ${IDIR}
	cp -r V20 ${IDIR}
	cp xfer ${IDIR}/Q10
	cp xfer ${IDIR}/V10
	cp xfer ${IDIR}/V20
	@echo Done install.
#
#-------------------------------------------------------------------------------
#                      -- rules for assembly code --
#

M.Q10.o:	M.Q10.s
	cp M.Q10.s X.c
	${CC} ${CFLAGS} ${Q10FLAGS} -E X.c > X.s
	${CC} -c X.s; mv X.o M.Q10.o; rm X.c X.s

MB.Q10.o:	M.Q10.s
	cp M.Q10.s X.c
	${CC} -DBOOT ${CFLAGS} ${Q10FLAGS} -E X.c > X.s
	${CC} -c X.s; mv X.o MB.Q10.o; rm X.c X.s

MBP.Q10.o:	M.Q10.s
	cp M.Q10.s X.c
	${CC} -DBOOT -DPROMBOOT ${CFLAGS} ${Q10FLAGS} -E X.c > X.s
	${CC} -c X.s; mv X.o MBP.Q10.o; rm X.c X.s

gp.s.Q10.o:	gp.s.c
	cc -E gp.s.c > X.s; cc -c X.s; mv X.o gp.s.Q10.o; rm X.s


M.V10.o:	M.V10.s
	cp M.V10.s X.c
	${CC} ${CFLAGS} ${V10FLAGS} -E X.c > X.s
	${CC} -c X.s; mv X.o M.V10.o; rm X.c X.s

MB.V10.o:	M.V10.s
	cp M.V10.s X.c
	${CC} -DBOOT ${CFLAGS} ${V10FLAGS} -E X.c > X.s
	${CC} -c X.s; mv X.o MB.V10.o; rm X.c X.s

MBP.V10.o:	M.V10.s
	cp M.V10.s X.c
	${CC} -DBOOT -DPROMBOOT ${CFLAGS} ${V10FLAGS} -E X.c > X.s
	${CC} -c X.s; mv X.o MBP.V10.o; rm X.c X.s

gp.s.V10.o:	gp.s.c
	cc -E gp.s.c > X.s; cc -c X.s; mv X.o gp.s.V10.o; rm X.s


M.V20.o:	M.V20.s
	cp M.V20.s X.c
	${CC} ${CFLAGS} ${V20FLAGS} -E X.c > X.s
	${CC} -c X.s; mv X.o M.V20.o; rm X.c X.s

MB.V20.o:	M.V20.s
	cp M.V20.s X.c
	${CC} -DBOOT ${CFLAGS} ${V20FLAGS} -E X.c > X.s
	${CC} -c X.s; mv X.o MB.V20.o; rm X.c X.s

MBP.V20.o:	M.V20.s
	cp M.V20.s X.c
	${CC} -DBOOT -DPROMBOOT ${CFLAGS} ${V20FLAGS} -E X.c > X.s
	${CC} -c X.s; mv X.o MBP.V20.o; rm X.c X.s

gp.s.V20.o:	gp.s.c
	cc -E gp.s.c > X.s; cc -c X.s; mv X.o gp.s.V20.o; rm X.s

#
#-------------------------------------------------------------------------------
#                      -- archive libraries --
#

${Q10LIB}:${Q10OFILES}
	${AR} vr ${Q10LIB} $?
	${RANLIB} ${Q10LIB}

${V10LIB}:${V10OFILES}
	${AR} vr ${V10LIB} $?
	${RANLIB} ${V10LIB}

${V20LIB}:${V20OFILES}
	${AR} vr ${V20LIB} $?
	${RANLIB} ${V20LIB}

#
#-------------------------------------------------------------------------------
#        --- machine dependent files which are completely different ---
M.s:		M.Q10.s M.V20.s M.V20.s
		touch -c M.s
machdep.c:	machdep.q10.c machdep.v10.c machdep.v20.c
		touch -c machdep.c
sio.c:		sio.10.c sio.20.c
		touch -c sio.c
sm.c:		sm.q.c sm.v.c
		touch -c sm.c
diskformat.c:	diskformat.q.c diskformat.v.c
		touch -c diskformat.c
mmu.c:		mmu.q10.c mmu.v10.c mmu.v20.c
		touch -c mmu.c

#
#-------------------------------------------------------------------------------
#        --- machine dependent files which are completely different ---
xfer:
	cc -O -o xfer xfer.c

#
#-------------------------------------------------------------------------------
#                               -- misc --
#
listing:
	pr *.h *.s ${CFILES} | lpr

clean:
	rm -f libsa.Q10.a libsa.V10.a libsa.V20.a *.o Q10/* V10/* V20/* xfer

#
#-------------------------------------------------------------------------------
#				QBUS 68010

Q10LFBOOT=	-S -N -x -T 3E0000 -e start
Q10LFDIAG=	-S -N -x -T 8000 -e start

Q10/pboot:	MBP.Q10.o ${Q10LIB}
	${CC} ${Q10CFLAGS} -DREV=\"${Q10REV}\" -DDATE=\""`/bin/date`"\" -c boot.c
	mv boot.o boot.Q10.o
	${LD} ${Q10LFBOOT} MBP.Q10.o boot.Q10.o ${Q10LIB} ${LIB} -o Q10/pboot
	size Q10/pboot

Q10/boot:	MB.Q10.o ${Q10LIB}
	${CC} ${Q10CFLAGS} -DREV=\"${Q10REV}\" -DDATE=\""`/bin/date`"\" -c boot.c
	mv boot.o boot.Q10.o
	${LD} ${Q10LFBOOT} MB.Q10.o boot.Q10.o ${Q10LIB} ${LIB} -o boot
	./Util/chentry; mv boot Q10/boot

Q10/copy:	M.Q10.o copy.Q10.o ${Q10LIB}
	${LD} ${Q10LFDIAG} M.Q10.o copy.Q10.o ${Q10LIB} ${LIB} -o Q10/copy

Q10/cpu:	M.Q10.o cpu.Q10.o ${Q10LIB}
	${LD} ${Q10LFDIAG} M.Q10.o cpu.Q10.o ${Q10LIB} ${LIB} -o Q10/cpu

Q10/dcopy:	M.Q10.o dcopy.Q10.o ${Q10LIB}
	${LD} ${Q10LFDIAG} M.Q10.o dcopy.Q10.o ${Q10LIB} ${LIB} -o Q10/dcopy

Q10/cat:	M.Q10.o cat.Q10.o ${Q10LIB}
	${LD} ${Q10LFDIAG} M.Q10.o cat.Q10.o ${Q10LIB} ${LIB} -o Q10/cat

Q10/dma: M.Q10.o dma.Q10.o ${Q10LIB}
	${LD} ${Q10LFDIAG} M.Q10.o dma.Q10.o ${Q10LIB} ${LIB} -o Q10/dma

Q10/dmax: M.Q10.o dmax.Q10.o ${Q10LIB}
	${LD} ${Q10LFDIAG} M.Q10.o dmax.Q10.o ${Q10LIB} ${LIB} -o Q10/dmax

Q10/disktest: M.Q10.o disktest.Q10.o ${Q10LIB}
	${LD} ${Q10LFDIAG} M.Q10.o disktest.Q10.o ${Q10LIB} ${LIB} -o Q10/disktest

Q10/diskread: M.Q10.o diskread.Q10.o ${Q10LIB}
	${LD} ${Q10LFDIAG} M.Q10.o diskread.Q10.o ${Q10LIB} ${LIB} -o Q10/diskread

Q10/diskformat: M.Q10.o diskformat.Q10.o ${Q10LIB}
	${LD} ${Q10LFDIAG} M.Q10.o diskformat.Q10.o ${Q10LIB} ${LIB} -o Q10/diskformat

Q10/bad144: M.Q10.o bad144.Q10.o ${Q10LIB}
	${LD} ${Q10LFDIAG} M.Q10.o bad144.Q10.o ${Q10LIB} ${LIB} -o Q10/bad144

Q10/memtest: M.Q10.o memtest.Q10.o ${Q10LIB}
	${LD} ${Q10LFDIAG} M.Q10.o memtest.Q10.o ${Q10LIB} ${LIB} -o Q10/memtest

Q10/mmu:	M.Q10.o mmu.Q10.o ${Q10LIB}
	${LD} ${Q10LFDIAG} M.Q10.o mmu.Q10.o ${Q10LIB} ${LIB} -o Q10/mmu

#Q10/fault:	M.Q10.o fault.Q10.o ${Q10LIB}
#	${LD} ${Q10LFDIAG} M.Q10.o fault.Q10.o ${Q10LIB} ${LIB} -o Q10/fault

Q10/mem:	M.Q10.o mem.Q10.o ${Q10LIB}
	${LD} ${Q10LFDIAG} M.Q10.o mem.Q10.o ${Q10LIB} ${LIB} -o Q10/mem

#Q10/icp:	M.Q10.o icp.Q10.o ${Q10LIB}
#	${LD} ${Q10LFDIAG} M.Q10.o icp.Q10.o ${Q10LIB} ${LIB} -o Q10/icp

Q10/od:	M.Q10.o od.Q10.o ${Q10LIB}
	${LD} ${Q10LFDIAG} M.Q10.o od.Q10.o ${Q10LIB} ${LIB} -o Q10/od

#Q10/clock:	M.Q10.o clock.Q10.o ${Q10LIB}
#	${LD} ${Q10LFDIAG} M.Q10.o clock.Q10.o ${Q10LIB} ${LIB} -o Q10/clock

Q10/dperform:	M.Q10.o dperform.Q10.o ${Q10LIB}
	${LD} ${Q10LFDIAG} M.Q10.o dperform.Q10.o ${Q10LIB} ${LIB} -o Q10/dperform

#
#-------------------------------------------------------------------------------
#				VBUS 68010

V10LFBOOT=	-S -N -x -T 7A0000 -e start
V10LFDIAG=	-S -N -x -T 8000 -e start

V10/pboot:	MBP.V10.o ${V10LIB}
	${CC} ${V10CFLAGS} -DREV=\"${V10REV}\" -DDATE=\""`/bin/date`"\" -c boot.c
	mv boot.o boot.V10.o
	${LD} ${V10LFBOOT} MBP.V10.o boot.V10.o ${V10LIB} ${LIB} -o V10/pboot
	size V10/pboot

V10/boot:	MB.V10.o ${V10LIB}
	${CC} ${V10CFLAGS} -DREV=\"${V10REV}\" -DDATE=\""`/bin/date`"\" -c boot.c
	mv boot.o boot.V10.o
	${LD} ${V10LFBOOT} MB.V10.o boot.V10.o ${V10LIB} ${LIB} -o boot
	./Util/chentry; mv boot V10/boot

V10/copy:	M.V10.o copy.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o copy.V10.o ${V10LIB} ${LIB} -o V10/copy

V10/cpu:	M.V10.o cpu.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o cpu.V10.o ${V10LIB} ${LIB} -o V10/cpu

V10/dcopy:	M.V10.o dcopy.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o dcopy.V10.o ${V10LIB} ${LIB} -o V10/dcopy

V10/cat:	M.V10.o cat.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o cat.V10.o ${V10LIB} ${LIB} -o V10/cat

V10/dma: M.V10.o dma.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o dma.V10.o ${V10LIB} ${LIB} -o V10/dma

V10/dmax: M.V10.o dmax.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o dmax.V10.o ${V10LIB} ${LIB} -o V10/dmax

V10/disktest: M.V10.o disktest.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o disktest.V10.o ${V10LIB} ${LIB} -o V10/disktest

V10/diskread: M.V10.o diskread.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o diskread.V10.o ${V10LIB} ${LIB} -o V10/diskread

V10/diskformat: M.V10.o diskformat.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o diskformat.V10.o ${V10LIB} ${LIB} -o V10/diskformat

V10/bad144: M.V10.o bad144.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o bad144.V10.o ${V10LIB} ${LIB} -o V10/bad144

V10/memtest: M.V10.o memtest.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o memtest.V10.o ${V10LIB} ${LIB} -o V10/memtest

V10/mmu:	M.V10.o mmu.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o mmu.V10.o ${V10LIB} ${LIB} -o V10/mmu

V10/fault:	M.V10.o fault.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o fault.V10.o ${V10LIB} ${LIB} -o V10/fault

V10/mem:	M.V10.o mem.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o mem.V10.o ${V10LIB} ${LIB} -o V10/mem

V10/icp:	M.V10.o icp.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o icp.V10.o ${V10LIB} ${LIB} -o V10/icp

V10/od:	M.V10.o od.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o od.V10.o ${V10LIB} ${LIB} -o V10/od

V10/clock:	M.V10.o clock.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o clock.V10.o ${V10LIB} ${LIB} -o V10/clock

V10/dperform:	M.V10.o dperform.V10.o ${V10LIB}
	${LD} ${V10LFDIAG} M.V10.o dperform.V10.o ${V10LIB} ${LIB} -o V10/dperform

#
#-------------------------------------------------------------------------------
#				VBUS 68020

V20LFBOOT=	-S -N -x -T 1D0000 -e start
V20LFDIAG=	-S -N -x -T 8000 -e start
V20LFCHKT=	-S -N -x -T 180000 -e start

V20/pboot:	MBP.V20.o ${V20LIB}
	${CC} ${V20CFLAGS} -DREV=\"${V20REV}\" -DDATE=\""`/bin/date`"\" -c boot.c
	mv boot.o boot.V20.o
	${LD} ${V20LFBOOT} MBP.V20.o boot.V20.o ${V20LIB} ${LIB} -o V20/pboot
	size V20/pboot

V20/boot:	MB.V20.o ${V20LIB}
	${CC} ${V20CFLAGS} -DREV=\"${V20REV}\" -DDATE=\""`/bin/date`"\" -c boot.c
	mv boot.o boot.V20.o
	${LD} ${V20LFBOOT} MB.V20.o boot.V20.o ${V20LIB} ${LIB} -o boot
	./Util/chentry; mv boot V20/boot

V20/copy:	M.V20.o copy.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o copy.V20.o ${V20LIB} ${LIB} -o V20/copy

V20/cpu:	M.V20.o cpu.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o cpu.V20.o ${V20LIB} ${LIB} -o V20/cpu

V20/dcopy:	M.V20.o dcopy.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o dcopy.V20.o ${V20LIB} ${LIB} -o V20/dcopy

V20/cat:	M.V20.o cat.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o cat.V20.o ${V20LIB} ${LIB} -o V20/cat

V20/dma: M.V20.o dma.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o dma.V20.o ${V20LIB} ${LIB} -o V20/dma

V20/dmax: M.V20.o dmax.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o dmax.V20.o ${V20LIB} ${LIB} -o V20/dmax

V20/disktest: M.V20.o disktest.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o disktest.V20.o ${V20LIB} ${LIB} -o V20/disktest

V20/diskread: M.V20.o diskread.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o diskread.V20.o ${V20LIB} ${LIB} -o V20/diskread

V20/diskformat: M.V20.o diskformat.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o diskformat.V20.o ${V20LIB} ${LIB} -o V20/diskformat

V20/bad144: M.V20.o bad144.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o bad144.V20.o ${V20LIB} ${LIB} -o V20/bad144

V20/memtest: M.V20.o memtest.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o memtest.V20.o ${V20LIB} ${LIB} -o V20/memtest

V20/mmu:	M.V20.o mmu.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o mmu.V20.o ${V20LIB} ${LIB} -o V20/mmu

V20/fault:	M.V20.o fault.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o fault.V20.o ${V20LIB} ${LIB} -o V20/fault

V20/mem:	M.V20.o mem.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o mem.V20.o ${V20LIB} ${LIB} -o V20/mem

V20/icp:	M.V20.o icp.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o icp.V20.o ${V20LIB} ${LIB} -o V20/icp

V20/od:	M.V20.o od.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o od.V20.o ${V20LIB} ${LIB} -o V20/od

V20/clock:	M.V20.o clock.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o clock.V20.o ${V20LIB} ${LIB} -o V20/clock

V20/dperform:	M.V20.o dperform.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o dperform.V20.o ${V20LIB} ${LIB} -o V20/dperform

V20/prmmu:	M.V20.o prmmu.V20.o ${V20LIB}
	${LD} ${V20LFDIAG} M.V20.o prmmu.V20.o ${V20LIB} ${LIB} -o V20/prmmu

V20/chktxt:	M.V20.o chktxt.V20.o ${V20LIB}
	${LD} ${V20LFCHKT} M.V20.o chktxt.V20.o ${V20LIB} ${LIB} -o V20/chktxt
