#
# This makefile is used to build the various system emulators written
# by Robert Supnik of Digital Equipment Corporation.
#
# Edit History:
# 29-Jan-96 Megan Gentry
#	Added appropriate changes to reflect changes in Bob's V2.2
#	release which includes pdp4, pdp7, pdp9 and pdp15 emulators.
#
# 21-Dec-95 Megan Gentry
#	Added appropriate changes to reflect changes in Bob's
#	V2.1 release.  nova and pdp9 emulators are not yet
#	available, but code has been added to provide latent
#	support.
#
# xx-xxx-93 Megan Gentry
#	Initial version

#
# Edit the following line to read vcc instead of cc if you are building
# on a vax running ultrix.
#

CC	= gcc
CCFLAGS = -g -O2
LDFLAGS =

NOVAOBJS = nova_clk.o nova_cpu.o nova_dkp.o nova_dsk.o nova_lp.o \
		 nova_mta.o nova_pt.o nova_sys.o nova_tt.o scp.o scp_tty.o

PDP4OBJS = pdp4_cpu.o pdp4_drm.o pdp4_lp.o pdp4_mt.o \
	pdp4_rf.o pdp4_rp.o pdp4_stddev.o pdp4_sys.o scp.o \
	scp_tty.o

PDP7OBJS = pdp7_cpu.o pdp7_drm.o pdp7_lp.o pdp7_mt.o \
	pdp7_rf.o pdp7_rp.o pdp7_stddev.o pdp7_sys.o scp.o \
	scp_tty.o

PDP8OBJS = pdp8_clk.o pdp8_cpu.o pdp8_lp.o pdp8_mt.o pdp8_pt.o pdp8_rf.o \
		pdp8_rk.o pdp8_rx.o pdp8_sys.o pdp8_tt.o scp.o scp_tty.o

PDP9OBJS = pdp9_cpu.o pdp9_drm.o pdp9_lp.o pdp9_mt.o \
	pdp9_rf.o pdp9_rp.o pdp9_stddev.o pdp9_sys.o scp.o \
	scp_tty.o

PDP11OBJS = pdp11_cpu.o pdp11_fp.o pdp11_lp.o pdp11_rk.o pdp11_rl.o \
		pdp11_rx.o pdp11_stddev.o pdp11_sys.o scp.o scp_tty.o

PDP15OBJS = pdp15_cpu.o pdp15_drm.o pdp15_lp.o pdp15_mt.o \
	pdp15_rf.o pdp15_rp.o pdp15_stddev.o pdp15_sys.o scp.o \
	scp_tty.o

PDP18BOBJS = pdp18b_cpu.o pdp18b_drm.o pdp18b_lp.o pdp18b_mt.o \
	pdp18b_rf.o pdp18b_rp.o pdp18b_stddev.o pdp18b_sys.o scp.o \
	scp_tty.o

all:	nova pdp4 pdp7 pdp8 pdp9 pdp11 pdp15

clean:
	rm -f a.out *.[os] core nova pdp4 pdp7 pdp8 pdp9 pdp11 pdp15

kit:
	@tar -cf pdp_simulators.tar Makefile *.[ch] *.doc *.com

nova:	$(NOVAOBJS)
	$(CC) $(LDFLAGS) -o nova $(NOVAOBJS) -lm

pdp4:
	@rm -f pdp18b*.o
	$(CC) $(CCFLAGS) -DPDP4 -c pdp18b*.c scp*.c
	$(CC) $(LDFLAGS) -DPDP4 -o pdp4 $(PDP18BOBJS) -lm

pdp7:
	@rm -f pdp18b*.o
	$(CC) $(CCFLAGS) -DPDP7 -c pdp18b*.c scp*.c
	$(CC) $(LDFLAGS) -DPDP7 -o pdp7 $(PDP18BOBJS) -lm

pdp8:	$(PDP8OBJS)
	$(CC) $(LDFLAGS) -o pdp8 $(PDP8OBJS) -lm

pdp9:
	@rm -f pdp18b*.o
	$(CC) $(CCFLAGS) -DPDP9 -c pdp18b*.c scp*.c
	$(CC) $(LDFLAGS) -DPDP9 -o pdp9 $(PDP18BOBJS) -lm

pdp11:	$(PDP11OBJS)
	$(CC) $(LDFLAGS) -o pdp11 $(PDP11OBJS)

pdp15:
	@rm -f pdp18b*.o
	$(CC) $(CCFLAGS) -DPDP15 -c pdp18b*.c scp*.c
	$(CC) $(LDFLAGS) -DPDP15 -o pdp15 $(PDP18BOBJS) -lm

.c.s:
	$(CC) $(CCFLAGS) -S $*.c

.c.o:
	$(CC) -c $(CCFLAGS) -DTRUE=1 -DFALSE=0 $*.c

#
# nova modules
#

nova_clk.o: ./nova_defs.h ./sim_defs.h nova_clk.c
nova_cpu.o: ./nova_defs.h ./sim_defs.h nova_cpu.c
nova_dkp.o: ./nova_defs.h ./sim_defs.h nova_dkp.c
nova_dsk.o: ./nova_defs.h ./sim_defs.h nova_dsk.c
nova_lp.o: ./nova_defs.h ./sim_defs.h nova_lp.c
nova_mta.o: ./nova_defs.h ./sim_defs.h nova_mta.c
nova_pt.o: ./nova_defs.h ./sim_defs.h nova_pt.c
nova_sys.o: ./nova_defs.h ./sim_defs.h nova_sys.c
nova_tt.o: ./nova_defs.h ./sim_defs.h nova_tt.c

#
# pdp-8 modules
#

pdp8_clk.o: ./pdp8_defs.h ./sim_defs.h pdp8_clk.c
pdp8_cpu.o: ./pdp8_defs.h ./sim_defs.h pdp8_cpu.c
pdp8_lp.o: ./pdp8_defs.h ./sim_defs.h pdp8_lp.c
pdp8_mt.o: ./pdp8_defs.h ./sim_defs.h pdp8_mt.c
pdp8_pt.o: ./pdp8_defs.h ./sim_defs.h pdp8_pt.c
pdp8_rf.o: ./pdp8_defs.h ./sim_defs.h pdp8_rf.c
pdp8_rk.o: ./pdp8_defs.h ./sim_defs.h pdp8_rk.c
pdp8_rx.o: ./pdp8_defs.h ./sim_defs.h pdp8_rx.c
pdp8_sys.o: ./pdp8_defs.h ./sim_defs.h pdp8_sys.c
pdp8_tt.o: ./pdp8_defs.h ./sim_defs.h pdp8_tt.c

#
# pdp-11 modules
#

pdp11_cpu.o: ./pdp11_defs.h ./sim_defs.h pdp11_cpu.c
pdp11_fp.o: ./pdp11_defs.h ./sim_defs.h pdp11_fp.c
pdp11_lp.o: ./pdp11_defs.h ./sim_defs.h pdp11_lp.c
pdp11_rk.o: ./pdp11_defs.h ./sim_defs.h pdp11_rk.c
pdp11_rl.o: ./pdp11_defs.h ./sim_defs.h pdp11_rl.c
pdp11_rx.o: ./pdp11_defs.h ./sim_defs.h pdp11_rx.c
pdp11_stddev.o: ./pdp11_defs.h ./sim_defs.h pdp11_stddev.c
pdp11_sys.o: ./pdp11_defs.h ./sim_defs.h pdp11_sys.c

#
# Simulator controller modules
#

scp.o: ./sim_defs.h scp.c
scp_tty.o: scp_tty.c ./sim_defs.h
