CC = cc -g
CFLAGS= -Iinc

USERDRIVER = clk.o rk11.o
STDDRIVER = reg.o cons.o ltc.o
DRIVERO = $(STDDRIVER) $(USERDRIVER)
DRIVERC = clk.c rk11.c reg.c cons.c ltc.c
ALL = as11 disas11 pdp11 test.o11

DISASO = disas11.o heapsort.o
ASO = as11.o asm-parse.o htable.o copyof.o heapsort.o
PDPO = pdp11.o heapsort.o instrs.o finstrs.o instr-aux.o drivers.o $(DRIVERO)

ASC = as11.c asm-parse.c htable.c copyof.c
PDPC = pdp11.c instrs.c finstrs.c instr-aux.c drivers.c $(DRIVERC)

SHARSRC =\
	README\
	*.doc\
	KDJ11-A KDJ11-A.instrs.byname KDJ11-A.instrs.byvalue\
	Makefile\
	*.fsm\
	*.c\
	*.h\
	*.s11\
	inc

.SUFFIXES: .s11 .l11 .o11

all: $(ALL)

clean:
	rm -f *.o fcvt-exptab-gen fcvt-mantbits-gen

realclean:
	rm -f *.o $(ALL) fcvt-exptab-gen fcvt-exptab fcvt-mantbits-gen fcvt-mantbits

proto:
	proto $(ASC) > as11-proto.h
	proto $(PDPC) > pdp11-proto.h
	
trydist:
	rm -f *.o
	( unset LD_LIBRARY_PATH ; make $(MFLAGS) CC=/bin/cc CFLAGS=-Iinc )

pdp11: $(PDPO)
	$(CC) -o pdp11 $(PDPO) $(TRACE)

as11: fcvt-exptab fcvt-mantbits $(ASO)
	$(CC) -o as11 $(ASO) $(TRACE)

disas11: $(DISASO)
	$(CC) -o disas11 $(DISASO) $(TRACE)

asm-parse.c: asm-parse.fsm
	fsm < asm-parse.fsm > asm-parse.c

pdp11.shar: ALWAYS
	shar -o pdp11.shar -r $(SHARSRC)

aux.shar: ALWAYS
	shar -o aux.shar -C aux -r .

pdp11.shar.Z: pdp11.shar
	compress < pdp11.shar > pdp11.shar.Z

pdp11.shar.Z.btoa: pdp11.shar.Z
	btoa < pdp11.shar.Z > pdp11.shar.Z.btoa

fcvt-exptab: fcvt-exptab-gen
	./fcvt-exptab-gen > fcvt-exptab

fcvt-exptab-gen: fcvt-exptab-gen.o
	$(CC) -o fcvt-exptab-gen fcvt-exptab-gen.o $(TRACE)

fcvt-mantbits: fcvt-mantbits-gen
	./fcvt-mantbits-gen > fcvt-mantbits

fcvt-mantbits-gen: fcvt-mantbits-gen.o
	$(CC) -o fcvt-mantbits-gen fcvt-mantbits-gen.o $(TRACE)

# -M output from some ccs includes a leading ./ on local includes....

./fcvt-exptab: fcvt-exptab

./fcvt-mantbits: fcvt-mantbits

# grrr, some (most? all?) makes don't listen to the dependency on as11 on these next two lines....
# not much to do about it!

.s11.o11: as11
	./as11 -o $*.o11 -l $*.l11 $*.s11

.s11.l11: as11
	./as11 -o $*.o11 -l $*.l11 $*.s11

depend:
	( echo '/^# DO NOT DELETE/+2,$$c' ; \
	  $(CC) -M $(CFLAGS) *.c | sort | uniq ; \
	  echo . ; \
	  echo w ; \
	  echo q ) | ed - Makefile

# DO NOT DELETE THIS LINE

as11.o: ./as11-proto.h
as11.o: ./instrtbl.h
as11.o: ./pdp11types.h
as11.o: /usr/include/ctype.h
as11.o: /usr/include/stdio.h
as11.o: /usr/include/strings.h
as11.o: /usr/include/varargs.h
as11.o: as11.c
as11.o: inc/fsm.h
as11.o: inc/htable.h
as11.o: inc/malloc.h
asm-parse.o: ./instrtbl.h
asm-parse.o: ./pdp11types.h
asm-parse.o: /usr/include/ctype.h
asm-parse.o: asm-parse.c
asm-parse.o: inc/fsm.h
clk.o: ./driver.h
clk.o: ./pdp11.h
clk.o: ./pdp11types.h
clk.o: /usr/include/sys/stdtypes.h
clk.o: /usr/include/sys/time.h
clk.o: /usr/include/time.h
clk.o: clk.c
cons.o: ./driver.h
cons.o: ./pdp11.h
cons.o: ./pdp11types.h
cons.o: /usr/include/fcntl.h
cons.o: /usr/include/sgtty.h
cons.o: /usr/include/signal.h
cons.o: /usr/include/stdio.h
cons.o: /usr/include/sys/fcntlcom.h
cons.o: /usr/include/sys/filio.h
cons.o: /usr/include/sys/ioccom.h
cons.o: /usr/include/sys/ioctl.h
cons.o: /usr/include/sys/signal.h
cons.o: /usr/include/sys/sockio.h
cons.o: /usr/include/sys/stat.h
cons.o: /usr/include/sys/stdtypes.h
cons.o: /usr/include/sys/sysmacros.h
cons.o: /usr/include/sys/ttold.h
cons.o: /usr/include/sys/ttychars.h
cons.o: /usr/include/sys/ttycom.h
cons.o: /usr/include/sys/ttydev.h
cons.o: /usr/include/sys/types.h
cons.o: /usr/include/vm/faultcode.h
cons.o: cons.c
cons.o: inc/signaltype.h
copyof.o: copyof.c
disas11.o: ./disas-common
disas11.o: ./instrtbl.h
disas11.o: ./pdp11types.h
disas11.o: /usr/include/stdio.h
disas11.o: /usr/include/varargs.h
disas11.o: disas11.c
drivers.o: ./driver.h
drivers.o: ./pdp11.h
drivers.o: ./pdp11types.h
drivers.o: drivers.c
fcvt-exptab-gen.o: /usr/include/stdio.h
fcvt-exptab-gen.o: fcvt-exptab-gen.c
fcvt-mantbits-gen.o: fcvt-mantbits-gen.c
finstrs.o: ./pdp11.h
finstrs.o: ./pdp11types.h
finstrs.o: finstrs.c
heapsort.o: heapsort.c
htable.o: /usr/include/stdio.h
htable.o: htable.c
htable.o: inc/malloc.h
instr-aux.o: ./driver.h
instr-aux.o: ./driverint.h
instr-aux.o: ./pdp11.h
instr-aux.o: ./pdp11types.h
instr-aux.o: instr-aux.c
instrs.o: ./driver.h
instrs.o: ./pdp11.h
instrs.o: ./pdp11types.h
instrs.o: instrs.c
lp11.o: ./driver.h
lp11.o: ./pdp11.h
lp11.o: ./pdp11types.h
lp11.o: lp11.c
ltc.o: ./driver.h
ltc.o: ./pdp11.h
ltc.o: ./pdp11types.h
ltc.o: /usr/include/signal.h
ltc.o: /usr/include/sys/signal.h
ltc.o: /usr/include/sys/stdtypes.h
ltc.o: /usr/include/sys/time.h
ltc.o: /usr/include/time.h
ltc.o: /usr/include/vm/faultcode.h
ltc.o: inc/signaltype.h
ltc.o: ltc.c
odt.o: ./driver.h
odt.o: ./driverint.h
odt.o: ./instrtbl.h
odt.o: ./pdp11.h
odt.o: ./pdp11types.h
odt.o: /usr/include/machine/setjmp.h
odt.o: /usr/include/setjmp.h
odt.o: /usr/include/signal.h
odt.o: /usr/include/stdio.h
odt.o: /usr/include/sys/signal.h
odt.o: /usr/include/sys/stdtypes.h
odt.o: /usr/include/vm/faultcode.h
odt.o: inc/signaltype.h
odt.o: odt.c
pdp11.o: ./driver.h
pdp11.o: ./driverint.h
pdp11.o: ./instrs.h
pdp11.o: ./instrtbl.h
pdp11.o: ./pdp11-proto.h
pdp11.o: ./pdp11.h
pdp11.o: ./pdp11types.h
pdp11.o: /usr/include/machine/setjmp.h
pdp11.o: /usr/include/setjmp.h
pdp11.o: /usr/include/signal.h
pdp11.o: /usr/include/stdio.h
pdp11.o: /usr/include/sys/signal.h
pdp11.o: /usr/include/sys/stdtypes.h
pdp11.o: /usr/include/varargs.h
pdp11.o: /usr/include/vm/faultcode.h
pdp11.o: inc/signaltype.h
pdp11.o: pdp11.c
reg.o: ./driver.h
reg.o: ./pdp11.h
reg.o: ./pdp11types.h
reg.o: reg.c
rk11.o: ./driver.h
rk11.o: ./pdp11.h
rk11.o: ./pdp11types.h
rk11.o: /usr/include/sys/fcntlcom.h
rk11.o: /usr/include/sys/file.h
rk11.o: /usr/include/sys/stat.h
rk11.o: /usr/include/sys/stdtypes.h
rk11.o: /usr/include/sys/sysmacros.h
rk11.o: /usr/include/sys/types.h
rk11.o: rk11.c
