ack/first/fixlexlib

76 lines
1.2 KiB
Plaintext
Executable file

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 ../modules/src/em_opt
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"