</$objtype/mkfile cpuobjtype=`{sed -n 's/^O=//p' /$cputype/mkfile} BIN=/$objtype/binTARG=slCFLAGS=$CFLAGS -p -Isrc -I3rd -I3rd/brieflz -I3rd/pcg-c -Isrc/plan9 \ -D__plan9__ -D__${objtype}__ \ -DNDEBUG \ CLEANFILES=src/plan9/sl.boot.s src/plan9/builtin_fns.h HFILES=\ src/inc/arith.h\ src/inc/bitvector.h\ src/inc/cc.h\ src/inc/cvalues.h\ src/inc/equal.h\ src/inc/hashing.h\ src/inc/htable.h\ src/inc/htable_c.h\ src/inc/htable_h.h\ src/inc/ieee754.h\ src/inc/io.h\ src/inc/ios.h\ src/inc/mem.h\ src/inc/nan.h\ src/inc/opcodes.h\ src/inc/operators.h\ src/inc/overflow.h\ src/inc/print.h\ src/inc/priv.h\ src/inc/process.h\ src/inc/read.h\ src/inc/sl.h\ src/inc/str.h\ src/inc/table.h\ src/inc/time.h\ src/inc/types.h\ src/plan9/lsd.h\ src/plan9/platform.h\ OFILES=\ 3rd/brieflz/brieflz.$O\ 3rd/brieflz/depacks.$O\ 3rd/pcg-c/pcg-advance-8.$O\ 3rd/pcg-c/pcg-advance-16.$O\ 3rd/pcg-c/pcg-advance-32.$O\ 3rd/pcg-c/pcg-advance-64.$O\ 3rd/pcg-c/pcg32x2.$O\ 3rd/fn.$O\ 3rd/iswprint.$O\ 3rd/spooky.$O\ 3rd/tbl.$O\ 3rd/trunc.$O\ 3rd/wcwidth.$O\ src/bcc_null.$O\ src/bitvector.$O\ src/builtins.$O\ src/compress.$O\ src/cvalues.$O\ src/equal.$O\ src/hashing.$O\ src/htable.$O\ src/io.$O\ src/ios.$O\ src/nan.$O\ src/opcodes.$O\ src/operators.$O\ src/plan9/clz`{test -f src/plan9/clz_$objtype.s && echo -n _$objtype}.$O\ src/plan9/lsd.$O\ src/plan9/popcount`{test -f src/plan9/popcount_$objtype.s && echo -n _$objtype}.$O\ src/plan9/sl.boot.$O\ src/plan9/sys.$O\ src/print.$O\ src/process.$O\ src/ptrhash.$O\ src/random.$O\ src/read.$O\ src/sl.$O\ src/slmain.$O\ src/slmath.$O\ src/str.$O\ src/table.$O\ src/types.$O\ src/vm_jmptbl.$O\ default:V: all </sys/src/cmd/mkone CFILES=${OFILES:%.$O=%.c} src/plan9/builtin_fns.h:D: awk -F '[()]' '\ /^sl_.*fn/ {attr=$1; next} \ /^_Noreturn/ {attr=$1; next} \ /^BUILTIN[_]?/ {printf "BUILTIN_FN(%s, %s)\n", $2, attr} \ {attr=""}' \ `{ls $CFILES >[2]/dev/null} | sort >$target OFILES_lzpack=\ 3rd/brieflz/brieflz_lzpack.$O\ 3rd/brieflz/depacks_lzpack.$O\ tools/lzpack_lzpack.$O \ CFILES_lzpack=${OFILES_lzpack:%_lzpack.$O=%.c} tools/$cpuobjtype.lzpack: $CFILES_lzpack objtype=$cputype mk lzpack.$cputype lzpack.$cputype:V: $OFILES_lzpack $LD $LDFLAGS -o tools/$O.lzpack $OFILES_lzpack src/plan9/sl.boot.s:D: boot/sl.boot tools/$cpuobjtype.lzpack tools/$cpuobjtype.lzpack < boot/sl.boot | aux/data2s boot >$target %_lzpack.$O: %.c $CC $CFLAGS -o $target $stem.c %.$O: %.c $CC $CFLAGS -o $target $stem.c %.$O: %.s $AS $CFLAGS -o $target $stem.s %.$O: src/plan9/builtin_fns.h bootstrap:V: $O.out cd src && \ ../$O.out ../tools/gen.sl && \ cp ../boot/sl.boot ../boot/sl.boot.bak && \ ../$O.out ../tools/mkboot0.sl builtins.sl instructions.sl system.sl compiler.sl > ../boot/sl.boot.0 && \ cd ../boot && \ ../$O.out -B sl.boot.0 ../tools/mkboot1.sl && \ rm -f sl.boot.0 && \ sed 's/^ +//g' <sl.boot >sl.boot.cut && \ mv sl.boot.cut sl.boot && \ cd .. && \ mk clean:V: rm -f */*/*.[$OS] */*.[$OS] [$OS].out tools/[$OS].lzpack *.acid $TARG $CLEANFILES nuke:V: mk clean lsd:V: cp src/plan9/lsd.sl /rc/bin/lsd
</$objtype/mkfile
cpuobjtype=`{sed -n 's/^O=//p' /$cputype/mkfile}
BIN=/$objtype/bin
TARG=sl
CFLAGS=$CFLAGS -p -Isrc -I3rd -I3rd/brieflz -I3rd/pcg-c -Isrc/plan9 \
-D__plan9__ -D__${objtype}__ \
-DNDEBUG \
CLEANFILES=src/plan9/sl.boot.s src/plan9/builtin_fns.h
HFILES=\
src/inc/arith.h\
src/inc/bitvector.h\
src/inc/cc.h\
src/inc/cvalues.h\
src/inc/equal.h\
src/inc/hashing.h\
src/inc/htable.h\
src/inc/htable_c.h\
src/inc/htable_h.h\
src/inc/ieee754.h\
src/inc/io.h\
src/inc/ios.h\
src/inc/mem.h\
src/inc/nan.h\
src/inc/opcodes.h\
src/inc/operators.h\
src/inc/overflow.h\
src/inc/print.h\
src/inc/priv.h\
src/inc/process.h\
src/inc/read.h\
src/inc/sl.h\
src/inc/str.h\
src/inc/table.h\
src/inc/time.h\
src/inc/types.h\
src/plan9/lsd.h\
src/plan9/platform.h\
OFILES=\
3rd/brieflz/brieflz.$O\
3rd/brieflz/depacks.$O\
3rd/pcg-c/pcg-advance-8.$O\
3rd/pcg-c/pcg-advance-16.$O\
3rd/pcg-c/pcg-advance-32.$O\
3rd/pcg-c/pcg-advance-64.$O\
3rd/pcg-c/pcg32x2.$O\
3rd/fn.$O\
3rd/iswprint.$O\
3rd/spooky.$O\
3rd/tbl.$O\
3rd/trunc.$O\
3rd/wcwidth.$O\
src/bcc_null.$O\
src/bitvector.$O\
src/builtins.$O\
src/compress.$O\
src/cvalues.$O\
src/equal.$O\
src/hashing.$O\
src/htable.$O\
src/io.$O\
src/ios.$O\
src/nan.$O\
src/opcodes.$O\
src/operators.$O\
src/plan9/clz`{test -f src/plan9/clz_$objtype.s && echo -n _$objtype}.$O\
src/plan9/lsd.$O\
src/plan9/popcount`{test -f src/plan9/popcount_$objtype.s && echo -n _$objtype}.$O\
src/plan9/sl.boot.$O\
src/plan9/sys.$O\
src/print.$O\
src/process.$O\
src/ptrhash.$O\
src/random.$O\
src/read.$O\
src/sl.$O\
src/slmain.$O\
src/slmath.$O\
src/str.$O\
src/table.$O\
src/types.$O\
src/vm_jmptbl.$O\
default:V: all
</sys/src/cmd/mkone
CFILES=${OFILES:%.$O=%.c}
src/plan9/builtin_fns.h:D:
awk -F '[()]' '\
/^sl_.*fn/ {attr=$1; next} \
/^_Noreturn/ {attr=$1; next} \
/^BUILTIN[_]?/ {printf "BUILTIN_FN(%s, %s)\n", $2, attr} \
{attr=""}' \
`{ls $CFILES >[2]/dev/null} | sort >$target
OFILES_lzpack=\
3rd/brieflz/brieflz_lzpack.$O\
3rd/brieflz/depacks_lzpack.$O\
tools/lzpack_lzpack.$O \
CFILES_lzpack=${OFILES_lzpack:%_lzpack.$O=%.c}
tools/$cpuobjtype.lzpack: $CFILES_lzpack
objtype=$cputype
mk lzpack.$cputype
lzpack.$cputype:V: $OFILES_lzpack
$LD $LDFLAGS -o tools/$O.lzpack $OFILES_lzpack
src/plan9/sl.boot.s:D: boot/sl.boot tools/$cpuobjtype.lzpack
tools/$cpuobjtype.lzpack < boot/sl.boot | aux/data2s boot >$target
%_lzpack.$O: %.c
$CC $CFLAGS -o $target $stem.c
%.$O: %.c
$CC $CFLAGS -o $target $stem.c
%.$O: %.s
$AS $CFLAGS -o $target $stem.s
%.$O: src/plan9/builtin_fns.h
bootstrap:V: $O.out
cd src && \
../$O.out ../tools/gen.sl && \
cp ../boot/sl.boot ../boot/sl.boot.bak && \
../$O.out ../tools/mkboot0.sl builtins.sl instructions.sl system.sl compiler.sl > ../boot/sl.boot.0 && \
cd ../boot && \
../$O.out -B sl.boot.0 ../tools/mkboot1.sl && \
rm -f sl.boot.0 && \
sed 's/^ +//g' <sl.boot >sl.boot.cut && \
mv sl.boot.cut sl.boot && \
cd .. && \
mk
clean:V:
rm -f */*/*.[$OS] */*.[$OS] [$OS].out tools/[$OS].lzpack *.acid $TARG $CLEANFILES
nuke:V:
mk clean
lsd:V:
cp src/plan9/lsd.sl /rc/bin/lsd