# (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.bin/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) \ -D__{NAME} \ ({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.bin/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?}:.ansi=-D__{NAME}) \ ({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.bin/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.bin/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.bin/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.bin/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.bin/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.bin/em_encode args < prep cond stdout end name opt from .k to .m program {EM}/lib.bin/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.bin/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.bin/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.bin/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.bin/em_decode args < stdout end