mcc 470 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/bin/sh
  2. DIR=`cd $(dirname $0); pwd`
  3. QBE=$DIR/../qbe
  4. usage()
  5. {
  6. echo "usage: mcc [LDFLAGS] file.c" >&2
  7. exit 1
  8. }
  9. for i
  10. do
  11. case $i in
  12. -*)
  13. flags="$flags $i"
  14. ;;
  15. *)
  16. if ! test -z $file
  17. then
  18. usage
  19. fi
  20. file=$i
  21. ;;
  22. esac
  23. done
  24. if test -z $file
  25. then
  26. usage
  27. fi
  28. $DIR/minic < $file > /tmp/minic.ssa &&
  29. $QBE < /tmp/minic.ssa > /tmp/minic.s &&
  30. cc /tmp/minic.s $flags
  31. if test $? -ne 0
  32. then
  33. echo "error processing file $file" >&2
  34. exit 1
  35. fi