fixlexlib 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. FL=succes
  2. TRIES=
  3. case X$# in
  4. X0)
  5. if (.Xlex) > /dev/null 2>&1
  6. then
  7. TRY=`.Xlex`
  8. else TRY=-lln
  9. fi
  10. echo "trying to find your lex library ..."
  11. cat > x.l <<'EOF'
  12. %%
  13. [A-Z] putchar(yytext[0]+'a'-'A');
  14. EOF
  15. if lex x.l > /dev/null 2>&1 && cc -c lex.yy.c > /dev/null 2>&1
  16. then :
  17. else echo "Sorry, your lex does not seem to work"
  18. exit 2
  19. fi
  20. cat > trylib <<'EOF'
  21. if cc lex.yy.o $1 > /dev/null 2>&1
  22. then
  23. rm -f lex.yy.* a.out
  24. exit 0
  25. else
  26. exit 1
  27. fi
  28. EOF
  29. if sh trylib $TRY
  30. then
  31. LEX=$TRY
  32. else
  33. exec $0 -ll $TRY
  34. fi
  35. ;;
  36. *) if sh trylib $1
  37. then
  38. LEX=$1
  39. else
  40. TRIES="$2 and $1"
  41. FL=fail
  42. fi
  43. ;;
  44. esac
  45. case X$FL in
  46. Xfail) echo 'What option do I have to give to cc to get the LEX library?'
  47. echo "I tried " $TRIES "but these don't seem to work."
  48. echo -n 'LEX library option: '
  49. if read ANSWER
  50. then :
  51. else echo "Sorry, got EOF while reading your answer"
  52. exit 9
  53. fi
  54. exec $0 $ANSWER "$TRIES"
  55. ;;
  56. Xsucces)
  57. for i in ../util/opt ../util/cgg ../util/ncgg ../lang/occam/comp ../modules/src/em_opt ../util/ceg/as_parser
  58. do
  59. ( cd $i
  60. cp Makefile makefile
  61. ed - makefile << EOF
  62. /^LEXLIB/c
  63. LEXLIB = $LEX
  64. .
  65. w
  66. q
  67. EOF
  68. )
  69. done
  70. ;;
  71. esac
  72. rm -f x.l trylib lex.yy.*
  73. echo echo "$LEX" > .Xlex
  74. chmod +x .Xlex
  75. echo "apparently, \"cc ... $LEX\" works"