With an older bison version (2.3), a testdir for the 'parse-datetime' module exhibits a build failure once the .y file has been modified:
$ make $ cd gllib $ touch *.y $ make : -d ./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 ./parse-datetime.c /bin/bash: Zeile 1: parse-datetime.tab.c: Datei oder Verzeichnis nicht gefunden make: *** [Makefile:1493: parse-datetime.c] Fehler 1 This patch fixes it. (Recall that some people unpack tarballs in ways that assign arbitrary modification dates; they should not need a recent version of bison in order to perform the build.) 2020-05-01 Bruno Haible <[email protected]> parse-datetime: Fix a build failure with an older bison version. * modules/parse-datetime (Makefile.am): Don't do the post-processing of parse-datetime.tab.c if a suitable version of bison was not found. diff --git a/modules/parse-datetime b/modules/parse-datetime index 7571e06..b4375fd 100644 --- a/modules/parse-datetime +++ b/modules/parse-datetime @@ -44,9 +44,11 @@ Makefile.am: # Therefore we override this rule. parse-datetime.c: parse-datetime.y $(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 + && test ':' = '$(PARSE_DATETIME_BISON)' || { \ + 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.tab.c parse-datetime.tab.h parse-datetime.c-t
