1OBJ =	backspace.o close.o dfe.o dolio.o due.o endfile.o err.o \
2	fmt.o fmtlib.o ftell_.o iio.o ilnw.o inquire.o lread.o lwrite.o \
3	open.o rdfmt.o rewind.o rsfe.o rsli.o rsne.o sfe.o sue.o typesize.o \
4	uio.o util.o wref.o wrtfmt.o wsfe.o wsle.o wsne.o xwsne.o
5MISC =  F77_aloc.o main.o s_rnge.o abort_.o getarg_.o iargc_.o \
6	getenv_.o signal_.o s_stop.o s_paus.o system_.o cabs.o\
7	derf_.o derfc_.o erf_.o erfc_.o sig_die.o exit.o
8POW =   pow_ci.o pow_dd.o pow_di.o pow_hh.o pow_ii.o  pow_ri.o pow_zi.o pow_zz.o
9CX =    c_abs.o c_cos.o c_div.o c_exp.o c_log.o c_sin.o c_sqrt.o
10DCX =   z_abs.o z_cos.o z_div.o z_exp.o z_log.o z_sin.o z_sqrt.o
11REAL =  r_abs.o r_acos.o r_asin.o r_atan.o r_atn2.o r_cnjg.o r_cos.o\
12	r_cosh.o r_dim.o r_exp.o r_imag.o r_int.o\
13	r_lg10.o r_log.o r_mod.o r_nint.o r_sign.o\
14	r_sin.o r_sinh.o r_sqrt.o r_tan.o r_tanh.o
15DBL =   d_abs.o d_acos.o d_asin.o d_atan.o d_atn2.o\
16	d_cnjg.o d_cos.o d_cosh.o d_dim.o d_exp.o\
17	d_imag.o d_int.o d_lg10.o d_log.o d_mod.o\
18	d_nint.o d_prod.o d_sign.o d_sin.o d_sinh.o\
19	d_sqrt.o d_tan.o d_tanh.o
20INT =   i_abs.o i_dim.o i_dnnt.o i_indx.o i_len.o i_mod.o i_nint.o i_sign.o
21HALF =  h_abs.o h_dim.o h_dnnt.o h_indx.o h_len.o h_mod.o  h_nint.o h_sign.o
22CMP =   l_ge.o l_gt.o l_le.o l_lt.o hl_ge.o hl_gt.o hl_le.o hl_lt.o
23EFL =   ef1asc_.o ef1cmc_.o
24CHAR =  s_cat.o s_cmp.o s_copy.o
25F90BIT = lbitbits.o lbitshft.o
26
27ALLOBJ = $(OBJ) $(MISC) $(POW) $(CX) $(DCX) $(REAL) $(DBL) $(INT) \
28	$(HALF) $(CMP) $(EFL) $(CHAR) $(F90BIT)
29
30.c.o:
31	$(RM) $@
32	$(CC) -c $*.c $(IFLAGS)
33
34libf2c.a:$(ALLOBJ)
35	$(AR) q libf2c.a $(ALLOBJ)
36	$(RANLIB) libf2c.a
37
38libf2c.so:$(ALLOBJ)
39	$(CC) -shared -fPIC -o libf2c.so $(ALLOBJ)
40
41######################################################################
42
43OBJECTS = Fmain.o init.o gram.o lex.o proc.o equiv.o data.o format.o \
44	expr.o exec.o intr.o io.o misc.o error.o mem.o names.o \
45	output.o p1output.o pread.o put.o putpcc.o vax.o formatdata.o \
46	parse_args.o niceprintf.o cds.o sysdep.o version.o
47
48f2c:$(OBJECTS)
49	$(CC) $(LDFLAGS) $(OBJECTS) -o f2c
50
51gram.c:gram.head gram.dcl gram.expr gram.exec gram.io defs.h tokdefs.h
52	( sed <tokdefs.h "s/#define/%token/" ;\
53		cat gram.head gram.dcl gram.expr gram.exec gram.io ) >gram.in
54	$(YACC) $(YFLAGS) gram.in
55	echo "(expect 4 shift/reduce)"
56	sed 's/^# line.*/\/* & *\//' y.tab.c >gram.c
57	rm -f gram.in y.tab.c
58
59tokdefs.h:tokens
60	grep -n . <tokens | sed "s/\([^:]*\):\(.*\)/#define \2 \1/" >tokdefs.h
61
62clean:
63	$(RM) *.o
64