#
#  Compiles:
#

OPT = -O -s

MACH = -DUNIX

CFLAGS = $(OPT) $(MACH)

LIBDIR = lib

EXECDIR = /usr/local/bin

EXEC2 = /usr/local/bin

io = mfio.o

common = $(io) syscalls.o misc.o savestr.o wputs.o eputs.o quit.o

all:	general # special

clean:
	rm -f *.o a.out core

general:	$(EXECDIR)/mx80 $(EXECDIR)/meta2tga \
$(EXECDIR)/t4014 $(EXECDIR)/pexpand $(EXECDIR)/psort \
$(EXECDIR)/cv $(EXECDIR)/psmeta $(EXEC2)/plotin \
$(EXECDIR)/imagew $(EXECDIR)/tbar $(EXECDIR)/impress $(EXECDIR)/x11meta \
$(LIBDIR)/libmeta.a $(EXECDIR)/bgraph $(EXECDIR)/igraph \
$(EXECDIR)/dgraph $(EXECDIR)/gcomp $(EXECDIR)/aed5 $(EXECDIR)/plot4

special:	$(EXEC2)/mt160l $(EXEC2)/mt160 $(EXEC2)/mtext \
$(EXEC2)/plotout $(EXEC2)/xmeta $(EXEC2)/okimate

$(EXECDIR)/meta2tga $(EXEC2)/okimate \
$(EXECDIR)/mx80 $(EXECDIR)/t4014 $(EXECDIR)/plotout $(EXECDIR)/x11meta \
$(EXEC2)/mt160l $(EXEC2)/mt160 $(EXECDIR)/pexpand $(EXECDIR)/plot4 \
$(EXECDIR)/psort $(EXECDIR)/imagew $(EXECDIR)/tcurve $(EXEC2)/mtext \
$(EXECDIR)/tscat $(EXECDIR)/plotin $(EXECDIR)/tbar $(EXECDIR)/xmeta \
$(LIBDIR)/libmeta.a $(EXECDIR)/aed5 $(EXECDIR)/psmeta:	$(common)

$(EXEC2)/mt160l:	mt160l.o mplot.o plot.o palloc.o
	cc $(CFLAGS) -o $(EXEC2)/mt160l mt160l.o mplot.o plot.o $(common) \
palloc.o

$(EXEC2)/okimate:	okimate.o mplot.o plot.o palloc.o
	cc $(CFLAGS) -o $(EXEC2)/okimate okimate.o mplot.o plot.o $(common) \
palloc.o

$(EXECDIR)/imagew:	imagew.o mplot.o plot.o palloc.o
	cc $(CFLAGS) imagew.o mplot.o plot.o $(common) \
palloc.o
	cp a.out $(EXECDIR)/imagew

$(EXEC2)/mt160:	mt160.o mplot.o plot.o palloc.o
	cc $(CFLAGS) -o $(EXEC2)/mt160 mt160.o mplot.o plot.o $(common) \
palloc.o

$(EXECDIR)/meta2tga:	meta2tga.o rplot.o plot.o palloc.o
	cc $(CFLAGS) meta2tga.o rplot.o plot.o $(common) \
palloc.o
	cp a.out $(EXECDIR)/meta2tga

$(EXECDIR)/mx80:	mx80.o mplot.o plot.o palloc.o
	cc $(CFLAGS) mx80.o mplot.o plot.o $(common) \
palloc.o
	cp a.out $(EXECDIR)/mx80

$(EXECDIR)/t4014:	plotout.c $(LIBDIR)/lib4014.a
	cc -DFORTEK $(CFLAGS) plotout.c $(common) \
$(LIBDIR)/lib4014.a -lm
	cp a.out $(EXECDIR)/t4014
	rm -f plotout.o

$(EXECDIR)/impress:	impress.o implot.o imPfuncs.o plot.o
	cc $(CFLAGS) impress.o implot.o imPfuncs.o \
plot.o $(common)
	cp a.out $(EXECDIR)/impress

$(EXECDIR)/aed5:	aed5.o
	cc $(CFLAGS) aed5.o $(common)
	cp a.out $(EXECDIR)/aed5

$(EXECDIR)/xmeta:	xmeta.o xplot.o plot.o palloc.o
	cc $(CFLAGS) xmeta.o xplot.o plot.o palloc.o $(common) -lX
	cp a.out $(EXECDIR)/xmeta

$(EXECDIR)/x11meta:	xmeta.o x11plot.o plot.o palloc.o
	cc $(CFLAGS) xmeta.o x11plot.o plot.o palloc.o $(common) -lX11
	cp a.out $(EXECDIR)/x11meta

$(EXECDIR)/psmeta:	psmeta.o psplot.o
	cc $(CFLAGS) psmeta.o psplot.o $(common)
	cp a.out $(EXECDIR)/psmeta

$(EXECDIR)/plotout:	plotout.c
	cc $(CFLAGS) plotout.c $(common) -lplot
	cp a.out $(EXECDIR)/plotout
	rm -f plotout.o

$(EXECDIR)/plotin:	plotin.o primout.o
	cc $(CFLAGS) plotin.o primout.o $(common) -lm
	cp a.out $(EXECDIR)/plotin

$(EXECDIR)/pexpand:	pexpand.o expand.o segment.o palloc.o
	cc $(CFLAGS) pexpand.o expand.o segment.o \
$(common) palloc.o
	cp a.out $(EXECDIR)/pexpand

$(EXECDIR)/psort:	psort.o sort.o palloc.o
	cc $(CFLAGS) psort.o sort.o $(common) palloc.o
	cp a.out $(EXECDIR)/psort

$(EXECDIR)/cv:		cv.o mfio.o cvhfio.o syscalls.o misc.o savestr.o \
wputs.o eputs.o quit.o
	cc $(CFLAGS) cv.o mfio.o cvhfio.o syscalls.o misc.o \
savestr.o wputs.o eputs.o quit.o
	cp a.out $(EXECDIR)/cv

$(EXECDIR)/plot4:	plot4.o primout.o
	cc $(CFLAGS) plot4.o primout.o $(common)
	cp a.out $(EXECDIR)/plot4

$(EXECDIR)/tcurve:	tcurve.o tgraph.o primout.o
	cc $(CFLAGS) tcurve.o tgraph.o primout.o \
$(common) -lm
	cp a.out $(EXECDIR)/tcurve

$(EXECDIR)/tscat:	tscat.o tgraph.o primout.o
	cc $(CFLAGS) tscat.o tgraph.o primout.o \
$(common) -lm
	cp a.out $(EXECDIR)/tscat

$(EXECDIR)/tbar:	tbar.o tgraph.o primout.o
	cc $(CFLAGS) tbar.o tgraph.o primout.o $(common) -lm
	cp a.out $(EXECDIR)/tbar

$(EXEC2)/mtext:	mtext.o primout.o
	cc $(CFLAGS) mtext.o primout.o $(common)
	cp a.out $(EXEC2)/mtext

$(LIBDIR)/libmeta.a:	metacalls.o primout.o progname.o
	ar rc $(LIBDIR)/libmeta.a metacalls.o primout.o \
$(common) progname.o
	-ranlib $(LIBDIR)/libmeta.a

$(LIBDIR)/lib4014.a:
	cd lib4014; make LIBDIR=../$(LIBDIR) install clean

$(EXECDIR)/bgraph:	bgraph.o mgvars.o mgraph.o $(LIBDIR)/libmeta.a \
calexpr.o caldefn.o calfunc.o ealloc.o
	cc $(CFLAGS) bgraph.o mgvars.o mgraph.o \
calexpr.o caldefn.o calfunc.o ealloc.o $(LIBDIR)/libmeta.a -lm
	cp a.out $(EXECDIR)/bgraph

$(EXECDIR)/igraph:	igraph.o mgvars.o mgraph.o $(LIBDIR)/libmeta.a \
calexpr.o caldefn.o calfunc.o cgraph.o ealloc.o gcalc.o
	cc $(CFLAGS) igraph.o mgvars.o mgraph.o \
calexpr.o caldefn.o calfunc.o cgraph.o ealloc.o gcalc.o $(LIBDIR)/libmeta.a -lm
	cp a.out $(EXECDIR)/igraph

$(EXECDIR)/dgraph:	dgraph.o cgraph.o mgvars.o ealloc.o calfunc.o \
calexpr.o caldefn.o savestr.o wputs.o
	cc $(CFLAGS) dgraph.o cgraph.o mgvars.o \
calfunc.o calexpr.o caldefn.o ealloc.o savestr.o wputs.o -lm
	cp a.out $(EXECDIR)/dgraph

$(EXECDIR)/gcomp:	gcomp.o gcalc.o mgvars.o ealloc.o calfunc.o calexpr.o \
caldefn.o wputs.o savestr.o
	cc $(CFLAGS) gcomp.o gcalc.o mgvars.o \
calfunc.o calexpr.o caldefn.o ealloc.o wputs.o savestr.o -lm
	cp a.out $(EXECDIR)/gcomp

calexpr.o:	calexpr.c calcomp.h
	cc $(CFLAGS) -c -DVARIABLE -DFUNCTION -DRCONST calexpr.c

caldefn.o:	caldefn.c calcomp.h
	cc $(CFLAGS) -c -DFUNCTION caldefn.c

calfunc.o:	calfunc.c calcomp.h
	cc $(CFLAGS) -c -DVARIABLE -DBIGLIB calfunc.c

cvhfio.o:	cvhfio.c hfio.c

mgvars.o igraph.o mgraph.o cgraph.o gcalc.o:	mgvars.h

mgraph.o:	mgraph.h

misc.o syscalls.o mfio.o hfio.o cvhfio.o palloc.o segment.o sort.o expand.o \
plot.o mplot.o primout.o tgraph.o mt160l.o mt160.o mx80.o plotout.o \
psort.o pexpand.o cv.o tcurve.o tscat.o mtext.o tbar.o plot4.o \
xmeta.o metacalls.o xplot.o meta2tga.o rplot.o:	meta.h

plot.o mplot.o mt160l.o mt160.o mx80.o xmeta.o xplot.o \
meta2tga.o rplot.o implot.o:	plot.h

mplot.o mt160l.o mt160.o mx80.o:	span.h

tgraph.o tcurve.o tscat.o tbar.o:	tgraph.h

impress.o implot.o imPfuncs.o:	imPfuncs.h

rplot.o meta2tga.o:	rast.h
