automake
[Top][All Lists]
Advanced

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

Re: [CRAZY PROPOSAL] Automake should support only GNU make


From: Bob Friesenhahn
Subject: Re: [CRAZY PROPOSAL] Automake should support only GNU make
Date: Fri, 14 Jan 2011 09:04:35 -0600 (CST)
User-agent: Alpine 2.01 (GSO 1266 2009-07-14)

On Fri, 14 Jan 2011, Ralf Wildenhues wrote:

(That, by the way, is what nobody ever tells you when they point you to
the "Recursive Make Considered Harmful" paper: that walking the full
dependency tree is more expensive than walking a factorized one.  Sure,
you need to keep the toplevel deps up to date manually then.)

Yes. Walking the full dependency tree is more expensive, but it is also likely that if unnecessary work is done, then even more resources are wasted.

I have no idea what project has the largest dependency tree but it would surely be one that uses a non-recursive build, or one that puts all the source files in one directory.

Regardless, this should not be an argument against an inventory based build system which records and saves the actual rules used to build a target as well as the timestamp/checksum of the source files to those rules (and perhaps, optionally, even the source control version ID for thos files). My argument is that if the target has already been built, then only the rules already used need to be checked in order to decide if the target needs to be rebuilt. In case of added/removed dependencies such as implicit header file include dependencies, only the impacted part of the rules need to be re-checked for validity. It is not necessary to rescan the whole world and decide if one of the zillion other rules known to 'make' might be used to build the target.

In addition to the above, Automake should be supplying enough explicit rule information (pertaining to the actual needs of the current project) that the underlying build tool should not have to go off in the weeds and try a million other incantations as well.

Anyone who is not familiar with the zillion rules known/tested-by GNU make should run 'make -d' on their own projects.

Those that feel that all that counts is the time for a from-scratch build and developer rebuilds are not important might consider that /bin/sh is a more efficient build tool than 'make' for that particular case. :-)

Bob
--
Bob Friesenhahn
address@hidden, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/



reply via email to

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