Resolve 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. : create a directory Xsrc with name clashes resolved
  2. : and run make in that directory
  3. : '$Header$'
  4. case $# in
  5. 1)
  6. ;;
  7. *) echo "$0: one argument expected" 1>&2
  8. exit 1
  9. ;;
  10. esac
  11. PW=`pwd`
  12. options=
  13. case $1 in
  14. main|emain|lnt)
  15. target=$PW/$1
  16. ;;
  17. omain)
  18. target=$PW/$1
  19. options=-DPEEPHOLE
  20. ;;
  21. cemain)
  22. target=$PW/$1
  23. options=-DCODE_EXPANDER
  24. ;;
  25. Xlint)
  26. target=$1
  27. ;;
  28. *) echo "$0: $1: Illegal argument" 1>&2
  29. exit 1
  30. ;;
  31. esac
  32. if test -d ../Xsrc
  33. then
  34. :
  35. else mkdir ../Xsrc
  36. fi
  37. make EMHOME=$EMHOME longnames
  38. : remove code generating routines from the clashes list as they are defines.
  39. : code generating routine names start with C_
  40. sed '/^C_/d' < longnames > tmp$$
  41. cclash -c -l7 tmp$$ > ../Xsrc/Xclashes
  42. rm -f tmp$$
  43. cd ../Xsrc
  44. if cmp -s Xclashes clashes
  45. then
  46. :
  47. else
  48. mv Xclashes clashes
  49. fi
  50. rm -f Makefile
  51. for i in `cat $PW/Cfiles`
  52. do
  53. cat >> Makefile <<EOF
  54. $i: clashes $PW/$i
  55. cid -Fclashes < $PW/$i > $i
  56. EOF
  57. done
  58. make EMHOME=$EMHOME `cat $PW/Cfiles`
  59. rm -f Makefile
  60. ed - $PW/Makefile <<'EOF'
  61. /^#EXCLEXCL/,/^#INCLINCL/d
  62. w Makefile
  63. q
  64. EOF
  65. make EMHOME=$EMHOME COPTIONS=$options MACH=$mach CURRDIR=$PW/ $target