summaryrefslogtreecommitdiff
path: root/modules/parse-datetime
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2019-07-20 00:51:26 +0200
committerBruno Haible <bruno@clisp.org>2019-07-20 00:51:26 +0200
commit3e75e00c40ff97b0b72a22c28e4bb9b8086602fb (patch)
tree800ea8c06f97f2274a05c1a2f0df1a6351bab857 /modules/parse-datetime
parent56d28ccbbc69a7d16f3a4f64288900777623fdf1 (diff)
downloadgnulib-3e75e00c40ff97b0b72a22c28e4bb9b8086602fb.tar.gz
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.
Diffstat (limited to 'modules/parse-datetime')
-rw-r--r--modules/parse-datetime30
1 files changed, 17 insertions, 13 deletions
diff --git a/modules/parse-datetime b/modules/parse-datetime
index d54dafd727..5ef3264f05 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
+# <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