6931ffa5a4
always run. Fix a bug in block skipping in the preprocessor.
241 lines
5.1 KiB
Plaintext
241 lines
5.1 KiB
Plaintext
# (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
|
|
prep always
|
|
args \
|
|
-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.pas
|
|
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} {ABC_F?}
|
|
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
|