>From 3e75e00c40ff97b0b72a22c28e4bb9b8086602fb Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 20 Jul 2019 00:51:26 +0200 Subject: [PATCH 2/2] parse-datetime: Avoid warnings from bison versions >= 3.3. Reported by Bernhard Voelker . * modules/parse-datetime (Makefile.am): Don't pass option '-y' to bison. --- ChangeLog | 6 ++++++ modules/parse-datetime | 30 +++++++++++++++++------------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index f8c1541..40d3e67 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2019-07-19 Bruno Haible + parse-datetime: Avoid warnings from bison versions >= 3.3. + Reported by Bernhard Voelker . + * modules/parse-datetime (Makefile.am): Don't pass option '-y' to bison. + +2019-07-19 Bruno Haible + parse-datetime: Require Bison 2.4 or newer. * m4/parse-datetime.m4 (gl_PARSE_DATETIME): Set PARSE_DATETIME_BISON. Code taken from gettext's intl.m4. diff --git a/modules/parse-datetime b/modules/parse-datetime index d54dafd..5ef3264 100644 --- a/modules/parse-datetime +++ b/modules/parse-datetime @@ -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 +# +# 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 -- 2.7.4