]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
AC_PROG_LEX no longer sets LEXLIB for yywrap
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 16 Jul 2020 17:39:56 +0000 (10:39 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 16 Jul 2020 17:48:09 +0000 (10:48 -0700)
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.

NEWS
doc/autoconf.texi
lib/autoconf/programs.m4

diff --git a/NEWS b/NEWS
index 3c5dfec2e50c826f3df28b3d72d8248a1a7a6b33..dd3b2896f45bd00086c4f5cb73b2218673cdcb08 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -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.
index 379e3c2f3bdc7d0776d59bb28153da133fef2484..b8f889cc2c23661ef5387edf47a90e7fe393dc98 100644 (file)
@@ -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
index 4f910fb0da9caebf066ebb6ec1fc8ec93e8f6513..6fd44a3b0c1d2bc4ea949d04496e5673334f4c00 100644 (file)
@@ -735,6 +735,11 @@ f { unput (yytext[0]); }
 extern char *yytext;
 #endif
 int
+yywrap (void)
+{
+  return 1;
+}
+int
 main (void)
 {
   return ! yylex () + ! yywrap ();