FL=succes TRIES= case X$# in X0) if (.Xlex) > /dev/null 2>&1 then TRY=`.Xlex` else TRY=-lln fi echo "trying to find your lex library ..." cat > x.l <<'EOF' %% [A-Z] putchar(yytext[0]+'a'-'A'); EOF if lex x.l > /dev/null 2>&1 && cc -c lex.yy.c > /dev/null 2>&1 then : else echo "Sorry, your lex does not seem to work" exit 2 fi cat > trylib <<'EOF' if cc lex.yy.o $1 > /dev/null 2>&1 then rm -f lex.yy.* a.out exit 0 else exit 1 fi EOF if sh trylib $TRY then LEX=$TRY else exec $0 -ll $TRY fi ;; *) if sh trylib $1 then LEX=$1 else TRIES="$2 and $1" FL=fail fi ;; esac case X$FL in Xfail) echo 'What option do I have to give to cc to get the LEX library?' echo "I tried " $TRIES "but these don't seem to work." echo -n 'LEX library option: ' if read ANSWER then : else echo "Sorry, got EOF while reading your answer" exit 9 fi exec $0 $ANSWER "$TRIES" ;; Xsucces) for i in ../util/opt ../util/cgg ../util/ncgg ../lang/occam/comp do ( cd $i cp Makefile makefile ed - makefile << EOF /^LEXLIB/c LEXLIB = $LEX . w q EOF ) done ;; esac rm -f x.l trylib lex.yy.* echo echo "$LEX" > .Xlex chmod +x .Xlex echo "apparently, \"cc ... $LEX\" works"