PC_PATH=/bin/pc
EM1_PATH=/bin/em1
DEBUG_PATH=/bin/edebug
LIB_PATH=/user3/pas/lib/pc_makelib
DEC_PATH=/user3/pas/lib/pc_decode
ENC_PATH=/user3/pas/lib/pc_encode
DECI_PATH=/user3/pas/lib/pc_decode.out
ENCI_PATH=/user3/pas/lib/pc_encode.out

CFLAGS=-O

all:		pcnew em1 pc_makelib edebug \
		pc_decode pc_encode pc_decode.out pc_encode.out

cp:		all cpI cpC

cpI:
		cp pcnew $(PC_PATH)
		cp em1 $(EM1_PATH)
		cp edebug $(DEBUG_PATH)
		cp pc_makelib $(LIB_PATH)
		cp pc_decode.out $(DECI_PATH)
		cp pc_encode.out $(ENCI_PATH)
		rm -f pcboot em1boot
		rm -f pcnew em1 edebug pc_makelib
		rm -f pc_decode.out pc_encode.out

cpC:
		cp pc_decode $(DEC_PATH)
		cp pc_encode $(ENC_PATH)
		rm -f pc_decode pc_encode *.o

cmp:		all
		cmp pcnew $(PC_PATH)
		cmp em1 $(EM1_PATH)
		cmp edebug $(DEBUG_PATH)
		cmp pc_makelib $(LIB_PATH)
		cmp pc_decode.out $(DECI_PATH)
		cmp pc_encode.out $(ENCI_PATH)
		cmp pc_decode $(DEC_PATH)
		cmp pc_encode $(ENC_PATH)
		rm -f pcnew em1 edebug pc_makelib
		rm -f pc_decode.out pc_encode.out
		rm -f pc_decode pc_encode

preboot:	pc_encode.out
		rm -f pc_encode.boot
		mv pc_encode.out pc_encode.boot
		chmod 444 pc_encode.boot

boot0:		printf.o
		rm -f path.h; ln ../h/bootpath.h path.h
		rm -f pcboot.c; ln pc.c pcboot.c
		rm -f em1boot.c; ln em1.c em1boot.c
		cc -n -o pcboot pcboot.c printf.o
		cc -n -o em1boot em1boot.c printf.o
		rm -f pcboot.? em1boot.? path.h

bootIa:		../h/em1.h pc_makelib edebug

bootIb:
		pcboot -I -O --t decode.p -o pc_decode.out
		pcboot -I -O --t encode.p -o pc_encode.out
		cmp pc_encode.out pc_encode.boot

bootC:
		pcboot -C decode.p -o pc_decode
		pcboot -C encode.p -o pc_encode

../h/em1.h: 	mktab ../etc/em1_tables
		mktab <../etc/em1_tables
		cp em1.h ../h; rm -f em1.h

mntab.c: 	mktab ../etc/em1_tables
		mktab -ho <../etc/em1_tables

optab.c: 	mktab ../etc/em1_tables
		mktab -hm <../etc/em1_tables

pc:		pcnew

pcnew:		pc.o printf.o
		cc -n -o pcnew pc.o printf.o

em1:		em1.o printf.o
		cc -n -o em1 em1.o printf.o

pc.o:		pc.c ../h/local.h ../h/path.h
		rm -f path.h; ln ../h/path.h path.h
		cc $(CFLAGS) -c pc.c
		rm -f path.h

em1.o:		em1.c ../h/local.h ../h/path.h
		rm -f path.h; ln ../h/path.h path.h
		cc $(CFLAGS) -c em1.c
		rm -f path.h

mktab:		mktab.o printf.o
		cc -n -o mktab mktab.o printf.o

pc_makelib:	makelib.o printf.o
		cc -n -o pc_makelib makelib.o printf.o

printf.o:	printf.s
		as -o printf.o printf.s

mktab.o:	../h/local.h

makelib.o:	../h/local.h

pc_decode.out:	decode.p
		pc -O --t decode.p -o pc_decode.out

pc_encode.out:	encode.p
		pc -O --t encode.p -o pc_encode.out

pc_decode:	decode.p
		pc -C decode.p -o pc_decode

pc_encode:	encode.p
		pc -C encode.p -o pc_encode

edebug:		edebug.o
		cc -n -o edebug edebug.o
