# (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands. # $Id$ # # 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 MODULA2_INCLUDES=-I{EM}/share/ack/include/modula2 var OCCAM_INCLUDES=-I{EM}/share/ack/include/occam var C_INCLUDES=-I{EM}/share/ack/include/ansi callname ack name cpp # no from, this is a preprocessor to .i program {EM}/lib/ack/cpp.ansi 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 args {CPP_F?} \ ({SUFFIX?}:.ocm={OCCAM_INCLUDES}) \ -D__{ARCH} -D__{PLATFORM} \ -D__ACK \ {SYSINCLUDES?} \ {C_INCLUDES} \ {INCLUDES?} \ -D{ARCH} \ -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 f77 from .f to .c program {EM}/lib/ack/f2c mapflag -ansi F2_F={F2_F?} -A mapflag -w* F2_F={F2_F?} -w* args \ {F2_F?} stdin stdout prep cond rts .f need .f callname f77 callname f2c end name cem from .c to .k program {EM}/lib/ack/em_cemcom.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?} \ -D__{ARCH} -D__{PLATFORM} \ -D__ACK \ {SYSINCLUDES?} \ {C_INCLUDES} \ {INCLUDES?} \ ({ANSI_C?.xx}:.xx=-D{ARCH} \ -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} \ -Vw{w}.{wa}i{w}.{wa}p{p}.{pa}f{f}.{fa}s{s}.{sa}l{l}.{la}d{d}.{da}x{x}.{xa} \ {CC_ALIGN?} \ {CEM_F?} {LFLAG?} < > callname acc callname cc end name pc from .p to .k program {EM}/lib/ack/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 -g* PC_F={PC_F?} -g # 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/ack/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?} {MODULA2_INCLUDES} {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/ack/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 basic from .bas to .k program {EM}/lib/ack/em_bem mapflag -h BASIC_F={BASIC_F?} -h mapflag -w BASIC_F={BASIC_F?} -w mapflag -L BASIC_F={BASIC_F?} -L mapflag -E BASIC_F={BASIC_F?} -E # mapflag -d BASIC_F={BASIC_F?} -d args -Vw{w}p{p}f{d} {BASIC_F?} < > {SOURCE} prep cond rts .bas need .bas callname basic end var A68INIT={EM}/lib/ack/em_a68s_init name a68s from .8.a68 to .k program {EM}/lib/ack/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 b from .b to .k program {EM}/lib/ack/em_b mapflag -B* ABC_F={ABC_F?} -B* args -i < -o > -w {p} prep cond rts .b need .b callname abc end name encode from .e to .k program {EM}/lib/ack/em_encode args < prep cond stdout end name opt from .k to .m program {EM}/lib/ack/em_opt mapflag -LIB OPT_F={OPT_F?} -L # when running the global optimizer, no multiplication optimization here. mapflag -O2 OPT2_F=-m0 mapflag -O3 OPT2_F=-m0 mapflag -O4 OPT2_F=-m0 args {OPT_F?} {MACHOPT_F?} {OPT2_F?} < stdout optimizer end name ego from .m.ma to .gk program {EM}/lib/ack/em_ego mapflag -EGO-* EGO_F={EGO_F?} -* 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/ack/ego \ {EGO_PLAT_FLAGS?} < 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/ack/em_opt2 # mapflag -LIB OPT_F={OPT_F?} -L args {OPT_F?} {MACHOPT_F?} < optimizer stdout end name decode from .k.m.g.gk to .e program {EM}/lib/ack/em_decode args < stdout end