include config.i

GLEOBJS = \
	gle.o drawit.o pass.o token.o polish.o fn.o $(MEMMOVE) \
	var.o eval.o general.o \
	run.o sub.o font.o core.o name.o keyword.o axis.o graph.o  \
	b_tab.o b_text.o fitbez.o fitcf.o begin.o key.o mychar.o graph2.o \
	memory.o gprint.o edt.o menu.o \
	curve.o tex.o wprintf_do.o \
	unix_extra.o varargs.o unixscr.o unixinkey.o

PSOBJS = d_ps.o 
VTOBJS = d_curses.o easydev.o 
TEKOBJS = d_tek.o easydev.o 
XOBJS = d_x.o 
REGISOBJS = d_regis.o 
HPGLOBJS = d_hpgl.o easydev.o 
DVIOBJS  = d_bmp.o easydev.o

# rules to build gle executables

# varargs didn't work  with GCC on DEC-5400 Mips, so uses native compiler
gleparts: warning gle surface gle_ps gle_vt fbuild makefmt dofonts \
	inittex.ini gle_regis gle_hpgl $(XGLE) gle_tek gle_dvi \
	gle_dviprint graph.idx
	echo

warning:
	more makewarn.h

gle: glecmd.c
	$(CC) -DGLEBINS=\"$(GLE_BINS)\" glecmd.c -o gle $(CFLAGS) $(LIBS)

makeidx: makeidx.c
	$(CC) makeidx.c -o makeidx $(CFLAGS) $(LIBS)

graph.idx: graph.hlp makeidx
	makeidx

surface: surfcmd.c
	$(CC) -DGLEBINS=\"$(GLE_BINS)\" surfcmd.c -o surface $(CFLAGS) $(LIBS)

#-ysymname to trace a symbol
gle_ps: $(PSOBJS) $(GLEOBJS)
	$(CC) -o gle_ps $(CFLAGS) $(GLEOBJS) $(PSOBJS) $(LIBS)

# if this rule is failing, make sure you have define GLE_TOP
# and also delete any old copies of INITTEX.INI
inittex.ini: init.tex
	./gle_ps init.tex

gle_vt: $(VTOBJS) $(GLEOBJS)
	$(CC) -o gle_vt $(CFLAGS) $(GLEOBJS) $(VTOBJS) $(LIBS)

gle_hpgl: $(HPGLOBJS) $(GLEOBJS)
	$(CC) -o gle_hpgl $(CFLAGS) $(GLEOBJS) $(HPGLOBJS) $(LIBS)

gle_tek: $(TEKOBJS) $(GLEOBJS)
	$(CC) -o gle_tek $(CFLAGS) $(GLEOBJS) $(TEKOBJS) $(LIBS)

gle_dvi: $(DVIOBJS) $(GLEOBJS)
	$(CC) -o gle_dvi $(CFLAGS) $(GLEOBJS) $(DVIOBJS) $(LIBS)

gle_x: $(XOBJS) $(GLEOBJS)
	$(CC) -o gle_x $(CFLAGS) $(GLEOBJS) $(XOBJS) $(XLIBS)

gle_regis: $(REGISOBJS) $(GLEOBJS)
	$(CC) -o gle_regis  $(CFLAGS) $(GLEOBJS) $(REGISOBJS) $(LIBS)

gle_dviprint: dvitobit.o bmp.o bmp.h dvivt.o 
	$(CC) -o gle_dviprint $(CFLAGS) dvitobit.o bmp.o dvivt.o -lm -lc

dofonts:
	cd font; $(MAKE); cd ..

doutils:
	cd util/fitls; $(MAKE); cd ../../
	cd util/fitz; $(MAKE); cd ../../
	cd util/manip; $(MAKE); cd ../../
	cd util/letz; $(MAKE); cd ../../
	cd util/contour; $(MAKE); cd ../../
	cd util/surf; $(MAKE); cd ../../

makefmt: makefmt.o parseafm.o parseafm.h
	$(CC) -o makefmt makefmt.o parseafm.o -lm -lc

fbuild: fbuild.o token.o
	$(CC) -o fbuild fbuild.o token.o -lm -lc

gle.o: gle.c glepath.h all.h
	$(CC) -c -DGLEPATH=\"$(GLE_PATH)/\" $(CFLAGS) gle.c

varargs.o: varargs.c
	cc -w -c varargs.c

$(GLEOBJS): \
	all.h axis.h begin.h color.h core.h edt.h \
	font.h glepro.h global.h graph.h justify.h key.h \
	mydev.h mygraph.h tex.h 







