diff --git a/Makefile b/Makefile index 6d308a6..df3795e 100644 --- a/Makefile +++ b/Makefile @@ -61,6 +61,24 @@ all: noweb ${MNT}/${SYS}/bin/document start: noweb ${MNT}/${SYS}/bin/document +parallel: noweb ${MNT}/${SYS}/bin/document + @ echo p1 making a parallel system build + @ echo 1 making a ${SYS} system, PART=${PART} SUBPART=${SUBPART} + @ echo 2 Environment ${ENV} + @ ${TANGLE} -t8 -RMakefile.${SYS} Makefile.pamphlet >Makefile.${SYS} + @ ${DOCUMENT} Makefile + @ mkdir -p ${MNT}/${SYS}/doc/src + @ cp Makefile.dvi ${MNT}/${SYS}/doc/src/root.Makefile.dvi + @ echo p2 starting parallel make of books + @ echo 52 ${SPD}/books/Makefile from ${SPD}/books/Makefile.pamphlet + ( cd ${SPD}/books ; \ + ${DOCUMENT} ${NOISE} Makefile ; \ + cp Makefile.dvi ${MNT}/${SYS}/doc/src/books.Makefile.dvi ; \ + ${ENV} ${MAKE} & ) + @ echo p3 starting parallel make of src + @ ${ENV} $(MAKE) -f Makefile.${SYS} + @ echo 3 finished system build on `date` | tee >lastBuildDate + book: @ echo 79 building the book as ${MNT}/${SYS}/doc/book.dvi @ mkdir -p ${TMP} diff --git a/Makefile.pamphlet b/Makefile.pamphlet index 0e917f8..14606d5 100644 --- a/Makefile.pamphlet +++ b/Makefile.pamphlet @@ -8,7 +8,7 @@ \end{abstract} \eject \tableofcontents -\eject +\newpage \section{General Makefile Structure} Makefiles are responsible for four things. First, they have to set up @@ -23,8 +23,38 @@ The clean stanza has been modified to be more effective. Previously it walked the Makefile hierarchy trying to clean subdirectories. This method often fails for various reasons (e.g. permissions, incomplete builds, etc). Now we simply remove the created files directly. -\eject +\newpage + \subsection{The Top Level Makefile} +We have added a stanza to separate the build of documents from the build +of source files. As much as possible we would like to do the document +builds in parallel with the source builds. We kick off a make for the +documents in the background and then kick off a make in the foreground +for the source code. This is independent of using make in parallel and +instead uses the shell to fork the processes. We have not had much luck +getting make to build in parallel reliably. + +<>= +parallel: noweb ${MNT}/${SYS}/bin/document + @ echo p1 making a parallel system build + @ echo 1 making a ${SYS} system, PART=${PART} SUBPART=${SUBPART} + @ echo 2 Environment ${ENV} + @ ${TANGLE} -t8 -RMakefile.${SYS} Makefile.pamphlet >Makefile.${SYS} + @ ${DOCUMENT} Makefile + @ mkdir -p ${MNT}/${SYS}/doc/src + @ cp Makefile.dvi ${MNT}/${SYS}/doc/src/root.Makefile.dvi + @ echo p2 starting parallel make of books + @ echo 52 ${SPD}/books/Makefile from ${SPD}/books/Makefile.pamphlet + ( cd ${SPD}/books ; \ + ${DOCUMENT} ${NOISE} Makefile ; \ + cp Makefile.dvi ${MNT}/${SYS}/doc/src/books.Makefile.dvi ; \ + ${ENV} ${MAKE} & ) + @ echo p3 starting parallel make of src + @ ${ENV} $(MAKE) -f Makefile.${SYS} + @ echo 3 finished system build on `date` | tee >lastBuildDate + +@ + <<*>>= <> all: noweb ${MNT}/${SYS}/bin/document @@ -39,6 +69,7 @@ all: noweb ${MNT}/${SYS}/bin/document start: noweb ${MNT}/${SYS}/bin/document +<> <> <> <> @@ -2961,7 +2992,7 @@ all: rootdirs noweb srcsetup lspdir srcdir <> @ -\eject +\newpage \begin{thebibliography}{99} \bibitem{1} CMUCL {\bf http://www.cons.org/cmucl} \bibitem{2} GCL {\bf http://savannah.gnu.org/projects/gcl} diff --git a/changelog b/changelog index 89d4d0f..c090654 100644 --- a/changelog +++ b/changelog @@ -1,7 +1,6 @@ -20090620 tpd src/axiom-website/patches.html 20090620.07.tpd.patch -20090620 tpd src/input/numbers.input fix random zero failure 20090620 tpd src/axiom-website/patches.html 20090620.06.tpd.patch -20090620 tpd books/bookvol10.4 RSETGCD +-> conversion +20090620 tpd src/Makefile build books in parallel with src +20090620 tpd Makefile build books in parallel with src 20090620 tpd src/axiom-website/patches.html 20090620.05.tpd.patch 20090620 tpd books/bookvol10.4 ODERED +-> conversion 20090620 tpd src/axiom-website/patches.html 20090620.04.tpd.patch diff --git a/src/Makefile.pamphlet b/src/Makefile.pamphlet index 3d60ea8..f52e518 100644 --- a/src/Makefile.pamphlet +++ b/src/Makefile.pamphlet @@ -373,19 +373,12 @@ This takes all of the Axiom volumes and creates .pdf copies in the final doc directory. <>= -docdir: ${SPD}/books/Makefile ${SRC}/doc/Makefile +docdir: ${SRC}/doc/Makefile @echo 41 making ${SRC}/doc @mkdir -p ${INT}/doc @mkdir -p ${MNT}/${SYS}/bin - @(cd ../books ; ${ENV} ${MAKE} ) @(cd doc ; ${ENV} ${MAKE} ) -${SPD}/books/Makefile: ${SPD}/books/Makefile.pamphlet - @echo 52 ${SPD}/books/Makefile from ${SPD}/books/Makefile.pamphlet - @( cd ${SPD}/books ; \ - ${DOCUMENT} ${NOISE} Makefile ; \ - cp Makefile.dvi ${MNT}/${SYS}/doc/src/books.Makefile.dvi ) - ${SRC}/doc/Makefile: ${SRC}/doc/Makefile.pamphlet @echo 42 making ${SRC}/doc/Makefile from ${SRC}/doc/Makefile.pamphlet @( cd doc ; \ diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index d00db62..3411322 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -1610,8 +1610,6 @@ bookvol10.4 RECOP +-> conversion
20090620.05.tpd.patch bookvol10.4 ODERED +-> conversion
20090620.06.tpd.patch -bookvol10.4 RSETGCD +-> conversion
-20090620.07.tpd.patch -src/input/numbers.input fix random zero failure
+Makefile build books in parallel with src