diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2020-07-16 10:39:56 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2020-07-16 10:48:09 -0700 |
commit | 29ede6b96feee29c0c477d1659081bbdb82cd8b3 (patch) | |
tree | 798a93f0ea4e64303d1f2c1c9925a49060f61b79 | |
parent | eb4a1d7fafde8e6d00ab0db3ea369c3927754e21 (diff) | |
download | autoconf-29ede6b96feee29c0c477d1659081bbdb82cd8b3.tar.gz |
AC_PROG_LEX no longer sets LEXLIB for yywrap
Suggested by Zack Weinberg in:
https://lists.gnu.org/r/autoconf-patches/2020-07/msg00016.html
* lib/autoconf/programs.m4 (_AC_PROG_LEX_YYTEXT_DECL):
Define yywrap too.
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | doc/autoconf.texi | 13 | ||||
-rw-r--r-- | lib/autoconf/programs.m4 | 5 |
3 files changed, 18 insertions, 4 deletions
@@ -104,6 +104,10 @@ GNU Autoconf NEWS - User visible changes. - AC_PROG_CC_STDC, AC_PROG_CC_C89, AC_PROG_CC_C99 have been marked as obsolete. Applications should use AC_PROG_CC. +- AC_PROG_LEX no longer sets LEXLIB to be nonempty merely to define + the yywrap function. Packages should define yywrap themselves, or + use %noyywrap. + - AC_USE_SYSTEM_EXTENSIONS now enables more extensions on HP-UX, macOS, and MINIX, as well as on systems conforming to recent ISO/IEC C technical reports and specifications. diff --git a/doc/autoconf.texi b/doc/autoconf.texi index 379e3c2f..b8f889cc 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -4177,15 +4177,20 @@ The result of the test can be overridden by setting the variable @cvindex YYTEXT_POINTER @ovindex LEX_OUTPUT_ROOT @caindex prog_LEX -If @code{flex} is found, set output variable @code{LEX} to @samp{flex} -and @code{LEXLIB} to @option{-lfl}, if that library is in a standard -place. Otherwise set @code{LEX} to @samp{lex} and @code{LEXLIB} to -@option{-ll}, if found. If neither variant is available, set @code{LEX} +If @code{flex} is found, set output variable @code{LEX} to @samp{flex}. +Otherwise set @code{LEX} to @samp{lex}, if found. +If neither variant is available, set @code{LEX} to @samp{:}; for packages that ship the generated @file{file.yy.c} alongside the source @file{file.l}, this default allows users without a lexer generator to still build the package even if the timestamp for @file{file.l} is inadvertently changed. +If generated lexers need a library to work, set output variable +@code{LEXLIB} to an option for that library (e.g., @option{-ll}); +otherwise define @code{LEXLIB} to empty. A library that merely defines +@code{main} and @code{yywrap} placeholder functions is not considered +to be needed. + Define @code{YYTEXT_POINTER} if @code{yytext} defaults to @samp{char *} instead of to @samp{char []}. Also set output variable @code{LEX_OUTPUT_ROOT} to the base of the file name that the lexer generates; usually diff --git a/lib/autoconf/programs.m4 b/lib/autoconf/programs.m4 index 4f910fb0..6fd44a3b 100644 --- a/lib/autoconf/programs.m4 +++ b/lib/autoconf/programs.m4 @@ -735,6 +735,11 @@ f { unput (yytext[0]); } extern char *yytext; #endif int +yywrap (void) +{ + return 1; +} +int main (void) { return ! yylex () + ! yywrap (); |