.SUFFIXES:
#Final Form
CFLAGS = -c -O -finline-functions
FFLAGS = -Aw8 -c

#Debugging form
#CFLAGS = -c -g
#FFLAGS = -Aw8 -c

#awk program for fixing the printing of characters stored in integer variables
AWKP = -F, -f awk_program

Ofiles = base.o clause.o comandm.o comqr3.o corth.o eqid.o error.o \
         expr.o factorm.o funs.o getch.o getlin.o getsym.o getval.o \
	 hilber.o htribk.o htridi.o imtql2.o iwamax.o magic.o matfn1.o \
	 matfn2.o matfn3.o matfn4.o matfn5.o matfn6.o matlab.o parse.o \
	 print.o prntid.o putid.o pythag.o rat.o roundm.o rref.o rrot.o \
	 rrotg.o rset.o rswap.o stack1.o stack2.o stackg.o stackp.o sys.o \
	 term.o urand.o wasum.o watan.o waxpy.o wcopy.o wdiv.o wdotci.o \
	 wdotcr.o wdotui.o wdotur.o wgeco.o wgedi.o wgefa.o wgesl.o wlog.o \
	 wmul.o wnrm2.o wpofa.o wqrdc.o wqrsl.o wrscal.o wscal.o wset.o \
	 wsign.o wsqrt.o wsvdc.o wswap.o

matlab:: $(Ofiles)
	cc $(Ofiles) -lf2c -lm -lc -o matlab
 	
base.o :: base.f
	f2c $(FFLAGS) base.f
	cc $(CFLAGS) base.c

clause.o:: clause.f
	f2c $(FFLAGS) clause.f
	cc $(CFLAGS) clause.c

comandm.o:: comandm.f
	cat  comandm.f | f2c $(FFLAGS) | awk $(AWKP) >comandm.c
	cc $(CFLAGS) comandm.c

comqr3.o:: comqr3.f
	f2c $(FFLAGS) comqr3.f
	cc $(CFLAGS) comqr3.c

corth.o:: corth.f
	f2c $(FFLAGS) corth.f
	cc $(CFLAGS) corth.c

eqid.o:: eqid.f
	f2c $(FFLAGS) eqid.f
	cc $(CFLAGS) eqid.c

error.o:: error.f
	cat  error.f | f2c $(FFLAGS) | awk $(AWKP) >error.c
	cc $(CFLAGS) error.c

expr.o:: expr.f
	f2c $(FFLAGS) expr.f
	cc $(CFLAGS) expr.c

factorm.o:: factorm.f
	f2c $(FFLAGS) factorm.f
	cc $(CFLAGS) factorm.c

funs.o:: funs.f
	f2c $(FFLAGS) funs.f
	cc $(CFLAGS) funs.c

getch.o:: getch.f
	f2c $(FFLAGS) getch.f
	cc $(CFLAGS) getch.c

getlin.o:: getlin.f
	cat  getlin.f | f2c $(FFLAGS) | awk $(AWKP) > getlin.c
	cc $(CFLAGS) getlin.c

getsym.o:: getsym.f
	cat  getsym.f | f2c $(FFLAGS) | awk $(AWKP) >getsym.c
	cc $(CFLAGS) getsym.c

getval.o:: getval.f
	f2c $(FFLAGS) getval.f
	cc $(CFLAGS) getval.c

hilber.o:: hilber.f
	f2c $(FFLAGS) hilber.f
	cc $(CFLAGS) hilber.c

htribk.o:: htribk.f
	f2c $(FFLAGS) htribk.f
	cc $(CFLAGS) htribk.c

htridi.o:: htridi.f
	f2c $(FFLAGS) htridi.f
	cc $(CFLAGS) htridi.c

imtql2.o:: imtql2.f
	f2c $(FFLAGS) imtql2.f
	cc $(CFLAGS) imtql2.c

iwamax.o:: iwamax.f
	f2c $(FFLAGS) iwamax.f
	cc $(CFLAGS) iwamax.c

magic.o:: magic.f
	f2c $(FFLAGS) magic.f
	cc $(CFLAGS) magic.c

matfn1.o:: matfn1.f
	f2c $(FFLAGS) matfn1.f
	cc $(CFLAGS) matfn1.c

matfn2.o:: matfn2.f
	f2c $(FFLAGS) matfn2.f
	cc $(CFLAGS) matfn2.c

matfn3.o:: matfn3.f
	f2c $(FFLAGS) matfn3.f
	cc $(CFLAGS) matfn3.c

matfn4.o:: matfn4.f
	f2c $(FFLAGS) matfn4.f
	cc $(CFLAGS) matfn4.c

matfn5.o:: matfn5.f
	cat  matfn5.f | f2c $(FFLAGS) | awk $(AWKP) > matfn5.c
	cc $(CFLAGS) matfn5.c

matfn6.o:: matfn6.f
	f2c $(FFLAGS) matfn6.f
	cc $(CFLAGS) matfn6.c

matlab.o:: matlab.f
	f2c $(FFLAGS) matlab.f
	cc $(CFLAGS) matlab.c

parse.o:: parse.f
	f2c $(FFLAGS) parse.f
	cc $(CFLAGS) parse.c

print.o:: print.f
	cat  print.f | f2c $(FFLAGS) | awk $(AWKP) > print.c
	cc $(CFLAGS) print.c

prntid.o:: prntid.f
	cat  prntid.f | f2c $(FFLAGS) | awk $(AWKP) > prntid.c
	cc $(CFLAGS) prntid.c

putid.o:: putid.f
	f2c $(FFLAGS) putid.f
	cc $(CFLAGS) putid.c

pythag.o:: pythag.f
	f2c $(FFLAGS) pythag.f
	cc $(CFLAGS) pythag.c

rat.o:: rat.f
	f2c $(FFLAGS) rat.f
	cc $(CFLAGS) rat.c

roundm.o:: roundm.f
	f2c $(FFLAGS) roundm.f
	cc $(CFLAGS) roundm.c

rref.o:: rref.f
	f2c $(FFLAGS) rref.f
	cc $(CFLAGS) rref.c

rrot.o:: rrot.f
	f2c $(FFLAGS) rrot.f
	cc $(CFLAGS) rrot.c

rrotg.o:: rrotg.f
	f2c $(FFLAGS) rrotg.f
	cc $(CFLAGS) rrotg.c

rset.o:: rset.f
	f2c $(FFLAGS) rset.f
	cc $(CFLAGS) rset.c

rswap.o:: rswap.f
	f2c $(FFLAGS) rswap.f
	cc $(CFLAGS) rswap.c

stack1.o:: stack1.f
	f2c $(FFLAGS) stack1.f
	cc $(CFLAGS) stack1.c

stack2.o:: stack2.f
	f2c $(FFLAGS) stack2.f
	cc $(CFLAGS) stack2.c

stackg.o:: stackg.f
	f2c $(FFLAGS) stackg.f
	cc $(CFLAGS) stackg.c

stackp.o:: stackp.f
	f2c $(FFLAGS) stackp.f
	cc $(CFLAGS) stackp.c

sys.o:: sys.f
	cat  sys.f | f2c $(FFLAGS) | awk $(AWKP) >sys.c
	cc $(CFLAGS) sys.c

term.o:: term.f
	f2c $(FFLAGS) term.f
	cc $(CFLAGS) term.c

urand.o:: urand.f
	f2c $(FFLAGS) urand.f
	cc $(CFLAGS) urand.c

wasum.o:: wasum.f
	f2c $(FFLAGS) wasum.f
	cc $(CFLAGS) wasum.c

watan.o:: watan.f
	f2c $(FFLAGS) watan.f
	cc $(CFLAGS) watan.c

waxpy.o:: waxpy.f
	f2c $(FFLAGS) waxpy.f
	cc $(CFLAGS) waxpy.c

wcopy.o:: wcopy.f
	f2c $(FFLAGS) wcopy.f
	cc $(CFLAGS) wcopy.c

wdiv.o:: wdiv.f
	f2c $(FFLAGS) wdiv.f
	cc $(CFLAGS) wdiv.c

wdotci.o::wdotci.f
	f2c $(FFLAGS) wdotci.f
	cc $(CFLAGS) wdotci.c

wdotic.o:: wdotic.f
	f2c $(FFLAGS) wdotic.f
	cc $(CFLAGS) wdotic.c

wdotcr.o:: wdotcr.f
	f2c $(FFLAGS) wdotcr.f
	cc $(CFLAGS) wdotcr.c

wdotui.o:: wdotui.f
	f2c $(FFLAGS) wdotui.f
	cc $(CFLAGS) wdotui.c

wdotur.o:: wdotur.f
	f2c $(FFLAGS) wdotur.f
	cc $(CFLAGS) wdotur.c

wgeco.o:: wgeco.f
	f2c $(FFLAGS) wgeco.f
	cc $(CFLAGS) wgeco.c

wgedi.o:: wgedi.f
	f2c $(FFLAGS) wgedi.f
	cc $(CFLAGS) wgedi.c

wgefa.o:: wgefa.f
	f2c $(FFLAGS) wgefa.f
	cc $(CFLAGS) wgefa.c

wgesl.o:: wgesl.f
	f2c $(FFLAGS) wgesl.f
	cc $(CFLAGS) wgesl.c

wlog.o:: wlog.f
	f2c $(FFLAGS) wlog.f
	cc $(CFLAGS) wlog.c

wmul.o:: wmul.f
	f2c $(FFLAGS) wmul.f
	cc $(CFLAGS) wmul.c

wnrm2.o:: wnrm2.f
	f2c $(FFLAGS) wnrm2.f
	cc $(CFLAGS) wnrm2.c

wpofa.o:: wpofa.f
	f2c $(FFLAGS) wpofa.f
	cc $(CFLAGS) wpofa.c

wqrdc.o:: wqrdc.f
	f2c $(FFLAGS) wqrdc.f
	cc $(CFLAGS) wqrdc.c

wqrsl.o:: wqrsl.f
	f2c $(FFLAGS) wqrsl.f
	cc $(CFLAGS) wqrsl.c

wrscal.o:: wrscal.f
	f2c $(FFLAGS) wrscal.f
	cc $(CFLAGS) wrscal.c

wscal.o:: wscal.f
	f2c $(FFLAGS) wscal.f
	cc $(CFLAGS) wscal.c

wset.o:: wset.f
	f2c $(FFLAGS) wset.f
	cc $(CFLAGS) wset.c

wsign.o:: wsign.f
	f2c $(FFLAGS) wsign.f
	cc $(CFLAGS) wsign.c

wsqrt.o:: wsqrt.f
	f2c $(FFLAGS) wsqrt.f
	cc $(CFLAGS) wsqrt.c

wsvdc.o:: wsvdc.f
	f2c $(FFLAGS) wsvdc.f
	cc $(CFLAGS) wsvdc.c

wswap.o:: wswap.f
	f2c $(FFLAGS) wswap.f
	cc $(CFLAGS) wswap.c







