build.sh 1017 B

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