* NightStrike wrote on Wed, Mar 19, 2008 at 07:02:17PM CET: > On 3/11/08, Bob Friesenhahn <[EMAIL PROTECTED]> wrote: > > On Tue, 11 Mar 2008, NightStrike wrote: > > > > > > I had intended to do everything with non-recursive make, but as you > > > pointed out once, non-recursive is also considered harmful. > > > > In what way is non-recursive considered harmful? > > http://lists.gnu.org/archive/html/automake/2007-11/msg00049.html
Reasons why non-recursive makefiles may be harmful follow. Some of these are specific to automake, some are not; some are transient in that they may be or have already been fixed in newish versions, some are not. I'm sure you'll be able to find out which is which, otherwise please ask for details: - some needed tools have or had bugs preventing them to be easily used with subdir in-/outputs, notably: automake, tex(info), non-GNU make, and quite rarely, GNU make. - increase in notational complexity, notably in automake input files: the magic variable names (sub_dir_prog_SOURCES etc.) grow longer. - typically a size increase in automake output files, as per-target flags are needed more often (as opposed to using makefile-wide AM_* flags), resulting in more per-target rules. - longer file names result in more expensive file name lookups, and longer command line lengths, thus hit the command line length limit of some operating systems earlier. Note that none of these preclude a mixed setup, i.e., it is fine to have far fewer makefiles than directories. And certainly, it is beneficial to merge makefiles for highly intertwined directories, whereas loosely coupled ones (for example source vs. documentation) often do not benefit significantly from either more precise dependency relations nor from a large speedup. Cheers, Ralf