[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Bison 3.5.91 with older Flex
From: |
Bruno Haible |
Subject: |
Bison 3.5.91 with older Flex |
Date: |
Sun, 03 May 2020 01:14:14 +0200 |
User-agent: |
KMail/5.1.3 (Linux/4.4.0-177-generic; KDE/5.18.0; x86_64; ; ) |
When a flex version < 2.6.4 is in $PATH, bison fails to build.
More precisely, the configuration fails:
...
checking for flex... flex
checking whether lex is flex... yes
checking lex output file root... lex.yy
checking lex library... -lfl
checking whether yytext is a pointer... yes
...
config.status: executing tests/atconfig commands
LEX examples/c/reccalc/scan.stamp
flex: unknown flag '-'. For usage, try
flex --help
gmake: *** [Makefile:9998: examples/c/reccalc/scan.stamp] Error 1
LEX examples/c/reccalc/scan.stamp
flex: unknown flag '-'. For usage, try
flex --help
gmake: *** [Makefile:9998: examples/c/reccalc/scan.stamp] Error 1
$ flex --version
flex version 2.5.4
$ grep -i flex config.status
S["FLEX_CXX_WORKS_FALSE"]="#"
S["FLEX_CXX_WORKS_TRUE"]=""
S["FLEX_WORKS_FALSE"]="#"
S["FLEX_WORKS_TRUE"]=""
S["LEX_IS_FLEX"]="true"
S["LEX"]="flex"
S["FLEX_SCANNER_CXXFLAGS"]=""
I don't know what the flex command is that the config.status attempts to
execute (because you chose to hide it). Most probably it contains options
that flex 2.5.4 does not understand.
$ flex --help
flex [-bcdfhilnpstvwBFILTV78+? -C[aefFmr] -ooutput -Pprefix -Sskeleton]
[--help --version] [file ...]
-b generate backing-up information to lex.backup
-c do-nothing POSIX option
-d turn on debug mode in generated scanner
-f generate fast, large scanner
-h produce this help message
-i generate case-insensitive scanner
-l maximal compatibility with original lex
-n do-nothing POSIX option
-p generate performance report to stderr
-s suppress default rule to ECHO unmatched text
-t write generated scanner on stdout instead of lex.yy.c
-v write summary of scanner statistics to f
-w do not generate warnings
-B generate batch scanner (opposite of -I)
-F use alternative fast scanner representation
-I generate interactive scanner (opposite of -B)
-L suppress #line directives in scanner
-T flex should run in trace mode
-V report flex version
-7 generate 7-bit scanner
-8 generate 8-bit scanner
-+ generate C++ scanner class
-? produce this help message
-C specify degree of table compression (default is -Cem):
-Ca trade off larger tables for better memory alignment
-Ce construct equivalence classes
-Cf do not compress scanner tables; use -f representation
-CF do not compress scanner tables; use -F representation
-Cm construct meta-equivalence classes
-Cr use read() instead of stdio for scanner input
-o specify output filename
-P specify scanner prefix other than "yy"
-S specify skeleton file
--help produce this help message
--version report flex version
$ cd examples/c/reccalc/
$ grep -i flex Makefile local.mk
Makefile:FLEX = flex
Makefile: $(FLEX) $(FLEXFLAGS) -o$*.c --header-file=$*.h $<
local.mk:if FLEX_WORKS
local.mk:endif FLEX_WORKS
Apparently the --header-file option is not supported.
Indeed: https://github.com/westes/flex/blob/master/NEWS
shows that the option --header was introduced in version 2.5.6.
And
https://github.com/westes/flex/commit/56a530abf7e16ce35ea36748ff2e86f2f0022bc2
shows that the option --header-file was introduced in version 2.6.4.
Bruno
- Bison 3.5.91 with older Flex,
Bruno Haible <=