]> Savannah Git Hosting - gnulib.git/commitdiff
parse-datetime: Avoid warnings from bison versions >= 3.3.
authorBruno Haible <bruno@clisp.org>
Fri, 19 Jul 2019 22:51:26 +0000 (00:51 +0200)
committerBruno Haible <bruno@clisp.org>
Fri, 19 Jul 2019 22:51:26 +0000 (00:51 +0200)
Reported by Bernhard Voelker <mail@bernhard-voelker.de>.

* modules/parse-datetime (Makefile.am): Don't pass option '-y' to bison.

ChangeLog
modules/parse-datetime

index f8c1541176ce34ed4c66dfcd8f0e0d76108cf7a6..40d3e6741a9e3eaf1b7e5afad1247fa79f0e9165 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2019-07-19  Bruno Haible  <bruno@clisp.org>
+
+       parse-datetime: Avoid warnings from bison versions >= 3.3.
+       Reported by Bernhard Voelker <mail@bernhard-voelker.de>.
+       * modules/parse-datetime (Makefile.am): Don't pass option '-y' to bison.
+
 2019-07-19  Bruno Haible  <bruno@clisp.org>
 
        parse-datetime: Require Bison 2.4 or newer.
index d54dafd72796749521f4e811d355c43b8f619c43..5ef3264f05d3795046ea2b57cd375e087c84c9f4 100644 (file)
@@ -30,22 +30,26 @@ configure.ac:
 gl_PARSE_DATETIME
 
 Makefile.am:
-# This rule overrides the Automake generated .y.c rule, to ensure that the
-# parse-datetime.c file gets generated in the source directory, not in the
-# build directory.
+# The Automake generated .y.c rule is broken: When executed in a VPATH build,
+#   - The .c file gets generated in the build directory. But since it requires
+#     special tools to rebuild it, we need to distribute it in the tarballs,
+#     and by the GNU Coding Standards
+#     <https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html>
+#     the file should be generated in the source directory.
+#   - The #line numbers in the .c file refer to a nonexistent file once it
+#     has been moved from the build directory to the source directory. This
+#     leads to error if 'lcov' is used later.
+# Additionally, here we assume GNU Bison and therefore don't need the ylwrap
+# script.
+# Therefore we override this rule.
 parse-datetime.c: parse-datetime.y
-       $(AM_V_GEN)$(SHELL) $(YLWRAP) $(srcdir)/parse-datetime.y \
-                                     y.tab.c parse-datetime.c \
-                                     y.tab.h parse-datetime.h \
-                                     y.output parse-datetime.output \
-                                     -- $(PARSE_DATETIME_BISON) -y -d $(YFLAGS) $(AM_YFLAGS) && \
-       sed -e 's|".*/parse-datetime.y"|"parse-datetime.y"|' \
-        < parse-datetime.c > parse-datetime.c-t && \
-       rm -f parse-datetime.c && \
-       mv parse-datetime.c-t $(srcdir)/parse-datetime.c
+       $(AM_V_YACC)$(PARSE_DATETIME_BISON) -d $(YFLAGS) $(AM_YFLAGS) $(srcdir)/parse-datetime.y \
+       && sed -e 's|".*/parse-datetime.y"|"parse-datetime.y"|' < parse-datetime.tab.c > parse-datetime.c-t \
+       && rm -f parse-datetime.tab.c parse-datetime.tab.h \
+       && mv parse-datetime.c-t $(srcdir)/parse-datetime.c
 lib_SOURCES += parse-datetime.y
 BUILT_SOURCES += parse-datetime.c
-MOSTLYCLEANFILES += parse-datetime.c-t
+MOSTLYCLEANFILES += parse-datetime.tab.c parse-datetime.tab.h parse-datetime.c-t
 MAINTAINERCLEANFILES += parse-datetime.c
 EXTRA_DIST += parse-datetime.c