75 lines
1.2 KiB
Plaintext
Executable file
75 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
|
|
do
|
|
( cd $i
|
|
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"
|