cc.xenix.src 871 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. trap "rm -f x$$.c" 0 1 2 3 15
  2. EMHOME=/usr/em
  3. CFLAG=0
  4. TARGET=a.out
  5. while :
  6. do
  7. case $# in
  8. 0) break;;
  9. esac
  10. case $1 in
  11. -I*|-D*|-U*)
  12. PREP=$PREP" "$1
  13. ;;
  14. -c) CFLAG=1
  15. ;;
  16. -o) shift
  17. TARGET=$1
  18. ;;
  19. -F) shift
  20. LFLAG="-F $1"
  21. ;;
  22. -*) FLAGS=$FLAGS" "$1
  23. ;;
  24. *) ARG=$ARG" "$1
  25. ;;
  26. esac
  27. shift
  28. done
  29. for i in $ARG
  30. do
  31. case $i in
  32. *.c)
  33. nm=`basename $i .c`
  34. if [ -x $EMHOME/lib/cpp ]
  35. then
  36. cpp=$EMHOME/lib/cpp
  37. cppf=-P
  38. else
  39. cpp=/bin/cc
  40. cppf=-E
  41. fi
  42. if $cpp $cppf $PREP $i > x$$.c && /bin/cc $FLAGS -c x$$.c
  43. then
  44. mv x$$.o $nm.o
  45. LDARG=$LDARG" "$nm.o
  46. else
  47. rm -f x$$.c
  48. exit 1
  49. fi
  50. rm -f x$$.c
  51. ;;
  52. *.s)
  53. if /bin/cc $FLAGS -c $i
  54. then
  55. LDARG=$LDARG" "`basename $i .s`.o
  56. else exit 1
  57. fi
  58. ;;
  59. *) LDARG=$LDARG" "$i
  60. ;;
  61. esac
  62. done
  63. case $CFLAG in
  64. 1) ;;
  65. *) if /bin/cc $FLAGS $LFLAG $LDARG -o $TARGET
  66. then :
  67. else exit 1
  68. fi
  69. ;;
  70. esac