# Generic makefile

LIBS = fields.o

all: fields.o printwords goodword badword fields.ps
clean: texclean 
	rm -f *.dvi *.ps *.eps printwords goodword badword *.o *.out

fields.dvi: rexin.eps rexout.eps badout.eps \
            goodword.eps printwords.eps badword.eps fields.eps fields.tex
printwords: printwords.o $(LIBS) fields.h
	$(CC) -o printwords printwords.o $(LIBS)
goodword: goodword.o $(LIBS) fields.h
	$(CC) -o goodword goodword.o $(LIBS)
badword: badword.o $(LIBS) fields.h
	$(CC) -o badword badword.o $(LIBS)

badword.eps: badword.c
	ctojgr badword.c 7 | jgraph > badword.eps
goodword.eps: goodword.c
	ctojgr goodword.c 7 | jgraph > goodword.eps
printwords.eps: printwords.c
	ctojgr printwords.c 7 | jgraph > printwords.eps
fields.eps: fields.h
	ctojgr fields.h 8 | jgraph > fields.eps
rexin.eps: rex.in
	ctojgr rex.in 7 | jgraph > rexin.eps
rexout.eps: rex.out
	ctojgr rex.out 7 | jgraph > rexout.eps
badout.eps: bad.out
	ctojgr bad.out 7 | jgraph > badout.eps
rex.out: printwords rex.in
	echo 'UNIX> printwords rex.in' > rex.out
	printwords rex.in >> rex.out
	echo 'UNIX>' >> rex.out
bad.out: badword rex.in
	echo 'UNIX> badword rex.in' > bad.out
	badword rex.in >> bad.out
	echo 'UNIX>' >> bad.out

.SUFFIXES: .c .o .jgr .eps .tex .dvi .ps 

.c.o: 
	$(CC) -g  -c  $*.c

.jgr.eps:
	jgraph < $*.jgr > $*.eps

.tex.dvi:
	latex $*

texclean:
	rm -f *.aux *.blg *.log

.dvi.ps:
	dvips -o \!cat $*.dvi > $*.ps
