automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] maint: remove most recursion in automake's own build system


From: Jim Meyering
Subject: Re: [PATCH] maint: remove most recursion in automake's own build system
Date: Thu, 05 Apr 2012 15:55:05 +0200

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 <address@hidden>
> ---
>
>  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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]