From 4007871174fb9c814103b6a9215f24a700409fa7 Mon Sep 17 00:00:00 2001 From: Jon Turney Date: Tue, 6 Dec 2016 15:06:26 +0000 Subject: [PATCH] Fix 'make man' for parallel make Ensure the Python Lex/Yacc (PLY) cache used by makedocbook is initialized before it is used by parallelizable rules to make the DocBook XML, as it appears that these can collide in cache generation, leading to errors. Signed-off-by: Jon Turney --- newlib/Makefile.am | 1 + newlib/Makefile.in | 1 + newlib/doc/Makefile.am | 5 +++++ newlib/doc/Makefile.in | 5 +++++ newlib/doc/makedocbook.py | 4 ++++ 5 files changed, 16 insertions(+) diff --git a/newlib/Makefile.am b/newlib/Makefile.am index ee580075e..20ab1633b 100644 --- a/newlib/Makefile.am +++ b/newlib/Makefile.am @@ -364,6 +364,7 @@ doc/makedoc: # Recursive targets for man and install-man man: + (cd doc && $(MAKE) man-cache) || exit 1; \ for d in $(SUBDIRS); do \ if test "$$d" != "."; then \ (cd $$d && $(MAKE) man) || exit 1; \ diff --git a/newlib/Makefile.in b/newlib/Makefile.in index c04da3c02..f0296b667 100644 --- a/newlib/Makefile.in +++ b/newlib/Makefile.in @@ -1116,6 +1116,7 @@ doc/makedoc: # Recursive targets for man and install-man man: + (cd doc && $(MAKE) man-cache) || exit 1; \ for d in $(SUBDIRS); do \ if test "$$d" != "."; then \ (cd $$d && $(MAKE) man) || exit 1; \ diff --git a/newlib/doc/Makefile.am b/newlib/doc/Makefile.am index 99afb41f1..dbebfcc9a 100644 --- a/newlib/doc/Makefile.am +++ b/newlib/doc/Makefile.am @@ -21,3 +21,8 @@ ACLOCAL_AMFLAGS = -I .. -I ../.. CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host man: + +man-cache: + ${srcdir}/makedocbook.py --cache + +.PHONY: man-cache diff --git a/newlib/doc/Makefile.in b/newlib/doc/Makefile.in index de17da7ff..a12872d93 100644 --- a/newlib/doc/Makefile.in +++ b/newlib/doc/Makefile.in @@ -358,6 +358,11 @@ makedoc.o: makedoc.c man: +man-cache: + ${srcdir}/makedocbook.py --cache + +.PHONY: man-cache + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/newlib/doc/makedocbook.py b/newlib/doc/makedocbook.py index 1b4f5ab33..0c84e3c47 100755 --- a/newlib/doc/makedocbook.py +++ b/newlib/doc/makedocbook.py @@ -824,8 +824,12 @@ def main(file): if __name__ == '__main__' : options = OptionParser() options.add_option('-v', '--verbose', action='count', dest = 'verbose') + options.add_option('-c', '--cache', action='store_true', dest = 'cache', help="just ensure PLY cache is up to date") (opts, args) = options.parse_args() + if opts.cache: + sys.exit() + verbose = opts.verbose if len(args) > 0: