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: Steffen Dettmer
Subject: Re: [CRAZY PROPOSAL] Automake should support only GNU make
Date: Thu, 13 Jan 2011 12:53:38 +0100

On Thu, Jan 13, 2011 at 3:39 AM, Bob Friesenhahn
<address@hidden> wrote:
> While GNU make is a really good 'make' program, I think that 'make' in
> general is a flawed concept.

Could you please explain this a bit?

I like the `make' concept; in some situations I even love it.
One example of such a situation is to create statistics from
productive log files.
This is an incremental, time consuming process. I wrote the stats
script in Makefile language (starting with a shebang line).
Intermediate results are stored as files (an automatic cache).
The process is very time consuming but thanks to make, it can be
aborted and restarted at any time (just the current file action
is lost). When restarted later, only the new files are processed
etc. The Makefile is very simple, it just has the rules for each
step, no need to worry how to get this in the right order, no
need to worry about parallelization or where to continue after
interruption. It just works.
(this has no relation to automake of course).

> If there was going to be a revolutionary change, then I would
> like to see a small embedded build engine be included which
> accomplishes the few functionalities needed from make, but also
> avoids needing additional programs.

I think the need for small dedicated additional programs often is
very useful, because by using the simple building blocks, quickly
complex solutions can be constructed, even if no one ever had a
related requirement ever.

In contrast to let's say "ant", a build tool popular in Java
world, does this differently. This is good for
platform-independent java building, but has IMHO serious
disadvantages and IMHO the big problem that it can do only "what
was built-in in advance". You can create .jar files but you
cannot use source code generation or even use some other packager
to bzip2 some output result in the end. Even compiling-in a
version number can become tricky.
(Trying to build C code with ant seems to be a bad idea anyway).
Surely I'm not capable to use ant correctly.

Maybe a future version of automake creates an efficient
GNUMakefile and a less efficient but more portable Makefile at
the same time, leaving it up to the user to select which one to use.

> A little bit of analysis will reveal that Automake really does
> not require much functionality from 'make'.  Probably 5% of
> what GNU 'make' is capable of.  I don't like it that 'make'
> depends on file timestamps, and that it is unable to cache what
> was used to create the current binary, and that dependency
> information from the build system needs to be cached in 'make'
> include files.

What is the problem with timestamps?
I don't like that ant does not depend on timestamps (leading to
rebuilt jars, resigning, which takes time and needs entropy etc).

Where else should dependency information be stored? Of course, if
you would have a special make-replacement dedicated (limited?) to
C building, it could be "smart", but I'm afraid the "smart"
things fail more often that the "simple" things.
I think the dependency issue arises from a kind of lazyness
(generate the deps automatically instead of writing them
explicitely). To save that for C code, there are tools for it
(gcc -M).

Do you mean that make is a good multi-purpose tool but not well
suited for C building, especially in automake environments?

oki,

Steffen



reply via email to

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