|
|
|
@ -3,25 +3,32 @@ INTERMEDIATE=intermediate.wat
|
|
|
|
|
|
|
|
|
|
read -r -d '' PREAMBLE <<'EOF'
|
|
|
|
|
(module $main
|
|
|
|
|
(import "wasi_unstable" "proc_exit" (func $proc_exit (param i32)))
|
|
|
|
|
|
|
|
|
|
(memory (export "memory") 10)
|
|
|
|
|
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
|
|
read -r -d '' EPILOGUE <<'EOF'
|
|
|
|
|
(memory $memory (export "memory") 10)
|
|
|
|
|
)
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
|
|
# clear file
|
|
|
|
|
> $INTERMEDIATE
|
|
|
|
|
# remove file when done
|
|
|
|
|
trap "err=$?; rm $INTERMEDIATE; exit $err" EXIT
|
|
|
|
|
|
|
|
|
|
# load all sources
|
|
|
|
|
find ./src | grep -e '\.wat$' | xargs cat > $INTERMEDIATE
|
|
|
|
|
|
|
|
|
|
# Separate out imports (must be defined first)
|
|
|
|
|
IMPORT_REGEX='^\(import .*$'
|
|
|
|
|
IMPORTS="$(cat $INTERMEDIATE | grep -E "$IMPORT_REGEX")"
|
|
|
|
|
NONIMPORTS="$(cat $INTERMEDIATE | grep -vE "$IMPORT_REGEX")"
|
|
|
|
|
|
|
|
|
|
# generate file
|
|
|
|
|
echo "$PREAMBLE" >> $INTERMEDIATE
|
|
|
|
|
find ./src | grep -e '\.wat$' | xargs cat | sed 's/^./ &/'>> $INTERMEDIATE
|
|
|
|
|
echo "$PREAMBLE" > $INTERMEDIATE
|
|
|
|
|
echo "" >> $INTERMEDIATE
|
|
|
|
|
echo "$IMPORTS" >> $INTERMEDIATE
|
|
|
|
|
echo "" >> $INTERMEDIATE
|
|
|
|
|
echo "$NONIMPORTS" >> $INTERMEDIATE
|
|
|
|
|
echo "$EPILOGUE" >> $INTERMEDIATE
|
|
|
|
|
|
|
|
|
|
# test file
|
|
|
|
|
wasmer inspect $INTERMEDIATE
|
|
|
|
|
wasmer compile -o ./output.wasmu $INTERMEDIATE
|
|
|
|
|
|
|
|
|
|