From 8002ca7b56acb46b42eeac4a343e112a8ee283cf Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 13 Sep 2020 22:03:16 +0200 Subject: [PATCH] parse-datetime: Make the build rule work with parallel 'make'. Reported by Daiki Ueno in . * modules/parse-datetime (Makefile.am): Use a phony target and the general idiom for rules that produce multiple files. --- ChangeLog | 8 ++++++++ modules/parse-datetime | 12 +++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 62e1f17d32..a5c14c45e2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2020-09-13 Bruno Haible + + parse-datetime: Make the build rule work with parallel 'make'. + Reported by Daiki Ueno in + . + * modules/parse-datetime (Makefile.am): Use a phony target and the + general idiom for rules that produce multiple files. + 2020-09-13 Ben Pfaff getpass: Check for nonnull prompt argument while avoiding warnings. diff --git a/modules/parse-datetime b/modules/parse-datetime index 14675194eb..a16b90f7d5 100644 --- a/modules/parse-datetime +++ b/modules/parse-datetime @@ -43,7 +43,10 @@ Makefile.am: # 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 +# Since this is a rule that produces multiple files, we apply the idiom from +# , so that +# it works also in parallel 'make'. +generate-parse-datetime: $(AM_V_YACC)$(PARSE_DATETIME_BISON) -d $(YFLAGS) $(AM_YFLAGS) $(srcdir)/parse-datetime.y \ && test ':' = '$(PARSE_DATETIME_BISON)' || { \ sed -e 's|".*/parse-datetime\.y"|"parse-datetime.y"|' \ @@ -57,6 +60,13 @@ parse-datetime.c: parse-datetime.y && mv parse-datetime.c-tmp $(srcdir)/parse-datetime.c \ && mv parse-datetime-gen.h-tmp $(srcdir)/parse-datetime-gen.h; \ } +.PHONY: generate-parse-datetime +# The above rule will generate files with time stamp order +# parse-datetime.y <= parse-datetime.c <= parse-datetime-gen.h. +parse-datetime.c: parse-datetime.y + @{ test -f $(srcdir)/parse-datetime.c && test ! $(srcdir)/parse-datetime.c -ot $(srcdir)/parse-datetime.y; } || $(MAKE) generate-parse-datetime +parse-datetime-gen.h: parse-datetime.c + @{ test -f $(srcdir)/parse-datetime-gen.h && test ! $(srcdir)/parse-datetime-gen.h -ot $(srcdir)/parse-datetime.c; } || $(MAKE) generate-parse-datetime lib_SOURCES += parse-datetime.y BUILT_SOURCES += parse-datetime.c parse-datetime-gen.h MOSTLYCLEANFILES += parse-datetime.tab.c parse-datetime.tab.h parse-datetime.c-tmp parse-datetime-gen.h-tmp -- 2.11.4.GIT