automake
[Top][All Lists]
Advanced

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

Re: autotools FAQ (was: how to turn off shared library notice in output


From: Stepan Kasal
Subject: Re: autotools FAQ (was: how to turn off shared library notice in output of make install?)
Date: Fri, 29 Sep 2006 12:33:19 +0200
User-agent: Mutt/1.4.2.1i

Hello,

  I haven't read the whole post, but I'd like to make a few quick
comments:

On Fri, Sep 29, 2006 at 09:34:42AM +0200, Ralf Wildenhues wrote:
> >  Q: The "auto" in the name of "automake" and "autoconf", does this
> >     mean I can create the build environment on one platform and the
> >     build will work on all Unix/Linux platforms?
> > 
> >  A: Unfortunately not.

well, before autoconf, one had to fill in a long questionarie of C
defines to describe one's system.  The questions might be diffucult;
it may not be sufficient to execute man several times.

Autoconf means that this questionarie is automated: all the admin has
to do is to run configure.  I believe this is the `auto' in
`autoconf'.

So the goal to free the admin which builds the package from these
problems was reached, the effort on his side is minimal.

But the maintainer of the package still has to keep the portability
problems in their mind, so this ``goal'' was not ``reached'', there
is still space for imporovement.  (Though the knowledge collected in
autoconf, libtool, automake, and gnulib, give a great chance that the
package will build on many platforms out-of-the-box, without a need
to test it there.)

> >      Automake is [...]
> 
> Not really.  Automake is there to help you create portable makefiles.

Thank you, Ralf, this is true, of course.  But from a more theoretical
standpoint, the answer might differ:

`GNU Coding Stabdards' contain requirements and recommendations for
how should the configuration and build of each package work.
These include not only the usual make targets (all install, clean,
distclean, etc.), but also features like the VPATH build (srcdir !=
builddir), the DESTDIR variable for installation, etc.

It might be very laborous and/or tricky to support all of that in
one's makefile.  A natural reaction is to cut&paste all this from
other projects, but such a ``solution'' in a way to hell (I mean,
it's not unmaintainable).

Automake's goal is to provide all of this for free; you just describe
your project: which programs it contains, what are the source files
for each, etc.  I believe this is the `auto' in Automake.

One can imagine two ways to achieve that:
1) require GNU make to be installed before the build
2) write makefile which can be interpreted by any make

Automake takes the latter way, and generates portable makefiles. 
But that's not the goal, that's a means to achive the goal.

Have a nice day,
        Stepan




reply via email to

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