1 # (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
2 # $Id: fe,v 1.12 1995/12/04 15:01:07 ceriel Exp $
4 # Don't generate line updating code by default (i.e.: -L flag provided to cem).
5 # To put it on again: use -NL
7 var C_INCLUDES=-I{EM}/include/_tail_cc
8 var ANSI_C_INCLUDES=-I{EM}/include/tail_ac
12 # no from, this is a preprocessor
14 program {EM}/lib.bin/cpp{ANSI_C?}
15 mapflag -I* CPP_F={CPP_F?} -I*
16 mapflag -U* CPP_F={CPP_F?} -U*
17 mapflag -D* CPP_F={CPP_F?} -D*
18 mapflag -P CPP_F={CPP_F?} -P
19 mapflag -C CPP_F={CPP_F?} -C
20 mapflag -wo CPP_F={CPP_F?} -o
21 mapflag -ansi ANSI_C=.ansi
22 args {CPP_F?} ({SUFFIX?}:.ocm=-I{EM}/include/occam) \
26 ({ANSI_C?}:.ansi={ANSI_C_INCLUDES}) \
29 ({ANSI_C?.xx}:.xx=-D{NAME} \
30 -DEM_WSIZE={w} -DEM_PSIZE={p} \
31 -DEM_SSIZE={s} -DEM_LSIZE={l} -DEM_FSIZE={f} -DEM_DSIZE={d}) \
32 -D_EM_WSIZE={w} -D_EM_PSIZE={p} \
33 -D_EM_SSIZE={s} -D_EM_LSIZE={l} -D_EM_FSIZE={f} -D_EM_DSIZE={d} \
41 program {EM}/lib.bin/f2c
42 mapflag -ansi F2_F={F2_F?} -A
43 mapflag -w* F2_F={F2_F?} -w*
57 program {EM}/lib.bin/em_cemcom{ANSI_C?}
58 mapflag -ansi ANSI=ansi
59 # mapflag -I* CPP_F={CPP_F?} -I*
60 # mapflag -U* CPP_F={CPP_F?} -U*
61 # mapflag -D* CPP_F={CPP_F?} -D*
62 mapflag -M* CEM_F={CEM_F?} -M*
63 mapflag -L CEM_F={CEM_F?} -L
64 mapflag -A CEM_F={CEM_F?} -A
66 mapflag -KR CEM_F={CEM_F?} -R
67 mapflag -w CEM_F={CEM_F?} -w
68 mapflag -wa CEM_F={CEM_F?} -a
69 mapflag -wo CEM_F={CEM_F?} -o
70 mapflag -ws CEM_F={CEM_F?} -s
71 mapflag -g* CEM_F={CEM_F?} -g
72 mapflag -p CEM_F={CEM_F?} -p
73 mapflag -V* CEM_F={CEM_F?} -V*
81 ({ANSI_C?}:.ansi={ANSI_C_INCLUDES}) \
84 ({ANSI_C?.xx}:.xx=-D{NAME} \
85 -DEM_WSIZE={w} -DEM_PSIZE={p} \
86 -DEM_SSIZE={s} -DEM_LSIZE={l} -DEM_FSIZE={f} -DEM_DSIZE={d}) \
87 -D_EM_WSIZE={w} -D_EM_PSIZE={p} \
88 -D_EM_SSIZE={s} -D_EM_LSIZE={l} -D_EM_FSIZE={f} -D_EM_DSIZE={d} \
89 -Vw{w}.{w}i{w}.{w}p{p}.{w}f{f}.{w}s{s}.{s}l{l}.{w}d{d}.{w} \
98 program {EM}/lib.bin/em_pc
99 mapflag -L PC_F={PC_F?} -L
100 # mapflag -s PC_F={PC_F?} -s
101 mapflag -_ PC_F={PC_F?} -U
102 mapflag -w PC_F={PC_F?} -w
103 mapflag -V* PC_F={PC_F?} -V*
104 mapflag -M* PC_F={PC_F?} -M*
105 mapflag -g* PC_F={PC_F?} -g
106 # mapflag -i* PC_F={PC_F?} -i*
107 mapflag -A PC_F={PC_F?} -A
108 # mapflag -R PC_F={PC_F?} -R
109 mapflag --* PC_F={PC_F?} -*
110 #range checks can only be disabled through comments
112 -Vw{w}.{w}i{w}.{w}l{l}.{w}p{p}.{w}f{d}.{w}S{w}.{w} \
123 program {EM}/lib.bin/em_m2
124 mapflag -I* M2_INCL={M2_INCL?} -I*
125 mapflag -L M2_F={M2_F?} -L
126 mapflag -g* M2_F={M2_F?} -g*
127 mapflag -w* M2_F={M2_F?} -w*
128 mapflag -W* M2_F={M2_F?} -W*
129 mapflag -_ M2_F={M2_F?} -U
130 mapflag -M* M2_F={M2_F?} -M*
131 mapflag -x M2_F={M2_F?} -x
132 mapflag -Xs M2_F={M2_F?} -s
133 mapflag -V* M2_F={M2_F?} -V*
134 mapflag --* M2_F={M2_F?} -*
136 {M2_INCL?} -I{EM}/lib/m2 {M2SYSLIB?} \
137 -Vw{w}.{w}i{w}.{w}p{p}.{w}l{l}.{w}f{f}.{w}d{d}.{w} \
138 {M2_ALIGN?} {M2_F?} < >
147 program {EM}/lib.bin/em_occam
148 mapflag -L OCM_F={OCM_F?} -L
149 mapflag -V* OCM_F={OCM_F?} -V*
150 args -Vw{w}p{p}l{l} {OCM_F?}
161 program {EM}/lib.bin/em_bem
162 mapflag -h ABC_F={ABC_F?} -h
163 mapflag -w ABC_F={ABC_F?} -w
164 mapflag -L ABC_F={ABC_F?} -L
165 mapflag -E ABC_F={ABC_F?} -E
166 # mapflag -d ABC_F={ABC_F?} -d
167 args -Vw{w}p{p}f{d} {ABC_F?} < > {SOURCE}
173 var A68INIT={EM}/lib.bin/em_a68s_init
177 program {EM}/lib.bin/em_a68s{w}{p}
178 mapflag -PA* A68INIT=*
179 args < > {SOURCE}.lst {A68INIT}{w}{p} /dev/null
188 program {EM}/lib.bin/em_encode
196 program {EM}/lib.bin/em_opt
197 mapflag -LIB OPT_F={OPT_F?} -L
198 # when running the global optimizer, no multiplication optimization here.
199 mapflag -O2 OPT2_F=-m0
200 mapflag -O3 OPT2_F=-m0
201 mapflag -O4 OPT2_F=-m0
202 args {OPT_F?} {MACHOPT_F?} {OPT2_F?} <
209 program {EM}/lib.bin/em_ego
210 mapflag -EGO-* EGO_F={EGO_F?} -*
211 # The following lines are obsolete, but here for backwards compatibility.
212 # They should be removed some day.
213 mapflag -IL* EGO_F={EGO_F?} -IL*
214 mapflag -CS* EGO_F={EGO_F?} -CS*
215 mapflag -SR* EGO_F={EGO_F?} -SR*
216 mapflag -UD* EGO_F={EGO_F?} -UD*
217 mapflag -LV* EGO_F={EGO_F?} -LV*
218 mapflag -SA* EGO_F={EGO_F?} -RA*
219 mapflag -SP* EGO_F={EGO_F?} -SP*
220 mapflag -BO* EGO_F={EGO_F?} -BO*
221 mapflag -CJ* EGO_F={EGO_F?} -CJ*
222 mapflag -EV EGO_F={EGO_F?} -V
223 # End of obsolete lines
224 mapflag -Q* EGO_F={EGO_F?} -Q*
225 mapflag -T* EGO_F={EGO_F?} -T*
226 mapflag -S* EGO_F={EGO_F?} -S*
227 mapflag -s* EGO_F={EGO_F?} -s*
228 mapflag -a EGO_F={EGO_F?} -a
229 mapflag -O* EGO_F={EGO_F?} -O*
231 {EGO_F?} -P {EM}/lib.bin/ego \
232 -M{EM}/lib.bin/ego/{M}descr <
238 # output of the global optimizer is processed by a stripped version
239 # of the em peephole optimizer
242 program {EM}/lib.bin/em_opt2
243 # mapflag -LIB OPT_F={OPT_F?} -L
244 args {OPT_F?} {MACHOPT_F?} <
251 program {EM}/lib.bin/em_decode