Stefano Lattarini wrote: > Recursive make-based build systems tend to be slower, more fragile > and less faithful than "flat" ones. See Peter Miller's article > "Recursive Make Considered Harmful" for more a more in-depth > discussion: > > <http://miller.emu.id.au/pmiller/books/rmch/> > > While in the case of automake this isn't a big problem (given the > small size of its build systems), it still creates occasional > glitches and annoyances. > > With this change, the use of recursion in Automake's own build > system is eliminated *but for the testsuite*. Converting that > is a little more tricky, and better left for a later change (or > series of changes). > > See also commit v1.11-769-gfeeb7f6 of 28-03-2012. > > * contrib/Makefile.am, lib/Makefile.am, m4/Makefile.am, > doc/Makefile.am: Removed, their content merged ... > * Makefile.am: ... here, with required adjustments and few > other "opportunistic" changes. > (SUBDIRS): Update. > * configure.ac (AC_CONFIG_FILES): Likewise. > * .gitignore: Likewise. > > Signed-off-by: Stefano Lattarini <stefano.lattar...@gmail.com> > --- > > I will push by tomorrow if there is no objection. > > Regards, > Stefano > > .gitignore | 33 ++--- > Makefile.am | 414 > +++++++++++++++++++++++++++++++++++++++++++++++---- > configure.ac | 9 +- > contrib/Makefile.am | 27 ---- > doc/Makefile.am | 91 ----------- > lib/Makefile.am | 162 -------------------- > m4/Makefile.am | 75 --------- > 7 files changed, 395 insertions(+), 416 deletions(-) > delete mode 100644 contrib/Makefile.am > delete mode 100644 doc/Makefile.am > delete mode 100644 lib/Makefile.am > delete mode 100644 m4/Makefile.am
Hi Stefano, I am glad to see that you too are taking an interest in non-recursive make. I've always liked how bison switched to non-recursive make, and recently converted cppi to do the same (the final hold-out there is po/, since its Makefile.in.in is automatically generated). Did you consider leaving doc-related Makefile.am parts in say, doc/local.mk, which could then be included from the top-level Makefile.am, and similarly for lib/ and m4/? I find that to be more maintainable in that it keeps the rules in the same directory as the associated files, and the top-level Makefile.am does not become quite so large.