Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 Jun 2004 21:41:18 -0700
From:      Ade Lovett <ade@FreeBSD.org>
To:        FreeBSD ports <ports@freebsd.org>
Subject:   HEADS UP: Heavy duty autotools changes imminent
Message-ID:  <6BD1116E-B5E1-11D8-B3B3-000A956B6386@FreeBSD.org>

next in thread | raw e-mail | index | archive | help
Over the past few weeks, we have been testing the next incarnation of 
ports/Mk/bsd.autotools.mk on the road to bringing at least some 
semblance of sanity back to this corner of the ports collection.

By far and away the easiest way to see the changes will be to view the 
new file once committed, but here is a summary of the changes:

1. USE_LIBTOOL, USE_AUTOCONF, USE_AUTOHEADER, USE_AUTOMAKE have been 
fully deprecated.  Ports attempting to use these variables after the 
commit will error out, and most obviously break INDEX generation, with 
a helpful error message.  Instead, ports must now specifically choose 
the version of any of these tools that they need with the corresponding 
USE_*_VER variables.  Note that these variables understand any and all 
versions of autotools ports in the tree, there is no longer a need to 
have specific version numbers hardcoded in the infrastructure of 
bsd.autotools.mk (as there is now).  In particular, this will 
immediately open up automake18 and autoconf259 for general use and 
beating.

2. Similarly for WANT_LIBTOOL, WANT_AUTOCONF, and WANT_AUTOMAKE.  
Again, these have been fully deprecated, and the equivalent WANT_*_VER 
versions should be used.

In order to preserve existing behavior for these variables, please note 
the 20040314 entry in ports/CHANGES for the appropriate version numbers 
to use for any ports in the GNATS queue.

Both WANT_* and USE_* bring in the relevant tool as a build dependency, 
and set up a reasonably large number of variables pointing to the right 
programs to be using in the port.  The only difference at the moment, 
is that USE_* will run an extra autotools-related configuration step, 
whereas WANT_* merely requests the environment.

3. The helper knob USE_LIBLTDL has been added which currently simply 
adds a LIB dependency on the libltdl port.

4. Three new variables have been introduced, 
WANT_{LIBTOOL,AUTOCONF,AUTOMAKE}_RUN=yes.  These variables will do 
nothing by themselves (a Work-In-Progress), but if the appropriate 
autotool version is defined (either through WANT_*_VER or USE_*_VER), 
this will add the relevant dependency to RUN_DEPENDS.

Steps 3 and 4 now essentially negate the need for any kind of direct 
dependency within a non-autotools port Makefile on devel/autoconf*, 
devel/automake*, devel/libtool*, and devel/libltdl.

Since the updates to the ports tree are fairly wide-ranging on this, 
after one final sync-to-HEAD operation tomorrow (Friday June 4th 
Pacific time) morning, I will be locking down the ports tree for a 
period of approximately 10 minutes whilst the patches go in, to prevent 
any unfortunate conflicts.  This message will be the commit text for 
bsd.autotools.mk itself, and will also go in ports/CHANGES - on account 
of not wanting to bloat the repo elsewhere, the patches to ports 
themselves will be somewhat terse.

This patchset has been extensively tested on the 4-exp package building 
cluster, for which many thanks to Kris.  Of course, this does not mean 
to say that there are not still obscure bugs hiding, so please be sure 
to send in a PR with as much information as possible so it can be 
tracked down and stomped on before the next round of changes.

Your friendly (and insane) autotools-meister.

-aDe



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6BD1116E-B5E1-11D8-B3B3-000A956B6386>