123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- # (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
|