#
# script documenting fixes for flex-2.5.4 and gcc-3.1
-includes="$HOME/usr/include /usr/local/include /usr/include"
+set -e
+
+FLEXLEXER=OK
+
+if [ -z "$FLEXLEXER" ]; then
+
+includes="$HOME/usr/include $PREFIX/include /usr/local/include /usr/include"
for i in $includes; do
file=$i/FlexLexer.h
exit 1
fi
+fi # flexlexer
if [ -n "$CONF" ]; then
CONFIGSUFFIX=-$CONF
- ENABLECONFIG="--enable-config=$CONF"
+ SETCONF="CONF=$CONF "
+ setconf="conf=$CONF "
+ ENABLECONFIG="--enable-config=$CONF "
fi
outdir=out$CONFIGSUFFIX
+if [ -z "$FLEXLEXER" ]; then
+
echo -n "Copying and fixing $file... "
mkdir -p lily/$outdir
rm -f lily/$outdir/FlexLexer.h
-sed -e 's/iostream.h/iostream/' \
- -e 's/\<istream\>/std::istream/' \
- -e 's/\<ostream\>/std::ostream/' \
+perl -p -e 's/iostream.h/iostream/g;' \
+ -e 's/\bistream\b/std::istream/g;' \
+ -e 's/\bostream\b/std::ostream/' \
$file > lily/$outdir/FlexLexer.h
echo "done"
-file=lily/$outdir/lexer.cc
-rm -f $file
-make conf=$CONF -C lily $outdir/lexer.cc || exit 0
+fi # flexlexer
-if [ -f "$file" ]; then
+if [ -f GNUmakefile ]; then
+ file=lily/$outdir/lexer.cc
echo -n "Generating and fixing $file... "
+ rm -f $file
+ make conf=$CONF -C lily $outdir/lexer.cc > /dev/null 2>&1 || true
mv $file $file.orig
- sed -e 's/\<cin\>/std::cin/g' \
- -e 's/\<cout\>/std::cout/g' \
- -e 's/\<cerr\>/std::cerr/g' \
+ perl -p -e 's/\bcin\b/std::cin/g;' \
+ -e 's/\bcout\b/std::cout/g;' \
+ -e 's/\bcerr\b/std::cerr/g' \
$file.orig > $file
echo "done"
fi
Remove config.cache before rerunning ./configure
-Reconfigure doing something like:
+Reconfigure, refix, and make doing something like:
+ rm -f config.cache
CPPFLAGS=-I$(pwd)/lily/$outdir ./configure $ENABLECONFIG
+ $SETCONF$0
+ make $setconf
EOF