#!/bin/bash # Build the Oberon-07 syntax validator O07 from oberon07_oberon.atg. # Needs: CR (Coco/R V1.53), gm2 -fiso, parser/scanner frames, FileIO. set -e CR="${CR:-/home/eric/Projets/Projets-Modula2/MyWork/CocoGm2/CR}" GM2="${GM2:-/home/eric/bin/Modula2/Gm2/bin/gm2}" FRAMES="${CRFRAMES:-/home/eric/Projets/Projets-Modula2/MyWork/Theia/GNU-grammar/build}" M2LIB="${M2LIB:-/home/eric/Projets/Projets-Modula2/MyWork/Theia/GNU-grammar/build}" HERE="$(dirname "$0")" B="$HERE/build" rm -rf "$B" mkdir -p "$B" cp "$HERE/oberon07_oberon.atg" "$B/" cp "$M2LIB/FileIO.def" "$M2LIB/FileIO.mod" "$B/" cd "$B" echo "=== CR ==="; CRFRAMES="$FRAMES" "$CR" -m -C oberon07_oberon.atg echo "=== compile ===" for m in FileIO OberonS OberonP; do "$GM2" -fiso -I . -c "$m.mod"; done echo "=== link ===" "$GM2" -fiso -I . -o O07 FileIO.o OberonS.o OberonP.o Oberon.mod echo "=== smoke ===" printf 'MODULE Hello;\nIMPORT Out;\nBEGIN\n Out.String("hi");\n Out.Ln;\nEND Hello.\n' > Hello.Mod ./O07 Hello.Mod rm -f Hello.Mod Hello.LST