mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2025-08-08 17:22:05 +03:00
parse-datetime: Make the build rule work with parallel 'make'.
Reported by Daiki Ueno <ueno@gnu.org> in <https://lists.gnu.org/archive/html/bug-gnulib/2020-09/msg00036.html>. * modules/parse-datetime (Makefile.am): Use a phony target and the general idiom for rules that produce multiple files.
This commit is contained in:
@@ -1,3 +1,11 @@
|
|||||||
|
2020-09-13 Bruno Haible <bruno@clisp.org>
|
||||||
|
|
||||||
|
parse-datetime: Make the build rule work with parallel 'make'.
|
||||||
|
Reported by Daiki Ueno <ueno@gnu.org> in
|
||||||
|
<https://lists.gnu.org/archive/html/bug-gnulib/2020-09/msg00036.html>.
|
||||||
|
* modules/parse-datetime (Makefile.am): Use a phony target and the
|
||||||
|
general idiom for rules that produce multiple files.
|
||||||
|
|
||||||
2020-09-13 Ben Pfaff <blp@cs.stanford.edu>
|
2020-09-13 Ben Pfaff <blp@cs.stanford.edu>
|
||||||
|
|
||||||
getpass: Check for nonnull prompt argument while avoiding warnings.
|
getpass: Check for nonnull prompt argument while avoiding warnings.
|
||||||
|
@@ -43,7 +43,10 @@ Makefile.am:
|
|||||||
# Additionally, here we assume GNU Bison and therefore don't need the ylwrap
|
# Additionally, here we assume GNU Bison and therefore don't need the ylwrap
|
||||||
# script.
|
# script.
|
||||||
# Therefore we override this rule.
|
# 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
|
||||||
|
# <https://lists.gnu.org/archive/html/bug-make/2020-09/msg00008.html>, 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 \
|
$(AM_V_YACC)$(PARSE_DATETIME_BISON) -d $(YFLAGS) $(AM_YFLAGS) $(srcdir)/parse-datetime.y \
|
||||||
&& test ':' = '$(PARSE_DATETIME_BISON)' || { \
|
&& test ':' = '$(PARSE_DATETIME_BISON)' || { \
|
||||||
sed -e 's|".*/parse-datetime\.y"|"parse-datetime.y"|' \
|
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.c-tmp $(srcdir)/parse-datetime.c \
|
||||||
&& mv parse-datetime-gen.h-tmp $(srcdir)/parse-datetime-gen.h; \
|
&& 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
|
lib_SOURCES += parse-datetime.y
|
||||||
BUILT_SOURCES += parse-datetime.c parse-datetime-gen.h
|
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
|
MOSTLYCLEANFILES += parse-datetime.tab.c parse-datetime.tab.h parse-datetime.c-tmp parse-datetime-gen.h-tmp
|
||||||
|
Reference in New Issue
Block a user