[Simh] Proposal for a new make system

Richard legalize at xmission.com
Tue Mar 10 17:06:59 EDT 2009


Sorry, I meant to send this to the list and not just Philipp.

In article <49B6D3A4.8040102 at hachti.de>,
    Philipp Hachtmann <hachti at hachti.de>  writes:

> I do not use recursive makefiles.

Indeed.

See <http://miller.emu.id.au/pmiller/books/rmch/>

    Recursive Make Considered Harmful 
    Peter Miller
    millerp at canb.auug.org.au

    ABSTRACT 

    For large UNIX projects, the traditional method of building the
    project is to use recursive make. On some projects, this results
    in build times which are unacceptably large, when all you want to
    do is change one file. In examining the source of the overly long
    build times, it became evident that a number of apparently
    unrelated problems combine to produce the delay, but on analysis
    all have the same root cause. 

    This paper explores an number of problems regarding the use of
    recursive make, and shows that they are all symptoms of the same
    problem. Symptoms that the UNIX community have long accepted as a
    fact of life, but which need not be endured any longer. These
    problems include recursive makes which take ``forever'' to work
    out that they need to do nothing, recursive makes which do too
    much, or too little, recursive makes which are overly sensitive to
    changes in the source code and require constant Makefile
    intervention to keep them working. 

    The resolution of these problems can be found by looking at what
    make does, from first principles, and then analyzing the effects
    of introducing recursive make to this activity. The analysis shows
    that the problem stems from the artificial partitioning of the
    build into separate subsets. This, in turn, leads to the symptoms
    described. To avoid the symptoms, it is only necessary to avoid
    the separation; to use a single Makefile for the whole project. 

    This conclusion runs counter to much accumulated folk wisdom in
    building large projects on UNIX. Some of the main objections
    raised by this folk wisdom are examined and shown to be unfounded.
    The results of actual use are far more encouraging, with routine
    development performance improvements significantly faster than
    intuition may indicate. The use of a single project Makefile is
    not as difficult to put into practice as it may first appear. 
-- 
"The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download
      <http://www.xmission.com/~legalize/book/download/index.html>

        Legalize Adulthood! <http://blogs.xmission.com/legalize/>



More information about the Simh mailing list