Andreas Enge <[email protected]> skribis: > On Wed, Aug 28, 2013 at 11:09:40PM +0200, Ludovic Courtès wrote: >> Please don’t do that: the build system purposefully avoids recursive >> makefiles, to improve parallelism etc. (see >> <http://miller.emu.id.au/pmiller/books/rmch/>.) > > I did it for two reasons: > - It allows to type "make ps" and "make pdf" in the main directory, > instead of "cd doc; make pdf; cd ..".
Hmm, there was no Makefile in doc/, so how could “cd doc; make pdf” work? > - It avoids clutter in the main directory (not checked this time, but I > think there were a few files guix.* then). I just tried “make pdf” from 3d1b29a, and, surprise: it doesn’t do anything. :-) Turns out that the “doc/guix.pdf:” line in Makefile.am annihilated the built-in rule. This is “fixed” with:
diff --git a/Makefile.am b/Makefile.am index 6eb4c0f..710f708 100644 --- a/Makefile.am +++ b/Makefile.am @@ -210,9 +210,9 @@ DOT_OPTIONS = \ dot -Teps $(DOT_OPTIONS) < "$<" > "[email protected]" mv "[email protected]" "$@" -doc/guix.pdf: doc/images/bootstrap-graph.png -doc/guix.info: doc/images/bootstrap-graph.png -doc/guix.ps: doc/images/bootstrap-graph.eps +# doc/guix.pdf: doc/images/bootstrap-graph.png +# doc/guix.info: doc/images/bootstrap-graph.png +# doc/guix.ps: doc/images/bootstrap-graph.eps if BUILD_DAEMON
With that, “make pdf” at the top level creates doc/guix.pdf, and leaves no intermediate files at all at the top level. Is it an acceptable solution for you (provided the bug above is fixed nicely)? If so, I’ll prepare a patch. I feel quite strongly about avoid recursive Makefiles, so I’d prefer to fix any bugs in the current build system. Thanks, Ludo’.
