|
@@ -0,0 +1,225 @@
|
|
|
+# (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
|
+# $Header$
|
|
|
+#
|
|
|
+# Don't generate line updating code by default (i.e.: -L flag provided to cem).
|
|
|
+# To put it on again: use -NL
|
|
|
+var LFLAG=-L
|
|
|
+var C_INCLUDES=-I{EM}/include/_tail_cc
|
|
|
+var ANSI_C_INCLUDES=-I{EM}/include/tail_ac
|
|
|
+
|
|
|
+callname ack
|
|
|
+name cpp
|
|
|
+ # no from, this is a preprocessor
|
|
|
+ to .i
|
|
|
+ program {EM}/lib/cpp{ANSI_C?}
|
|
|
+ mapflag -I* CPP_F={CPP_F?} -I*
|
|
|
+ mapflag -U* CPP_F={CPP_F?} -U*
|
|
|
+ mapflag -D* CPP_F={CPP_F?} -D*
|
|
|
+ mapflag -P CPP_F={CPP_F?} -P
|
|
|
+ mapflag -C CPP_F={CPP_F?} -C
|
|
|
+ mapflag -wo CPP_F={CPP_F?} -o
|
|
|
+ mapflag -ansi ANSI_C=.ansi
|
|
|
+ args {CPP_F?} ({SUFFIX?}:.ocm=-I{EM}/include/occam) \
|
|
|
+ ({ANSI_C?}:.ansi={SYSINCLUDES?} {ANSI_C_INCLUDES} {INCLUDES?}) \
|
|
|
+ ({ANSI_C?.c}:{SUFFIX}={SYSINCLUDES?} {C_INCLUDES} {INCLUDES?}) \
|
|
|
+ ({ANSI_C?.xx}:.xx=-D{NAME} \
|
|
|
+ -DEM_WSIZE={w} -DEM_PSIZE={p} \
|
|
|
+ -DEM_SSIZE={s} -DEM_LSIZE={l} -DEM_FSIZE={f} -DEM_DSIZE={d}) \
|
|
|
+ -D_EM_WSIZE={w} -D_EM_PSIZE={p} \
|
|
|
+ -D_EM_SSIZE={s} -D_EM_LSIZE={l} -D_EM_FSIZE={f} -D_EM_DSIZE={d} \
|
|
|
+ <
|
|
|
+ stdout
|
|
|
+ prep is
|
|
|
+end
|
|
|
+name cem
|
|
|
+ from .c
|
|
|
+ to .k
|
|
|
+ program {EM}/lib/em_cemcom{ANSI_C?}
|
|
|
+ mapflag -ansi ANSI=ansi
|
|
|
+# mapflag -I* CPP_F={CPP_F?} -I*
|
|
|
+# mapflag -U* CPP_F={CPP_F?} -U*
|
|
|
+# mapflag -D* CPP_F={CPP_F?} -D*
|
|
|
+ mapflag -M* CEM_F={CEM_F?} -M*
|
|
|
+ mapflag -L CEM_F={CEM_F?} -L
|
|
|
+ mapflag -A CEM_F={CEM_F?} -A
|
|
|
+ mapflag -NL LFLAG=
|
|
|
+ mapflag -KR CEM_F={CEM_F?} -R
|
|
|
+ mapflag -w CEM_F={CEM_F?} -w
|
|
|
+ mapflag -wa CEM_F={CEM_F?} -a
|
|
|
+ mapflag -wo CEM_F={CEM_F?} -o
|
|
|
+ mapflag -ws CEM_F={CEM_F?} -s
|
|
|
+ mapflag -g CEM_F={CEM_F?} -g
|
|
|
+ mapflag -p CEM_F={CEM_F?} -p
|
|
|
+ mapflag -V* CEM_F={CEM_F?} -V*
|
|
|
+ rts .c
|
|
|
+ need .c
|
|
|
+ args \
|
|
|
+ {CPP_F?} \
|
|
|
+ {SYSINCLUDES?} \
|
|
|
+ ({ANSI_C?}:.ansi={ANSI_C_INCLUDES}) \
|
|
|
+ ({ANSI_C?.c}:.c={C_INCLUDES}) \
|
|
|
+ {INCLUDES?} \
|
|
|
+ ({ANSI_C?.xx}:.xx=-D{NAME}) \
|
|
|
+ -D_EM_WSIZE={w} -D_EM_PSIZE={p} \
|
|
|
+ -D_EM_SSIZE={s} -D_EM_LSIZE={l} -D_EM_FSIZE={f} -D_EM_DSIZE={d} \
|
|
|
+ -Vw{w}.{w}i{w}.{w}p{p}.{w}f{f}.{w}s{s}.{s}l{l}.{w}d{d}.{w} \
|
|
|
+ {CC_ALIGN?} \
|
|
|
+ {CEM_F?} {LFLAG?} < >
|
|
|
+ callname acc
|
|
|
+ callname cc
|
|
|
+end
|
|
|
+name pc
|
|
|
+ from .p
|
|
|
+ to .k
|
|
|
+ program {EM}/lib/em_pc
|
|
|
+ mapflag -L PC_F={PC_F?} -L
|
|
|
+# mapflag -s PC_F={PC_F?} -s
|
|
|
+ mapflag -_ PC_F={PC_F?} -U
|
|
|
+ mapflag -w PC_F={PC_F?} -w
|
|
|
+ mapflag -V* PC_F={PC_F?} -V*
|
|
|
+ mapflag -M* PC_F={PC_F?} -M*
|
|
|
+# mapflag -i* PC_F={PC_F?} -i*
|
|
|
+ mapflag -A PC_F={PC_F?} -A
|
|
|
+# mapflag -R PC_F={PC_F?} -R
|
|
|
+ mapflag --* PC_F={PC_F?} -*
|
|
|
+#range checks can only be disabled through comments
|
|
|
+ args \
|
|
|
+ -Vw{w}.{w}i{w}.{w}l{l}.{w}p{p}.{w}f{d}.{w}S{w}.{w} \
|
|
|
+ {PC_F?} < > {SOURCE}
|
|
|
+ prep cond
|
|
|
+ rts .p
|
|
|
+ need .p
|
|
|
+ callname apc
|
|
|
+ callname pc
|
|
|
+end
|
|
|
+name m2
|
|
|
+ from .mod.def
|
|
|
+ to .k
|
|
|
+ program {EM}/lib/em_m2
|
|
|
+ mapflag -I* M2_INCL={M2_INCL?} -I*
|
|
|
+ mapflag -L M2_F={M2_F?} -L
|
|
|
+ mapflag -g M2_F={M2_F?} -g
|
|
|
+ mapflag -w* M2_F={M2_F?} -w*
|
|
|
+ mapflag -W* M2_F={M2_F?} -W*
|
|
|
+ mapflag -_ M2_F={M2_F?} -U
|
|
|
+ mapflag -M* M2_F={M2_F?} -M*
|
|
|
+ mapflag -x M2_F={M2_F?} -x
|
|
|
+ mapflag -Xs M2_F={M2_F?} -s
|
|
|
+ mapflag -V* M2_F={M2_F?} -V*
|
|
|
+ mapflag --* M2_F={M2_F?} -*
|
|
|
+ args \
|
|
|
+ {M2_INCL?} -I{EM}/lib/m2 {M2SYSLIB?} \
|
|
|
+ -Vw{w}.{w}i{w}.{w}p{p}.{w}l{l}.{w}f{f}.{w}d{d}.{w} \
|
|
|
+ {M2_ALIGN?} {M2_F?} < >
|
|
|
+ prep cond
|
|
|
+ rts .mod
|
|
|
+ need .mod
|
|
|
+ callname m2
|
|
|
+end
|
|
|
+name ocm
|
|
|
+ from .ocm
|
|
|
+ to .k
|
|
|
+ program {EM}/lib/em_occam
|
|
|
+ mapflag -L OCM_F={OCM_F?} -L
|
|
|
+ mapflag -V* OCM_F={OCM_F?} -V*
|
|
|
+ args -Vw{w}p{p}l{l} {OCM_F?}
|
|
|
+ stdin
|
|
|
+ stdout
|
|
|
+ rts .ocm
|
|
|
+ need .ocm
|
|
|
+ prep cond
|
|
|
+ callname ocm
|
|
|
+end
|
|
|
+name abc
|
|
|
+ from .b
|
|
|
+ to .k
|
|
|
+ program {EM}/lib/em_bem
|
|
|
+ mapflag -h ABC_F={ABC_F?} -h
|
|
|
+ mapflag -w ABC_F={ABC_F?} -w
|
|
|
+ mapflag -L ABC_F={ABC_F?} -L
|
|
|
+ mapflag -E ABC_F={ABC_F?} -E
|
|
|
+# mapflag -d ABC_F={ABC_F?} -d
|
|
|
+ args -Vw{w}p{p}f{d} {ABC_F?} < > {SOURCE}
|
|
|
+ prep cond
|
|
|
+ rts .b
|
|
|
+ need .b
|
|
|
+ callname abc
|
|
|
+end
|
|
|
+var A68INIT={EM}/lib/em_a68s_init
|
|
|
+name a68s
|
|
|
+ from .8.a68
|
|
|
+ to .k
|
|
|
+ program {EM}/lib/em_a68s{w}{p}
|
|
|
+ mapflag -PA* A68INIT=*
|
|
|
+ args < > {SOURCE}.lst {A68INIT}{w}{p} /dev/null
|
|
|
+ prep cond
|
|
|
+ rts .8
|
|
|
+ need .8
|
|
|
+ callname a68s
|
|
|
+end
|
|
|
+name encode
|
|
|
+ from .e
|
|
|
+ to .k
|
|
|
+ program {EM}/lib/em_encode
|
|
|
+ args <
|
|
|
+ prep cond
|
|
|
+ stdout
|
|
|
+end
|
|
|
+name opt
|
|
|
+ from .k
|
|
|
+ to .m
|
|
|
+ program {EM}/lib/em_opt
|
|
|
+ mapflag -LIB OPT_F={OPT_F?} -L
|
|
|
+ args {OPT_F?} <
|
|
|
+ stdout
|
|
|
+ optimizer
|
|
|
+end
|
|
|
+name ego
|
|
|
+ from .m.ma
|
|
|
+ to .gk
|
|
|
+ program {EM}/lib/em_ego
|
|
|
+ mapflag -EGO-* EGO_F={EGO_F?} -*
|
|
|
+# The following lines are obsolete, but here for backwards compatibility.
|
|
|
+# They should be removed some day.
|
|
|
+ mapflag -IL* EGO_F={EGO_F?} -IL*
|
|
|
+ mapflag -CS* EGO_F={EGO_F?} -CS*
|
|
|
+ mapflag -SR* EGO_F={EGO_F?} -SR*
|
|
|
+ mapflag -UD* EGO_F={EGO_F?} -UD*
|
|
|
+ mapflag -LV* EGO_F={EGO_F?} -LV*
|
|
|
+ mapflag -SA* EGO_F={EGO_F?} -RA*
|
|
|
+ mapflag -SP* EGO_F={EGO_F?} -SP*
|
|
|
+ mapflag -BO* EGO_F={EGO_F?} -BO*
|
|
|
+ mapflag -CJ* EGO_F={EGO_F?} -CJ*
|
|
|
+ mapflag -EV EGO_F={EGO_F?} -V
|
|
|
+# End of obsolete lines
|
|
|
+ mapflag -Q* EGO_F={EGO_F?} -Q*
|
|
|
+ mapflag -T* EGO_F={EGO_F?} -T*
|
|
|
+ mapflag -S* EGO_F={EGO_F?} -S*
|
|
|
+ mapflag -s* EGO_F={EGO_F?} -s*
|
|
|
+ mapflag -a EGO_F={EGO_F?} -a
|
|
|
+ mapflag -O* EGO_F={EGO_F?} -O*
|
|
|
+ args \
|
|
|
+ {EGO_F?} -P {EM}/lib/ego \
|
|
|
+ -M{EM}/lib/ego/{M}descr <
|
|
|
+ optimizer 2
|
|
|
+ stdout
|
|
|
+ combiner
|
|
|
+end
|
|
|
+name opt2
|
|
|
+ # output of the global optimizer is processed by a stripped version
|
|
|
+ # of the em peephole optimizer
|
|
|
+ from .gk
|
|
|
+ to .g
|
|
|
+ program {EM}/lib/em_opt2
|
|
|
+# mapflag -LIB OPT_F={OPT_F?} -L
|
|
|
+ args {OPT_F?} <
|
|
|
+ optimizer
|
|
|
+ stdout
|
|
|
+end
|
|
|
+name decode
|
|
|
+ from .k.m.g.gk
|
|
|
+ to .e
|
|
|
+ program {EM}/lib/em_decode
|
|
|
+ args <
|
|
|
+ stdout
|
|
|
+end
|