mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-17 08:13:02 +00:00
examples: beware of the portability of flex --header-file
The option --header was introduced in version 2.5.6. The option --header-file was introduced in version 2.6.4. Reported by Bruno Haible. https://lists.gnu.org/r/bug-bison/2020-05/msg00013.html So use --header, and do bother with versions that don't support it. * m4/flex.m4: Check whether flex supports --header. * configure.ac (FLEX_WORKS, FLEX_CXX_WORKS): Set to false if it doesn't. * * examples/c/reccalc/local.mk, examples/c/reccalc/Makefile: Use --header rather than --header-file.
This commit is contained in:
@@ -261,9 +261,8 @@ if ! "$LEX_IS_FLEX" || test "X$LEX" = X:; then
|
|||||||
AC_MSG_WARN([bypassing lex because flex is required])
|
AC_MSG_WARN([bypassing lex because flex is required])
|
||||||
LEX=:
|
LEX=:
|
||||||
fi
|
fi
|
||||||
AM_CONDITIONAL([FLEX_WORKS], [$LEX_IS_FLEX])
|
AM_CONDITIONAL([FLEX_WORKS], [$LEX_IS_FLEX && $FLEX_SUPPORTS_HEADER_OPT])
|
||||||
AM_CONDITIONAL([FLEX_CXX_WORKS],
|
AM_CONDITIONAL([FLEX_CXX_WORKS], [$LEX_WORKS && test $bison_cv_cxx_works = yes])
|
||||||
[$LEX_IS_FLEX && test $bison_cv_cxx_works = yes])
|
|
||||||
AC_PROG_YACC
|
AC_PROG_YACC
|
||||||
AC_PROG_RANLIB
|
AC_PROG_RANLIB
|
||||||
AC_PROG_GNU_M4
|
AC_PROG_GNU_M4
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ all: $(BASE)
|
|||||||
$(BISON) $(BISONFLAGS) --defines --xml --graph=$*.gv -o $*.c $<
|
$(BISON) $(BISONFLAGS) --defines --xml --graph=$*.gv -o $*.c $<
|
||||||
|
|
||||||
%.c %.h: %.l
|
%.c %.h: %.l
|
||||||
$(FLEX) $(FLEXFLAGS) -o$*.c --header-file=$*.h $<
|
$(FLEX) $(FLEXFLAGS) -o$*.c --header=$*.h $<
|
||||||
|
|
||||||
scan.o: parse.h
|
scan.o: parse.h
|
||||||
parse.o: scan.h
|
parse.o: scan.h
|
||||||
|
|||||||
@@ -69,7 +69,9 @@ DASH = -
|
|||||||
$(AM_V_LEX)rm -f $@ $@.tmp
|
$(AM_V_LEX)rm -f $@ $@.tmp
|
||||||
$(AM_V_at)$(MKDIR_P) %D%
|
$(AM_V_at)$(MKDIR_P) %D%
|
||||||
$(AM_V_at)touch $@.tmp
|
$(AM_V_at)touch $@.tmp
|
||||||
$(AM_V_at)$(LEX) $(AM_LFLAGS) $(LFLAGS) -o%D%/scan.c --header-file=%D%/scan.h $(srcdir)/%D%/scan.l
|
## --header introduced in 2.5.6, renamed as --header-file in 2.6.4.
|
||||||
|
## Backward compatibility ensured since --header is an unambiguous prefix.
|
||||||
|
$(AM_V_at)$(LEX) $(AM_LFLAGS) $(LFLAGS) -o%D%/scan.c --header=%D%/scan.h $(srcdir)/%D%/scan.l
|
||||||
$(AM_V_at)mv $@.tmp $@
|
$(AM_V_at)mv $@.tmp $@
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
16
m4/flex.m4
16
m4/flex.m4
@@ -41,6 +41,22 @@ else
|
|||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([whether flex supports --header=FILE],
|
||||||
|
[ac_cv_prog_lex_supports_header_opt],
|
||||||
|
[if _AC_DO_VAR([LEX --header=conftest.h conftest.l]); then
|
||||||
|
ac_cv_prog_lex_supports_header_opt=yes
|
||||||
|
else
|
||||||
|
ac_cv_prog_lex_supports_header_opt=no
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
if test "$ac_cv_prog_lex_supports_header_opt" = yes; then
|
||||||
|
FLEX_SUPPORTS_HEADER_OPT=true
|
||||||
|
else
|
||||||
|
FLEX_SUPPORTS_HEADER_OPT=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
cat >conftest.l <<_ACEOF[
|
cat >conftest.l <<_ACEOF[
|
||||||
%%
|
%%
|
||||||
a { ECHO; }
|
a { ECHO; }
|
||||||
|
|||||||
Reference in New Issue
Block a user