diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index 9e8a2df81..763cd1a22 100644 --- a/configure.ac +++ b/configure.ac @@ -301,6 +301,47 @@ __EOL__ rm -rf ${tmp} fi ]) +AC_CACHE_CHECK([for flex that ignores fwrite return value], [ac_cv_FLEX_WORKAROUND], [ + if test "x$FLEX" != "x:" ; then + # Create a temporary directory $tmp in $TMPDIR (default /tmp). + # Use mktemp if possible; otherwise fall back on mkdir, + # with $RANDOM to make collisions less likely. + : ${TMPDIR=/tmp} + { + tmp=` + (umask 077 && mktemp -d "$TMPDIR/fooXXXXXX") 2>/dev/null + ` && + test -n "$tmp" && test -d "$tmp" + } || { + tmp=$TMPDIR/foo$$-$RANDOM + (umask 077 && mkdir "$tmp") + } || exit $? + cat >$tmp/test.fl <<__EOL__ +%{ +#include <unistd.h> +#include <stdio.h> +static void yyunput (int c,char *buf_ptr ) __attribute__((unused)); +static int input(void) __attribute__((unused)); +%} + +%% +username printf( "%s", getlogin() ); +__EOL__ + ${FLEX} -o ${tmp}/test.c ${tmp}/test.fl + ${CC} -o ${tmp}/test.o -c ${tmp}/test.c -Wall -Werror >/dev/null 2>&1 + if test -e "${tmp}/test.o"; then + ac_cv_FLEX_WORKAROUND=no + else + ac_cv_FLEX_WORKAROUND=yes + fi + rm -rf ${tmp} + fi + ]) + +if test "x${ac_cv_FLEX_WORKAROUND}" = "xyes"; then + AC_DEFINE([NEED_FLEX_FWRITE_WORKAROUND], 1, [Define to 1 if your system has a version of flex that does not check the return value of fwrite.]) +fi + if test "x${ac_cv_path_BISON2}" = "x" ; then BISON=: PBX_BISON=0 |