Re: [g-a-devel]gnu tools



On Wed, 2003-06-25 at 05:05, David Bolter wrote:
> Maybe not quite the right list but should be answerable here...
> 
> What version of autoconf and automake should we be configuring our gnome 
> projects for? A look in /share/aclocal/gnome2-macros/autogen.sh leads 
> one to suspect automake-1.4  -- is that a good assumption?

Beginning with GNOME 2.0 and continuing until now, you need both
automake-1.4 and at least automake-1.6 (automake-1.7 can be substituted
for the latter) to build the desktop and platform releases.

As far as autoconf goes, 2.53 is a reasonable compromise (pretty much
everything works with it), although 2.54 may be necessary (I am using
2.57 and I cannot remember the details -- but I have a suspicion that
libglade is a problem with 2.53). You definitely cannot rely on autoconf
2.13.

My recommendation would be to target automake 1.6, since 1.4 has a
number of small annoyances and is not completely forwards compatible
with the recent releases, whereas 1.6 and 1.7 are compatible.

The standard autogen.sh script allows any number of possibilities for
automake and autoconf versions. If you are calling this script from your
own autogen.sh, then you can set the REQUIRED_AUTOMAKE_VERSION variable
to the minimum automake version you require (e.g. "1.6") and it will
enforce that.  Typically, that will be the only one of those variables
you would wish to change, since the rest are pretty common.

If you are choosing not to use the common autogen.sh, I would recommend
reading through it anyway and looking at a few of the things we work
around. For example, Debian distributions use the name "autoconf2.50"
instead of autoconf for things in the 2.5x release line. Mandrake want
WANT_AUTOCONF_2_5=1 if you want to use autoconf 2.50 or later (rather
than 2.13, the previous version). Strangely enough, the propietary UNIX
variants are the least amount of trouble here -- possibly because they
have to install the GNU tools from scratch and so stick to the standard
names.

If you do not want to depend upon gnome-common, but do not want to write
your own autogen.sh script, then you can safely copy macros2/autogen.sh
to, say, gnome-autogen.sh in your top-level source directory and have
your autogen.sh script call ./gnome-autogen.sh as its last command. Then
you can periodically re-sync with the gnome-common version and pick up
the latest bug fixes. Some maintainers are choosing to do this to avoid
a gnome-common dependency (I would say needlessly so, but I am not going
to go to war over it). Still, over half the packages in the
platform+desktop releases use gnome-common for building from CVS, so you
are hardly going to be bucking the trend if you do so.


> Is there a document on the versions of gnu tools to use etc?

Almost. :-)

I have the beginnings of one on my hard drive that I keep intending to
finish. It's quite a fiddly document to write, since the whole game is
about corner cases and things that people normally do not worry about. I
am struggling to find the right balance between a simple "here's what to
do if you really don't care" format and also identifying the trickier
possibilities that arise in practice.

I have a more nearly finished document about porting from automake-1.4
to automake-1.6 and beyond. I just need to go though that and give it a
final edit. This is more for maintainers with a current project they are
wanting to move forwards (things based on automake-1.4 are going to be
more and more awkward to maintain over the coming year or so), whereas
the previous document is for somebody wanting to make an initial choice.

Also ("buy now and you get ....!"), I have mentioned on other lists that
I am willing to fix anybody's auto* problems if they want to send me
email and point me at the package. So if you decide to migrate automake
versions or are just beating yourself about the head and shoulders
trying to get 'make distcheck' to work, sing out. (You may well be an
automake specialist already; I mean no insult here, but the offer is
there if you need it.)

Cheers,
Malcolm




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