# 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
+ 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) \
- ({SUFFIX}:.c={INCLUDES?}) \
+ ({ANSI_C?}:.ansi={ANSI_C_INCLUDES} {INCLUDES?}) \
+ ({ANSI_C?.c}:{SUFFIX}={C_INCLUDES} {INCLUDES?}) \
-D{NAME} \
- -DEM_WSIZE={w} -DEM_PSIZE={p} \
- -DEM_SSIZE={s} -DEM_LSIZE={l} -DEM_FSIZE={f} -DEM_DSIZE={d} \
+ ({ANSI_C?.xx}:.xx=-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} \
<
name cem
from .c
to .k
- program {EM}/lib/em_cemcom
+ 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?} {INCLUDES?} \
+ {CPP_F?} \
+ ({ANSI_C?}:.ansi={ANSI_C_INCLUDES}) \
+ ({ANSI_C?.c}:.c={C_INCLUDES}) \
+ {INCLUDES?} \
-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} \
-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?} < >
- rts .c
- need .c
callname acc
callname cc
end
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 -a EGO_F={EGO_F?} -a
mapflag -O* EGO_F={EGO_F?} -O*
args \
{EGO} {EM} {EGO_F?} -P {EM}/lib/ego \
var PLIB=lib/{M}/tail_
var PRT=lib/{M}/head_
var CPP_F=-Dunix -Dm68k -Dmc68000 -DM68020 -Dmc68020 -D__BSD4_2
-var INCLUDES=-I{EM}/include/_tail_cc
var CC_ALIGN=-Vw4.1
# 413 align is the default, rom in text
var ALIGN=-a0:4 -a1:4 -a2:0x20000 -a3:4 -b0:0x2020
+var C_LIB={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g
+var OLD_C_LIB={C_LIB}
name be
from .m.g
to .s
mapflag -N ALIGN=-a0:4 -a1:4 -a2:4 -a3:4 -b0:0x2000
mapflag -r ALIGN=-a0:4 -a1:0x20000 -a2:4 -a3:4 -b0:0x2020
mapflag -fp LIBFP={EM}/{PLIB}fp
+ mapflag -ansi C_LIB={EM}/{LIB}ac
args {ALIGN} (.e:{HEAD}= {EM}/{RT}em) \
- ({RTS}:.ocm.b.c={EM}/{RT}cc) \
+ ({RTS}:.ocm.b={EM}/{RT}cc) \
+ ({RTS}{ANSI?}:.c={EM}/{RT}cc) \
+ ({RTS}{ANSI?}:.cansi={EM}/{RT}ac) \
({RTS}:.mod={EM}/{RT}m2) \
({RTS}:.p.8={EM}/{PRT}pc) \
-o > < \
(.b:{TAIL}={EM}/{PLIB}bc) \
(.ocm:{TAIL}={EM}/{LIB}ocm) \
(.mod:{TAIL}={EM}/{LIB}m2) \
- (.ocm.b.c:{TAIL}={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g) \
+ (.ocm.b:{TAIL}={OLD_C_LIB}) \
+ (.c:{TAIL}={C_LIB}) \
{LIBFP?} \
(.e:{TAIL}={EM}/{PLIB}em {EM}/{LIB}mon {EM}/lib/{M}/end_em)
linker
var LIB=lib/{M}/tail_
var RT=lib/{M}/head_
var CPP_F=-Dunix -Dvax
-var INCLUDES=-I{EM}/include/_tail_cc
var CC_ALIGN=-Vw4.1
# 413 align is the default, rom in text
var ALIGN=-a0:4 -a1:4 -a2:0x400 -a3:4
+var C_LIB={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g
+var OLD_C_LIB={C_LIB}
name be
from .m.g
to .s
mapflag -l* LNAME={EM}/{LIB}*
mapflag -N ALIGN=-a0:4 -a1:4 -a2:4 -a3:4
mapflag -r ALIGN=-a0:4 -a1:0x400 -a2:4 -a3:4
+ mapflag -ansi C_LIB={EM}/{LIB}ac
args {ALIGN} (.e:{HEAD}= {EM}/{RT}em) \
- ({RTS}:.ocm.b.c={EM}/{RT}cc) \
+ ({RTS}:.ocm.b={EM}/{RT}cc) \
+ ({RTS}{ANSI?}:.c={EM}/{RT}cc) \
+ ({RTS}{ANSI?}:.cansi={EM}/{RT}ac) \
({RTS}:.mod={EM}/{RT}m2) \
({RTS}:.p.8={EM}/{RT}pc) \
-o > < \
(.b:{TAIL}={EM}/{LIB}bc) \
(.ocm:{TAIL}={EM}/{LIB}ocm) \
(.mod:{TAIL}={EM}/{LIB}m2) \
- (.ocm.b.c:{TAIL}={EM}/{LIB}cc.1s {EM}/{LIB}cc.2g) \
+ (.ocm.b:{TAIL}={OLD_C_LIB}) \
+ (.c:{TAIL}={C_LIB}) \
(.e:{TAIL}={EM}/{LIB}em {EM}/{LIB}mon {EM}/lib/{M}/end_em)
linker
end