Merged revisions 309035 via svnmerge from
[asterisk/asterisk.git] / configure.ac
index 9e8a2df..763cd1a 100644 (file)
@@ -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