CC = CC
CCDEBUG =
I = /usr/include/CC
CFLAGS = ${CCDEBUG} +p
LFLAGS = ${CCDEBUG}

# Target Directories for Installation
LIB_ID = libC
CLIBDIR = /usr/lib			# directory where ${LIB_ID}.a resides
ERRGENDIR = /usr/local/bin
ERRTABDIR = /usr/local/lib

OBJECTS = ErrFac.o dofile.o errgen.o errors.o errtst.o gettok.o

.SUFFIXES: .s ..c

.c.o:
	${CC} ${CFLAGS} -c $<
.c..c:
	${CC} ${CFLAGS} +i -c $<
.c.s:
	${CC} ${CFLAGS} +i -S $<

all: ${ERRTABDIR}/errgen_tab ${OBJECTS} errgen testerrs.h errtst verify

errgen:  ErrFac.o gettok.o dofile.o errgen.o
	${CC} ErrFac.o gettok.o dofile.o errgen.o -o $@ ${LFLAGS}
#	strip errgen

errtst:  errtst.o errors.o testerrs.o
	${CC} errtst.o errors.o testerrs.o -o $@ ${LFLAGS}

testerrs.h: errgen testerrs.err
	-chmod a+w testerrs.[ch]
	./errgen -R${ERRTABDIR} testerrs
	chmod a-w testerrs.[ch]
	${CC} -I. ${CFLAGS} -c testerrs.c

verify: errtst
	./errtst 2>&1 | cmp -s - errtst.v

${ERRTABDIR}/errgen_tab:
	cp errgen_tab ${ERRTABDIR}

install:
	-mkdir ${ERRGENDIR}
	cp errgen ${ERRGENDIR}
	-mkdir ${I}
	cp errlib.h ${I}
	cp errors.h ${I}
	ar rv ${CLIBDIR}/${LIB_ID}.a errors.o
	-cd ${CLIBDIR}; ranlib ${LIB_ID}.a
	
clean:
	-chmod a+w testerrs.[ch]
	-rm -f *.o *..c *..s core errgen errtst testerrs.[ch]

# DO NOT DELETE THIS LINE -- make depend depends on it.

ErrFac.o: ErrFac.h $I/stream.h $I/iostream.h
ErrFac.o: $I/memory.h $I/iomanip.h
ErrFac.o: $I/generic.h $I/stdiostream.h
ErrFac.o: $I/stdio.h $I/errno.h
ErrFac.o: $I/fstream.h errors.h $I/string.h
dofile.o: dofile.h $I/stream.h $I/iostream.h
dofile.o: $I/memory.h $I/iomanip.h
dofile.o: $I/generic.h $I/stdiostream.h
dofile.o: $I/stdio.h $I/errno.h
dofile.o: $I/fstream.h $I/string.h
dofile.o: $I/fcntl.h $I/osfcn.h
dofile.o: $I/sys/types.h /usr/include/sys/sysmacros.h
dofile.o: $I/sys/ptrace.h
errgen.o: $I/stream.h $I/iostream.h
errgen.o: $I/memory.h $I/iomanip.h
errgen.o: $I/generic.h $I/stdiostream.h
errgen.o: $I/stdio.h $I/errno.h
errgen.o: $I/fstream.h $I/string.h
errgen.o: $I/libc.h $I/pwd.h
errgen.o: $I/rand48.h $I/regcmp.h
errgen.o: $I/osfcn.h $I/sys/types.h
errgen.o: /usr/include/sys/sysmacros.h $I/sys/ptrace.h
errgen.o: $I/fcntl.h ErrFac.h errors.h gettok.h dofile.h
errors.o: errors.h $I/stream.h $I/iostream.h
errors.o: $I/memory.h $I/iomanip.h
errors.o: $I/generic.h $I/stdiostream.h
errors.o: $I/stdio.h $I/errno.h
errors.o: $I/fstream.h errlib.h $I/libc.h
errors.o: $I/pwd.h $I/rand48.h
errors.o: $I/regcmp.h $I/string.h
errors.o: $I/stdarg.h
errtst.o: errors.h $I/stream.h $I/iostream.h
errtst.o: $I/memory.h $I/iomanip.h
errtst.o: $I/generic.h $I/stdiostream.h
errtst.o: $I/stdio.h $I/errno.h
errtst.o: $I/fstream.h errlib.h testerrs.h
gettok.o: gettok.h
