fixlexlib 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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
  58. do
  59. ( cd $i
  60. ed - Makefile << EOF
  61. /^LEXLIB/c
  62. LEXLIB = $LEX
  63. .
  64. w
  65. q
  66. EOF
  67. )
  68. done
  69. ;;
  70. esac
  71. rm -f x.l trylib lex.yy.*
  72. echo echo "$LEX" > .Xlex
  73. chmod +x .Xlex
  74. echo "apparently, \"cc ... $LEX\" works"