HEADS UP: Heavy duty autotools changes imminent
Ade Lovett
ade at FreeBSD.org
Fri Jun 4 04:41:10 GMT 2004
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
More information about the freebsd-ports
mailing list